/**
 * @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 13px/1.84615 Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
	font: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);
	color: hsl(0, 0%, 20%);
	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: hsl(0, 0%, 100%);
		background: var(--ck-color-base-background);
		border: 1px solid hsl(220, 6%, 81%);
		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: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-autocomplete > .ck-search__results {
		box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
		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: transparent;
	background: var(--ck-color-button-default-background);
	border-radius: 0;

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

	/* A very important piece of styling. Go to variable declaration to learn more. */
	min-width: 2.3em;
	min-width: var(--ck-ui-component-min-height);
	min-height: 2.3em;
	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: hsl(0, 0%, 94.1%);
			background: var(--ck-color-button-default-hover-background);
		}
.ck.ck-button:not(.ck-disabled):active, a.ck.ck-button:not(.ck-disabled):active {
			background: hsl(0, 0%, 94.1%);
			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: transparent;
		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: 2px;
		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: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
		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: calc(0.6em * 1.5);
			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: calc(0.6em * 1.5);
			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: 0 0 0 3px hsla(209, 90%, 72%,.3), 0 0;
			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: .5;
			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: .5;
			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: calc(0.6em * 0.3) 0.6em;
		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: calc(0.6em * 0.8);
				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: calc(0.6em * 0.8);
				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: hsl(212, 100%, 97.1%);
		background: var(--ck-color-button-on-background);

		color: hsl(218.1, 100%, 58%);

		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: hsl(211.7, 100%, 92.9%);
			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: hsl(211.7, 100%, 92.9%);
			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: hsl(211, 15%, 95%);
		background: var(--ck-color-button-on-disabled-background);
	}
.ck.ck-button.ck-button-save, a.ck.ck-button.ck-button-save {
		color: hsl(120, 100%, 27%);
		color: var(--ck-color-button-save);
	}
.ck.ck-button.ck-button-cancel, a.ck.ck-button.ck-button-cancel {
		color: hsl(15, 100%, 43%);
		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: hsl(104, 50.2%, 42.5%);
	background: var(--ck-color-button-action-background);

	color: hsl(0, 0%, 100%);

	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: hsl(104, 53.2%, 40.2%);
			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: hsl(104, 53.2%, 40.2%);
			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: hsl(104, 44%, 58%);
		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 * calc(0.6em * 1.5));
			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 * calc(0.6em * 1.5));
			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: 2.6153846154em;
		width: var(--ck-switch-button-toggle-width);
		background: hsl(0, 0%, 57.6%);
		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: 2px;
		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: calc(1.0769230769em + 1px);

			width: var(--ck-switch-button-toggle-inner-size);
			height: calc(1.0769230769em + 1px);
			height: var(--ck-switch-button-toggle-inner-size);
			background: hsl(0, 0%, 100%);
			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: 2px;
		border-radius: var(--ck-border-radius);
				border-radius: calc(.5 * 2px);
				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: hsl(0, 0%, 49%);
			background: var(--ck-color-switch-button-off-hover-background);
		}
.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner {
				box-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);
				box-shadow: var(--ck-switch-button-inner-hover-shadow);
			}
.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle {
		opacity: .5;
		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 hsl(0, 0%, 100%), 0 0 0 5px hsl(212.4, 89.3%, 89%);
			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: 1px solid hsl(218, 81.8%, 56.9%);
			outline: var(--ck-focus-ring);
		}
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle {
			background: hsl(104, 50.2%, 42.5%);
			background: var(--ck-color-switch-button-on-background);
		}
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover {
				background: hsl(104, 53.2%, 40.2%);
				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( calc(
		2.6153846154em -
		calc(1.0769230769em + 1px) -
		2px 
	) );
					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 * calc(
		2.6153846154em -
		calc(1.0769230769em + 1px) -
		2px 
	) ) );
					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: calc(0.6em * 0.3) calc(2 * 0.6em);
	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: hsl(0, 0%, 100%);
		background: var(--ck-color-list-background);
		color: hsl(0, 0%, 20%);
		color: var(--ck-color-text);
	}
[dir="ltr"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-left: calc(0.6em * 0.5);
			padding-left: var(--ck-spacing-small);
	}
[dir="rtl"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-right: calc(0.6em * 0.5);
			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: hsl(0, 0%, 94.1%);
		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: hsl(0, 0%, 20%);
			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: calc(0.6em * 0.8);
			margin-right: var(--ck-spacing-medium);
			width: calc(0.5 * calc(1.84615 * 1em));
			width: var(--ck-collapsible-arrow-size);
		}
.ck.ck-collapsible > .ck-collapsible__children {
		padding: calc(0.6em * 0.8) calc(0.6em * 1.5) calc(0.6em * 1.5);
		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: 24px;
		width: var(--ck-color-grid-tile-size);
		height: 24px;
		height: var(--ck-color-grid-tile-size);
		min-width: 24px;
		min-width: var(--ck-color-grid-tile-size);
		min-height: 24px;
		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 hsl(220, 6%, 81%);
			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 hsl(0, 0%, 100%), 0 0 0 2px hsl(0, 0%, 20%);
			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 hsl(0, 0%, 100%), 0 0 0 2px hsl(218, 81.8%, 56.9%);
			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: auto;
		width: initial;
		height: auto;
		height: initial;
		min-width: 0;
		min-width: initial;
		min-height: 0;
		min-height: initial;
		padding: 0 calc(0.6em * 0.5);
		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: inherit;
		transition: none 0s ease 0s;
		transition: initial;
	}
.ck.ck-color-grid__tile .ck.ck-icon {
		display: none;
		color: hsl(212, 81%, 46%);
		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 0.6em;
	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(0.6em / 2) 0.6em;
			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 hsl(220, 6%, 81%);
				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: 0.6em;
					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: 0.6em;
					margin-left: var(--ck-spacing-standard);
	}
.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label {
			font-weight: inherit;
		}
/* 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: 2px 2px 0 0;
					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 2px 2px;
					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: hsla( 0, 0%, 0%, .5 );
	background: var(--ck-dialog-overlay-background-color);
	z-index: 9999;
	z-index: var(--ck-z-dialog);
}
.ck.ck-dialog {
	border-radius: 0;

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

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-dialog-background);
	max-height: 90vh;
	max-height: var(--ck-dialog-max-height);
	max-width: 100vw;
	max-width: var(--ck-dialog-max-width);
	border: 1px solid hsl(220, 6%, 81%);
	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: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dialog {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;
}
.ck.ck-dialog .ck.ck-form__header {
		border-bottom: 1px solid hsl(220, 6%, 81%);
		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: hsla( 0, 0%, 0%, .5 );
		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: calc(0.6em * 1.5);
		padding: var(--ck-spacing-large);
	}
.ck.ck-dialog .ck.ck-dialog__actions > * + * {
			margin-left: calc(0.6em * 1.5);
			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: calc(0.5 * calc(1.84615 * 1em));
		width: var(--ck-dropdown-arrow-size);
	}
[dir="ltr"] .ck.ck-dropdown .ck-dropdown__arrow {
			right: 0.6em;
			right: var(--ck-spacing-standard);

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

			/* A space to accommodate the triangle. */
			margin-right: calc(0.6em * 0.5);
			margin-right: var(--ck-spacing-small);
		}
.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow {
		opacity: .5;
		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: calc(0.6em * 0.5);
				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: calc(0.6em * 0.5);
				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: .5;
			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: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
				box-shadow: var(--ck-focus-outer-shadow), 0 0;
			}
.ck.ck-dropdown__panel {
	border-radius: 0;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	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: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dropdown__panel {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	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: 2px;
		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: 2px;
		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: 2px;
		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: 0;
			border-top-right-radius: initial;
			border-bottom-right-radius: 0;
			border-bottom-right-radius: initial;
		}
[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: 0;
			border-top-left-radius: initial;
			border-bottom-left-radius: 0;
			border-bottom-left-radius: initial;
		}
.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: 0;
		min-width: initial;
	}
[dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the left side */
			border-top-left-radius: 0;
			border-top-left-radius: initial;
			border-bottom-left-radius: 0;
			border-bottom-left-radius: initial;
		}
[dir="rtl"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the right side */
			border-top-right-radius: 0;
			border-top-right-radius: initial;
			border-bottom-right-radius: 0;
			border-bottom-right-radius: initial;
		}
.ck.ck-splitbutton > .ck-splitbutton__arrow svg {
			width: calc(0.5 * calc(1.84615 * 1em));
			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: 2px;
		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: hsl(0, 0%, 92%);
			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: hsl(0, 0%, 70%);
			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: calc(0.6em * 0.3) calc(2 * 0.6em);
	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: hsl(0, 0%, 94.1%);
			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: .5;
		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(calc(1.84615 * 1em) - calc(0.6em * 0.5));
		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: calc(0.5 * calc(1.84615 * 1em));
		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 * calc(0.6em * 0.5));
			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 * calc(0.6em * 0.5));
			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: .5;
		opacity: var(--ck-disabled-opacity);
	}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) {
			padding-left: calc(0.6em * 0.5);
			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: 0.6em;
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: 0.6em;
			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: calc(0.6em * 0.5);
			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: 0.6em;
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: calc(0.6em * 0.5);
			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: 18em;
	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 * calc(0.6em * 0.5));
		margin-left: calc(-1 * var(--ck-spacing-small));
		margin-right: calc(0.6em * 0.5);
		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: hsl(0, 0%, 94.1%);
			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: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: -moz-fit-content;
	height: fit-content;
	max-width: 75vw;
	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: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
	max-width: 600px;
	max-width: var(--ck-accessibility-help-dialog-max-width);
	max-height: 400px;
	max-height: var(--ck-accessibility-help-dialog-max-height);
	overflow: auto;
	-webkit-user-select: text;
	   -moz-user-select: text;
	        user-select: text;

	border: 1px solid transparent;
}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus {
		/* Disable native outline. */
		outline: none;
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
		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 hsl(220, 6%, 81%);
		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 hsl(220, 6%, 81%);
			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: hsl(0deg 0% 92.94%);
		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 hsl(0deg 0% 61%);
		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: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable) {
		/* Disable native outline. */
		outline: none;
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 2px 2px 3px hsla(0, 0%, 0%, 0.1) inset, 0 0;
		box-shadow: var(--ck-inner-shadow), 0 0;
	}
.ck.ck-editor__editable_inline {
	overflow: auto;
	padding: 0 0.6em;
	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: calc(0.6em * 1.5);
		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: calc(0.6em * 1.5);
		margin-bottom: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5/issues/6517 */
.ck.ck-editor__editable_inline.ck-blurred ::-moz-selection {
		background: hsl(0, 0%, 85%);
		background: var(--ck-color-editable-blur-selection);
	}
.ck.ck-editor__editable_inline.ck-blurred ::selection {
		background: hsl(0, 0%, 85%);
		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: hsl(0, 0%, 100%);
		border-bottom-color: var(--ck-color-panel-background);
	}
.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"]::after {
		border-top-color: hsl(0, 0%, 100%);
		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: calc(0.6em * 0.5) calc(0.6em * 1.5);
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	height: 44px;
	height: var(--ck-form-header-height);
	line-height: 44px;
	line-height: var(--ck-form-header-height);
	border-bottom: 1px solid hsl(220, 6%, 81%);
	border-bottom: 1px solid var(--ck-color-base-border);
}
[dir="ltr"] .ck.ck-form__header > .ck-icon {
			margin-right: calc(0.6em * 0.8);
			margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-form__header > .ck-icon {
			margin-left: calc(0.6em * 0.8);
			margin-left: var(--ck-spacing-medium);
	}
.ck.ck-form__header .ck-form__header__label {
		--ck-font-size-base: 15px;
		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-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));
	--ck-icon-font-size: .8333350694em;
}
.ck.ck-icon {
	width: calc(1.84615 * 1em);
	width: var(--ck-icon-size);
	height: calc(1.84615 * 1em);
	height: var(--ck-icon-size);

	/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */
	font-size: .8333350694em;
	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: hsl(0, 0%, 100%);

	background: var(--ck-color-input-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-input-border);
	padding: calc(0.6em * 0.16) calc(0.6em * 0.8);
	padding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);
	min-width: 18em;
	min-width: var(--ck-input-width);

	/* This is important to stay of the same height as surrounding buttons */
	min-height: 2.3em;
	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: 2px;
		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: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
.ck.ck-input[readonly] {
		border: 1px solid hsl(220, 6%, 81%);
		border: 1px solid var(--ck-color-input-disabled-border);
		background: hsl(0, 0%, 95%);
		background: var(--ck-color-input-disabled-background);
		color: hsl(0, 0%, 46%);
		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: 0 0 0 3px hsla(209, 90%, 72%,.3), 0 0;
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}
.ck.ck-input.ck-error {
		border-color: hsl(15, 100%, 43%);
		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: 0 0 0 3px hsla(9,100%,56%,.3), 0 0;
			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: 2px;
		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: hsl(0, 0%, 100%);

			background: var(--ck-color-labeled-field-label-background);
			padding: 0 calc(.5 * 0.7em);
			padding: 0 calc(.5 * var(--ck-font-size-tiny));
			line-height: normal;
			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 .1s cubic-bezier(0, 0, 0.24, 0.95),
				padding .1s cubic-bezier(0, 0, 0.24, 0.95),
				background .1s cubic-bezier(0, 0, 0.24, 0.95);

			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(calc(0.6em * 0.8), -6px) scale(.75);
				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 * calc(0.6em * 0.8)), -6px) scale(.75);
				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: hsl(15, 100%, 43%);
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly]) + .ck.ck-label {
			color: hsl(15, 100%, 43%);
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view .ck-labeled-field-view__status {
		font-size: 0.75em;
		font-size: var(--ck-font-size-small);
		margin-top: calc(0.6em * 0.5);
		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: hsl(15, 100%, 43%);
			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: hsl(0, 0%, 46%);
		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(100% - 2 * calc(0.6em * 0.8));
		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(calc(0.6em * 0.8), calc(0.6 * 13px)) scale(1);
			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 * calc(0.6em * 0.8)), calc(0.6 * 13px)) scale(1);
			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(100% - 2 * calc(0.6em * 0.8) - calc(0.5 * calc(1.84615 * 1em)) - 0.6em);
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - 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
 */
.ck.ck-labeled-input .ck-labeled-input__status {
	font-size: 0.75em;
	font-size: var(--ck-font-size-small);
	margin-top: calc(0.6em * 0.5);
	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: hsl(15, 100%, 43%);
	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: hsl(0, 0%, 100%);
	background: var(--ck-color-list-background);

	/* A spacing at the beginning and end of the list */
	padding: calc(0.6em * 0.5) 0;
	padding: var(--ck-spacing-small) 0;
}
.ck-rounded-corners .ck.ck-list,
	.ck.ck-list.ck-rounded-corners {
		border-radius: 2px;
		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: calc(0.6em * 0.3) calc(2 * 0.6em);
		padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
		min-height: 0;
		min-height: initial;
		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(1.84615 * 13px);
			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: hsl(218.1, 100%, 58%);
			background: var(--ck-color-list-button-on-background);
			color: hsl(0, 0%, 100%);
			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: hsl(218.1, 100%, 58%);
				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: hsl(0, 0%, 100%);
				border-color: var(--ck-color-base-background);
			}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button):hover:not(.ck-disabled) {
			background: hsl(0, 0%, 94.1%);
			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: hsl(0, 0%, 100%);
			background: var(--ck-color-list-background);
			color: inherit;
		}
.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on:hover:not(.ck-disabled) {
				background: hsl(0, 0%, 94.1%);
				background: var(--ck-color-list-button-hover-background);
				color: inherit;
			}
.ck-list .ck-list__group {
	padding-top: calc(0.6em * 0.8);
	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 hsl(220, 6%, 81%);
		border-top: 1px solid var(--ck-color-base-border);
	}
.ck-list .ck-list__group > .ck-label {
		font-size: 11px;
		font-weight: bold;
		padding: calc(0.6em * 0.8) calc(0.6em * 1.5) 0;
		padding: var(--ck-spacing-medium) var(--ck-spacing-large) 0;
	}
.ck.ck-list__separator {
	height: 1px;
	width: 100%;
	background: hsl(220, 6%, 81%);
	background: var(--ck-color-base-border);

	/* Give the separator some air */
	margin: calc(0.6em * 0.5) 0;
	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: hsl(0, 0%, 100%);
	background: var(--ck-color-base-background);
	padding: calc(0.6em * 0.5);
	padding: var(--ck-spacing-small);
	gap: calc(0.6em * 0.5);
	gap: var(--ck-spacing-small);
	border: 1px solid hsl(220, 6%, 81%);
	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: .5;
			opacity: var(--ck-disabled-opacity);
		}
[dir="ltr"] .ck.ck-menu-bar__menu > .ck-menu-bar__menu__button:not(.ck-button_with-text) {
				padding-left: calc(0.6em * 0.5);
				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: calc(0.6em * 0.5);
				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: calc(0.6em * 0.5) calc(0.6em * 0.8);
		padding: var(--ck-spacing-small) var(--ck-spacing-medium);
		min-height: 0;
		min-height: initial;
	}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-button__label {
			width: auto;
			width: initial;
			line-height: inherit;

			/*
			 * 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: calc(0.5 * calc(1.84615 * 1em));
			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: 0.6em;
				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 * calc(0.6em * 0.5));
				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: 0.6em;

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

				/* A space to accommodate the triangle. */
				margin-right: calc(0.6em * 0.5);
				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 * calc(0.6em * 0.5));
				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: .5;
			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: 18em;
	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: .8333350694em;
			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: calc(0.6em * 0.8);
				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: calc(0.6em * 0.8);
				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: hsl(0, 0%, 100%);

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: -moz-fit-content;
	height: fit-content;
	max-width: 75vw;
	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: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	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: 1px solid hsl(218, 81.8%, 56.9%);

			border: var(--ck-focus-ring);
			box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
			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: hsl(0, 0%, 100%);

	background: var(--ck-color-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	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: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-balloon-panel {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	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 8px 10px 8px;
			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 hsl(220, 6%, 81%) transparent;
			border-color: transparent transparent var(--ck-color-panel-border) transparent;
			margin-top: calc( -1 * 1px );
			margin-top: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-color: transparent transparent hsl(0, 0%, 100%) transparent;
			border-color: transparent transparent var(--ck-color-panel-background) transparent;
			margin-top: calc( 2px - 1px );
			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: 10px 8px 0 8px;
			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: hsl(220, 6%, 81%) transparent transparent;
			border-color: var(--ck-color-panel-border) transparent transparent;
			filter: drop-shadow(0 2px 2px hsla(0, 0%, 0%, 0.15));
			filter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));
			margin-bottom: calc( -1 * 1px );
			margin-bottom: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-color: hsl(0, 0%, 100%) transparent transparent transparent;
			border-color: var(--ck-color-panel-background) transparent transparent transparent;
			margin-bottom: calc( 2px - 1px );
			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: 8px 0 8px 10px;
			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 hsl(220, 6%, 81%);
			border-color: transparent transparent transparent var(--ck-color-panel-border);
			margin-right: calc( -1 * 1px );
			margin-right: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_e"]::after {
			border-color: transparent transparent transparent hsl(0, 0%, 100%);
			border-color: transparent transparent transparent var(--ck-color-panel-background);
			margin-right: calc( 2px - 1px );
			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: 8px 10px 8px 0;
			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 hsl(220, 6%, 81%) transparent transparent;
			border-color: transparent var(--ck-color-panel-border) transparent transparent;
			margin-left: calc( -1 * 1px );
			margin-left: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_w"]::after {
			border-color: transparent hsl(0, 0%, 100%) transparent transparent;
			border-color: transparent var(--ck-color-panel-background) transparent transparent;
			margin-left: calc( 2px - 1px );
			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 * 8px);
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			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 * 8px);
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			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 * 8px);
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			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 * 8px);
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			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 * 8px);
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			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 * 8px);
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			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 * 8px);
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			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 * 8px);
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			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 * 8px);
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			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 * 8px);
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			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 * 10px);
			right: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * 8px);
			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 * 10px);
			left: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * 8px);
			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: hsl(0, 0%, 100%);
	background: var(--ck-color-toolbar-background);
	border-bottom: 1px solid hsl(220, 6%, 81%);
	border-bottom: 1px solid var(--ck-color-toolbar-border);
	padding: 0 calc(0.6em * 0.5);
	padding: 0 var(--ck-spacing-small);

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

		/* We need to use smaller margin because of previous button's right margin. */
		margin-left: calc(0.6em * 0.5);
		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: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-panel-border);
	border-radius: 2px;
	border-radius: var(--ck-border-radius);

	width: 100%;
	height: 100%;
}
.ck .ck-fake-panel div:nth-child( 1 ) {
	margin-left: 6px;
	margin-left: var(--ck-balloon-fake-panel-offset-horizontal);
	margin-top: 6px;
	margin-top: var(--ck-balloon-fake-panel-offset-vertical);
}
.ck .ck-fake-panel div:nth-child( 2 ) {
	margin-left: calc(6px * 2);
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);
	margin-top: calc(6px * 2);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);
}
.ck .ck-fake-panel div:nth-child( 3 ) {
	margin-left: calc(6px * 3);
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);
	margin-top: calc(6px * 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: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
		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
 */
.ck-vertical-form > .ck-button:nth-last-child(2)::after {
	border-right: 1px solid hsl(220, 6%, 81%);
	border-right: 1px solid var(--ck-color-base-border);
}
.ck.ck-responsive-form {
	padding: calc(0.6em * 1.5);
	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: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-responsive-form > :not(:last-child) {
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
@media screen and (max-width: 600px) {
.ck.ck-responsive-form {
		padding: 0;
		width: calc(.8 * 18em);
		width: calc(.8 * var(--ck-input-width));
}

		.ck.ck-responsive-form .ck-labeled-field-view {
			margin: calc(0.6em * 1.5) calc(0.6em * 1.5) 0;
			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 hsl(220, 6%, 81%);
				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: 0.6em;
			padding: var(--ck-spacing-standard);
			margin-top: calc(0.6em * 1.5);
			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 hsl(220, 6%, 81%);
				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 hsl(220, 6%, 81%);
					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: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
					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: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
						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: calc(0.6em * 0.8);
					right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
					left: calc(0.6em * 0.8);
					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: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
						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: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
					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: calc(0.6em * 0.8) calc(0.6em * 1.5);
			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: calc(0.6em * 0.8);
				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: 18px;
	width: var(--ck-toolbar-spinner-size);
	height: 18px;
	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: 18px;
	width: var(--ck-toolbar-spinner-size);
	height: 18px;
	height: var(--ck-toolbar-spinner-size);
	border-radius: 50%;
	border: 2px solid hsl(0, 0%, 20%);
	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: hsl(0, 0%, 20%);
	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: hsl(0, 0%, 100%);

	background: var(--ck-color-toolbar-background);
	padding: 0 calc(0.6em * 0.5);
	padding: 0 var(--ck-spacing-small);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-toolbar-border);
}
.ck-rounded-corners .ck.ck-toolbar,
	.ck.ck-toolbar.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-toolbar .ck.ck-toolbar__separator {
		height: calc(1.84615 * 1em);
		height: var(--ck-icon-size);
		width: 1px;
		min-width: 1px;
		background: hsl(220, 6%, 81%);
		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: calc(0.6em * 0.5);
		margin-top: var(--ck-spacing-small);
		margin-bottom: calc(0.6em * 0.5);
		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: calc(0.6em * 0.5);
			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: calc(0.6em * 0.5);
		margin-top: var(--ck-spacing-small);
		margin-bottom: calc(0.6em * 0.5);
		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: calc(0.6em * 0.3);
			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: calc(0.6em * 0.5);
		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: calc(0.6em * 0.5);
		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: calc(0.6em * 0.5);
		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: calc(0.6em * 0.5);
		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: calc(0.6em * 0.5);
		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 calc(0.6em * 0.8);

	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: hsl(0, 0%, 100%);
		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 hsl(220, 6%, 81%);

			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: 2px;
		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 hsl(220, 6%, 81%);
				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: hsl(0, 0%, 100%);
	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: 2px;
		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: hsl(220, 6%, 81%);
		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
 */
/*
 * 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: hsla(201, 100%, 56%, 0.3);
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-bookmark-selection_collapsed {
	height: 100%;
	border-right: 1px solid hsl(0, 0%, 20%);
	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-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 * 8px);
			bottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			top: calc(-.5 * 8px);
			top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			border: 1px solid hsl(218, 81.8%, 56.9%);
			border: 1px solid var(--ck-clipboard-drop-target-color);
			background: hsl(218, 81.8%, 56.9%);
			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 * 8px);
				top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));

				transform: translateX(-50%);
				border-color: hsl(218, 81.8%, 56.9%) transparent transparent transparent;
				border-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;
				border-width: calc(8px) calc(.5 * 12px) 0 calc(.5 * 12px);
				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: 3px solid hsl(218, 81.8%, 56.9%) !important;
		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 hsl(218, 81.8%, 56.9%);
	border: 1px solid var(--ck-clipboard-drop-target-color);
	background: hsl(218, 81.8%, 56.9%);
	background: var(--ck-clipboard-drop-target-color);
	margin-top: -1px;
}
.ck.ck-clipboard-drop-target-line::before {
		content: '';
		position: absolute;
		top: calc(-.5 * 12px);
		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 * 12px) 0 calc(.5 * 12px) 8px;

			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 hsl(218, 81.8%, 56.9%);
			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 * 12px) 8px calc(.5 * 12px) 0;

			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 hsl(218, 81.8%, 56.9%) transparent transparent;
			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: hsl(0, 0%, 46%);
	background: var(--ck-color-code-block-label-background);

	font-size: 10px;
	font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
	font-family: var(--ck-font-face);
	line-height: 16px;
	padding: calc(0.6em * 0.3) calc(0.6em * 0.8);
	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: hsl(0, 0%, 44%);
			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: calc(0.6em * 1.5);

		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: 0.6em;
				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: 0.6em;
				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: hsl(220, 6%, 81%);

			color: var(--ck-color-base-border);
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				right: 0.6em;
				right: var(--ck-spacing-standard);
	}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				left: 0.6em;
				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: 0.6em;
			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 * calc(0.6em * 1.5) );
		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: calc(0.6em * 1.5);
				padding-left: var(--ck-spacing-large);
				padding-right: calc(0.6em * 1.5);
				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: 0.6em;
				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: 13px;
	font-size: var(--ck-font-size-base);
	background-color: hsl(0, 0%, 98%);
	background-color: var(--ck-color-base-foreground);
}
.ck-widget.raw-html-embed:not(.ck-widget_selected):not(:hover) {
		outline: 1px dashed hsl(0, 0%, 87%);
		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 * 1px);
		top: calc(-1 * var(--ck-html-embed-unfocused-outline-width));
		left: 0.6em;
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background 200ms ease;
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(calc(0.6em * 0.3) + 1px) calc(0.6em * 0.5) calc(0.6em * 0.3);
		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 2px 2px;
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: hsl(0, 0%, 100%);
		color: var(--ck-color-base-background);
		font-size: 0.7em;
		font-size: var(--ck-font-size-tiny);
		font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
		font-family: var(--ck-font-face);
	}
.ck-widget.raw-html-embed[dir="rtl"]::before {
		left: auto;
		right: 0.6em;
		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: calc(0.6em * 0.3) calc(0.6em * 0.5);
		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: calc(0.6em * 0.3) calc(0.6em * 0.5);
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
		background: hsl(218, 81.8%, 56.9%);
		background: var(--ck-color-focus-border);
	}
.ck.ck-editor__editable .ck-widget.raw-html-embed:not(.ck-widget_selected):hover::before {
		top: 0px;
		padding: calc(0.6em * 0.3) calc(0.6em * 0.5);
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
	}
/* ----- Emebed internals --------------------------------------------------------------------- */
.ck-widget.raw-html-embed .raw-html-embed__content-wrapper {
		padding: 0.6em;
		padding: var(--ck-spacing-standard);
	}
/* The switch mode button wrapper. */
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper {
		top: 0.6em;
		top: var(--ck-spacing-standard);
		right: 0.6em;
		right: var(--ck-spacing-standard);
	}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__save-button {
			color: hsl(120, 100%, 27%);
			color: var(--ck-color-button-save);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__cancel-button {
			color: hsl(15, 100%, 43%);
			color: var(--ck-color-button-cancel);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button:not(:first-child) {
			margin-top: calc(0.6em * 0.5);
			margin-top: var(--ck-spacing-small);
		}
.ck-widget.raw-html-embed[dir="rtl"] .raw-html-embed__buttons-wrapper {
		left: 0.6em;
		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: 10em;
		height: var(--ck-html-embed-source-height);
		width: calc(100% - 1.5 * calc(1.84615 * 1em));
		width: var(--ck-html-embed-content-width);
		resize: none;
		min-width: 0;
		padding: 0.6em;
		padding: var(--ck-spacing-standard);

		font-family: monospace;
		-moz-tab-size: 4;
		  -o-tab-size: 4;
		     tab-size: 4;
		white-space: pre-wrap;
		font-size: 13px;
		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: hsl(0, 0%, 98%);
			background: var(--ck-html-embed-source-disabled-background);
			color: hsl(0deg 0% 45%);
			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: hsl(0deg 0% 45%);
			-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: calc(calc(1.84615 * 1em) + 0.6em);
		min-height: var(--ck-html-embed-content-min-height);
		width: calc(100% - 1.5 * calc(1.84615 * 1em));
		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: hsl(0, 0%, 98%);
		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: hsl(0deg 0% 45%);
		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: calc(0.6em * 1.5);
		grid-column-gap: var(--ck-spacing-large);
		margin-top: calc(0.6em * 1.5);
		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: hsl(0, 0%, 20%);
			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: 250px;

		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 hsl(220, 6%, 81%);
			border-top: 1px solid var(--ck-color-base-border);
		}
.ck.ck-image-insert-form > .ck.ck-collapsible:not(:last-child) {
			border-bottom: 1px solid hsl(220, 6%, 81%);
			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: 250px;
		min-width: var(--ck-image-insert-insert-by-url-width);
		padding: calc(0.6em * 1.5);
		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: hsl(120, 100%, 27%);
	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 * 20);
	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(clamp(0px, 100% - 50px, 1px) * 20);
	width: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));
	height: calc(clamp(0px, 100% - 50px, 1px) * 20);
	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: 2px solid hsl(0, 0%, 100%);
		border-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
		border-right: 2px solid hsl(0, 0%, 100%);
		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 * 32px * 2.8 );
		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: 2.8;
		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: 32px;
		width: var(--ck-upload-placeholder-loader-size);
		height: 32px;
		height: var(--ck-upload-placeholder-loader-size);
		border-radius: 50%;
		border-top: 3px solid hsl(0, 0%, 70%);
		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: hsl(209, 92%, 70%);
		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
 */
/* Class added to span element surrounding currently selected link. */
.ck .ck-link_selected {
	background: hsla(201, 100%, 56%, 0.1);
	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: 3px solid hsla(201, 100%, 56%, 0.1);
		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: hsla(201, 100%, 56%, 0.3);
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-link-selection_collapsed {
	height: 100%;
	border-right: 1px solid hsl(0, 0%, 20%);
	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
 */
/**
 * 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
 */
/*
 * Copyright (c) 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
 */
.ck.ck-link-actions .ck-button.ck-link-actions__preview {
		padding-left: 0;
		padding-right: 0;
	}
.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label {
			padding: 0 calc(0.6em * 0.8);
			padding: 0 var(--ck-spacing-medium);
			color: hsl(240, 100%, 47%);
			color: var(--ck-color-link-default);
			text-overflow: ellipsis;
			cursor: pointer;

			/* 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: 18em;
			max-width: var(--ck-input-width);
			min-width: 3em;
			text-align: center;
		}
.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover {
				text-decoration: underline;
			}
.ck.ck-link-actions .ck-button.ck-link-actions__preview,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:active {
			background: none;
		}
.ck.ck-link-actions .ck-button.ck-link-actions__preview:active {
			box-shadow: none;
		}
.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label {
				text-decoration: underline;
			}
[dir="ltr"] .ck.ck-link-actions .ck-button:not(:first-child) {
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-link-actions .ck-button:not(:last-child) {
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
@media screen and (max-width: 600px) {
		.ck.ck-link-actions .ck-button.ck-link-actions__preview {
			margin: 0.6em 0.6em 0;
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;
		}

			.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label {
				min-width: 0;
				max-width: 100%;
			}
			[dir="ltr"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
				margin-left: 0;
	}

			[dir="rtl"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
				margin-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
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Style link form differently when manual decorators are available.
 * See: https://github.com/ckeditor/ckeditor5-link/issues/186.
 */
.ck.ck-link-form_layout-vertical {
	padding: 0;
	min-width: 18em;
	min-width: var(--ck-input-width);
}
.ck.ck-link-form_layout-vertical .ck-labeled-field-view {
		margin: calc(0.6em * 1.5) calc(0.6em * 1.5) calc(0.6em * 0.5);
		margin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);
	}
.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text {
			min-width: 0;
			width: 100%;
		}
.ck.ck-link-form_layout-vertical > .ck-button {
		padding: 0.6em;
		padding: var(--ck-spacing-standard);
		margin: 0;
		width: 50%;
		border-radius: 0;
	}
.ck.ck-link-form_layout-vertical > .ck-button:not(:focus) {
			border-top: 1px solid hsl(220, 6%, 81%);
			border-top: 1px solid var(--ck-color-base-border);
		}
[dir="ltr"] .ck.ck-link-form_layout-vertical > .ck-button {
			margin-left: 0;
	}
[dir="rtl"] .ck.ck-link-form_layout-vertical > .ck-button {
			margin-left: 0;
	}
[dir="rtl"] .ck.ck-link-form_layout-vertical > .ck-button:last-of-type {
				border-right: 1px solid hsl(220, 6%, 81%);
				border-right: 1px solid var(--ck-color-base-border);
			}
/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */
.ck.ck-link-form_layout-vertical .ck.ck-list {
		margin: 0 calc(0.6em * 1.5);
		margin: 0 var(--ck-spacing-large);
	}
.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton {
			padding: 0;
			width: 100%;
		}
.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover {
				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 {
	/* 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(calc(0.6em * 0.8), 6%);
			top: min(var(--ck-spacing-medium), 6%);
			right: min(calc(0.6em * 0.8), 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(clamp(0px, 100% - 50px, 1px) * 20);
			width: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));
			height: calc(clamp(0px, 100% - 50px, 1px) * 20);
			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
 */
/* When there are no list styles and there is no collapsible. */
.ck.ck-list-properties.ck-list-properties_without-styles {
		padding: calc(0.6em * 1.5);
		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: 0.6em;
				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 hsl(220, 6%, 81%);
			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: 0.6em;
						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 * calc(0.6em * 0.3));
		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: calc(0.6em * 0.8);
	row-gap: var(--ck-spacing-medium);
	-moz-column-gap: calc(0.6em * 0.8);
	     column-gap: calc(0.6em * 0.8);
	-moz-column-gap: var(--ck-spacing-medium);
	     column-gap: var(--ck-spacing-medium);
	padding: calc(0.6em * 1.5);
	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: 44px;
		width: var(--ck-list-style-button-size);
		height: 44px;
		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: 44px;
			width: var(--ck-list-style-button-size);
			height: 44px;
			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 * 0.6em );
		padding: calc( 3 * var(--ck-spacing-standard) );
		background: hsl(0, 0%, 98%);
		background: var(--ck-color-base-foreground);
	}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon {
			min-width: 3em;
			min-width: var(--ck-media-embed-placeholder-icon-size);
			height: 3em;
			height: var(--ck-media-embed-placeholder-icon-size);
			margin-bottom: calc(0.6em * 1.5);
			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: hsl(0, 0%, 46%);
			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: hsl(0, 0%, 20%);
				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: hsla(341, 100%, 30%, 0.1);
	background: var(--ck-color-mention-background);
	color: hsl(341, 100%, 30%);
	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: hsla(31, 100%, 65%, .2);
	background-color: var(--ck-color-restricted-editing-exception-background);
	border: 1px solid;
	-o-border-image: linear-gradient(
		to right,
		hsla(31, 100%, 40%, .4) 0%,
		hsla(31, 100%, 40%, .4) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		hsla(31, 100%, 40%, .4) calc(100% - 5px),
		hsla(31, 100%, 40%, .4) 100%
	) 1;
	   border-image: linear-gradient(
		to right,
		hsla(31, 100%, 40%, .4) 0%,
		hsla(31, 100%, 40%, .4) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		hsla(31, 100%, 40%, .4) calc(100% - 5px),
		hsla(31, 100%, 40%, .4) 100%
	) 1;
	-o-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;
	   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: hsla(31, 100%, 65%, .5);
		background-color: var(--ck-color-restricted-editing-selected-exception-background);
		-o-border-image: linear-gradient(
			to right,
			hsla(31, 100%, 40%, .6) 0%,
			hsla(31, 100%, 40%, .6) 5px,
			hsla(31, 100%, 40%, .6) calc(100% - 5px),
			hsla(31, 100%, 40%, .6) 100%
		) 1;
		   border-image: linear-gradient(
			to right,
			hsla(31, 100%, 40%, .6) 0%,
			hsla(31, 100%, 40%, .6) 5px,
			hsla(31, 100%, 40%, .6) calc(100% - 5px),
			hsla(31, 100%, 40%, .6) 100%
		) 1;
		-o-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;
		   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: hsla(31, 100%, 65%, .35);
			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(24px, 1fr));
		grid-template-columns: repeat(auto-fill, minmax(var(--ck-character-grid-tile-size), 1fr));
		margin: 0.6em calc(0.6em * 1.5);
		margin: var(--ck-spacing-standard) var(--ck-spacing-large);
		grid-gap: 0.6em;
		grid-gap: var(--ck-spacing-standard);
	}
.ck.ck-character-grid .ck-character-grid__tile {
		width: 24px;
		width: var(--ck-character-grid-tile-size);
		height: 24px;
		height: var(--ck-character-grid-tile-size);
		min-width: 24px;
		min-width: var(--ck-character-grid-tile-size);
		min-height: 24px;
		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 hsl(0, 0%, 100%), 0 0 0 2px hsl(218, 81.8%, 56.9%);
			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: 24px;
			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: calc(0.6em * 0.5) calc(0.6em * 1.5);
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	border-top: 1px solid hsl(220, 6%, 81%);
	border-top: 1px solid var(--ck-color-base-border);
}
.ck.ck-character-info > * {
		text-transform: uppercase;
		font-size: 0.75em;
		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: calc(0.6em * 1.5);
	row-gap: var(--ck-spacing-large);
	-moz-column-gap: calc(0.6em * 1.5);
	     column-gap: calc(0.6em * 1.5);
	-moz-column-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: 120px;
		width: var(--ck-style-panel-button-width);
		height: 80px;
		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 hsl(220, 6%, 81%);
			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 calc(0.6em * 0.8);
			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: calc(0.6em * 0.8);

			padding: var(--ck-spacing-medium);
			background: hsl(0, 0%, 100%);
			background: var(--ck-color-base-background);
			border: 2px solid hsl(0, 0%, 100%);
			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: hsl(0, 0%, 94.1%);
				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: hsl(0, 0%, 98%);

				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: hsl(218.1, 100%, 58%);
			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 hsl(218.1, 100%, 58%);
				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: hsl(218.2, 100%, 52.5%);
				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: hsl(0, 0%, 94.1%);
				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: hsl(0, 0%, 92.1%);
				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: hsl(0, 0%, 70%);
			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: calc(0.6em * 1.5) 0;
		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: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
	overflow-y: auto;
	max-height: 470px;
	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: hsl(0, 0%, 95%);
				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 hsl(220, 6%, 81%);
				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: 2px;
		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(0.6em / 2) 0.6em;
		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 hsl(220, 6%, 81%);
			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: 0.6em;
			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: 0.6em;
				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
 */
.ck.ck-form {
	padding: 0 0 calc(0.6em * 1.5);
	padding: 0 0 var(--ck-spacing-large);
}
.ck.ck-form:focus {
		/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */
		outline: none;
	}
.ck.ck-form .ck.ck-input-text {
		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 hsl(220, 6%, 81%);
				border: 1px solid var(--ck-color-base-border);
			}
.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label {
				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
 */
.ck.ck-form__row {
	padding: 0.6em calc(0.6em * 1.5) 0;
	padding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;

	/* Ignore labels that work as fieldset legends */
}
[dir="ltr"] .ck.ck-form__row > *:not(.ck-label) + * {
				margin-left: calc(0.6em * 1.5);
				margin-left: var(--ck-spacing-large);
	}
[dir="rtl"] .ck.ck-form__row > *:not(.ck-label) + * {
				margin-right: calc(0.6em * 1.5);
				margin-right: 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: calc(0.6em * 1.5);
		margin-top: var(--ck-spacing-large);
	}
.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label {
			color: hsl(0, 0%, 20%);
			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(12px * 10 + 1px * 20 + 10px * 2);
	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: 10px 10px 0;
	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: 12px;
	min-width: var(--ck-insert-table-dropdown-box-width);
	min-height: 11px;
	min-height: var(--ck-insert-table-dropdown-box-height);
	margin: 1px;
	margin: var(--ck-insert-table-dropdown-box-margin);
	border: 1px solid hsl(220, 6%, 81%);
	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: hsl(218, 81.8%, 56.9%);
		border-color: var(--ck-color-focus-border);
		background: hsl(212.4, 89.3%, 89%);
		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: 0.6em;
				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);
}
/**
		 * 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-editor__nested-editable_focused,
		.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,
		.ck-widget.table td.ck-editor__nested-editable:focus,
		.ck-widget.table th.ck-editor__nested-editable:focus {
			/* A very slight background to highlight the focused cell */
			background: hsla(212, 90%, 80%, .3);
			background: var(--ck-color-selector-focused-cell-background);
			outline: 1px solid hsl(218, 81.8%, 56.9%);
			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: 0.7em;
					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: 2.3em;
				height: var(--ck-ui-component-min-height);
				line-height: 2.3em;
				line-height: var(--ck-ui-component-min-height);
				margin: 0 calc(0.6em * 0.5);
				margin: 0 var(--ck-spacing-small);
			}
.ck.ck-table-form .ck.ck-labeled-field-view {
		padding-top: 0.6em;
		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: hsl(15, 100%, 43%);

			background: var(--ck-color-base-error);
			color: hsl(0, 0%, 100%);
			color: var(--ck-color-base-background);
			padding: calc(0.6em * 0.5) calc(0.6em * 0.8);
			padding: var(--ck-spacing-small) var(--ck-spacing-medium);
			min-width: 150px;
			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: 2px;
		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 hsl(15, 100%, 43%) transparent;
				border-color: transparent transparent var(--ck-color-base-error) transparent;
				border-width: 0 6px 6px 6px;
				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: 0.6em;
				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;
		outline: medium none invert;
		outline: initial;
		box-shadow: none;
		box-shadow: initial;

		/* 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: hsla(208, 90%, 80%, .3);
			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 ::-moz-selection, .ck.ck-editor__editable .table table th.ck-editor__editable_selected ::-moz-selection {
			background-color: transparent;
		}
.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: medium none invert;
			outline: initial;
		}
.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
 */
/*
 * Copyright (c) 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: 3px;
	outline-width: var(--ck-widget-outline-thickness);
	outline-style: solid;
	outline-color: transparent;
	transition: outline-color 200ms ease;
	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: 3px solid hsl(218, 81.8%, 56.9%);
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);
	}
.ck .ck-widget:hover {
		outline-color: hsl(43, 100%, 62%);
		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: 2px 2px 3px hsla(0, 0%, 0%, 0.1) inset, 0 0;
		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: hsl(0, 0%, 100%);
			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: 1px solid hsl(218, 81.8%, 56.9%);
			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 200ms ease,
			visibility 200ms ease,
			opacity 200ms ease;
		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: 2px 2px 0 0;
		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 - 3px);
		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: 16px;
			width: var(--ck-widget-handler-icon-size);
			height: 16px;
			height: var(--ck-widget-handler-icon-size);
			color: hsl(0, 0%, 100%);
			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 ease;
				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: hsl(43, 100%, 62%);
		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: hsl(218, 81.8%, 56.9%);
			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 - 3px);
	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: hsl(0, 0%, 87%);
			background: var(--ck-color-widget-blurred-border);
		}
/* 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: hsl(0, 0%, 87%);
		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: hsl(0, 0%, 87%);
				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 + 16px);
	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 hsl(218, 81.8%, 56.9%);
	outline: 1px solid var(--ck-color-resizer);
}
.ck .ck-widget__resizer__handle {
	width: 10px;
	width: var(--ck-resizer-size);
	height: 10px;
	height: var(--ck-resizer-size);
	background: hsl(218, 81.8%, 56.9%);
	background: var(--ck-color-focus-border);
	border: 1px solid hsl(0, 0%, 100%);
	border: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);
	border-radius: 2px;
	border-radius: var(--ck-resizer-border-radius);
}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left {
		top: calc( ( 10px / -2 ) - 2px);
		top: var(--ck-resizer-offset);
		left: calc( ( 10px / -2 ) - 2px);
		left: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right {
		top: calc( ( 10px / -2 ) - 2px);
		top: var(--ck-resizer-offset);
		right: calc( ( 10px / -2 ) - 2px);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		bottom: calc( ( 10px / -2 ) - 2px);
		bottom: var(--ck-resizer-offset);
		right: calc( ( 10px / -2 ) - 2px);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		bottom: calc( ( 10px / -2 ) - 2px);
		bottom: var(--ck-resizer-offset);
		left: calc( ( 10px / -2 ) - 2px);
		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: 20px;
		width: var(--ck-widget-type-around-button-size);
		height: 20px;
		height: var(--ck-widget-type-around-button-size);
		background: var(--ck-color-widget-type-around-button);
		border-radius: 100px;
		transition: opacity 200ms ease, background 200ms ease;
		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: hsl(0, 0%, 100%);
				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 gets selected or being hovered.
	 */
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .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: hsl(43, 100%, 62%);
		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: hsl(218, 81.8%, 56.9%);
		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(20px - 2px);
			width: calc(var(--ck-widget-type-around-button-size) - 2px);
			height: calc(20px - 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 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: hsl(0, 0%, 20%);
		background: var(--ck-color-base-text);
	}
/*
	 * 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;
		}
/*
		 * 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: hsl(43, 100%, 62%);
			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.
 */
.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;
			}
/*
 * 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: hsl(0, 0%, 87%);
	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(218, 81.8%, 56.9%, 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(218, 81.8%, 56.9%, .3);
		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(218, 81.8%, 56.9%, 0);
		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 {
	--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-bookmark.ck-widget {
		outline: none;
	}

.ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon__fill {
			transition: fill 200ms ease;
			transition: fill var(--ck-bookmark-icon-animation-duration) var(--ck-bookmark-icon-animation-curve);
		}

.ck-bookmark.ck-widget:hover .ck-bookmark__icon .ck-icon__fill {
				fill: hsl(43, 100%, 62%);
				fill: var(--ck-bookmark-icon-hover-fill-color);
			}

.ck-bookmark.ck-widget.ck-widget_selected .ck-bookmark__icon .ck-icon__fill {
				fill: hsl(218, 81.8%, 56.9%);
				fill: var(--ck-bookmark-icon-selected-fill-color);
			}

.ck-bookmark.ck-widget.ck-widget_selected,
		.ck-bookmark.ck-widget.ck-widget_selected:hover {
			outline: none;
		}

.ck-bookmark.ck-widget .ck-bookmark__icon {
			position: relative;
			/* To make it align with text baseline. */
			top: -0.1em;
		}

.ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon {
				height: 1.2em;
				width: auto;
				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
 */

/*
 * Copyright (c) 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-bookmark-view:focus {
		outline: none;
	}

.ck.ck-bookmark-form {
	display: flex;
	align-items: flex-start;
}

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

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

		.ck.ck-bookmark-form .ck-button,
		.ck.ck-bookmark-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-bookmark-form .ck-button {
			justify-content: center;
		}
	}

@media screen and (max-width: 600px) {
				.ck.ck-bookmark-form.ck-responsive-form > .ck-button:nth-last-child(1) {
					margin: calc(0.6em * 1.5);
					margin: var(--ck-spacing-large);
					padding: 0 0.6em;
					padding: 0 var(--ck-spacing-standard);
					border-radius: 2px;
					border-radius: var(--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
 */

/*
 * Copyright (c) 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-actions {
	display: flex;
	align-items: center;
}

.ck.ck-bookmark-actions .ck-bookmark-actions__preview {
		max-width: 18em;
		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;

		user-select: none;
		cursor: default;
	}

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

.ck.ck-bookmark-actions {
		display: flex;
		flex-wrap: wrap;
}

		.ck.ck-bookmark-actions .ck-bookmark-actions__preview {
			flex-basis: 100%;
			margin: 0.6em 0.6em 0;
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;
			min-width: auto;
		}
	}

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

.ck.ck-bookmark-actions.ck-responsive-form .ck-button {
				flex-basis: 50%;
				margin-top: 0.6em;
				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 {
	/* 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,
					hsl(220, 10%, 90%),
					hsl(220, 10%, 98%),
					hsl(220, 10%, 90%)
				);

				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;

	-moz-tab-size: 4;

	  -o-tab-size: 4;

	     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: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
		background: initial;
		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: calc( 1 + 999 );
		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 hsl(220, 6%, 81%);
	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 hsl(220, 6%, 81%);
		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(27px, 1fr));
			grid-template-columns: repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));
			margin: 0.6em calc(0.6em * 1.5);
			margin: var(--ck-spacing-standard) var(--ck-spacing-large);
			grid-gap: calc(0.6em * 0.5);
			grid-gap: var(--ck-spacing-small);
		}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
			width: 27px;
			width: var(--ck-emoji-grid-tile-size);
			height: 27px;
			height: var(--ck-emoji-grid-tile-size);
			min-width: 27px;
			min-width: var(--ck-emoji-grid-tile-size);
			min-height: 27px;
			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 hsl(0, 0%, 100%), 0 0 0 2px hsl(218, 81.8%, 56.9%);
				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: 27px;
				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 calc(0.6em * 1.5);
	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: 1.4em;
		font-size: var(--ck-font-size-big);
		min-width: 1.4em;
		min-width: var(--ck-font-size-big);
		min-height: 1.4em;
		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: hsl(218.1, 100%, 58%);
			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: 0.6em;
	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: auto;
				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-emoji {
	width: 320px;
}

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

/*
 * 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: hsla(201, 100%, 56%, 0.3);
	background: var(--ck-color-link-fake-selection);
}

/* A collapsed fake visual selection. */
.ck .ck-fake-emoji-selection_collapsed {
	height: 100%;
	border-right: 1px solid hsl(0, 0%, 20%);
	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
 */

/* 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: hsl(60, 100%, 50%);
	background: var(--ck-color-highlight-background);
	color: hsl(0, 0%, 20%);
	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
 */

.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: hsl(60, 97%, 73%);
		background-color: var(--ck-highlight-marker-yellow);
	}
.ck-content .marker-green {
		background-color: hsl(120, 93%, 68%);
		background-color: var(--ck-highlight-marker-green);
	}
.ck-content .marker-pink {
		background-color: hsl(345, 96%, 73%);
		background-color: var(--ck-highlight-marker-pink);
	}
.ck-content .marker-blue {
		background-color: hsl(201, 97%, 72%);
		background-color: var(--ck-highlight-marker-blue);
	}

.ck-content .pen-red {
		color: hsl(0, 85%, 49%);
		color: var(--ck-highlight-pen-red);

		/* Override default yellow background of `<mark>` from user agent stylesheet */
		background-color: transparent;
	}
.ck-content .pen-green {
		color: hsl(112, 100%, 27%);
		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: 13px;
	font-size: var(--ck-font-size-base);
	background-color: hsl(0, 0%, 98%);
	background-color: var(--ck-color-base-foreground);
	padding: calc(0.6em * 0.5);
	padding: var(--ck-spacing-small);
	/* Leave space for label */
	padding-top: calc(0.7em + calc(0.6em * 1.5));
	padding-top: calc(var(--ck-font-size-tiny) + var(--ck-spacing-large));
	min-width: calc(76px + 0.6em);
	min-width: calc(76px + var(--ck-spacing-standard));
}

.ck-widget.html-object-embed:not(.ck-widget_selected):not(:hover) {
		outline: 1px dashed hsl(0, 0%, 87%);
		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: 0.6em;
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background 200ms ease;
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(calc(0.6em * 0.3) + 1px) calc(0.6em * 0.5) calc(0.6em * 0.3);
		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 2px 2px;
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: hsl(0, 0%, 100%);
		color: var(--ck-color-base-background);
		font-size: 0.7em;
		font-size: var(--ck-font-size-tiny);
		font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
		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: hsl(0, 0%, 20%);
	color: var(--ck-color-image-caption-text);
	background-color: hsl(0, 0%, 97%);
	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: transparent;
		background-color: initial;
		color: inherit;
}
	}

/* 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: hsl(52deg 100% 50%);
		background-color: var(--ck-color-image-caption-highlighted-background);
	}

	100% {
		background-color: hsl(0, 0%, 97%);
		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: calc(0.6em * 1.5) calc(0.6em * 1.5) 0;
	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: 0.6em;
	margin-right: var(--ck-spacing-standard);
}

[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-left: 0.6em;
	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
 */

/*
 * Copyright (c) 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-custom-resize-form {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-start;
}

.ck.ck-image-custom-resize-form .ck-labeled-field-view {
		display: inline-block;
	}

.ck.ck-image-custom-resize-form .ck-label {
		display: none;
	}

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

.ck.ck-image-custom-resize-form {
		flex-wrap: wrap;
}

		.ck.ck-image-custom-resize-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-image-custom-resize-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-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% - 1.5em);
			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: 1.5em;
			margin-left: var(--ck-image-style-spacing);
			max-width: 50%;
		}

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

.ck-content .image.image-style-align-right {
			float: right;
			margin-left: 1.5em;
			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: 1.5em;
		margin-right: var(--ck-image-style-spacing);
	}

.ck-content .image-style-align-right {
		float: right;
		margin-left: 1.5em;
		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: calc(1.5em / 2);
			margin-top: var(--ck-inline-image-style-spacing);
			margin-bottom: calc(1.5em / 2);
			margin-bottom: var(--ck-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-left {
			margin-right: calc(1.5em / 2);
			margin-right: var(--ck-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-right {
			margin-left: calc(1.5em / 2);
			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: hsl(212, 100%, 97.1%);
				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: hsl(211.7, 100%, 92.9%);
				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
 */

/*
 * Copyright (c) 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-text-alternative-form {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
}

.ck.ck-text-alternative-form .ck-labeled-field-view {
		display: inline-block;
	}

.ck.ck-text-alternative-form .ck-label {
		display: none;
	}

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

.ck.ck-text-alternative-form {
		flex-wrap: wrap;
}

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

		.ck.ck-text-alternative-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
 */

.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(calc(0.6em * 0.8), 6%);
	top: min(var(--ck-spacing-medium), 6%);
	right: min(calc(0.6em * 0.8), 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 ::-moz-selection {
				display: none;
			}

.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
 */

/* 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
 */

.ck.ck-link-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
}

.ck.ck-link-actions .ck-link-actions__preview {
		display: inline-block;
	}

.ck.ck-link-actions .ck-link-actions__preview .ck-button__label {
			overflow: hidden;
		}

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

.ck.ck-link-actions {
		flex-wrap: wrap;
}

		.ck.ck-link-actions .ck-link-actions__preview {
			flex-basis: 100%;
		}

		.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
			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
 */

/*
 * Copyright (c) 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-form {
	display: flex;
	align-items: flex-start;
}

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

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

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

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

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

/*
 * Style link form differently when manual decorators are available.
 * See: https://github.com/ckeditor/ckeditor5-link/issues/186.
 */
.ck.ck-link-form_layout-vertical {
	display: block;

	/*
	 * Whether the form is in the responsive mode or not, if there are decorator buttons
	 * keep the top margin of action buttons medium.
	 */
}
.ck.ck-link-form_layout-vertical .ck-button.ck-button-save,
		.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel {
			margin-top: calc(0.6em * 0.8);
			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
 */

.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: 16px;
			width: var(--ck-todo-list-checkmark-size);
			height: 16px;
			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( 16px / 3 );
		left: calc( var(--ck-todo-list-checkmark-size) / 3 );
		top: calc( 16px / 5.3 );
		top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		width: calc( 16px / 5.3 );
		width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		height: calc( 16px / 2.6 );
		height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( 16px / 8 ) calc( 16px / 8 ) 0;
		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: 16px;
		width: var(--ck-todo-list-checkmark-size);
		height: 16px;
		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( 16px / 3 );
		left: calc( var(--ck-todo-list-checkmark-size) / 3 );
		top: calc( 16px / 5.3 );
		top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		width: calc( 16px / 5.3 );
		width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		height: calc( 16px / 2.6 );
		height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( 16px / 8 ) calc( 16px / 8 ) 0;
		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: 300px;
	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;
	}

/*
 * Copyright (c) 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;
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	background: hsl(0, 0%, 100%);
	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 hsl(0deg 0% 75%);
		outline: 1px solid var(--ck-color-minimap-iframe-outline);
		box-shadow: 0 2px 5px hsl(0deg 0% 0% / 11%);
		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( 208, 0%, 51%, .2 );
		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( 208, 0%, 51%, .3 );
			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( 208, 0%, 51%, .4 );
			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: hsl(0,0%,40%);
			background: var(--ck-color-minimap-progress-background);
			color: hsl(0, 0%, 100%);
			color: var(--ck-color-base-background);
			border: 1px solid hsl(0, 0%, 100%);
			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;
	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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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 hsl(0, 0%, 46%);
		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: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
	margin: 0;
	border: 1px solid transparent;
	line-height: 1.84615;
	line-height: var(--ck-line-height-base);
	font-size: 1em;
	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: hsl(220, 6%, 81%);

	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: 2px;
		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: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 2px 2px 3px hsla(0, 0%, 0%, 0.1) inset, 0 0;
		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: calc(0.6em * 0.8) calc(0.6em * 1.5);
			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: 0.6em;
				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: hsl(15, 100%, 43%);
					background: var(--ck-color-base-error);
					color: hsl(0, 0%, 100%);
					color: var(--ck-color-base-background);
					padding: calc(0.6em * 0.5) calc(0.6em * 0.8);
					padding: var(--ck-spacing-small) var(--ck-spacing-medium);
					min-width: 150px;
					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 hsl(15, 100%, 43%) transparent;
						border-color: transparent transparent var(--ck-color-base-error) transparent;
						border-width: 0 6px 6px 6px;
						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: 0.7em;
					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 hsl(220, 6%, 81%);
						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(3,auto);
	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
 */

.ck-content .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;
	display: table;
}

.ck-content .table table {
		/* The table cells should have slight borders */
		border-collapse: collapse;
		border-spacing: 0;

		/* Table width and height are set on the parent <figure>. Make sure the table inside stretches
		to the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */
		width: 100%;
		height: 100%;

		/* 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%);
	}

.ck-content .table table td,
		.ck-content .table table th {
			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%);
		}

.ck-content .table table th {
			font-weight: bold;
			background: hsla(0, 0%, 0%, 5%);
		}

/**
 * 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.
 */
@media print {
	.ck-content .table table {
		height: auto;
		height: initial;
	}
}

/* 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-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-form__row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;

	/* Ignore labels that work as fieldset legends */
}

.ck.ck-form__row > *:not(.ck-label) {
		flex-grow: 1;
	}

.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-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.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;
			}

.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 * 6px );
			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 * 6px );
				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: hsl(0, 0%, 20%);
	color: var(--ck-color-selector-caption-text);
	background-color: hsl(0, 0%, 97%);
	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: transparent;
		background-color: initial;
		color: inherit;
		}
	}

/* 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: hsl(52deg 100% 50%);
		background-color: var(--ck-color-selector-caption-highlighted-background);
	}

	100% {
		background-color: hsl(0, 0%, 97%);
		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 table {
	overflow: hidden;
}

.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;
	position: relative;
}

.ck.ck-editor__editable .table .ck-table-column-resizer {
	position: absolute;
	top: 0;
	bottom: 0;
	right: calc(7px * -0.5 - 0.5px);
	right: var(--ck-table-column-resizer-position-offset);
	width: 7px;
	width: var(--ck-table-column-resizer-width);
	cursor: col-resize;
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	z-index: 1;
	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: hsl(218.1, 100%, 58%);
	background-color: var(--ck-color-selector-column-resizer-hover);
	opacity: 0.25;
	/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,
	   it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as
	   it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally
	   unrealistic height for a single table. */
	top: -999999px;
	bottom: -999999px;
}

.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {
	left: calc(7px * -0.5 - 0.5px);
	left: var(--ck-table-column-resizer-position-offset);
	right: auto;
	right: 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
 */

/*
 * Copyright (c) 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: hsl(0, 0%, 100%);
	background: var(--ck-powered-by-background);
	min-height: 0;
	min-height: initial;
	z-index: calc( calc( 1 + 999 ) - 1 );
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by {
		line-height: calc(13px * 10 / 13);
		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: calc(13px * 10 / 13);
			line-height: var(--ck-powered-by-line-height);
			padding: 2px 4px;
			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: calc(13px * 7.5 / 13);
			font-size: var(--ck-powered-by-font-size);
			letter-spacing: calc(13px * -0.2 / 13);
			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: hsl(0, 0%, 31%);
			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: calc(13px * 53 / 13);
			width: var(--ck-powered-by-icon-width);
			height: calc(13px * 10 / 13);
			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: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		border-color: hsl(218, 81.8%, 56.9%);
		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: hsl(0, 0%, 100%);
	background: var(--ck-evaluation-badge-background);
	min-height: 0;
	min-height: initial;
	z-index: calc( calc( 1 + 999 ) - 1 );
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge {
		line-height: calc(13px * 7.5 / 13);
		line-height: var(--ck-evaluation-badge-line-height);
		padding: 2px 4px;
		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: calc(13px * 7.5 / 13);
			font-size: var(--ck-evaluation-badge-font-size);
			letter-spacing: calc(13px * -0.2 / 13);
			letter-spacing: var(--ck-evaluation-badge-letter-spacing);
			font-weight: bold;
			line-height: normal;
			text-transform: uppercase;
			color: hsl(0, 0%, 31%);
			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: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		border-color: hsl(218, 81.8%, 56.9%);
		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;
	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: 0;
	min-height: initial;
	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: calc(0.6em * 0.5);
			padding-left: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button.ck-list-item-button_toggleable {
			padding-right: calc(0.6em * 0.5);
			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: calc(0.6em * 0.5);
			margin-right: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button .ck-list-item-button__check-holder {
			margin-left: calc(0.6em * 0.5);
			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: -moz-max-content;
	width: max-content;
}

.color-picker-hex-input .ck.ck-input {
		min-width: 0;
		min-width: initial;
	}

.ck.ck-color-picker__row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	margin: calc(0.6em * 1.5) 0 0;
	margin: var(--ck-spacing-large) 0 0;
	width: auto;
	width: initial;
}

.ck.ck-color-picker__row .ck.ck-labeled-field-view {
		padding-top: 0;
		padding-top: initial;
	}

.ck.ck-color-picker__row .ck.ck-input-text {
		width: auto;
		width: initial;
	}

.ck.ck-color-picker__row .ck-color-picker__hash-view {
		padding-top: calc(0.6em * 0.3);
		padding-top: var(--ck-spacing-tiny);
		padding-right: calc(0.6em * 0.8);
		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 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 {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        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: -moz-fit-content;
	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: 1;
		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: calc( 1 + 999 );
		z-index: var(--ck-z-panel);
		max-width: 75vw;
		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( calc( 1 + 999 ) + 1 );
	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(1 + 1);
		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: -moz-max-content;
	width: max-content;
	max-width: 60vw;
	max-width: var(--ck-toolbar-dropdown-max-width);
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel .ck-button:focus {
			z-index: calc(1 + 1);
			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: 1;
	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(calc( 1 + 999 ) + 1);
	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__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;
	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: 1;
		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: calc( 1 + 999 );

	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: calc(1 - 3);
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			z-index: calc(calc(1 - 3) + 1);
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before {
			z-index: calc(1 - 3);
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			z-index: calc(calc(1 - 3) + 1);
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before {
			z-index: calc(1 - 3);
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			z-index: calc(calc(1 - 3) + 1);
			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(calc( 1 + 999 ) - 1);
	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: calc( 1 + 999 );
		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: calc( 1 + 999 );
		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: calc(0.6em * 0.8);
				left: var(--ck-spacing-medium);
	}

[dir="rtl"] .ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
				right: calc(0.6em * 0.8);
				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: hsl(60, 100%, 50%);
	background: var(--ck-color-highlight-background);
	vertical-align: baseline;
	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;
	user-select: none;

	z-index: calc( 9999 + 100 );

	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;
	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: 1;
	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: 1;
		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: calc( 1 + 999 );
	z-index: var(--ck-z-panel);
	max-width: 75vw;
	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% - 5px );
		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% - 5px );
		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: hsl(0, 0%, 15%);
	background: var(--ck-color-resizer-tooltip-background);
	color: hsl(0, 0%, 95%);
	color: var(--ck-color-resizer-tooltip-text);
	border: 1px solid hsl(0, 0%, 95%);
	border: 1px solid var(--ck-color-resizer-tooltip-text);
	border-radius: 2px;
	border-radius: var(--ck-resizer-border-radius);
	font-size: 0.7em;
	font-size: var(--ck-font-size-tiny);
	display: block;
	padding: 0 calc(0.6em * 0.5);
	padding: 0 var(--ck-spacing-small);
	height: calc(calc(0.6em * 0.5) * 2 + 10px);
	height: var(--ck-resizer-tooltip-height);
	line-height: calc(calc(0.6em * 0.5) * 2 + 10px);
	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: 10px;
		top: var(--ck-resizer-tooltip-offset);
		left: 10px;
		left: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-top-right {
		top: 10px;
		top: var(--ck-resizer-tooltip-offset);
		right: 10px;
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-right {
		bottom: 10px;
		bottom: var(--ck-resizer-tooltip-offset);
		right: 10px;
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-left {
		bottom: 10px;
		bottom: var(--ck-resizer-tooltip-offset);
		left: 10px;
		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(calc(calc(0.6em * 0.5) * 2 + 10px) * -1);
		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: 1;
		z-index: var(--ck-z-default);
	}

.ck .ck-widget .ck-widget__type-around__button svg {
			position: absolute;
			top: 50%;
			left: 50%;
			z-index: calc(1 + 2);
			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 * 3px);
			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 * 3px);
			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(1 + 1);
			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 * 3px );
		left: calc( -1 * var(--ck-widget-outline-thickness) );
		right: calc( -1 * 3px );
		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 * 3px - 1px );
		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 * 3px - 1px );
		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;
}


@charset "UTF-8";
.react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view--down-arrow, .react-datepicker__navigation-icon::before {
  border-color: #ccc;
  border-style: solid;
  border-width: 3px 3px 0 0;
  content: "";
  display: block;
  height: 9px;
  position: absolute;
  top: 6px;
  width: 9px;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle {
  margin-left: -4px;
  position: absolute;
  width: 0;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after {
  box-sizing: content-box;
  position: absolute;
  border: 8px solid transparent;
  height: 0;
  width: 1px;
  content: "";
  z-index: -1;
  border-width: 8px;
  left: -8px;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before {
  border-bottom-color: #aeaeae;
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle {
  top: 0;
  margin-top: -8px;
}
.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after {
  border-top: none;
  border-bottom-color: #f0f0f0;
}
.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after {
  top: 0;
}
.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before {
  top: -1px;
  border-bottom-color: #aeaeae;
}

.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle {
  bottom: 0;
  margin-bottom: -8px;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after {
  border-bottom: none;
  border-top-color: #fff;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after {
  bottom: 0;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before {
  bottom: -1px;
  border-top-color: #aeaeae;
}

.react-datepicker-wrapper {
  display: inline-block;
  padding: 0;
  border: 0;
}

.react-datepicker {
  font-family: "Helvetica Neue", helvetica, arial, sans-serif;
  font-size: 0.8rem;
  background-color: #fff;
  color: #000;
  border: 1px solid #aeaeae;
  border-radius: 0.3rem;
  display: inline-block;
  position: relative;
}

.react-datepicker--time-only .react-datepicker__triangle {
  left: 35px;
}
.react-datepicker--time-only .react-datepicker__time-container {
  border-left: 0;
}
.react-datepicker--time-only .react-datepicker__time,
.react-datepicker--time-only .react-datepicker__time-box {
  border-bottom-left-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}

.react-datepicker__triangle {
  position: absolute;
  left: 50px;
}

.react-datepicker-popper {
  z-index: 1;
}
.react-datepicker-popper[data-placement^=bottom] {
  padding-top: 10px;
}
.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle, .react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle {
  left: auto;
  right: 50px;
}
.react-datepicker-popper[data-placement^=top] {
  padding-bottom: 10px;
}
.react-datepicker-popper[data-placement^=right] {
  padding-left: 8px;
}
.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle {
  left: auto;
  right: 42px;
}
.react-datepicker-popper[data-placement^=left] {
  padding-right: 8px;
}
.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle {
  left: 42px;
  right: auto;
}

.react-datepicker__header {
  text-align: center;
  background-color: #f0f0f0;
  border-bottom: 1px solid #aeaeae;
  border-top-left-radius: 0.3rem;
  padding: 8px 0;
  position: relative;
}
.react-datepicker__header--time {
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}
.react-datepicker__header--time:not(.react-datepicker__header--time--only) {
  border-top-left-radius: 0;
}
.react-datepicker__header:not(.react-datepicker__header--has-time-select) {
  border-top-right-radius: 0.3rem;
}

.react-datepicker__year-dropdown-container--select,
.react-datepicker__month-dropdown-container--select,
.react-datepicker__month-year-dropdown-container--select,
.react-datepicker__year-dropdown-container--scroll,
.react-datepicker__month-dropdown-container--scroll,
.react-datepicker__month-year-dropdown-container--scroll {
  display: inline-block;
  margin: 0 15px;
}

.react-datepicker__current-month,
.react-datepicker-time__header,
.react-datepicker-year-header {
  margin-top: 0;
  color: #000;
  font-weight: bold;
  font-size: 0.944rem;
}

.react-datepicker-time__header {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.react-datepicker__navigation {
  align-items: center;
  background: none;
  display: flex;
  justify-content: center;
  text-align: center;
  cursor: pointer;
  position: absolute;
  top: 2px;
  padding: 0;
  border: none;
  z-index: 1;
  height: 32px;
  width: 32px;
  text-indent: -999em;
  overflow: hidden;
}
.react-datepicker__navigation--previous {
  left: 2px;
}
.react-datepicker__navigation--next {
  right: 2px;
}
.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) {
  right: 85px;
}
.react-datepicker__navigation--years {
  position: relative;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.react-datepicker__navigation--years-previous {
  top: 4px;
}
.react-datepicker__navigation--years-upcoming {
  top: -4px;
}
.react-datepicker__navigation:hover *::before {
  border-color: #a6a6a6;
}

.react-datepicker__navigation-icon {
  position: relative;
  top: -1px;
  font-size: 20px;
  width: 0;
}
.react-datepicker__navigation-icon--next {
  left: -2px;
}
.react-datepicker__navigation-icon--next::before {
  transform: rotate(45deg);
  left: -7px;
}
.react-datepicker__navigation-icon--previous {
  right: -2px;
}
.react-datepicker__navigation-icon--previous::before {
  transform: rotate(225deg);
  right: -7px;
}

.react-datepicker__month-container {
  float: left;
}

.react-datepicker__year {
  margin: 0.4rem;
  text-align: center;
}
.react-datepicker__year-wrapper {
  display: flex;
  flex-wrap: wrap;
  max-width: 180px;
}
.react-datepicker__year .react-datepicker__year-text {
  display: inline-block;
  width: 4rem;
  margin: 2px;
}

.react-datepicker__month {
  margin: 0.4rem;
  text-align: center;
}
.react-datepicker__month .react-datepicker__month-text,
.react-datepicker__month .react-datepicker__quarter-text {
  display: inline-block;
  width: 4rem;
  margin: 2px;
}

.react-datepicker__input-time-container {
  clear: both;
  width: 100%;
  float: left;
  margin: 5px 0 10px 15px;
  text-align: left;
}
.react-datepicker__input-time-container .react-datepicker-time__caption {
  display: inline-block;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container {
  display: inline-block;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input {
  display: inline-block;
  margin-left: 10px;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input {
  width: auto;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time] {
  -moz-appearance: textfield;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter {
  margin-left: 5px;
  display: inline-block;
}

.react-datepicker__time-container {
  float: right;
  border-left: 1px solid #aeaeae;
  width: 85px;
}
.react-datepicker__time-container--with-today-button {
  display: inline;
  border: 1px solid #aeaeae;
  border-radius: 0.3rem;
  position: absolute;
  right: -87px;
  top: 0;
}
.react-datepicker__time-container .react-datepicker__time {
  position: relative;
  background: white;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box {
  width: 85px;
  overflow-x: hidden;
  margin: 0 auto;
  text-align: center;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list {
  list-style: none;
  margin: 0;
  height: calc(195px + 1.7rem / 2);
  overflow-y: scroll;
  padding-right: 0;
  padding-left: 0;
  width: 100%;
  box-sizing: content-box;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item {
  height: 30px;
  padding: 5px 10px;
  white-space: nowrap;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover {
  cursor: pointer;
  background-color: #f0f0f0;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {
  background-color: #216ba5;
  color: white;
  font-weight: bold;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover {
  background-color: #216ba5;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled {
  color: #ccc;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover {
  cursor: default;
  background-color: transparent;
}

.react-datepicker__week-number {
  color: #ccc;
  display: inline-block;
  width: 1.7rem;
  line-height: 1.7rem;
  text-align: center;
  margin: 0.166rem;
}
.react-datepicker__week-number.react-datepicker__week-number--clickable {
  cursor: pointer;
}
.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected,
.react-datepicker__week-number--keyboard-selected):hover {
  border-radius: 0.3rem;
  background-color: #f0f0f0;
}
.react-datepicker__week-number--selected {
  border-radius: 0.3rem;
  background-color: #216ba5;
  color: #fff;
}
.react-datepicker__week-number--selected:hover {
  background-color: #1d5d90;
}
.react-datepicker__week-number--keyboard-selected {
  border-radius: 0.3rem;
  background-color: #2a87d0;
  color: #fff;
}
.react-datepicker__week-number--keyboard-selected:hover {
  background-color: #1d5d90;
}

.react-datepicker__day-names {
  white-space: nowrap;
  margin-bottom: -8px;
}

.react-datepicker__week {
  white-space: nowrap;
}

.react-datepicker__day-name,
.react-datepicker__day,
.react-datepicker__time-name {
  color: #000;
  display: inline-block;
  width: 1.7rem;
  line-height: 1.7rem;
  text-align: center;
  margin: 0.166rem;
}

.react-datepicker__day,
.react-datepicker__month-text,
.react-datepicker__quarter-text,
.react-datepicker__year-text {
  cursor: pointer;
}
.react-datepicker__day:hover,
.react-datepicker__month-text:hover,
.react-datepicker__quarter-text:hover,
.react-datepicker__year-text:hover {
  border-radius: 0.3rem;
  background-color: #f0f0f0;
}
.react-datepicker__day--today,
.react-datepicker__month-text--today,
.react-datepicker__quarter-text--today,
.react-datepicker__year-text--today {
  font-weight: bold;
}
.react-datepicker__day--highlighted,
.react-datepicker__month-text--highlighted,
.react-datepicker__quarter-text--highlighted,
.react-datepicker__year-text--highlighted {
  border-radius: 0.3rem;
  background-color: #3dcc4a;
  color: #fff;
}
.react-datepicker__day--highlighted:hover,
.react-datepicker__month-text--highlighted:hover,
.react-datepicker__quarter-text--highlighted:hover,
.react-datepicker__year-text--highlighted:hover {
  background-color: #32be3f;
}
.react-datepicker__day--highlighted-custom-1,
.react-datepicker__month-text--highlighted-custom-1,
.react-datepicker__quarter-text--highlighted-custom-1,
.react-datepicker__year-text--highlighted-custom-1 {
  color: magenta;
}
.react-datepicker__day--highlighted-custom-2,
.react-datepicker__month-text--highlighted-custom-2,
.react-datepicker__quarter-text--highlighted-custom-2,
.react-datepicker__year-text--highlighted-custom-2 {
  color: green;
}
.react-datepicker__day--holidays,
.react-datepicker__month-text--holidays,
.react-datepicker__quarter-text--holidays,
.react-datepicker__year-text--holidays {
  position: relative;
  border-radius: 0.3rem;
  background-color: #ff6803;
  color: #fff;
}
.react-datepicker__day--holidays .holiday-overlay,
.react-datepicker__month-text--holidays .holiday-overlay,
.react-datepicker__quarter-text--holidays .holiday-overlay,
.react-datepicker__year-text--holidays .holiday-overlay {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #333;
  color: #fff;
  padding: 4px;
  border-radius: 4px;
  white-space: nowrap;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.3s ease-in-out;
}
.react-datepicker__day--holidays:hover,
.react-datepicker__month-text--holidays:hover,
.react-datepicker__quarter-text--holidays:hover,
.react-datepicker__year-text--holidays:hover {
  background-color: #cf5300;
}
.react-datepicker__day--holidays:hover .holiday-overlay,
.react-datepicker__month-text--holidays:hover .holiday-overlay,
.react-datepicker__quarter-text--holidays:hover .holiday-overlay,
.react-datepicker__year-text--holidays:hover .holiday-overlay {
  visibility: visible;
  opacity: 1;
}
.react-datepicker__day--selected, .react-datepicker__day--in-selecting-range, .react-datepicker__day--in-range,
.react-datepicker__month-text--selected,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--selected,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--selected,
.react-datepicker__year-text--in-selecting-range,
.react-datepicker__year-text--in-range {
  border-radius: 0.3rem;
  background-color: #216ba5;
  color: #fff;
}
.react-datepicker__day--selected:hover, .react-datepicker__day--in-selecting-range:hover, .react-datepicker__day--in-range:hover,
.react-datepicker__month-text--selected:hover,
.react-datepicker__month-text--in-selecting-range:hover,
.react-datepicker__month-text--in-range:hover,
.react-datepicker__quarter-text--selected:hover,
.react-datepicker__quarter-text--in-selecting-range:hover,
.react-datepicker__quarter-text--in-range:hover,
.react-datepicker__year-text--selected:hover,
.react-datepicker__year-text--in-selecting-range:hover,
.react-datepicker__year-text--in-range:hover {
  background-color: #1d5d90;
}
.react-datepicker__day--keyboard-selected,
.react-datepicker__month-text--keyboard-selected,
.react-datepicker__quarter-text--keyboard-selected,
.react-datepicker__year-text--keyboard-selected {
  border-radius: 0.3rem;
  background-color: #bad9f1;
  color: rgb(0, 0, 0);
}
.react-datepicker__day--keyboard-selected:hover,
.react-datepicker__month-text--keyboard-selected:hover,
.react-datepicker__quarter-text--keyboard-selected:hover,
.react-datepicker__year-text--keyboard-selected:hover {
  background-color: #1d5d90;
}
.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range) {
  background-color: rgba(33, 107, 165, 0.5);
}
.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range), .react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range) {
  background-color: #f0f0f0;
  color: #000;
}
.react-datepicker__day--disabled,
.react-datepicker__month-text--disabled,
.react-datepicker__quarter-text--disabled,
.react-datepicker__year-text--disabled {
  cursor: default;
  color: #ccc;
}
.react-datepicker__day--disabled:hover,
.react-datepicker__month-text--disabled:hover,
.react-datepicker__quarter-text--disabled:hover,
.react-datepicker__year-text--disabled:hover {
  background-color: transparent;
}

.react-datepicker__input-container {
  position: relative;
  display: inline-block;
  width: 100%;
}
.react-datepicker__input-container .react-datepicker__calendar-icon {
  position: absolute;
  padding: 0.5rem;
  box-sizing: content-box;
}

.react-datepicker__view-calendar-icon input {
  padding: 6px 10px 5px 25px;
}

.react-datepicker__year-read-view,
.react-datepicker__month-read-view,
.react-datepicker__month-year-read-view {
  border: 1px solid transparent;
  border-radius: 0.3rem;
  position: relative;
}
.react-datepicker__year-read-view:hover,
.react-datepicker__month-read-view:hover,
.react-datepicker__month-year-read-view:hover {
  cursor: pointer;
}
.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow {
  border-top-color: #b3b3b3;
}
.react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view--down-arrow {
  transform: rotate(135deg);
  right: -16px;
  top: 0;
}

.react-datepicker__year-dropdown,
.react-datepicker__month-dropdown,
.react-datepicker__month-year-dropdown {
  background-color: #f0f0f0;
  position: absolute;
  width: 50%;
  left: 25%;
  top: 30px;
  z-index: 1;
  text-align: center;
  border-radius: 0.3rem;
  border: 1px solid #aeaeae;
}
.react-datepicker__year-dropdown:hover,
.react-datepicker__month-dropdown:hover,
.react-datepicker__month-year-dropdown:hover {
  cursor: pointer;
}
.react-datepicker__year-dropdown--scrollable,
.react-datepicker__month-dropdown--scrollable,
.react-datepicker__month-year-dropdown--scrollable {
  height: 150px;
  overflow-y: scroll;
}

.react-datepicker__year-option,
.react-datepicker__month-option,
.react-datepicker__month-year-option {
  line-height: 20px;
  width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.react-datepicker__year-option:first-of-type,
.react-datepicker__month-option:first-of-type,
.react-datepicker__month-year-option:first-of-type {
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}
.react-datepicker__year-option:last-of-type,
.react-datepicker__month-option:last-of-type,
.react-datepicker__month-year-option:last-of-type {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  border-bottom-left-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__year-option:hover,
.react-datepicker__month-option:hover,
.react-datepicker__month-year-option:hover {
  background-color: #ccc;
}
.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,
.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming {
  border-bottom-color: #b3b3b3;
}
.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,
.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous {
  border-top-color: #b3b3b3;
}
.react-datepicker__year-option--selected,
.react-datepicker__month-option--selected,
.react-datepicker__month-year-option--selected {
  position: absolute;
  left: 15px;
}

.react-datepicker__close-icon {
  cursor: pointer;
  background-color: transparent;
  border: 0;
  outline: 0;
  padding: 0 6px 0 0;
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  display: table-cell;
  vertical-align: middle;
}
.react-datepicker__close-icon::after {
  cursor: pointer;
  background-color: #216ba5;
  color: #fff;
  border-radius: 50%;
  height: 16px;
  width: 16px;
  padding: 2px;
  font-size: 12px;
  line-height: 1;
  text-align: center;
  display: table-cell;
  vertical-align: middle;
  content: "×";
}
.react-datepicker__close-icon--disabled {
  cursor: default;
}
.react-datepicker__close-icon--disabled::after {
  cursor: default;
  background-color: #ccc;
}

.react-datepicker__today-button {
  background: #f0f0f0;
  border-top: 1px solid #aeaeae;
  cursor: pointer;
  text-align: center;
  font-weight: bold;
  padding: 5px 0;
  clear: left;
}

.react-datepicker__portal {
  position: fixed;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.8);
  left: 0;
  top: 0;
  justify-content: center;
  align-items: center;
  display: flex;
  z-index: 2147483647;
}
.react-datepicker__portal .react-datepicker__day-name,
.react-datepicker__portal .react-datepicker__day,
.react-datepicker__portal .react-datepicker__time-name {
  width: 3rem;
  line-height: 3rem;
}
@media (max-width: 400px), (max-height: 550px) {
  .react-datepicker__portal .react-datepicker__day-name,
  .react-datepicker__portal .react-datepicker__day,
  .react-datepicker__portal .react-datepicker__time-name {
    width: 2rem;
    line-height: 2rem;
  }
}
.react-datepicker__portal .react-datepicker__current-month,
.react-datepicker__portal .react-datepicker-time__header {
  font-size: 1.44rem;
}

.react-datepicker__children-container {
  width: 13.8rem;
  margin: 0.4rem;
  padding-right: 0.2rem;
  padding-left: 0.2rem;
  height: auto;
}

.react-datepicker__aria-live {
  position: absolute;
  clip-path: circle(0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  width: 1px;
  white-space: nowrap;
}

.react-datepicker__calendar-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
}

@charset "UTF-8";
.vjs-modal-dialog .vjs-modal-dialog-content, .video-js .vjs-modal-dialog, .vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  text-align: center;
}

@font-face {
  font-family: VideoJS;
  src: url(data:application/font-woff;charset=utf-8;base64,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) format("woff");
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play, .video-js .vjs-play-control .vjs-icon-placeholder, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play:before, .video-js .vjs-play-control .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  content: "\f101";
}

.vjs-icon-play-circle {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play-circle:before {
  content: "\f102";
}

.vjs-icon-pause, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-pause:before, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before {
  content: "\f103";
}

.vjs-icon-volume-mute, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-mute:before, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before {
  content: "\f104";
}

.vjs-icon-volume-low, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-low:before, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before {
  content: "\f105";
}

.vjs-icon-volume-mid, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-mid:before, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before {
  content: "\f106";
}

.vjs-icon-volume-high, .video-js .vjs-mute-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-high:before, .video-js .vjs-mute-control .vjs-icon-placeholder:before {
  content: "\f107";
}

.vjs-icon-fullscreen-enter, .video-js .vjs-fullscreen-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-fullscreen-enter:before, .video-js .vjs-fullscreen-control .vjs-icon-placeholder:before {
  content: "\f108";
}

.vjs-icon-fullscreen-exit, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-fullscreen-exit:before, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before {
  content: "\f109";
}

.vjs-icon-square {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-square:before {
  content: "\f10a";
}

.vjs-icon-spinner {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-spinner:before {
  content: "\f10b";
}

.vjs-icon-subtitles, .video-js .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-subtitles-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-subtitles:before, .video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-subtitles-button .vjs-icon-placeholder:before {
  content: "\f10c";
}

.vjs-icon-captions, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-captions-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-captions:before, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-captions-button .vjs-icon-placeholder:before {
  content: "\f10d";
}

.vjs-icon-chapters, .video-js .vjs-chapters-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-chapters:before, .video-js .vjs-chapters-button .vjs-icon-placeholder:before {
  content: "\f10e";
}

.vjs-icon-share {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-share:before {
  content: "\f10f";
}

.vjs-icon-cog {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-cog:before {
  content: "\f110";
}

.vjs-icon-circle, .vjs-seek-to-live-control .vjs-icon-placeholder, .video-js .vjs-volume-level, .video-js .vjs-play-progress {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle:before, .vjs-seek-to-live-control .vjs-icon-placeholder:before, .video-js .vjs-volume-level:before, .video-js .vjs-play-progress:before {
  content: "\f111";
}

.vjs-icon-circle-outline {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle-outline:before {
  content: "\f112";
}

.vjs-icon-circle-inner-circle {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle-inner-circle:before {
  content: "\f113";
}

.vjs-icon-hd {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-hd:before {
  content: "\f114";
}

.vjs-icon-cancel, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-cancel:before, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before {
  content: "\f115";
}

.vjs-icon-replay, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-replay:before, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before {
  content: "\f116";
}

.vjs-icon-facebook {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-facebook:before {
  content: "\f117";
}

.vjs-icon-gplus {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-gplus:before {
  content: "\f118";
}

.vjs-icon-linkedin {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-linkedin:before {
  content: "\f119";
}

.vjs-icon-twitter {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-twitter:before {
  content: "\f11a";
}

.vjs-icon-tumblr {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-tumblr:before {
  content: "\f11b";
}

.vjs-icon-pinterest {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-pinterest:before {
  content: "\f11c";
}

.vjs-icon-audio-description, .video-js .vjs-descriptions-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-audio-description:before, .video-js .vjs-descriptions-button .vjs-icon-placeholder:before {
  content: "\f11d";
}

.vjs-icon-audio, .video-js .vjs-audio-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-audio:before, .video-js .vjs-audio-button .vjs-icon-placeholder:before {
  content: "\f11e";
}

.vjs-icon-next-item {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-next-item:before {
  content: "\f11f";
}

.vjs-icon-previous-item {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-previous-item:before {
  content: "\f120";
}

.vjs-icon-picture-in-picture-enter, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-picture-in-picture-enter:before, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before {
  content: "\f121";
}

.vjs-icon-picture-in-picture-exit, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-picture-in-picture-exit:before, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before {
  content: "\f122";
}

.video-js {
  display: block;
  vertical-align: top;
  box-sizing: border-box;
  color: #fff;
  background-color: #000;
  position: relative;
  padding: 0;
  font-size: 10px;
  line-height: 1;
  font-weight: normal;
  font-style: normal;
  font-family: Arial, Helvetica, sans-serif;
  word-break: initial;
}
.video-js:-moz-full-screen {
  position: absolute;
}
.video-js:-webkit-full-screen {
  width: 100% !important;
  height: 100% !important;
}

.video-js[tabindex="-1"] {
  outline: none;
}

.video-js *,
.video-js *:before,
.video-js *:after {
  box-sizing: inherit;
}

.video-js ul {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  list-style-position: outside;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}

.video-js.vjs-fluid,
.video-js.vjs-16-9,
.video-js.vjs-4-3,
.video-js.vjs-9-16,
.video-js.vjs-1-1 {
  width: 100%;
  max-width: 100%;
  height: 0;
}

.video-js.vjs-16-9 {
  padding-top: 56.25%;
}

.video-js.vjs-4-3 {
  padding-top: 75%;
}

.video-js.vjs-9-16 {
  padding-top: 177.7777777778%;
}

.video-js.vjs-1-1 {
  padding-top: 100%;
}

.video-js.vjs-fill {
  width: 100%;
  height: 100%;
}

.video-js .vjs-tech {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

body.vjs-full-window {
  padding: 0;
  margin: 0;
  height: 100%;
}

.vjs-full-window .video-js.vjs-fullscreen {
  position: fixed;
  overflow: hidden;
  z-index: 1000;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
}

.video-js.vjs-fullscreen:not(.vjs-ios-native-fs) {
  width: 100% !important;
  height: 100% !important;
  padding-top: 0 !important;
}

.video-js.vjs-fullscreen.vjs-user-inactive {
  cursor: none;
}

.vjs-hidden {
  display: none !important;
}

.vjs-disabled {
  opacity: 0.5;
  cursor: default;
}

.video-js .vjs-offscreen {
  height: 1px;
  left: -9999px;
  position: absolute;
  top: 0;
  width: 1px;
}

.vjs-lock-showing {
  display: block !important;
  opacity: 1;
  visibility: visible;
}

.vjs-no-js {
  padding: 20px;
  color: #fff;
  background-color: #000;
  font-size: 18px;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  width: 300px;
  height: 150px;
  margin: 0px auto;
}

.vjs-no-js a,
.vjs-no-js a:visited {
  color: #66A8CC;
}

.video-js .vjs-big-play-button {
  font-size: 3em;
  line-height: 1.5em;
  height: 1.63332em;
  width: 3em;
  display: block;
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 0;
  cursor: pointer;
  opacity: 1;
  border: 0.06666em solid #fff;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
  border-radius: 0.3em;
  transition: all 0.4s;
}
.vjs-big-play-centered .vjs-big-play-button {
  top: 50%;
  left: 50%;
  margin-top: -0.81666em;
  margin-left: -1.5em;
}

.video-js:hover .vjs-big-play-button,
.video-js .vjs-big-play-button:focus {
  border-color: #fff;
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
  transition: all 0s;
}

.vjs-controls-disabled .vjs-big-play-button,
.vjs-has-started .vjs-big-play-button,
.vjs-using-native-controls .vjs-big-play-button,
.vjs-error .vjs-big-play-button {
  display: none;
}

.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button {
  display: block;
}

.video-js button {
  background: none;
  border: none;
  color: inherit;
  display: inline-block;
  font-size: inherit;
  line-height: inherit;
  text-transform: none;
  text-decoration: none;
  transition: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.vjs-control .vjs-button {
  width: 100%;
  height: 100%;
}

.video-js .vjs-control.vjs-close-button {
  cursor: pointer;
  height: 3em;
  position: absolute;
  right: 0;
  top: 0.5em;
  z-index: 2;
}
.video-js .vjs-modal-dialog {
  background: rgba(0, 0, 0, 0.8);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0));
  overflow: auto;
}

.video-js .vjs-modal-dialog > * {
  box-sizing: border-box;
}

.vjs-modal-dialog .vjs-modal-dialog-content {
  font-size: 1.2em;
  line-height: 1.5;
  padding: 20px 24px;
  z-index: 1;
}

.vjs-menu-button {
  cursor: pointer;
}

.vjs-menu-button.vjs-disabled {
  cursor: default;
}

.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu {
  display: none;
}

.vjs-menu .vjs-menu-content {
  display: block;
  padding: 0;
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  overflow: auto;
}

.vjs-menu .vjs-menu-content > * {
  box-sizing: border-box;
}

.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu {
  display: none;
}

.vjs-menu li {
  list-style: none;
  margin: 0;
  padding: 0.2em 0;
  line-height: 1.4em;
  font-size: 1.2em;
  text-align: center;
  text-transform: lowercase;
}

.vjs-menu li.vjs-menu-item:focus,
.vjs-menu li.vjs-menu-item:hover,
.js-focus-visible .vjs-menu li.vjs-menu-item:hover {
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
}

.vjs-menu li.vjs-selected,
.vjs-menu li.vjs-selected:focus,
.vjs-menu li.vjs-selected:hover,
.js-focus-visible .vjs-menu li.vjs-selected:hover {
  background-color: #fff;
  color: #2B333F;
}

.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),
.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible) {
  background: none;
}

.vjs-menu li.vjs-menu-title {
  text-align: center;
  text-transform: uppercase;
  font-size: 1em;
  line-height: 2em;
  padding: 0;
  margin: 0 0 0.3em 0;
  font-weight: bold;
  cursor: default;
}

.vjs-menu-button-popup .vjs-menu {
  display: none;
  position: absolute;
  bottom: 0;
  width: 10em;
  left: -3em;
  height: 0em;
  margin-bottom: 1.5em;
  border-top-color: rgba(43, 51, 63, 0.7);
}

.vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
  position: absolute;
  width: 100%;
  bottom: 1.5em;
  max-height: 15em;
}

.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 5em;
}

.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 10em;
}

.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 14em;
}

.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 25em;
}

.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,
.vjs-menu-button-popup .vjs-menu.vjs-lock-showing {
  display: block;
}

.video-js .vjs-menu-button-inline {
  transition: all 0.4s;
  overflow: hidden;
}

.video-js .vjs-menu-button-inline:before {
  width: 2.222222222em;
}

.video-js .vjs-menu-button-inline:hover,
.video-js .vjs-menu-button-inline:focus,
.video-js .vjs-menu-button-inline.vjs-slider-active,
.video-js.vjs-no-flex .vjs-menu-button-inline {
  width: 12em;
}

.vjs-menu-button-inline .vjs-menu {
  opacity: 0;
  height: 100%;
  width: auto;
  position: absolute;
  left: 4em;
  top: 0;
  padding: 0;
  margin: 0;
  transition: all 0.4s;
}

.vjs-menu-button-inline:hover .vjs-menu,
.vjs-menu-button-inline:focus .vjs-menu,
.vjs-menu-button-inline.vjs-slider-active .vjs-menu {
  display: block;
  opacity: 1;
}

.vjs-no-flex .vjs-menu-button-inline .vjs-menu {
  display: block;
  opacity: 1;
  position: relative;
  width: auto;
}

.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,
.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,
.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu {
  width: auto;
}

.vjs-menu-button-inline .vjs-menu-content {
  width: auto;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

.video-js .vjs-control-bar {
  display: none;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3em;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
}

.vjs-has-started .vjs-control-bar {
  display: flex;
  visibility: visible;
  opacity: 1;
  transition: visibility 0.1s, opacity 0.1s;
}

.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  visibility: visible;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.vjs-controls-disabled .vjs-control-bar,
.vjs-using-native-controls .vjs-control-bar,
.vjs-error .vjs-control-bar {
  display: none !important;
}

.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  opacity: 1;
  visibility: visible;
}

.vjs-has-started.vjs-no-flex .vjs-control-bar {
  display: table;
}

.video-js .vjs-control {
  position: relative;
  text-align: center;
  margin: 0;
  padding: 0;
  height: 100%;
  width: 4em;
  flex: none;
}

.vjs-button > .vjs-icon-placeholder:before {
  font-size: 1.8em;
  line-height: 1.67;
}

.vjs-button > .vjs-icon-placeholder {
  display: block;
}

.video-js .vjs-control:focus:before,
.video-js .vjs-control:hover:before,
.video-js .vjs-control:focus {
  text-shadow: 0em 0em 1em white;
}

.video-js .vjs-control-text {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.vjs-no-flex .vjs-control {
  display: table-cell;
  vertical-align: middle;
}

.video-js .vjs-custom-control-spacer {
  display: none;
}

.video-js .vjs-progress-control {
  cursor: pointer;
  flex: auto;
  display: flex;
  align-items: center;
  min-width: 4em;
  touch-action: none;
}

.video-js .vjs-progress-control.disabled {
  cursor: default;
}

.vjs-live .vjs-progress-control {
  display: none;
}

.vjs-liveui .vjs-progress-control {
  display: flex;
  align-items: center;
}

.vjs-no-flex .vjs-progress-control {
  width: auto;
}

.video-js .vjs-progress-holder {
  flex: auto;
  transition: all 0.2s;
  height: 0.3em;
}

.video-js .vjs-progress-control .vjs-progress-holder {
  margin: 0 10px;
}

.video-js .vjs-progress-control:hover .vjs-progress-holder {
  font-size: 1.6666666667em;
}

.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled {
  font-size: 1em;
}

.video-js .vjs-progress-holder .vjs-play-progress,
.video-js .vjs-progress-holder .vjs-load-progress,
.video-js .vjs-progress-holder .vjs-load-progress div {
  position: absolute;
  display: block;
  height: 100%;
  margin: 0;
  padding: 0;
  width: 0;
}

.video-js .vjs-play-progress {
  background-color: #fff;
}
.video-js .vjs-play-progress:before {
  font-size: 0.9em;
  position: absolute;
  right: -0.5em;
  top: -0.3333333333em;
  z-index: 1;
}

.video-js .vjs-load-progress {
  background: rgba(115, 133, 159, 0.5);
}

.video-js .vjs-load-progress div {
  background: rgba(115, 133, 159, 0.75);
}

.video-js .vjs-time-tooltip {
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 0.3em;
  color: #000;
  float: right;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  padding: 6px 8px 8px 8px;
  pointer-events: none;
  position: absolute;
  top: -3.4em;
  visibility: hidden;
  z-index: 1;
}

.video-js .vjs-progress-holder:focus .vjs-time-tooltip {
  display: none;
}

.video-js .vjs-progress-control:hover .vjs-time-tooltip,
.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip {
  display: block;
  font-size: 0.6em;
  visibility: visible;
}

.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip {
  font-size: 1em;
}

.video-js .vjs-progress-control .vjs-mouse-display {
  display: none;
  position: absolute;
  width: 1px;
  height: 100%;
  background-color: #000;
  z-index: 1;
}

.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
  z-index: 0;
}

.video-js .vjs-progress-control:hover .vjs-mouse-display {
  display: block;
}

.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display {
  visibility: hidden;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
  display: none;
}

.vjs-mouse-display .vjs-time-tooltip {
  color: #fff;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.8);
}

.video-js .vjs-slider {
  position: relative;
  cursor: pointer;
  padding: 0;
  margin: 0 0.45em 0 0.45em;
  /* iOS Safari */
  -webkit-touch-callout: none;
  /* Safari */
  -webkit-user-select: none;
  /* Konqueror HTML */
  /* Firefox */
  -moz-user-select: none;
  /* Internet Explorer/Edge */
  /* Non-prefixed version, currently supported by Chrome and Opera */
  user-select: none;
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
}

.video-js .vjs-slider.disabled {
  cursor: default;
}

.video-js .vjs-slider:focus {
  text-shadow: 0em 0em 1em white;
  box-shadow: 0 0 1em #fff;
}

.video-js .vjs-mute-control {
  cursor: pointer;
  flex: none;
}
.video-js .vjs-volume-control {
  cursor: pointer;
  margin-right: 1em;
  display: flex;
}

.video-js .vjs-volume-control.vjs-volume-horizontal {
  width: 5em;
}

.video-js .vjs-volume-panel .vjs-volume-control {
  visibility: visible;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin-left: -1px;
}

.video-js .vjs-volume-panel {
  transition: width 1s;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control, .video-js .vjs-volume-panel:active .vjs-volume-control, .video-js .vjs-volume-panel:focus .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control:active, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active {
  visibility: visible;
  opacity: 1;
  position: relative;
  transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal {
  width: 5em;
  height: 3em;
  margin-right: 0;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical {
  left: -3.5em;
  transition: left 0s;
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {
  width: 10em;
  transition: width 0.1s;
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only {
  width: 4em;
}

.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
  height: 8em;
  width: 3em;
  left: -3000em;
  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
}

.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
}

.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
  width: 5em;
  height: 3em;
  visibility: visible;
  opacity: 1;
  position: relative;
  transition: none;
}

.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,
.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
  position: absolute;
  bottom: 3em;
  left: 0.5em;
}

.video-js .vjs-volume-panel {
  display: flex;
}

.video-js .vjs-volume-bar {
  margin: 1.35em 0.45em;
}

.vjs-volume-bar.vjs-slider-horizontal {
  width: 5em;
  height: 0.3em;
}

.vjs-volume-bar.vjs-slider-vertical {
  width: 0.3em;
  height: 5em;
  margin: 1.35em auto;
}

.video-js .vjs-volume-level {
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #fff;
}
.video-js .vjs-volume-level:before {
  position: absolute;
  font-size: 0.9em;
  z-index: 1;
}

.vjs-slider-vertical .vjs-volume-level {
  width: 0.3em;
}
.vjs-slider-vertical .vjs-volume-level:before {
  top: -0.5em;
  left: -0.3em;
  z-index: 1;
}

.vjs-slider-horizontal .vjs-volume-level {
  height: 0.3em;
}
.vjs-slider-horizontal .vjs-volume-level:before {
  top: -0.3em;
  right: -0.5em;
}

.video-js .vjs-volume-panel.vjs-volume-panel-vertical {
  width: 4em;
}

.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level {
  height: 100%;
}

.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {
  width: 100%;
}

.video-js .vjs-volume-vertical {
  width: 3em;
  height: 8em;
  bottom: 8em;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
}

.video-js .vjs-volume-horizontal .vjs-menu {
  left: -2em;
}

.video-js .vjs-volume-tooltip {
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 0.3em;
  color: #000;
  float: right;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  padding: 6px 8px 8px 8px;
  pointer-events: none;
  position: absolute;
  top: -3.4em;
  visibility: hidden;
  z-index: 1;
}

.video-js .vjs-volume-control:hover .vjs-volume-tooltip,
.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip {
  display: block;
  font-size: 1em;
  visibility: visible;
}

.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,
.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip {
  left: 1em;
  top: -12px;
}

.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip {
  font-size: 1em;
}

.video-js .vjs-volume-control .vjs-mouse-display {
  display: none;
  position: absolute;
  width: 100%;
  height: 1px;
  background-color: #000;
  z-index: 1;
}

.video-js .vjs-volume-horizontal .vjs-mouse-display {
  width: 1px;
  height: 100%;
}

.vjs-no-flex .vjs-volume-control .vjs-mouse-display {
  z-index: 0;
}

.video-js .vjs-volume-control:hover .vjs-mouse-display {
  display: block;
}

.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display {
  visibility: hidden;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.video-js.vjs-user-inactive.vjs-no-flex .vjs-volume-control .vjs-mouse-display {
  display: none;
}

.vjs-mouse-display .vjs-volume-tooltip {
  color: #fff;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.8);
}

.vjs-poster {
  display: inline-block;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  background-color: #000000;
  cursor: pointer;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
}

.vjs-has-started .vjs-poster {
  display: none;
}

.vjs-audio.vjs-has-started .vjs-poster {
  display: block;
}

.vjs-using-native-controls .vjs-poster {
  display: none;
}

.video-js .vjs-live-control {
  display: flex;
  align-items: flex-start;
  flex: auto;
  font-size: 1em;
  line-height: 3em;
}

.vjs-no-flex .vjs-live-control {
  display: table-cell;
  width: auto;
  text-align: left;
}

.video-js:not(.vjs-live) .vjs-live-control,
.video-js.vjs-liveui .vjs-live-control {
  display: none;
}

.video-js .vjs-seek-to-live-control {
  align-items: center;
  cursor: pointer;
  flex: none;
  display: inline-flex;
  height: 100%;
  padding-left: 0.5em;
  padding-right: 0.5em;
  font-size: 1em;
  line-height: 3em;
  width: auto;
  min-width: 4em;
}

.vjs-no-flex .vjs-seek-to-live-control {
  display: table-cell;
  width: auto;
  text-align: left;
}

.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,
.video-js:not(.vjs-live) .vjs-seek-to-live-control {
  display: none;
}

.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge {
  cursor: auto;
}

.vjs-seek-to-live-control .vjs-icon-placeholder {
  margin-right: 0.5em;
  color: #888;
}

.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder {
  color: red;
}

.video-js .vjs-time-control {
  flex: none;
  font-size: 1em;
  line-height: 3em;
  min-width: 2em;
  width: auto;
  padding-left: 1em;
  padding-right: 1em;
}

.vjs-live .vjs-time-control {
  display: none;
}

.video-js .vjs-current-time,
.vjs-no-flex .vjs-current-time {
  display: none;
}

.video-js .vjs-duration,
.vjs-no-flex .vjs-duration {
  display: none;
}

.vjs-time-divider {
  display: none;
  line-height: 3em;
}

.vjs-live .vjs-time-divider {
  display: none;
}

.video-js .vjs-play-control {
  cursor: pointer;
}

.video-js .vjs-play-control .vjs-icon-placeholder {
  flex: none;
}

.vjs-text-track-display {
  position: absolute;
  bottom: 3em;
  left: 0;
  right: 0;
  top: 0;
  pointer-events: none;
}

.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {
  bottom: 1em;
}

.video-js .vjs-text-track {
  font-size: 1.4em;
  text-align: center;
  margin-bottom: 0.1em;
}

.vjs-subtitles {
  color: #fff;
}

.vjs-captions {
  color: #fc6;
}

.vjs-tt-cue {
  display: block;
}

video::-webkit-media-text-track-display {
  transform: translateY(-3em);
}

.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display {
  transform: translateY(-1.5em);
}

.video-js .vjs-picture-in-picture-control {
  cursor: pointer;
  flex: none;
}
.video-js .vjs-fullscreen-control {
  cursor: pointer;
  flex: none;
}
.vjs-playback-rate > .vjs-menu-button,
.vjs-playback-rate .vjs-playback-rate-value {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.vjs-playback-rate .vjs-playback-rate-value {
  pointer-events: none;
  font-size: 1.5em;
  line-height: 2;
  text-align: center;
}

.vjs-playback-rate .vjs-menu {
  width: 4em;
  left: 0em;
}

.vjs-error .vjs-error-display .vjs-modal-dialog-content {
  font-size: 1.4em;
  text-align: center;
}

.vjs-error .vjs-error-display:before {
  color: #fff;
  content: "X";
  font-family: Arial, Helvetica, sans-serif;
  font-size: 4em;
  left: 0;
  line-height: 1;
  margin-top: -0.5em;
  position: absolute;
  text-shadow: 0.05em 0.05em 0.1em #000;
  text-align: center;
  top: 50%;
  vertical-align: middle;
  width: 100%;
}

.vjs-loading-spinner {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -25px 0 0 -25px;
  opacity: 0.85;
  text-align: left;
  border: 6px solid rgba(43, 51, 63, 0.7);
  box-sizing: border-box;
  background-clip: padding-box;
  width: 50px;
  height: 50px;
  border-radius: 25px;
  visibility: hidden;
}

.vjs-seeking .vjs-loading-spinner,
.vjs-waiting .vjs-loading-spinner {
  display: block;
  animation: vjs-spinner-show 0s linear 0.3s forwards;
}

.vjs-loading-spinner:before,
.vjs-loading-spinner:after {
  content: "";
  position: absolute;
  margin: -6px;
  box-sizing: inherit;
  width: inherit;
  height: inherit;
  border-radius: inherit;
  opacity: 1;
  border: inherit;
  border-color: transparent;
  border-top-color: white;
}

.vjs-seeking .vjs-loading-spinner:before,
.vjs-seeking .vjs-loading-spinner:after,
.vjs-waiting .vjs-loading-spinner:before,
.vjs-waiting .vjs-loading-spinner:after {
  animation: vjs-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, vjs-spinner-fade 1.1s linear infinite;
}

.vjs-seeking .vjs-loading-spinner:before,
.vjs-waiting .vjs-loading-spinner:before {
  border-top-color: white;
}

.vjs-seeking .vjs-loading-spinner:after,
.vjs-waiting .vjs-loading-spinner:after {
  border-top-color: white;
  animation-delay: 0.44s;
}

@keyframes vjs-spinner-show {
  to {
    visibility: visible;
  }
}
@keyframes vjs-spinner-spin {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes vjs-spinner-fade {
  0% {
    border-top-color: #73859f;
  }
  20% {
    border-top-color: #73859f;
  }
  35% {
    border-top-color: white;
  }
  60% {
    border-top-color: #73859f;
  }
  100% {
    border-top-color: #73859f;
  }
}
.vjs-chapters-button .vjs-menu ul {
  width: 24em;
}

.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
  vertical-align: middle;
  display: inline-block;
  margin-bottom: -0.1em;
}

.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
  font-family: VideoJS;
  content: "";
  font-size: 1.5em;
  line-height: inherit;
}

.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
  vertical-align: middle;
  display: inline-block;
  margin-bottom: -0.1em;
}

.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
  font-family: VideoJS;
  content: " ";
  font-size: 1.5em;
  line-height: inherit;
}

.video-js.vjs-layout-small .vjs-current-time,
.video-js.vjs-layout-small .vjs-time-divider,
.video-js.vjs-layout-small .vjs-duration,
.video-js.vjs-layout-small .vjs-remaining-time,
.video-js.vjs-layout-small .vjs-playback-rate,
.video-js.vjs-layout-small .vjs-chapters-button,
.video-js.vjs-layout-small .vjs-descriptions-button,
.video-js.vjs-layout-small .vjs-captions-button,
.video-js.vjs-layout-small .vjs-subtitles-button,
.video-js.vjs-layout-small .vjs-audio-button,
.video-js.vjs-layout-small .vjs-volume-control, .video-js.vjs-layout-x-small .vjs-current-time,
.video-js.vjs-layout-x-small .vjs-time-divider,
.video-js.vjs-layout-x-small .vjs-duration,
.video-js.vjs-layout-x-small .vjs-remaining-time,
.video-js.vjs-layout-x-small .vjs-playback-rate,
.video-js.vjs-layout-x-small .vjs-chapters-button,
.video-js.vjs-layout-x-small .vjs-descriptions-button,
.video-js.vjs-layout-x-small .vjs-captions-button,
.video-js.vjs-layout-x-small .vjs-subtitles-button,
.video-js.vjs-layout-x-small .vjs-audio-button,
.video-js.vjs-layout-x-small .vjs-volume-control, .video-js.vjs-layout-tiny .vjs-current-time,
.video-js.vjs-layout-tiny .vjs-time-divider,
.video-js.vjs-layout-tiny .vjs-duration,
.video-js.vjs-layout-tiny .vjs-remaining-time,
.video-js.vjs-layout-tiny .vjs-playback-rate,
.video-js.vjs-layout-tiny .vjs-chapters-button,
.video-js.vjs-layout-tiny .vjs-descriptions-button,
.video-js.vjs-layout-tiny .vjs-captions-button,
.video-js.vjs-layout-tiny .vjs-subtitles-button,
.video-js.vjs-layout-tiny .vjs-audio-button,
.video-js.vjs-layout-tiny .vjs-volume-control {
  display: none !important;
}
.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,
.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,
.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,
.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,
.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,
.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,
.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {
  width: auto;
  width: initial;
}
.video-js.vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button, .video-js.vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button, .video-js.vjs-layout-tiny .vjs-subs-caps-button {
  display: none;
}
.video-js.vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer, .video-js.vjs-layout-tiny .vjs-custom-control-spacer {
  flex: auto;
  display: block;
}
.video-js.vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer, .video-js.vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer {
  width: auto;
}
.video-js.vjs-layout-x-small.vjs-liveui .vjs-progress-control, .video-js.vjs-layout-tiny .vjs-progress-control {
  display: none;
}

.vjs-modal-dialog.vjs-text-track-settings {
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.75);
  color: #fff;
  height: 70%;
}

.vjs-text-track-settings .vjs-modal-dialog-content {
  display: table;
}

.vjs-text-track-settings .vjs-track-settings-colors,
.vjs-text-track-settings .vjs-track-settings-font,
.vjs-text-track-settings .vjs-track-settings-controls {
  display: table-cell;
}

.vjs-text-track-settings .vjs-track-settings-controls {
  text-align: right;
  vertical-align: bottom;
}

@supports (display: grid) {
  .vjs-text-track-settings .vjs-modal-dialog-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    padding: 20px 24px 0px 24px;
  }

  .vjs-track-settings-controls .vjs-default-button {
    margin-bottom: 20px;
  }

  .vjs-text-track-settings .vjs-track-settings-controls {
    grid-column: 1/-1;
  }

  .vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,
.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,
.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content {
    grid-template-columns: 1fr;
  }
}
.vjs-track-setting > select {
  margin-right: 1em;
  margin-bottom: 0.5em;
}

.vjs-text-track-settings fieldset {
  margin: 5px;
  padding: 3px;
  border: none;
}

.vjs-text-track-settings fieldset span {
  display: inline-block;
}

.vjs-text-track-settings fieldset span > select {
  max-width: 7.3em;
}

.vjs-text-track-settings legend {
  color: #fff;
  margin: 0 0 5px 0;
}

.vjs-text-track-settings .vjs-label {
  position: absolute;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  display: block;
  margin: 0 0 5px 0;
  padding: 0;
  border: 0;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

.vjs-track-settings-controls button:focus,
.vjs-track-settings-controls button:active {
  outline-style: solid;
  outline-width: medium;
  background-image: linear-gradient(0deg, #fff 88%, #73859f 100%);
}

.vjs-track-settings-controls button:hover {
  color: rgba(43, 51, 63, 0.75);
}

.vjs-track-settings-controls button {
  background-color: #fff;
  background-image: linear-gradient(-180deg, #fff 88%, #73859f 100%);
  color: #2B333F;
  cursor: pointer;
  border-radius: 2px;
}

.vjs-track-settings-controls .vjs-default-button {
  margin-right: 1em;
}

@media print {
  .video-js > *:not(.vjs-tech):not(.vjs-poster) {
    visibility: hidden;
  }
}
.vjs-resize-manager {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
  z-index: -1000;
}

.js-focus-visible .video-js *:focus:not(.focus-visible) {
  outline: none;
}

.video-js *:focus:not(:focus-visible) {
  outline: none;
}

@keyframes react-loading-skeleton {
  100% {
    transform: translateX(100%);
  }
}

.react-loading-skeleton {
  --base-color: #ebebeb;
  --highlight-color: #f5f5f5;
  --animation-duration: 1.5s;
  --animation-direction: normal;
  --pseudo-element-display: block; /* Enable animation */

  background-color: var(--base-color);

  width: 100%;
  border-radius: 0.25rem;
  display: inline-flex;
  line-height: 1;

  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  overflow: hidden;
}

.react-loading-skeleton::after {
  content: ' ';
  display: var(--pseudo-element-display);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  background-repeat: no-repeat;
  background-image: linear-gradient(
      90deg,
      var(--base-color) 0%,
      var(--highlight-color) 50%,
      var(--base-color) 100%
    );
  background-image: var(
    --custom-highlight-background,
    linear-gradient(
      90deg,
      var(--base-color) 0%,
      var(--highlight-color) 50%,
      var(--base-color) 100%
    )
  );
  transform: translateX(-100%);

  animation-name: react-loading-skeleton;
  animation-direction: var(--animation-direction);
  animation-duration: var(--animation-duration);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

@media (prefers-reduced-motion) {
  .react-loading-skeleton {
    --pseudo-element-display: none; /* Disable animation */
  }
}

html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-default-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: 0.18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #3880ff) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;--ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;--ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #5260ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd36f) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;--ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;--ion-color-tint: var(--ion-color-success-tint, #42d77d) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #eb445a) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;--ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #92949c) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #808289) !important;--ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none !important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports(padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports(padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: env(safe-area-inset-top);--ion-safe-area-bottom: env(safe-area-inset-bottom);--ion-safe-area-left: env(safe-area-inset-left);--ion-safe-area-right: env(safe-area-inset-right)}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translate3d(0,  0,  0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px rgba(0,0,0,.08)}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px rgba(0,0,0,.08)}.md .menu-content-reveal{box-shadow:4px 0px 16px rgba(0,0,0,.18)}.md .menu-content-push{box-shadow:4px 0px 16px rgba(0,0,0,.18)}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:300ms transform cubic-bezier(0.25, 0.8, 0.5, 1)}@media(prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none !important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}
audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:bold}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::-moz-placeholder{padding-left:2px}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-feature-settings:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html:not(.hydrated) body{display:none}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}
html{font-family:var(--ion-font-family)}@supports(-webkit-touch-callout: none){html{font:16px var(--ion-font-family);font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:#3880ff;color:var(--ion-color-primary, #3880ff)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}
.ion-no-padding{--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.ion-padding{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding, 16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding, 16px);padding-top:16px;padding-top:var(--ion-padding, 16px);padding-bottom:16px;padding-bottom:var(--ion-padding, 16px)}.ion-padding-top{--padding-top: var(--ion-padding, 16px);padding-top:16px;padding-top:var(--ion-padding, 16px)}.ion-padding-start{--padding-start: var(--ion-padding, 16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding, 16px)}.ion-padding-end{--padding-end: var(--ion-padding, 16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding, 16px)}.ion-padding-bottom{--padding-bottom: var(--ion-padding, 16px);padding-bottom:16px;padding-bottom:var(--ion-padding, 16px)}.ion-padding-vertical{--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-top:16px;padding-top:var(--ion-padding, 16px);padding-bottom:16px;padding-bottom:var(--ion-padding, 16px)}.ion-padding-horizontal{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding, 16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding, 16px)}.ion-no-margin{--margin-start: 0;--margin-end: 0;--margin-top: 0;--margin-bottom: 0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.ion-margin{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin, 16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin, 16px);margin-top:16px;margin-top:var(--ion-margin, 16px);margin-bottom:16px;margin-bottom:var(--ion-margin, 16px)}.ion-margin-top{--margin-top: var(--ion-margin, 16px);margin-top:16px;margin-top:var(--ion-margin, 16px)}.ion-margin-start{--margin-start: var(--ion-margin, 16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin, 16px)}.ion-margin-end{--margin-end: var(--ion-margin, 16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin, 16px)}.ion-margin-bottom{--margin-bottom: var(--ion-margin, 16px);margin-bottom:16px;margin-bottom:var(--ion-margin, 16px)}.ion-margin-vertical{--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-top:16px;margin-top:var(--ion-margin, 16px);margin-bottom:16px;margin-bottom:var(--ion-margin, 16px)}.ion-margin-horizontal{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin, 16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin, 16px)}
.ion-float-left{float:left !important}.ion-float-right{float:right !important}.ion-float-start{float:left !important}:host-context([dir=rtl]) .ion-float-start{float:right !important}[dir=rtl] .ion-float-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right !important}}.ion-float-end{float:right !important}:host-context([dir=rtl]) .ion-float-end{float:left !important}[dir=rtl] .ion-float-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){float:left !important}}@media(min-width: 576px){.ion-float-sm-left{float:left !important}.ion-float-sm-right{float:right !important}.ion-float-sm-start{float:left !important}:host-context([dir=rtl]) .ion-float-sm-start{float:right !important}[dir=rtl] .ion-float-sm-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right !important}}.ion-float-sm-end{float:right !important}:host-context([dir=rtl]) .ion-float-sm-end{float:left !important}[dir=rtl] .ion-float-sm-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){float:left !important}}}@media(min-width: 768px){.ion-float-md-left{float:left !important}.ion-float-md-right{float:right !important}.ion-float-md-start{float:left !important}:host-context([dir=rtl]) .ion-float-md-start{float:right !important}[dir=rtl] .ion-float-md-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right !important}}.ion-float-md-end{float:right !important}:host-context([dir=rtl]) .ion-float-md-end{float:left !important}[dir=rtl] .ion-float-md-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){float:left !important}}}@media(min-width: 992px){.ion-float-lg-left{float:left !important}.ion-float-lg-right{float:right !important}.ion-float-lg-start{float:left !important}:host-context([dir=rtl]) .ion-float-lg-start{float:right !important}[dir=rtl] .ion-float-lg-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right !important}}.ion-float-lg-end{float:right !important}:host-context([dir=rtl]) .ion-float-lg-end{float:left !important}[dir=rtl] .ion-float-lg-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){float:left !important}}}@media(min-width: 1200px){.ion-float-xl-left{float:left !important}.ion-float-xl-right{float:right !important}.ion-float-xl-start{float:left !important}:host-context([dir=rtl]) .ion-float-xl-start{float:right !important}[dir=rtl] .ion-float-xl-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right !important}}.ion-float-xl-end{float:right !important}:host-context([dir=rtl]) .ion-float-xl-end{float:left !important}[dir=rtl] .ion-float-xl-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left !important}}}
.ion-text-center{text-align:center !important}.ion-text-justify{text-align:justify !important}.ion-text-start{text-align:start !important}.ion-text-end{text-align:end !important}.ion-text-left{text-align:left !important}.ion-text-right{text-align:right !important}.ion-text-nowrap{white-space:nowrap !important}.ion-text-wrap{white-space:normal !important}@media(min-width: 576px){.ion-text-sm-center{text-align:center !important}.ion-text-sm-justify{text-align:justify !important}.ion-text-sm-start{text-align:start !important}.ion-text-sm-end{text-align:end !important}.ion-text-sm-left{text-align:left !important}.ion-text-sm-right{text-align:right !important}.ion-text-sm-nowrap{white-space:nowrap !important}.ion-text-sm-wrap{white-space:normal !important}}@media(min-width: 768px){.ion-text-md-center{text-align:center !important}.ion-text-md-justify{text-align:justify !important}.ion-text-md-start{text-align:start !important}.ion-text-md-end{text-align:end !important}.ion-text-md-left{text-align:left !important}.ion-text-md-right{text-align:right !important}.ion-text-md-nowrap{white-space:nowrap !important}.ion-text-md-wrap{white-space:normal !important}}@media(min-width: 992px){.ion-text-lg-center{text-align:center !important}.ion-text-lg-justify{text-align:justify !important}.ion-text-lg-start{text-align:start !important}.ion-text-lg-end{text-align:end !important}.ion-text-lg-left{text-align:left !important}.ion-text-lg-right{text-align:right !important}.ion-text-lg-nowrap{white-space:nowrap !important}.ion-text-lg-wrap{white-space:normal !important}}@media(min-width: 1200px){.ion-text-xl-center{text-align:center !important}.ion-text-xl-justify{text-align:justify !important}.ion-text-xl-start{text-align:start !important}.ion-text-xl-end{text-align:end !important}.ion-text-xl-left{text-align:left !important}.ion-text-xl-right{text-align:right !important}.ion-text-xl-nowrap{white-space:nowrap !important}.ion-text-xl-wrap{white-space:normal !important}}
.ion-text-uppercase{text-transform:uppercase !important}.ion-text-lowercase{text-transform:lowercase !important}.ion-text-capitalize{text-transform:capitalize !important}@media(min-width: 576px){.ion-text-sm-uppercase{text-transform:uppercase !important}.ion-text-sm-lowercase{text-transform:lowercase !important}.ion-text-sm-capitalize{text-transform:capitalize !important}}@media(min-width: 768px){.ion-text-md-uppercase{text-transform:uppercase !important}.ion-text-md-lowercase{text-transform:lowercase !important}.ion-text-md-capitalize{text-transform:capitalize !important}}@media(min-width: 992px){.ion-text-lg-uppercase{text-transform:uppercase !important}.ion-text-lg-lowercase{text-transform:lowercase !important}.ion-text-lg-capitalize{text-transform:capitalize !important}}@media(min-width: 1200px){.ion-text-xl-uppercase{text-transform:uppercase !important}.ion-text-xl-lowercase{text-transform:lowercase !important}.ion-text-xl-capitalize{text-transform:capitalize !important}}
.ion-align-self-start{align-self:flex-start !important}.ion-align-self-end{align-self:flex-end !important}.ion-align-self-center{align-self:center !important}.ion-align-self-stretch{align-self:stretch !important}.ion-align-self-baseline{align-self:baseline !important}.ion-align-self-auto{align-self:auto !important}.ion-wrap{flex-wrap:wrap !important}.ion-nowrap{flex-wrap:nowrap !important}.ion-wrap-reverse{flex-wrap:wrap-reverse !important}.ion-justify-content-start{justify-content:flex-start !important}.ion-justify-content-center{justify-content:center !important}.ion-justify-content-end{justify-content:flex-end !important}.ion-justify-content-around{justify-content:space-around !important}.ion-justify-content-between{justify-content:space-between !important}.ion-justify-content-evenly{justify-content:space-evenly !important}.ion-align-items-start{align-items:flex-start !important}.ion-align-items-center{align-items:center !important}.ion-align-items-end{align-items:flex-end !important}.ion-align-items-stretch{align-items:stretch !important}.ion-align-items-baseline{align-items:baseline !important}
.ion-hide{display:none !important}.ion-hide-up{display:none !important}.ion-hide-down{display:none !important}@media(min-width: 576px){.ion-hide-sm-up{display:none !important}}@media(max-width: 575.98px){.ion-hide-sm-down{display:none !important}}@media(min-width: 768px){.ion-hide-md-up{display:none !important}}@media(max-width: 767.98px){.ion-hide-md-down{display:none !important}}@media(min-width: 992px){.ion-hide-lg-up{display:none !important}}@media(max-width: 991.98px){.ion-hide-lg-down{display:none !important}}@media(min-width: 1200px){.ion-hide-xl-up{display:none !important}}@media(max-width: 1199.98px){.ion-hide-xl-down{display:none !important}}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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TiwyQ092VU0sQ0EwQ1Ysb0JBQ0UsMkNQMlNBLG1CT3RWUSxDUHNWUix1Q090VlEsQ0FnRFYsc0JBQ0Usd0NBQ0EsMkNQbVNBLGdCT3JWUSxDUHFWUixvQ09yVlEsQ1BzVlIsbUJPdFZRLENQc1ZSLHVDT3RWUSxDQXVEVix3QkFDRSwwQ0FDQSx3Q1A0UUUseUJPclVNLENQcVVOLDZDT3JVTSxDUHVVTix1Qk92VU0sQ1B1VU4sMkNPdlVNLENBa0VWLGVBQ0Usa0JBQ0EsZ0JBQ0EsZ0JBQ0EsbUJQMFBFLGFPeFBjLENQeVBkLGNPelBjLENQNlFoQixZTzdRZ0IsQ1A4UWhCLGVPOVFnQixDQUdsQixZQUNFLHdDQUNBLHNDQUNBLHNDQUNBLHlDUHNQRSx3Qk9wVUssQ1BvVUwsMkNPcFVLLENQc1VMLHNCT3RVSyxDUHNVTCx5Q090VUssQ1BvVlAsZU9wVk8sQ1BvVlAsa0NPcFZPLENQcVZQLGtCT3JWTyxDUHFWUCxxQ09yVk8sQ0FtRlQsZ0JBQ0Usc0NQZ1FBLGVPcFZPLENQb1ZQLGtDT3BWTyxDQXlGVCxrQkFDRSx3Q1AwT0Usd0JPcFVLLENQb1VMLDJDT3BVSyxDQStGVCxnQkFDRSxzQ1BzT0Usc0JPdFVLLENQc1VMLHlDT3RVSyxDQXFHVCxtQkFDRSx5Q1ArT0Esa0JPclZPLENQcVZQLHFDT3JWTyxDQTJHVCxxQkFDRSxzQ0FDQSx5Q1B1T0EsZU9wVk8sQ1BvVlAsa0NPcFZPLENQcVZQLGtCT3JWTyxDUHFWUCxxQ09yVk8sQ0FrSFQsdUJBQ0Usd0NBQ0Esc0NQZ05FLHdCT3BVSyxDUG9VTCwyQ09wVUssQ1BzVUwsc0JPdFVLLENQc1VMLHlDT3RVSyxDO0FDR0wsZ0JSMmZFLHNCUXZmRixpQlJ1ZkUsdUJRbmZGLGlCUnFlRSxzQkF6UE8sMENBNFBQLHVCQXJQTywyQkFxUFAsdUJBL09KLDhCQWNXLDBCQWlPUCx3QlFwZUYsZVJ3ZUUsdUJBaFFPLHdDQW1RUCxzQkE1UE8seUJBNFBQLHNCQXRQSiw4QkFjVyx3QkF3T1AsdUJBbldGLHlCUXBKQSxtQlIyZkUsc0JRdmZGLG9CUnVmRSx1QlFuZkYsb0JScWVF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dC9ja2VkaXRvcjUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9pbmRleC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9nbG9iYWxzL2dsb2JhbHMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fY29sb3JzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2Rpc2FibGVkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2ZvY3VzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2ZvbnRzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3Jlc2V0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3JvdW5kZWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fc2hhZG93LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3NwYWNpbmcuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3JvdW5kZWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fc2hhZG93LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19yb3VuZGVkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fZGlzYWJsZWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvbWl4aW5zL19idXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9zd2l0Y2hidXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vbGlzdGl0ZW1idXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2NvbG9yZ3JpZC9jb2xvcmdyaWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sb3JzZWxlY3Rvci9jb2xvcnNlbGVjdG9yLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZ2FjdGlvbnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL2xpc3Rkcm9wZG93bi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vdG9vbGJhcmRyb3Bkb3duLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVidXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWxpc3RpdGVtLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVsaXN0aXRlbWJ1dHRvbi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51cGFuZWwuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9hY2Nlc3NpYmlsaXR5aGVscC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2VkaXRvcnVpL2VkaXRvcnVpLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZm9ybWhlYWRlci9mb3JtaGVhZGVyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaWNvbi9pY29uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRmaWVsZC9sYWJlbGVkZmllbGR2aWV3LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGFiZWxlZGlucHV0L2xhYmVsZWRpbnB1dC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xpc3QvbGlzdC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnJvdGF0b3IuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9mYWtlcGFuZWwuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9zdGlja3lwYW5lbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Jlc3BvbnNpdmUtZm9ybS9yZXNwb25zaXZlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvYmxvY2t0b29sYmFyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL2NsYXNzaWNlZGl0b3IuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtYm9va21hcmsvYm9va21hcmsuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtY2xpcGJvYXJkL2NsaXBib2FyZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1jb2RlLWJsb2NrL2NvZGVibG9jay5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1lbmdpbmUvcGxhY2Vob2xkZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS9maW5kYW5kcmVwbGFjZWZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaGVhZGluZy9oZWFkaW5nLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS9ob3Jpem9udGFsbGluZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1odG1sLWVtYmVkL2h0bWxlbWJlZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZWluc2VydC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZGljb24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRsb2FkZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRwcm9ncmVzcy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1saW5rL2xpbmsuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5rYWN0aW9ucy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fdW5zZWxlY3RhYmxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpbmsvbGlua2Zvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5raW1hZ2UuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGlzdC9saXN0cHJvcGVydGllcy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1saXN0L2xpc3RzdHlsZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvbWVkaWFlbWJlZGVkaXRpbmcuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbWVudGlvbi9tZW50aW9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXJlc3RyaWN0ZWQtZWRpdGluZy9yZXN0cmljdGVkZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyZ3JpZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyaW5mby5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvc3BlY2lhbGNoYXJhY3RlcnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVncmlkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXN0eWxlL3N0eWxlZ3JvdXAuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVwYW5lbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS9jb2xvcmlucHV0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL2Zvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvZm9ybXJvdy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS9pbnNlcnR0YWJsZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZWNlbGxwcm9wZXJ0aWVzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZWZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvdGFibGVwcm9wZXJ0aWVzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlc2VsZWN0aW9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXdpZGdldC93aWRnZXQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHJlc2l6ZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS13aWRnZXQvd2lkZ2V0dHlwZWFyb3VuZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1iYXNpYy1zdHlsZXMvdGhlbWUvY29kZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1ibG9jay1xdW90ZS90aGVtZS9ibG9ja3F1b3RlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWJvb2ttYXJrL3RoZW1lL2Jvb2ttYXJrLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWJvb2ttYXJrL3RoZW1lL2Jvb2ttYXJrZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1ib29rbWFyay90aGVtZS9ib29rbWFya2FjdGlvbnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtY2tib3gvdGhlbWUvY2tib3hpbWFnZWVkaXQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtY2xpcGJvYXJkL3RoZW1lL2NsaXBib2FyZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1jb2RlLWJsb2NrL3RoZW1lL2NvZGVibG9jay5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy90aGVtZS9jbGFzc2ljZWRpdG9yLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVkaXRvci1pbmxpbmUvdGhlbWUvaW5saW5lZWRpdG9yLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVtb2ppL3RoZW1lL2Vtb2ppZ3JpZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lbW9qaS90aGVtZS9lbW9qaWNhdGVnb3JpZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtZW1vamkvdGhlbWUvZW1vaml0b25lLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVtb2ppL3RoZW1lL2Vtb2ppcGlja2VyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVuZ2luZS90aGVtZS9wbGFjZWhvbGRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lbmdpbmUvdGhlbWUvcmVuZGVyZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS90aGVtZS9maW5kYW5kcmVwbGFjZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1maW5kLWFuZC1yZXBsYWNlL3RoZW1lL2ZpbmRhbmRyZXBsYWNlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1mb250L3RoZW1lL2ZvbnRzaXplLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWhlYWRpbmcvdGhlbWUvaGVhZGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1oaWdobGlnaHQvdGhlbWUvaGlnaGxpZ2h0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS90aGVtZS9ob3Jpem9udGFsbGluZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1odG1sLWVtYmVkL3RoZW1lL2h0bWxlbWJlZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1odG1sLXN1cHBvcnQvdGhlbWUvZGF0YWZpbHRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZWNhcHRpb24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VpbnNlcnQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VyZXNpemUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VjdXN0b21yZXNpemVmb3JtLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdlc3R5bGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvdGV4dGFsdGVybmF0aXZlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXVwbG9hZHByb2dyZXNzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdldXBsb2FkaWNvbi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXVwbG9hZGxvYWRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXBsYWNlaG9sZGVyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWxpbmsvdGhlbWUvbGlua2ltYWdlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWxpbmsvdGhlbWUvbGlua2FjdGlvbnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbGluay90aGVtZS9saW5rZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saXN0L3RoZW1lL2RvY3VtZW50bGlzdC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saXN0L3RoZW1lL2xpc3RzdHlsZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbGlzdC90aGVtZS9saXN0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWxpc3QvdGhlbWUvdG9kb2xpc3QuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvdGhlbWUvbWVkaWFlbWJlZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC90aGVtZS9tZWRpYWVtYmVkZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3Jlc3BvbnNpdmUtZm9ybS9yZXNwb25zaXZlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC90aGVtZS9tZWRpYWZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbWVudGlvbi90aGVtZS9tZW50aW9udWkuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbWluaW1hcC90aGVtZS9taW5pbWFwLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXBhZ2UtYnJlYWsvdGhlbWUvcGFnZWJyZWFrLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXNob3ctYmxvY2tzL3RoZW1lL3Nob3dibG9ja3MuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtc291cmNlLWVkaXRpbmcvdGhlbWUvc291cmNlZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvdGhlbWUvY2hhcmFjdGVyZ3JpZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvdGhlbWUvY2hhcmFjdGVyaW5mby5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvdGhlbWUvc3BlY2lhbGNoYXJhY3RlcnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtc3R5bGUvdGhlbWUvc3R5bGVncmlkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL2luc2VydHRhYmxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL2Zvcm1yb3cuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVjZWxscHJvcGVydGllcy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10YWJsZS90aGVtZS9jb2xvcmlucHV0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZXByb3BlcnRpZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVjYXB0aW9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlY29sdW1ucmVzaXplLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvZ2xvYmFscy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9nbG9iYWxzL19oaWRkZW4uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9femluZGV4LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX3RyYW5zaXRpb24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9fcG93ZXJlZGJ5LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX2V2YWx1YXRpb25iYWRnZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL191bnNlbGVjdGFibGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9idXR0b24vc3dpdGNoYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvYnV0dG9uL2xpc3RpdGVtYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvY29sbGFwc2libGUvY29sbGFwc2libGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xvcmdyaWQvY29sb3JncmlkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xvcnNlbGVjdG9yL2NvbG9yc2VsZWN0b3IuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nYWN0aW9ucy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vdG9vbGJhcmRyb3Bkb3duLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVidXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9hcmlhbGl2ZWFubm91bmNlci9hcmlhbGl2ZWFubm91bmNlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Zvcm1oZWFkZXIvZm9ybWhlYWRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2ljb24vaWNvbi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbGFiZWxlZGZpZWxkL2xhYmVsZWRmaWVsZHZpZXcuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9saXN0L2xpc3QuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucGFuZWwuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucm90YXRvci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3BhbmVsL2Zha2VwYW5lbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3BhbmVsL3N0aWNreXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9oaWdobGlnaHRlZHRleHQvaGlnaGxpZ2h0ZWR0ZXh0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbGJhci9ibG9ja3Rvb2xiYXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS13aWRnZXQvdGhlbWUvd2lkZ2V0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXdpZGdldC90aGVtZS93aWRnZXRyZXNpemUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtd2lkZ2V0L3RoZW1lL3dpZGdldHR5cGVhcm91bmQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWRhdGVwaWNrZXIvZGlzdC9yZWFjdC1kYXRlcGlja2VyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy92aWRlby5qcy9kaXN0L3ZpZGVvLWpzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1sb2FkaW5nLXNrZWxldG9uL2Rpc3Qvc2tlbGV0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL2NvcmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL3RoZW1lcy9pb25pYy5taXhpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL3RoZW1lcy9pb25pYy5nbG9iYWxzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jb21wb25lbnRzL21lbnUvbWVudS5pb3MudmFycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY29tcG9uZW50cy9tZW51L21lbnUubWQudmFycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL3N0cnVjdHVyZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL2Nzcy9wYWRkaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jc3MvZmxvYXQtZWxlbWVudHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL2Nzcy90ZXh0LWFsaWdubWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL3RleHQtdHJhbnNmb3JtYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL2Nzcy9mbGV4LXV0aWxzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jc3MvZGlzcGxheS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFJlc2V0ICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk4JSk7XG5cdC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1jb2xvci1iYXNlLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIyMCwgNiUsIDgxJSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3Rpb246IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxMDQsIDUwLjIlLCA0Mi41JSk7XG5cdC0tY2stY29sb3ItYmFzZS1mb2N1czogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjA5LCA5MiUsIDcwJSk7XG5cdC0tY2stY29sb3ItYmFzZS10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4xLCAxMDAlLCA1OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzOlx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjIsIDEwMCUsIDUyLjUlKTtcblx0LS1jay1jb2xvci1iYXNlLWVycm9yOlx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDE1LCAxMDAlLCA0MyUpO1xuXG5cdC8qIC0tIEdlbmVyaWMgY29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzOiBcdFx0XHRcdFx0XHQyMTgsIDgxLjglLCA1Ni45JTtcblx0LS1jay1jb2xvci1mb2N1cy1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpKTtcblx0LS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3c6XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTIuNCwgODkuMyUsIDg5JSk7XG5cdC0tY2stY29sb3ItZm9jdXMtZGlzYWJsZWQtc2hhZG93Olx0XHRcdFx0XHRcdFx0aHNsYSgyMDksIDkwJSwgNzIlLC4zKTtcblx0LS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3c6XHRcdFx0XHRcdFx0XHRcdGhzbGEoOSwxMDAlLDU2JSwuMyk7XG5cdC0tY2stY29sb3ItdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3A6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjE1KTtcblx0LS1jay1jb2xvci1zaGFkb3ctZHJvcC1hY3RpdmU6XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjIpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gQnV0dG9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR0cmFuc3BhcmVudDtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cblx0LS1jay1jb2xvci1idXR0b24tb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRoc2woMjEyLCAxMDAlLCA5Ny4xJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdGhzbCgyMTEuNywgMTAwJSwgOTIuOSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgyMTEuNywgMTAwJSwgOTIuOSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDIxMSwgMTUlLCA5NSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcjpcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjEsIDEwMCUsIDU4JSk7XG5cblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1hY3Rpb24pO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA0NCUsIDU4JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTIwLCAxMDAlLCAyNyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWw6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWJhY2tncm91bmQ6XHRcdFx0XHRcdGhzbCgwLCAwJSwgNTcuNiUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWhvdmVyLWJhY2tncm91bmQ6XHRcdFx0XHRoc2woMCwgMCUsIDQ5JSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kOlx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLWJhY2tncm91bmQ6XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3c6XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gRHJvcGRvd24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gRGlhbG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWN1c3RvbS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jdXN0b20tYm9yZGVyKTtcblxuXHQvKiAtLSBJbnB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcjpcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdC0tY2stY29sb3ItaW5wdXQtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgOTUlKTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQ6IFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA0NiUpO1xuXG5cdC8qIC0tIExpc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzOiBcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dDpcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQvKiAtLSBQYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2xiYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci10b29sYmFyLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2x0aXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci10b29sdGlwLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LyogLS0gRW5naW5lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1lbmdpbmUtcGxhY2Vob2xkZXItdGV4dDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA0NCUpO1xuXG5cdC8qIC0tIFVwbG9hZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kOlx0XHQgXHRcdFx0XHRcdGhzbCgyMDksIDkyJSwgNzAlKTtcblxuXHQvKiAtLSBMaW5rIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saW5rLWRlZmF1bHQ6XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDI0MCwgMTAwJSwgNDclKTtcblx0LS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0aHNsYSgyMDEsIDEwMCUsIDU2JSwgMC4xKTtcblx0LS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uOlx0XHRcdFx0XHRcdFx0XHRoc2xhKDIwMSwgMTAwJSwgNTYlLCAwLjMpO1xuXG5cdC8qIC0tIFNlYXJjaCByZXN1bHQgaGlnaGxpZ2h0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdFx0aHNsKDYwLCAxMDAlLCA1MCUpO1xuXG5cdC8qIC0tIEdlbmVyaWMgY29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpZ2h0LXJlZDpcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAxMDAlLCA5MCUpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LyoqXG5cdCAqIEFuIG9wYWNpdHkgdmFsdWUgb2YgZGlzYWJsZWQgVUkgaXRlbS5cblx0ICovXG5cdC0tY2stZGlzYWJsZWQtb3BhY2l0eTogLjU7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKipcblx0ICogVGhlIGdlb21ldHJ5IG9mIHRoZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLW91dGVyLXNoYWRvdy1nZW9tZXRyeTogMCAwIDAgM3B4O1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cgKHdoZW4gZGlzYWJsZWQpLlxuXHQgKi9cblx0LS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdy1nZW9tZXRyeSkgdmFyKC0tY2stY29sb3ItZm9jdXMtZGlzYWJsZWQtc2hhZG93KTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93ICh3aGVuIGhhcyBlcnJvcnMpLlxuXHQgKi9cblx0LS1jay1mb2N1cy1lcnJvci1vdXRlci1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdy1nZW9tZXRyeSkgdmFyKC0tY2stY29sb3ItZm9jdXMtZXJyb3Itc2hhZG93KTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyIG9yIG91dGxpbmUuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLXJpbmc6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1mb250LXNpemUtYmFzZTogMTNweDtcblx0LS1jay1saW5lLWhlaWdodC1iYXNlOiAxLjg0NjE1O1xuXHQtLWNrLWZvbnQtZmFjZTogSGVsdmV0aWNhLCBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBTYW5zLVNlcmlmO1xuXG5cdC0tY2stZm9udC1zaXplLXRpbnk6IDAuN2VtO1xuXHQtLWNrLWZvbnQtc2l6ZS1zbWFsbDogMC43NWVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1ub3JtYWw6IDFlbTtcblx0LS1jay1mb250LXNpemUtYmlnOiAxLjRlbTtcblx0LS1jay1mb250LXNpemUtbGFyZ2U6IDEuOGVtO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LyogVGhpcyBpcyBzdXBlci1pbXBvcnRhbnQuIFRoaXMgaXMgKiptYW51YWxseSoqIGFkanVzdGVkIHNvIGEgYnV0dG9uIHdpdGhvdXQgYW4gaWNvblxuXHRpcyBuZXZlciBzbWFsbGVyIHRoYW4gYSBidXR0b24gd2l0aCBpY29uLCBhZGRpdGlvbmFsbHkgbWFraW5nIHN1cmUgdGhhdCB0ZXh0LWxlc3MgYnV0dG9uc1xuXHRhcmUgcGVyZmVjdCBzcXVhcmVzLiBUaGUgdmFsdWUgaXMgYWxzbyBzaGFyZWQgYnkgb3RoZXIgY29tcG9uZW50cyB3aGljaCBzaG91bGQgc3RheSBcImluLWxpbmVcIlxuXHR3aXRoIGJ1dHRvbnMuICovXG5cdC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQ6IDIuM2VtO1xufVxuLyoqXG4gKiBSZXNldHMgYW4gZWxlbWVudCwgaWdub3JpbmcgaXRzIGNoaWxkcmVuLlxuICovXG4uY2suY2stcmVzZXQsXG4uY2suY2stcmVzZXRfYWxsLFxuLmNrLXJlc2V0X2FsbCAqOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcblx0cG9zaXRpb246IHN0YXRpYztcblxuXHQvKiBEbyBub3QgaW5jbHVkZSBpbmhlcml0YWJsZSBydWxlcyBoZXJlLiAqL1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogMDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dHJhbnNpdGlvbjogbm9uZTtcblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzEwNSAqL1xuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50IEFORCBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay5jay1yZXNldF9hbGwsXG4uY2stcmVzZXRfYWxsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHQvKiBUaGVzZSBhcmUgcnVsZSBpbmhlcml0ZWQgYnkgYWxsIGNoaWxkcmVuIGVsZW1lbnRzLiAqL1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCB2YXIoLS1jay1mb250LXNpemUtYmFzZSkvdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgdmFyKC0tY2stZm9udC1mYWNlKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IGF1dG87XG5cdGZsb2F0OiBub25lO1xufVxuLmNrLXJlc2V0X2FsbCAuY2stcnRsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4uY2stcmVzZXRfYWxsIGlmcmFtZTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0LyogRm9yIElFICovXG5cdFx0dmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG5cdH1cbi5jay1yZXNldF9hbGwgdGV4dGFyZWE6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0fVxuLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0LmNrLXJlc2V0X2FsbCBpbnB1dFt0eXBlPVwidGV4dFwiXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0LmNrLXJlc2V0X2FsbCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxuLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYVtkaXNhYmxlZF06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdC5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInRleHRcIl1bZGlzYWJsZWRdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQuY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVtkaXNhYmxlZF06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuLmNrLXJlc2V0X2FsbCBmaWVsZHNldDpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRib3JkZXI6IDJweCBncm9vdmUgaHNsKDI1NSwgNyUsIDg4JSk7XG5cdH1cbi5jay1yZXNldF9hbGwgYnV0dG9uOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopOjotbW96LWZvY3VzLWlubmVyIHtcblx0XHQvKiBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NTE3NzQ0L3JlbW92ZS1leHRyYS1idXR0b24tc3BhY2luZy1wYWRkaW5nLWluLWZpcmVmb3ggKi9cblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMFxuXHR9XG4vKipcbiAqIERlZmF1bHQgVUkgcnVsZXMgZm9yIFJUTCBsYW5ndWFnZXMuXG4gKi9cbi5ja1tkaXI9XCJydGxcIl0sXG4uY2tbZGlyPVwicnRsXCJdIC5jayB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogRGVmYXVsdCBib3JkZXItcmFkaXVzIHZhbHVlLlxuICovXG46cm9vdHtcblx0LS1jay1ib3JkZXItcmFkaXVzOiAycHg7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGlubmVyIHNoYWRvdyAoaS5lLiBpbnB1dCkuXG5cdCAqL1xuXHQtLWNrLWlubmVyLXNoYWRvdzogMnB4IDJweCAzcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWlubmVyKSBpbnNldDtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGRyb3Agc2hhZG93IChpLmUuIHBhbmVsKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3c6IDAgMXB4IDJweCAxcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3ApO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBlbGVtZW50J3MgYWN0aXZlIHNoYWRvdyAoaS5lLiBjb21tZW50IG9yIHN1Z2dlc3Rpb24pLlxuXHQgKi9cblx0LS1jay1kcm9wLXNoYWRvdy1hY3RpdmU6IDAgM3B4IDZweCAxcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3AtYWN0aXZlKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stc3BhY2luZy11bml0OiBcdFx0XHRcdFx0XHQwLjZlbTtcblx0LS1jay1zcGFjaW5nLWxhcmdlOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMS41KTtcblx0LS1jay1zcGFjaW5nLXN0YW5kYXJkOiBcdFx0XHRcdFx0dmFyKC0tY2stc3BhY2luZy11bml0KTtcblx0LS1jay1zcGFjaW5nLW1lZGl1bTogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuOCk7XG5cdC0tY2stc3BhY2luZy1zbWFsbDogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuNSk7XG5cdC0tY2stc3BhY2luZy10aW55OiBcdFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjMpO1xuXHQtLWNrLXNwYWNpbmctZXh0cmEtdGlueTogXHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjE2KTtcbn1cblxuLyogQ29tcG9uZW50cyAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLFxuXHQuY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cdH1cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLmNrLXNlYXJjaF9fcmVzdWx0c19uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0LyogUHJldmVudCBkdXBsaWNhdGVkIGJvcmRlcnMgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIHRoZSByZXN1bHRzIHBhbmUuICovXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHRcdH1cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLmNrLXNlYXJjaF9fcmVzdWx0c19zIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0LyogUHJldmVudCBkdXBsaWNhdGVkIGJvcmRlcnMgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIHRoZSByZXN1bHRzIHBhbmUuICovXG5cdFx0XHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIGEgYnV0dG9uIG9mIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtTdHJpbmd9ICRib3JkZXIgLSBCb3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQpO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdC8qIEEgdmVyeSBpbXBvcnRhbnQgcGllY2Ugb2Ygc3R5bGluZy4gR28gdG8gdmFyaWFibGUgZGVjbGFyYXRpb24gdG8gbGVhcm4gbW9yZS4gKi9cblx0bWluLXdpZHRoOiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblxuXHQvKiBOb3JtYWxpemUgdGhlIGhlaWdodCBvZiB0aGUgbGluZS4gUmVtb3ZpbmcgdGhpcyB3aWxsIGJyZWFrIGNvbnNpc3RlbnQgaGVpZ2h0XG5cdGFtb25nIHRleHQgYW5kIHRleHQtbGVzcyBidXR0b25zICh3aXRoIGljb25zKS4gKi9cblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQvKiBBdm9pZCBmbGlja2VyaW5nIHdoZW4gdGhlIGZvdWNzIGJvcmRlciBzaG93cyB1cC4gKi9cblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCwgYm9yZGVyIC4ycyBlYXNlLWluLW91dDtcblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzE4OSAqL1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4uY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbixcblx0LmNrLXJvdW5kZWQtY29ybmVycyBhLmNrLmNrLWJ1dHRvbixcblx0LmNrLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMsXG5cdGEuY2suY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG59XG5cdH1cbi5jay5jay1idXR0b246YWN0aXZlLFxuXHRhLmNrLmNrLWJ1dHRvbjphY3RpdmUsXG5cdC5jay5jay1idXR0b246Zm9jdXMsXG5cdGEuY2suY2stYnV0dG9uOmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdH1cbi8qIEFsbG93IGljb24gY29sb3JpbmcgdXNpbmcgdGhlIHRleHQgXCJjb2xvclwiIHByb3BlcnR5LiAqL1xuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSxcblx0XHRhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSxcblx0XHQuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlICosXG5cdFx0YS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB1c2UgKiB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblxuXHRcdC8qIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIC5jay1pY29uJ3MgdmVydGljYWwgYWxpZ24uIE90aGVyd2lzZSwgYnV0dG9ucyB3aXRoIGFuZFxuXHRcdHdpdGhvdXQgbGFiZWxzIChidXQgd2l0aCBpY29ucykgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMgaW4gQ2hyb21lICovXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBbZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCwgW2Rpcj1cInJ0bFwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2UsIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRvcGFjaXR5OiAuNTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzcwICovXG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkOmFjdGl2ZSxcblx0XHRhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDphY3RpdmUsXG5cdFx0LmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDpmb2N1cyxcblx0XHRhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgZGlzYWJsZWQgYnV0dG9uIHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdFx0b3BhY2l0eTogLjM7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiwgW2Rpcj1cInJ0bFwiXSBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC1rZXlzdHJva2UgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLWtleXN0cm9rZSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0fVxuLyogQSBzdHlsZSBvZiB0aGUgYnV0dG9uIHdoaWNoIGlzIGN1cnJlbnRseSBvbiwgZS5nLiBpdHMgZmVhdHVyZSBpcyBhY3RpdmUuICovXG4uY2suY2stYnV0dG9uLmNrLW9uLCBhLmNrLmNrLWJ1dHRvbi5jay1vbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdH1cbi5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIsIGEuY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1vbi5jay1kaXNhYmxlZCwgYS5jay5jay1idXR0b24uY2stb24uY2stZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b24tc2F2ZSwgYS5jay5jay1idXR0b24uY2stYnV0dG9uLXNhdmUge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdH1cbi5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWwpO1xuXHR9XG4vKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaGFuZGxlcyB0aGUgcHJpbWFyeSBhY3Rpb24uICovXG4uY2suY2stYnV0dG9uLWFjdGlvbixcbmEuY2suY2stYnV0dG9uLWFjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZCk7XG5cblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tdGV4dCk7XG59XG4uY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciwgYS5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi1hY3Rpb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlLCBhLmNrLmNrLWJ1dHRvbi1hY3Rpb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYWN0aXZlLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cbi5jay5jay1idXR0b24tYWN0aW9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi1hY3Rpb24uY2stZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cbi5jay5jay1idXR0b24tYm9sZCxcbmEuY2suY2stYnV0dG9uLWJvbGQge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogTm90ZTogVG8gYXZvaWQgcmVuZGVyaW5nIGlzc3VlcyAoYWxpYXNpbmcpIGJ1dCB0byBwcmVzZXJ2ZSB0aGUgcmVzcG9uc2l2ZSBuYXR1cmVcbm9mIHRoZSBjb21wb25lbnQsIGZsb2F0aW5n4oCTcG9pbnQgbnVtYmVycyBoYXZlIGJlZW4gdXNlZCB3aGljaCwgZm9yIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZVxuKHNlZTogLS1jay1mb250LXNpemUtYmFzZSksIHdpbGwgZ2VuZXJhdGUgc2ltcGxlIGludGVnZXJzLiAqL1xuOnJvb3Qge1xuXHQvKiAzNHB4IGF0IDEzcHggZm9udC1zaXplICovXG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGg6IDIuNjE1Mzg0NjE1NGVtO1xuXHQvKiAxNHB4IGF0IDEzcHggZm9udC1zaXplICovXG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZTogY2FsYygxLjA3NjkyMzA3NjllbSArIDFweCk7XG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbjogY2FsYyhcblx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCkgLVxuXHRcdHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpIC1cblx0XHQycHggLyogQm9yZGVyICovXG5cdCk7XG5cdC0tY2stc3dpdGNoLWJ1dHRvbi1pbm5lci1ob3Zlci1zaGFkb3c6IDAgMCAwIDVweCB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLXNoYWRvdyk7XG59XG4vKiBVbmxpa2UgYSByZWd1bGFyIGJ1dHRvbiwgdGhlIHN3aXRjaCBidXR0b24gdGV4dCBjb2xvciBhbmQgYmFja2dyb3VuZCBzaG91bGQgbmV2ZXIgY2hhbmdlLlxuXHQgKiBDaGFuZ2luZyB0b2dnbGUgc3dpdGNoIChiYWNrZ3JvdW5kLCBvdXRsaW5lKSBpcyBlbm91Z2ggdG8gY2FycnkgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZVxuXHQgKiBzdGF0ZSBvZiB0aGUgZW50aXJlIGNvbXBvbmVudCAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTI1MTkpXG5cdCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24sIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmhvdmVyLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpmb2N1cywgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b246YWN0aXZlLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbjpob3ZlciwgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb246Zm9jdXMsIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0LyogU2VwYXJhdGUgdGhlIGxhYmVsIGZyb20gdGhlIHN3aXRjaCAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0LyogU2VwYXJhdGUgdGhlIGxhYmVsIGZyb20gdGhlIHN3aXRjaCAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCA0MDBtcyBlYXNlLCBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCwgb3V0bGluZSAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUsXG5cdC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZS5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIHJpZ2h0IGFzIGZhciBhcyBwb3NzaWJsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIGxlZnQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHR3aWR0aDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1iYWNrZ3JvdW5kKTtcblxuXHRcdFx0LyogR2VudGx5IGFuaW1hdGUgdGhlIGlubmVyIHBhcnQgb2YgdGhlIHRvZ2dsZSBzd2l0Y2ggKi9cblx0XHRcdHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlO1xuXHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIsXG5cdC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IGNhbGMoLjUgKiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSk7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi1pbm5lci1ob3Zlci1zaGFkb3cpO1xuXHRcdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0fVxuLyogT3ZlcnJpZGluZyBkZWZhdWx0IC5jay1idXR0b246Zm9jdXMgc3R5bGVzICsgYW4gb3V0bGluZSBhcm91bmQgdGhlIHRvb2dsZSAqL1xuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b246Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpmb2N1cyAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDVweCB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IDFweDtcblx0XHRcdG91dGxpbmU6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdH1cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbiAuY2stYnV0dG9uX190b2dnbGU6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLypcblx0XHRcdFx0KiBNb3ZlIHRoZSB0b2dnbGUgc3dpdGNoIHRvIHRoZSByaWdodC4gSXQgd2lsbCBiZSBhbmltYXRlZC5cblx0XHRcdFx0Ki9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIGNhbGMoIC0xICogdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApICk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG59XG4uY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24sXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uOmhhcyguY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyKSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbjpoYXMoLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlcikge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qXG5cdCAqIGAuY2stb25gIGNsYXNzIGFuZCBiYWNrZ3JvdW5kIHN0eWxpbmcgaXMgb3ZlcnJpZGRlbiBmb3IgYGNrLWJ1dHRvbmAgaW4gbWFueSBwbGFjZXMuXG5cdCAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrZ3JvdW5kIGlzIG5vdCBvdmVycmlkZGVuIGFuZCB1c2VzIHNpbWlsYXJcblx0ICogc2VsZWN0b3Igc3BlY2lmaWNpdHkgYXMgdGhlIG90aGVyIG92ZXJyaWRlcy5cblx0ICovXG4uY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b246aG92ZXI6bm90KC5jay1kaXNhYmxlZCksXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1idXR0b24uY2stb246aG92ZXIsXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSksXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdH1cbi5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKTpub3QoLmNrLWRpc2FibGVkKSwgLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLWJ1dHRvbi5jay1vbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSwgLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlKTpub3QoLmNrLWRpc2FibGVkKSwgLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLW9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbGxhcHNpYmxlLWFycm93LXNpemU6IGNhbGMoMC41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG59XG4uY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHR9XG4uY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdH1cbi5jay5jay1jb2xsYXBzaWJsZSA+IC5jay5jay1idXR0b246YWN0aXZlLCAuY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uOm5vdCg6Zm9jdXMpLCAuY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uOmhvdmVyOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLmNrLWJ1dHRvbiA+IC5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWNvbGxhcHNpYmxlLWFycm93LXNpemUpO1xuXHRcdH1cbi5jay5jay1jb2xsYXBzaWJsZSA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWNvbGxhcHNpYmxlLmNrLWNvbGxhcHNpYmxlX2NvbGxhcHNlZCA+IC5jay5jay1idXR0b24gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplOiAyNHB4O1xuXG5cdC8qIE5vdCB1c2luZyBnbG9iYWwgY29sb3JzIGhlcmUgYmVjYXVzZSB0aGVzZSBtYXkgY2hhbmdlIGJ1dCBzb21lIGNvbG9ycyBpbiBhIHBhbGxldHRlXG5cdCAqIHJlcXVpcmUgc3BlY2lhbCB0cmVhdG1lbnQuIEZvciBpbnN0YW5jZSwgdGhpcyBlbnN1cmVzIG5vIG1hdHRlciB3aGF0IHRoZSBVSSB0ZXh0IGNvbG9yIGlzLFxuXHQgKiB0aGUgY2hlY2sgaWNvbiB3aWxsIGxvb2sgZ29vZCBvbiB0aGUgYmxhY2sgY29sb3IgdGlsZS4gKi9cblx0LS1jay1jb2xvci1jb2xvci1ncmlkLWNoZWNrLWljb246IGhzbCgyMTIsIDgxJSwgNDYlKTtcbn1cbi5jay5jay1jb2xvci1ncmlkIHtcblx0Z3JpZC1nYXA6IDVweDtcblx0cGFkZGluZzogOHB4O1xufVxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xufVxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSB7XG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLW9uLFxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGU6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItdGlsZV9ib3JkZXJlZCB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLW9uIHtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0XHR9XG5cblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZTpmb2N1czpub3QoIC5jay1kaXNhYmxlZCApLFxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cblx0fVxuLypcblx0ICogSW4gaGlnaCBjb250cmFzdCBtb2RlLCB0aGUgY29sb3JzIGFyZSByZXBsYWNlZCB3aXRoIHRleHQgbGFiZWxzLlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdCAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdFx0d2lkdGg6IHVuc2V0O1xuXHRcdGhlaWdodDogdW5zZXQ7XG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stZGlzYWJsZWQge1xuXHRcdGN1cnNvcjogdW5zZXQ7XG5cdFx0dHJhbnNpdGlvbjogdW5zZXQ7XG5cdH1cbi5jay5jay1jb2xvci1ncmlkX190aWxlIC5jay5jay1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1jb2xvci1ncmlkLWNoZWNrLWljb24pO1xuXHR9XG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1vbiAuY2suY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG4uY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBWaWV3IGZyYWdtZW50IHdpdGggY29sb3IgZ3JpZHMuICovXG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX3JlbW92ZS1jb2xvcixcblx0XHQuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIC8gMikgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXI6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciAuY2suY2staWNvbiB7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciAuY2suY2staWNvbiB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IGxhYmVsLmNrLmNrLWNvbG9yLWdyaWRfX2xhYmVsIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiB1bnNldDtcblx0XHR9XG4vKiBWaWV3IGZyYWdtZW50IHdpdGggYSBjb2xvciBwaWNrZXIuICovXG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIHtcblx0XHRcdHBhZGRpbmc6IDhweDtcblx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIC5oZXgtY29sb3ItcGlja2VyIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDBweDtcblx0XHRcdFx0bWluLXdpZHRoOiAxODBweDtcblx0XHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIgLmhleC1jb2xvci1waWNrZXI6OnBhcnQoc2F0dXJhdGlvbikge1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblx0XHRcdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciAuaGV4LWNvbG9yLXBpY2tlcjo6cGFydChodWUpIHtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIgLmhleC1jb2xvci1waWNrZXI6OnBhcnQoc2F0dXJhdGlvbi1wb2ludGVyKSxcblx0XHRcdFx0LmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciAuaGV4LWNvbG9yLXBpY2tlcjo6cGFydChodWUtcG9pbnRlcikge1xuXHRcdFx0XHRcdHdpZHRoOiAxNXB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIge1xuXHRcdFx0cGFkZGluZzogMCA4cHggOHB4O1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3I6IGhzbGEoIDAsIDAlLCAwJSwgLjUgKTtcblx0LS1jay1kaWFsb2ctZHJvcC1zaGFkb3c6IDBweCAwcHggNnB4IDJweCBoc2woMGRlZyAwJSAwJSAvIDE1JSk7XG5cdC0tY2stZGlhbG9nLW1heC13aWR0aDogMTAwdnc7XG5cdC0tY2stZGlhbG9nLW1heC1oZWlnaHQ6IDkwdmg7XG5cdC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuLmNrLmNrLWRpYWxvZy1vdmVybGF5IHtcblx0YW5pbWF0aW9uOiBjay1kaWFsb2ctZmFkZS1pbiAuM3M7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3IpO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRpYWxvZyk7XG59XG4uY2suY2stZGlhbG9nIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQtLWNrLWRyb3Atc2hhZG93OiB2YXIoLS1jay1kaWFsb2ctZHJvcC1zaGFkb3cpO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRpYWxvZy1iYWNrZ3JvdW5kKTtcblx0bWF4LWhlaWdodDogdmFyKC0tY2stZGlhbG9nLW1heC1oZWlnaHQpO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWRpYWxvZy1tYXgtd2lkdGgpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kaWFsb2csXG5cdC5jay5jay1kaWFsb2cuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWRpYWxvZyB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xufVxuLmNrLmNrLWRpYWxvZyAuY2suY2stZm9ybV9faGVhZGVyIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcik7XG5cdH1cbi5jay1kaWFsb2ctc2Nyb2xsLWxvY2tlZCB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5Aa2V5ZnJhbWVzIGNrLWRpYWxvZy1mYWRlLWluIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQ6IGhzbGEoIDAsIDAlLCAwJSwgMCApO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcik7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stZGlhbG9nIC5jay5jay1kaWFsb2dfX2FjdGlvbnMge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2stZGlhbG9nIC5jay5jay1kaWFsb2dfX2FjdGlvbnMgPiAqICsgKiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLWFycm93LXNpemU6IGNhbGMoMC41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG59XG4uY2suY2stZHJvcGRvd24ge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG4uY2suY2stZHJvcGRvd24uY2stZGlzYWJsZWQgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0LyogTWFrZSBzdXJlIGRyb3Bkb3ducyB3aXRoIGp1c3QgYW4gaWNvbiBoYXZlIHRoZSByaWdodCBpbm5lciBzcGFjaW5nICovXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbi8qICMyMyAqL1xuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogN2VtO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b25fbGFiZWwtd2lkdGhfYXV0byAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84Njk5ICovXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9mZjphY3RpdmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vbjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9mZjphY3RpdmU6Zm9jdXMsIC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb246YWN0aXZlOmZvY3VzIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdFx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblxuXHQvKiBNYWtlIHN1cmUgdGhlIHBhbmVsIGlzIGF0IGxlYXN0IGFzIHdpZGUgYXMgdGhlIGRyb3AtZG93bidzIGJ1dHRvbi4gKi9cblx0bWluLXdpZHRoOiAxMDAlO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZHJvcGRvd25fX3BhbmVsLFxuXHQuY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHQvKiBEaXNhYmxlZCBjb3JuZXIgYm9yZGVyIHJhZGl1cyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIC5kcm9wZG93bl9fYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xufVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc2Uge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX253IHtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbDpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IHtcblx0LyogRGlzYWJsZWQgcmFkaXVzIG9mIHRvcC1sZWZ0IGJvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGggLmRyb3Bkb3duX19idXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCxcblx0LmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLyogTWFrZSBzdXJlIHRoZSBidXR0b24gYmVsb25naW5nIHRvIHRoZSBmaXJzdC9sYXN0IGNoaWxkIG9mIHRoZSBsaXN0IGdvZXMgd2VsbCB3aXRoIHRoZVxuXHRib3JkZXIgcmFkaXVzIG9mIHRoZSBlbnRpcmUgcGFuZWwuICovXG4uY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgPiAuY2stYnV0dG9uIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgPiAuY2stYnV0dG9uLFxuXHQuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgPiAuY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCA+IC5jay1idXR0b24ge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpsYXN0LWNoaWxkID4gLmNrLWJ1dHRvbixcblx0LmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IC5jay1saXN0X19pdGVtOmxhc3QtY2hpbGQgPiAuY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIlKTtcblx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyOiBoc2woMCwgMCUsIDcwJSk7XG59XG4vKlxuXHQgKiBOb3RlOiBjay1yb3VuZGVkIGFuZCBjay1kaXIgbWl4aW5zIGRvbid0IGdvIHRvZ2V0aGVyIChiZWNhdXNlIHRoZXkgYm90aCB1c2UgQG5lc3QpLlxuXHQgKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sIFtkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYWN0aW9uIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sIFtkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYWN0aW9uIGJ1dHRvbiBvbiB0aGUgbGVmdCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cbi5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdC8qIEl0J3MgYSB0ZXh0LWxlc3MgYnV0dG9uIGFuZCBzaW5jZSB0aGUgaWNvbiBpcyBwb3NpdGlvbmVkIGFic29sdXRlbHkgaW4gc3VjaCBzaXR1YXRpb24sXG5cdFx0aXQgbXVzdCBnZXQgc29tZSBhcmJpdHJhcnkgbWluLXdpZHRoLiAqL1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYXJyb3cgYnV0dG9uIG9uIHRoZSBsZWZ0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhcnJvdyBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG4uY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHN2ZyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdFx0fVxuLyogTWFrZSBzdXJlIHRoZSBkaXZpZGVyIHN0cmV0Y2hlcyAxMDAlIGhlaWdodCBvZiB0aGUgYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwOTM2ICovXG4uY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCg6Zm9jdXMpIHtcblx0XHRib3JkZXItdG9wLXdpZHRoOiAwcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xuXHR9XG4vKiBEb24ndCByb3VuZCB0aGUgYm90dG9tIGxlZnQgYW5kIHJpZ2h0IGNvcm5lcnMgb2YgdGhlIGJ1dHRvbnMgd2hlbiBcIm9wZW5cIlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuLFxuXHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuLmNrLXJvdW5kZWQtY29ybmVycyA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93LCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMgPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG4vKiBXaGVuIHRoZSBzcGxpdCBidXR0b24gaXMgXCJvcGVuXCIgKHRoZSBhcnJvdyBpcyBvbikgb3IgYmVpbmcgaG92ZXJlZCwgaXQgc2hvdWxkIGdldCBzb21lIHN0eWxpbmdcblx0YXMgYSB3aG9sZS4gVGhlIGJhY2tncm91bmQgb2YgYm90aCBidXR0b25zIHNob3VsZCBzdGFuZCBvdXQgYW5kIHRoZXJlIHNob3VsZCBiZSBhIHZpc3VhbFxuXHRzZXBhcmF0aW9uIGJldHdlZW4gYm90aCBidXR0b25zLiAqL1xuLyogV2hlbiB0aGUgc3BsaXQgYnV0dG9uIGhvdmVyZWQgYXMgYSB3aG9sZSwgbm90IGFzIGluZGl2aWR1YWwgYnV0dG9ucy4gKi9cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSwgLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLyogU3BsaXRidXR0b24gc2VwYXJhdG9yIG5lZWRzIHRvIGJlIHNldCB3aXRoIHRoZSA6OmFmdGVyIHBzZXVkb3NlbGVjdG9yXG5cdFx0dG8gZGlzcGxheSBwcm9wZXJseSB0aGUgYm9yZGVycyBvbiBmb2N1cyAqL1xuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogMXB4O1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcik7XG5cdFx0fVxuLyogTWFrZSBzdXJlIHRoZSBkaXZpZGVyIGJldHdlZW4gdGhlIGJ1dHRvbnMgbG9va3MgZmluZSB3aGVuIHRoZSBidXR0b24gaXMgZm9jdXNlZCAqL1xuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93OmZvY3VzOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpmb2N1czo6YWZ0ZXIge1xuXHRcdFx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgW2Rpcj1cImx0clwiXSAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRcdGxlZnQ6IC0xcHg7XG5cdFx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIFtkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0XHRyaWdodDogLTFweDtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stdG9vbGJhci1kcm9wZG93biAuY2stdG9vbGJhciB7XG5cdGJvcmRlcjogMDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQWxsIG1lbnUgYnV0dG9ucy5cbiAqL1xuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24ge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbjpmb2N1czpub3QoLmNrLW9uKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24uY2stZGlzYWJsZWQgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdH1cbi8qIFNwYWNpbmcgaW4gYnV0dG9ucyB0aGF0IG1pc3MgdGhlIGljb24uICovXG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbi5jay1pY29uLXNwYWNpbmc6bm90KDpoYXMoLmNrLWJ1dHRvbl9faWNvbikpID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgLSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdH1cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cblx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cblx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIGxlZnQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIHJpZ2h0IChhZnRlciByb3RhdGlvbikuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24uY2stZGlzYWJsZWQgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cbi5jay5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtIHtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tZW51LW1lbnUtaXRlbS1taW4td2lkdGgpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBMaXN0IGl0ZW0gYnV0dG9ucy5cbiAqL1xuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24ge1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIsXG5cdC5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIC5jay1zcGlubmVyIHtcblx0XHQvKiBUaGVzZSBzdHlsZXMgY29ycmVzcG9uZCB0byAuY2staWNvbiBzbyB0aGF0IHRoZSBzcGlubmVyIHNlYW1sZXNzbHkgcmVwbGFjZXMgdGhlIGljb24uICovXG5cdFx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMjBweDtcblx0fVxuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdC8qIFRoZXNlIG1hcmdpbnMgYXJlIHRoZSBzYW1lIGFzIGZvciAuY2staWNvbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKlxuXHQgKiBIb3ZlcmVkIGl0ZW1zIGF1dG9tYXRpY2FsbHkgZ2V0IGZvY3VzZWQuIERlZmF1bHQgZm9jdXMgc3R5bGVzIGxvb2sgb2RkXG5cdCAqIHdoaWxlIG1vdmluZyBhY3Jvc3MgYSBodWdlIGxpc3Qgb2YgaXRlbXMgc28gbGV0J3MgZ2V0IHJpZCBvZiB0aGVtXG5cdCAqL1xuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b246Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b246Zm9jdXM6bm90KC5jay1vbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tZW51LW1lbnUtcGFuZWwtbWF4LXdpZHRoOiA3NXZ3O1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tZW51LW1lbnUtcGFuZWwtbWF4LXdpZHRoKTtcblxuXHQvKiBSZXNldCBiYWxsb29uIHN0eWxpbmcgKi9cbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbDo6YWZ0ZXIsXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbDo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG4vKiBDb3JuZXIgYm9yZGVyIHJhZGl1cyBjb25zaXN0ZW50IHdpdGggdGhlIGJ1dHRvbi4gKi9cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX2VzLFxuXHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfd3MsXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfZW4sXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93bixcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWw6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG46cm9vdCB7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtd2lkdGg6IDYwMHB4O1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LWhlaWdodDogNDAwcHg7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3I6IGhzbCgyMjAsIDYlLCA4MSUpO1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMGRlZyAwJSA5Mi45NCUpO1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cta2JkLXNoYWRvdy1jb2xvcjogaHNsKDBkZWcgMCUgNjElKTtcbn1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtd2lkdGgpO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC1oZWlnaHQpO1xuXHRvdmVyZmxvdzogYXV0bztcblx0dXNlci1zZWxlY3Q6IHRleHQ7XG5cblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudDpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCAqIHtcblx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHR9XG4vKiBIaWRlIHRoZSBtYWluIGxhYmVsIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci4gKi9cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgaDMge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMS4yZW07XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGg0IHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LXNpemU6IDFlbTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgcCxcblx0LmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgaDMsXG5cdC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGg0LFxuXHQuY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCB0YWJsZSB7XG5cdFx0bWFyZ2luOiAxZW0gMDtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwgZHQsIC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGRsIGRkIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG5cdFx0XHRwYWRkaW5nOiAuNGVtIDA7XG5cdFx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwgZHQge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG5cdFx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwgZGQge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBrYmQsIC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGNvZGUge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWNvZGUtYmFja2dyb3VuZC1jb2xvcik7XG5cdFx0cGFkZGluZzogLjRlbTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAuOWVtO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBjb2RlIHtcblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBrYmQge1xuXHRcdG1pbi13aWR0aDogMS44ZW07XG5cdFx0Ym94LXNoYWRvdzogMHB4IDFweCAxcHggdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1rYmQtc2hhZG93LWNvbG9yKTtcblx0XHRtYXJnaW46IDAgMXB4O1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBrYmQgKyBrYmQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDJweDtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1lZGl0YWJsZS1ibHVyLXNlbGVjdGlvbjogaHNsKDAsIDAlLCA4NSUpO1xufVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcm91bmRlZC1jb3JuZXJzOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZm9jdXNlZDpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2staW5uZXItc2hhZG93KSwgMCAwO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmVbZGlyPVwibHRyXCJdIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmVbZGlyPVwicnRsXCJdIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTYgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+ICo6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84NDcgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+ICo6bGFzdC1jaGlsZCB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIHZhbHVlIHNob3VsZCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IG1hcmdpbnMgb2YgdGhlIGJsb2NrIGVsZW1lbnRzIChsaWtlIC5tZWRpYSBvciAuaW1hZ2UpXG5cdFx0ICogdG8gYXZvaWQgYSBjb250ZW50IGp1bXBpbmcgd2hlbiB0aGUgZmFrZSBzZWxlY3Rpb24gY29udGFpbmVyIHNob3dzIHVwIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuXG5cdFx0ICovXG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY1MTcgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1ibHVycmVkIDo6c2VsZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1lZGl0YWJsZS1ibHVyLXNlbGVjdGlvbik7XG5cdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTExICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sYmFyLWNvbnRhaW5lcltjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0OiA0NHB4O1xufVxuLmNrLmNrLWZvcm1fX2hlYWRlciB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLWZvcm0taGVhZGVyLWhlaWdodCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1mb3JtLWhlYWRlci1oZWlnaHQpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuW2Rpcj1cImx0clwiXSAuY2suY2stZm9ybV9faGVhZGVyID4gLmNrLWljb24ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZvcm1fX2hlYWRlciA+IC5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbi5jay5jay1mb3JtX19oZWFkZXIgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdC0tY2stZm9udC1zaXplLWJhc2U6IDE1cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2staWNvbi1zaXplOiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCkpO1xuXHQtLWNrLWljb24tZm9udC1zaXplOiAuODMzMzM1MDY5NGVtO1xufVxuLmNrLmNrLWljb24ge1xuXHR3aWR0aDogdmFyKC0tY2staWNvbi1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1pY29uLXNpemUpO1xuXG5cdC8qIE11bHRpcGxpZWQgYnkgdGhlIGhlaWdodCBvZiB0aGUgbGluZSBpbiBcInB4XCIgc2hvdWxkIGdpdmUgU1ZHIFwidmlld3BvcnRcIiBkaW1lbnNpb25zICovXG5cdGZvbnQtc2l6ZTogdmFyKC0tY2staWNvbi1mb250LXNpemUpO1xuXG5cdC8qIEluaGVyaXQgY3Vyc29yIHN0eWxlICgjNSkuICovXG5cdGN1cnNvcjogaW5oZXJpdDtcbn1cbi5jay5jay1pY29uICoge1xuXHRcdC8qIEluaGVyaXQgY3Vyc29yIHN0eWxlICgjNSkuICovXG5cdFx0Y3Vyc29yOiBpbmhlcml0O1xuXHR9XG4vKiBBbGxvd3MgZHluYW1pYyBjb2xvcmluZyBvZiBhbiBpY29uIGJ5IGluaGVyaXRpbmcgaXRzIGNvbG9yIGZyb20gdGhlIHBhcmVudC4gKi9cbi5jay5jay1pY29uLmNrLWljb25faW5oZXJpdC1jb2xvciB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdH1cbi5jay5jay1pY29uLmNrLWljb25faW5oZXJpdC1jb2xvciAqIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdH1cbi5jay5jay1pY29uLmNrLWljb25faW5oZXJpdC1jb2xvciAqOm5vdChbZmlsbF0pIHtcblx0XHRcdFx0LyogTmVlZGVkIGJ5IEZGLiAqL1xuXHRcdFx0XHRmaWxsOiBjdXJyZW50Q29sb3I7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG46cm9vdCB7XG5cdC0tY2staW5wdXQtd2lkdGg6IDE4ZW07XG5cblx0LyogQmFja3dhcmQgY29tcGF0aWJpbGl0eS4gKi9cblx0LS1jay1pbnB1dC10ZXh0LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG59XG4uY2suY2staW5wdXQge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1ib3JkZXIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cblx0LyogVGhpcyBpcyBpbXBvcnRhbnQgdG8gc3RheSBvZiB0aGUgc2FtZSBoZWlnaHQgYXMgc3Vycm91bmRpbmcgYnV0dG9ucyAqL1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cblx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4xcyBlYXNlLWluLW91dCwgYm9yZGVyIC4xcyBlYXNlLWluLW91dDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWlucHV0LFxuXHQuY2suY2staW5wdXQuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1pbnB1dCB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrLmNrLWlucHV0OmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdH1cbi5jay5jay1pbnB1dFtyZWFkb25seV0ge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJvcmRlcik7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQpO1xuXHR9XG4uY2suY2staW5wdXRbcmVhZG9ubHldOmZvY3VzIHtcblx0XHRcdC8qIFRoZSByZWFkLW9ubHkgaW5wdXQgc2hvdWxkIGhhdmUgYSBzbGlnaHRseSBsZXNzIHZpc2libGUgc2hhZG93IHdoZW4gZm9jdXNlZC4gKi9cblx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdyksIDAgMDtcblx0XHR9XG4uY2suY2staW5wdXQuY2stZXJyb3Ige1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZXJyb3ItYm9yZGVyKTtcblx0XHRhbmltYXRpb246IGNrLWlucHV0LXNoYWtlIC4zcyBlYXNlIGJvdGg7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2staW5wdXQuY2stZXJyb3Ige1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHR9XG5cdFx0fVxuLmNrLmNrLWlucHV0LmNrLWVycm9yOmZvY3VzIHtcblx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdyksIDAgMDtcblx0XHR9XG5Aa2V5ZnJhbWVzIGNrLWlucHV0LXNoYWtlIHtcblx0MjAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7XG5cdH1cblxuXHQ0MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuXHR9XG5cblx0NjAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7XG5cdH1cblxuXHQ4MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uOiAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMjQsIDAuOTUpO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aDogMTAwJSAtIDIgKiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXg6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teTogY2FsYygwLjYgKiB2YXIoLS1jay1mb250LXNpemUtYmFzZSkpO1xuXHQtLWNrLWNvbG9yLWxhYmVsZWQtZmllbGQtbGFiZWwtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LFxuXHQuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0dG9wOiAwcHg7XG5cblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1sYWJlbGVkLWZpZWxkLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogMCBjYWxjKC41ICogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuXHRcdFx0LyogUHJldmVudCBvdmVyZmxvdyB3aGVuIHRoZSBsYWJlbCBpcyBsb25nZXIgdGhhbiB0aGUgaW5wdXQgKi9cblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0XHR0cmFuc2Zvcm0gdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pLFxuXHRcdFx0XHRwYWRkaW5nIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKSxcblx0XHRcdFx0YmFja2dyb3VuZCB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbik7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHRcdGxlZnQ6IDBweDtcblx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuXHRcdFx0XHQvKiBCeSBkZWZhdWx0LCBkaXNwbGF5IHRoZSBsYWJlbCBzY2FsZWQgZG93biBhYm92ZSB0aGUgZmllbGQuICovXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgLTZweCkgc2NhbGUoLjc1KTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSksIC02cHgpIHNjYWxlKC43NSk7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1lcnJvciA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZXJyb3IgLmNrLWlucHV0Om5vdChbcmVhZG9ubHldKSArIC5jay5jay1sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdC8qIExldCB0aGUgaW5mbyB3cmFwIHRvIHRoZSBuZXh0IGxpbmUgdG8gYXZvaWQgc3RyZXRjaGluZyB0aGUgbGF5b3V0IGhvcml6b250YWxseS5cblx0XHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1c19lcnJvciB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuLyogRGlzYWJsZWQgZmllbGRzIGFuZCBmaWVsZHMgdGhhdCBoYXZlIG5vIGZvY3VzIHNob3VsZCBmYWRlIG91dC4gKi9cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZGlzYWJsZWQgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLFxuXHQuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KTtcblx0fVxuLyogRmllbGRzIHRoYXQgYXJlIGRpc2FibGVkIG9yIG5vdCBmb2N1c2VkIGFuZCB3aXRob3V0IGEgcGxhY2Vob2xkZXIgc2hvdWxkIGhhdmUgZnVsbC1zaXplZCBsYWJlbHMuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1kaXNhYmxlZC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCxcblx0LmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpOm5vdCguY2stZXJyb3IpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cblx0XHQvKiBDb21wZW5zYXRlIGZvciB0aGUgZGVmYXVsdCB0cmFuc2xhdGUgcG9zaXRpb24uICovXG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aCkpO1xuXG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLCBbZGlyPVwibHRyXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKTpub3QoLmNrLWVycm9yKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXgpLCB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teSkpIHNjYWxlKDEpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZGlzYWJsZWQuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsIFtkaXI9XCJydGxcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpOm5vdCguY2stZXJyb3IpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKC0xICogdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXgpKSwgdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXkpKSBzY2FsZSgxKTtcblx0fVxuLyotLS0tLS0gRHJvcGRvd25WaWV3IGludGVncmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBNYWtlIHN1cmUgZHJvcGRvd24nIGJhY2tncm91bmQgY29sb3IgaW4gYW55IG9mIGRyb3Bkb3duJ3Mgc3RhdGUgZG9lcyBub3QgY29sbGlkZSB3aXRoIGxhYmVsZWQgZmllbGQuICovXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR9XG4vKiBXaGVuIHRoZSBkcm9wZG93biBpcyBcImVtcHR5XCIsIHRoZSBsYWJlbGVkIGZpZWxkIGxhYmVsIHJlcGxhY2VzIGl0cyBsYWJlbC4gKi9cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1kcm9wZG93biA+IC5jay1idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuLyogTWFrZSBzdXJlIHRoZSBsYWJlbCBvZiB0aGUgZW1wdHksIHVuZm9jdXNlZCBpbnB1dCBkb2VzIG5vdCBjb3ZlciB0aGUgZHJvcGRvd24gYXJyb3cuICovXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duICsgLmNrLWxhYmVsIHtcblx0XHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoKSAtIHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpIC0gdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbi5jay5jay1sYWJlbGVkLWlucHV0IC5jay1sYWJlbGVkLWlucHV0X19zdGF0dXNfZXJyb3Ige1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbGlzdCB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXG5cdC8qIEEgc3BhY2luZyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGxpc3QgKi9cblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWxpc3QsXG5cdC5jay5jay1saXN0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1saXN0X19pdGVtIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdC8qIEFsbW9zdCBhcyB3aWRlIGFzIG1lbnUgYmFyIGl0ZW1zLiAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dCk7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6YWN0aXZlIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1cyk7XG5cdFx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKTpmb2N1czpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIEl0J3MgdW5uZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBiYWNrZ3JvdW5kL3RleHQgb2YgYSBzd2l0Y2ggdG9nZ2xlOyBpdCBoYXMgZGlmZmVyZW50IHdheXNcblx0b2YgY29udmV5aW5nIGl0cyBzdGF0ZSAobGlrZSB0aGUgc3dpdGNoZXIpICovXG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0fVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwIHtcblx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBMaXN0cyBjb21lIHdpdGggYW4gaW5uZXIgdmVydGljYWwgcGFkZGluZy4gRG9uJ3QgZHVwbGljYXRlIGl0LiAqL1xufVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwOmZpcnN0LWNoaWxkIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxuLyogVGhlIGdyb3VwIHNob3VsZCBoYXZlIGEgYm9yZGVyIHdoZW4gaXQncyBub3QgdGhlIGZpcnN0IGl0ZW0uICovXG4qOm5vdCguY2staGlkZGVuKSB+IC5jay1saXN0IC5jay1saXN0X19ncm91cCB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwID4gLmNrLWxhYmVsIHtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cbi5jay5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiBHaXZlIHRoZSBzZXBhcmF0b3Igc29tZSBhaXIgKi9cblx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAwO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1tZW51LWJhciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Z2FwOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXHR3aWR0aDogMTAwJTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuLmNrLmNrLW1lbnUtYmFyX19tZW51LmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcblx0ICogQWxsIG1lbnUgYnV0dG9ucy5cblx0ICovXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuLypcblx0ICogVG9wLWxldmVsIG1lbnUgYnV0dG9ucyBvbmx5LlxuXHQgKi9cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IHVuc2V0O1xuXHRcdFx0bGluZS1oZWlnaHQ6IHVuc2V0O1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogVG9wLWxldmVsIGJ1dHRvbnMgZG9uJ3QgdXNlIGVsbGlwc2lzIGFuZCBvdmVyZmxvdzogaGlkZGVuIGNsaXBzIGRlc2NlbmRlcnMuXG5cdFx0XHQgKiAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE3NDIyLlxuXHRcdFx0ICovXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24uY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiAuY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cbi8qXG5cdCAqIFN1Yi1tZW51IGJ1dHRvbnMuXG5cdCAqL1xuLmNrLmNrLW1lbnUtYmFyX19tZW51Om5vdCguY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsKSAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51Om5vdCguY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsKSAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuXHRcdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXG5cdFx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIGxlZnQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIHJpZ2h0IChhZnRlciByb3RhdGlvbikuICovXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSAuY2suY2stbWVudS1iYXJfX21lbnVfX2l0ZW0ge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLW1lbnUtYmFyLW1lbnUtaXRlbS1taW4td2lkdGgpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuXHQgKiBMaXN0IGl0ZW0gYnV0dG9ucy5cblx0ICovXG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyLFxuXHRcdC5jay5jay1tZW51LWJhcl9fbWVudSAuY2stYnV0dG9uLmNrLW1lbnUtYmFyX19tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIgLmNrLXNwaW5uZXIge1xuXHRcdFx0LyogVGhlc2Ugc3R5bGVzIGNvcnJlc3BvbmQgdG8gLmNrLWljb24gc28gdGhhdCB0aGUgc3Bpbm5lciBzZWFtbGVzc2x5IHJlcGxhY2VzIHRoZSBpY29uLiAqL1xuXHRcdFx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMjBweDtcblx0XHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRcdC8qIFRoaXMgZW5zdXJlcyBtYXJnaW5zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIC5jay1pY29uLiAqL1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1pY29uLWZvbnQtc2l6ZSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLW1lbnUtYmFyX19tZW51IC5jay1idXR0b24uY2stbWVudS1iYXJfX21lbnVfX2l0ZW1fX2J1dHRvbiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LXBhbmVsLW1heC13aWR0aDogNzV2dztcbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHQvKiBDb3JuZXIgYm9yZGVyIHJhZGl1cyBjb25zaXN0ZW50IHdpdGggdGhlIGJ1dHRvbi4gKi9cbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3MsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4sXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93bixcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4uY2suY2stbWVudS1iYXIgLmNrLWxpc3QtaXRlbS1idXR0b246Zm9jdXMsXG5cdFx0LmNrLmNrLW1lbnUtYmFyIC5jay1saXN0LWl0ZW0tYnV0dG9uOmFjdGl2ZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stbWVudS1iYXIuY2stbWVudS1iYXJfZm9jdXMtYm9yZGVyLWVuYWJsZWQgLmNrLWxpc3QtaXRlbS1idXR0b246Zm9jdXMsXG5cdFx0LmNrLmNrLW1lbnUtYmFyLmNrLW1lbnUtYmFyX2ZvY3VzLWJvcmRlci1lbmFibGVkIC5jay1saXN0LWl0ZW0tYnV0dG9uOmFjdGl2ZSB7XG5cdFx0XHQvKiBGaXggdHJ1bmNhdGVkIHNoYWRvd3MgZHVlIHRvIHJlbmRlcmluZyBvcmRlci4gKi9cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1iYWxsb29uLWJvcmRlci13aWR0aDogMXB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0OiAycHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQ6IDEwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoOiA4cHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1kcm9wLXNoYWRvdzogMCAycHggMnB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYmFsbG9vbi1wYW5lbCxcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IDAgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpIHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRmaWx0ZXI6IGRyb3Atc2hhZG93KHZhcigtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3cpKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19lXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19lXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3dcIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd193XCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMDtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd193XCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfd1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbnc6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X253OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbmU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zdzo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc2U6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc21lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbWU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3Ntdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc213OjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm1lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19ubWU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm13OjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0J3Mga2VlcCBzaW1pbGFyIGFwcGVhcmFuY2UgdG8gYGNrLXRvb2xiYXJgLiAqL1xufVxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24gPiAqIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBHaXZlcyBjb3VudGVyIG1vcmUgYnJlYXRoIHRoYW4gYnV0dG9ucy4gKi9cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvdW50ZXIge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBXZSBuZWVkIHRvIHVzZSBzbWFsbGVyIG1hcmdpbiBiZWNhdXNlIG9mIHByZXZpb3VzIGJ1dHRvbidzIHJpZ2h0IG1hcmdpbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIERpc2FibGUgZGVmYXVsdCBhbm5vdGF0aW9uIHNoYWRvdyBpbnNpZGUgcm90YXRvciB3aXRoIGZha2UgcGFuZWxzLiAqL1xuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQgLmNrLmNrLWFubm90YXRpb24td3JhcHBlciB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsOiA2cHg7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogNnB4O1xufVxuLyogTGV0J3MgdXNlIGAuY2stYmFsbG9vbi1wYW5lbGAgYXBwZWFyYW5jZS4gU2VlOiBiYWxsb29ucGFuZWwuY3NzLiAqL1xuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMSApIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCk7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpO1xufVxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDIgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAyKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDIpO1xufVxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDMgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAzKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDMpO1xufVxuLyogSWYgYmFsbG9vbiBpcyBwb3NpdGlvbmVkIGFib3ZlIGVsZW1lbnQsIHdlIG5lZWQgdG8gbW92ZSBmYWtlIHBhbmVsIHRvIHRoZSB0b3AuICovXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlICsgLmNrLWZha2UtcGFuZWwsXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cgKyAuY2stZmFrZS1wYW5lbCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogLTZweDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0XHRib3JkZXItd2lkdGg6IDAgMXB4IDFweDtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2stdmVydGljYWwtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6OmFmdGVyIHtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xufVxuLmNrLmNrLXJlc3BvbnNpdmUtZm9ybTpmb2N1cyB7XG5cdFx0LyogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy80NzczICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiA6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbi5jay5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IGNhbGMoLjggKiB2YXIoLS1jay1pbnB1dC13aWR0aCkpO1xufVxuXG5cdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0XHR9XG5cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQtdGV4dCxcblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQtbnVtYmVyIHtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0LyogTGV0IHRoZSBsb25nIGVycm9yIG1lc3NhZ2VzIHdyYXAgaW4gdGhlIG5hcnJvdyBmb3JtLiAqL1xuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2Vycm9yIHtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHRcdH1cblxuXHRcdC8qIFN0eWxlcyBmb3IgdHdvIGxhc3QgYnV0dG9ucyBpbiB0aGUgZm9ybSAoc2F2ZSZjYW5jZWwsIGVkaXQmdW5saW5rLCBldGMuKS4gKi9cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpLFxuXHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpIHtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMSk6bm90KDpmb2N1cyksIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSwgW2Rpcj1cImx0clwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMSksIFtkaXI9XCJydGxcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5cdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMSk6bGFzdC1vZi10eXBlLCBbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHR9XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZzogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpICsgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pKTtcbn1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1pbnB1dCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiB7XG5cdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1pY29uID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLWljb24gLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1pY29uIC5jay1pbnB1dCB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1pY29uIC5jay1pbnB1dDpub3QoLmNrLWlucHV0LXRleHRfZW1wdHkpIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHRcdFx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQge1xuXHRcdFx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSAyICogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5IHtcblx0XHRcdFx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpIC0gdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtaW4taGVpZ2h0OiBhdXRvO1xuXG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdG9wYWNpdHk6IC41O1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLXNlYXJjaF9fcmVzZXQge1xuXHRcdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2stc2VhcmNoX19yZXNldDpob3ZlciB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLWlucHV0Om5vdCguY2staW5wdXQtdGV4dF9lbXB0eSkge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHRcdFx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2staW5wdXQge1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdH1cbi5jay5jay1zZWFyY2ggPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRtaW4td2lkdGg6IDEwMCU7XG5cdH1cbi5jay5jay1zZWFyY2ggPiAuY2stc2VhcmNoX19yZXN1bHRzID4gLmNrLXNlYXJjaF9faW5mbyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyA+IC5jay1zZWFyY2hfX2luZm8gKiB7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdFx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyA+IC5jay1zZWFyY2hfX2luZm8gPiBzcGFuOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyA+IC5jay1zZWFyY2hfX2luZm8gPiBzcGFuOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAxOHB4O1xufVxuLmNrLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0d2lkdGg6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGFuaW1hdGlvbjogMS41cyBpbmZpbml0ZSBjay1zcGlubmVyLXJvdGF0ZSBsaW5lYXI7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDNzO1xufVxuXHR9XG4uY2suY2stc3Bpbm5lciB7XG5cdHdpZHRoOiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbkBrZXlmcmFtZXMgY2stc3Bpbm5lci1yb3RhdGUge1xuXHR0byB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKVxuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIFRoaXMgZml4ZXMgYSBwcm9ibGVtIGluIEZpcmVmb3ggd2hlbiB0aGUgaW5pdGlhbCBoZWlnaHQgb2YgdGhlIGNvbXBsZW1lbnQgZG9lcyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiByb3dzLlxuICogVGhpcyBidWcgaXMgZXNwZWNpYWxseSB2aXNpYmxlIHdoZW4gcm93cz0xLlxuICovXG4uY2stdGV4dGFyZWEge1xuXHRvdmVyZmxvdy14OiBoaWRkZW5cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItYmxvY2stdG9vbGJhci1idXR0b246IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHQtLWNrLWJsb2NrLXRvb2xiYXItYnV0dG9uLXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1ub3JtYWwpO1xufVxuLmNrLmNrLWJsb2NrLXRvb2xiYXItYnV0dG9uIHtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJsb2NrLXRvb2xiYXItYnV0dG9uKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1ibG9jay10b29sYmFyLXNpemUpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay10b29sYmFyIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay10b29sYmFyLFxuXHQuY2suY2stdG9vbGJhci5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stdG9vbGJhciAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdFx0d2lkdGg6IDFweDtcblx0XHRtaW4td2lkdGg6IDFweDtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cblx0XHQvKlxuXHRcdCAqIFRoZXNlIG1hcmdpbnMgbWFrZSB0aGUgc2VwYXJhdG9ycyBsb29rIGJldHRlciBpbiBiYWxsb29uIHRvb2xiYXJzICh3aGVuIGFsaWduZWQgd2l0aCB0aGUgXCJ0aXBcIikuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc0OTMuXG5cdFx0ICovXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi5jay5jay10b29sYmFyIC5jay10b29sYmFyX19saW5lLWJyZWFrIHtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cbi5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKjpub3QoLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWspIHtcblx0XHRcdC8qICgjMTEpIFNlcGFyYXRlIHRvb2xiYXIgaXRlbXMuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cbi8qIERvbid0IGRpc3BsYXkgYSBzZXBhcmF0b3IgYWZ0ZXIgYW4gZW1wdHkgaXRlbXMgY29udGFpbmVyLCBmb3IgaW5zdGFuY2UsXG5cdFx0d2hlbiBhbGwgaXRlbXMgd2VyZSBncm91cGVkICovXG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtczplbXB0eSArIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+ICo6bm90KC5jay10b29sYmFyX19saW5lLWJyZWFrKSxcblx0LmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biB7XG5cdFx0LyogTWFrZSBzdXJlIGl0ZW1zIHdyYXBwZWQgdG8gdGhlIG5leHQgbGluZSBoYXZlIHYtc3BhY2luZyAqL1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX3ZlcnRpY2FsIHtcblx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc3BhbiB0aGUgZW50aXJlIHdpZHRoLiAqL1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQvKiBTcGVjaWZpY2l0eSBtYXR0ZXJzIGhlcmUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzE2OC4gKi9cblx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl92ZXJ0aWNhbCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc2hvdWxkIHNwYW4gdGhlIGhvcml6b250YWwgc3BhY2UuICovXG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBoYXZlIG5vIG1hcmdpbi4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aCBzbyByb3VuZGVkIGNvcm5lcnMgYXJlIHBvaW50bGVzcy4gKi9cblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0IHtcblx0XHQvKiBObyBzcGFjaW5nIGFyb3VuZCBpdGVtcy4gKi9cblx0XHRwYWRkaW5nOiAwO1xuXHR9XG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqIHtcblx0XHRcdC8qIENvbXBhY3QgdG9vbGJhciBpdGVtcyBoYXZlIG5vIHNwYWNpbmcgYmV0d2VlbiB0aGVtLiAqL1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHQvKiBcIk1pZGRsZVwiIGNoaWxkcmVuIHNob3VsZCBoYXZlIG5vIHJvdW5kZWQgY29ybmVycy4gKi9cblx0XHR9XG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0fVxuLypcblx0XHQgKiBEcm9wZG93biBidXR0b24gaGFzIGFzeW1tZXRyaWMgcGFkZGluZyB0byBmaXQgdGhlIGFycm93LlxuXHRcdCAqIFRoaXMgYnV0dG9uIGhhcyBubyBhcnJvdyBzbyBsZXQncyByZXZlcnQgdGhhdCBwYWRkaW5nIGJhY2sgdG8gbm9ybWFsLlxuXHRcdCAqL1xuLmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0fVxuLyogQSBkcm9wLWRvd24gY29udGFpbmluZyB0aGUgbmVzdGVkIHRvb2xiYXIgd2l0aCBjb25maWd1cmVkIGl0ZW1zLiAqL1xuLyogUHJldmVudCBlbXB0eSBzcGFjZSBpbiB0aGUgcGFuZWwgd2hlbiB0aGUgZHJvcGRvd24gbGFiZWwgaXMgdmlzaWJsZSBhbmQgbG9uZyBidXQgdGhlIHRvb2xiYXIgaGFzIGZldyBpdGVtcy4gKi9cbi5jay5jay10b29sYmFyIC5jay10b29sYmFyX19uZXN0ZWQtdG9vbGJhci1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cbi5jay5jay10b29sYmFyIC5jay10b29sYmFyX19uZXN0ZWQtdG9vbGJhci1kcm9wZG93biA+IC5jay1idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRtYXgtd2lkdGg6IDdlbTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cbi5jay5jay10b29sYmFyOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4uY2stdG9vbGJhci1jb250YWluZXIgLmNrLmNrLXRvb2xiYXIge1xuXHRcdGJvcmRlcjogMDtcblx0fVxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qXG4gKiBTdHlsZXMgZm9yIFJUTCB0b29sYmFycy5cbiAqXG4gKiBOb3RlOiBJbiBzb21lIGNhc2VzIChlLmcuIGEgZGVjb3VwbGVkIGVkaXRvciksIHRoZSB0b29sYmFyIGhhcyBpdHMgb3duIFwiZGlyXCJcbiAqIGJlY2F1c2UgaXRzIHBhcmVudCBpcyBub3QgY29udHJvbGxlZCBieSB0aGUgZWRpdG9yIGZyYW1ld29yay5cbiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jaywgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXI6bm90KC5jay10b29sYmFyX2NvbXBhY3QpID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrLCAuY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl06bm90KC5jay10b29sYmFyX2NvbXBhY3QpID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkLCAuY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cbi8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZmlyc3QgY2hpbGQuICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0W2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG4vKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgbGFzdCBjaGlsZC4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQsIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdFtkaXI9XCJydGxcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi8qIFNlcGFyYXRlIHRoZSB0aGUgc2VwYXJhdG9yIGZvcm0gdGhlIGdyb3VwaW5nIGRyb3Bkb3duIHdoZW4gc29tZSBpdGVtcyBhcmUgZ3JvdXBlZC4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yLCAuY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0gPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIFNvbWUgc3BhY2luZyBiZXR3ZWVuIHRoZSBpdGVtcyBhbmQgdGhlIHNlcGFyYXRvciBiZWZvcmUgdGhlIGdyb3VwZWQgaXRlbXMgZHJvcGRvd24uICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9ncm91cGluZ1tkaXI9XCJydGxcIl0gPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKlxuICogU3R5bGVzIGZvciBMVFIgdG9vbGJhcnMuXG4gKlxuICogTm90ZTogSW4gc29tZSBjYXNlcyAoZS5nLiBhIGRlY291cGxlZCBlZGl0b3IpLCB0aGUgdG9vbGJhciBoYXMgaXRzIG93biBcImRpclwiXG4gKiBiZWNhdXNlIGl0cyBwYXJlbnQgaXMgbm90IGNvbnRyb2xsZWQgYnkgdGhlIGVkaXRvciBmcmFtZXdvcmsuXG4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuLyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBmaXJzdCBjaGlsZC4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmZpcnN0LWNoaWxkLCAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3RbZGlyPVwibHRyXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmZpcnN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuLyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGxhc3QgY2hpbGQuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkLCAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3RbZGlyPVwibHRyXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuLyogU2VwYXJhdGUgdGhlIHRoZSBzZXBhcmF0b3IgZm9ybSB0aGUgZ3JvdXBpbmcgZHJvcGRvd24gd2hlbiBzb21lIGl0ZW1zIGFyZSBncm91cGVkLiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhciA+IC5jay5jay10b29sYmFyX19zZXBhcmF0b3IsIC5jay5jay10b29sYmFyW2Rpcj1cImx0clwiXSA+IC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIFNvbWUgc3BhY2luZyBiZXR3ZWVuIHRoZSBpdGVtcyBhbmQgdGhlIHNlcGFyYXRvciBiZWZvcmUgdGhlIGdyb3VwZWQgaXRlbXMgZHJvcGRvd24uICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9ncm91cGluZ1tkaXI9XCJsdHJcIl0gPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCB7XG5cdC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGg6IDBweDtcblx0LS1jay1iYWxsb29uLWFycm93LW9mZnNldDogMHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aDogNHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0OiA0cHg7XG5cdC0tY2stdG9vbHRpcC10ZXh0LXBhZGRpbmc6IDRweDtcblx0LS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sdGlwLWJhY2tncm91bmQpO1xuXG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXG5cdC8qIFJlc2V0IGJhbGxvb24gcGFuZWwgc3R5bGVzICovXG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwIC5jay10b29sdGlwX190ZXh0IHtcblx0XHRmb250LXNpemU6IC45ZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdG9vbHRpcC10ZXh0KTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcC5jay10b29sdGlwX211bHRpLWxpbmUgLmNrLXRvb2x0aXBfX3RleHQge1xuXHRcdHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXRvb2x0aXAtdGV4dC1wYWRkaW5nKSAwO1xuXHRcdG1heC13aWR0aDogMjAwcHg7XG5cdH1cbi8qIEhpZGUgdGhlIGRlZmF1bHQgc2hhZG93IG9mIHRoZSAuY2stYmFsbG9vbi1wYW5lbCB0aXAgKi9cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXA6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4vKiBFZGl0b3IgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMDtcblx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQsXG5cdC5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblx0XHRcdH1cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQgLmNrLW1lbnUtYmFyIHtcblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudCAuY2stdG9vbGJhciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdH1cbi8qIE5vdGU6IFVzZSBjay1lZGl0b3JfX21haW4gdG8gbWFrZSBzdXJlIHRoZXNlIHN0eWxlcyBkb24ndCBhcHBseSB0byBvdGhlciBlZGl0b3IgdHlwZXMgKi9cbi5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTEzICovXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlLFxuXHQuY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1mb2N1c2VkKSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdH1cblxuLyogUGx1Z2lucyAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBib29rbWFyayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuLmNrIC5jay1mYWtlLWJvb2ttYXJrLXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpbmstZmFrZS1zZWxlY3Rpb24pO1xufVxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWJvb2ttYXJrLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGg6IDEycHg7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQ6IDhweDtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG4vKlxuXHQgKiBWZXJ0aWNhbCBkcm9wIHRhcmdldCAoaW4gdGV4dCkuXG5cdCAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiBzcGFuIHtcblx0XHRcdGJvdHRvbTogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXG5cdFx0XHQvKiBUaGUgdHJpYW5nbGUgYWJvdmUgdGhlIG1hcmtlciAqL1xuXHRcdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtcG9zaXRpb24gc3Bhbjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdGhlaWdodDogMDtcblxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpO1xuXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IGNhbGModmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKSBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDAgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKTtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdH1cbi8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IHRoYXQgaXQgYSBkcm9wIHRhcmdldC5cblx0ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0LmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1yYW5nZSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpICFpbXBvcnRhbnQ7XG5cdH1cbi8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IGJlaW5nIGRyYWdnZWQgKGl0cyBwcmV2aWV3KS5cblx0ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0Oi13ZWJraXQtZHJhZyB7XG5cdFx0em9vbTogMC42O1xuXHRcdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lIHtcblx0aGVpZ2h0OiAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRtYXJnaW4tdG9wOiAtMXB4O1xufVxuLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IGNhbGMoLS41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMDtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtbGluZTo6YmVmb3JlIHtcblx0XHRcdGxlZnQ6IC0xcHg7XG5cblx0XHRcdGJvcmRlci13aWR0aDogY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSAwIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtbGluZTo6YmVmb3JlIHtcblx0XHRcdHJpZ2h0OiAtMXB4O1xuXG5cdFx0XHRib3JkZXItd2lkdGg6Y2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSAwO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWNvZGUtYmxvY2stbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA0NiUpO1xufVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgcHJlW2RhdGEtbGFuZ3VhZ2VdOjphZnRlciB7XG5cdHRvcDogLTFweDtcblx0cmlnaHQ6IDEwcHg7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWNvZGUtYmxvY2stbGFiZWwtYmFja2dyb3VuZCk7XG5cblx0Zm9udC1zaXplOiAxMHB4O1xuXHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jay5jay1jb2RlLWJsb2NrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHQvKiBUaGVyZSBjb3VsZCBiZSBkb3plbnMgb2YgbGFuZ3VhZ2VzIGF2YWlsYWJsZS4gVXNlIHNjcm9sbCB0byBwcmV2ZW50IGEgMTBlNnB4IGRyb3Bkb3duLiAqL1xuXHRtYXgtaGVpZ2h0OiAyNTBweDtcblx0b3ZlcmZsb3cteTogYXV0bztcblx0b3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0LmNrLmNrLXBsYWNlaG9sZGVyLCAuY2sgLmNrLXBsYWNlaG9sZGVyIHtcblx0XHQvKlxuXHRcdCAqIFRoaXMgaXMgbmVlZGVkIGZvciBFZGdlIG9uIFdpbmRvd3MgdG8gdXNlIHRoZSByaWdodCBjb2xvciBmb3IgdGhlIHBsYWNlaG9sZGVyIGNvbnRlbnQgKDo6YmVmb3JlKS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdFx0ICovXG5cdFx0Zm9yY2VkLWNvbG9yLWFkanVzdDogcHJlc2VydmUtcGFyZW50LWNvbG9yO1xuXHRcdH1cblx0fVxuLmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHR9XG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQuY2suY2stcGxhY2Vob2xkZXI6OmJlZm9yZSwgLmNrIC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1lbmdpbmUtcGxhY2Vob2xkZXItdGV4dCk7XG5cdFx0fVxuXHR9XG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdC5jay5jay1wbGFjZWhvbGRlcjo6YmVmb3JlLCAuY2sgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdFx0Lypcblx0XHRcdCAqIEluIHRoZSBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlcmUgaXMgbm8gdGVsbGluZyBiZXR3ZWVuIHJlZ3VsYXIgYW5kIHBsYWNlaG9sZGVyIHRleHQuIFVzaW5nXG5cdFx0XHQgKiBpdGFsaWMgdGV4dCB0byBhZGRyZXNzIHRoYXQgaXNzdWUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0XHRcdCAqL1xuXHRcdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogV2l0aG91dCB0aGlzIG1hcmdpbiwgdGhlIGNhcmV0IHdpbGwgbm90IHNob3cgdXAgYW5kIGJsaW5rIHdoZW4gdGhlIHVzZXIgcHV0cyB0aGUgc2VsZWN0aW9uXG5cdFx0XHQgKiBpbiB0aGUgcGxhY2Vob2xkZXIgKEVkZ2Ugb24gV2luZG93cykuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0XHRcdCAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDFweDtcblx0XHR9XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHR3aWR0aDogNDAwcHg7XG5cblx0Lypcblx0ICogVGhlIDxmb3JtPiBuZWVkcyB0YWJpbmRleD1cIi0xXCIgZm9yIHByb3BlciBFc2MgaGFuZGxpbmcgYWZ0ZXIgYmVpbmcgY2xpY2tlZFxuXHQgKiBidXQgdGhlIHNpZGUgZWZmZWN0IGlzIHRoYXQgdGhpcyBjcmVhdGVzIGEgbmFzdHkgZm9jdXMgb3V0bGluZSBpbiBzb21lIGJyb3dzZXJzLlxuXHQgKi9cbn1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm06Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi8qIEdlbmVyaWMgc3R5bGVzIGZvciB0aGUgZm9ybSBpbnB1dHMgYW5kIGFjdGlvbnMuICovXG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyxcblx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG5cblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRtYXJnaW46IDA7XG5cblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stYnV0dG9uLCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAqICsgKiwgW2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAqICsgKiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAqICsgKiwgW2Rpcj1cInJ0bFwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAqICsgKiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stbGFiZWxlZC1maWVsZC12aWV3LCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1pbnB1dCwgLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1pbi13aWR0aDogNTBweDtcblx0XHRcdH1cbi8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgaW5wdXRzIGFyZWEuICovXG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyB7XG5cdFx0LyogVG8gZGlzcGxheSBhbGwgY29udHJvbHMgaW4gbGluZSB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IgdW5kZXIgdGhlIGlucHV0ICovXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzID4gLmNrLWJ1dHRvbi1wcmV2ID4gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzID4gLmNrLWJ1dHRvbi1uZXh0ID4gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgLmNrLXJlc3VsdHMtY291bnRlciB7XG5cdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzID4gLmNrLWxhYmVsZWQtZmllbGQtcmVwbGFjZSB7XG5cdFx0XHRmbGV4OiAwIDAgMTAwJTtcblx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzID4gLmNrLWxhYmVsZWQtZmllbGQtcmVwbGFjZSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzID4gLmNrLWxhYmVsZWQtZmllbGQtcmVwbGFjZSB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuLyogU3R5bGVzIHNwZWNpZmljIGZvciBhY3Rpb25zIGFyZWEuICovXG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdG1hcmdpbi10b3A6IGNhbGMoIC0xICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgKTtcblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gLmNrLWJ1dHRvbi1maW5kIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHQvKiBCZWVmIHRoZSBmaW5kIGJ1dHRvbiB1cCBhIGxpdHRsZS4gSXQncyB0aGUgbWFpbiBhY3Rpb24gYnV0dG9uIGluIHRoZSBmb3JtICovXG5cdFx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gLmNrLWJ1dHRvbi1maW5kIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1zd2l0Y2hidXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSB7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXG5cdFx0LyogRG9uJ3QgbGV0IHRoZSBmb3JtIG92ZXJmbG93IGZyb20gdGhlIGRpYWxvZyAoaHR0cHM6Ly9naXRodWIuY29tL2Nrc291cmNlL2NrZWRpdG9yNS1jb21tZXJjaWFsL2lzc3Vlcy81OTEzKSAqL1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgaW5wdXRzIGFyZWEuICovXG5cdH1cblx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuXHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRmbGV4OiAxIDAgYXV0bztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQgPiAuY2stYnV0dG9uIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXG5cdFx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCA+IC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0XHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCA+IC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblxuXHRcdFx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCA+IC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHR9XG5cblx0XHQvKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGFjdGlvbnMgYXJlYS4gKi9cblx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykgPiAuY2stYnV0dG9uIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXG5cdFx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0XHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblxuXHRcdFx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykgPiAuY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFJlc2l6ZSBkcm9wZG93bidzIGJ1dHRvbiBsYWJlbC4gKi9cbi5jay5jay1kcm9wZG93bi5jay1oZWFkaW5nLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHR3aWR0aDogOGVtO1xuXHR9XG4uY2suY2stZHJvcGRvd24uY2staGVhZGluZy1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIC5jay1saXN0X19pdGVtIHtcblx0XHRtaW4td2lkdGg6IDE4ZW07XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogTm90ZTogVGhpcyBmaWxlIHNob3VsZCBjb250YWluIHRoZSB3aXJlZnJhbWUgc3R5bGVzIG9ubHkuIEJ1dCBzaW5jZSB0aGVyZSBhcmUgbm8gc3VjaCBzdHlsZXMsXG4gKiBpdCBhY3RzIGFzIGEgbWVzc2FnZSB0byB0aGUgYnVpbGRlciB0ZWxsaW5nIHRoYXQgaXQgc2hvdWxkIGxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlc1xuICogKippbiB0aGUgdGhlbWUqKiB3aGVuIGNvbXBpbGluZyB0aGUgZWRpdG9yLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWh0bWwtZW1iZWQtY29udGVudC13aWR0aDogY2FsYygxMDAlIC0gMS41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtaGVpZ2h0OiAxMGVtO1xuXHQtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGg6IDFweDtcblx0LS1jay1odG1sLWVtYmVkLWNvbnRlbnQtbWluLWhlaWdodDogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpICsgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcjogaHNsKDBkZWcgMCUgNDUlKTtcbn1cbi8qIFRoZSBmZWF0dXJlIGNvbnRhaW5lci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcbn1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSBkYXNoZWQgdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0fVxuLyogSFRNTCBlbWJlZCB3aWRnZXQgaXRzZWxmIHNob3VsZCByZXNwZWN0IFVJIGxhbmd1YWdlIGRpcmVjdGlvbiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJsdHJcIl0ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWRbZGlyPVwicnRsXCJdIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuLyogLS0tLS0gRW1iZWQgbGFiZWwgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1odG1sLWVtYmVkLWxhYmVsKTtcblx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSk7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0YmFja2dyb3VuZDogaHNsKDBkZWcgMCUgNjAlKTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctdGlueSkgKyB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLWNrLWZvbnQtZmFjZSk7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWRbZGlyPVwicnRsXCJdOjpiZWZvcmUge1xuXHRcdGxlZnQ6IGF1dG87XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG4vKiBNYWtlIHNwYWNlIGZvciBsYWJlbCBidXQgaXQgb25seSBjb2xsaWRlcyBpbiBMVFIgbGFuZ3VhZ2VzICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkW2Rpcj1cImx0clwiXSAuY2std2lkZ2V0X190eXBlLWFyb3VuZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdG1hcmdpbi1sZWZ0OiA1MHB4O1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQuY2std2lkZ2V0X3NlbGVjdGVkOjpiZWZvcmUge1xuXHRcdHRvcDogMHB4O1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stYmx1cnJlZCkgLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZC5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6aG92ZXI6OmJlZm9yZSB7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLyogLS0tLS0gRW1lYmVkIGludGVybmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19jb250ZW50LXdyYXBwZXIge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG4vKiBUaGUgc3dpdGNoIG1vZGUgYnV0dG9uIHdyYXBwZXIuICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIHtcblx0XHR0b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciAuY2stYnV0dG9uLnJhdy1odG1sLWVtYmVkX19zYXZlLWJ1dHRvbiB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLXNhdmUpO1xuXHRcdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIgLmNrLWJ1dHRvbi5yYXctaHRtbC1lbWJlZF9fY2FuY2VsLWJ1dHRvbiB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLWNhbmNlbCk7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciAuY2stYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWRbZGlyPVwicnRsXCJdIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIHtcblx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRyaWdodDogYXV0bztcblx0fVxuLyogVGhlIGVkaXQgc291cmNlIGVsZW1lbnQuICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fc291cmNlIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGhlaWdodDogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtaGVpZ2h0KTtcblx0XHR3aWR0aDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoKTtcblx0XHRyZXNpemU6IG5vbmU7XG5cdFx0bWluLXdpZHRoOiAwO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblx0XHR0YWItc2l6ZTogNDtcblx0XHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtYmFzZSk7IC8qIFNhZmFyaSBuZWVkcyB0aGlzLiAqL1xuXG5cdFx0LyogSFRNTCBjb2RlIGlzIGRpcmVjdGlvbuKAk2Fnbm9zdGljLiAqL1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0ZGlyZWN0aW9uOiBsdHI7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19zb3VyY2VbZGlzYWJsZWRdIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yKTtcblxuXHRcdFx0LyogU2FmYXJpIG5lZWRzIHRoaXMgZm9yIHRoZSBwcm9wZXIgdGV4dCBjb2xvciBpbiBkaXNhYmxlZCBpbnB1dCAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODMyMCkuICovXG5cdFx0XHQtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG4vKiBUaGUgcHJldmlldyBkYXRhIGNvbnRhaW5lci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3IHtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtbWluLWhlaWdodCk7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC13aWR0aCk7XG5cblx0XHQvKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiBhcyBsb25nIGFzIHRoZSBlZGl0b3IgaXMgbm90IHJlYWTigJNvbmx5LiAqL1xuXHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLXJlYWQtb25seSkgLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctY29udGVudCB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50ID4gKiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1wbGFjZWhvbGRlciB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yKVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1pbWFnZS1pbnNlcnQtaW5zZXJ0LWJ5LXVybC13aWR0aDogMjUwcHg7XG59XG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCB7XG5cdC0tY2staW5wdXQtd2lkdGg6IDEwMCU7XG59XG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCAuY2staW1hZ2UtaW5zZXJ0LXVybF9fYWN0aW9uLXJvdyB7XG5cdFx0Z3JpZC1jb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdC5jay5jay1pbWFnZS1pbnNlcnQtdXJsIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1idXR0b24ge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW1hZ2UtaW5zZXJ0LWZvcm0gPiAuY2suY2stYnV0dG9uIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4uY2suY2staW1hZ2UtaW5zZXJ0LWZvcm0gPiAuY2suY2stY29sbGFwc2libGUge1xuXG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1pbWFnZS1pbnNlcnQtaW5zZXJ0LWJ5LXVybC13aWR0aCk7XG5cdH1cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1jb2xsYXBzaWJsZTpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1jb2xsYXBzaWJsZTpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuLyogVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHRoZXJlIGFyZSBubyBvdGhlciBpbnRlZ3JhdGlvbnMgY29uZmlndXJlZCB0aGFuIGluc2VydCBieSBVUkwgKi9cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbjogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbi1iYWNrZ3JvdW5kOiBoc2woMTIwLCAxMDAlLCAyNyUpO1xuXG5cdC8qIE1hdGNoIHRoZSBpY29uIHNpemUgd2l0aCB0aGUgbGlua2VkIGltYWdlIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBsaW5rIGltYWdlIGZlYXR1cmUuICovXG5cdC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZTogMjA7XG5cdC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGg6IDJweDtcblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi1pcy12aXNpYmxlOiBjbGFtcCgwcHgsIDEwMCUgLSA1MHB4LCAxcHgpO1xufVxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0b3BhY2l0eTogMDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24tYmFja2dyb3VuZCk7XG5cdGFuaW1hdGlvbi1uYW1lOiBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93LCBjay11cGxvYWQtY29tcGxldGUtaWNvbi1oaWRlO1xuXHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcywgZm9yd2FyZHM7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXMsIDUwMG1zO1xuXG5cdC8qIFRvIG1ha2UgYW5pbWF0aW9uIHNjYWxhYmxlLiAqL1xuXHRmb250LXNpemU6IGNhbGMoMXB4ICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXG5cdC8qIEhpZGUgY29tcGxldGVkIHVwbG9hZCBpY29uIGFmdGVyIDMgc2Vjb25kcy4gKi9cblx0YW5pbWF0aW9uLWRlbGF5OiAwbXMsIDMwMDBtcztcblxuXHQvKlxuXHQgKiBVc2UgQ1NTIG1hdGggdG8gc2ltdWxhdGUgY29udGFpbmVyIHF1ZXJpZXMuXG5cdCAqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vdGhlLXJhdmVuLXRlY2huaXF1ZS1vbmUtc3RlcC1jbG9zZXItdG8tY29udGFpbmVyLXF1ZXJpZXMvI3doYXQtYWJvdXQtc2hvd2luZy1hbmQtaGlkaW5nLXRoaW5nc1xuXHQgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IGNhbGModmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cdGhlaWdodDogY2FsYyh2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblxuXHQvKiBUaGlzIGlzIGNoZWNrIGljb24gZWxlbWVudCBtYWRlIGZyb20gYm9yZGVyLXdpZHRoIG1peGVkIHdpdGggYW5pbWF0aW9ucy4gKi9cbn1cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbjo6YWZ0ZXIge1xuXHRcdC8qIEJlY2F1c2Ugb2YgYm9yZGVyIHRyYW5zZm9ybWF0aW9uIHdlIG5lZWQgdG8gXCJoYXJkIGNvZGVcIiBsZWZ0IHBvc2l0aW9uLiAqL1xuXHRcdGxlZnQ6IDI1JTtcblxuXHRcdHRvcDogNTAlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdHdpZHRoOiAwO1xuXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxMzVkZWcpO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuXHRcdGJvcmRlci10b3A6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbik7XG5cdFx0Ym9yZGVyLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aCkgc29saWQgdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24pO1xuXG5cdFx0YW5pbWF0aW9uLW5hbWU6IGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWNoZWNrO1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG5cdFx0YW5pbWF0aW9uLWRlbGF5OiA1MDBtcztcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcblxuXHRcdC8qICMxMDk1LiBXaGlsZSByZXNldCBpcyBub3QgcHJvdmlkaW5nIHByb3BlciBib3gtc2l6aW5nIGZvciBwc2V1ZG9lbGVtZW50cywgd2UgbmVlZCB0byBoYW5kbGUgaXQuICovXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XG59XG5cblx0XHQuY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb246OmFmdGVyIHtcblx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR3aWR0aDogMC4zZW07XG5cdFx0XHRoZWlnaHQ6IDAuNDVlbTtcblx0XHR9XG5cdH1cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tc2hvdyB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHR0byB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1oaWRlIHtcblx0ZnJvbSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWNoZWNrIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cdDMzJSB7XG5cdFx0d2lkdGg6IDAuM2VtO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHdpZHRoOiAwLjNlbTtcblx0XHRoZWlnaHQ6IDAuNDVlbTtcblx0fVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOiBoc2woMCwgMCUsIDcwJSk7XG5cdC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplOiAzMnB4O1xuXHQtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW86IDIuODtcbn1cbi5jayAuY2staW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHtcblx0LyogV2UgbmVlZCB0byBjb250cm9sIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBTVkcgZ3JheSBiYWNrZ3JvdW5kLiAqL1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiAwO1xufVxuLmNrIC5jay1pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIuaW1hZ2UtaW5saW5lIHtcblx0XHR3aWR0aDogY2FsYyggMiAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSkgKiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvKSApO1xuXHR9XG4uY2sgLmNrLWltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciBpbWcge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBhbiBhcmJpdHJhcnkgYXNwZWN0IGZvciBhIDF4MSBweCBHSUYgdG8gZGlzcGxheSB0byB0aGUgdXNlci4gTm90IHRvbyB0YWxsLCBub3QgdG9vIHNob3J0LlxuXHRcdCAqIFRoZXJlJ3Mgbm90aGluZyBzcGVjaWFsIGFib3V0IHRoaXMgbnVtYmVyIGV4Y2VwdCB0aGF0IGl0IHNob3VsZCBtYWtlIHRoZSBpbWFnZSBwbGFjZWhvbGRlciBsb29rIGxpa2Vcblx0XHQgKiBhIHJlYWwgaW1hZ2UgZHVyaW5nIHRoaXMgc2hvcnQgcGVyaW9kIGFmdGVyIHRoZSB1cGxvYWQgc3RhcnRlZCBhbmQgYmVmb3JlIHRoZSBpbWFnZSB3YXMgcmVhZCBmcm9tIHRoZVxuXHRcdCAqIGZpbGUgc3lzdGVtIChhbmQgYSByaWNoIHByZXZpZXcgd2FzIGxvYWRlZCkuXG5cdFx0ICovXG5cdFx0YXNwZWN0LXJhdGlvOiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvKTtcblx0fVxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cbi5jayAuY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcjo6YmVmb3JlIHtcblx0XHR3aWR0aDogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1jay1jb2xvci11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyKTtcblx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRhbmltYXRpb246IGNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIgMXMgbGluZWFyIGluZmluaXRlO1xuXHR9XG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR0byB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoIDM2MGRlZyApO1xuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogU2hvd2luZyBhbmltYXRpb24uICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuY2stYXBwZWFyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lLmNrLWFwcGVhciB7XG5cdFx0XHRhbmltYXRpb246IGZhZGVJbiA3MDBtcztcblx0XHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmNrLWFwcGVhciwgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZS5jay1hcHBlYXIge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0fVxuLyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSAuY2stcHJvZ3Jlc3MtYmFyLFxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lIC5jay1wcm9ncmVzcy1iYXIge1xuXHRcdGhlaWdodDogMnB4O1xuXHRcdHdpZHRoOiAwO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXVwbG9hZC1iYXItYmFja2dyb3VuZCk7XG5cdFx0dHJhbnNpdGlvbjogd2lkdGggMTAwbXM7XG5cdH1cbkBrZXlmcmFtZXMgZmFkZUluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBDbGFzcyBhZGRlZCB0byBzcGFuIGVsZW1lbnQgc3Vycm91bmRpbmcgY3VycmVudGx5IHNlbGVjdGVkIGxpbmsuICovXG4uY2sgLmNrLWxpbmtfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG5cdC8qIEdpdmUgbGlua2VkIGlubGluZSBpbWFnZXMgc29tZSBvdXRsaW5lIHRvIGxldCB0aGUgdXNlciBrbm93IHRoZXkgYXJlIGFsc28gcGFydCBvZiB0aGUgbGluay4gKi9cbn1cbi5jayAuY2stbGlua19zZWxlY3RlZCBzcGFuLmltYWdlLWlubGluZSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXHR9XG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgbGluayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuLmNrIC5jay1mYWtlLWxpbmstc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG4vKiBBIGNvbGxhcHNlZCBmYWtlIHZpc3VhbCBzZWxlY3Rpb24uICovXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdH1cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGluay1kZWZhdWx0KTtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvKiBNYXRjaCB0aGUgYm94IG1vZGVsIG9mIHRoZSBsaW5rIGVkaXRvciBmb3JtJ3MgaW5wdXQgc28gdGhlIGJhbGxvb25cblx0XHRcdGRvZXMgbm90IGNoYW5nZSB3aWR0aCB3aGVuIG1vdmluZyBiZXR3ZWVuIGFjdGlvbnMgYW5kIHRoZSBmb3JtLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdFx0XHRtaW4td2lkdGg6IDNlbTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IC5jay1idXR0b25fX2xhYmVsOmhvdmVyIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3LFxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXc6aG92ZXIsXG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldzpmb2N1cyxcblx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3OmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdH1cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXc6YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldzpmb2N1cyAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIDA7XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5cdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBTdHlsZSBsaW5rIGZvcm0gZGlmZmVyZW50bHkgd2hlbiBtYW51YWwgZGVjb3JhdG9ycyBhcmUgYXZhaWxhYmxlLlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWxpbmsvaXNzdWVzLzE4Ni5cbiAqL1xuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwge1xuXHRwYWRkaW5nOiAwO1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcbn1cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LXRleHQge1xuXHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgPiAuY2stYnV0dG9uIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRtYXJnaW46IDA7XG5cdFx0d2lkdGg6IDUwJTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCA+IC5jay1idXR0b246bm90KDpmb2N1cykge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCA+IC5jay1idXR0b24ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgPiAuY2stYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cbi8qIFVzaW5nIGFkZGl0aW9uYWwgYC5ja2AgY2xhc3MgZm9yIHN0cm9uZ2VyIENTUyBzcGVjaWZpY2l0eSB0aGFuIGAuY2suY2stbGluay1mb3JtID4gOm5vdCg6Zmlyc3QtY2hpbGQpYC4gKi9cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay5jay1saXN0IHtcblx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay5jay1saXN0IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2suY2stbGlzdCAuY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKiBNYXRjaCB0aGUgaWNvbiBzaXplIHdpdGggdGhlIHVwbG9hZCBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgaW1hZ2UgdXBsb2FkIGZlYXR1cmUuICovXG5cdC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1zaXplOiAyMDtcblx0LS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLWlzLXZpc2libGU6IGNsYW1wKDBweCwgMTAwJSAtIDUwcHgsIDFweCk7XG59XG4vKiBMaW5rZWQgaW1hZ2UgaW5kaWNhdG9yICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBmaWd1cmUuaW1hZ2UgPiBhOjphZnRlciwgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgYSBzcGFuLmltYWdlLWlubGluZTo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblxuXHRcdFx0Lypcblx0XHRcdCAqIFNtYWxsZXIgaW1hZ2VzIHNob3VsZCBoYXZlIHRoZSBpY29uIGNsb3NlciB0byB0aGUgYm9yZGVyLlxuXHRcdFx0ICogTWF0Y2ggdGhlIGljb24gcG9zaXRpb24gd2l0aCB0aGUgdXBsb2FkIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBpbWFnZSB1cGxvYWQgZmVhdHVyZS5cblx0XHRcdCAqL1xuXHRcdFx0dG9wOiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdFx0XHRyaWdodDogbWluKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgNiUpO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCAwJSwgLjQpO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMmFXVjNRbTk0UFNJd0lEQWdNakFnTWpBaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1pEMGliVEV4TGpBM055QXhOU0F1T1RreExURXVOREUyWVM0M05TNDNOU0F3SURFZ01TQXhMakl5T1M0NE5td3RNUzR4TkRnZ01TNDJOR0V1TnpRNExqYzBPQ0F3SURBZ01TMHVNakUzTGpJd05pQTFMakkxTVNBMUxqSTFNU0F3SURBZ01TMDRMalV3TXkwMUxqazFOUzQzTkRFdU56UXhJREFnTUNBeElDNHhNaTB1TWpjMGJERXVNVFEzTFRFdU5qTTVZUzQzTlM0M05TQXdJREVnTVNBeExqSXlPQzQ0Tmt3MExqa3pNeUF4TUM0M2JDNHdNRFl1TURBellUTXVOelVnTXk0M05TQXdJREFnTUNBMkxqRXpNaUEwTGpJNU5Hd3VNREEyTGpBd05IcHROUzQwT1RRdE5TNHpNelZoTGpjME9DNDNORGdnTUNBd0lERXRMakV5TGpJM05Hd3RNUzR4TkRjZ01TNDJNemxoTGpjMUxqYzFJREFnTVNBeExURXVNakk0TFM0NE5td3VPRFl0TVM0eU0yRXpMamMxSURNdU56VWdNQ0F3SURBdE5pNHhORFF0TkM0ek1ERnNMUzQ0TmlBeExqSXlPV0V1TnpVdU56VWdNQ0F3SURFdE1TNHlNamt0TGpnMmJERXVNVFE0TFRFdU5qUmhMamMwT0M0M05EZ2dNQ0F3SURFZ0xqSXhOeTB1TWpBMklEVXVNalV4SURVdU1qVXhJREFnTUNBeElEZ3VOVEF6SURVdU9UVTFlbTB0TkM0MU5qTXRNaTQxTXpKaExqYzFMamMxSURBZ01DQXhJQzR4T0RRZ01TNHdORFZzTFRNdU1UVTFJRFF1TlRBMVlTNDNOUzQzTlNBd0lERWdNUzB4TGpJeU9TMHVPRFpzTXk0eE5UVXROQzQxTURaaExqYzFMamMxSURBZ01DQXhJREV1TURRMUxTNHhPRFI2SWk4K1BDOXpkbWMrXCIpO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxNHB4O1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cblx0XHRcdC8qXG5cdFx0XHQqIFVzZSBDU1MgbWF0aCB0byBzaW11bGF0ZSBjb250YWluZXIgcXVlcmllcy5cblx0XHRcdCogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS90aGUtcmF2ZW4tdGVjaG5pcXVlLW9uZS1zdGVwLWNsb3Nlci10by1jb250YWluZXItcXVlcmllcy8jd2hhdC1hYm91dC1zaG93aW5nLWFuZC1oaWRpbmctdGhpbmdzXG5cdFx0XHQqL1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHdpZHRoOiBjYWxjKHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemUpKTtcblx0XHRcdGhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1zaXplKSk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFdoZW4gdGhlcmUgYXJlIG5vIGxpc3Qgc3R5bGVzIGFuZCB0aGVyZSBpcyBubyBjb2xsYXBzaWJsZS4gKi9cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGhvdXQtc3R5bGVzIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWxpc3QtcHJvcGVydGllcy5jay1saXN0LXByb3BlcnRpZXNfd2l0aG91dC1zdHlsZXMgPiAqIHtcblx0XHRcdG1pbi13aWR0aDogMTRlbTtcblx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRob3V0LXN0eWxlcyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4vKlxuXHQgKiBXaGVuIHRoZSBudW1iZXJlZCBsaXN0IHByb3BlcnR5IGZpZWxkcyAoc3RhcnQgYXQsIHJldmVyc2VkKSBzaG91bGQgYmUgZGlzcGxheWVkLFxuXHQgKiBtb3JlIGhvcml6b250YWwgc3BhY2UgaXMgbmVlZGVkLiBSZWNvbmZpZ3VyZSB0aGUgc3R5bGUgZ3JpZCB0byBjcmVhdGUgdGhhdCBzcGFjZS5cblx0ICovXG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCggNCwgYXV0byApO1xuXHRcdH1cbi8qIFdoZW4gbGlzdCBzdHlsZXMgYXJlIHJlbmRlcmVkIGFuZCBwcm9wZXJ0eSBmaWVsZHMgYXJlIGluIGEgY29sbGFwc2libGUuICovXG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stY29sbGFwc2libGUge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stY29sbGFwc2libGUgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuID4gKiB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGgtbnVtYmVyZWQtcHJvcGVydGllcyA+IC5jay1jb2xsYXBzaWJsZSA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4gPiAqICsgKiB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3N0YXJ0LWluZGV4IC5jay1pbnB1dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3JldmVyc2VkLW9yZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy10aW55KSk7XG5cdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fcmV2ZXJzZWQtb3JkZXI6YWN0aXZlLCAuY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3JldmVyc2VkLW9yZGVyOmhvdmVyIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemU6IDQ0cHg7XG59XG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCAzLCBhdXRvICk7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0Y29sdW1uLWdhcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IC5jay1idXR0b24ge1xuXHRcdC8qIE1ha2UgdGhlIGJ1dHRvbiBsb29rIGxpa2UgYSB0aHVtYm5haWwgKHRoZSBpY29uIFwidGFrZXMgaXQgYWxsXCIpLiAqL1xuXHRcdHdpZHRoOiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQvKlxuXHRcdCAqIEJ1dHRvbnMgYXJlIGFsaWduZWQgYnkgdGhlIGdyaWQgc28gZGlzYWJsZSBkZWZhdWx0IGJ1dHRvbiBtYXJnaW5zIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlXG5cdFx0ICogZ2FwcyBpbiB0aGUgZ3JpZC5cblx0XHQgKi9cblx0XHRtYXJnaW46IDA7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJvcmRlciAod2hpY2ggaXMgZGlzcGxheWVkIG9uIGZvY3VzLCBCVFcpIGRvZXMgbm90IHN0ZWFsIHBpeGVsc1xuXHRcdCAqIGZyb20gdGhlIGJ1dHRvbiBkaW1lbnNpb25zIGFuZCwgYXMgYSByZXN1bHQsIGRlY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBpY29uXG5cdFx0ICogKHdoaWNoIGJlY29tZXMgYmx1cnJ5IGFzIGl0IHNjYWxlcyBkb3duKS5cblx0XHQgKi9cblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0fVxuLmNrLmNrLWxpc3Qtc3R5bGVzLWxpc3QgLmNrLWJ1dHRvbiAuY2staWNvbiB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplOiAzZW07XG5cblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dDogaHNsKDAsIDAlLCA0NiUpO1xuXHQtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0LWhvdmVyOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xufVxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG87XG59XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0cGFkZGluZzogY2FsYyggMyAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpICk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0fVxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAuY2staWNvbiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0KTtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQ6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQtaG92ZXIpO1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJvcGVuLnNwb3RpZnkuY29tXCJdIHtcblx0XHRtYXgtd2lkdGg6IDMwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDM4MHB4O1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvby5nbC9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5nb29nbGUuY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOVEF1TXpjNElpQm9aV2xuYUhROUlqSTFOQzR4TmpjaUlIWnBaWGRDYjNnOUlqQWdNQ0EyTmk0eU5EWWdOamN1TWpRNElqNDhaeUIwY21GdWMyWnZjbTA5SW5SeVlXNXpiR0YwWlNndE1UY3lMalV6TVNBdE1qRTRMalExTlNrZ2MyTmhiR1VvTGprNE1ERXlLU0krUEhKbFkzUWdjbms5SWpVdU1qTTRJaUJ5ZUQwaU5TNHlNemdpSUhrOUlqSXpNUzR6T1RraUlIZzlJakUzTmk0d016RWlJR2hsYVdkb2REMGlOakF1TURrNUlpQjNhV1IwYUQwaU5qQXVNRGs1SWlCbWFXeHNQU0lqTXpSaE5qWTRJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanh3WVhSb0lHUTlJazB5TURZdU5EYzNJREkyTUM0NWJDMHlPQzQ1T0RjZ01qZ3VPVGczWVRVdU1qRTRJRFV1TWpFNElEQWdNQ0F3SURNdU56Z2dNUzQyTVdnME9TNDJNakZqTVM0Mk9UUWdNQ0F6TGpFNUxTNDNPVGdnTkM0eE5EWXRNaTR3TXpkNklpQm1hV3hzUFNJak5XTTRPR00xSWk4K1BIQmhkR2dnWkQwaVRUSXlOaTQzTkRJZ01qSXlMams0T0dNdE9TNHlOallnTUMweE5pNDNOemNnTnk0eE55MHhOaTQzTnpjZ01UWXVNREUwTGpBd055QXlMamMyTWk0Mk5qTWdOUzQwTnpRZ01pNHdPVE1nTnk0NE56VXVORE11TnpBekxqZ3pJREV1TkRBNElERXVNVGtnTWk0eE1EY3VNek16TGpVd01pNDJOU0F4TGpBd05TNDVOU0F4TGpVd09DNHpORE11TkRjM0xqWTNNeTQ1TlRjdU9UZzRJREV1TkRRZ01TNHpNU0F4TGpjMk9TQXlMalVnTXk0MU1ESWdNeTQyTXpjZ05TNHhOamd1TnpreklERXVNamMxSURFdU5qZ3pJREl1TmpRZ01pNDBOallnTXk0NU9TQXlMak0yTXlBMExqQTVOQ0EwTGpBd055QTRMakE1TWlBMExqWWdNVE11T1RFMGRpNHdNVEpqTGpFNE1pNDBNVEl1TlRFMkxqWTJOaTQ0TnprdU5qWTNMalF3TXkwdU1EQXhMamMyT0MwdU16RTBMamt6TFM0M09Ua3VOakF6TFRVdU56VTJJREl1TWpNNExUa3VOekk1SURRdU5UZzFMVEV6TGpjNU5DNDNPREl0TVM0ek5TQXhMalkzTXkweUxqY3hOU0F5TGpRMk5TMHpMams1SURFdU1UTTNMVEV1TmpZMklESXVNekk0TFRNdU5DQXpMall6T0MwMUxqRTJPUzR6TVRVdExqUTRNaTQyTkRVdExqazJNaTQ1T0RndE1TNDBNemt1TXkwdU5UQXpMall4TnkweExqQXdOaTQ1TlMweExqVXdPQzR6TlRrdExqY3VOell0TVM0ME1EUWdNUzR4T1MweUxqRXdOeUF4TGpReU5pMHlMalF3TWlBeUxUVXVNVEUwSURJdU1EQTBMVGN1T0RjMUlEQXRPQzQ0TkRRdE55NDFNVEV0TVRZdU1ERTBMVEUyTGpjM05pMHhOaTR3TVRSNklpQm1hV3hzUFNJalpHUTBZak5sSWlCd1lXbHVkQzF2Y21SbGNqMGliV0Z5YTJWeWN5QnpkSEp2YTJVZ1ptbHNiQ0l2UGp4bGJHeHBjSE5sSUhKNVBTSTFMalUyTkNJZ2NuZzlJalV1T0RJNElpQmplVDBpTWpNNUxqQXdNaUlnWTNnOUlqSXlOaTQzTkRJaUlHWnBiR3c5SWlNNE1ESmtNamNpSUhCaGFXNTBMVzl5WkdWeVBTSnRZWEpyWlhKeklITjBjbTlyWlNCbWFXeHNJaTgrUEhCaGRHZ2daRDBpVFRFNU1DNHpNREVnTWpNM0xqSTRNMk10TkM0Mk55QXdMVGd1TkRVM0lETXVPRFV6TFRndU5EVTNJRGd1TmpBMmN6TXVOemcySURndU5qQTNJRGd1TkRVM0lEZ3VOakEzWXpNdU1EUXpJREFnTkM0NE1EWXRMamsxT0NBMkxqTXpOeTB5TGpVeE5pQXhMalV6TFRFdU5UVTNJREl1TURnM0xUTXVPVEV6SURJdU1EZzNMVFl1TWprZ01DMHVNell5TFM0d01qTXRMamN5TWkwdU1EWTBMVEV1TURjNWFDMDRMakkxTjNZekxqQTBNMmcwTGpnMVl5MHVNVGszTGpjMU9TMHVOVE14SURFdU5EVXRNUzR3TlRnZ01TNDVPRFl0TGprME1pNDVOVGd0TWk0d01qZ2dNUzQxTkRndE15NDVNREVnTVM0MU5EZ3RNaTQ0TnpZZ01DMDFMakl3T0MweUxqTTNNaTAxTGpJd09DMDFMakk1T1NBd0xUSXVPVEkySURJdU16TXlMVFV1TWprNUlEVXVNakE0TFRVdU1qazVJREV1TXprNUlEQWdNaTQyTVRndU5EQTNJRE11TlRnMElERXVNamt6YkRJdU16Z3hMVEl1TXpoak1DMHVNREF5TFM0d01ETXRMakF3TkMwdU1EQTBMUzR3TURVdE1TNDFPRGd0TVM0MU1qUXRNeTQyTWkweUxqSXhOUzAxTGprMU5TMHlMakl4TlhwdE5DNDBNeUExTGpZMmJDNHdNRE11TURBMmRpMHVNREF6ZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakUxTGpFNE5DQXlOVEV1T1RJNWJDMDNMams0SURjdU9UYzVJREk0TGpRM055QXlPQzQwTnpWakxqSTROeTB1TmpRNUxqUTBPUzB4TGpNMk5pNDBORGt0TWk0eE1qTjJMVE14TGpFMk5XTXRMalEyT1M0Mk56VXRMamt6TkNBeExqTTBPUzB4TGpNNE1pQXlMakF3TlMwdU56a3lJREV1TWpjMUxURXVOamd5SURJdU5qUXRNaTQwTmpVZ015NDVPUzB5TGpNME55QTBMakEyTlMwekxqazRNaUE0TGpBek9DMDBMalU0TlNBeE15NDNPVFF0TGpFMk1pNDBPRFV0TGpVeU55NDNPVGd0TGprekxqYzVPUzB1TXpZekxTNHdNREV0TGpZNU55MHVNalUxTFM0NE56a3RMalkyTjNZdExqQXhNbU10TGpVNU15MDFMamd5TWkweUxqSXpOeTA1TGpneUxUUXVOaTB4TXk0NU1UUXRMamM0TXkweExqTTFMVEV1TmpjekxUSXVOekUxTFRJdU5EWTJMVE11T1RrdE1TNHhNemN0TVM0Mk5qWXRNaTR6TWpjdE15NDBMVE11TmpNM0xUVXVNVFk1YkMwdU1EQXlMUzR3TURONklpQm1hV3hzUFNJall6TmpNMk16SWk4K1BIQmhkR2dnWkQwaVRUSXhNaTQ1T0RNZ01qUTRMalE1Tld3dE16WXVPVFV5SURNMkxqazFNM1l1T0RFeVlUVXVNakkzSURVdU1qSTNJREFnTUNBd0lEVXVNak00SURVdU1qTTRhREV1TURFMWJETTFMalkyTmkwek5TNDJOalpoTVRNMkxqSTNOU0F4TXpZdU1qYzFJREFnTUNBd0xUSXVOelkwTFRNdU9TQXpOeTQxTnpVZ016Y3VOVGMxSURBZ01DQXdMUzQ1T0RrdE1TNDBOR010TGpJNU9TMHVOVEF6TFM0Mk1UWXRNUzR3TURZdExqazFMVEV1TlRBNExTNHdPRE10TGpFMk1pMHVNVGMyTFM0ek1qWXRMakkyTkMwdU5EZzVlaUlnWm1sc2JEMGlJMlprWkdNMFppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakV4TGprNU9DQXlOakV1TURnemJDMDJMakUxTWlBMkxqRTFNU0F5TkM0eU5qUWdNalF1TWpZMGFDNDNPREZoTlM0eU1qY2dOUzR5TWpjZ01DQXdJREFnTlM0eU16a3ROUzR5TXpoMkxURXVNRFExZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhMMmMrUEM5emRtYyspO1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMjIwLCA0NiUsIDQ4JSk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJeE1ESTBjSGdpSUdobGFXZG9kRDBpTVRBeU5IQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UQXlOQ0F4TURJMElpQjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lQaUFnSUNBZ0lDQWdQSFJwZEd4bFBrWnBiR3dnTVR3dmRHbDBiR1UrSUNBZ0lEeGtaWE5qUGtOeVpXRjBaV1FnZDJsMGFDQlRhMlYwWTJndVBDOWtaWE5qUGlBZ0lDQThaR1ZtY3o0OEwyUmxabk0rSUNBZ0lEeG5JR2xrUFNKUVlXZGxMVEVpSUhOMGNtOXJaVDBpYm05dVpTSWdjM1J5YjJ0bExYZHBaSFJvUFNJeElpQm1hV3hzUFNKdWIyNWxJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGlBZ0lDQWdJQ0FnUEdjZ2FXUTlJbVpNYjJkdlgxZG9hWFJsSWlCbWFXeHNQU0lqUmtaR1JrWkZJajRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk9UWTNMalE0TkN3d0lFdzFOaTQxTVRjc01DQkRNalV1TXpBMExEQWdNQ3d5TlM0ek1EUWdNQ3cxTmk0MU1UY2dUREFzT1RZM0xqUTRNeUJETUN3NU9UZ3VOamswSURJMUxqSTVOeXd4TURJMElEVTJMalV5TWl3eE1ESTBJRXcxTkRjc01UQXlOQ0JNTlRRM0xEWXlPQ0JNTkRFMExEWXlPQ0JNTkRFMExEUTNNeUJNTlRRM0xEUTNNeUJNTlRRM0xETTFPUzR3TWprZ1F6VTBOeXd5TWpZdU56WTNJRFl5Tnk0M056TXNNVFUwTGpjME55QTNORFV1TnpVMkxERTFOQzQzTkRjZ1F6Z3dNaTR5Tmprc01UVTBMamMwTnlBNE5UQXVPRFF5TERFMU9DNDVOVFVnT0RZMUxERTJNQzQ0TXpZZ1REZzJOU3d5T1RrZ1REYzRNeTR6T0RRc01qazVMakF6TnlCRE56RTVMak01TVN3eU9Ua3VNRE0zSURjd055d3pNamt1TlRJNUlEY3dOeXd6TnpRdU1qY3pJRXczTURjc05EY3pJRXc0TmpBdU5EZzNMRFEzTXlCTU9EUXdMalV3TVN3Mk1qZ2dURGN3Tnl3Mk1qZ2dURGN3Tnl3eE1ESTBJRXc1TmpjdU5EZzBMREV3TWpRZ1F6azVPQzQyT1Rjc01UQXlOQ0F4TURJMExEazVPQzQyT1RjZ01UQXlOQ3c1TmpjdU5EZzBJRXd4TURJMExEVTJMalV4TlNCRE1UQXlOQ3d5TlM0ek1ETWdPVGs0TGpZNU55d3dJRGsyTnk0ME9EUXNNQ0lnYVdROUlrWnBiR3d0TVNJK1BDOXdZWFJvUGlBZ0lDQWdJQ0FnUEM5blBpQWdJQ0E4TDJjK1BDOXpkbWMrKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIyMCwgMTAwJSwgOTAlKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLGhzbCgyNDYsIDEwMCUsIDM5JSksaHNsKDMwMiwgMTAwJSwgMzYlKSxoc2woMCwgMTAwJSwgNDglKSk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0OGMzWm5JSGRwWkhSb1BTSTFNRFJ3ZUNJZ2FHVnBaMmgwUFNJMU1EUndlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEVXdOQ0ExTURRaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SStJQ0FnSUNBZ0lDQThkR2wwYkdVK1oyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMlBDOTBhWFJzWlQ0Z0lDQWdQR1JsYzJNK1EzSmxZWFJsWkNCM2FYUm9JRk5yWlhSamFDNDhMMlJsYzJNK0lDQWdJRHhrWldaelBpQWdJQ0FnSUNBZ1BIQnZiSGxuYjI0Z2FXUTlJbkJoZEdndE1TSWdjRzlwYm5SelBTSXdJREF1TVRVNUlEVXdNeTQ0TkRFZ01DNHhOVGtnTlRBekxqZzBNU0ExTURNdU9UUWdNQ0ExTURNdU9UUWlQand2Y0c5c2VXZHZiajRnSUNBZ1BDOWtaV1p6UGlBZ0lDQThaeUJwWkQwaVoyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMklpQnpkSEp2YTJVOUltNXZibVVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNU0lnWm1sc2JEMGlibTl1WlNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lqNGdJQ0FnSUNBZ0lEeG5JR2xrUFNKSGNtOTFjQzB6SWo0Z0lDQWdJQ0FnSUNBZ0lDQThiV0Z6YXlCcFpEMGliV0Z6YXkweUlpQm1hV3hzUFNKM2FHbDBaU0krSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHgxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM0JoZEdndE1TSStQQzkxYzJVK0lDQWdJQ0FnSUNBZ0lDQWdQQzl0WVhOclBpQWdJQ0FnSUNBZ0lDQWdJRHhuSUdsa1BTSkRiR2x3TFRJaVBqd3ZaejRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1qVXhMamt5TVN3d0xqRTFPU0JETVRnekxqVXdNeXd3TGpFMU9TQXhOelF1T1RJMExEQXVORFE1SURFME9DNHdOVFFzTVM0Mk56VWdRekV5TVM0eU5Dd3lMamc1T0NBeE1ESXVPVEkzTERjdU1UVTNJRGcyTGprd015d3hNeTR6T0RVZ1F6Y3dMak16Tnl3eE9TNDRNaklnTlRZdU1qZzRMREk0TGpRek5pQTBNaTR5T0RJc05ESXVORFF4SUVNeU9DNHlOemNzTlRZdU5EUTNJREU1TGpZMk15dzNNQzQwT1RZZ01UTXVNakkyTERnM0xqQTJNaUJETmk0NU9UZ3NNVEF6TGpBNE5pQXlMamN6T1N3eE1qRXVNems1SURFdU5URTJMREUwT0M0eU1UTWdRekF1TWprc01UYzFMakE0TXlBd0xERTRNeTQyTmpJZ01Dd3lOVEl1TURnZ1F6QXNNekl3TGpRNU55QXdMakk1TERNeU9TNHdOellnTVM0MU1UWXNNelUxTGprME5pQkRNaTQzTXprc016Z3lMamMySURZdU9UazRMRFF3TVM0d056TWdNVE11TWpJMkxEUXhOeTR3T1RjZ1F6RTVMalkyTXl3ME16TXVOall6SURJNExqSTNOeXcwTkRjdU56RXlJRFF5TGpJNE1pdzBOakV1TnpFNElFTTFOaTR5T0Rnc05EYzFMamN5TXlBM01DNHpNemNzTkRnMExqTXpOeUE0Tmk0NU1ETXNORGt3TGpjM05TQkRNVEF5TGpreU55dzBPVGN1TURBeUlERXlNUzR5TkN3MU1ERXVNall4SURFME9DNHdOVFFzTlRBeUxqUTROQ0JETVRjMExqa3lOQ3cxTURNdU56RWdNVGd6TGpVd015dzFNRFFnTWpVeExqa3lNU3cxTURRZ1F6TXlNQzR6TXpnc05UQTBJRE15T0M0NU1UY3NOVEF6TGpjeElETTFOUzQzT0Rjc05UQXlMalE0TkNCRE16Z3lMall3TVN3MU1ERXVNall4SURRd01DNDVNVFFzTkRrM0xqQXdNaUEwTVRZdU9UTTRMRFE1TUM0M056VWdRelF6TXk0MU1EUXNORGcwTGpNek55QTBORGN1TlRVekxEUTNOUzQzTWpNZ05EWXhMalUxT1N3ME5qRXVOekU0SUVNME56VXVOVFkwTERRME55NDNNVElnTkRnMExqRTNPQ3cwTXpNdU5qWXpJRFE1TUM0Mk1UWXNOREUzTGpBNU55QkRORGsyTGpnME15dzBNREV1TURjeklEVXdNUzR4TURJc016Z3lMamMySURVd01pNHpNalVzTXpVMUxqazBOaUJETlRBekxqVTFNU3d6TWprdU1EYzJJRFV3TXk0NE5ERXNNekl3TGpRNU55QTFNRE11T0RReExESTFNaTR3T0NCRE5UQXpMamcwTVN3eE9ETXVOall5SURVd015NDFOVEVzTVRjMUxqQTRNeUExTURJdU16STFMREUwT0M0eU1UTWdRelV3TVM0eE1ESXNNVEl4TGpNNU9TQTBPVFl1T0RRekxERXdNeTR3T0RZZ05Ea3dMall4Tml3NE55NHdOaklnUXpRNE5DNHhOemdzTnpBdU5EazJJRFEzTlM0MU5qUXNOVFl1TkRRM0lEUTJNUzQxTlRrc05ESXVORFF4SUVNME5EY3VOVFV6TERJNExqUXpOaUEwTXpNdU5UQTBMREU1TGpneU1pQTBNVFl1T1RNNExERXpMak00TlNCRE5EQXdMamt4TkN3M0xqRTFOeUF6T0RJdU5qQXhMREl1T0RrNElETTFOUzQzT0Rjc01TNDJOelVnUXpNeU9DNDVNVGNzTUM0ME5Ea2dNekl3TGpNek9Dd3dMakUxT1NBeU5URXVPVEl4TERBdU1UVTVJRm9nVFRJMU1TNDVNakVzTkRVdU5UVWdRek14T1M0eE9EWXNORFV1TlRVZ016STNMakUxTkN3ME5TNDRNRGNnTXpVekxqY3hPQ3cwTnk0d01Ua2dRek0zT0M0eU9DdzBPQzR4TXprZ016a3hMall4T1N3MU1pNHlORE1nTkRBd0xqUTVOaXcxTlM0Mk9UTWdRelF4TWk0eU5UVXNOakF1TWpZeklEUXlNQzQyTkRjc05qVXVOekl5SURReU9TNDBOaklzTnpRdU5UTTRJRU0wTXpndU1qYzRMRGd6TGpNMU15QTBORE11TnpNM0xEa3hMamMwTlNBME5EZ3VNekEzTERFd015NDFNRFFnUXpRMU1TNDNOVGNzTVRFeUxqTTRNU0EwTlRVdU9EWXhMREV5TlM0M01pQTBOVFl1T1RneExERTFNQzR5T0RJZ1F6UTFPQzR4T1RNc01UYzJMamcwTmlBME5UZ3VORFVzTVRnMExqZ3hOQ0EwTlRndU5EVXNNalV5TGpBNElFTTBOVGd1TkRVc016RTVMak0wTlNBME5UZ3VNVGt6TERNeU55NHpNVE1nTkRVMkxqazRNU3d6TlRNdU9EYzNJRU0wTlRVdU9EWXhMRE0zT0M0ME16a2dORFV4TGpjMU55d3pPVEV1TnpjNElEUTBPQzR6TURjc05EQXdMalkxTlNCRE5EUXpMamN6Tnl3ME1USXVOREUwSURRek9DNHlOemdzTkRJd0xqZ3dOaUEwTWprdU5EWXlMRFF5T1M0Mk1qRWdRelF5TUM0Mk5EY3NORE00TGpRek55QTBNVEl1TWpVMUxEUTBNeTQ0T1RZZ05EQXdMalE1Tml3ME5EZ3VORFkySUVNek9URXVOakU1TERRMU1TNDVNVFlnTXpjNExqSTRMRFExTmk0d01pQXpOVE11TnpFNExEUTFOeTR4TkNCRE16STNMakUxT0N3ME5UZ3VNelV5SURNeE9TNHhPVEVzTkRVNExqWXdPU0F5TlRFdU9USXhMRFExT0M0Mk1Ea2dRekU0TkM0Mk5TdzBOVGd1TmpBNUlERTNOaTQyT0RRc05EVTRMak0xTWlBeE5UQXVNVEl6TERRMU55NHhOQ0JETVRJMUxqVTJNU3cwTlRZdU1ESWdNVEV5TGpJeU1pdzBOVEV1T1RFMklERXdNeTR6TkRVc05EUTRMalEyTmlCRE9URXVOVGcyTERRME15NDRPVFlnT0RNdU1UazBMRFF6T0M0ME16Y2dOelF1TXpjNUxEUXlPUzQyTWpFZ1F6WTFMalUyTkN3ME1qQXVPREEySURZd0xqRXdOQ3cwTVRJdU5ERTBJRFUxTGpVek5DdzBNREF1TmpVMUlFTTFNaTR3T0RRc016a3hMamMzT0NBME55NDVPQ3d6TnpndU5ETTVJRFEyTGpnMkxETTFNeTQ0TnpjZ1F6UTFMalkwT0N3ek1qY3VNekV6SURRMUxqTTVNU3d6TVRrdU16UTFJRFExTGpNNU1Td3lOVEl1TURnZ1F6UTFMak01TVN3eE9EUXVPREUwSURRMUxqWTBPQ3d4TnpZdU9EUTJJRFEyTGpnMkxERTFNQzR5T0RJZ1F6UTNMams0TERFeU5TNDNNaUExTWk0d09EUXNNVEV5TGpNNE1TQTFOUzQxTXpRc01UQXpMalV3TkNCRE5qQXVNVEEwTERreExqYzBOU0EyTlM0MU5qTXNPRE11TXpVeklEYzBMak0zT1N3M05DNDFNemdnUXpnekxqRTVOQ3cyTlM0M01qSWdPVEV1TlRnMkxEWXdMakkyTXlBeE1ETXVNelExTERVMUxqWTVNeUJETVRFeUxqSXlNaXcxTWk0eU5ETWdNVEkxTGpVMk1TdzBPQzR4TXprZ01UVXdMakV5TXl3ME55NHdNVGtnUXpFM05pNDJPRGNzTkRVdU9EQTNJREU0TkM0Mk5UVXNORFV1TlRVZ01qVXhMamt5TVN3ME5TNDFOU0JhSWlCcFpEMGlSbWxzYkMweElpQm1hV3hzUFNJalJrWkdSa1pHSWlCdFlYTnJQU0oxY213b0kyMWhjMnN0TWlraVBqd3ZjR0YwYUQ0Z0lDQWdJQ0FnSUR3dlp6NGdJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHlOVEV1T1RJeExETXpOaTR3TlRNZ1F6SXdOUzQxTkRNc016TTJMakExTXlBeE5qY3VPVFEzTERJNU9DNDBOVGNnTVRZM0xqazBOeXd5TlRJdU1EZ2dRekUyTnk0NU5EY3NNakExTGpjd01pQXlNRFV1TlRRekxERTJPQzR4TURZZ01qVXhMamt5TVN3eE5qZ3VNVEEySUVNeU9UZ3VNams0TERFMk9DNHhNRFlnTXpNMUxqZzVOQ3d5TURVdU56QXlJRE16TlM0NE9UUXNNalV5TGpBNElFTXpNelV1T0RrMExESTVPQzQwTlRjZ01qazRMakk1T0N3ek16WXVNRFV6SURJMU1TNDVNakVzTXpNMkxqQTFNeUJhSUUweU5URXVPVEl4TERFeU1pNDNNVFVnUXpFNE1DNDBOelFzTVRJeUxqY3hOU0F4TWpJdU5UVTJMREU0TUM0Mk16TWdNVEl5TGpVMU5pd3lOVEl1TURnZ1F6RXlNaTQxTlRZc016SXpMalV5TmlBeE9EQXVORGMwTERNNE1TNDBORFFnTWpVeExqa3lNU3d6T0RFdU5EUTBJRU16TWpNdU16WTNMRE00TVM0ME5EUWdNemd4TGpJNE5Td3pNak11TlRJMklETTRNUzR5T0RVc01qVXlMakE0SUVNek9ERXVNamcxTERFNE1DNDJNek1nTXpJekxqTTJOeXd4TWpJdU56RTFJREkxTVM0NU1qRXNNVEl5TGpjeE5TQmFJaUJwWkQwaVJtbHNiQzAwSWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5OREUyTGpZeU55d3hNVGN1TmpBMElFTTBNVFl1TmpJM0xERXpOQzR6SURRd015NHdPVElzTVRRM0xqZ3pOQ0F6T0RZdU16azJMREUwTnk0NE16UWdRek0yT1M0M01ERXNNVFEzTGpnek5DQXpOVFl1TVRZMkxERXpOQzR6SURNMU5pNHhOallzTVRFM0xqWXdOQ0JETXpVMkxqRTJOaXd4TURBdU9UQTRJRE0yT1M0M01ERXNPRGN1TXpjeklETTROaTR6T1RZc09EY3VNemN6SUVNME1ETXVNRGt5TERnM0xqTTNNeUEwTVRZdU5qSTNMREV3TUM0NU1EZ2dOREUyTGpZeU55d3hNVGN1TmpBMElpQnBaRDBpUm1sc2JDMDFJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJRHd2Wno0OEwzTjJaejQ9KTtcblx0XHR9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMzAyLCAxMDAlLCA5NCUpO1xuXHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHQvKiBVc2UgZ3JhZGllbnQgdG8gY29udHJhc3Qgd2l0aCBmb2N1c2VkIHdpZGdldCAoY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkIzIyKS4gKi9cblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIHRvIHJpZ2h0LCBoc2woMjAxLCA4NSUsIDcwJSksIGhzbCgyMDEsIDg1JSwgMzUlKSApO1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejQ4YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlsZG9hWFJsSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUI0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURRd01DQTBNREFpSUhOMGVXeGxQU0psYm1GaWJHVXRZbUZqYTJkeWIzVnVaRHB1WlhjZ01DQXdJRFF3TUNBME1EQTdJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWo0OGMzUjViR1VnZEhsd1pUMGlkR1Y0ZEM5amMzTWlQaTV6ZERCN1ptbHNiRG9qUmtaR1JrWkdPMzA4TDNOMGVXeGxQanh3WVhSb0lHTnNZWE56UFNKemREQWlJR1E5SWswME1EQXNNakF3WXpBc01URXdMalV0T0RrdU5Td3lNREF0TWpBd0xESXdNRk13TERNeE1DNDFMREFzTWpBd1V6ZzVMalVzTUN3eU1EQXNNRk0wTURBc09Ea3VOU3cwTURBc01qQXdlaUJOTVRZekxqUXNNekExTGpWak9EZ3VOeXd3TERFek55NHlMVGN6TGpVc01UTTNMakl0TVRNM0xqSmpNQzB5TGpFc01DMDBMakl0TUM0eExUWXVNbU01TGpRdE5pNDRMREUzTGpZdE1UVXVNeXd5TkM0eExUSTFZeTA0TGpZc015NDRMVEUzTGprc05pNDBMVEkzTGpjc055NDJZekV3TFRZc01UY3VOaTB4TlM0MExESXhMakl0TWpZdU4yTXRPUzR6TERVdU5TMHhPUzQyTERrdU5TMHpNQzQyTERFeExqZGpMVGd1T0MwNUxqUXRNakV1TXkweE5TNHlMVE0xTGpJdE1UVXVNbU10TWpZdU5pd3dMVFE0TGpJc01qRXVOaTAwT0M0eUxEUTRMakpqTUN3ekxqZ3NNQzQwTERjdU5Td3hMak1zTVRGakxUUXdMakV0TWkwM05TNDJMVEl4TGpJdE9Ua3VOQzAxTUM0MFl5MDBMakVzTnk0eExUWXVOU3d4TlM0MExUWXVOU3d5TkM0eVl6QXNNVFl1Tnl3NExqVXNNekV1TlN3eU1TNDFMRFF3TGpGakxUY3VPUzB3TGpJdE1UVXVNeTB5TGpRdE1qRXVPQzAyWXpBc01DNHlMREFzTUM0MExEQXNNQzQyWXpBc01qTXVOQ3d4Tmk0MkxEUXlMamdzTXpndU55dzBOeTR6WXkwMExERXVNUzA0TGpNc01TNDNMVEV5TGpjc01TNDNZeTB6TGpFc01DMDJMakV0TUM0ekxUa3VNUzB3TGpsak5pNHhMREU1TGpJc01qTXVPU3d6TXk0eExEUTFMRE16TGpWakxURTJMalVzTVRJdU9TMHpOeTR6TERJd0xqWXROVGt1T1N3eU1DNDJZeTB6TGprc01DMDNMamN0TUM0eUxURXhMalV0TUM0M1F6RXhNQzQ0TERJNU55NDFMREV6Tmk0eUxETXdOUzQxTERFMk15NDBMRE13TlM0MUlpOCtQQzl6ZG1jKyk7XG5cdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIwMSwgMTAwJSwgODYlKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZDogaHNsYSgzNDEsIDEwMCUsIDMwJSwgMC4xKTtcblx0LS1jay1jb2xvci1tZW50aW9uLXRleHQ6IGhzbCgzNDEsIDEwMCUsIDMwJSk7XG59XG4uY2stY29udGVudCAubWVudGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1tZW50aW9uLXRleHQpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJhY2tncm91bmQ6IGhzbGEoMzEsIDEwMCUsIDY1JSwgLjIpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24taG92ZXItYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuMzUpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHM6IGhzbGEoMzEsIDEwMCUsIDQwJSwgLjQpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuNSk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0czogaHNsYSgzMSwgMTAwJSwgNDAlLCAuNik7XG59XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdHRyYW5zaXRpb246IC4ycyBlYXNlLWluLW91dCBiYWNrZ3JvdW5kO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZDtcblx0Ym9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0dG8gcmlnaHQsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgMCUsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgNXB4LFxuXHRcdGhzbGEoMCwgMCUsIDAlLCAwKSA2cHgsXG5cdFx0aHNsYSgwLCAwJSwgMCUsIDApIGNhbGMoMTAwJSAtIDZweCksXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgY2FsYygxMDAlIC0gNXB4KSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdCkgMTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbl9zZWxlY3RlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kKTtcblx0XHRib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdHRvIHJpZ2h0LFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgMCUsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSA1cHgsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSBjYWxjKDEwMCUgLSA1cHgpLFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgMTAwJVxuXHRcdCkgMTtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbl9jb2xsYXBzZWQge1xuXHRcdC8qIEVtcHR5IGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhcyBleGNlcHRpb24gd2l0aCBhdCBsZWFzdCAxIGNoYXIgKi9cblx0XHRwYWRkaW5nLWxlZnQ6IDFjaDtcblx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0LyogV2UgYWxzbyBoYXZlIHRvIG92ZXJyaWRlIGFsbCBlbGVtZW50cyBpbnNpZGUgdGhlIHJlc3RyaWN0ZWQgZWRpdGFibGUgdG8gcHJldmVudCBjdXJzb3Igc3dpdGNoaW5nIGJldHdlZW4gZGVmYXVsdCBhbmQgdGV4dFxuXHRkdXJpbmcgdGhlIHBvaW50ZXIgbW92ZW1lbnQuICovXG59XG4uY2stcmVzdHJpY3RlZC1lZGl0aW5nX21vZGVfcmVzdHJpY3RlZCAqIHtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uICoge1xuXHRcdFx0Y3Vyc29yOiB0ZXh0O1xuXHRcdH1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbjpyb290IHtcblx0LS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemU6IDI0cHg7XG59XG4uY2suY2stY2hhcmFjdGVyLWdyaWQge1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlcyB7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKSwgMWZyKSk7XG5cdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRncmlkLWdhcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRib3JkZXI6IDA7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0LmNrLmNrLWNoYXJhY3Rlci1ncmlkIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZTpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cbi8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbi5jay5jay1jaGFyYWN0ZXItaW5mbyA+ICoge1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtc21hbGwpO1xuXHR9XG4uY2suY2stY2hhcmFjdGVyLWluZm8gLmNrLWNoYXJhY3Rlci1pbmZvX19uYW1lIHtcblx0XHRtYXgtd2lkdGg6IDI4MHB4O1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbi5jay5jay1jaGFyYWN0ZXItaW5mbyAuY2stY2hhcmFjdGVyLWluZm9fX2NvZGUge1xuXHRcdG9wYWNpdHk6IC42O1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24gPiAuY2stbGFiZWwge1xuXHRcdG1heC13aWR0aDogMTYwcHg7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycy1uYXZpZ2F0aW9uID4gLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdC8qIFRoZXJlIGNvdWxkIGJlIGRvemVucyBvZiBjYXRlZ29yaWVzIGF2YWlsYWJsZS4gVXNlIHNjcm9sbCB0byBwcmV2ZW50IGEgMTBlNnB4IGRyb3Bkb3duLiAqL1xuXHRcdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHR9XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycy1uYXZpZ2F0aW9uIHtcblx0XHRtYXgtd2lkdGg6IDE5MHB4O1xufVxuXG5cdFx0LmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycy1uYXZpZ2F0aW9uID4gLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1kcm9wZG93bi5jay1zdHlsZS1kcm9wZG93bi5jay1zdHlsZS1kcm9wZG93bl9tdWx0aXBsZS1hY3RpdmUgPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi13aWR0aDogMTIwcHg7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhlaWdodDogODBweDtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIuMSUpO1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNzAlKTtcbn1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCB7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRjb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uIHtcblx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi13aWR0aCk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24taGVpZ2h0KTtcblxuXHRcdC8qIExldCBkZWZhdWx0IC5jay1idXR0b24gOmZvY3VzIHN0eWxlcyBhcHBseSAqL1xuXHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0aGVpZ2h0OiAyMnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24gLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRvcGFjaXR5OiAuOTtcblxuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24uY2stZGlzYWJsZWQge1xuXHRcdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0XHQvKiBMZXQgZGVmYXVsdCAuY2stYnV0dG9uIDpmb2N1cyBzdHlsZXMgYXBwbHkgKi9cblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1kaXNhYmxlZDpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24uY2stZGlzYWJsZWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdG9wYWNpdHk6IC40O1xuXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0XHRcdFx0ZmlsdGVyOiBzYXR1cmF0ZSguMyk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1vbiB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1vbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgLTFweCAwIHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHRcdFx0ei1pbmRleDogMTsgLyogU3RheSBvbiB0b3Agb2YgdGhlIHByZXZpZXcgd2l0aCB0aGUgc2hhZG93LiAqL1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24uY2stb246aG92ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzKTtcblx0XHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOm5vdCguY2stb24pIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b246bm90KC5jay1vbik6aG92ZXIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKTpub3QoLmNrLW9uKSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xuXHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpOm5vdCguY2stb24pIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtcGFuZWxfX3N0eWxlLWdyb3VwID4gLmNrLWxhYmVsIHtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtcGFuZWxfX3N0eWxlLWdyb3VwOmZpcnN0LWNoaWxkID4gLmNrLWxhYmVsIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0OiA0NzBweDtcbn1cbi5jay5jay1zdHlsZS1wYW5lbCB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0KTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi8qIE1ha2Ugc3VyZSB0aGUgZm9jdXNlZCBpbnB1dCBpcyBhbHdheXMgb24gdG9wIG9mIHRoZSBkcm9wZG93biBidXR0b24gc28gaXRzXG5cdFx0ICAgb3V0bGluZSBhbmQgYm9yZGVyIGFyZSBuZXZlciBjcm9wcGVkIChhbHNvIHdoZW4gdGhlIGlucHV0IGlzIHJlYWQtb25seSkuICovXG4uY2suY2staW5wdXQtY29sb3IgPiAuY2suY2staW5wdXQtdGV4dDpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiAwO1xuXHRcdH1cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b246bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbi5jay1kaXNhYmxlZCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cdFx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3LFxuXHQuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24gPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24gPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3X19uby1jb2xvci1pbmRpY2F0b3Ige1xuXHRcdFx0XHRcdHRvcDogLTMwJTtcblx0XHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNTAlO1xuXHRcdFx0XHRcdHdpZHRoOiA4JTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBoc2woMCwgMTAwJSwgNTAlKTtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcblx0XHRcdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIC8gMikgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3I6bm90KDpmb2N1cykge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvciAuY2suY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIC5jay5jay1pY29uIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stZm9ybSB7XG5cdHBhZGRpbmc6IDAgMCB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1mb3JtOmZvY3VzIHtcblx0XHQvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzQ3NzMgKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4uY2suY2stZm9ybSAuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHRcdHdpZHRoOiAwO1xuXHR9XG4uY2suY2stZm9ybSAuY2suY2stZHJvcGRvd24ge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0fVxuLmNrLmNrLWZvcm0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYnV0dG9uOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuLmNrLmNrLWZvcm0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1mb3JtX19yb3cge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXG5cdC8qIElnbm9yZSBsYWJlbHMgdGhhdCB3b3JrIGFzIGZpZWxkc2V0IGxlZ2VuZHMgKi9cbn1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZvcm1fX3JvdyA+ICo6bm90KC5jay1sYWJlbCkgKyAqIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1mb3JtX19yb3cgPiAqOm5vdCguY2stbGFiZWwpICsgKiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi5jay5jay1mb3JtX19yb3cgPiAuY2stbGFiZWwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0fVxuLmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmc6IDEwcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1oZWlnaHQ6IDExcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aDogMTJweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbjogMXB4O1xufVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2dyaWQge1xuXHQvKiBUaGUgd2lkdGggb2YgYSBjb250YWluZXIgc2hvdWxkIG1hdGNoIDEwIGl0ZW1zIGluIGEgcm93IHNvIHRoZXJlIHdpbGwgYmUgYSAxMHgxMCBncmlkLiAqL1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoKSAqIDEwICsgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pICogMjAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgKiAyKTtcblx0cGFkZGluZzogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAwO1xufVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2xhYmVsLFxuLmNrW2Rpcj1ydGxdIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2xhYmVsIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3gge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGgpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodCk7XG5cdG1hcmdpbjogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IDFweDtcblx0b3V0bGluZTogbm9uZTtcblx0dHJhbnNpdGlvbjogbm9uZTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveCB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3g6Zm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWdyaWQtYm94LmNrLW9uIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcbn1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19wYWRkaW5nLXJvdyB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aWR0aDogMjUlO1xuXHRcdH1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc2VsZWN0b3ItZm9jdXNlZC1jZWxsLWJhY2tncm91bmQ6IGhzbGEoMjEyLCA5MCUsIDgwJSwgLjMpO1xufVxuLyoqXG5cdFx0ICogV2hpbGUgc2V0dGluZyBvdXRsaW5lIGlzIGZpbmUsIHRoZSBib3JkZXIgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBoZXJlXG5cdFx0ICogYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdGFibGUgY2VsbCBib3JkZXIgY29sb3Igd2hpY2ggaXMgbm90IGV4cGVjdGVkLlxuXHRcdCAqIFNvIGRvIG5vdCB1c2UgYEBtaXhpbiBjay1mb2N1cy1yaW5nO2AgaGVyZSwgb3IgYW55IG90aGVyIGJvcmRlciBzdHlsZXMuXG5cdFx0ICogU2VlIG1vcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2OTc5XG5cdFx0ICovXG4uY2std2lkZ2V0LnRhYmxlIHRkLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsXG5cdFx0LmNrLXdpZGdldC50YWJsZSB0aC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkLFxuXHRcdC5jay13aWRnZXQudGFibGUgdGQuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXMsXG5cdFx0LmNrLXdpZGdldC50YWJsZSB0aC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1cyB7XG5cdFx0XHQvKiBBIHZlcnkgc2xpZ2h0IGJhY2tncm91bmQgdG8gaGlnaGxpZ2h0IHRoZSBmb2N1c2VkIGNlbGwgKi9cblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWZvY3VzZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7IC8qIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50IC0gbm8gSUUgc3VwcG9ydCAqL1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbjpyb290IHtcblx0LS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemU6IDZweDtcblx0LS1jay10YWJsZS1wcm9wZXJ0aWVzLW1pbi1lcnJvci13aWR0aDogMTUwcHg7XG59XG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cgLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay1sYWJlbCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cgLmNrLXRhYmxlLWZvcm1fX2JvcmRlci1zdHlsZSxcblx0XHRcdC5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXdpZHRoIHtcblx0XHRcdFx0d2lkdGg6IDgwcHg7XG5cdFx0XHRcdG1pbi13aWR0aDogODBweDtcblx0XHRcdFx0bWF4LXdpZHRoOiA4MHB4O1xuXHRcdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93X193aWR0aCxcblx0XHRcdC5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93X19oZWlnaHQge1xuXHRcdFx0XHRtYXJnaW46IDBcblx0XHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoKTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0YW5pbWF0aW9uOiBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIC4xNXMgZWFzZSBib3RoO1xuXHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMsXG5cdC5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcikgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKTtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4vKiBIaWRlIHRoZSBlcnJvciBiYWxsb29uIHdoZW4gdGhlIGZpZWxkIGlzIGJsdXJyZWQuIE1ha2VzIHRoZSBleHBlcmllbmNlIG11Y2ggbW9yZSBjbGVhci4gKi9cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LmNrLWVycm9yOm5vdCg6Zm9jdXMpICsgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuQGtleWZyYW1lcyBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcbn1cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXG5cdFx0XHRcdC8qIENvbXBlbnNhdGUgZm9yIG1pc3NpbmcgaW5wdXQgbGFiZWwgdGhhdCB3b3VsZCBwdXNoIHRoZSBtYXJnaW4gKHRvb2xiYXIgaGFzIG5vIGlucHV0cykuICovXG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9faXRlbXMgPiAqIHtcblx0XHRcdFx0XHR3aWR0aDogNDBweDtcblx0XHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay10YWJsZS1zZWxlY3RlZC1jZWxsLWJhY2tncm91bmQ6IGhzbGEoMjA4LCA5MCUsIDgwJSwgLjMpO1xufVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRkLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Y2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG91dGxpbmU6IHVuc2V0O1xuXHRcdGJveC1zaGFkb3c6IHVuc2V0O1xuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjQ0NiAqL1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDphZnRlciwgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQ6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLXRhYmxlLXNlbGVjdGVkLWNlbGwtYmFja2dyb3VuZCk7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRkLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgOjpzZWxlY3Rpb24sXG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgOjpzZWxlY3Rpb24sXG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRkLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQ6Zm9jdXMsXG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQ6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuLypcblx0XHQgKiBUbyByZWR1Y2UgdGhlIGFtb3VudCBvZiBub2lzZSwgYWxsIHdpZGdldHMgaW4gdGhlIHRhYmxlIHNlbGVjdGlvbiBoYXZlIG5vIG91dGxpbmUgYW5kIG5vIHNlbGVjdGlvbiBoYW5kbGUuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk0OTEuXG5cdFx0ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0LCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0IHtcblx0XHRcdG91dGxpbmU6IHVuc2V0O1xuXHRcdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDNweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDE2cHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDBtcztcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmU6IGVhc2U7XG5cblx0LS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXI6IGhzbCgwLCAwJSwgODclKTtcblx0LS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyOiBoc2woNDMsIDEwMCUsIDYyJSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuLmNrIC5jay13aWRnZXQge1xuXHRvdXRsaW5lLXdpZHRoOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpO1xuXHRvdXRsaW5lLXN0eWxlOiBzb2xpZDtcblx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0IHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHR9XG4uY2sgLmNrLXdpZGdldDpob3ZlciB7XG5cdFx0b3V0bGluZS1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdH1cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBUaGUgOmZvY3VzIHN0eWxlIGlzIGFwcGxpZWQgYmVmb3JlIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkIGNsYXNzIGlzIHJlbmRlcmVkIGluIHRoZSB2aWV3LlxuXHRUaGVzZSBzdHlsZXMgc2hvdyBhIGRpZmZlcmVudCBib3JkZXIgZm9yIGEgYmxpbmsgb2YgYW4gZXllLCBzbyBgOmZvY3VzYCBuZWVkIHRvIGhhdmUgc2FtZSBzdHlsZXMgYXBwbGllZC4gKi9cbn1cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0LmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2staW5uZXItc2hhZG93KSwgMCAwO1xuXHR9XG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQuY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsIC5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxuLyoqXG5cdFx0ICogRm9jdXMgYm9yZGVyIHNob3VsZCBub3QgYmUgYXBwbGllZCB0byB0YWJsZSBjZWxscyBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB0YWJsZSBjZWxsIGJvcmRlciBjb2xvci5cblx0XHQgKiBJbiBvdGhlciB3b3JkcyAtIGluIHNvbWUgc2NlbmFyaW9zLCB0aGUgcGFydCBvZiB0aGUgdGFibGUgY2VsbCBib3JkZXIgaGFzIGZvY3VzIGNvbG9yIHN0eWxlLCB3aGljaCBpcyBub3QgZXhwZWN0ZWQgYmVoYXZpb3Jcblx0XHQgKiBiZWNhdXNlIGl0IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgdGFibGUgY2VsbCBib3JkZXIgY29sb3IuXG5cdFx0ICovXG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQ6bm90KHRkLCB0aCksIC5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXM6bm90KHRkLCB0aCkge1xuXHRcdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdH1cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0cGFkZGluZzogNHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0XHQvKiBCYWNrZ3JvdW5kIGFuZCBvcGFjaXR5IHdpbGwgYmUgYW5pbWF0ZWQgYXMgdGhlIGhhbmRsZXIgc2hvd3MgdXAgb3IgdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkLiAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG9wYWNpdHk6IDA7XG5cblx0XHQvKiBUcmFuc2l0aW9uOlxuXHRcdCAgICogYmFja2dyb3VuZC1jb2xvciBmb3IgdGhlIC5jay13aWRnZXRfc2VsZWN0ZWQgc3RhdGUgY2hhbmdlLFxuXHRcdCAgICogdmlzaWJpbGl0eSBmb3IgaGlkaW5nIHRoZSBoYW5kbGVyLFxuXHRcdCAgICogb3BhY2l0eSBmb3IgdGhlIHByb3BlciBsb29rIG9mIHRoZSBpY29uIHdoZW4gdGhlIGhhbmRsZXIgZGlzYXBwZWFycy4gKi9cblx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0YmFja2dyb3VuZC1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHR2aXNpYmlsaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSxcblx0XHRcdG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0LyogTWFrZSBvbmx5IHRvcCBjb3JuZXJzIHJvdW5kLiAqL1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblxuXHRcdC8qIFBsYWNlIHRoZSBkcmFnIGhhbmRsZXIgb3V0c2lkZSB0aGUgd2lkZ2V0IHdyYXBwZXIuICovXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcblx0XHRsZWZ0OiBjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdHRvcDogMDtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cdFx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaWNvbiBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGZvbi1zaXplIG9mIHRoZSBjb250ZW50LiAqL1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yKTtcblxuXHRcdFx0LyogVGhlIFwic2VsZWN0ZWRcIiBwYXJ0IG9mIHRoZSBpY29uIGlzIGludmlzaWJsZSBieSBkZWZhdWx0ICovXG5cdFx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0XHRcdC8qIE5vdGU6IFRoZSBhbmltYXRpb24gaXMgbG9uZ2VyIG9uIHB1cnBvc2UuIFNpbXBseSBmZWVscyBiZXR0ZXIuICovXG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHRcdFx0fVxuLyogQWR2ZXJ0aXNlIHVzaW5nIHRoZSBsb29rIG9mIHRoZSBpY29uIHRoYXQgb25jZSBjbGlja2VkIHRoZSBoYW5kbGVyLCB0aGUgd2lkZ2V0IHdpbGwgYmUgc2VsZWN0ZWQuICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cbi8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGVyIG9uIG1vdXNlIGhvdmVyIG92ZXIgdGhlIHdpZGdldCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxuLyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXG5cdFx0XHQvKiBXaGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsIG5vdGlmeSB0aGUgdXNlciB1c2luZyB0aGUgcHJvcGVyIGxvb2sgb2YgdGhlIGljb24uICovXG5cdFx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3IsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cbi8qIEluIGEgUlRMIGVudmlyb25tZW50LCBhbGlnbiB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5ja1tkaXI9XCJydGxcIl0gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcbn1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY0MTUgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0IHtcblx0LyogUHJldmVudCB0aGUgOmhvdmVyIG91dGxpbmUgZnJvbSBzaG93aW5nIHVwIGJlY2F1c2Ugb2YgdGhlIHVzZWQgb3V0bGluZS1jb2xvciB0cmFuc2l0aW9uLiAqL1xuXHR0cmFuc2l0aW9uOiBub25lO1xufVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpIHtcblx0XHQvKiBEaXNhYmxlIHZpc3VhbCBlZmZlY3RzIG9mIGhvdmVyL2FjdGl2ZSB3aWRnZXQgd2hlbiBDS0VkaXRvciBpcyBpbiByZWFkT25seSBtb2RlLlxuXHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTI2MVxuXHRcdCAqXG5cdFx0ICogTGVhdmUgdGhlIHVuaXQgYmVjYXVzZSB0aGlzIGN1c3RvbSBwcm9wZXJ0eSBpcyB1c2VkIGluIGNhbGMoKSBieSBvdGhlciBmZWF0dXJlcy5cblx0XHQgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY3NzVcblx0XHQgKi9cblx0XHQtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzczogMHB4O1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0fVxuLyogU3R5bGUgdGhlIHdpZGdldCB3aGVuIGl0J3Mgc2VsZWN0ZWQgYnV0IHRoZSBlZGl0YWJsZSBpdCBiZWxvbmdzIHRvIGxvc3QgZm9jdXMuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0b3V0bGluZS1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyLFxuXHRcdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0XHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCxcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGJsb2NrcXVvdGUgPiAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6Zmlyc3QtY2hpbGQge1xuXHQvKiBEbyBub3QgY3JvcCBzZWxlY3Rpb24gaGFuZGxlciBpZiBhIHdpZGdldCBpcyBhIGZpcnN0LWNoaWxkIGluIHRoZSBibG9ja3F1b3RlIG9yIGluIHRoZSByb290IGVkaXRhYmxlLlxuXHRJbiBmYWN0LCBhbnl0aGluZyB3aXRoIG92ZXJmbG93OiBoaWRkZW4uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtYmxvY2stcXVvdGUvaXNzdWVzLzI4XG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtd2lkZ2V0L2lzc3Vlcy80NFxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXdpZGdldC9pc3N1ZXMvNjYgKi9cblx0bWFyZ2luLXRvcDogY2FsYygxZW0gKyB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stcmVzaXplci1zaXplOiAxMHB4O1xuXG5cdC8qIFNldCB0aGUgcmVzaXplciB3aXRoIGEgNTAlIG9mZnNldC4gKi9cblx0LS1jay1yZXNpemVyLW9mZnNldDogY2FsYyggKCB2YXIoLS1jay1yZXNpemVyLXNpemUpIC8gLTIgKSAtIDJweCk7XG5cdC0tY2stcmVzaXplci1ib3JkZXItd2lkdGg6IDFweDtcbn1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXIpO1xufVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZSB7XG5cdHdpZHRoOiB2YXIoLS1jay1yZXNpemVyLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItc2l6ZSk7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdGJvcmRlcjogdmFyKC0tY2stcmVzaXplci1ib3JkZXItd2lkdGgpIHNvbGlkIGhzbCgwLCAwJSwgMTAwJSk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXJhZGl1cyk7XG59XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLXJpZ2h0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1yaWdodCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZTogMjBweDtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWFjdGl2ZTogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhvdmVyOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWJsdXJyZWQtZWRpdGFibGU6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYTogMDtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLWVuZC1hbHBoYTogLjM7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1pY29uOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zXG5cdCAqL1xuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24pO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLCBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdG9wYWNpdHk6IDA7XG5cblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnIHtcblx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuXHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cyBlYXNlO1xuXHRcdFx0bWFyZ2luLXRvcDogMXB4O1xuXHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0fVxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcgKiB7XG5cdFx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6IDEwO1xuXHRcdFx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblxuXHRcdFx0XHRmaWxsOiBub25lO1xuXHRcdFx0XHRzdHJva2U6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taWNvbik7XG5cdFx0XHRcdHN0cm9rZS13aWR0aDogMS41cHg7XG5cdFx0XHRcdHN0cm9rZS1saW5lY2FwOiByb3VuZDtcblx0XHRcdFx0c3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcblx0XHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnIGxpbmUge1xuXHRcdFx0XHRzdHJva2UtZGFzaGFycmF5OiA3O1xuXHRcdFx0fVxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0XHQvKlxuXHRcdFx0ICogRGlzcGxheSB0aGUgXCJzb25hclwiIGFyb3VuZCB0aGUgYnV0dG9uIHdoZW4gaG92ZXJlZC5cblx0XHRcdCAqL1xuXHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNvbmFyIDFzIGVhc2UgaW5maW5pdGU7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBBbmltYXRlIGFjdGl2ZSBidXR0b24ncyBpY29uLlxuXHRcdFx0ICovXG5cdFx0fVxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciBzdmcgcG9seWxpbmUge1xuXHRcdFx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LWRhc2ggMnMgbGluZWFyO1xuXHRcdFx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHN2ZyBsaW5lIHtcblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy10aXAtZGFzaCAycyBsaW5lYXI7XG5cdFx0XHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdFx0XHQuY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHN2ZyBwb2x5bGluZSB7XG5cdFx0XHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciBzdmcgbGluZSB7XG5cdFx0XHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0fVxuLypcblx0ICogU2hvdyB0eXBlIGFyb3VuZCBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkIG9yIGJlaW5nIGhvdmVyZWQuXG5cdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLCAuY2sgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0fVxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgTk9UIHNlbGVjdGVkIChidXQgdGhlIGJ1dHRvbnMgYXJlIHZpc2libGVcblx0ICogYW5kIHN0aWxsIGNhbiBiZSBob3ZlcmVkKS5cblx0ICovXG4uY2sgLmNrLXdpZGdldDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXIpO1xuXHR9XG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLFxuXHQuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmUpO1xuXHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246OmFmdGVyLCAuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbGEoMCwwJSwxMDAlLDApIDAlLCBoc2xhKDAsMCUsMTAwJSwuMykgMTAwJSk7XG5cdFx0fVxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgXCJiZWZvcmVcIiBidXR0b24gd2hlbiB0aGUgd2lkZ2V0IGhhcyBhIHNlbGVjdGlvbiBoYW5kbGUuIEJlY2F1c2Ugc29tZSBzcGFjZVxuXHQgKiBpcyBjb25zdW1lZCBieSB0aGUgaGFuZGxlLCB0aGUgYnV0dG9uIG11c3QgYmUgbW92ZWQgc2xpZ2h0bHkgdG8gdGhlIHJpZ2h0IHRvIGxldCBpdCBicmVhdGhlLlxuXHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0fVxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGljaCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGUgdXNlciBuYXZpZ2F0ZXMgdXNpbmcgdGhlIGtleWJvYXJkLlxuXHQgKi9cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRoZWlnaHQ6IDFweDtcblx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1mYWtlLWNhcmV0LXB1bHNlIGxpbmVhciAxcyBpbmZpbml0ZSBub3JtYWwgZm9yd2FyZHM7XG5cblx0XHQvKlxuXHRcdCAqIFRoZSBzZW1pLXRyYW5zcGFyZW50LW91dGxpbmUrYmFja2dyb3VuZCBjb21ibyBpbXByb3ZlcyB0aGUgY29udHJhc3Rcblx0XHQgKiB3aGVuIHRoZSBiYWNrZ3JvdW5kIHVuZGVybmVhdGggdGhlIGZha2UgY2FyZXQgaXMgZGFyay5cblx0XHQgKi9cblx0XHRvdXRsaW5lOiBzb2xpZCAxcHggaHNsYSgwLCAwJSwgMTAwJSwgLjUpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdH1cbi8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IHdoZW4gdGhlIFwiZmFrZSBjYXJldFwiIGlzIGJsaW5raW5nIChlLmcuIHVwb24ga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdCAqIERlc3BpdGUgdGhlIHdpZGdldCBiZWluZyBwaHlzaWNhbGx5IHNlbGVjdGVkIGluIHRoZSBtb2RlbCwgaXRzIG91dGxpbmUgc2hvdWxkIGRpc2FwcGVhci5cblx0ICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUsXG5cdFx0LmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIge1xuXHRcdFx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuLypcblx0XHQgKiBXaGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyB2aXNpYmxlIHdlIHNpbXVsYXRlIHRoYXQgdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWRcblx0XHQgKiAoZGVzcGl0ZSBiZWluZyBwaHlzaWNhbGx5IHNlbGVjdGVkKSwgc28gdGhlIG91dGxpbmUgY29sb3Igc2hvdWxkIGJlIGZvciB0aGVcblx0XHQgKiB1bnNlbGVjdGVkIHdpZGdldC5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdFx0b3V0bGluZS1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdFx0fVxuLypcblx0XHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgYmxpbmtpbmcgKGUuZy4gdXBvbiBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0XHQgKiBJbiB0aGlzIHN0YXRlLCB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3b3VsZCBjb2xsaWRlIHdpdGggdGhlIGZha2UgY2FyZXRzIHNvIHRoZXkgc2hvdWxkIGRpc2FwcGVhci5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR9XG4vKlxuXHRcdCAqIEZha2UgaG9yaXpvbnRhbCBjYXJldCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBzZWxlY3Rpb24gaGFuZGxlLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSBoYW5kbGUgYmVjYXVzZSBpdCBpbnRlcnNlY3RzIHdpdGggdGhlIGNhcmV0IChhbmQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlIGFueXdheSkuXG5cdFx0ICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZS5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZS5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwXG5cdFx0XHRcdH1cbi8qXG5cdFx0ICogRmFrZSBob3Jpem9udGFsIGNhcmV0IGludGVncmF0aW9uIHdpdGggdGhlIHJlc2l6ZSBVSS4gV2hlbiB0aGUgY2FyZXQgaXMgdmlzaWJsZSwgc2ltcGx5XG5cdFx0ICogaGlkZSB0aGUgcmVzaXplIFVJIGJlY2F1c2UgaXQgY3JlYXRlcyB0b28gbXVjaCBub2lzZS4gSXQgY2FuIGJlIHZpc2libGUgd2hlbiB0aGUgdXNlclxuXHRcdCAqIGhvdmVycyB0aGUgd2lkZ2V0LCB0aG91Z2guXG5cdFx0ICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZS5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtcmVzaXplciA+IC5jay13aWRnZXRfX3Jlc2l6ZXIsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRcdG9wYWNpdHk6IDBcblx0XHR9XG4vKlxuICogU3R5bGVzIGZvciB0aGUgXCJiZWZvcmVcIiBidXR0b24gd2hlbiB0aGUgd2lkZ2V0IGhhcyBhIHNlbGVjdGlvbiBoYW5kbGUgaW4gYW4gUlRMIGVudmlyb25tZW50LlxuICogVGhlIHNlbGVjdGlvbiBoYW5kbGVyIGlzIGFsaWduZWQgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIGNyZWF0ZVxuICogYWRkaXRpb25hbCBzcGFjZSBmb3IgaXQgbmV4dCB0byB0aGUgXCJiZWZvcmVcIiBidXR0b24uXG4gKi9cbi5ja1tkaXI9XCJydGxcIl0gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRtYXJnaW4tbGVmdDogMDtcblx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuLypcbiAqIEhpZGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYXMgYSBjaGlsZCBvZiBhIHNlbGVjdGVkXG4gKiBuZXN0ZWQgZWRpdGFibGUgKGUuZy4gbXVsaXQtY2VsbCB0YWJsZSBzZWxlY3Rpb24pLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83MjYzLlxuICovXG4uY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiwgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuLypcbiAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIGJ1dCB0aGUgdXNlciBjbGlja2VkIG91dHNpZGUgb2YgdGhlIGVkaXRvciAoYmx1cnJlZCB0aGUgZWRpdG9yKS5cbiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpub3QoOmhvdmVyKSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYmx1cnJlZC1lZGl0YWJsZSk7XG59XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOm5vdCg6aG92ZXIpIHN2ZyAqIHtcblx0XHRzdHJva2U6IGhzbCgwLDAlLDYwJSk7XG5cdH1cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LWRhc2gge1xuXHQwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDEwO1xuXHR9XG5cdDIwJSwgMTAwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cdH1cbn1cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LXRpcC1kYXNoIHtcblx0MCUsIDIwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDc7XG5cdH1cblx0NDAlLCAxMDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0fVxufVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNvbmFyIHtcblx0MCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDAgaHNsYSh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpLCB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLXN0YXJ0LWFscGhhKSk7XG5cdH1cblx0NTAlIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpLCB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLWVuZC1hbHBoYSkpO1xuXHR9XG5cdDEwMCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGEpKTtcblx0fVxufVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtZmFrZS1jYXJldC1wdWxzZSB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cdDQ5JSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXHQ1MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0OTklIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgY29kZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDc4JSwgMC4zKTtcblx0cGFkZGluZzogLjE1ZW07XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWNvZGVfc2VsZWN0ZWQgIHtcblx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgNzglLCAwLjUpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBibG9ja3F1b3RlIHtcblx0LyogU2VlICMxMiAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtYmxvY2stcXVvdGUvaXNzdWVzLzE1ICovXG5cdHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuXHRwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuXG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDVweCBoc2woMCwgMCUsIDgwJSk7XG59XG5cbi5jay1jb250ZW50W2Rpcj1cInJ0bFwiXSBibG9ja3F1b3RlIHtcblx0Ym9yZGVyLWxlZnQ6IDA7XG5cdGJvcmRlci1yaWdodDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWJvb2ttYXJrLWljb24taG92ZXItZmlsbC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdC0tY2stYm9va21hcmstaWNvbi1zZWxlY3RlZC1maWxsLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHQtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pO1xuXHQtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWN1cnZlOiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xufVxuXG4uY2stYm9va21hcmsuY2std2lkZ2V0IHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cbi5jay1ib29rbWFyay5jay13aWRnZXQgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdHRyYW5zaXRpb246IGZpbGwgdmFyKC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWN1cnZlKTtcblx0XHR9XG5cbi5jay1ib29rbWFyay5jay13aWRnZXQ6aG92ZXIgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdFx0ZmlsbDogdmFyKC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yKTtcblx0XHRcdH1cblxuLmNrLWJvb2ttYXJrLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdFx0ZmlsbDogdmFyKC0tY2stYm9va21hcmstaWNvbi1zZWxlY3RlZC1maWxsLWNvbG9yKTtcblx0XHRcdH1cblxuLmNrLWJvb2ttYXJrLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdFx0LmNrLWJvb2ttYXJrLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHR9XG5cbi5jay1ib29rbWFyay5jay13aWRnZXQgLmNrLWJvb2ttYXJrX19pY29uIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdC8qIFRvIG1ha2UgaXQgYWxpZ24gd2l0aCB0ZXh0IGJhc2VsaW5lLiAqL1xuXHRcdFx0dG9wOiAtMC4xZW07XG5cdFx0fVxuXG4uY2stYm9va21hcmsuY2std2lkZ2V0IC5jay1ib29rbWFya19faWNvbiAuY2staWNvbiB7XG5cdFx0XHRcdGhlaWdodDogMS4yZW07XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYm9va21hcmstdmlldzpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG4uY2suY2stYm9va21hcmstZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stYm9va21hcmstZm9ybSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG5cdFx0LmNrLmNrLWJvb2ttYXJrLWZvcm0gLmNrLWJ1dHRvbixcblx0XHQuY2suY2stYm9va21hcmstZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWJvb2ttYXJrLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHRcdFx0LmNrLmNrLWJvb2ttYXJrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSB7XG5cdFx0XHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHR9XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5cbi5jay5jay1ib29rbWFyay1hY3Rpb25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmNrLmNrLWJvb2ttYXJrLWFjdGlvbnMgLmNrLWJvb2ttYXJrLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdG1heC13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXHRcdG1pbi13aWR0aDogM2VtO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblxuXHRcdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblxuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stYm9va21hcmstYWN0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cblx0XHQuY2suY2stYm9va21hcmstYWN0aW9ucyAuY2stYm9va21hcmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAwO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stYm9va21hcmstYWN0aW9ucy5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogQmFzZWQgb24gZGVmYXVsdCBDS0JveCB0aGVtZSBjb2xvcnMgKi9cblx0LS1jay1pbWFnZS1wcm9jZXNzaW5nLWhpZ2hsaWdodC1jb2xvcjogaHNsKDIyMCwgMTAlLCA5OCUpO1xuXHQtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvcjogaHNsKDIyMCwgMTAlLCA5MCUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuaW1hZ2UtcHJvY2Vzc2luZyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuaW1hZ2UtcHJvY2Vzc2luZzpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdFx0XHQ5MGRlZyxcblx0XHRcdFx0XHR2YXIoLS1jay1pbWFnZS1wcm9jZXNzaW5nLWJhY2tncm91bmQtY29sb3IpLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctaGlnaGxpZ2h0LWNvbG9yKSxcblx0XHRcdFx0XHR2YXIoLS1jay1pbWFnZS1wcm9jZXNzaW5nLWJhY2tncm91bmQtY29sb3IpXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuXG5cdFx0XHRcdGFuaW1hdGlvbjogY2staW1hZ2UtcHJvY2Vzc2luZy1hbmltYXRpb24gMnMgbGluZWFyIGluZmluaXRlO1xuXHRcdFx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuaW1hZ2UtcHJvY2Vzc2luZyBpbWcge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cbkBrZXlmcmFtZXMgY2staW1hZ2UtcHJvY2Vzc2luZy1hbmltYXRpb24ge1xuXHQwJSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XG5cdH1cbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcblx0ICogVmVydGljYWwgZHJvcCB0YXJnZXQgKGluIHRleHQpLlxuXHQgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHNwYW4ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0fVxuXG4vKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHdpZGdldCBiZWluZyBkcmFnZ2VkIChpdHMgcHJldmlldykuXG5cdCAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0Oi13ZWJraXQtZHJhZyA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQ6LXdlYmtpdC1kcmFnID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbi5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtbGluZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IHByZSB7XG5cdHBhZGRpbmc6IDFlbTtcblx0Y29sb3I6IGhzbCgwLCAwJSwgMjAuOCUpO1xuXHRiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCA3OCUsIDAuMyk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzclKTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXG5cdC8qIENvZGUgYmxvY2sgYXJlIGxhbmd1YWdlIGRpcmVjdGlvbuKAk2Fnbm9zdGljLiAqL1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcblxuXHR0YWItc2l6ZTogNDtcblx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXG5cdC8qIERvbid0IGluaGVyaXQgdGhlIHN0eWxlLCBlLmcuIHdoZW4gaW4gYSBibG9jayBxdW90ZS4gKi9cblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXG5cdC8qIERvbid0IGxldCB0aGUgY29kZSBiZSBzcXVhc2hlZCBlLmcuIHdoZW4gaW4gYSB0YWJsZSBjZWxsLiAqL1xuXHRtaW4td2lkdGg6IDIwMHB4O1xufVxuXG4uY2stY29udGVudCBwcmUgY29kZSB7XG5cdFx0YmFja2dyb3VuZDogdW5zZXQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHByZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgcHJlW2RhdGEtbGFuZ3VhZ2VdOjphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWxhbmd1YWdlKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvciB7XG5cdC8qIEFsbCB0aGUgZWxlbWVudHMgd2l0aGluIGAuY2stZWRpdG9yYCBhcmUgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIGl0LlxuXHQgSWYgYW55IGVsZW1lbnQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCB3aXRoIHJlc3BlY3QgdG8gdGhlIDxib2R5PiwgZXRjLixcblx0IGl0IG11c3QgbGFuZCBvdXRzaWRlIG9mIHRoZSBgLmNrLWVkaXRvcmAgaW4gRE9NLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1lZGl0b3IgLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXRvb2xiYXIge1xuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWMvaXNzdWVzLzYyICovXG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZW1vamktZ3JpZC10aWxlLXNpemU6IDI3cHg7XG59XG5cbi5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0bWF4LWhlaWdodDogbWluKDI2NXB4LCA0MHZoKTtcblxuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdH1cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX19ncmlkIHtcblx0XHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSksIDFmcikpO1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cbi5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fdGlsZSB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cbi5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fdGlsZSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0fVxuXG4uY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyAuY2stZW1vamlfX3RpbGU6Zm9jdXM6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyAuY2stZW1vamlfX3RpbGU6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHR9XG5cbi8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cbi5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fdGlsZSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lbW9qaV9fY2F0ZWdvcmllcy1saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG59XG5cbi5jay5jay1lbW9qaV9fY2F0ZWdvcmllcy1saXN0ID4gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHRib3JkZXItd2lkdGg6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtYmlnKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHR9XG5cbi5jay5jay1lbW9qaV9fY2F0ZWdvcmllcy1saXN0ID4gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LmNrLWVtb2ppX19jYXRlZ29yeS1pdGVtLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHR9XG5cbi5jay5jay1lbW9qaV9fY2F0ZWdvcmllcy1saXN0ID4gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0ID4gc3BhbiB7XG5cdFx0XHRtYXJnaW46IGF1dG87XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZW1vamlfX3NraW4tdG9uZSB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuLmNrLmNrLWVtb2ppX19za2luLXRvbmUgPiAuY2suY2stZHJvcGRvd24gLmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdFx0bWluLXdpZHRoOiAxZW07XG5cdFx0fVxuXG4uY2suY2stZW1vamlfX3NraW4tdG9uZSA+IC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHR3aWR0aDogaW5pdGlhbDtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuXG4uY2sgLmNrLmNrLWVtb2ppX19zZWFyY2gge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgZW1vamkgcGlja2VyIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtZW1vamktc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG5cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuLmNrLmNrLXBsYWNlaG9sZGVyLFxuLmNrIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jay5jay1wbGFjZWhvbGRlcjo6YmVmb3JlLCAuY2sgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7XG5cblx0XHQvKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzQ2OS4gKi9cblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzE5ODcuICovXG4uY2suY2stcmVhZC1vbmx5IC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi8qXG4gKiBSdWxlcyBmb3IgdGhlIGBjay1wbGFjZWhvbGRlcmAgYXJlIGxvYWRlZCBiZWZvcmUgdGhlIHJ1bGVzIGZvciBgY2stcmVzZXRfYWxsYCBpbiB0aGUgYmFzZSBDS0VkaXRvciA1IERMTCBidWlsZC5cbiAqIFRoaXMgZml4IG92ZXJ3cml0ZXMgdGhlIGluY29ycmVjdGx5IHNldCBgcG9zaXRpb246IHN0YXRpY2AgZnJvbSBgY2stcmVzZXRfYWxsYC5cbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMTQxOC5cbiAqL1xuLmNrLmNrLXJlc2V0X2FsbCAuY2stcGxhY2Vob2xkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIEVsZW1lbnRzIG1hcmtlZCBieSB0aGUgUmVuZGVyZXIgYXMgaGlkZGVuIHNob3VsZCBiZSBpbnZpc2libGUgaW4gdGhlIGVkaXRvci4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHNwYW5bZGF0YS1jay11bnNhZmUtZWxlbWVudF0ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stZmluZC1yZXN1bHQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcbn1cblxuLmNrLWZpbmQtcmVzdWx0X3NlbGVjdGVkIHtcblx0YmFja2dyb3VuZDogaHNsKDI5LCAxMDAlLCA2MCUpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cywgLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0LyogVGhlIGlucHV0cyBhcmVhIHN0eWxlcyAqL1xuXHR9XG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIsIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucy5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRoZSB2YWx1ZXMgc2hvdWxkIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBcIkZPTlRfU0laRV9QUkVTRVRfVU5JVFNcIiBvYmplY3QgaW4gdGhlIFwiL3NyYy9mb250c2l6ZS91dGlscy5qc1wiIGZpbGUuICovXG5cbi8qIFN0eWxlcyBzaG91bGQgYmUgcHJlZml4ZWQgd2l0aCB0aGUgYC5jay1jb250ZW50YCBjbGFzcy5cblNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NjM2ICovXG4uY2stY29udGVudCAudGV4dC10aW55IHtcblx0XHRmb250LXNpemU6IC43ZW07XG5cdH1cbi5jay1jb250ZW50IC50ZXh0LXNtYWxsIHtcblx0XHRmb250LXNpemU6IC44NWVtO1xuXHR9XG4uY2stY29udGVudCAudGV4dC1iaWcge1xuXHRcdGZvbnQtc2l6ZTogMS40ZW07XG5cdH1cbi5jay1jb250ZW50IC50ZXh0LWh1Z2Uge1xuXHRcdGZvbnQtc2l6ZTogMS44ZW07XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzEgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDIwcHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmcyIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAxN3B4O1xufVxuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMyAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNrW2NsYXNzKj1cImNrLWhlYWRpbmdfaGVhZGluZ1wiXSB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staGlnaGxpZ2h0LW1hcmtlci15ZWxsb3c6IGhzbCg2MCwgOTclLCA3MyUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItZ3JlZW46IGhzbCgxMjAsIDkzJSwgNjglKTtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLXBpbms6IGhzbCgzNDUsIDk2JSwgNzMlKTtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLWJsdWU6IGhzbCgyMDEsIDk3JSwgNzIlKTtcblx0LS1jay1oaWdobGlnaHQtcGVuLXJlZDogaHNsKDAsIDg1JSwgNDklKTtcblx0LS1jay1oaWdobGlnaHQtcGVuLWdyZWVuOiBoc2woMTEyLCAxMDAlLCAyNyUpO1xufVxuXG4uY2stY29udGVudCAubWFya2VyLXllbGxvdyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2staGlnaGxpZ2h0LW1hcmtlci15ZWxsb3cpO1xuXHR9XG4uY2stY29udGVudCAubWFya2VyLWdyZWVuIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtbWFya2VyLWdyZWVuKTtcblx0fVxuLmNrLWNvbnRlbnQgLm1hcmtlci1waW5rIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtbWFya2VyLXBpbmspO1xuXHR9XG4uY2stY29udGVudCAubWFya2VyLWJsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1tYXJrZXItYmx1ZSk7XG5cdH1cblxuLmNrLWNvbnRlbnQgLnBlbi1yZWQge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtcGVuLXJlZCk7XG5cblx0XHQvKiBPdmVycmlkZSBkZWZhdWx0IHllbGxvdyBiYWNrZ3JvdW5kIG9mIGA8bWFyaz5gIGZyb20gdXNlciBhZ2VudCBzdHlsZXNoZWV0ICovXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbi5jay1jb250ZW50IC5wZW4tZ3JlZW4ge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtcGVuLWdyZWVuKTtcblxuXHRcdC8qIE92ZXJyaWRlIGRlZmF1bHQgeWVsbG93IGJhY2tncm91bmQgb2YgYDxtYXJrPmAgZnJvbSB1c2VyIGFnZW50IHN0eWxlc2hlZXQgKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay1ob3Jpem9udGFsLWxpbmUge1xuXHQvKiBOZWNlc3NhcnkgdG8gcmVuZGVyIHByb3Blcmx5IG5leHQgdG8gZmxvYXRlZCBvYmplY3RzLCBlLmcuIHNpZGUgaW1hZ2UgY2FzZS4gKi9cblx0ZGlzcGxheTogZmxvdy1yb290O1xufVxuXG4uY2stY29udGVudCBociB7XG5cdG1hcmdpbjogMTVweCAwO1xuXHRoZWlnaHQ6IDRweDtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCA4NyUpO1xuXHRib3JkZXI6IDA7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRoZSBmZWF0dXJlIGNvbnRhaW5lci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQge1xuXHQvKiBHaXZlIHRoZSBlbWJlZCBzb21lIGFpci4gKi9cblx0LyogVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBlcXVhbCB0byAtLWNrLXNwYWNpbmctbGFyZ2UgdmFyaWFibGUgaWYgdXNlZCBpbiB0aGUgZWRpdG9yIGNvbnRleHRcblx0dG8gYXZvaWQgdGhlIGNvbnRlbnQganVtcGluZyAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLiAqL1xuXHRtYXJnaW46IDAuOWVtIGF1dG87XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxvdy1yb290O1xuXG5cdC8qIEdpdmUgdGhlIGh0bWwgZW1iZWQgc29tZSBtaW5pbWFsIHdpZHRoIGluIHRoZSBjb250ZW50IHRvIHByZXZlbnQgdGhlbVxuXHRmcm9tIGJlaW5nIFwic3F1YXNoZWRcIiBpbiB0aWdodCBzcGFjZXMsIGUuZy4gaW4gdGFibGUgY2VsbHMgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgzMzEpICovXG5cdG1pbi13aWR0aDogMTVlbTtcblxuXHQvKiBEb24ndCBpbmhlcml0IHRoZSBzdHlsZSwgZS5nLiB3aGVuIGluIGEgYmxvY2sgcXVvdGUuICovXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXHQvKiAtLS0tLSBFbWViZWQgbGFiZWwgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG59XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkOjpiZWZvcmUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgY29udGVudCBkb2VzIG5vdCBjb3ZlciB0aGUgbGFiZWwuICovXG5cdFx0ei1pbmRleDogMTtcblx0fVxuLyogLS0tLS0gRW1lYmVkIGludGVybmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXG5cdFx0LyogR2l2ZXMgc3BhY2luZyB0byB0aGUgc21hbGwgcmVuZGVyYWJsZSBlbGVtZW50cywgc28gdGhleSBhbHdheXMgY292ZXIgdGhlIHBsYWNlaG9sZGVyLiAqL1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDdweDtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctcGxhY2Vob2xkZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWh0bWwtb2JqZWN0LWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoOiAxcHg7XG59XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdC8qIExlYXZlIHNwYWNlIGZvciBsYWJlbCAqL1xuXHRwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtdGlueSkgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdG1pbi13aWR0aDogY2FsYyg3NnB4ICsgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xufVxuXG4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpIGRhc2hlZCB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQ6OmJlZm9yZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1odG1sLW9iamVjdC1lbWJlZC1sYWJlbCk7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDYwJSk7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXRpbnkpICsgdmFyKC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0fVxuXG4vKiBNYWtlIHNwYWNlIGZvciBsYWJlbC4gKi9cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdG1hcmdpbi1sZWZ0OiA1MHB4O1xuXHR9XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQgLmh0bWwtb2JqZWN0LWVtYmVkX19jb250ZW50IHtcblx0XHQvKiBEaXNhYmxlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBlbWJlZCBjb250ZW50ICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblxuZGl2LmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdG1hcmdpbjogMWVtIGF1dG87XG59XG5cbnNwYW4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTclKTtcblx0LS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLXRleHQ6IGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6IGhzbCg1MmRlZyAxMDAlIDUwJSk7XG59XG5cbi8qIENvbnRlbnQgc3R5bGVzICovXG4uY2stY29udGVudCAuaW1hZ2UgPiBmaWdjYXB0aW9uIHtcblx0ZGlzcGxheTogdGFibGUtY2FwdGlvbjtcblx0Y2FwdGlvbi1zaWRlOiBib3R0b207XG5cdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLXRleHQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAuNmVtO1xuXHRmb250LXNpemU6IC43NWVtO1xuXHRvdXRsaW5lLW9mZnNldDogLTFweDtcblxuXHQvKiBJbXByb3ZlIHBsYWNlaG9sZGVyIHJlbmRlcmluZyBpbiBoaWdoLWNvbnN0cmFzdCBtb2RlIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNykuICovXG59XG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuLmNrLWNvbnRlbnQgLmltYWdlID4gZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0Y29sb3I6IHVuc2V0O1xufVxuXHR9XG5cbi8qIEVkaXRpbmcgc3R5bGVzICovXG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgPiBmaWdjYXB0aW9uLmltYWdlX19jYXB0aW9uX2hpZ2hsaWdodGVkIHtcblx0XHRhbmltYXRpb246IGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IC42cyBlYXNlLW91dDtcblx0XHR9XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgPiBmaWdjYXB0aW9uLmltYWdlX19jYXB0aW9uX2hpZ2hsaWdodGVkIHtcblx0XHRhbmltYXRpb246IG5vbmU7XG59XG5cdH1cblxuQGtleWZyYW1lcyBjay1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodCB7XG5cdDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQpO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcblx0fVxufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCB7XG5cdHdpZHRoOiA0MDBweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcbn1cblxuLmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBQcmVzZXJ2ZSBhc3BlY3QgcmF0aW8gb2YgdGhlIHJlc2l6ZWQgaW1hZ2UgYWZ0ZXIgaW50cm9kdWNpbmcgaW1hZ2UgaGVpZ2h0IGF0dHJpYnV0ZS4gKi9cbi5jay1jb250ZW50IGltZy5pbWFnZV9yZXNpemVkIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2VfcmVzaXplZCB7XG5cdG1heC13aWR0aDogMTAwJTtcblx0Lypcblx0VGhlIGA8ZmlndXJlPmAgZWxlbWVudCBmb3IgcmVzaXplZCBpbWFnZXMgbXVzdCBub3QgdXNlIGBkaXNwbGF5OnRhYmxlYCBhcyBicm93c2VycyBkbyBub3Qgc3VwcG9ydCBgbWF4LXdpZHRoYCBmb3IgaXQgd2VsbC5cblx0U2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQwMTk2MDQvY2hyb21lLXNhZmFyaS1pZ25vcmluZy1tYXgtd2lkdGgtaW4tdGFibGUvMTQ0MjA2OTEjMTQ0MjA2OTEgZm9yIG1vcmUuXG5cdEZvcnR1bmF0ZWx5LCBzaW5jZSB3ZSBjb250cm9sIHRoZSB3aWR0aCwgdGhlcmUgaXMgbm8gcmlzayB0aGF0IHRoZSBpbWFnZSB3aWxsIGxvb2sgYmFkLlxuXHQqL1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQgaW1nIHtcblx0XHQvKiBGb3IgcmVzaXplZCBpbWFnZXMgaXQgaXMgdGhlIGA8ZmlndXJlPmAgZWxlbWVudCB0aGF0IGRldGVybWluZXMgdGhlIGltYWdlIHdpZHRoLiAqL1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkID4gZmlnY2FwdGlvbiB7XG5cdFx0LyogVGhlIGA8ZmlndXJlPmAgZWxlbWVudCB1c2VzIGBkaXNwbGF5OmJsb2NrYCwgc28gYDxmaWdjYXB0aW9uPmAgYWxzbyBoYXMgdG8uICovXG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLyogVGhlIHJlc2l6ZWQgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIHJlc3BlY3QgaXRzIHBhcmVudCBzaXplLlxuXHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgdGQgLmltYWdlLWlubGluZS5pbWFnZV9yZXNpemVkIGltZywgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgdGggLmltYWdlLWlubGluZS5pbWFnZV9yZXNpemVkIGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dC5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2ljb24ge1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dC5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2ljb24ge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHR3aWR0aDogNGVtO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cblx0XHQuY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cblx0XHQuY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZzogMS41ZW07XG5cdC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmc6IGNhbGModmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZykgLyAyKTtcbn1cblxuLyogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNjMxNyAqL1xuXG4vKiBQcm92aWRlcyBhIG1pbmltYWwgc2lkZSBtYXJnaW4gZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBhbGlnbmVkIGltYWdlcywgc28gdGhhdCB0aGUgdXNlciBoYXMgYSB2aXN1YWwgZmVlZGJhY2tcblx0XHRjb25maXJtaW5nIHN1Y2Nlc3NmdWwgYXBwbGljYXRpb24gb2YgdGhlIHN0eWxlIGlmIGltYWdlIHdpZHRoIGV4Y2VlZHMgdGhlIGVkaXRvcidzIHNpemUuXG5cdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkzNDIgKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLWxlZnQsXG5cdFx0LmNrLWNvbnRlbnQgLmltYWdlLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1heC13aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZykpO1xuXHRcdH1cblxuLyogQWxsb3dzIGRpc3BsYXlpbmcgbXVsdGlwbGUgZmxvYXRpbmcgaW1hZ2VzIGluIHRoZSBzYW1lIGxpbmUuXG5cdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxODMjaXNzdWVjb21tZW50LTgwNDk4ODEzMiAqL1xuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCxcblx0XHQuY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0Y2xlYXI6IG5vbmU7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtc2lkZSB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0XHRtYXgtd2lkdGg6IDUwJTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdH1cblxuLyogU2ltdWxhdGVzIG1hcmdpbiBjb2xsYXBzaW5nIHdpdGggdGhlIHByZWNlZGluZyBwYXJhZ3JhcGgsIHdoaWNoIGRvZXMgbm90IHdvcmsgZm9yIHRoZSBmbG9hdGluZyBlbGVtZW50cy4gKi9cblxuLmNrLWNvbnRlbnQgcCArIC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHQuY2stY29udGVudCBwICsgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0LFxuXHQuY2stY29udGVudCBwICsgLmltYWdlLmltYWdlLXN0eWxlLXNpZGUge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLWlubGluZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHRcdC5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLWlubGluZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLWlubGluZS5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuLyogVGhlIGJ1dHRvbiBzaG91bGQgZGlzcGxheSBhcyBhIHJlZ3VsYXIgZHJvcC1kb3duIGlmIHRoZSBhY3Rpb24gYnV0dG9uXG5cdGlzIGZvcmNlZCB0byBmaXJlIHRoZSBzYW1lIGFjdGlvbiBhcyB0aGUgYXJyb3cgYnV0dG9uLiAqL1xuXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3ZlciksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcik6OmFmdGVyIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3Blbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG5cdFx0LmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLFxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuLyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIC5jay1wcm9ncmVzcy1iYXIsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUgLmNrLXByb2dyZXNzLWJhciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0Lypcblx0ICogU21hbGxlciBpbWFnZXMgc2hvdWxkIGhhdmUgdGhlIGljb24gY2xvc2VyIHRvIHRoZSBib3JkZXIuXG5cdCAqIE1hdGNoIHRoZSBpY29uIHBvc2l0aW9uIHdpdGggdGhlIGxpbmtlZCBpbWFnZSBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgbGluayBpbWFnZSBmZWF0dXJlLlxuXHQgKi9cblx0dG9wOiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdHJpZ2h0OiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0ei1pbmRleDogMTtcbn1cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uOjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xufVxuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXI6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5pbWFnZSB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIGltYWdlLiBDZW50ZXIgaW1hZ2UgYnkgZGVmYXVsdC4gKi9cblx0XHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHQgXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdFx0bWFyZ2luOiAwLjllbSBhdXRvO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjYXB0aW9uIHdpbGwgYmUgZGlzcGxheWVkIHByb3Blcmx5IChTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE4NzApLiAqL1xuXHRcdG1pbi13aWR0aDogNTBweDtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UgaW1nIHtcblx0XHRcdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgbWFyZ2lucyBjYXVzZWQgYnkgbGluZS1oZWlnaHQgKHNlZSAjNDQpLiAqL1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdC8qIENlbnRlciB0aGUgaW1hZ2UgaWYgaXRzIHdpZHRoIGlzIHNtYWxsZXIgdGhhbiB0aGUgY29udGVudCdzIHdpZHRoLiAqL1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgbmV2ZXIgZXhjZWVkcyB0aGUgc2l6ZSBvZiB0aGUgcGFyZW50IGNvbnRhaW5lciAoY2tlZGl0b3IvY2tlZGl0b3I1LXVpIzY3KS4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBpcyBuZXZlciBzbWFsbGVyIHRoYW4gdGhlIHBhcmVudCBjb250YWluZXIgKFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTMwMCkuICovXG5cdFx0XHRtaW4td2lkdGg6IDEwMCU7XG5cblx0XHRcdC8qIEtlZXAgcHJvcG9ydGlvbnMgb2YgdGhlIGJsb2NrIGltYWdlIGlmIHRoZSBoZWlnaHQgaXMgc2V0IGFuZCB0aGUgaW1hZ2UgaXMgd2lkZXIgdGhhbiB0aGUgZWRpdG9yIHdpZHRoLlxuXHRcdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0NTQyLiAqL1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLWlubGluZSB7XG5cdFx0Lypcblx0XHQgKiBOb3JtYWxseSwgdGhlIC5pbWFnZS1pbmxpbmUgd291bGQgaGF2ZSBcImRpc3BsYXk6IGlubGluZS1ibG9ja1wiIGFuZCBcImltZyB7IHdpZHRoOiAxMDAlIH1cIiAodG8gZm9sbG93IHRoZSB3cmFwcGVyIHdoaWxlIHJlc2l6aW5nKS5cblx0XHQgKiBVbmZvcnR1bmF0ZWx5LCB0b2dldGhlciB3aXRoIFwic3Jjc2V0XCIsIGl0IGdldHMgYXV0b21hdGljYWxseSBzdHJldGNoZWQgdXAgdG8gdGhlIHdpZHRoIG9mIHRoZSBlZGl0aW5nIHJvb3QuXG5cdFx0ICogVGhpcyBzdHJhbmdlIGJlaGF2aW9yIGRvZXMgbm90IGhhcHBlbiB3aXRoIGlubGluZS1mbGV4LlxuXHRcdCAqL1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG5cdFx0LyogV2hpbGUgYmVpbmcgcmVzaXplZCwgZG9uJ3QgYWxsb3cgdGhlIGltYWdlIHRvIGV4Y2VlZCB0aGUgd2lkdGggb2YgdGhlIGVkaXRpbmcgcm9vdC4gKi9cblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHQvKiBUaGlzIGlzIHJlcXVpcmVkIGJ5IFNhZmFyaSB0byByZXNpemUgaW1hZ2VzIGluIGEgc2Vuc2libGUgd2F5LiBXaXRob3V0IHRoaXMsIHRoZSBicm93c2VyIGJyZWFrcyB0aGUgcmF0aW8uICovXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0XHQvKiBXaGVuIHRoZSBwaWN0dXJlIGlzIHByZXNlbnQgaXQgbXVzdCBhY3QgYXMgYSBmbGV4IGNvbnRhaW5lciB0byBsZXQgdGhlIGltZyByZXNpemUgcHJvcGVybHkgKi9cblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lIHBpY3R1cmUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHR9XG5cbi8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCwgaXQgbXVzdCBhY3QgbGlrZSBhIHJlc2l6YWJsZSBpbWcuICovXG5cbi5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUgcGljdHVyZSxcblx0XHQuY2stY29udGVudCAuaW1hZ2UtaW5saW5lIGltZyB7XG5cdFx0XHQvKiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIGltZyB0byBzcGFuIHRoZSBlbnRpcmUgLmltYWdlLWlubGluZSB3cmFwcGVyIGFuZCB0byByZXNpemUgcHJvcGVybHkuICovXG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRmbGV4LXNocmluazogMTtcblxuXHRcdFx0LyogUHJldmVudHMgb3ZlcmZsb3dpbmcgdGhlIGVkaXRpbmcgcm9vdCBib3VuZGFyaWVzIHdoZW4gYW4gaW5saW5lIGltYWdlIGlzIHZlcnkgd2lkZS4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cbi8qXG5cdCAqIEluaGVydGl0IHRoZSBjb250ZW50IHN0eWxlcyBwYWRkaW5nIG9mIHRoZSA8ZmlnY2FwdGlvbj4gaW4gY2FzZSB0aGUgaW50ZWdyYXRpb24gb3ZlcnJpZGVzIGB0ZXh0LWFsaWduOiBjZW50ZXJgXG5cdCAqIG9mIGAuaW1hZ2VgIChlLmcuIHRvIHRoZSBsZWZ0L3JpZ2h0KS4gVGhpcyBlbnN1cmVzIHRoZSBwbGFjZWhvbGRlciBzdGF5cyBhdCB0aGUgcGFkZGluZyBqdXN0IGxpa2UgdGhlIG5hdGl2ZVxuXHQgKiBjYXJldCBkb2VzLCBhbmQgbm90IGF0IHRoZSBlZGdlIG9mIDxmaWdjYXB0aW9uPi5cblx0ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG4vKlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTUxMTUuXG5cdCAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2Uge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2UgYWx3YXlzIHN0YXlzIG9uIHRvcCBvZiBpdHMgc2libGluZ3MuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMDguXG5cdFx0ICovXG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdH1cblxuLypcblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1MTE1LlxuXHQgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZSB7XG5cdFx0ei1pbmRleDogMTtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBzZWxlY3RlZCBpbmxpbmUgaW1hZ2UgYWx3YXlzIHN0YXlzIG9uIHRvcCBvZiBpdHMgc2libGluZ3MuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMDguXG5cdFx0ICovXG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZS5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0ei1pbmRleDogMjtcblxuXHRcdFx0Lypcblx0XHRcdCAqIE1ha2Ugc3VyZSB0aGUgbmF0aXZlIGJyb3dzZXIgc2VsZWN0aW9uIHN0eWxlIGlzIG5vdCBkaXNwbGF5ZWQuXG5cdFx0XHQgKiBJbmxpbmUgaW1hZ2Ugd2lkZ2V0cyBoYXZlIHRoZWlyIG93biBzdHlsZXMgZm9yIHRoZSBzZWxlY3RlZCBzdGF0ZSBhbmRcblx0XHRcdCAqIGxlYXZpbmcgdGhpcyB1cCB0byB0aGUgYnJvd3NlciBpcyBhc2tpbmcgZm9yIGEgdmlzdWFsIGNvbGxpc2lvbi5cblx0XHRcdCAqL1xuXHRcdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZS5jay13aWRnZXRfc2VsZWN0ZWQgOjpzZWxlY3Rpb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG4vKiBLZWVwIHByb3BvcnRpb25zIG9mIHRoZSBpbmxpbmUgaW1hZ2UgaWYgdGhlIGhlaWdodCBpcyBzZXQgYW5kIHRoZSBpbWFnZSBpcyB3aWRlciB0aGFuIHRoZSBlZGl0b3Igd2lkdGguXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDU0Mi4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZSBpbWcge1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxuXG4vKiBUaGUgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIGhhdmUgaXRzIG9yaWdpbmFsIHNpemUgaWYgbm90IHJlc2l6ZWQuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB0ZCAuaW1hZ2UtaW5saW5lIGltZywgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgdGggLmltYWdlLWlubGluZSBpbWcge1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgaW1nLmltYWdlX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBMaW5rZWQgaW1hZ2UgaW5kaWNhdG9yICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGZpZ3VyZS5pbWFnZSA+IGE6OmFmdGVyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSBhIHNwYW4uaW1hZ2UtaW5saW5lOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpbmstYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1saW5rLWFjdGlvbnMge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGluay1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5jay5jay1saW5rLWZvcm0gLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1saW5rLWZvcm0ge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuXHRcdC5jay5jay1saW5rLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay1saW5rLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG5cbi8qXG4gKiBTdHlsZSBsaW5rIGZvcm0gZGlmZmVyZW50bHkgd2hlbiBtYW51YWwgZGVjb3JhdG9ycyBhcmUgYXZhaWxhYmxlLlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWxpbmsvaXNzdWVzLzE4Ni5cbiAqL1xuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwge1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHQvKlxuXHQgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIGluIHRoZSByZXNwb25zaXZlIG1vZGUgb3Igbm90LCBpZiB0aGVyZSBhcmUgZGVjb3JhdG9yIGJ1dHRvbnNcblx0ICoga2VlcCB0aGUgdG9wIG1hcmdpbiBvZiBhY3Rpb24gYnV0dG9ucyBtZWRpdW0uXG5cdCAqL1xufVxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWJ1dHRvbi5jay1idXR0b24tc2F2ZSxcblx0XHQuY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2stYnV0dG9uLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWxpc3QtYm9ndXMtcGFyYWdyYXBoIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0ZGlzcGxheTogZ3JpZDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgb2wge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG59XG5cbi5jay1jb250ZW50IG9sIG9sIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWxhdGluO1xuXHR9XG5cbi5jay1jb250ZW50IG9sIG9sIG9sIHtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG5cdFx0fVxuXG4uY2stY29udGVudCBvbCBvbCBvbCBvbCB7XG5cdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItbGF0aW47XG5cdFx0XHR9XG5cbi5jay1jb250ZW50IG9sIG9sIG9sIG9sIG9sIHtcblx0XHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuO1xuXHRcdFx0XHR9XG5cbi5jay1jb250ZW50IHVsIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xufVxuXG4uY2stY29udGVudCB1bCB1bCB7XG5cdFx0bGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG5cdH1cblxuLmNrLWNvbnRlbnQgdWwgdWwgdWwge1xuXHRcdFx0bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG5cdFx0fVxuXG4uY2stY29udGVudCB1bCB1bCB1bCB1bCB7XG5cdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplOiAxNnB4O1xufVxuXG4vKlxuICogVG8tZG8gbGlzdCBjb250ZW50IHN0eWxlcy5cbiAqL1xuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4uY2stY29udGVudCAudG9kby1saXN0IGxpIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHR9XG4uY2stY29udGVudCAudG9kby1saXN0IGxpIC50b2RvLWxpc3Qge1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdH1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dCB7XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHQvKiBOZWVkZWQgb24gaU9TICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHQvKiBMVFIgc3R5bGVzICovXG5cdFx0XHRsZWZ0OiAtMjVweDtcblx0XHRcdG1hcmdpbi1yaWdodDogLTE1cHg7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0LyogUlRMIHN0eWxlcyAqL1xuXHRcdH1cbi5jay1jb250ZW50W2Rpcj1ydGxdIC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dCB7XG5cdFx0bGVmdDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0cmlnaHQ6IC0yNXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAtMTVweDtcblx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0OjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDIwJSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRyYW5zaXRpb246IDI1MG1zIGVhc2UtaW4tb3V0IGJveC1zaGFkb3c7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6OmJlZm9yZSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cdFx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0OjphZnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0LyogQ2FsY3VsYXRlIHRpY2sgcG9zaXRpb24sIHNpemUgYW5kIGJvcmRlci13aWR0aCBwcm9wb3J0aW9uYWwgdG8gdGhlIGNoZWNrbWFyayBzaXplLiAqL1xuXHRcdGxlZnQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAzICk7XG5cdFx0dG9wOiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0d2lkdGg6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHRoZWlnaHQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAyLjYgKTtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0W2NoZWNrZWRdOjpiZWZvcmUge1xuXHRcdFx0YmFja2dyb3VuZDogaHNsKDEyNiwgNjQlLCA0MSUpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0W2NoZWNrZWRdOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCAudG9kby1saXN0X19sYWJlbF9fZGVzY3JpcHRpb24ge1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsLnRvZG8tbGlzdF9fbGFiZWxfd2l0aG91dC1kZXNjcmlwdGlvbiBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXG4vKlxuICogVG8tZG8gbGlzdCBlZGl0aW5nIHZpZXcgc3R5bGVzLlxuICovXG4vKlxuXHQgKiBUby1kbyBsaXN0IHNob3VsZCBiZSBpbnRlcmFjdGl2ZSBvbmx5IGR1cmluZyB0aGUgZWRpdGluZ1xuXHQgKiAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMjA5MCkuXG5cdCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQsXG5cdC5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0IHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0OmhvdmVyOjpiZWZvcmUsIC5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0OmhvdmVyOjpiZWZvcmUge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXHRcdH1cbi8qXG5cdCAqIERvY3VtZW50IExpc3RzIC0gZWRpdGluZyB2aWV3IGhhcyBhbiBhZGRpdGlvbmFsIHNwYW4gYXJvdW5kIGNoZWNrYm94LlxuXHQgKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0IHtcblx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR3aWR0aDogdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSk7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHQvKiBOZWVkZWQgb24gaU9TICovXG5cdFx0Ym9yZGVyOiAwO1xuXHRcdC8qIExUUiBzdHlsZXMgKi9cblx0XHRsZWZ0OiAtMjVweDtcblx0XHRtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuXHRcdHJpZ2h0OiAwO1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdC8qIFJUTCBzdHlsZXMgKi9cblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudFtkaXI9cnRsXSAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdGxlZnQ6IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdHJpZ2h0OiAtMjVweDtcblx0XHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0OjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDIwJSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRyYW5zaXRpb246IDI1MG1zIGVhc2UtaW4tb3V0IGJveC1zaGFkb3c7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dDo6YmVmb3JlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dDo6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRjb250ZW50OiAnJztcblxuXHRcdC8qIENhbGN1bGF0ZSB0aWNrIHBvc2l0aW9uLCBzaXplIGFuZCBib3JkZXItd2lkdGggcHJvcG9ydGlvbmFsIHRvIHRoZSBjaGVja21hcmsgc2l6ZS4gKi9cblx0XHRsZWZ0OiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gMyApO1xuXHRcdHRvcDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDUuMyApO1xuXHRcdHdpZHRoOiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0aGVpZ2h0OiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gMi42ICk7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMCBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gOCApIGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgMDtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0W2NoZWNrZWRdOjpiZWZvcmUge1xuXHRcdFx0YmFja2dyb3VuZDogaHNsKDEyNiwgNjQlLCA0MSUpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXRbY2hlY2tlZF06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5tZWRpYSB7XG5cdC8qIERvbid0IGFsbG93IGZsb2F0ZWQgY29udGVudCBvdmVybGFwIHRoZSBtZWRpYS5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTMgKi9cblx0Y2xlYXI6IGJvdGg7XG5cblx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIG1lZGlhLiAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gMDtcblxuXHQvKiBNYWtlIHN1cmUgbWVkaWEgaXMgbm90IG92ZXJyaWRlbiB3aXRoIEJvb3RzdHJhcCBkZWZhdWx0IGBmbGV4YCB2YWx1ZS5cblx0U2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMzczLiAqL1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHQvKiBHaXZlIHRoZSBtZWRpYSBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoIzQ0KSAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwge1xuXHRcdFx0LyogT3RoZXJ3aXNlIHRoZSBVUkwgd2lsbCBvdmVyZmxvdyB3aGVuIHRoZSBjb250ZW50IGlzIHZlcnkgbmFycm93LiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZ29vLmdsL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuZ29vZ2xlLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiBhcyBsb25nIGFzIHRoZSBlZGl0b3IgaXMgbm90IHJlYWTigJNvbmx5LlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2stbWVkaWFfX3dyYXBwZXIgPiAqOm5vdCguY2stbWVkaWFfX3BsYWNlaG9sZGVyKSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiB3aGVuIHRoZSB3aWRnZXQgaXMgbm90IHNlbGVjdGVkIChlLmcuIHRvIGF2b2lkIG9wZW5pbmcgbGlua3MgYnkgYWNjaWRlbnQpLlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvMTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay12ZXJ0aWNhbC1mb3JtIC5jay1idXR0b246OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHdpZHRoOiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogLTFweDtcblx0XHR0b3A6IC0xcHg7XG5cdFx0Ym90dG9tOiAtMXB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblxuLmNrLXZlcnRpY2FsLWZvcm0gLmNrLWJ1dHRvbjpmb2N1czo6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWJ1dHRvbjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogLTFweDtcblx0XHRcdFx0dG9wOiAtMXB4O1xuXHRcdFx0XHRib3R0b206IC0xcHg7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHR9XG5cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWJ1dHRvbjpmb2N1czo6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZWRpYS1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHR3aWR0aDogNDAwcHg7XG59XG5cbi5jay5jay1tZWRpYS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG4uY2suY2stbWVkaWEtZm9ybSAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLmNrLmNrLW1lZGlhLWZvcm0gLmNrLWlucHV0IHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG5cdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudGlvbi1saXN0LW1heC1oZWlnaHQ6IDMwMHB4O1xufVxuXG4uY2suY2stbWVudGlvbnMge1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1tZW50aW9uLWxpc3QtbWF4LWhlaWdodCk7XG5cblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHQvKiBQcmV2ZW50IHVubmVjZXNzYXJ5IGhvcml6b250YWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblxuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG5cdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgdmVydGljYWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG59XG5cbi5jay5jay1tZW50aW9ucyA+IC5jay1saXN0X19pdGVtIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZDogMjA4LCAwJSwgNTElO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLW91dGxpbmU6IGhzbCgwZGVnIDAlIDc1JSk7XG5cdC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtc2hhZG93OiBoc2woMGRlZyAwJSAwJSAvIDExJSk7XG5cdC0tY2stY29sb3ItbWluaW1hcC1wcm9ncmVzcy1iYWNrZ3JvdW5kOiBoc2woMCwwJSw0MCUpO1xufVxuXG4uY2suY2stbWluaW1hcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG5cbi5jay5jay1taW5pbWFwLFxuXHQuY2suY2stbWluaW1hcCBpZnJhbWUge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG4uY2suY2stbWluaW1hcCBpZnJhbWUge1xuXHRcdGJvcmRlcjogMDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLW91dGxpbmUpO1xuXHRcdGJveC1zaGFkb3c6IDAgMnB4IDVweCB2YXIoLS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1zaGFkb3cpO1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHRvcDogMDtcblx0XHRiYWNrZ3JvdW5kOiBoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC4yICk7XG5cdFx0ei1pbmRleDogMTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2UtaW4tb3V0O1xuXHR9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6aHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuMyApO1xuXHRcdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZyxcblx0XHQuY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlci5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyX2RyYWdnaW5nOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6aHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuNCApO1xuXHRcdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZzo6YWZ0ZXIsIC5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmc6aG92ZXI6OmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXI6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1wcm9ncmVzcykgXCIlXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDVweDtcblx0XHRcdHJpZ2h0OiA1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1taW5pbWFwLXByb2dyZXNzLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogMnB4IDRweDtcblx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zIGVhc2UtaW4tb3V0O1xuXHRcdH1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXI6OmFmdGVyIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWsge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGNsZWFyOiBib3RoO1xuXHRwYWRkaW5nOiA1cHggMDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrX19sYWJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblx0cGFkZGluZzogLjNlbSAuNmVtO1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cdGZvbnQtc2l6ZTogMC43NWVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Y29sb3I6IGhzbCgwLCAwJSwgMjAlKTtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym94LXNoYWRvdzogMnB4IDJweCAxcHggaHNsYSgwLCAwJSwgMCUsIDAuMTUpO1xuXG5cdC8qIERpc2FibGUgdGhlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCB0aGUgbGFiZWwgdGV4dCBieSB0aGUgdXNlci4gKi9cblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLyogRG8gbm90IHNob3cgdGhlIHBhZ2UgYnJlYWsgZWxlbWVudCBpbnNpZGUgdGhlIHByaW50IHByZXZpZXcgd2luZG93LiAqL1xuQG1lZGlhIHByaW50IHtcblx0LmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWsge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHRcdC5jay1jb250ZW50IC5wYWdlLWJyZWFrOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHQvKlxuXHQgKiBGcm9tIHRpbWUgdG8gdGltZSBwbGFjaW5nIHBhZ2UtYnJlYWsgZGlyZWN0bHkgYWZ0ZXIgYSBibG9jayBlbGVtZW50IHdpdGggbWFyZ2luIGNhdXNlcyBhcHBlbmRpbmcgYSBuZXcgYmxhbmsgcGFnZSBpbiBwYWdpbmF0aW9uIG1vZGUuXG5cdCAqIFJlbW92aW5nIG1hcmdpbi1ib3R0b20gZnJvbSB0aGUgYmxvY2sgZWxlbWVudCBmaXhlcyB0aGF0IGlzc3VlIGFuZCB0aGUgbWFyZ2luIGlzIG5vdCBiZWluZyBtb3ZlZCB0byB0aGUgbmV4dCBibGFuayBwYWdlLlxuXHQgKlxuXHQgKiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSBwYWdpbmF0aW9uIHBsdWdpbnMuXG5cdCAqL1xuXHQuY2stY29udGVudCAqOmhhcygrIC5wYWdlLWJyZWFrKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDQ2JSk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhZGRyZXNzIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFkZHJlc3Mge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+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+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWluZm8ge1xuXHRcdFx0Z3JpZC1hcmVhOiAzIC8gMSAvIDQgLyAyO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLWNvbHVtbnM6IDM7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNrLXN0eWxlLXBhbmVsLWNvbHVtbnMpLGF1dG8pO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xufVxuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC50YWJsZSB7XG5cdC8qIEdpdmUgdGhlIHRhYmxlIHdpZGdldCBzb21lIGFpciBhbmQgY2VudGVyIGl0IGhvcml6b250YWxseSAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gYXV0bztcblx0ZGlzcGxheTogdGFibGU7XG59XG5cbi5jay1jb250ZW50IC50YWJsZSB0YWJsZSB7XG5cdFx0LyogVGhlIHRhYmxlIGNlbGxzIHNob3VsZCBoYXZlIHNsaWdodCBib3JkZXJzICovXG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0XHRib3JkZXItc3BhY2luZzogMDtcblxuXHRcdC8qIFRhYmxlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIHNldCBvbiB0aGUgcGFyZW50IDxmaWd1cmU+LiBNYWtlIHN1cmUgdGhlIHRhYmxlIGluc2lkZSBzdHJldGNoZXNcblx0XHR0byB0aGUgZnVsbCBkaW1lbnNpb25zIG9mIHRoZSBjb250YWluZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzYxODYpLiAqL1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRcdC8qIFRoZSBvdXRlciBib3JkZXIgb2YgdGhlIHRhYmxlIHNob3VsZCBiZSBzbGlnaHRseSBkYXJrZXIgdGhhbiB0aGUgaW5uZXIgbGluZXMuXG5cdFx0QWxzbyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10YWJsZS9pc3N1ZXMvNTAuICovXG5cdFx0Ym9yZGVyOiAxcHggZG91YmxlIGhzbCgwLCAwJSwgNzAlKTtcblx0fVxuXG4uY2stY29udGVudCAudGFibGUgdGFibGUgdGQsXG5cdFx0LmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHRoIHtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0cGFkZGluZzogLjRlbTtcblxuXHRcdFx0LyogVGhlIGJvcmRlciBpcyBpbmhlcml0ZWQgZnJvbSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUgc3R5bGVzLCBzbyB0aGVvcmV0aWNhbGx5IGl0J3Mgbm90IG5lY2Vzc2FyeSBoZXJlLlxuXHRcdFx0SG93ZXZlciwgdGhlIGJvcmRlciBpcyBhIGNvbnRlbnQgc3R5bGUsIHNvIGl0IHNob3VsZCB1c2UgLmNrLWNvbnRlbnQgKHNvIGl0IHdvcmtzIG91dHNpZGUgdGhlIGVkaXRvcikuXG5cdFx0XHRIZW5jZSwgdGhlIGR1cGxpY2F0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjMxNCAqL1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NSUpO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHRoIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMCUsIDUlKTtcblx0XHR9XG5cbi8qKlxuICogRXhwYW5kaW5nIHRoZSB0YWJsZSB0byB0aGUgZnVsbCBoZWlnaHQgb2YgdGhlIHBhcmVudCBjb250YWluZXIgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGFibGVzXG4gKiBhcmUgcmVuZGVyZWQgaW5zaWRlIDxmaWd1cmU+IGVsZW1lbnRzLCB3aGljaCBpcyBraW5kYSBidWdneSBpbiB0YWJsZSBoZWlnaHQgY2FsY3VsYXRpb24uXG4gKiBXaGlsZSBzZXR0aW5nIGBoZWlnaHQ6IDEwMCVgIGZpeGVzIHRoZSBpc3N1ZSBpbiB0aGUgZWRpdGluZyBtb2RlIGRlc2NyaWJlZCBoZXJlOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjE4NlxuICpcbiAqIGl0J3MgY2F1c2luZyBhbm90aGVyIGlzc3VlIHdpdGggdGhlIHRhYmxlIGhlaWdodCBpbiB0aGUgcHJpbnQgcHJldmlldyBtb2RlIGhlcmU6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNjg1NlxuICpcbiAqIEZvciBub3csIHJlc2V0dGluZyB0aGUgaGVpZ2h0IHRvIGBpbml0aWFsYCBpbiB0aGUgcHJpbnQgbW9kZSB3b3JrcyBhcyBhIHdvcmthcm91bmQuXG4gKi9cbkBtZWRpYSBwcmludCB7XG5cdC5jay1jb250ZW50IC50YWJsZSB0YWJsZSB7XG5cdFx0aGVpZ2h0OiBpbml0aWFsO1xuXHR9XG59XG5cbi8qIFRleHQgYWxpZ25tZW50IG9mIHRoZSB0YWJsZSBoZWFkZXIgc2hvdWxkIG1hdGNoIHRoZSBlZGl0b3Igc2V0dGluZ3MgYW5kIG92ZXJyaWRlIHRoZSBuYXRpdmUgYnJvd3NlciBzdHlsaW5nLFxud2hlbiBjb250ZW50IGlzIGF2YWlsYWJsZSBvdXRzaWRlIHRoZSBlZGl0b3IuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NjM4ICovXG4uY2stY29udGVudFtkaXI9XCJydGxcIl0gLnRhYmxlIHRoIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jay1jb250ZW50W2Rpcj1cImx0clwiXSAudGFibGUgdGgge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAuY2stdGFibGUtYm9ndXMtcGFyYWdyYXBoIHtcblx0Lypcblx0ICogVXNlIGRpc3BsYXk6aW5saW5lLWJsb2NrIHRvIGZvcmNlIENocm9tZS9TYWZhcmkgdG8gbGltaXQgdGV4dCBtdXRhdGlvbnMgdG8gdGhpcyBlbGVtZW50LlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjA2Mi5cblx0ICovXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHQvKlxuXHQgKiBJbmxpbmUgSFRNTCBlbGVtZW50cyBuZXN0ZWQgaW4gdGhlIHNwYW4gc2hvdWxkIGFsd2F5cyBiZSBkaW1lbnNpb25lZCBpbiByZWxhdGlvbiB0byB0aGUgd2hvbGUgY2VsbCB3aWR0aC5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMTcuXG5cdCAqL1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2dyaWQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtX19yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdC8qIElnbm9yZSBsYWJlbHMgdGhhdCB3b3JrIGFzIGZpZWxkc2V0IGxlZ2VuZHMgKi9cbn1cblxuLmNrLmNrLWZvcm1fX3JvdyA+ICo6bm90KC5jay1sYWJlbCkge1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxuXG4uY2suY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdC5jay5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdC8qIDQgYnV0dG9ucyBvdXQgb2YgNyAoaC1hbGlnbm1lbnQgKyB2LWFsaWdubWVudCkgPSAwLjU3ICovXG5cdFx0XHRcdFx0ZmxleC1ncm93OiAwLjU3O1xuXHRcdFx0XHR9XG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0LyogMyBidXR0b25zIG91dCBvZiA3IChoLWFsaWdubWVudCArIHYtYWxpZ25tZW50KSA9IDAuNDMgKi9cblx0XHRcdFx0XHRmbGV4LWdyb3c6IDAuNDM7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIgLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pbnB1dC1jb2xvciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5jay5jay1pbnB1dC1jb2xvciA+IGlucHV0LmNrLmNrLWlucHV0LXRleHQge1xuXHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRmbGV4LWdyb3c6IDE7XG5cdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yID4gZGl2LmNrLmNrLWRyb3Bkb3duIHtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cblx0XHQvKiBUaGlzIGRyb3Bkb3duIGhhcyBubyBhcnJvdyBidXQgYSBjb2xvciBwcmV2aWV3IGluc3RlYWQuICovXG5cdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yID4gZGl2LmNrLmNrLWRyb3Bkb3duID4gLmNrLWlucHV0LWNvbG9yX19idXR0b24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHQvKiBSZXNvbHZpbmcgaXNzdWUgd2l0aCBtaXNhbGlnbmVkIGJ1dHRvbnMgb24gU2FmYXJpIChzZWUgIzEwNTg5KSAqL1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b24gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcgPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlld19fbm8tY29sb3ItaW5kaWNhdG9yIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYmFja2dyb3VuZC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yIHtcblx0XHRcdFx0ZmxleC1ncm93OiAwO1xuXHRcdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHQvKiBBbGxvdyBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZiB0aGUgc3RhdHVzIChlcnJvcikgYmFsbG9vbnMuICovXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDEwMCUpO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gc3RhdHVzIHN0YXlzIG9uIHRvcCBvZiBvdGhlciBmb3JtIGVsZW1lbnRzLiAqL1xuXHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0LyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXM6OmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IGNhbGMoIC0xICogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSApO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggLTUwJSApO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZsZXgtYmFzaXM6IDA7XG5cdFx0XHRhbGlnbi1jb250ZW50OiBiYXNlbGluZTtcblx0XHR9XG5cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTclKTtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLXRleHQ6IGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6IGhzbCg1MmRlZyAxMDAlIDUwJSk7XG59XG5cbi8qIENvbnRlbnQgc3R5bGVzICovXG4uY2stY29udGVudCAudGFibGUgPiBmaWdjYXB0aW9uIHtcblx0ZGlzcGxheTogdGFibGUtY2FwdGlvbjtcblx0Y2FwdGlvbi1zaWRlOiB0b3A7XG5cdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tdGV4dCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuXG5cdC8qIEltcHJvdmUgcGxhY2Vob2xkZXIgcmVuZGVyaW5nIGluIGhpZ2gtY29uc3RyYXN0IG1vZGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3KS4gKi9cbn1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0LmNrLWNvbnRlbnQgLnRhYmxlID4gZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0Y29sb3I6IHVuc2V0O1xuXHRcdH1cblx0fVxuXG4vKiBFZGl0aW5nIHN0eWxlcyAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSB7XG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlID4gZmlnY2FwdGlvbi50YWJsZV9fY2FwdGlvbl9oaWdobGlnaHRlZCB7XG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IC42cyBlYXNlLW91dDtcblx0XHR9XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSA+IGZpZ2NhcHRpb24uY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgdGFibGUgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jb2x1bW4tcmVzaXplci1ob3ZlcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHQtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXdpZHRoOiA3cHg7XG5cblx0LyogVGhlIG9mZnNldCB1c2VkIGZvciBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZiB0aGUgcmVzaXplciBlbGVtZW50LCBzbyB0aGF0IGl0IGlzIHBsYWNlZCBleGFjdGx5IGFib3ZlIHRoZSBjZWxsIGJvcmRlci5cblx0ICAgVGhlIHZhbHVlIGlzOiBtaW51cyBoYWxmIHRoZSB3aWR0aCBvZiB0aGUgcmVzaXplciBkZWNyZWFzZWQgYWRkaXRpb25hbHkgYnkgdGhlIGhhbGYgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIgKDAuNXB4KS4gKi9cblx0LS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQ6IGNhbGModmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpICogLTAuNSAtIDAuNXB4KTtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIC5jay10YWJsZS1yZXNpemVkIHtcblx0dGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRkLFxuLmNrLWNvbnRlbnQgLnRhYmxlIHRoIHtcblx0LyogVG8gcHJldmVudCB0ZXh0IG92ZXJmbG93aW5nIGJleW9uZCBpdHMgY2VsbCB3aGVuIGNvbHVtbnMgYXJlIHJlc2l6ZWQgYnkgcmVzaXplIGhhbmRsZXJcblx0KGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvcHVsbC8xNDM3OSNpc3N1ZWNvbW1lbnQtMTU4OTQ2MDk3OCkuICovXG5cdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdHJpZ2h0OiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQpO1xuXHR3aWR0aDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpO1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb2x1bW4tcmVzaXplX2Rpc2FibGVkIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiBUaGUgcmVzaXplciBlbGVtZW50cywgd2hpY2ggYXJlIGV4dGVuZGVkIHRvIGFuIGV4dHJlbWVseSBoaWdoIGhlaWdodCwgYnJlYWsgdGhlIGRyYWcgJiBkcm9wIGZlYXR1cmUgaW4gQ2hyb21lLiBUbyBtYWtlIGl0IHdvcmsgYWdhaW4sXG4gICBhbGwgcmVzaXplcnMgbXVzdCBiZSBoaWRkZW4gd2hpbGUgdGhlIHRhYmxlIGlzIGRyYWdnZWQuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGVbZHJhZ2dhYmxlXSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyOmhvdmVyLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplcl9fYWN0aXZlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY29sdW1uLXJlc2l6ZXItaG92ZXIpO1xuXHRvcGFjaXR5OiAwLjI1O1xuXHQvKiBUaGUgcmVzaXplciBlbGVtZW50IHJlc2lkZXMgaW4gZWFjaCBjZWxsIHNvIHRvIG9jY3VweSB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgdGFibGUsIHdoaWNoIGlzIHVua25vd24gZnJvbSBhIENTUyBwb2ludCBvZiB2aWV3LFxuXHQgICBpdCBpcyBleHRlbmRlZCB0byBhbiBleHRyZW1lbHkgaGlnaCBoZWlnaHQuIEV2ZW4gZm9yIHNjcmVlbnMgd2l0aCBhIHZlcnkgaGlnaCBwaXhlbCBkZW5zaXR5LCB0aGUgcmVzaXplciB3aWxsIGZ1bGZpbGwgaXRzIHJvbGUgYXNcblx0ICAgaXQgc2hvdWxkLCBpLmUuIGZvciBhIHNjcmVlbiBvZiA0NzYgcHBpIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIHJlc2l6ZXIgd2lsbCB0YWtlIG92ZXIgMzUwIHNoZWV0cyBvZiBBNCBmb3JtYXQsIHdoaWNoIGlzIHRvdGFsbHlcblx0ICAgdW5yZWFsaXN0aWMgaGVpZ2h0IGZvciBhIHNpbmdsZSB0YWJsZS4gKi9cblx0dG9wOiAtOTk5OTk5cHg7XG5cdGJvdHRvbTogLTk5OTk5OXB4O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZVtkaXI9cnRsXSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0bGVmdDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0KTtcblx0cmlnaHQ6IHVuc2V0O1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaGlkZXMgYW4gZWxlbWVudCBpbiBET00uXG4gKi9cblxuLmNrLWhpZGRlbiB7XG5cdC8qIE92ZXJyaWRlIHNlbGVjdG9yIHNwZWNpZmljaXR5LiBPdGhlcndpc2UsIGFsbCBlbGVtZW50cyB3aXRoIHNvbWUgZGlzcGxheVxuXHRzdHlsZSBkZWZpbmVkIHdpbGwgb3ZlcnJpZGUgdGhpcyBvbmUsIHdoaWNoIGlzIG5vdCBhIGRlc2lyZWQgcmVzdWx0LiAqL1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXotZGVmYXVsdDogMTtcblx0LS1jay16LXBhbmVsOiBjYWxjKCB2YXIoLS1jay16LWRlZmF1bHQpICsgOTk5ICk7XG5cdC0tY2stei1kaWFsb2c6IDk5OTk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHRoYXQgZGlzYWJsZXMgYWxsIHRyYW5zaXRpb25zIG9mIHRoZSBlbGVtZW50IGFuZCBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay10cmFuc2l0aW9ucy1kaXNhYmxlZCxcbi5jay10cmFuc2l0aW9ucy1kaXNhYmxlZCAqIHtcblx0dHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgZm9udCBzaXplIG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktZm9udC1zaXplOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgMTAocHgpIGlzIHRoZSBsaW5lIGhlaWdodCBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDEwIC8gMTMpO1xuXHQvKiB3aGVyZSAtMC4yKHB4KSBpcyB0aGUgbGV0dGVyIHNwYWNpbmcgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1sZXR0ZXItc3BhY2luZzogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAtMC4yIC8gMTMpO1xuXHQtLWNrLXBvd2VyZWQtYnktcGFkZGluZy12ZXJ0aWNhbDogMnB4O1xuXHQtLWNrLXBvd2VyZWQtYnktcGFkZGluZy1ob3Jpem9udGFsOiA0cHg7XG5cdC0tY2stcG93ZXJlZC1ieS10ZXh0LWNvbG9yOiBoc2woMCwgMCUsIDMxJSk7XG5cdC0tY2stcG93ZXJlZC1ieS1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0LS1jay1wb3dlcmVkLWJ5LWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stcG93ZXJlZC1ieS1ib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cblx0LS1jay1wb3dlcmVkLWJ5LXN2Zy13aWR0aDogNTM7XG5cdC0tY2stcG93ZXJlZC1ieS1zdmctaGVpZ2h0OiAxMDtcblx0LS1jay1wb3dlcmVkLWJ5LWljb24td2lkdGg6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogdmFyKC0tY2stcG93ZXJlZC1ieS1zdmctd2lkdGgpIC8gMTMpO1xuXHQtLWNrLXBvd2VyZWQtYnktaWNvbi1oZWlnaHQ6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogdmFyKC0tY2stcG93ZXJlZC1ieS1zdmctaGVpZ2h0KSAvIDEzKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiB7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogdmFyKC0tY2stcG93ZXJlZC1ieS1ib3JkZXItcmFkaXVzKTtcblxuXHRib3gtc2hhZG93OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWJhY2tncm91bmQpO1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1wYW5lbCkgLSAxICk7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24gLmNrLmNrLXBvd2VyZWQtYnkge1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0KTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIC5jay5jay1wb3dlcmVkLWJ5IGEge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRvcGFjaXR5OiAuNjY7XG5cdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSg4MCUpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktbGluZS1oZWlnaHQpO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIC5jay5jay1wb3dlcmVkLWJ5IC5jay1wb3dlcmVkLWJ5X19sYWJlbCB7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWNrLXBvd2VyZWQtYnktZm9udC1zaXplKTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWxldHRlci1zcGFjaW5nKTtcblx0XHRcdHBhZGRpbmctbGVmdDogMnB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA0cHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLXBvd2VyZWQtYnktdGV4dC1jb2xvcik7XG5cblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24gLmNrLmNrLXBvd2VyZWQtYnkgLmNrLWljb24ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stcG93ZXJlZC1ieS1pY29uLXdpZHRoKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1pY29uLWhlaWdodCk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIC5jay5jay1wb3dlcmVkLWJ5OmhvdmVyIGEge1xuXHRcdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb25bY2xhc3MqPVwicG9zaXRpb25faW5zaWRlXCJdIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb25bY2xhc3MqPVwicG9zaXRpb25fYm9yZGVyXCJdIHtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stcG93ZXJlZC1ieS1ib3JkZXItY29sb3IpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKiB3aGVyZSA3LjUocHgpIGlzIHRoZSBmb250IHNpemUgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1mb250LXNpemU6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogNy41IC8gMTMpO1xuXHQvKiB3aGVyZSA3LjUocHgpIGlzIHRoZSBsaW5lIGhlaWdodCBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgLTAuMihweCkgaXMgdGhlIGxldHRlciBzcGFjaW5nIG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGV0dGVyLXNwYWNpbmc6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogLTAuMiAvIDEzKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctdmVydGljYWw6IDJweDtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbDogNHB4O1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtdGV4dC1jb2xvcjogaHNsKDAsIDAlLCAzMSUpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uIHtcblx0LS1jay1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1yYWRpdXMpO1xuXG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYmFja2dyb3VuZCk7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSAtIDEgKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWV2YWx1YXRpb24tYmFkZ2UtYmFsbG9vbiAuY2suY2stZXZhbHVhdGlvbi1iYWRnZSB7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGluZS1oZWlnaHQpO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy12ZXJ0aWNhbCkgdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLWhvcml6b250YWwpO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1ldmFsdWF0aW9uLWJhZGdlLWJhbGxvb24gLmNrLmNrLWV2YWx1YXRpb24tYmFkZ2UgLmNrLWV2YWx1YXRpb24tYmFkZ2VfX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZzogMCAycHg7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtZm9udC1zaXplKTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWxldHRlci1zcGFjaW5nKTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS10ZXh0LWNvbG9yKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1ldmFsdWF0aW9uLWJhZGdlLWJhbGxvb25bY2xhc3MqPVwicG9zaXRpb25faW5zaWRlXCJdIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1ldmFsdWF0aW9uLWJhZGdlLWJhbGxvb25bY2xhc3MqPVwicG9zaXRpb25fYm9yZGVyXCJdIHtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItY29sb3IpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLCBbZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXHR9XG5cbi5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19sYWJlbCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXG4vKiBDZW50ZXIgdGhlIGljb24gaG9yaXpvbnRhbGx5IGluIGEgYnV0dG9uIHdpdGhvdXQgdGV4dC4gKi9cblxuLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpLCAgYS5jay5jay1idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSAge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR3aWR0aDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpc3QtaXRlbS1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbi5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIge1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdHdpZHRoOiAuOWVtO1xuXHRcdGhlaWdodDogLjllbTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbi5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1pY29uIHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNvbGxhcHNpYmxlLmNrLWNvbGxhcHNpYmxlX2NvbGxhcHNlZCA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRkaXNwbGF5OiBncmlkO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY29sb3ItcGlja2VyLWhleC1pbnB1dCB7XG5cdHdpZHRoOiBtYXgtY29udGVudDtcbn1cblxuLmNvbG9yLXBpY2tlci1oZXgtaW5wdXQgLmNrLmNrLWlucHV0IHtcblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXHR9XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMCAwO1xuXHR3aWR0aDogdW5zZXQ7XG59XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdW5zZXQ7XG5cdH1cblxuLmNrLmNrLWNvbG9yLXBpY2tlcl9fcm93IC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHR3aWR0aDogdW5zZXQ7XG5cdH1cblxuLmNrLmNrLWNvbG9yLXBpY2tlcl9fcm93IC5jay1jb2xvci1waWNrZXJfX2hhc2gtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFZpZXcgZnJhZ21lbnQgd2l0aCBjb2xvciBncmlkcy4gKi9cblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsXG5cdFx0LmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fcmVtb3ZlLWNvbG9yLCBbZGlyPVwicnRsXCJdIC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHR9XG5cbi8qIFZpZXcgZnJhZ21lbnQgd2l0aCBhIGNvbG9yIHBpY2tlci4gKi9cblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0XHR9XG5cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIC5jay1idXR0b24tc2F2ZSxcblx0XHRcdC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdFx0ZmxleDogMVxuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZGlhbG9nIC5jay5jay1kaWFsb2dfX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZGlhbG9nLW92ZXJsYXkge1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblxuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcbn1cblxuLmNrLmNrLWRpYWxvZy1vdmVybGF5LmNrLWRpYWxvZy1vdmVybGF5X190cmFuc3BhcmVudCB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cblxuLmNrLmNrLWRpYWxvZyB7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uY2suY2stZGlhbG9nIC5jay5jay1mb3JtX19oZWFkZXIgIHtcblx0XHRmbGV4LXNocmluazogMDtcblx0fVxuXG4vKiBNb2RhbHMgc2hvdWxkIG5vdCBiZSBkcmFnZ2FibGUuICovXG5cbi5jay5jay1kaWFsb2c6bm90KC5jay1kaWFsb2dfbW9kYWwpIC5jay5jay1mb3JtX19oZWFkZXIgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0Y3Vyc29yOiBncmFiO1xuXHRcdH1cblxuLmNrLmNrLWRpYWxvZy1vdmVybGF5LmNrLWRpYWxvZy1vdmVybGF5X190cmFuc3BhcmVudCAuY2suY2stZGlhbG9nIHtcblx0XHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tYXgtd2lkdGg6IDc1dnc7XG59XG5cbi5jay5jay1kcm9wZG93biB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG4vKiBEcm9wZG93biBidXR0b24gc2hvdWxkIHNwYW4gaG9yaXpvbnRhbGx5LCBlLmcuIGluIHZlcnRpY2FsIHRvb2xiYXJzICovXG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHRcdG1heC13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWF4LXdpZHRoKTtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWwtdmlzaWJsZSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX253LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubXcsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25tZSB7XG5cdFx0XHRib3R0b206IDEwMCU7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc2UsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3N3LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zbXcsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NtZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfcyB7XG5cdFx0XHQvKlxuXHRcdFx0ICogVXNpbmcgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMCwgMTAwJSwgMCApIGNhdXNlcyBibHVycnkgZHJvcGRvd24gb24gQ2hyb21lIDY3LTc4KyBvbiBub24tcmV0aW5hIGRpc3BsYXlzLlxuXHRcdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwNTMuXG5cdFx0XHQgKi9cblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc2Uge1xuXHRcdFx0bGVmdDogMHB4O1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX253LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zdyB7XG5cdFx0XHRyaWdodDogMHB4O1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3MsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX24ge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25tdyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc213IHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgbWlkZGxlLXdlc3Qgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogNzUlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03NSUpO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25tZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc21lIHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgbWlkZGxlLWVhc3Qgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpO1xuXHRcdH1cblxuLypcbiAqIFRvb2xiYXIgZHJvcGRvd24gcGFuZWxzIHNob3VsZCBiZSBhbHdheXMgYWJvdmUgdGhlIFVJIChlZy4gb3RoZXIgZHJvcGRvd24gcGFuZWxzKSBmcm9tIHRoZSBlZGl0b3IncyBjb250ZW50LlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc4NzRcbiAqL1xuLmNrLmNrLXRvb2xiYXIgLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpICsgMSApO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc3BsaXRidXR0b24ge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4uY2suY2stc3BsaXRidXR0b24gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246Zm9jdXMge1xuXHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHR9XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvb2xiYXItZHJvcGRvd24tbWF4LXdpZHRoOiA2MHZ3O1xufVxuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy81NTg2ICovXG5cdHdpZHRoOiBtYXgtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay10b29sYmFyLWRyb3Bkb3duLW1heC13aWR0aCk7XG59XG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stYnV0dG9uOmZvY3VzIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bWF4LWhlaWdodDogMzE0cHg7IC8qIFdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MsIHRoaXMgaXMgZXF1YWwgdG8gMTAgbWVudSBpdGVtcy4gKi9cblx0b3ZlcmZsb3cteTogYXV0bztcblx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LXBhbmVsKSArIDEpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYXJpYS1saXZlLWFubm91bmNlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogLTEwMDAwcHg7XG5cdHRvcDogLTEwMDAwcHg7XG59XG5cbi5jay5jay1hcmlhLWxpdmUtcmVnaW9uLWxpc3Qge1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtX19oZWFkZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uY2suY2stZm9ybV9faGVhZGVyIGgyLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staWNvbiB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2suY2stdm9pY2UtbGFiZWwge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5cbi5jay5jay1saXN0IHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblxuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2suY2stbGlzdCAuY2stbGlzdF9faXRlbSxcblx0LmNrLmNrLWxpc3QgLmNrLWxpc3RfX3NlcGFyYXRvciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLyogTWFrZSBzdXJlIHRoYXQgd2hhdGV2ZXIgY2hpbGQgb2YgdGhlIGxpc3QgaXRlbSBnZXRzIGZvY3VzLCBpdCByZW1haW5zIG9uIHRoZVxuXHR0b3AuIFRoYW5rcyB0byB0aGF0LCBzdHlsZXMgbGlrZSBib3gtc2hhZG93LCBvdXRsaW5lLCBldGMuIGFyZSBub3QgbWFza2VkIGJ5XG5cdGFkamFjZW50IGxpc3QgaXRlbXMuICovXG5cbi5jay5jay1saXN0IC5jay1saXN0X19pdGVtID4gKjpmb2N1cyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gYXJyb3cgZG9lcyBub3QgZmxvYXQgb3ZlciBpdHMgY2hpbGRyZW4uICovXG5cdC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgLSAzKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3Zpc2libGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEJ1dHRvbnMgaW5zaWRlIGEgdG9vbGJhciBzaG91bGQgYmUgY2VudGVyZWQgd2hlbiByb3RhdG9yIGJhciBpcyB3aWRlci5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS11aS9pc3N1ZXMvNDk1XG4gKi9cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19jb250ZW50IC5jay10b29sYmFyIHtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stZmFrZS1wYW5lbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBGYWtlIHBhbmVscyBzaG91bGQgYmUgcGxhY2VkIHVuZGVyIG1haW4gYmFsbG9vbiBjb250ZW50LiAqL1xuXHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotcGFuZWwpIC0gMSk7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXYge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAxICkge1xuXHR6LWluZGV4OiAyO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMiApIHtcblx0ei1pbmRleDogMTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7IC8qICMzMTUgKi9cblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHR9XG5cbi5jay5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3lfYm90dG9tLWxpbWl0IHtcblx0XHR0b3A6IGF1dG87XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1hdXRvY29tcGxldGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdH1cblxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMuY2stc2VhcmNoX19yZXN1bHRzX24ge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMuY2stc2VhcmNoX19yZXN1bHRzX3Mge1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdFx0Ym90dG9tOiBhdXRvO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvID4gc3BhbjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG4vKiBIaWRlIHRoZSBmaWx0ZXJlZCB2aWV3IHdoZW4gbm90aGluZyB3YXMgZm91bmQgKi9cblxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvOm5vdCguY2staGlkZGVuKSB+ICoge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGlnaGxpZ2h0ZWQtdGV4dCBtYXJrIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcblx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1kaWFsb2cpICsgMTAwICk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMThweDtcbn1cblxuLmNrLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLXNwaW5uZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0ei1pbmRleDogMTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuXG4uY2suY2stdG9vbGJhciB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiByb3cgbm93cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZmxleC1ncm93OiAxO1xuXG5cdH1cblxuLmNrLmNrLXRvb2xiYXIgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0Lypcblx0XHQgKiBBIGxlYWRpbmcgb3IgdHJhaWxpbmcgc2VwYXJhdG9yIG1ha2VzIG5vIHNlbnNlIChzZXBhcmF0ZXMgZnJvbSBub3RoaW5nIG9uIG9uZSBzaWRlKS5cblx0XHQgKiBGb3IgaW5zdGFuY2UsIGl0IGNhbiBoYXBwZW4gd2hlbiB0b29sYmFyIGl0ZW1zIChhbHNvIHNlcGFyYXRvcnMpIGFyZSBnZXR0aW5nIGdyb3VwZWQgb25lIGJ5IG9uZSBhbmRcblx0XHQgKiBtb3ZlZCB0byBhbm90aGVyIHRvb2xiYXIgaW4gdGhlIGRyb3Bkb3duLlxuXHRcdCAqL1xuXHR9XG5cbi5jay5jay10b29sYmFyIC5jay5jay10b29sYmFyX19zZXBhcmF0b3I6Zmlyc3QtY2hpbGQsXG5cdFx0LmNrLmNrLXRvb2xiYXIgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvcjpsYXN0LWNoaWxkIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbGluZS1icmVhayB7XG5cdFx0ZmxleC1iYXNpczogMTAwJTtcblx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX3ZlcnRpY2FsID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZmxvYXRpbmcgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cbi5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX2J1dHRvbiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYmxvY2stdG9vbGJhci1idXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LW1heC13aWR0aDogNzV2dztcblx0LS1jay1tZW51LWJhci1uZXN0ZWQtbWVudS1ob3Jpem9udGFsLW9mZnNldDogNXB4O1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsIHtcblx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1tYXgtd2lkdGgpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9udyB7XG5cdFx0Ym90dG9tOiAxMDAlO1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3NlLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0dG9wOiAxMDAlO1xuXHRcdGJvdHRvbTogYXV0bztcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9uZSxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc2Uge1xuXHRcdGxlZnQ6IDBweDtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9udyxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdHJpZ2h0OiAwcHg7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VuIHtcblx0XHRsZWZ0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMge1xuXHRcdHRvcDogMHB4O1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VuIHtcblx0XHRib3R0b206IDBweDtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24ge1xuXHRcdHJpZ2h0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3Mge1xuXHRcdHRvcDogMHB4O1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3duIHtcblx0XHRib3R0b206IDBweDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItcmVzaXplcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxNSUpO1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0OiBoc2woMCwgMCUsIDk1JSk7XG5cblx0LS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQ6IDEwcHg7XG5cdC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodDogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAqIDIgKyAxMHB4KTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKiBUaGlzIGlzIG5lY2Nlc3NhcnkgZm9yIHR5cGUgYXJvdW5kIFVJIHRvIGJlIHBvc2l0aW9uZWQgcHJvcGVybHkuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cdC8qIE1ha2UgdGhlIHdpZGdldCB3cmFwcGVyIGEgcmVsYXRpdmUgcG9zaXRpb25pbmcgY29udGFpbmVyIGZvciB0aGUgZHJhZyBoYW5kbGUuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaWNvbiBpbiBub3QgYSBzdWJqZWN0IHRvIGZvbnQtc2l6ZSBvciBsaW5lLWhlaWdodCB0byBhdm9pZFxuXHRcdFx0dW5uZWNlc3Nhcnkgc3BhY2luZyBhcm91bmQgaXQuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cbi8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGUgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0LCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuLyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZSB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCk7XG59XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0LFxuXHQuY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtcmlnaHQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1yaWdodCxcblx0LmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWFib3ZlLWNlbnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLXJpZ2h0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG4vKiBDbGFzcyBhcHBsaWVkIGlmIHRoZSB3aWRnZXQgaXMgdG9vIHNtYWxsIHRvIGNvbnRhaW4gdGhlIHNpemUgbGFiZWwgKi9cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYWJvdmUtY2VudGVyIHtcblx0XHR0b3A6IGNhbGModmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCkgKiAtMSk7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2std2lkZ2V0X3dpdGgtcmVzaXplciB7XG5cdC8qIE1ha2UgdGhlIHdpZGdldCB3cmFwcGVyIGEgcmVsYXRpdmUgcG9zaXRpb25pbmcgY29udGFpbmVyIGZvciB0aGUgZHJhZyBoYW5kbGUuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogVGhlIHdyYXBwZXIgaXRzZWxmIHNob3VsZCBub3QgaW50ZXJmZXJlIHdpdGggdGhlIHBvaW50ZXIgZGV2aWNlLCBvbmx5IHRoZSBoYW5kbGVzIHNob3VsZC4gKi9cblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0bGVmdDogMDtcblx0dG9wOiAwO1xufVxuXG4uY2stZm9jdXNlZCAuY2std2lkZ2V0X3dpdGgtcmVzaXplci5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFJlc2l6ZXJzIGFyZSB0aGUgb25seSBVSSBlbGVtZW50cyB0aGF0IHNob3VsZCBpbnRlcmZlcmUgd2l0aCBhIHBvaW50ZXIgZGV2aWNlLiAqL1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0LFxuXHQuY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1yaWdodCB7XG5cdFx0Y3Vyc29yOiBud3NlLXJlc2l6ZTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCxcblx0LmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Y3Vyc29yOiBuZXN3LXJlc2l6ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnNcblx0ICovXG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAyKTtcblx0XHR9XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHR0b3A6IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0bGVmdDogbWluKDEwJSwgMzBweCk7XG5cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2FmdGVyIHtcblx0XHRcdC8qIFBsYWNlIGl0IGluIHRoZSBtaWRkbGUgb2YgdGhlIG91dGxpbmUgKi9cblx0XHRcdGJvdHRvbTogY2FsYygtMC41ICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSk7XG5cdFx0XHRyaWdodDogbWluKDEwJSwgMzBweCk7XG5cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuXHRcdH1cblxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuOlxuXHQgKiAtIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsXG5cdCAqIC0gb3IgdGhlIGJ1dHRvbiBpcyBiZWluZyBob3ZlcmVkIChyZWdhcmRsZXNzIG9mIHRoZSB3aWRnZXQgc3RhdGUpLlxuXHQgKi9cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOjphZnRlciwgLmNrIC5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXI6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMXB4O1xuXHRcdFx0bGVmdDogMXB4O1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdFx0fVxuXG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuLypcblx0ICogV2hlbiB0aGUgd2lkZ2V0IGlzIGhvdmVyZWQgdGhlIFwiZmFrZSBjYXJldFwiIHdvdWxkIG5vcm1hbGx5IGJlIG5hcnJvd2VyIHRoYW4gdGhlXG5cdCAqIGV4dHJhIG91dGxpbmUgZGlzcGxheWVkIGFyb3VuZCB0aGUgd2lkZ2V0LiBMZXQncyBleHRlbmQgdGhlIFwiZmFrZSBjYXJldFwiIHRvIG1hdGNoXG5cdCAqIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSB3aWRnZXQuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGxlZnQ6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSApO1xuXHRcdHJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgKTtcblx0fVxuXG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoZW4gaXQgc2hvdWxkIGJlIGRpc3BsYXllZCBiZWZvcmUgdGhlIHdpZGdldCAoYmFja3dhcmQga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIC0gMXB4ICk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGVuIGl0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIHdpZGdldCAoZm9yd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSAtIDFweCApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZWFkLW9ubHkgbW9kZSBvZiB0aGUgZWRpdG9yLlxuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzdHJpY3RlZCBlZGl0aW5nIG1vZGUgKGZlYXR1cmUpIG9mIHRoZSBlZGl0b3IuXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgI2lzRW5hYmxlZCBwcm9wZXJ0eSBvZiB0aGUgV2lkZ2V0VHlwZUFyb3VuZCBwbHVnaW4uXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfZGlzYWJsZWQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiMgc291cmNlTWFwcGluZ1VSTD1ja2VkaXRvcjUuY3NzLm1hcCAqLyIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFJlc2V0ICovXG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvZ2xvYmFscy9nbG9iYWxzLmNzc1wiO1xuXG4vKiBDb21wb25lbnRzICovXG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9zd2l0Y2hidXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vbGlzdGl0ZW1idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2NvbG9yZ3JpZC9jb2xvcmdyaWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xvcnNlbGVjdG9yL2NvbG9yc2VsZWN0b3IuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZ2FjdGlvbnMuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL2xpc3Rkcm9wZG93bi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vdG9vbGJhcmRyb3Bkb3duLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVidXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWxpc3RpdGVtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVsaXN0aXRlbWJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51cGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9hY2Nlc3NpYmlsaXR5aGVscC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2VkaXRvcnVpL2VkaXRvcnVpLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZm9ybWhlYWRlci9mb3JtaGVhZGVyLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaWNvbi9pY29uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRmaWVsZC9sYWJlbGVkZmllbGR2aWV3LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGFiZWxlZGlucHV0L2xhYmVsZWRpbnB1dC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xpc3QvbGlzdC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51YnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnJvdGF0b3IuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9mYWtlcGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9zdGlja3lwYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Jlc3BvbnNpdmUtZm9ybS9yZXNwb25zaXZlZm9ybS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvYmxvY2t0b29sYmFyLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzc1wiO1xuXG4vKiBFZGl0b3IgKi9cbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy9jbGFzc2ljZWRpdG9yLmNzc1wiO1xuXG4vKiBQbHVnaW5zICovXG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtYm9va21hcmsvYm9va21hcmsuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtY2xpcGJvYXJkL2NsaXBib2FyZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1jb2RlLWJsb2NrL2NvZGVibG9jay5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1lbmdpbmUvcGxhY2Vob2xkZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS9maW5kYW5kcmVwbGFjZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaGVhZGluZy9oZWFkaW5nLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS9ob3Jpem9udGFsbGluZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1odG1sLWVtYmVkL2h0bWxlbWJlZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZWluc2VydC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZGljb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRsb2FkZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRwcm9ncmVzcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saW5rL2xpbmsuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGluay9saW5rYWN0aW9ucy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saW5rL2xpbmtmb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpbmsvbGlua2ltYWdlLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpc3QvbGlzdHByb3BlcnRpZXMuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGlzdC9saXN0c3R5bGVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LW1lZGlhLWVtYmVkL21lZGlhZW1iZWRlZGl0aW5nLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LW1lbnRpb24vbWVudGlvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1yZXN0cmljdGVkLWVkaXRpbmcvcmVzdHJpY3RlZGVkaXRpbmcuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3BlY2lhbC1jaGFyYWN0ZXJzL2NoYXJhY3RlcmdyaWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3BlY2lhbC1jaGFyYWN0ZXJzL2NoYXJhY3RlcmluZm8uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3BlY2lhbC1jaGFyYWN0ZXJzL3NwZWNpYWxjaGFyYWN0ZXJzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXN0eWxlL3N0eWxlLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXN0eWxlL3N0eWxlZ3JpZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zdHlsZS9zdHlsZWdyb3VwLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXN0eWxlL3N0eWxlcGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvY29sb3JpbnB1dC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS9mb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL2Zvcm1yb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvaW5zZXJ0dGFibGUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvdGFibGVjZWxscHJvcGVydGllcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWVkaXRpbmcuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvdGFibGVmb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlcHJvcGVydGllcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZXNlbGVjdGlvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS13aWRnZXQvd2lkZ2V0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXdpZGdldC93aWRnZXRyZXNpemUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHR5cGVhcm91bmQuY3NzXCI7XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi9fY29sb3JzLmNzc1wiO1xuQGltcG9ydCBcIi4vX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4vX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4vX2ZvbnRzLmNzc1wiO1xuQGltcG9ydCBcIi4vX3Jlc2V0LmNzc1wiO1xuQGltcG9ydCBcIi4vX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIi4vX3NwYWNpbmcuY3NzXCI7XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA5OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMjAsIDYlLCA4MSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aW9uOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTA0LCA1MC4yJSwgNDIuNSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtZm9jdXM6IFx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIwOSwgOTIlLCA3MCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3RpdmU6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTguMSwgMTAwJSwgNTglKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZS1mb2N1czpcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4yLCAxMDAlLCA1Mi41JSk7XG5cdC0tY2stY29sb3ItYmFzZS1lcnJvcjpcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQvKiAtLSBHZW5lcmljIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlczogXHRcdFx0XHRcdFx0MjE4LCA4MS44JSwgNTYuOSU7XG5cdC0tY2stY29sb3ItZm9jdXMtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2wodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSk7XG5cdC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2woMjEyLjQsIDg5LjMlLCA4OSUpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWRpc2FibGVkLXNoYWRvdzpcdFx0XHRcdFx0XHRcdGhzbGEoMjA5LCA5MCUsIDcyJSwuMyk7XG5cdC0tY2stY29sb3ItZm9jdXMtZXJyb3Itc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2xhKDksMTAwJSw1NiUsLjMpO1xuXHQtLWNrLWNvbG9yLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1kcm9wOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xNSk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3AtYWN0aXZlOlx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4yKTtcblx0LS1jay1jb2xvci1zaGFkb3ctaW5uZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIEJ1dHRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdHRyYW5zcGFyZW50O1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0aHNsKDIxMiwgMTAwJSwgOTcuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMjExLjcsIDEwMCUsIDkyLjklKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMjExLjcsIDEwMCUsIDkyLjklKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgyMTEsIDE1JSwgOTUlKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tY29sb3I6XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4xLCAxMDAlLCA1OCUpO1xuXG5cblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aW9uKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNDQlLCA1OCUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tdGV4dDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LS1jay1jb2xvci1idXR0b24tc2F2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDEyMCwgMTAwJSwgMjclKTtcblx0LS1jay1jb2xvci1idXR0b24tY2FuY2VsOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTUsIDEwMCUsIDQzJSk7XG5cblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRoc2woMCwgMCUsIDU3LjYlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kOlx0XHRcdFx0aHNsKDAsIDAlLCA0OSUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24tYmFja2dyb3VuZDpcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24taG92ZXItYmFja2dyb3VuZDpcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1iYWNrZ3JvdW5kOlx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItc2hhZG93Olx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIERyb3Bkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIERpYWxvZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jdXN0b20tYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcjogXHRcdFx0XHRcdFx0dmFyKC0tY2stY3VzdG9tLWJvcmRlcik7XG5cblx0LyogLS0gSW5wdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1pbnB1dC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0LS1jay1jb2xvci1pbnB1dC1lcnJvci1ib3JkZXI6XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHQtLWNrLWNvbG9yLWlucHV0LXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk1JSk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0OiBcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNDYlKTtcblxuXHQvKiAtLSBMaXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1czogXHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tb24tY29sb3IpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLXRleHQ6XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LyogLS0gUGFuZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1wYW5lbC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBUb29sYmFyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBUb29sdGlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3ItdG9vbHRpcC10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC8qIC0tIEVuZ2luZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZW5naW5lLXBsYWNlaG9sZGVyLXRleHQ6IFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNDQlKTtcblxuXHQvKiAtLSBVcGxvYWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXVwbG9hZC1iYXItYmFja2dyb3VuZDpcdFx0IFx0XHRcdFx0XHRoc2woMjA5LCA5MiUsIDcwJSk7XG5cblx0LyogLS0gTGluayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGluay1kZWZhdWx0Olx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyNDAsIDEwMCUsIDQ3JSk7XG5cdC0tY2stY29sb3ItbGluay1zZWxlY3RlZC1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdGhzbGEoMjAxLCAxMDAlLCA1NiUsIDAuMSk7XG5cdC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbjpcdFx0XHRcdFx0XHRcdFx0aHNsYSgyMDEsIDEwMCUsIDU2JSwgMC4zKTtcblxuXHQvKiAtLSBTZWFyY2ggcmVzdWx0IGhpZ2hsaWdodCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1oaWdobGlnaHQtYmFja2dyb3VuZDpcdFx0XHRcdFx0XHRcdGhzbCg2MCwgMTAwJSwgNTAlKTtcblxuXHQvKiAtLSBHZW5lcmljIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saWdodC1yZWQ6XHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMTAwJSwgOTAlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIEFuIG9wYWNpdHkgdmFsdWUgb2YgZGlzYWJsZWQgVUkgaXRlbS5cblx0ICovXG5cdC0tY2stZGlzYWJsZWQtb3BhY2l0eTogLjU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5OiAwIDAgMCAzcHg7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBkaXNhYmxlZCkuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cgKHdoZW4gaGFzIGVycm9ycykuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIgb3Igb3V0bGluZS5cblx0ICovXG5cdC0tY2stZm9jdXMtcmluZzogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZm9udC1zaXplLWJhc2U6IDEzcHg7XG5cdC0tY2stbGluZS1oZWlnaHQtYmFzZTogMS44NDYxNTtcblx0LS1jay1mb250LWZhY2U6IEhlbHZldGljYSwgQXJpYWwsIFRhaG9tYSwgVmVyZGFuYSwgU2Fucy1TZXJpZjtcblxuXHQtLWNrLWZvbnQtc2l6ZS10aW55OiAwLjdlbTtcblx0LS1jay1mb250LXNpemUtc21hbGw6IDAuNzVlbTtcblx0LS1jay1mb250LXNpemUtbm9ybWFsOiAxZW07XG5cdC0tY2stZm9udC1zaXplLWJpZzogMS40ZW07XG5cdC0tY2stZm9udC1zaXplLWxhcmdlOiAxLjhlbTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogVGhpcyBpcyBzdXBlci1pbXBvcnRhbnQuIFRoaXMgaXMgKiptYW51YWxseSoqIGFkanVzdGVkIHNvIGEgYnV0dG9uIHdpdGhvdXQgYW4gaWNvblxuXHRpcyBuZXZlciBzbWFsbGVyIHRoYW4gYSBidXR0b24gd2l0aCBpY29uLCBhZGRpdGlvbmFsbHkgbWFraW5nIHN1cmUgdGhhdCB0ZXh0LWxlc3MgYnV0dG9uc1xuXHRhcmUgcGVyZmVjdCBzcXVhcmVzLiBUaGUgdmFsdWUgaXMgYWxzbyBzaGFyZWQgYnkgb3RoZXIgY29tcG9uZW50cyB3aGljaCBzaG91bGQgc3RheSBcImluLWxpbmVcIlxuXHR3aXRoIGJ1dHRvbnMuICovXG5cdC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQ6IDIuM2VtO1xufVxuXG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50LCBpZ25vcmluZyBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay5jay1yZXNldCxcbi5jay5jay1yZXNldF9hbGwsXG4uY2stcmVzZXRfYWxsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xuXHRwb3NpdGlvbjogc3RhdGljO1xuXG5cdC8qIERvIG5vdCBpbmNsdWRlIGluaGVyaXRhYmxlIHJ1bGVzIGhlcmUuICovXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR0cmFuc2l0aW9uOiBub25lO1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTA1ICovXG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLyoqXG4gKiBSZXNldHMgYW4gZWxlbWVudCBBTkQgaXRzIGNoaWxkcmVuLlxuICovXG4uY2suY2stcmVzZXRfYWxsLFxuLmNrLXJlc2V0X2FsbCAqOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0LyogVGhlc2UgYXJlIHJ1bGUgaW5oZXJpdGVkIGJ5IGFsbCBjaGlsZHJlbiBlbGVtZW50cy4gKi9cblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgdmFyKC0tY2stZm9udC1zaXplLWJhc2UpL3ZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpIHZhcigtLWNrLWZvbnQtZmFjZSk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBhdXRvO1xuXHRmbG9hdDogbm9uZTtcbn1cblxuLmNrLXJlc2V0X2FsbCB7XG5cdCYgLmNrLXJ0bCAqOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdCYgaWZyYW1lOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHQvKiBGb3IgSUUgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcblx0fVxuXG5cdCYgdGV4dGFyZWE6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0fVxuXG5cdCYgdGV4dGFyZWE6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdCYgaW5wdXRbdHlwZT1cInRleHRcIl06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdCYgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cblxuXHQmIHRleHRhcmVhW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwidGV4dFwiXVtkaXNhYmxlZF06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdCYgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cblx0JiBmaWVsZHNldDpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRib3JkZXI6IDJweCBncm9vdmUgaHNsKDI1NSwgNyUsIDg4JSk7XG5cdH1cblxuXHQmIGJ1dHRvbjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKTo6LW1vei1mb2N1cy1pbm5lciB7XG5cdFx0LyogU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTUxNzc0NC9yZW1vdmUtZXh0cmEtYnV0dG9uLXNwYWNpbmctcGFkZGluZy1pbi1maXJlZm94ICovXG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDBcblx0fVxufVxuXG4vKipcbiAqIERlZmF1bHQgVUkgcnVsZXMgZm9yIFJUTCBsYW5ndWFnZXMuXG4gKi9cbi5ja1tkaXI9XCJydGxcIl0sXG4uY2tbZGlyPVwicnRsXCJdIC5jayB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBEZWZhdWx0IGJvcmRlci1yYWRpdXMgdmFsdWUuXG4gKi9cbjpyb290e1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IDJweDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBpbm5lciBzaGFkb3cgKGkuZS4gaW5wdXQpLlxuXHQgKi9cblx0LS1jay1pbm5lci1zaGFkb3c6IDJweCAycHggM3B4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcikgaW5zZXQ7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBkcm9wIHNoYWRvdyAoaS5lLiBwYW5lbCkuXG5cdCAqL1xuXHQtLWNrLWRyb3Atc2hhZG93OiAwIDFweCAycHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGFjdGl2ZSBzaGFkb3cgKGkuZS4gY29tbWVudCBvciBzdWdnZXN0aW9uKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3ctYWN0aXZlOiAwIDNweCA2cHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wLWFjdGl2ZSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc3BhY2luZy11bml0OiBcdFx0XHRcdFx0XHQwLjZlbTtcblx0LS1jay1zcGFjaW5nLWxhcmdlOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMS41KTtcblx0LS1jay1zcGFjaW5nLXN0YW5kYXJkOiBcdFx0XHRcdFx0dmFyKC0tY2stc3BhY2luZy11bml0KTtcblx0LS1jay1zcGFjaW5nLW1lZGl1bTogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuOCk7XG5cdC0tY2stc3BhY2luZy1zbWFsbDogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuNSk7XG5cdC0tY2stc3BhY2luZy10aW55OiBcdFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjMpO1xuXHQtLWNrLXNwYWNpbmctZXh0cmEtdGlueTogXHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjE2KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuLmNrLmNrLWF1dG9jb21wbGV0ZSB7XG5cdCYgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXHRcdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRcdG1pbi13aWR0aDogYXV0bztcblxuXHRcdCYuY2stc2VhcmNoX19yZXN1bHRzX24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXG5cdFx0XHQvKiBQcmV2ZW50IGR1cGxpY2F0ZWQgYm9yZGVycyBiZXR3ZWVuIHRoZSBpbnB1dCBhbmQgdGhlIHJlc3VsdHMgcGFuZS4gKi9cblx0XHRcdG1hcmdpbi1ib3R0b206IC0xcHg7XG5cdFx0fVxuXG5cdFx0Ji5jay1zZWFyY2hfX3Jlc3VsdHNfcyB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdC8qIFByZXZlbnQgZHVwbGljYXRlZCBib3JkZXJzIGJldHdlZW4gdGhlIGlucHV0IGFuZCB0aGUgcmVzdWx0cyBwYW5lLiAqL1xuXHRcdFx0bWFyZ2luLXRvcDogLTFweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5AZGVmaW5lLW1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0LmNrLXJvdW5kZWQtY29ybmVycyAmLFxuXHQmLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWJveC1zaGFkb3cgJHNoYWRvd0EsICRzaGFkb3dCOiAwIDAge1xuXHRib3gtc2hhZG93OiAkc2hhZG93QSwgJHNoYWRvd0I7XG59XG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1kcm9wLXNoYWRvdyB7XG5cdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWRyb3Atc2hhZG93KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5AZGVmaW5lLW1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0LmNrLXJvdW5kZWQtY29ybmVycyAmLFxuXHQmLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWJveC1zaGFkb3cgJHNoYWRvd0EsICRzaGFkb3dCOiAwIDAge1xuXHRib3gtc2hhZG93OiAkc2hhZG93QSwgJHNoYWRvd0I7XG59XG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1kcm9wLXNoYWRvdyB7XG5cdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWRyb3Atc2hhZG93KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uL21peGlucy9fYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdEBtaXhpbiBjay1idXR0b24tY29sb3JzIC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQ7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LyogQSB2ZXJ5IGltcG9ydGFudCBwaWVjZSBvZiBzdHlsaW5nLiBHbyB0byB2YXJpYWJsZSBkZWNsYXJhdGlvbiB0byBsZWFybiBtb3JlLiAqL1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0bWluLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXG5cdC8qIE5vcm1hbGl6ZSB0aGUgaGVpZ2h0IG9mIHRoZSBsaW5lLiBSZW1vdmluZyB0aGlzIHdpbGwgYnJlYWsgY29uc2lzdGVudCBoZWlnaHRcblx0YW1vbmcgdGV4dCBhbmQgdGV4dC1sZXNzIGJ1dHRvbnMgKHdpdGggaWNvbnMpLiAqL1xuXHRsaW5lLWhlaWdodDogMTtcblxuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXG5cdC8qIEF2b2lkIGZsaWNrZXJpbmcgd2hlbiB0aGUgZm91Y3MgYm9yZGVyIHNob3dzIHVwLiAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0LCBib3JkZXIgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTg5ICovXG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmOmFjdGl2ZSxcblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxuXG5cdC8qIEFsbG93IGljb24gY29sb3JpbmcgdXNpbmcgdGhlIHRleHQgXCJjb2xvclwiIHByb3BlcnR5LiAqL1xuXHQmIC5jay1idXR0b25fX2ljb24ge1xuXHRcdCYgdXNlLFxuXHRcdCYgdXNlICoge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblxuXHRcdC8qIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIC5jay1pY29uJ3MgdmVydGljYWwgYWxpZ24uIE90aGVyd2lzZSwgYnV0dG9ucyB3aXRoIGFuZFxuXHRcdHdpdGhvdXQgbGFiZWxzIChidXQgd2l0aCBpY29ucykgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMgaW4gQ2hyb21lICovXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuXG5cdFx0b3BhY2l0eTogLjU7XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzcwICovXG5cdCYuY2stZGlzYWJsZWQge1xuXHRcdCY6YWN0aXZlLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0LyogVGhlIGRpc2FibGVkIGJ1dHRvbiBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHRcdH1cblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0XHRvcGFjaXR5OiAuMztcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHRcdCYgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1idXR0b25fd2l0aC1rZXlzdHJva2Uge1xuXHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0fVxuXHR9XG5cblx0LyogQSBzdHlsZSBvZiB0aGUgYnV0dG9uIHdoaWNoIGlzIGN1cnJlbnRseSBvbiwgZS5nLiBpdHMgZmVhdHVyZSBpcyBhY3RpdmUuICovXG5cdCYuY2stb24ge1xuXHRcdEBtaXhpbiBjay1idXR0b24tY29sb3JzIC0tY2stY29sb3ItYnV0dG9uLW9uO1xuXG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdH1cblxuXHQmLmNrLWJ1dHRvbi1zYXZlIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLXNhdmUpO1xuXHR9XG5cblx0Ji5jay1idXR0b24tY2FuY2VsIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLWNhbmNlbCk7XG5cdH1cbn1cblxuLyogQSBzdHlsZSBvZiB0aGUgYnV0dG9uIHdoaWNoIGhhbmRsZXMgdGhlIHByaW1hcnkgYWN0aW9uLiAqL1xuLmNrLmNrLWJ1dHRvbi1hY3Rpb24sXG5hLmNrLmNrLWJ1dHRvbi1hY3Rpb24ge1xuXHRAbWl4aW4gY2stYnV0dG9uLWNvbG9ycyAtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb247XG5cblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tdGV4dCk7XG59XG5cbi5jay5jay1idXR0b24tYm9sZCxcbmEuY2suY2stYnV0dG9uLWJvbGQge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWZvY3VzLXJpbmcge1xuXHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRvdXRsaW5lOiBub25lO1xuXHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWRpc2FibGVkIHtcblx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWJ1dHRvbi1jb2xvcnMgJHByZWZpeCB7XG5cdGJhY2tncm91bmQ6IHZhcigkKHByZWZpeCktYmFja2dyb3VuZCk7XG5cblx0Jjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoJChwcmVmaXgpLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigkKHByZWZpeCktYWN0aXZlLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cblx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKCQocHJlZml4KS1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGRlZmluZS1taXhpbiBjay1kaXIgJGRpcmVjdGlvbiB7XG5cdFtkaXI9XCIkKGRpcmVjdGlvbilcIl0gJiB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4vKiBOb3RlOiBUbyBhdm9pZCByZW5kZXJpbmcgaXNzdWVzIChhbGlhc2luZykgYnV0IHRvIHByZXNlcnZlIHRoZSByZXNwb25zaXZlIG5hdHVyZVxub2YgdGhlIGNvbXBvbmVudCwgZmxvYXRpbmfigJNwb2ludCBudW1iZXJzIGhhdmUgYmVlbiB1c2VkIHdoaWNoLCBmb3IgdGhlIGRlZmF1bHQgZm9udCBzaXplXG4oc2VlOiAtLWNrLWZvbnQtc2l6ZS1iYXNlKSwgd2lsbCBnZW5lcmF0ZSBzaW1wbGUgaW50ZWdlcnMuICovXG46cm9vdCB7XG5cdC8qIDM0cHggYXQgMTNweCBmb250LXNpemUgKi9cblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aDogMi42MTUzODQ2MTU0ZW07XG5cdC8qIDE0cHggYXQgMTNweCBmb250LXNpemUgKi9cblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplOiBjYWxjKDEuMDc2OTIzMDc2OWVtICsgMXB4KTtcblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uOiBjYWxjKFxuXHRcdHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoKSAtXG5cdFx0dmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSkgLVxuXHRcdDJweCAvKiBCb3JkZXIgKi9cblx0KTtcblx0LS1jay1zd2l0Y2gtYnV0dG9uLWlubmVyLWhvdmVyLXNoYWRvdzogMCAwIDAgNXB4IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItc2hhZG93KTtcbn1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24ge1xuXHQvKiBVbmxpa2UgYSByZWd1bGFyIGJ1dHRvbiwgdGhlIHN3aXRjaCBidXR0b24gdGV4dCBjb2xvciBhbmQgYmFja2dyb3VuZCBzaG91bGQgbmV2ZXIgY2hhbmdlLlxuXHQgKiBDaGFuZ2luZyB0b2dnbGUgc3dpdGNoIChiYWNrZ3JvdW5kLCBvdXRsaW5lKSBpcyBlbm91Z2ggdG8gY2FycnkgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZVxuXHQgKiBzdGF0ZSBvZiB0aGUgZW50aXJlIGNvbXBvbmVudCAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTI1MTkpXG5cdCAqL1xuXHQmLCAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSwgJi5jay1vbjpob3ZlciwgJi5jay1vbjpmb2N1cywgJi5jay1vbjphY3RpdmUge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR9XG5cblx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0LyogU2VwYXJhdGUgdGhlIGxhYmVsIGZyb20gdGhlIHN3aXRjaCAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0LyogU2VwYXJhdGUgdGhlIGxhYmVsIGZyb20gdGhlIHN3aXRjaCAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgdG9nZ2xlIGlzIGFsd2F5cyB0byB0aGUgcmlnaHQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSB0b2dnbGUgaXMgYWx3YXlzIHRvIHRoZSBsZWZ0IGFzIGZhciBhcyBwb3NzaWJsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cblx0XHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdFx0LyogR2VudGx5IGFuaW1hdGUgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRvZ2dsZSBzd2l0Y2ggKi9cblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQwMG1zIGVhc2UsIGJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0LCBvdXRsaW5lIC4ycyBlYXNlLWluLW91dDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHR3aWR0aDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGgpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWJhY2tncm91bmQpO1xuXG5cdFx0JiAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiBjYWxjKC41ICogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykpO1xuXHRcdFx0fVxuXG5cdFx0XHR3aWR0aDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1iYWNrZ3JvdW5kKTtcblxuXHRcdFx0LyogR2VudGx5IGFuaW1hdGUgdGhlIGlubmVyIHBhcnQgb2YgdGhlIHRvZ2dsZSBzd2l0Y2ggKi9cblx0XHRcdHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlO1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtaG92ZXItYmFja2dyb3VuZCk7XG5cblx0XHRcdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLXN3aXRjaC1idXR0b24taW5uZXItaG92ZXItc2hhZG93KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmNrLWRpc2FibGVkIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHR9XG5cblx0LyogT3ZlcnJpZGluZyBkZWZhdWx0IC5jay1idXR0b246Zm9jdXMgc3R5bGVzICsgYW4gb3V0bGluZSBhcm91bmQgdGhlIHRvb2dsZSAqL1xuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCA1cHggdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0XHRcdG91dGxpbmUtb2Zmc2V0OiAxcHg7XG5cdFx0XHRvdXRsaW5lOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHR9XG5cdH1cblxuXHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHQmLmNrLW9uIHtcblx0XHQmIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0Lypcblx0XHRcdFx0KiBNb3ZlIHRoZSB0b2dnbGUgc3dpdGNoIHRvIHRoZSByaWdodC4gSXQgd2lsbCBiZSBhbmltYXRlZC5cblx0XHRcdFx0Ki9cblx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggY2FsYyggLTEgKiB2YXIoIC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbiApICkgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXG5cdCYsXG5cdCYuY2stb24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHR9XG5cblx0JjpoYXMoLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlcikge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogYC5jay1vbmAgY2xhc3MgYW5kIGJhY2tncm91bmQgc3R5bGluZyBpcyBvdmVycmlkZGVuIGZvciBgY2stYnV0dG9uYCBpbiBtYW55IHBsYWNlcy5cblx0ICogVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJhY2tncm91bmQgaXMgbm90IG92ZXJyaWRkZW4gYW5kIHVzZXMgc2ltaWxhclxuXHQgKiBzZWxlY3RvciBzcGVjaWZpY2l0eSBhcyB0aGUgb3RoZXIgb3ZlcnJpZGVzLlxuXHQgKi9cblx0Jjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSxcblx0Ji5jay1idXR0b24uY2stb246aG92ZXIsXG5cdCYuY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uX3RvZ2dsZWFibGUpLFxuXHQmLmNrLW9uOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblxuXHRcdCY6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbGxhcHNpYmxlLWFycm93LXNpemU6IGNhbGMoMC41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG59XG5cbi5jay5jay1jb2xsYXBzaWJsZSB7XG5cdCYgPiAuY2suY2stYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cblx0XHQmOmFjdGl2ZSwgJjpub3QoOmZvY3VzKSwgJjpob3Zlcjpub3QoOmZvY3VzKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblxuXHRcdCYgPiAuY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1jb2xsYXBzaWJsZS1hcnJvdy1zaXplKTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLWNvbGxhcHNpYmxlX19jaGlsZHJlbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cblx0Ji5jay1jb2xsYXBzaWJsZV9jb2xsYXBzZWQge1xuXHRcdCYgPiAuY2suY2stYnV0dG9uIC5jay1pY29uIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19tZWRpYWNvbG9ycy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplOiAyNHB4O1xuXG5cdC8qIE5vdCB1c2luZyBnbG9iYWwgY29sb3JzIGhlcmUgYmVjYXVzZSB0aGVzZSBtYXkgY2hhbmdlIGJ1dCBzb21lIGNvbG9ycyBpbiBhIHBhbGxldHRlXG5cdCAqIHJlcXVpcmUgc3BlY2lhbCB0cmVhdG1lbnQuIEZvciBpbnN0YW5jZSwgdGhpcyBlbnN1cmVzIG5vIG1hdHRlciB3aGF0IHRoZSBVSSB0ZXh0IGNvbG9yIGlzLFxuXHQgKiB0aGUgY2hlY2sgaWNvbiB3aWxsIGxvb2sgZ29vZCBvbiB0aGUgYmxhY2sgY29sb3IgdGlsZS4gKi9cblx0LS1jay1jb2xvci1jb2xvci1ncmlkLWNoZWNrLWljb246IGhzbCgyMTIsIDgxJSwgNDYlKTtcbn1cblxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRncmlkLWdhcDogNXB4O1xuXHRwYWRkaW5nOiA4cHg7XG59XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlIHtcblx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblxuXHRAbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0Ji5jay1vbixcblx0XHQmOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0Jjpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdH1cblxuXHRcdCYuY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXRpbGVfYm9yZGVyZWQge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0XHR9XG5cblx0XHQmOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0Jjpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHRoZSBjb2xvcnMgYXJlIHJlcGxhY2VkIHdpdGggdGV4dCBsYWJlbHMuXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0ICovXG5cdEBtaXhpbiBjay1tZWRpYS1mb3JjZWQtY29sb3JzIHtcblx0XHR3aWR0aDogdW5zZXQ7XG5cdFx0aGVpZ2h0OiB1bnNldDtcblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmLmNrLWRpc2FibGVkIHtcblx0XHRjdXJzb3I6IHVuc2V0O1xuXHRcdHRyYW5zaXRpb246IHVuc2V0O1xuXHR9XG5cblx0JiAuY2suY2staWNvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItY29sb3ItZ3JpZC1jaGVjay1pY29uKTtcblx0fVxuXG5cdCYuY2stb24ge1xuXHRcdCYgLmNrLmNrLWljb24ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1jb2xvci1ncmlkX19sYWJlbCB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AZGVmaW5lLW1peGluIGNrLW1lZGlhLWZvcmNlZC1jb2xvcnMge1xuXHRAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdCYge1xuXHRcdFx0QG1peGluLWNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQmIHtcblx0XHRcdEBtaXhpbi1jb250ZW50O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1jb2xvci1zZWxlY3RvciB7XG5cdC8qIFZpZXcgZnJhZ21lbnQgd2l0aCBjb2xvciBncmlkcy4gKi9cblx0JiAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQge1xuXHRcdCYgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fcmVtb3ZlLWNvbG9yLFxuXHRcdCYgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLmNrLWljb24ge1xuXHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmIGxhYmVsLmNrLmNrLWNvbG9yLWdyaWRfX2xhYmVsIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiB1bnNldDtcblx0XHR9XG5cdH1cblxuXHQvKiBWaWV3IGZyYWdtZW50IHdpdGggYSBjb2xvciBwaWNrZXIuICovXG5cdCYgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCB7XG5cdFx0JiAuY2suY2stY29sb3ItcGlja2VyIHtcblx0XHRcdHBhZGRpbmc6IDhweDtcblxuXHRcdFx0JiAuaGV4LWNvbG9yLXBpY2tlciB7XG5cdFx0XHRcdGhlaWdodDogMTAwcHg7XG5cdFx0XHRcdG1pbi13aWR0aDogMTgwcHg7XG5cblx0XHRcdFx0Jjo6cGFydChzYXR1cmF0aW9uKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgMCAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjo6cGFydChodWUpIHtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOjpwYXJ0KHNhdHVyYXRpb24tcG9pbnRlciksXG5cdFx0XHRcdCY6OnBhcnQoaHVlLXBvaW50ZXIpIHtcblx0XHRcdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDE1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmIC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIHtcblx0XHRcdHBhZGRpbmc6IDAgOHB4IDhweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3I6IGhzbGEoIDAsIDAlLCAwJSwgLjUgKTtcblx0LS1jay1kaWFsb2ctZHJvcC1zaGFkb3c6IDBweCAwcHggNnB4IDJweCBoc2woMGRlZyAwJSAwJSAvIDE1JSk7XG5cdC0tY2stZGlhbG9nLW1heC13aWR0aDogMTAwdnc7XG5cdC0tY2stZGlhbG9nLW1heC1oZWlnaHQ6IDkwdmg7XG5cdC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuXG4uY2suY2stZGlhbG9nLW92ZXJsYXkge1xuXHRhbmltYXRpb246IGNrLWRpYWxvZy1mYWRlLWluIC4zcztcblx0YmFja2dyb3VuZDogdmFyKC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcik7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGlhbG9nKTtcbn1cblxuLmNrLmNrLWRpYWxvZyB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHQtLWNrLWRyb3Atc2hhZG93OiB2YXIoLS1jay1kaWFsb2ctZHJvcC1zaGFkb3cpO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRpYWxvZy1iYWNrZ3JvdW5kKTtcblx0bWF4LWhlaWdodDogdmFyKC0tY2stZGlhbG9nLW1heC1oZWlnaHQpO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWRpYWxvZy1tYXgtd2lkdGgpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cblx0JiAuY2suY2stZm9ybV9faGVhZGVyIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcik7XG5cdH1cbn1cblxuLmNrLWRpYWxvZy1zY3JvbGwtbG9ja2VkIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQGtleWZyYW1lcyBjay1kaWFsb2ctZmFkZS1pbiB7XG5cdDAlIHtcblx0XHRiYWNrZ3JvdW5kOiBoc2xhKCAwLCAwJSwgMCUsIDAgKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3IpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AZGVmaW5lLW1peGluIGNrLW1lZGlhLXBob25lIHtcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRpYWxvZyB7XG5cdCYgLmNrLmNrLWRpYWxvZ19fYWN0aW9ucyB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHQmID4gKiArICoge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1hcnJvdy1zaXplOiBjYWxjKDAuNSAqIHZhcigtLWNrLWljb24tc2l6ZSkpO1xufVxuXG4uY2suY2stZHJvcGRvd24ge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXG5cdCYgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdCYgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHQmIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWRpc2FibGVkIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0fVxuXG5cdCYgLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0XHQvKiBNYWtlIHN1cmUgZHJvcGRvd25zIHdpdGgganVzdCBhbiBpY29uIGhhdmUgdGhlIHJpZ2h0IGlubmVyIHNwYWNpbmcgKi9cblx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0XHQvKiBNYWtlIHN1cmUgZHJvcGRvd25zIHdpdGgganVzdCBhbiBpY29uIGhhdmUgdGhlIHJpZ2h0IGlubmVyIHNwYWNpbmcgKi9cblx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogIzIzICovXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogN2VtO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cblx0XHQmLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0XHR9XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19idXR0b25fbGFiZWwtd2lkdGhfYXV0byAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84Njk5ICovXG5cdFx0Ji5jay1vZmY6YWN0aXZlLFxuXHRcdCYuY2stb246YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uY2suY2stZHJvcGRvd25fX3BhbmVsIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cblx0LyogTWFrZSBzdXJlIHRoZSBwYW5lbCBpcyBhdCBsZWFzdCBhcyB3aWRlIGFzIHRoZSBkcm9wLWRvd24ncyBidXR0b24uICovXG5cdG1pbi13aWR0aDogMTAwJTtcblxuXHQvKiBEaXNhYmxlZCBjb3JuZXIgYm9yZGVyIHJhZGl1cyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIC5kcm9wZG93bl9fYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stZHJvcGRvd25fX3BhbmVsX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stZHJvcGRvd25fX3BhbmVsX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IHtcblx0LyogRGlzYWJsZWQgcmFkaXVzIG9mIHRvcC1sZWZ0IGJvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGggLmRyb3Bkb3duX19idXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQvKiBNYWtlIHN1cmUgdGhlIGJ1dHRvbiBiZWxvbmdpbmcgdG8gdGhlIGZpcnN0L2xhc3QgY2hpbGQgb2YgdGhlIGxpc3QgZ29lcyB3ZWxsIHdpdGggdGhlXG5cdGJvcmRlciByYWRpdXMgb2YgdGhlIGVudGlyZSBwYW5lbC4gKi9cblx0JiAuY2stbGlzdF9faXRlbSB7XG5cdFx0JjpmaXJzdC1jaGlsZCA+IC5jay1idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bGFzdC1jaGlsZCA+IC5jay1idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDkyJSk7XG5cdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcjogaHNsKDAsIDAlLCA3MCUpO1xufVxuXG4uY2suY2stc3BsaXRidXR0b24ge1xuXHQvKlxuXHQgKiBOb3RlOiBjay1yb3VuZGVkIGFuZCBjay1kaXIgbWl4aW5zIGRvbid0IGdvIHRvZ2V0aGVyIChiZWNhdXNlIHRoZXkgYm90aCB1c2UgQG5lc3QpLlxuXHQgKi9cblx0Jjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uLFxuXHQmLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhY3Rpb24gYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuXG5cdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhY3Rpb24gYnV0dG9uIG9uIHRoZSBsZWZ0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdC8qIEl0J3MgYSB0ZXh0LWxlc3MgYnV0dG9uIGFuZCBzaW5jZSB0aGUgaWNvbiBpcyBwb3NpdGlvbmVkIGFic29sdXRlbHkgaW4gc3VjaCBzaXR1YXRpb24sXG5cdFx0aXQgbXVzdCBnZXQgc29tZSBhcmJpdHJhcnkgbWluLXdpZHRoLiAqL1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFycm93IGJ1dHRvbiBvbiB0aGUgbGVmdCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cblxuXHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYXJyb3cgYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuXG5cdFx0JiBzdmcge1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXHRcdH1cblx0fVxuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgZGl2aWRlciBzdHJldGNoZXMgMTAwJSBoZWlnaHQgb2YgdGhlIGJ1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMDkzNiAqL1xuXHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoOmZvY3VzKSB7XG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogMHB4O1xuXHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcblx0fVxuXG5cdC8qIERvbid0IHJvdW5kIHRoZSBib3R0b20gbGVmdCBhbmQgcmlnaHQgY29ybmVycyBvZiB0aGUgYnV0dG9ucyB3aGVuIFwib3BlblwiXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHQmLmNrLXNwbGl0YnV0dG9uX29wZW4ge1xuXHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdH1cblxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKiBXaGVuIHRoZSBzcGxpdCBidXR0b24gaXMgXCJvcGVuXCIgKHRoZSBhcnJvdyBpcyBvbikgb3IgYmVpbmcgaG92ZXJlZCwgaXQgc2hvdWxkIGdldCBzb21lIHN0eWxpbmdcblx0YXMgYSB3aG9sZS4gVGhlIGJhY2tncm91bmQgb2YgYm90aCBidXR0b25zIHNob3VsZCBzdGFuZCBvdXQgYW5kIHRoZXJlIHNob3VsZCBiZSBhIHZpc3VhbFxuXHRzZXBhcmF0aW9uIGJldHdlZW4gYm90aCBidXR0b25zLiAqL1xuXHQmLmNrLXNwbGl0YnV0dG9uX29wZW4sXG5cdCY6aG92ZXIge1xuXHRcdC8qIFdoZW4gdGhlIHNwbGl0IGJ1dHRvbiBob3ZlcmVkIGFzIGEgd2hvbGUsIG5vdCBhcyBpbmRpdmlkdWFsIGJ1dHRvbnMuICovXG5cdFx0JiA+IC5jay1idXR0b246bm90KC5jay1vbik6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblxuXHRcdC8qIFNwbGl0YnV0dG9uIHNlcGFyYXRvciBuZWVkcyB0byBiZSBzZXQgd2l0aCB0aGUgOjphZnRlciBwc2V1ZG9zZWxlY3RvclxuXHRcdHRvIGRpc3BsYXkgcHJvcGVybHkgdGhlIGJvcmRlcnMgb24gZm9jdXMgKi9cblx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogMXB4O1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBkaXZpZGVyIGJldHdlZW4gdGhlIGJ1dHRvbnMgbG9va3MgZmluZSB3aGVuIHRoZSBidXR0b24gaXMgZm9jdXNlZCAqL1xuXHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93OmZvY3VzOjphZnRlciB7XG5cdFx0XHQtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXI6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRcdGxlZnQ6IC0xcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRcdHJpZ2h0OiAtMXB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRvb2xiYXItZHJvcGRvd24gLmNrLXRvb2xiYXIge1xuXHRib3JkZXI6IDA7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2J1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4vKlxuICogQWxsIG1lbnUgYnV0dG9ucy5cbiAqL1xuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24ge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0Jjpub3QoLmNrLW9uKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cblx0Ji5jay1kaXNhYmxlZCA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdH1cblxuXHQvKiBTcGFjaW5nIGluIGJ1dHRvbnMgdGhhdCBtaXNzIHRoZSBpY29uLiAqL1xuXHQmLmNrLWljb24tc3BhY2luZzpub3QoOmhhcyguY2stYnV0dG9uX19pY29uKSkgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSAtIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuXG5cdCYgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuXHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgcmlnaHQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIGxlZnQgKi9cblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cblx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIGxlZnQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIHJpZ2h0IChhZnRlciByb3RhdGlvbikuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWRpc2FibGVkID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHQmID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdCYgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW0ge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1pdGVtLW1pbi13aWR0aCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogTGlzdCBpdGVtIGJ1dHRvbnMuXG4gKi9cbi5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQmID4gLmNrLXNwaW5uZXItY29udGFpbmVyLFxuXHQmID4gLmNrLXNwaW5uZXItY29udGFpbmVyIC5jay1zcGlubmVyIHtcblx0XHQvKiBUaGVzZSBzdHlsZXMgY29ycmVzcG9uZCB0byAuY2staWNvbiBzbyB0aGF0IHRoZSBzcGlubmVyIHNlYW1sZXNzbHkgcmVwbGFjZXMgdGhlIGljb24uICovXG5cdFx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMjBweDtcblx0fVxuXG5cdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdC8qIFRoZXNlIG1hcmdpbnMgYXJlIHRoZSBzYW1lIGFzIGZvciAuY2staWNvbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0Lypcblx0ICogSG92ZXJlZCBpdGVtcyBhdXRvbWF0aWNhbGx5IGdldCBmb2N1c2VkLiBEZWZhdWx0IGZvY3VzIHN0eWxlcyBsb29rIG9kZFxuXHQgKiB3aGlsZSBtb3ZpbmcgYWNyb3NzIGEgaHVnZSBsaXN0IG9mIGl0ZW1zIHNvIGxldCdzIGdldCByaWQgb2YgdGhlbVxuXHQgKi9cblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0Jjpub3QoLmNrLW9uKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tZW51LW1lbnUtcGFuZWwtbWF4LXdpZHRoOiA3NXZ3O1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwge1xuXHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tZW51LW1lbnUtcGFuZWwtbWF4LXdpZHRoKTtcblxuXHQvKiBSZXNldCBiYWxsb29uIHN0eWxpbmcgKi9cblx0Jjo6YWZ0ZXIsXG5cdCY6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC8qIENvcm5lciBib3JkZXIgcmFkaXVzIGNvbnNpc3RlbnQgd2l0aCB0aGUgYnV0dG9uLiAqL1xuXHQmLmNrLWJhbGxvb24tcGFuZWxfZXMsXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF93cyxcblx0Ji5jay1iYWxsb29uLXBhbmVsX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9lbixcblx0Ji5jay1iYWxsb29uLXBhbmVsX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3duLFxuXHQmLmNrLWJhbGxvb24tcGFuZWxfbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC13aWR0aDogNjAwcHg7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtaGVpZ2h0OiA0MDBweDtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcjogaHNsKDIyMCwgNiUsIDgxJSk7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1jb2RlLWJhY2tncm91bmQtY29sb3I6IGhzbCgwZGVnIDAlIDkyLjk0JSk7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1rYmQtc2hhZG93LWNvbG9yOiBoc2woMGRlZyAwJSA2MSUpO1xufVxuXG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LXdpZHRoKTtcblx0bWF4LWhlaWdodDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtaGVpZ2h0KTtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHVzZXItc2VsZWN0OiB0ZXh0O1xuXG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdCY6Zm9jdXMge1xuXHRcdEBtaXhpbiBjay1mb2N1cy1yaW5nO1xuXHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdH1cblxuXHQqIHtcblx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHR9XG5cblx0LyogSGlkZSB0aGUgbWFpbiBsYWJlbCBvZiB0aGUgY29udGVudCBjb250YWluZXIuICovXG5cdCYgLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0JiBoMyB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Zm9udC1zaXplOiAxLjJlbTtcblx0fVxuXG5cdCYgaDQge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXHR9XG5cblx0JiBwLFxuXHQmIGgzLFxuXHQmIGg0LFxuXHQmIHRhYmxlIHtcblx0XHRtYXJnaW46IDFlbSAwO1xuXHR9XG5cblx0JiBkbCB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnI7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctYm9yZGVyLWNvbG9yKTtcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXG5cdFx0JiBkdCwgJiBkZCB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3IpO1xuXHRcdFx0cGFkZGluZzogLjRlbSAwO1xuXHRcdH1cblxuXHRcdCYgZHQge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG5cdFx0fVxuXG5cdFx0JiBkZCB7XG5cdFx0XHRncmlkLWNvbHVtbi1zdGFydDogMjtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxuXG5cdCYga2JkLCAmIGNvZGUge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWNvZGUtYmFja2dyb3VuZC1jb2xvcik7XG5cdFx0cGFkZGluZzogLjRlbTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAuOWVtO1xuXHR9XG5cblx0JiBjb2RlIHtcblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHR9XG5cblx0JiBrYmQge1xuXHRcdG1pbi13aWR0aDogMS44ZW07XG5cdFx0Ym94LXNoYWRvdzogMHB4IDFweCAxcHggdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1rYmQtc2hhZG93LWNvbG9yKTtcblx0XHRtYXJnaW46IDAgMXB4O1xuXG5cdFx0JiArIGtiZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMnB4O1xuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX2J1dHRvbi5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWVkaXRhYmxlLWJsdXItc2VsZWN0aW9uOiBoc2woMCwgMCUsIDg1JSk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHQmLmNrLWZvY3VzZWQge1xuXHRcdEBtaXhpbiBjay1mb2N1cy1yaW5nO1xuXHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWlubmVyLXNoYWRvdyk7XG5cdH1cbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdCZbZGlyPVwibHRyXCJdIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0JltkaXI9XCJydGxcIl0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTYgKi9cblx0JiA+ICo6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODQ3ICovXG5cdCYgPiAqOmxhc3QtY2hpbGQge1xuXHRcdC8qXG5cdFx0ICogVGhpcyB2YWx1ZSBzaG91bGQgbWF0Y2ggd2l0aCB0aGUgZGVmYXVsdCBtYXJnaW5zIG9mIHRoZSBibG9jayBlbGVtZW50cyAobGlrZSAubWVkaWEgb3IgLmltYWdlKVxuXHRcdCAqIHRvIGF2b2lkIGEgY29udGVudCBqdW1waW5nIHdoZW4gdGhlIGZha2Ugc2VsZWN0aW9uIGNvbnRhaW5lciBzaG93cyB1cCAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLlxuXHRcdCAqL1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjUxNyAqL1xuXHQmLmNrLWJsdXJyZWQgOjpzZWxlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWVkaXRhYmxlLWJsdXItc2VsZWN0aW9uKTtcblx0fVxufVxuXG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExMSAqL1xuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbGJhci1jb250YWluZXJbY2xhc3MqPVwiYXJyb3dfblwiXSB7XG5cdCY6OmFmdGVyIHtcblx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0fVxufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sYmFyLWNvbnRhaW5lcltjbGFzcyo9XCJhcnJvd19zXCJdIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWZvcm0taGVhZGVyLWhlaWdodDogNDRweDtcbn1cblxuLmNrLmNrLWZvcm1fX2hlYWRlciB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLWZvcm0taGVhZGVyLWhlaWdodCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1mb3JtLWhlYWRlci1oZWlnaHQpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdCYgPiAuY2staWNvbiB7XG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHQtLWNrLWZvbnQtc2l6ZS1iYXNlOiAxNXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staWNvbi1zaXplOiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCkpO1xuXHQtLWNrLWljb24tZm9udC1zaXplOiAuODMzMzM1MDY5NGVtO1xufVxuXG4uY2suY2staWNvbiB7XG5cdHdpZHRoOiB2YXIoLS1jay1pY29uLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cblx0LyogTXVsdGlwbGllZCBieSB0aGUgaGVpZ2h0IG9mIHRoZSBsaW5lIGluIFwicHhcIiBzaG91bGQgZ2l2ZSBTVkcgXCJ2aWV3cG9ydFwiIGRpbWVuc2lvbnMgKi9cblx0Zm9udC1zaXplOiB2YXIoLS1jay1pY29uLWZvbnQtc2l6ZSk7XG5cblx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0Y3Vyc29yOiBpbmhlcml0O1xuXG5cdCYgKiB7XG5cdFx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0XHRjdXJzb3I6IGluaGVyaXQ7XG5cdH1cblxuXHQvKiBBbGxvd3MgZHluYW1pYyBjb2xvcmluZyBvZiBhbiBpY29uIGJ5IGluaGVyaXRpbmcgaXRzIGNvbG9yIGZyb20gdGhlIHBhcmVudC4gKi9cblx0Ji5jay1pY29uX2luaGVyaXQtY29sb3Ige1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0JiAqIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0XHQmOm5vdChbZmlsbF0pIHtcblx0XHRcdFx0LyogTmVlZGVkIGJ5IEZGLiAqL1xuXHRcdFx0XHRmaWxsOiBjdXJyZW50Q29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1pbnB1dC13aWR0aDogMThlbTtcblxuXHQvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqL1xuXHQtLWNrLWlucHV0LXRleHQtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcbn1cblxuLmNrLmNrLWlucHV0IHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1leHRyYS10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXG5cdC8qIFRoaXMgaXMgaW1wb3J0YW50IHRvIHN0YXkgb2YgdGhlIHNhbWUgaGVpZ2h0IGFzIHN1cnJvdW5kaW5nIGJ1dHRvbnMgKi9cblx0bWluLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMXMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMXMgZWFzZS1pbi1vdXQ7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxuXG5cdCZbcmVhZG9ubHldIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXIpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KTtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0LyogVGhlIHJlYWQtb25seSBpbnB1dCBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWVycm9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcik7XG5cdFx0YW5pbWF0aW9uOiBjay1pbnB1dC1zaGFrZSAuM3MgZWFzZSBib3RoO1xuXG5cdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdyk7XG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2staW5wdXQtc2hha2Uge1xuXHQyMCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcblx0fVxuXG5cdDQwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG5cdH1cblxuXHQ2MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcblx0fVxuXG5cdDgwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFweCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb246IC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yNCwgMC45NSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gMiAqIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15OiBjYWxjKDAuNiAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdC0tY2stY29sb3ItbGFiZWxlZC1maWVsZC1sYWJlbC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHQmID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHQmID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRvcDogMHB4O1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdGxlZnQ6IDBweDtcblx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuXHRcdFx0XHQvKiBCeSBkZWZhdWx0LCBkaXNwbGF5IHRoZSBsYWJlbCBzY2FsZWQgZG93biBhYm92ZSB0aGUgZmllbGQuICovXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgLTZweCkgc2NhbGUoLjc1KTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRyaWdodDogMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkpLCAtNnB4KSBzY2FsZSguNzUpO1xuXHRcdFx0fVxuXG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGFiZWxlZC1maWVsZC1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IDAgY2FsYyguNSAqIHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KSk7XG5cdFx0XHRsaW5lLWhlaWdodDogaW5pdGlhbDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdC8qIFByZXZlbnQgb3ZlcmZsb3cgd2hlbiB0aGUgbGFiZWwgaXMgbG9uZ2VyIHRoYW4gdGhlIGlucHV0ICovXG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0dHJhbnNpdGlvbjpcblx0XHRcdFx0dHJhbnNmb3JtIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKSxcblx0XHRcdFx0cGFkZGluZyB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbiksXG5cdFx0XHRcdGJhY2tncm91bmQgdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pO1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuY2stZXJyb3Ige1xuXHRcdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHR9XG5cblx0XHQmIC5jay1pbnB1dDpub3QoW3JlYWRvbmx5XSkgKyAuY2suY2stbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHQvKiBMZXQgdGhlIGluZm8gd3JhcCB0byB0aGUgbmV4dCBsaW5lIHRvIGF2b2lkIHN0cmV0Y2hpbmcgdGhlIGxheW91dCBob3Jpem9udGFsbHkuXG5cdFx0VGhlIHN0YXR1cyBjb3VsZCBiZSB2ZXJ5IGxvbmcuICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuXHRcdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXNfZXJyb3Ige1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cblx0fVxuXG5cdC8qIERpc2FibGVkIGZpZWxkcyBhbmQgZmllbGRzIHRoYXQgaGF2ZSBubyBmb2N1cyBzaG91bGQgZmFkZSBvdXQuICovXG5cdCYuY2stZGlzYWJsZWQgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLFxuXHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KTtcblx0fVxuXG5cdC8qIEZpZWxkcyB0aGF0IGFyZSBkaXNhYmxlZCBvciBub3QgZm9jdXNlZCBhbmQgd2l0aG91dCBhIHBsYWNlaG9sZGVyIHNob3VsZCBoYXZlIGZ1bGwtc2l6ZWQgbGFiZWxzLiAqL1xuXHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHQmLmNrLWRpc2FibGVkLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLFxuXHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcik6bm90KC5jay1lcnJvcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teCksIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15KSkgc2NhbGUoMSk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSksIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15KSkgc2NhbGUoMSk7XG5cdFx0fVxuXG5cdFx0LyogQ29tcGVuc2F0ZSBmb3IgdGhlIGRlZmF1bHQgdHJhbnNsYXRlIHBvc2l0aW9uLiAqL1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGgpKTtcblxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQvKi0tLS0tLSBEcm9wZG93blZpZXcgaW50ZWdyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvKiBNYWtlIHN1cmUgZHJvcGRvd24nIGJhY2tncm91bmQgY29sb3IgaW4gYW55IG9mIGRyb3Bkb3duJ3Mgc3RhdGUgZG9lcyBub3QgY29sbGlkZSB3aXRoIGxhYmVsZWQgZmllbGQuICovXG5cdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQvKiBXaGVuIHRoZSBkcm9wZG93biBpcyBcImVtcHR5XCIsIHRoZSBsYWJlbGVkIGZpZWxkIGxhYmVsIHJlcGxhY2VzIGl0cyBsYWJlbC4gKi9cblx0Ji5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHkgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0LyogTWFrZSBzdXJlIHRoZSBsYWJlbCBvZiB0aGUgZW1wdHksIHVuZm9jdXNlZCBpbnB1dCBkb2VzIG5vdCBjb3ZlciB0aGUgZHJvcGRvd24gYXJyb3cuICovXG5cdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gKyAuY2stbGFiZWwge1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGgpIC0gdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSkgLSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbGVkLWlucHV0IC5jay1sYWJlbGVkLWlucHV0X19zdGF0dXMge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdC8qIExldCB0aGUgaW5mbyB3cmFwIHRvIHRoZSBuZXh0IGxpbmUgdG8gYXZvaWQgc3RyZXRjaGluZyB0aGUgbGF5b3V0IGhvcml6b250YWxseS5cblx0VGhlIHN0YXR1cyBjb3VsZCBiZSB2ZXJ5IGxvbmcuICovXG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5jay5jay1sYWJlbGVkLWlucHV0IC5jay1sYWJlbGVkLWlucHV0X19zdGF0dXNfZXJyb3Ige1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWxpc3Qge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblxuXHQvKiBBIHNwYWNpbmcgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBsaXN0ICovXG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIDA7XG59XG5cbi5jay5jay1saXN0X19pdGVtIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdC8qIEFsbW9zdCBhcyB3aWRlIGFzIG1lbnUgYmFyIGl0ZW1zLiAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG5cblx0JiA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdFx0fVxuXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLXRleHQpO1xuXG5cdFx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzKTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1czpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxuXG5cdC8qIEl0J3MgdW5uZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBiYWNrZ3JvdW5kL3RleHQgb2YgYSBzd2l0Y2ggdG9nZ2xlOyBpdCBoYXMgZGlmZmVyZW50IHdheXNcblx0b2YgY29udmV5aW5nIGl0cyBzdGF0ZSAobGlrZSB0aGUgc3dpdGNoZXIpICovXG5cdCYgPiAuY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0Ji5jay1vbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay1saXN0IC5jay1saXN0X19ncm91cCB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cblx0LyogTGlzdHMgY29tZSB3aXRoIGFuIGlubmVyIHZlcnRpY2FsIHBhZGRpbmcuIERvbid0IGR1cGxpY2F0ZSBpdC4gKi9cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cblxuXHQvKiBUaGUgZ3JvdXAgc2hvdWxkIGhhdmUgYSBib3JkZXIgd2hlbiBpdCdzIG5vdCB0aGUgZmlyc3QgaXRlbS4gKi9cblx0Kjpub3QoLmNrLWhpZGRlbikgfiAmIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG5cblx0JiA+IC5jay1sYWJlbCB7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXHR9XG59XG5cbi5jay5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiBHaXZlIHRoZSBzZXBhcmF0b3Igc29tZSBhaXIgKi9cblx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAwO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRnYXA6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHdpZHRoOiAxMDAlO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX2J1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKlxuXHQgKiBBbGwgbWVudSBidXR0b25zLlxuXHQgKi9cblx0JiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdCYgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0fVxuXG5cdFx0Ji5jay1kaXNhYmxlZCA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFRvcC1sZXZlbCBtZW51IGJ1dHRvbnMgb25seS5cblx0ICovXG5cdCYuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblxuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IHVuc2V0O1xuXHRcdFx0bGluZS1oZWlnaHQ6IHVuc2V0O1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogVG9wLWxldmVsIGJ1dHRvbnMgZG9uJ3QgdXNlIGVsbGlwc2lzIGFuZCBvdmVyZmxvdzogaGlkZGVuIGNsaXBzIGRlc2NlbmRlcnMuXG5cdFx0XHQgKiAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE3NDIyLlxuXHRcdFx0ICovXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU3ViLW1lbnUgYnV0dG9ucy5cblx0ICovXG5cdCY6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0JiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuXHRcdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgbGVmdCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgcmlnaHQgKGFmdGVyIHJvdGF0aW9uKS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5jay1kaXNhYmxlZCA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IC5jay5jay1tZW51LWJhcl9fbWVudV9faXRlbSB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IHtcblx0Lypcblx0ICogTGlzdCBpdGVtIGJ1dHRvbnMuXG5cdCAqL1xuXHQmIC5jay1idXR0b24uY2stbWVudS1iYXJfX21lbnVfX2l0ZW1fX2J1dHRvbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIsXG5cdFx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciAuY2stc3Bpbm5lciB7XG5cdFx0XHQvKiBUaGVzZSBzdHlsZXMgY29ycmVzcG9uZCB0byAuY2staWNvbiBzbyB0aGF0IHRoZSBzcGlubmVyIHNlYW1sZXNzbHkgcmVwbGFjZXMgdGhlIGljb24uICovXG5cdFx0XHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAyMHB4O1xuXHRcdH1cblxuXHRcdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdFx0LyogVGhpcyBlbnN1cmVzIG1hcmdpbnMgY29ycmVzcG9uZGluZyB0byB0aGUgLmNrLWljb24uICovXG5cdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWljb24tZm9udC1zaXplKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLW1lbnUtYmFyLW1lbnUtcGFuZWwtbWF4LXdpZHRoOiA3NXZ3O1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xuXG5cdC8qIENvcm5lciBib3JkZXIgcmFkaXVzIGNvbnNpc3RlbnQgd2l0aCB0aGUgYnV0dG9uLiAqL1xuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lcyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc2Uge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4sXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24sXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX253IHtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0JiAuY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX2ZvY3VzLWJvcmRlci1lbmFibGVkIC5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdC8qIEZpeCB0cnVuY2F0ZWQgc2hhZG93cyBkdWUgdG8gcmVuZGVyaW5nIG9yZGVyLiAqL1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ei1pbmRleDogMjtcblxuXHRcdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoOiAxcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDJweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogMTBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDhweDtcblx0LS1jay1iYWxsb29uLWFycm93LWRyb3Atc2hhZG93OiAwIDJweCAycHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3ApO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfblwiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cImFycm93X3NcIl0ge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIDAgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0ZmlsdGVyOiBkcm9wLXNoYWRvdyh2YXIoLS1jay1iYWxsb29uLWFycm93LWRyb3Atc2hhZG93KSk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cImFycm93X2VcIl0ge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfd1wiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYyggLTEgKiB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X253IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uZSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X3Mge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc21lIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IDI1JTtcblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbXcge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19ubWUge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogMjUlO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X2Uge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0J3Mga2VlcCBzaW1pbGFyIGFwcGVhcmFuY2UgdG8gYGNrLXRvb2xiYXJgLiAqL1xuXHQmID4gKiB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdC8qIEdpdmVzIGNvdW50ZXIgbW9yZSBicmVhdGggdGhhbiBidXR0b25zLiAqL1xuXHQmIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvdW50ZXIge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBXZSBuZWVkIHRvIHVzZSBzbWFsbGVyIG1hcmdpbiBiZWNhdXNlIG9mIHByZXZpb3VzIGJ1dHRvbidzIHJpZ2h0IG1hcmdpbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbn1cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQge1xuXG5cdC8qIERpc2FibGUgZGVmYXVsdCBhbm5vdGF0aW9uIHNoYWRvdyBpbnNpZGUgcm90YXRvciB3aXRoIGZha2UgcGFuZWxzLiAqL1xuXHQmIC5jay5jay1hbm5vdGF0aW9uLXdyYXBwZXIge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbDogNnB4O1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWw6IDZweDtcbn1cblxuLyogTGV0J3MgdXNlIGAuY2stYmFsbG9vbi1wYW5lbGAgYXBwZWFyYW5jZS4gU2VlOiBiYWxsb29ucGFuZWwuY3NzLiAqL1xuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblxuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMSApIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCk7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMiApIHtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKSAqIDIpO1xuXHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpICogMik7XG59XG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMyApIHtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKSAqIDMpO1xuXHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpICogMyk7XG59XG5cbi8qIElmIGJhbGxvb24gaXMgcG9zaXRpb25lZCBhYm92ZSBlbGVtZW50LCB3ZSBuZWVkIHRvIG1vdmUgZmFrZSBwYW5lbCB0byB0aGUgdG9wLiAqL1xuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3MgKyAuY2stZmFrZS1wYW5lbCxcbi5jayAuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zZSArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3ICsgLmNrLWZha2UtcGFuZWwge1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWw6IC02cHg7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbi5jay5jay1zdGlja3ktcGFuZWwge1xuXHQmIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0XHRib3JkZXItd2lkdGg6IDAgMXB4IDFweDtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2stdmVydGljYWwtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6OmFmdGVyIHtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuXG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0Jjpmb2N1cyB7XG5cdFx0LyogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy80NzczICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHQmID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0JiA+IDpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IGNhbGMoLjggKiB2YXIoLS1jay1pbnB1dC13aWR0aCkpO1xuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblxuXHRcdFx0JiAuY2staW5wdXQtdGV4dCxcblx0XHRcdCYgLmNrLWlucHV0LW51bWJlciB7XG5cdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdC8qIExldCB0aGUgbG9uZyBlcnJvciBtZXNzYWdlcyB3cmFwIGluIHRoZSBuYXJyb3cgZm9ybS4gKi9cblx0XHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fZXJyb3Ige1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qIFN0eWxlcyBmb3IgdHdvIGxhc3QgYnV0dG9ucyBpbiB0aGUgZm9ybSAoc2F2ZSZjYW5jZWwsIGVkaXQmdW5saW5rLCBldGMuKS4gKi9cblx0XHQmID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSxcblx0XHQmID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmc6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSArIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSk7XG59XG5cbi5jay5jay1zZWFyY2gge1xuXHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0JiAuY2staW5wdXQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ji5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiB7XG5cdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXG5cdFx0XHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0Jjpub3QoLmNrLWlucHV0LXRleHRfZW1wdHkpIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCB7XG5cdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aDogMTAwJSAtIDIgKiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXG5cdFx0XHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSB7XG5cdFx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKSAtIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdFx0bWluLWhlaWdodDogYXV0bztcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRvcGFjaXR5OiAuNTtcblx0XHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdCY6bm90KC5jay1pbnB1dC10ZXh0X2VtcHR5KSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdCYgPiAuY2stc2VhcmNoX19pbmZvIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0XHQmICoge1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gc3BhbjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gc3BhbjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDE4cHg7XG59XG5cbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdHdpZHRoOiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRhbmltYXRpb246IDEuNXMgaW5maW5pdGUgY2stc3Bpbm5lci1yb3RhdGUgbGluZWFyO1xuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcblx0fVxufVxuXG4uY2suY2stc3Bpbm5lciB7XG5cdHdpZHRoOiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuQGtleWZyYW1lcyBjay1zcGlubmVyLXJvdGF0ZSB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpXG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBUaGlzIGZpeGVzIGEgcHJvYmxlbSBpbiBGaXJlZm94IHdoZW4gdGhlIGluaXRpYWwgaGVpZ2h0IG9mIHRoZSBjb21wbGVtZW50IGRvZXMgbm90IG1hdGNoIHRoZSBudW1iZXIgb2Ygcm93cy5cbiAqIFRoaXMgYnVnIGlzIGVzcGVjaWFsbHkgdmlzaWJsZSB3aGVuIHJvd3M9MS5cbiAqL1xuLmNrLXRleHRhcmVhIHtcblx0b3ZlcmZsb3cteDogaGlkZGVuXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItYmxvY2stdG9vbGJhci1idXR0b246IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHQtLWNrLWJsb2NrLXRvb2xiYXItYnV0dG9uLXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1ub3JtYWwpO1xufVxuXG4uY2suY2stYmxvY2stdG9vbGJhci1idXR0b24ge1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmxvY2stdG9vbGJhci1idXR0b24pO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWJsb2NrLXRvb2xiYXItc2l6ZSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay10b29sYmFyIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cblx0JiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdFx0d2lkdGg6IDFweDtcblx0XHRtaW4td2lkdGg6IDFweDtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cblx0XHQvKlxuXHRcdCAqIFRoZXNlIG1hcmdpbnMgbWFrZSB0aGUgc2VwYXJhdG9ycyBsb29rIGJldHRlciBpbiBiYWxsb29uIHRvb2xiYXJzICh3aGVuIGFsaWduZWQgd2l0aCB0aGUgXCJ0aXBcIikuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc0OTMuXG5cdFx0ICovXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQmIC5jay10b29sYmFyX19saW5lLWJyZWFrIHtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHQmID4gKjpub3QoLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWspIHtcblx0XHRcdC8qICgjMTEpIFNlcGFyYXRlIHRvb2xiYXIgaXRlbXMuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdC8qIERvbid0IGRpc3BsYXkgYSBzZXBhcmF0b3IgYWZ0ZXIgYW4gZW1wdHkgaXRlbXMgY29udGFpbmVyLCBmb3IgaW5zdGFuY2UsXG5cdFx0d2hlbiBhbGwgaXRlbXMgd2VyZSBncm91cGVkICovXG5cdFx0JjplbXB0eSArIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKjpub3QoLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWspLFxuXHQmID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24ge1xuXHRcdC8qIE1ha2Ugc3VyZSBpdGVtcyB3cmFwcGVkIHRvIHRoZSBuZXh0IGxpbmUgaGF2ZSB2LXNwYWNpbmcgKi9cblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl92ZXJ0aWNhbCB7XG5cdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aC4gKi9cblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0LyogU3BlY2lmaWNpdHkgbWF0dGVycyBoZXJlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xNjguICovXG5cdFx0JiA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc2hvdWxkIHNwYW4gdGhlIGhvcml6b250YWwgc3BhY2UuICovXG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBoYXZlIG5vIG1hcmdpbi4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aCBzbyByb3VuZGVkIGNvcm5lcnMgYXJlIHBvaW50bGVzcy4gKi9cblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay10b29sYmFyX2NvbXBhY3Qge1xuXHRcdC8qIE5vIHNwYWNpbmcgYXJvdW5kIGl0ZW1zLiAqL1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKiB7XG5cdFx0XHQvKiBDb21wYWN0IHRvb2xiYXIgaXRlbXMgaGF2ZSBubyBzcGFjaW5nIGJldHdlZW4gdGhlbS4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogXCJNaWRkbGVcIiBjaGlsZHJlbiBzaG91bGQgaGF2ZSBubyByb3VuZGVkIGNvcm5lcnMuICovXG5cdFx0XHQmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biB7XG5cdFx0Lypcblx0XHQgKiBEcm9wZG93biBidXR0b24gaGFzIGFzeW1tZXRyaWMgcGFkZGluZyB0byBmaXQgdGhlIGFycm93LlxuXHRcdCAqIFRoaXMgYnV0dG9uIGhhcyBubyBhcnJvdyBzbyBsZXQncyByZXZlcnQgdGhhdCBwYWRkaW5nIGJhY2sgdG8gbm9ybWFsLlxuXHRcdCAqL1xuXHRcdCYgPiAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdH1cblx0fVxuXG5cdC8qIEEgZHJvcC1kb3duIGNvbnRhaW5pbmcgdGhlIG5lc3RlZCB0b29sYmFyIHdpdGggY29uZmlndXJlZCBpdGVtcy4gKi9cblx0JiAuY2stdG9vbGJhcl9fbmVzdGVkLXRvb2xiYXItZHJvcGRvd24ge1xuXHRcdC8qIFByZXZlbnQgZW1wdHkgc3BhY2UgaW4gdGhlIHBhbmVsIHdoZW4gdGhlIGRyb3Bkb3duIGxhYmVsIGlzIHZpc2libGUgYW5kIGxvbmcgYnV0IHRoZSB0b29sYmFyIGhhcyBmZXcgaXRlbXMuICovXG5cdFx0JiA+IC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdCYgPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bWF4LXdpZHRoOiA3ZW07XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0LmNrLXRvb2xiYXItY29udGFpbmVyICYge1xuXHRcdGJvcmRlcjogMDtcblx0fVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuXG4vKlxuICogU3R5bGVzIGZvciBSVEwgdG9vbGJhcnMuXG4gKlxuICogTm90ZTogSW4gc29tZSBjYXNlcyAoZS5nLiBhIGRlY291cGxlZCBlZGl0b3IpLCB0aGUgdG9vbGJhciBoYXMgaXRzIG93biBcImRpclwiXG4gKiBiZWNhdXNlIGl0cyBwYXJlbnQgaXMgbm90IGNvbnRyb2xsZWQgYnkgdGhlIGVkaXRvciBmcmFtZXdvcmsuXG4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIsXG4uY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0ge1xuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblxuXHQmOm5vdCguY2stdG9vbGJhcl9jb21wYWN0KSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogKCMxMSkgU2VwYXJhdGUgdG9vbGJhciBpdGVtcy4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZmlyc3QgY2hpbGQuICovXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQvKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgbGFzdCBjaGlsZC4gKi9cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG5cdH1cblxuXHQvKiBTZXBhcmF0ZSB0aGUgdGhlIHNlcGFyYXRvciBmb3JtIHRoZSBncm91cGluZyBkcm9wZG93biB3aGVuIHNvbWUgaXRlbXMgYXJlIGdyb3VwZWQuICovXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQvKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xuXHQmLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG59XG5cbi8qXG4gKiBTdHlsZXMgZm9yIExUUiB0b29sYmFycy5cbiAqXG4gKiBOb3RlOiBJbiBzb21lIGNhc2VzIChlLmcuIGEgZGVjb3VwbGVkIGVkaXRvciksIHRoZSB0b29sYmFyIGhhcyBpdHMgb3duIFwiZGlyXCJcbiAqIGJlY2F1c2UgaXRzIHBhcmVudCBpcyBub3QgY29udHJvbGxlZCBieSB0aGUgZWRpdG9yIGZyYW1ld29yay5cbiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhcixcbi5jay5jay10b29sYmFyW2Rpcj1cImx0clwiXSB7XG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZmlyc3QgY2hpbGQuICovXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsYXN0IGNoaWxkLiAqL1xuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG5cdH1cblxuXHQvKiBTZXBhcmF0ZSB0aGUgdGhlIHNlcGFyYXRvciBmb3JtIHRoZSBncm91cGluZyBkcm9wZG93biB3aGVuIHNvbWUgaXRlbXMgYXJlIGdyb3VwZWQuICovXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0LyogU29tZSBzcGFjaW5nIGJldHdlZW4gdGhlIGl0ZW1zIGFuZCB0aGUgc2VwYXJhdG9yIGJlZm9yZSB0aGUgZ3JvdXBlZCBpdGVtcyBkcm9wZG93bi4gKi9cblx0Ji5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCB7XG5cdC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGg6IDBweDtcblx0LS1jay1iYWxsb29uLWFycm93LW9mZnNldDogMHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aDogNHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0OiA0cHg7XG5cdC0tY2stdG9vbHRpcC10ZXh0LXBhZGRpbmc6IDRweDtcblx0LS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sdGlwLWJhY2tncm91bmQpO1xuXG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXG5cdCYgLmNrLXRvb2x0aXBfX3RleHQge1xuXHRcdGZvbnQtc2l6ZTogLjllbTtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10b29sdGlwLXRleHQpO1xuXHR9XG5cblx0Ji5jay10b29sdGlwX211bHRpLWxpbmUgLmNrLXRvb2x0aXBfX3RleHQge1xuXHRcdHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXRvb2x0aXAtdGV4dC1wYWRkaW5nKSAwO1xuXHRcdG1heC13aWR0aDogMjAwcHg7XG5cdH1cblxuXHQvKiBSZXNldCBiYWxsb29uIHBhbmVsIHN0eWxlcyAqL1xuXHRib3gtc2hhZG93OiBub25lO1xuXG5cdC8qIEhpZGUgdGhlIGRlZmF1bHQgc2hhZG93IG9mIHRoZSAuY2stYmFsbG9vbi1wYW5lbCB0aXAgKi9cblx0Jjo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG4uY2suY2stZWRpdG9yX190b3Age1xuXHQmIC5jay1zdGlja3ktcGFuZWwge1xuXHRcdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudCB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG5cblx0XHRcdCYuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stbWVudS1iYXIge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qIE5vdGU6IFVzZSBjay1lZGl0b3JfX21haW4gdG8gbWFrZSBzdXJlIHRoZXNlIHN0eWxlcyBkb24ndCBhcHBseSB0byBvdGhlciBlZGl0b3IgdHlwZXMgKi9cbi5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTEzICovXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCY6bm90KC5jay1mb2N1c2VkKSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBib29rbWFyayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuLmNrIC5jay1mYWtlLWJvb2ttYXJrLXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpbmstZmFrZS1zZWxlY3Rpb24pO1xufVxuXG4vKiBBIGNvbGxhcHNlZCBmYWtlIHZpc3VhbCBzZWxlY3Rpb24uICovXG4uY2sgLmNrLWZha2UtYm9va21hcmstc2VsZWN0aW9uX2NvbGxhcHNlZCB7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0bWFyZ2luLXJpZ2h0OiAtMXB4O1xuXHRvdXRsaW5lOiBzb2xpZCAxcHggaHNsYSgwLCAwJSwgMTAwJSwgLjUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoOiAxMnB4O1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0OiA4cHg7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG5cdCYgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiB7XG5cdFx0JiBzcGFuIHtcblx0XHRcdGJvdHRvbTogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXG5cdFx0XHQvKiBUaGUgdHJpYW5nbGUgYWJvdmUgdGhlIG1hcmtlciAqL1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdGhlaWdodDogMDtcblxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpO1xuXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IGNhbGModmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKSBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDAgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKTtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHdpZGdldCB0aGF0IGl0IGEgZHJvcCB0YXJnZXQuXG5cdCAqL1xuXHQmIC5jay13aWRnZXQuY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXJhbmdlIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IGJlaW5nIGRyYWdnZWQgKGl0cyBwcmV2aWV3KS5cblx0ICovXG5cdCYgLmNrLXdpZGdldDotd2Via2l0LWRyYWcge1xuXHRcdHpvb206IDAuNjtcblx0XHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lIHtcblx0aGVpZ2h0OiAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRtYXJnaW4tdG9wOiAtMXB4O1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSk7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRsZWZ0OiAtMXB4O1xuXG5cdFx0XHRib3JkZXItd2lkdGg6IGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMCBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRyaWdodDogLTFweDtcblxuXHRcdFx0Ym9yZGVyLXdpZHRoOmNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMDtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1jb2RlLWJsb2NrLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgNDYlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgcHJlW2RhdGEtbGFuZ3VhZ2VdOjphZnRlciB7XG5cdHRvcDogLTFweDtcblx0cmlnaHQ6IDEwcHg7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWNvZGUtYmxvY2stbGFiZWwtYmFja2dyb3VuZCk7XG5cblx0Zm9udC1zaXplOiAxMHB4O1xuXHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNrLmNrLWNvZGUtYmxvY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIFRoZXJlIGNvdWxkIGJlIGRvemVucyBvZiBsYW5ndWFnZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cbi5jay5jay1wbGFjZWhvbGRlciwgLmNrIC5jay1wbGFjZWhvbGRlciB7XG5cdEBtaXhpbiBjay1tZWRpYS1mb3JjZWQtY29sb3JzIHtcblx0XHQvKlxuXHRcdCAqIFRoaXMgaXMgbmVlZGVkIGZvciBFZGdlIG9uIFdpbmRvd3MgdG8gdXNlIHRoZSByaWdodCBjb2xvciBmb3IgdGhlIHBsYWNlaG9sZGVyIGNvbnRlbnQgKDo6YmVmb3JlKS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdFx0ICovXG5cdFx0Zm9yY2VkLWNvbG9yLWFkanVzdDogcHJlc2VydmUtcGFyZW50LWNvbG9yO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cblx0XHRAbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0KTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdFx0XHQvKlxuXHRcdFx0ICogSW4gdGhlIGhpZ2ggY29udHJhc3QgbW9kZSB0aGVyZSBpcyBubyB0ZWxsaW5nIGJldHdlZW4gcmVndWxhciBhbmQgcGxhY2Vob2xkZXIgdGV4dC4gVXNpbmdcblx0XHRcdCAqIGl0YWxpYyB0ZXh0IHRvIGFkZHJlc3MgdGhhdCBpc3N1ZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBXaXRob3V0IHRoaXMgbWFyZ2luLCB0aGUgY2FyZXQgd2lsbCBub3Qgc2hvdyB1cCBhbmQgYmxpbmsgd2hlbiB0aGUgdXNlciBwdXRzIHRoZSBzZWxlY3Rpb25cblx0XHRcdCAqIGluIHRoZSBwbGFjZWhvbGRlciAoRWRnZSBvbiBXaW5kb3dzKS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSB7XG5cdHdpZHRoOiA0MDBweDtcblxuXHQvKlxuXHQgKiBUaGUgPGZvcm0+IG5lZWRzIHRhYmluZGV4PVwiLTFcIiBmb3IgcHJvcGVyIEVzYyBoYW5kbGluZyBhZnRlciBiZWluZyBjbGlja2VkXG5cdCAqIGJ1dCB0aGUgc2lkZSBlZmZlY3QgaXMgdGhhdCB0aGlzIGNyZWF0ZXMgYSBuYXN0eSBmb2N1cyBvdXRsaW5lIGluIHNvbWUgYnJvd3NlcnMuXG5cdCAqL1xuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0LyogR2VuZXJpYyBzdHlsZXMgZm9yIHRoZSBmb3JtIGlucHV0cyBhbmQgYWN0aW9ucy4gKi9cblx0JiAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMsXG5cdCYgLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuXG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0JiA+IC5jay1idXR0b24ge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0JiA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdCYgPiAqICsgKiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHQmIC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRtaW4td2lkdGg6IDUwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQvKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGlucHV0cyBhcmVhLiAqL1xuXHQmIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyB7XG5cdFx0LyogVG8gZGlzcGxheSBhbGwgY29udHJvbHMgaW4gbGluZSB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IgdW5kZXIgdGhlIGlucHV0ICovXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0XHQmID4gLmNrLWJ1dHRvbi1wcmV2ID4gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXHRcdH1cblxuXHRcdCYgPiAuY2stYnV0dG9uLW5leHQgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdH1cblxuXHRcdCYgLmNrLXJlc3VsdHMtY291bnRlciB7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXJlcGxhY2Uge1xuXHRcdFx0ZmxleDogMCAwIDEwMCU7XG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgYWN0aW9ucyBhcmVhLiAqL1xuXHQmIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdG1hcmdpbi10b3A6IGNhbGMoIC0xICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgKTtcblxuXHRcdCYgPiAuY2stYnV0dG9uLWZpbmQge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdC8qIEJlZWYgdGhlIGZpbmQgYnV0dG9uIHVwIGEgbGl0dGxlLiBJdCdzIHRoZSBtYWluIGFjdGlvbiBidXR0b24gaW4gdGhlIGZvcm0gKi9cblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay1zd2l0Y2hidXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxufVxuXG5AbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cblx0XHQvKiBEb24ndCBsZXQgdGhlIGZvcm0gb3ZlcmZsb3cgZnJvbSB0aGUgZGlhbG9nIChodHRwczovL2dpdGh1Yi5jb20vY2tzb3VyY2UvY2tlZGl0b3I1LWNvbW1lcmNpYWwvaXNzdWVzLzU5MTMpICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cblx0XHQmLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRmbGV4OiAxIDAgYXV0bztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBhY3Rpb25zIGFyZWEuICovXG5cdFx0Ji5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpIHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogUmVzaXplIGRyb3Bkb3duJ3MgYnV0dG9uIGxhYmVsLiAqL1xuLmNrLmNrLWRyb3Bkb3duLmNrLWhlYWRpbmctZHJvcGRvd24ge1xuXHQmIC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHR3aWR0aDogOGVtO1xuXHR9XG5cblx0JiAuY2stZHJvcGRvd25fX3BhbmVsIC5jay1saXN0X19pdGVtIHtcblx0XHRtaW4td2lkdGg6IDE4ZW07XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGg6IGNhbGMoMTAwJSAtIDEuNSAqIHZhcigtLWNrLWljb24tc2l6ZSkpO1xuXHQtLWNrLWh0bWwtZW1iZWQtc291cmNlLWhlaWdodDogMTBlbTtcblx0LS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoOiAxcHg7XG5cdC0tY2staHRtbC1lbWJlZC1jb250ZW50LW1pbi1oZWlnaHQ6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSArIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblxuXHQtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3I6IGhzbCgwZGVnIDAlIDQ1JSk7XG59XG5cbi8qIFRoZSBmZWF0dXJlIGNvbnRhaW5lci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblxuXHQmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkgZGFzaGVkIHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdH1cblxuXHQvKiBIVE1MIGVtYmVkIHdpZGdldCBpdHNlbGYgc2hvdWxkIHJlc3BlY3QgVUkgbGFuZ3VhZ2UgZGlyZWN0aW9uICovXG5cdCZbZGlyPVwibHRyXCJdIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0JltkaXI9XCJydGxcIl0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0LyogLS0tLS0gRW1iZWQgbGFiZWwgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtaHRtbC1lbWJlZC1sYWJlbCk7XG5cdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDYwJSk7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXRpbnkpICsgdmFyKC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHR9XG5cblx0JltkaXI9XCJydGxcIl06OmJlZm9yZSB7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cblxuXHQvKiBNYWtlIHNwYWNlIGZvciBsYWJlbCBidXQgaXQgb25seSBjb2xsaWRlcyBpbiBMVFIgbGFuZ3VhZ2VzICovXG5cdCZbZGlyPVwibHRyXCJdIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cblxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkICYuY2std2lkZ2V0X3NlbGVjdGVkOjpiZWZvcmUge1xuXHRcdHRvcDogMHB4O1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWJsdXJyZWQpICYuY2std2lkZ2V0X3NlbGVjdGVkOjpiZWZvcmUge1xuXHRcdHRvcDogMDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdH1cblxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpob3Zlcjo6YmVmb3JlIHtcblx0XHR0b3A6IDBweDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0LyogLS0tLS0gRW1lYmVkIGludGVybmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fY29udGVudC13cmFwcGVyIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuXG5cdC8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cblx0JiAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciB7XG5cdFx0dG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQmIC5jay1idXR0b24ucmF3LWh0bWwtZW1iZWRfX3NhdmUtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uLnJhdy1odG1sLWVtYmVkX19jYW5jZWwtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0JltkaXI9XCJydGxcIl0gLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiBhdXRvO1xuXHR9XG5cblx0LyogVGhlIGVkaXQgc291cmNlIGVsZW1lbnQuICovXG5cdCYgLnJhdy1odG1sLWVtYmVkX19zb3VyY2Uge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQpO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGgpO1xuXHRcdHJlc2l6ZTogbm9uZTtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHRcdHRhYi1zaXplOiA0O1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTsgLyogU2FmYXJpIG5lZWRzIHRoaXMuICovXG5cblx0XHQvKiBIVE1MIGNvZGUgaXMgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRkaXJlY3Rpb246IGx0cjtcblxuXHRcdCZbZGlzYWJsZWRdIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yKTtcblxuXHRcdFx0LyogU2FmYXJpIG5lZWRzIHRoaXMgZm9yIHRoZSBwcm9wZXIgdGV4dCBjb2xvciBpbiBkaXNhYmxlZCBpbnB1dCAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODMyMCkuICovXG5cdFx0XHQtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQvKiBUaGUgcHJldmlldyBkYXRhIGNvbnRhaW5lci4gKi9cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0KTtcblx0XHR3aWR0aDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoKTtcblxuXHRcdC8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuICovXG5cdFx0LmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpICYge1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctY29udGVudCB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0JiA+ICoge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctcGxhY2Vob2xkZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcilcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1pbnNlcnQtaW5zZXJ0LWJ5LXVybC13aWR0aDogMjUwcHg7XG59XG5cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0LS1jay1pbnB1dC13aWR0aDogMTAwJTtcblxuXHQmIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRncmlkLWNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0JiAuY2stYnV0dG9uLXNhdmUsXG5cdFx0JiAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2staW1hZ2UtaW5zZXJ0LWZvcm0ge1xuXHQmID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2suY2stY29sbGFwc2libGUge1xuXHRcdCY6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQmOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0fVxuXG5cdC8qIFRoaXMgaXMgdGhlIGNhc2Ugd2hlbiB0aGVyZSBhcmUgbm8gb3RoZXIgaW50ZWdyYXRpb25zIGNvbmZpZ3VyZWQgdGhhbiBpbnNlcnQgYnkgVVJMICovXG5cdCYgPiAuY2suY2staW1hZ2UtaW5zZXJ0LXVybCB7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1pbWFnZS1pbnNlcnQtaW5zZXJ0LWJ5LXVybC13aWR0aCk7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQ6IGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSBsaW5rZWQgaW1hZ2UgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGxpbmsgaW1hZ2UgZmVhdHVyZS4gKi9cblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplOiAyMDtcblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aDogMnB4O1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGU6IGNsYW1wKDBweCwgMTAwJSAtIDUwcHgsIDFweCk7XG59XG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQpO1xuXHRhbmltYXRpb24tbmFtZTogY2stdXBsb2FkLWNvbXBsZXRlLWljb24tc2hvdywgY2stdXBsb2FkLWNvbXBsZXRlLWljb24taGlkZTtcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHMsIGZvcndhcmRzO1xuXHRhbmltYXRpb24tZHVyYXRpb246IDUwMG1zLCA1MDBtcztcblxuXHQvKiBUbyBtYWtlIGFuaW1hdGlvbiBzY2FsYWJsZS4gKi9cblx0Zm9udC1zaXplOiBjYWxjKDFweCAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblxuXHQvKiBIaWRlIGNvbXBsZXRlZCB1cGxvYWQgaWNvbiBhZnRlciAzIHNlY29uZHMuICovXG5cdGFuaW1hdGlvbi1kZWxheTogMG1zLCAzMDAwbXM7XG5cblx0Lypcblx0ICogVXNlIENTUyBtYXRoIHRvIHNpbXVsYXRlIGNvbnRhaW5lciBxdWVyaWVzLlxuXHQgKiBodHRwczovL2Nzcy10cmlja3MuY29tL3RoZS1yYXZlbi10ZWNobmlxdWUtb25lLXN0ZXAtY2xvc2VyLXRvLWNvbnRhaW5lci1xdWVyaWVzLyN3aGF0LWFib3V0LXNob3dpbmctYW5kLWhpZGluZy10aGluZ3Ncblx0ICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdpZHRoOiBjYWxjKHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXHRoZWlnaHQ6IGNhbGModmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cblx0LyogVGhpcyBpcyBjaGVjayBpY29uIGVsZW1lbnQgbWFkZSBmcm9tIGJvcmRlci13aWR0aCBtaXhlZCB3aXRoIGFuaW1hdGlvbnMuICovXG5cdCY6OmFmdGVyIHtcblx0XHQvKiBCZWNhdXNlIG9mIGJvcmRlciB0cmFuc2Zvcm1hdGlvbiB3ZSBuZWVkIHRvIFwiaGFyZCBjb2RlXCIgbGVmdCBwb3NpdGlvbi4gKi9cblx0XHRsZWZ0OiAyNSU7XG5cblx0XHR0b3A6IDUwJTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMDtcblx0XHR3aWR0aDogMDtcblxuXHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTM1ZGVnKTtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0XHRib3JkZXItdG9wOiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aCkgc29saWQgdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24pO1xuXHRcdGJvcmRlci1yaWdodDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uKTtcblxuXHRcdGFuaW1hdGlvbi1uYW1lOiBjay11cGxvYWQtY29tcGxldGUtaWNvbi1jaGVjaztcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xuXHRcdGFuaW1hdGlvbi1kZWxheTogNTAwbXM7XG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG5cblx0XHQvKiAjMTA5NS4gV2hpbGUgcmVzZXQgaXMgbm90IHByb3ZpZGluZyBwcm9wZXIgYm94LXNpemluZyBmb3IgcHNldWRvZWxlbWVudHMsIHdlIG5lZWQgdG8gaGFuZGxlIGl0LiAqL1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMG1zO1xuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHdpZHRoOiAwLjNlbTtcblx0XHRcdGhlaWdodDogMC40NWVtO1xuXHRcdH1cblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLXNob3cge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1oaWRlIHtcblx0ZnJvbSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2sge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MzMlIHtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0d2lkdGg6IDAuM2VtO1xuXHRcdGhlaWdodDogMC40NWVtO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcjogaHNsKDAsIDAlLCA3MCUpO1xuXHQtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZTogMzJweDtcblx0LS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvOiAyLjg7XG59XG5cbi5jayAuY2staW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHtcblx0LyogV2UgbmVlZCB0byBjb250cm9sIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBTVkcgZ3JheSBiYWNrZ3JvdW5kLiAqL1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiAwO1xuXG5cdCYuaW1hZ2UtaW5saW5lIHtcblx0XHR3aWR0aDogY2FsYyggMiAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSkgKiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvKSApO1xuXHR9XG5cblx0JiBpbWcge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBhbiBhcmJpdHJhcnkgYXNwZWN0IGZvciBhIDF4MSBweCBHSUYgdG8gZGlzcGxheSB0byB0aGUgdXNlci4gTm90IHRvbyB0YWxsLCBub3QgdG9vIHNob3J0LlxuXHRcdCAqIFRoZXJlJ3Mgbm90aGluZyBzcGVjaWFsIGFib3V0IHRoaXMgbnVtYmVyIGV4Y2VwdCB0aGF0IGl0IHNob3VsZCBtYWtlIHRoZSBpbWFnZSBwbGFjZWhvbGRlciBsb29rIGxpa2Vcblx0XHQgKiBhIHJlYWwgaW1hZ2UgZHVyaW5nIHRoaXMgc2hvcnQgcGVyaW9kIGFmdGVyIHRoZSB1cGxvYWQgc3RhcnRlZCBhbmQgYmVmb3JlIHRoZSBpbWFnZSB3YXMgcmVhZCBmcm9tIHRoZVxuXHRcdCAqIGZpbGUgc3lzdGVtIChhbmQgYSByaWNoIHByZXZpZXcgd2FzIGxvYWRlZCkuXG5cdFx0ICovXG5cdFx0YXNwZWN0LXJhdGlvOiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvKTtcblx0fVxufVxuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemUpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tY2stY29sb3ItdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcik7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0YW5pbWF0aW9uOiBjay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIDFzIGxpbmVhciBpbmZpbml0ZTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR0byB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoIDM2MGRlZyApO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdCYgLmltYWdlLFxuXHQmIC5pbWFnZS1pbmxpbmUge1xuXHRcdC8qIFNob3dpbmcgYW5pbWF0aW9uLiAqL1xuXHRcdCYuY2stYXBwZWFyIHtcblx0XHRcdGFuaW1hdGlvbjogZmFkZUluIDcwMG1zO1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblx0JiAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhcixcblx0JiAuaW1hZ2UtaW5saW5lIC5jay1wcm9ncmVzcy1iYXIge1xuXHRcdGhlaWdodDogMnB4O1xuXHRcdHdpZHRoOiAwO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXVwbG9hZC1iYXItYmFja2dyb3VuZCk7XG5cdFx0dHJhbnNpdGlvbjogd2lkdGggMTAwbXM7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogQ2xhc3MgYWRkZWQgdG8gc3BhbiBlbGVtZW50IHN1cnJvdW5kaW5nIGN1cnJlbnRseSBzZWxlY3RlZCBsaW5rLiAqL1xuLmNrIC5jay1saW5rX3NlbGVjdGVkIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcblxuXHQvKiBHaXZlIGxpbmtlZCBpbmxpbmUgaW1hZ2VzIHNvbWUgb3V0bGluZSB0byBsZXQgdGhlIHVzZXIga25vdyB0aGV5IGFyZSBhbHNvIHBhcnQgb2YgdGhlIGxpbmsuICovXG5cdCYgc3Bhbi5pbWFnZS1pbmxpbmUge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgc29saWQgdmFyKC0tY2stY29sb3ItbGluay1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcblx0fVxufVxuXG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgbGluayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuLmNrIC5jay1mYWtlLWxpbmstc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG5cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1saW5rLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fdW5zZWxlY3RhYmxlLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stbGluay1hY3Rpb25zIHtcblx0JiAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWxpbmstZGVmYXVsdCk7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0LyogTWF0Y2ggdGhlIGJveCBtb2RlbCBvZiB0aGUgbGluayBlZGl0b3IgZm9ybSdzIGlucHV0IHNvIHRoZSBiYWxsb29uXG5cdFx0XHRkb2VzIG5vdCBjaGFuZ2Ugd2lkdGggd2hlbiBtb3ZpbmcgYmV0d2VlbiBhY3Rpb25zIGFuZCB0aGUgZm9ybS4gKi9cblx0XHRcdG1heC13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXHRcdFx0bWluLXdpZHRoOiAzZW07XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLFxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdH1cblxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdCYgLmNrLWJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdCYgLmNrLWJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdCYgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAwO1xuXG5cdFx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uOm5vdCguY2stbGluay1hY3Rpb25zX19wcmV2aWV3KSB7XG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuQGRlZmluZS1taXhpbiBjay11bnNlbGVjdGFibGUge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLypcbiAqIFN0eWxlIGxpbmsgZm9ybSBkaWZmZXJlbnRseSB3aGVuIG1hbnVhbCBkZWNvcmF0b3JzIGFyZSBhdmFpbGFibGUuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbGluay9pc3N1ZXMvMTg2LlxuICovXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCB7XG5cdHBhZGRpbmc6IDA7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdCYgLmNrLWlucHV0LXRleHQge1xuXHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1idXR0b24ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdG1hcmdpbjogMDtcblx0XHR3aWR0aDogNTAlO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFVzaW5nIGFkZGl0aW9uYWwgYC5ja2AgY2xhc3MgZm9yIHN0cm9uZ2VyIENTUyBzcGVjaWZpY2l0eSB0aGFuIGAuY2suY2stbGluay1mb3JtID4gOm5vdCg6Zmlyc3QtY2hpbGQpYC4gKi9cblx0JiAuY2suY2stbGlzdCB7XG5cdFx0bWFyZ2luOiAwIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0JiAuY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBNYXRjaCB0aGUgaWNvbiBzaXplIHdpdGggdGhlIHVwbG9hZCBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgaW1hZ2UgdXBsb2FkIGZlYXR1cmUuICovXG5cdC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1zaXplOiAyMDtcblx0LS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLWlzLXZpc2libGU6IGNsYW1wKDBweCwgMTAwJSAtIDUwcHgsIDFweCk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0LyogTGlua2VkIGltYWdlIGluZGljYXRvciAqL1xuXHQmIGZpZ3VyZS5pbWFnZSA+IGEsXG5cdCYgYSBzcGFuLmltYWdlLWlubGluZSB7XG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblxuXHRcdFx0Lypcblx0XHRcdCAqIFNtYWxsZXIgaW1hZ2VzIHNob3VsZCBoYXZlIHRoZSBpY29uIGNsb3NlciB0byB0aGUgYm9yZGVyLlxuXHRcdFx0ICogTWF0Y2ggdGhlIGljb24gcG9zaXRpb24gd2l0aCB0aGUgdXBsb2FkIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBpbWFnZSB1cGxvYWQgZmVhdHVyZS5cblx0XHRcdCAqL1xuXHRcdFx0dG9wOiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdFx0XHRyaWdodDogbWluKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgNiUpO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCAwJSwgLjQpO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMmFXVjNRbTk0UFNJd0lEQWdNakFnTWpBaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1pEMGliVEV4TGpBM055QXhOU0F1T1RreExURXVOREUyWVM0M05TNDNOU0F3SURFZ01TQXhMakl5T1M0NE5td3RNUzR4TkRnZ01TNDJOR0V1TnpRNExqYzBPQ0F3SURBZ01TMHVNakUzTGpJd05pQTFMakkxTVNBMUxqSTFNU0F3SURBZ01TMDRMalV3TXkwMUxqazFOUzQzTkRFdU56UXhJREFnTUNBeElDNHhNaTB1TWpjMGJERXVNVFEzTFRFdU5qTTVZUzQzTlM0M05TQXdJREVnTVNBeExqSXlPQzQ0Tmt3MExqa3pNeUF4TUM0M2JDNHdNRFl1TURBellUTXVOelVnTXk0M05TQXdJREFnTUNBMkxqRXpNaUEwTGpJNU5Hd3VNREEyTGpBd05IcHROUzQwT1RRdE5TNHpNelZoTGpjME9DNDNORGdnTUNBd0lERXRMakV5TGpJM05Hd3RNUzR4TkRjZ01TNDJNemxoTGpjMUxqYzFJREFnTVNBeExURXVNakk0TFM0NE5td3VPRFl0TVM0eU0yRXpMamMxSURNdU56VWdNQ0F3SURBdE5pNHhORFF0TkM0ek1ERnNMUzQ0TmlBeExqSXlPV0V1TnpVdU56VWdNQ0F3SURFdE1TNHlNamt0TGpnMmJERXVNVFE0TFRFdU5qUmhMamMwT0M0M05EZ2dNQ0F3SURFZ0xqSXhOeTB1TWpBMklEVXVNalV4SURVdU1qVXhJREFnTUNBeElEZ3VOVEF6SURVdU9UVTFlbTB0TkM0MU5qTXRNaTQxTXpKaExqYzFMamMxSURBZ01DQXhJQzR4T0RRZ01TNHdORFZzTFRNdU1UVTFJRFF1TlRBMVlTNDNOUzQzTlNBd0lERWdNUzB4TGpJeU9TMHVPRFpzTXk0eE5UVXROQzQxTURaaExqYzFMamMxSURBZ01DQXhJREV1TURRMUxTNHhPRFI2SWk4K1BDOXpkbWMrXCIpO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxNHB4O1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cblx0XHRcdC8qXG5cdFx0XHQqIFVzZSBDU1MgbWF0aCB0byBzaW11bGF0ZSBjb250YWluZXIgcXVlcmllcy5cblx0XHRcdCogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS90aGUtcmF2ZW4tdGVjaG5pcXVlLW9uZS1zdGVwLWNsb3Nlci10by1jb250YWluZXItcXVlcmllcy8jd2hhdC1hYm91dC1zaG93aW5nLWFuZC1oaWRpbmctdGhpbmdzXG5cdFx0XHQqL1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHdpZHRoOiBjYWxjKHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemUpKTtcblx0XHRcdGhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1zaXplKSk7XG5cdFx0fVxuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1saXN0LXByb3BlcnRpZXMge1xuXHQvKiBXaGVuIHRoZXJlIGFyZSBubyBsaXN0IHN0eWxlcyBhbmQgdGhlcmUgaXMgbm8gY29sbGFwc2libGUuICovXG5cdCYuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGhvdXQtc3R5bGVzIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHRcdCYgPiAqIHtcblx0XHRcdG1pbi13aWR0aDogMTRlbTtcblxuXHRcdFx0JiArICoge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBXaGVuIHRoZSBudW1iZXJlZCBsaXN0IHByb3BlcnR5IGZpZWxkcyAoc3RhcnQgYXQsIHJldmVyc2VkKSBzaG91bGQgYmUgZGlzcGxheWVkLFxuXHQgKiBtb3JlIGhvcml6b250YWwgc3BhY2UgaXMgbmVlZGVkLiBSZWNvbmZpZ3VyZSB0aGUgc3R5bGUgZ3JpZCB0byBjcmVhdGUgdGhhdCBzcGFjZS5cblx0ICovXG5cdCYuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGgtbnVtYmVyZWQtcHJvcGVydGllcyB7XG5cdFx0JiA+IC5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCA0LCBhdXRvICk7XG5cdFx0fVxuXG5cdFx0LyogV2hlbiBsaXN0IHN0eWxlcyBhcmUgcmVuZGVyZWQgYW5kIHByb3BlcnR5IGZpZWxkcyBhcmUgaW4gYSBjb2xsYXBzaWJsZS4gKi9cblx0XHQmID4gLmNrLWNvbGxhcHNpYmxlIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0XHRcdCYgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuIHtcblx0XHRcdFx0JiA+ICoge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdFx0JiArICoge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAuY2suY2stbnVtYmVyZWQtbGlzdC1wcm9wZXJ0aWVzX19zdGFydC1pbmRleCAuY2staW5wdXQge1xuXHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdCYgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fcmV2ZXJzZWQtb3JkZXIge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpKTtcblxuXHRcdCY6YWN0aXZlLCAmOmhvdmVyIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplOiA0NHB4O1xufVxuXG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCAzLCBhdXRvICk7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0Y29sdW1uLWdhcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHQmIC5jay1idXR0b24ge1xuXHRcdC8qIE1ha2UgdGhlIGJ1dHRvbiBsb29rIGxpa2UgYSB0aHVtYm5haWwgKHRoZSBpY29uIFwidGFrZXMgaXQgYWxsXCIpLiAqL1xuXHRcdHdpZHRoOiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQvKlxuXHRcdCAqIEJ1dHRvbnMgYXJlIGFsaWduZWQgYnkgdGhlIGdyaWQgc28gZGlzYWJsZSBkZWZhdWx0IGJ1dHRvbiBtYXJnaW5zIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlXG5cdFx0ICogZ2FwcyBpbiB0aGUgZ3JpZC5cblx0XHQgKi9cblx0XHRtYXJnaW46IDA7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJvcmRlciAod2hpY2ggaXMgZGlzcGxheWVkIG9uIGZvY3VzLCBCVFcpIGRvZXMgbm90IHN0ZWFsIHBpeGVsc1xuXHRcdCAqIGZyb20gdGhlIGJ1dHRvbiBkaW1lbnNpb25zIGFuZCwgYXMgYSByZXN1bHQsIGRlY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBpY29uXG5cdFx0ICogKHdoaWNoIGJlY29tZXMgYmx1cnJ5IGFzIGl0IHNjYWxlcyBkb3duKS5cblx0XHQgKi9cblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuXHRcdCYgLmNrLWljb24ge1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci1pY29uLXNpemU6IDNlbTtcblxuXHQtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0OiBoc2woMCwgMCUsIDQ2JSk7XG5cdC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQtaG92ZXI6IHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG59XG5cbi5jay1tZWRpYV9fd3JhcHBlciB7XG5cdG1hcmdpbjogMCBhdXRvO1xuXG5cdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0cGFkZGluZzogY2FsYyggMyAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpICk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cblx0XHRcdCYgLmNrLWljb24ge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dCk7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQtaG92ZXIpO1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cIm9wZW4uc3BvdGlmeS5jb21cIl0ge1xuXHRcdG1heC13aWR0aDogMzAwcHg7XG5cdFx0bWF4LWhlaWdodDogMzgwcHg7XG5cdH1cblxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJnb29nbGUuY29tL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbixcblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZ29vLmdsL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbixcblx0JltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5nb29nbGUuY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuYXBwLmdvby5nbFwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TlRBdU16YzRJaUJvWldsbmFIUTlJakkxTkM0eE5qY2lJSFpwWlhkQ2IzZzlJakFnTUNBMk5pNHlORFlnTmpjdU1qUTRJajQ4WnlCMGNtRnVjMlp2Y20wOUluUnlZVzV6YkdGMFpTZ3RNVGN5TGpVek1TQXRNakU0TGpRMU5Ta2djMk5oYkdVb0xqazRNREV5S1NJK1BISmxZM1FnY25rOUlqVXVNak00SWlCeWVEMGlOUzR5TXpnaUlIazlJakl6TVM0ek9Ua2lJSGc5SWpFM05pNHdNekVpSUdobGFXZG9kRDBpTmpBdU1EazVJaUIzYVdSMGFEMGlOakF1TURrNUlpQm1hV3hzUFNJak16UmhOalk0SWlCd1lXbHVkQzF2Y21SbGNqMGliV0Z5YTJWeWN5QnpkSEp2YTJVZ1ptbHNiQ0l2UGp4d1lYUm9JR1E5SWsweU1EWXVORGMzSURJMk1DNDViQzB5T0M0NU9EY2dNamd1T1RnM1lUVXVNakU0SURVdU1qRTRJREFnTUNBd0lETXVOemdnTVM0Mk1XZzBPUzQyTWpGak1TNDJPVFFnTUNBekxqRTVMUzQzT1RnZ05DNHhORFl0TWk0d016ZDZJaUJtYVd4c1BTSWpOV000T0dNMUlpOCtQSEJoZEdnZ1pEMGlUVEl5Tmk0M05ESWdNakl5TGprNE9HTXRPUzR5TmpZZ01DMHhOaTQzTnpjZ055NHhOeTB4Tmk0M056Y2dNVFl1TURFMExqQXdOeUF5TGpjMk1pNDJOak1nTlM0ME56UWdNaTR3T1RNZ055NDROelV1TkRNdU56QXpMamd6SURFdU5EQTRJREV1TVRrZ01pNHhNRGN1TXpNekxqVXdNaTQyTlNBeExqQXdOUzQ1TlNBeExqVXdPQzR6TkRNdU5EYzNMalkzTXk0NU5UY3VPVGc0SURFdU5EUWdNUzR6TVNBeExqYzJPU0F5TGpVZ015NDFNRElnTXk0Mk16Y2dOUzR4TmpndU56a3pJREV1TWpjMUlERXVOamd6SURJdU5qUWdNaTQwTmpZZ015NDVPU0F5TGpNMk15QTBMakE1TkNBMExqQXdOeUE0TGpBNU1pQTBMallnTVRNdU9URTBkaTR3TVRKakxqRTRNaTQwTVRJdU5URTJMalkyTmk0NE56a3VOalkzTGpRd015MHVNREF4TGpjMk9DMHVNekUwTGprekxTNDNPVGt1TmpBekxUVXVOelUySURJdU1qTTRMVGt1TnpJNUlEUXVOVGcxTFRFekxqYzVOQzQzT0RJdE1TNHpOU0F4TGpZM015MHlMamN4TlNBeUxqUTJOUzB6TGprNUlERXVNVE0zTFRFdU5qWTJJREl1TXpJNExUTXVOQ0F6TGpZek9DMDFMakUyT1M0ek1UVXRMalE0TWk0Mk5EVXRMamsyTWk0NU9EZ3RNUzQwTXprdU15MHVOVEF6TGpZeE55MHhMakF3Tmk0NU5TMHhMalV3T0M0ek5Ua3RMamN1TnpZdE1TNDBNRFFnTVM0eE9TMHlMakV3TnlBeExqUXlOaTB5TGpRd01pQXlMVFV1TVRFMElESXVNREEwTFRjdU9EYzFJREF0T0M0NE5EUXROeTQxTVRFdE1UWXVNREUwTFRFMkxqYzNOaTB4Tmk0d01UUjZJaUJtYVd4c1BTSWpaR1EwWWpObElpQndZV2x1ZEMxdmNtUmxjajBpYldGeWEyVnljeUJ6ZEhKdmEyVWdabWxzYkNJdlBqeGxiR3hwY0hObElISjVQU0kxTGpVMk5DSWdjbmc5SWpVdU9ESTRJaUJqZVQwaU1qTTVMakF3TWlJZ1kzZzlJakl5Tmk0M05ESWlJR1pwYkd3OUlpTTRNREprTWpjaUlIQmhhVzUwTFc5eVpHVnlQU0p0WVhKclpYSnpJSE4wY205clpTQm1hV3hzSWk4K1BIQmhkR2dnWkQwaVRURTVNQzR6TURFZ01qTTNMakk0TTJNdE5DNDJOeUF3TFRndU5EVTNJRE11T0RVekxUZ3VORFUzSURndU5qQTJjek11TnpnMklEZ3VOakEzSURndU5EVTNJRGd1TmpBM1l6TXVNRFF6SURBZ05DNDRNRFl0TGprMU9DQTJMak16TnkweUxqVXhOaUF4TGpVekxURXVOVFUzSURJdU1EZzNMVE11T1RFeklESXVNRGczTFRZdU1qa2dNQzB1TXpZeUxTNHdNak10TGpjeU1pMHVNRFkwTFRFdU1EYzVhQzA0TGpJMU4zWXpMakEwTTJnMExqZzFZeTB1TVRrM0xqYzFPUzB1TlRNeElERXVORFV0TVM0d05UZ2dNUzQ1T0RZdExqazBNaTQ1TlRndE1pNHdNamdnTVM0MU5EZ3RNeTQ1TURFZ01TNDFORGd0TWk0NE56WWdNQzAxTGpJd09DMHlMak0zTWkwMUxqSXdPQzAxTGpJNU9TQXdMVEl1T1RJMklESXVNek15TFRVdU1qazVJRFV1TWpBNExUVXVNams1SURFdU16azVJREFnTWk0Mk1UZ3VOREEzSURNdU5UZzBJREV1TWpremJESXVNemd4TFRJdU16aGpNQzB1TURBeUxTNHdNRE10TGpBd05DMHVNREEwTFM0d01EVXRNUzQxT0RndE1TNDFNalF0TXk0Mk1pMHlMakl4TlMwMUxqazFOUzB5TGpJeE5YcHROQzQwTXlBMUxqWTJiQzR3TURNdU1EQTJkaTB1TURBemVpSWdabWxzYkQwaUkyWm1aaUlnY0dGcGJuUXRiM0prWlhJOUltMWhjbXRsY25NZ2MzUnliMnRsSUdacGJHd2lMejQ4Y0dGMGFDQmtQU0pOTWpFMUxqRTROQ0F5TlRFdU9USTViQzAzTGprNElEY3VPVGM1SURJNExqUTNOeUF5T0M0ME56VmpMakk0TnkwdU5qUTVMalEwT1MweExqTTJOaTQwTkRrdE1pNHhNak4yTFRNeExqRTJOV010TGpRMk9TNDJOelV0TGprek5DQXhMak0wT1MweExqTTRNaUF5TGpBd05TMHVOemt5SURFdU1qYzFMVEV1TmpneUlESXVOalF0TWk0ME5qVWdNeTQ1T1MweUxqTTBOeUEwTGpBMk5TMHpMams0TWlBNExqQXpPQzAwTGpVNE5TQXhNeTQzT1RRdExqRTJNaTQwT0RVdExqVXlOeTQzT1RndExqa3pMamM1T1MwdU16WXpMUzR3TURFdExqWTVOeTB1TWpVMUxTNDROemt0TGpZMk4zWXRMakF4TW1NdExqVTVNeTAxTGpneU1pMHlMakl6TnkwNUxqZ3lMVFF1TmkweE15NDVNVFF0TGpjNE15MHhMak0xTFRFdU5qY3pMVEl1TnpFMUxUSXVORFkyTFRNdU9Ua3RNUzR4TXpjdE1TNDJOall0TWk0ek1qY3RNeTQwTFRNdU5qTTNMVFV1TVRZNWJDMHVNREF5TFM0d01ETjZJaUJtYVd4c1BTSWpZek5qTTJNeklpOCtQSEJoZEdnZ1pEMGlUVEl4TWk0NU9ETWdNalE0TGpRNU5Xd3RNell1T1RVeUlETTJMamsxTTNZdU9ERXlZVFV1TWpJM0lEVXVNakkzSURBZ01DQXdJRFV1TWpNNElEVXVNak00YURFdU1ERTFiRE0xTGpZMk5pMHpOUzQyTmpaaE1UTTJMakkzTlNBeE16WXVNamMxSURBZ01DQXdMVEl1TnpZMExUTXVPU0F6Tnk0MU56VWdNemN1TlRjMUlEQWdNQ0F3TFM0NU9Ea3RNUzQwTkdNdExqSTVPUzB1TlRBekxTNDJNVFl0TVM0d01EWXRMamsxTFRFdU5UQTRMUzR3T0RNdExqRTJNaTB1TVRjMkxTNHpNall0TGpJMk5DMHVORGc1ZWlJZ1ptbHNiRDBpSTJaa1pHTTBaaUlnY0dGcGJuUXRiM0prWlhJOUltMWhjbXRsY25NZ2MzUnliMnRsSUdacGJHd2lMejQ4Y0dGMGFDQmtQU0pOTWpFeExqazVPQ0F5TmpFdU1EZ3piQzAyTGpFMU1pQTJMakUxTVNBeU5DNHlOalFnTWpRdU1qWTBhQzQzT0RGaE5TNHlNamNnTlM0eU1qY2dNQ0F3SURBZ05TNHlNemt0TlM0eU16aDJMVEV1TURRMWVpSWdabWxzYkQwaUkyWm1aaUlnY0dGcGJuUXRiM0prWlhJOUltMWhjbXRsY25NZ2MzUnliMnRsSUdacGJHd2lMejQ4TDJjK1BDOXpkbWMrKTtcblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMjIwLCA0NiUsIDQ4JSk7XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0OGMzWm5JSGRwWkhSb1BTSXhNREkwY0hnaUlHaGxhV2RvZEQwaU1UQXlOSEI0SWlCMmFXVjNRbTk0UFNJd0lEQWdNVEF5TkNBeE1ESTBJaUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpUGlBZ0lDQWdJQ0FnUEhScGRHeGxQa1pwYkd3Z01Ud3ZkR2wwYkdVK0lDQWdJRHhrWlhOalBrTnlaV0YwWldRZ2QybDBhQ0JUYTJWMFkyZ3VQQzlrWlhOalBpQWdJQ0E4WkdWbWN6NDhMMlJsWm5NK0lDQWdJRHhuSUdsa1BTSlFZV2RsTFRFaUlITjBjbTlyWlQwaWJtOXVaU0lnYzNSeWIydGxMWGRwWkhSb1BTSXhJaUJtYVd4c1BTSnViMjVsSWlCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaVBpQWdJQ0FnSUNBZ1BHY2dhV1E5SW1aTWIyZHZYMWRvYVhSbElpQm1hV3hzUFNJalJrWkdSa1pGSWo0Z0lDQWdJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5PVFkzTGpRNE5Dd3dJRXcxTmk0MU1UY3NNQ0JETWpVdU16QTBMREFnTUN3eU5TNHpNRFFnTUN3MU5pNDFNVGNnVERBc09UWTNMalE0TXlCRE1DdzVPVGd1TmprMElESTFMakk1Tnl3eE1ESTBJRFUyTGpVeU1pd3hNREkwSUV3MU5EY3NNVEF5TkNCTU5UUTNMRFl5T0NCTU5ERTBMRFl5T0NCTU5ERTBMRFEzTXlCTU5UUTNMRFEzTXlCTU5UUTNMRE0xT1M0d01qa2dRelUwTnl3eU1qWXVOelkzSURZeU55NDNOek1zTVRVMExqYzBOeUEzTkRVdU56VTJMREUxTkM0M05EY2dRemd3TWk0eU5qa3NNVFUwTGpjME55QTROVEF1T0RReUxERTFPQzQ1TlRVZ09EWTFMREUyTUM0NE16WWdURGcyTlN3eU9Ua2dURGM0TXk0ek9EUXNNams1TGpBek55QkROekU1TGpNNU1Td3lPVGt1TURNM0lEY3dOeXd6TWprdU5USTVJRGN3Tnl3ek56UXVNamN6SUV3M01EY3NORGN6SUV3NE5qQXVORGczTERRM015Qk1PRFF3TGpVd01TdzJNamdnVERjd055dzJNamdnVERjd055d3hNREkwSUV3NU5qY3VORGcwTERFd01qUWdRems1T0M0Mk9UY3NNVEF5TkNBeE1ESTBMRGs1T0M0Mk9UY2dNVEF5TkN3NU5qY3VORGcwSUV3eE1ESTBMRFUyTGpVeE5TQkRNVEF5TkN3eU5TNHpNRE1nT1RrNExqWTVOeXd3SURrMk55NDBPRFFzTUNJZ2FXUTlJa1pwYkd3dE1TSStQQzl3WVhSb1BpQWdJQ0FnSUNBZ1BDOW5QaUFnSUNBOEwyYytQQzl6ZG1jKyk7XG5cdFx0fVxuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IGhzbCgyMjAsIDEwMCUsIDkwJSk7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLGhzbCgyNDYsIDEwMCUsIDM5JSksaHNsKDMwMiwgMTAwJSwgMzYlKSxoc2woMCwgMTAwJSwgNDglKSk7XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0OGMzWm5JSGRwWkhSb1BTSTFNRFJ3ZUNJZ2FHVnBaMmgwUFNJMU1EUndlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEVXdOQ0ExTURRaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SStJQ0FnSUNBZ0lDQThkR2wwYkdVK1oyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMlBDOTBhWFJzWlQ0Z0lDQWdQR1JsYzJNK1EzSmxZWFJsWkNCM2FYUm9JRk5yWlhSamFDNDhMMlJsYzJNK0lDQWdJRHhrWldaelBpQWdJQ0FnSUNBZ1BIQnZiSGxuYjI0Z2FXUTlJbkJoZEdndE1TSWdjRzlwYm5SelBTSXdJREF1TVRVNUlEVXdNeTQ0TkRFZ01DNHhOVGtnTlRBekxqZzBNU0ExTURNdU9UUWdNQ0ExTURNdU9UUWlQand2Y0c5c2VXZHZiajRnSUNBZ1BDOWtaV1p6UGlBZ0lDQThaeUJwWkQwaVoyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMklpQnpkSEp2YTJVOUltNXZibVVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNU0lnWm1sc2JEMGlibTl1WlNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lqNGdJQ0FnSUNBZ0lEeG5JR2xrUFNKSGNtOTFjQzB6SWo0Z0lDQWdJQ0FnSUNBZ0lDQThiV0Z6YXlCcFpEMGliV0Z6YXkweUlpQm1hV3hzUFNKM2FHbDBaU0krSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHgxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM0JoZEdndE1TSStQQzkxYzJVK0lDQWdJQ0FnSUNBZ0lDQWdQQzl0WVhOclBpQWdJQ0FnSUNBZ0lDQWdJRHhuSUdsa1BTSkRiR2x3TFRJaVBqd3ZaejRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1qVXhMamt5TVN3d0xqRTFPU0JETVRnekxqVXdNeXd3TGpFMU9TQXhOelF1T1RJMExEQXVORFE1SURFME9DNHdOVFFzTVM0Mk56VWdRekV5TVM0eU5Dd3lMamc1T0NBeE1ESXVPVEkzTERjdU1UVTNJRGcyTGprd015d3hNeTR6T0RVZ1F6Y3dMak16Tnl3eE9TNDRNaklnTlRZdU1qZzRMREk0TGpRek5pQTBNaTR5T0RJc05ESXVORFF4SUVNeU9DNHlOemNzTlRZdU5EUTNJREU1TGpZMk15dzNNQzQwT1RZZ01UTXVNakkyTERnM0xqQTJNaUJETmk0NU9UZ3NNVEF6TGpBNE5pQXlMamN6T1N3eE1qRXVNems1SURFdU5URTJMREUwT0M0eU1UTWdRekF1TWprc01UYzFMakE0TXlBd0xERTRNeTQyTmpJZ01Dd3lOVEl1TURnZ1F6QXNNekl3TGpRNU55QXdMakk1TERNeU9TNHdOellnTVM0MU1UWXNNelUxTGprME5pQkRNaTQzTXprc016Z3lMamMySURZdU9UazRMRFF3TVM0d056TWdNVE11TWpJMkxEUXhOeTR3T1RjZ1F6RTVMalkyTXl3ME16TXVOall6SURJNExqSTNOeXcwTkRjdU56RXlJRFF5TGpJNE1pdzBOakV1TnpFNElFTTFOaTR5T0Rnc05EYzFMamN5TXlBM01DNHpNemNzTkRnMExqTXpOeUE0Tmk0NU1ETXNORGt3TGpjM05TQkRNVEF5TGpreU55dzBPVGN1TURBeUlERXlNUzR5TkN3MU1ERXVNall4SURFME9DNHdOVFFzTlRBeUxqUTROQ0JETVRjMExqa3lOQ3cxTURNdU56RWdNVGd6TGpVd015dzFNRFFnTWpVeExqa3lNU3cxTURRZ1F6TXlNQzR6TXpnc05UQTBJRE15T0M0NU1UY3NOVEF6TGpjeElETTFOUzQzT0Rjc05UQXlMalE0TkNCRE16Z3lMall3TVN3MU1ERXVNall4SURRd01DNDVNVFFzTkRrM0xqQXdNaUEwTVRZdU9UTTRMRFE1TUM0M056VWdRelF6TXk0MU1EUXNORGcwTGpNek55QTBORGN1TlRVekxEUTNOUzQzTWpNZ05EWXhMalUxT1N3ME5qRXVOekU0SUVNME56VXVOVFkwTERRME55NDNNVElnTkRnMExqRTNPQ3cwTXpNdU5qWXpJRFE1TUM0Mk1UWXNOREUzTGpBNU55QkRORGsyTGpnME15dzBNREV1TURjeklEVXdNUzR4TURJc016Z3lMamMySURVd01pNHpNalVzTXpVMUxqazBOaUJETlRBekxqVTFNU3d6TWprdU1EYzJJRFV3TXk0NE5ERXNNekl3TGpRNU55QTFNRE11T0RReExESTFNaTR3T0NCRE5UQXpMamcwTVN3eE9ETXVOall5SURVd015NDFOVEVzTVRjMUxqQTRNeUExTURJdU16STFMREUwT0M0eU1UTWdRelV3TVM0eE1ESXNNVEl4TGpNNU9TQTBPVFl1T0RRekxERXdNeTR3T0RZZ05Ea3dMall4Tml3NE55NHdOaklnUXpRNE5DNHhOemdzTnpBdU5EazJJRFEzTlM0MU5qUXNOVFl1TkRRM0lEUTJNUzQxTlRrc05ESXVORFF4SUVNME5EY3VOVFV6TERJNExqUXpOaUEwTXpNdU5UQTBMREU1TGpneU1pQTBNVFl1T1RNNExERXpMak00TlNCRE5EQXdMamt4TkN3M0xqRTFOeUF6T0RJdU5qQXhMREl1T0RrNElETTFOUzQzT0Rjc01TNDJOelVnUXpNeU9DNDVNVGNzTUM0ME5Ea2dNekl3TGpNek9Dd3dMakUxT1NBeU5URXVPVEl4TERBdU1UVTVJRm9nVFRJMU1TNDVNakVzTkRVdU5UVWdRek14T1M0eE9EWXNORFV1TlRVZ016STNMakUxTkN3ME5TNDRNRGNnTXpVekxqY3hPQ3cwTnk0d01Ua2dRek0zT0M0eU9DdzBPQzR4TXprZ016a3hMall4T1N3MU1pNHlORE1nTkRBd0xqUTVOaXcxTlM0Mk9UTWdRelF4TWk0eU5UVXNOakF1TWpZeklEUXlNQzQyTkRjc05qVXVOekl5SURReU9TNDBOaklzTnpRdU5UTTRJRU0wTXpndU1qYzRMRGd6TGpNMU15QTBORE11TnpNM0xEa3hMamMwTlNBME5EZ3VNekEzTERFd015NDFNRFFnUXpRMU1TNDNOVGNzTVRFeUxqTTRNU0EwTlRVdU9EWXhMREV5TlM0M01pQTBOVFl1T1RneExERTFNQzR5T0RJZ1F6UTFPQzR4T1RNc01UYzJMamcwTmlBME5UZ3VORFVzTVRnMExqZ3hOQ0EwTlRndU5EVXNNalV5TGpBNElFTTBOVGd1TkRVc016RTVMak0wTlNBME5UZ3VNVGt6TERNeU55NHpNVE1nTkRVMkxqazRNU3d6TlRNdU9EYzNJRU0wTlRVdU9EWXhMRE0zT0M0ME16a2dORFV4TGpjMU55d3pPVEV1TnpjNElEUTBPQzR6TURjc05EQXdMalkxTlNCRE5EUXpMamN6Tnl3ME1USXVOREUwSURRek9DNHlOemdzTkRJd0xqZ3dOaUEwTWprdU5EWXlMRFF5T1M0Mk1qRWdRelF5TUM0Mk5EY3NORE00TGpRek55QTBNVEl1TWpVMUxEUTBNeTQ0T1RZZ05EQXdMalE1Tml3ME5EZ3VORFkySUVNek9URXVOakU1TERRMU1TNDVNVFlnTXpjNExqSTRMRFExTmk0d01pQXpOVE11TnpFNExEUTFOeTR4TkNCRE16STNMakUxT0N3ME5UZ3VNelV5SURNeE9TNHhPVEVzTkRVNExqWXdPU0F5TlRFdU9USXhMRFExT0M0Mk1Ea2dRekU0TkM0Mk5TdzBOVGd1TmpBNUlERTNOaTQyT0RRc05EVTRMak0xTWlBeE5UQXVNVEl6TERRMU55NHhOQ0JETVRJMUxqVTJNU3cwTlRZdU1ESWdNVEV5TGpJeU1pdzBOVEV1T1RFMklERXdNeTR6TkRVc05EUTRMalEyTmlCRE9URXVOVGcyTERRME15NDRPVFlnT0RNdU1UazBMRFF6T0M0ME16Y2dOelF1TXpjNUxEUXlPUzQyTWpFZ1F6WTFMalUyTkN3ME1qQXVPREEySURZd0xqRXdOQ3cwTVRJdU5ERTBJRFUxTGpVek5DdzBNREF1TmpVMUlFTTFNaTR3T0RRc016a3hMamMzT0NBME55NDVPQ3d6TnpndU5ETTVJRFEyTGpnMkxETTFNeTQ0TnpjZ1F6UTFMalkwT0N3ek1qY3VNekV6SURRMUxqTTVNU3d6TVRrdU16UTFJRFExTGpNNU1Td3lOVEl1TURnZ1F6UTFMak01TVN3eE9EUXVPREUwSURRMUxqWTBPQ3d4TnpZdU9EUTJJRFEyTGpnMkxERTFNQzR5T0RJZ1F6UTNMams0TERFeU5TNDNNaUExTWk0d09EUXNNVEV5TGpNNE1TQTFOUzQxTXpRc01UQXpMalV3TkNCRE5qQXVNVEEwTERreExqYzBOU0EyTlM0MU5qTXNPRE11TXpVeklEYzBMak0zT1N3M05DNDFNemdnUXpnekxqRTVOQ3cyTlM0M01qSWdPVEV1TlRnMkxEWXdMakkyTXlBeE1ETXVNelExTERVMUxqWTVNeUJETVRFeUxqSXlNaXcxTWk0eU5ETWdNVEkxTGpVMk1TdzBPQzR4TXprZ01UVXdMakV5TXl3ME55NHdNVGtnUXpFM05pNDJPRGNzTkRVdU9EQTNJREU0TkM0Mk5UVXNORFV1TlRVZ01qVXhMamt5TVN3ME5TNDFOU0JhSWlCcFpEMGlSbWxzYkMweElpQm1hV3hzUFNJalJrWkdSa1pHSWlCdFlYTnJQU0oxY213b0kyMWhjMnN0TWlraVBqd3ZjR0YwYUQ0Z0lDQWdJQ0FnSUR3dlp6NGdJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHlOVEV1T1RJeExETXpOaTR3TlRNZ1F6SXdOUzQxTkRNc016TTJMakExTXlBeE5qY3VPVFEzTERJNU9DNDBOVGNnTVRZM0xqazBOeXd5TlRJdU1EZ2dRekUyTnk0NU5EY3NNakExTGpjd01pQXlNRFV1TlRRekxERTJPQzR4TURZZ01qVXhMamt5TVN3eE5qZ3VNVEEySUVNeU9UZ3VNams0TERFMk9DNHhNRFlnTXpNMUxqZzVOQ3d5TURVdU56QXlJRE16TlM0NE9UUXNNalV5TGpBNElFTXpNelV1T0RrMExESTVPQzQwTlRjZ01qazRMakk1T0N3ek16WXVNRFV6SURJMU1TNDVNakVzTXpNMkxqQTFNeUJhSUUweU5URXVPVEl4TERFeU1pNDNNVFVnUXpFNE1DNDBOelFzTVRJeUxqY3hOU0F4TWpJdU5UVTJMREU0TUM0Mk16TWdNVEl5TGpVMU5pd3lOVEl1TURnZ1F6RXlNaTQxTlRZc016SXpMalV5TmlBeE9EQXVORGMwTERNNE1TNDBORFFnTWpVeExqa3lNU3d6T0RFdU5EUTBJRU16TWpNdU16WTNMRE00TVM0ME5EUWdNemd4TGpJNE5Td3pNak11TlRJMklETTRNUzR5T0RVc01qVXlMakE0SUVNek9ERXVNamcxTERFNE1DNDJNek1nTXpJekxqTTJOeXd4TWpJdU56RTFJREkxTVM0NU1qRXNNVEl5TGpjeE5TQmFJaUJwWkQwaVJtbHNiQzAwSWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5OREUyTGpZeU55d3hNVGN1TmpBMElFTTBNVFl1TmpJM0xERXpOQzR6SURRd015NHdPVElzTVRRM0xqZ3pOQ0F6T0RZdU16azJMREUwTnk0NE16UWdRek0yT1M0M01ERXNNVFEzTGpnek5DQXpOVFl1TVRZMkxERXpOQzR6SURNMU5pNHhOallzTVRFM0xqWXdOQ0JETXpVMkxqRTJOaXd4TURBdU9UQTRJRE0yT1M0M01ERXNPRGN1TXpjeklETTROaTR6T1RZc09EY3VNemN6SUVNME1ETXVNRGt5TERnM0xqTTNNeUEwTVRZdU5qSTNMREV3TUM0NU1EZ2dOREUyTGpZeU55d3hNVGN1TmpBMElpQnBaRDBpUm1sc2JDMDFJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJRHd2Wno0OEwzTjJaejQ9KTtcblx0XHR9XG5cblx0XHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMzAyLCAxMDAlLCA5NCUpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0LyogVXNlIGdyYWRpZW50IHRvIGNvbnRyYXN0IHdpdGggZm9jdXNlZCB3aWRnZXQgKGNrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZCMyMikuICovXG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCB0byByaWdodCwgaHNsKDIwMSwgODUlLCA3MCUpLCBoc2woMjAxLCA4NSUsIDM1JSkgKTtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejQ4YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlsZG9hWFJsSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUI0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURRd01DQTBNREFpSUhOMGVXeGxQU0psYm1GaWJHVXRZbUZqYTJkeWIzVnVaRHB1WlhjZ01DQXdJRFF3TUNBME1EQTdJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWo0OGMzUjViR1VnZEhsd1pUMGlkR1Y0ZEM5amMzTWlQaTV6ZERCN1ptbHNiRG9qUmtaR1JrWkdPMzA4TDNOMGVXeGxQanh3WVhSb0lHTnNZWE56UFNKemREQWlJR1E5SWswME1EQXNNakF3WXpBc01URXdMalV0T0RrdU5Td3lNREF0TWpBd0xESXdNRk13TERNeE1DNDFMREFzTWpBd1V6ZzVMalVzTUN3eU1EQXNNRk0wTURBc09Ea3VOU3cwTURBc01qQXdlaUJOTVRZekxqUXNNekExTGpWak9EZ3VOeXd3TERFek55NHlMVGN6TGpVc01UTTNMakl0TVRNM0xqSmpNQzB5TGpFc01DMDBMakl0TUM0eExUWXVNbU01TGpRdE5pNDRMREUzTGpZdE1UVXVNeXd5TkM0eExUSTFZeTA0TGpZc015NDRMVEUzTGprc05pNDBMVEkzTGpjc055NDJZekV3TFRZc01UY3VOaTB4TlM0MExESXhMakl0TWpZdU4yTXRPUzR6TERVdU5TMHhPUzQyTERrdU5TMHpNQzQyTERFeExqZGpMVGd1T0MwNUxqUXRNakV1TXkweE5TNHlMVE0xTGpJdE1UVXVNbU10TWpZdU5pd3dMVFE0TGpJc01qRXVOaTAwT0M0eUxEUTRMakpqTUN3ekxqZ3NNQzQwTERjdU5Td3hMak1zTVRGakxUUXdMakV0TWkwM05TNDJMVEl4TGpJdE9Ua3VOQzAxTUM0MFl5MDBMakVzTnk0eExUWXVOU3d4TlM0MExUWXVOU3d5TkM0eVl6QXNNVFl1Tnl3NExqVXNNekV1TlN3eU1TNDFMRFF3TGpGakxUY3VPUzB3TGpJdE1UVXVNeTB5TGpRdE1qRXVPQzAyWXpBc01DNHlMREFzTUM0MExEQXNNQzQyWXpBc01qTXVOQ3d4Tmk0MkxEUXlMamdzTXpndU55dzBOeTR6WXkwMExERXVNUzA0TGpNc01TNDNMVEV5TGpjc01TNDNZeTB6TGpFc01DMDJMakV0TUM0ekxUa3VNUzB3TGpsak5pNHhMREU1TGpJc01qTXVPU3d6TXk0eExEUTFMRE16TGpWakxURTJMalVzTVRJdU9TMHpOeTR6TERJd0xqWXROVGt1T1N3eU1DNDJZeTB6TGprc01DMDNMamN0TUM0eUxURXhMalV0TUM0M1F6RXhNQzQ0TERJNU55NDFMREV6Tmk0eUxETXdOUzQxTERFMk15NDBMRE13TlM0MUlpOCtQQzl6ZG1jKyk7XG5cdFx0fVxuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IGhzbCgyMDEsIDEwMCUsIDg2JSk7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1tZW50aW9uLWJhY2tncm91bmQ6IGhzbGEoMzQxLCAxMDAlLCAzMCUsIDAuMSk7XG5cdC0tY2stY29sb3ItbWVudGlvbi10ZXh0OiBoc2woMzQxLCAxMDAlLCAzMCUpO1xufVxuXG4uY2stY29udGVudCAubWVudGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1tZW50aW9uLXRleHQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuMik7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC4zNSk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0czogaHNsYSgzMSwgMTAwJSwgNDAlLCAuNCk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC41KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzOiBoc2xhKDMxLCAxMDAlLCA0MCUsIC42KTtcbn1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ge1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZS1pbi1vdXQgYmFja2dyb3VuZDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQ7XG5cdGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdHRvIHJpZ2h0LFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIDAlLFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIDVweCxcblx0XHRoc2xhKDAsIDAlLCAwJSwgMCkgNnB4LFxuXHRcdGhzbGEoMCwgMCUsIDAlLCAwKSBjYWxjKDEwMCUgLSA2cHgpLFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIGNhbGMoMTAwJSAtIDVweCksXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgMTAwJVxuXHQpIDE7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Ji5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX3NlbGVjdGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0dG8gcmlnaHQsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAwJSxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDVweCxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIGNhbGMoMTAwJSAtIDVweCksXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdFx0KSAxO1xuXHR9XG5cblx0Ji5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX2NvbGxhcHNlZCB7XG5cdFx0LyogRW1wdHkgZXhjZXB0aW9uIHNob3VsZCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFzIGV4Y2VwdGlvbiB3aXRoIGF0IGxlYXN0IDEgY2hhciAqL1xuXHRcdHBhZGRpbmctbGVmdDogMWNoO1xuXHR9XG59XG5cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdC8qIFdlIGFsc28gaGF2ZSB0byBvdmVycmlkZSBhbGwgZWxlbWVudHMgaW5zaWRlIHRoZSByZXN0cmljdGVkIGVkaXRhYmxlIHRvIHByZXZlbnQgY3Vyc29yIHN3aXRjaGluZyBiZXR3ZWVuIGRlZmF1bHQgYW5kIHRleHRcblx0ZHVyaW5nIHRoZSBwb2ludGVyIG1vdmVtZW50LiAqL1xuXHQmICoge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuXG5cdCYgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ge1xuXHRcdGN1cnNvcjogdGV4dDtcblxuXHRcdCYgKiB7XG5cdFx0XHRjdXJzb3I6IHRleHQ7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplOiAyNHB4O1xufVxuXG4uY2suY2stY2hhcmFjdGVyLWdyaWQge1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cblx0JiAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGVzIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpLCAxZnIpKTtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuXG5cdCYgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlIHtcblx0XHR3aWR0aDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHRyYW5zaXRpb246IC4ycyBlYXNlIGJveC1zaGFkb3c7XG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjpmb2N1czpub3QoIC5jay1kaXNhYmxlZCApLFxuXHRcdCY6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGdseXBoIGlzIHJlbmRlcmVkIGluIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQmID4gKiB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdH1cblxuXHQmIC5jay1jaGFyYWN0ZXItaW5mb19fbmFtZSB7XG5cdFx0bWF4LXdpZHRoOiAyODBweDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cblx0JiAuY2stY2hhcmFjdGVyLWluZm9fX2NvZGUge1xuXHRcdG9wYWNpdHk6IC42O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24ge1xuXG5cdCYgPiAuY2stbGFiZWwge1xuXHRcdG1heC13aWR0aDogMTYwcHg7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuXG5cdCYgPiAuY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0LyogVGhlcmUgY291bGQgYmUgZG96ZW5zIG9mIGNhdGVnb3JpZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdFx0bWF4LWhlaWdodDogMjUwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdG1heC13aWR0aDogMTkwcHg7XG5cblx0XHQmID4gLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duX211bHRpcGxlLWFjdGl2ZSA+IC5jay1idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24td2lkdGg6IDEyMHB4O1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1oZWlnaHQ6IDgwcHg7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1sYWJlbC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDkyLjElKTtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDcwJSk7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCB7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRjb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHQmIC5jay1zdHlsZS1ncmlkX19idXR0b24ge1xuXHRcdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLXdpZHRoKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1oZWlnaHQpO1xuXG5cdFx0LyogTGV0IGRlZmF1bHQgLmNrLWJ1dHRvbiA6Zm9jdXMgc3R5bGVzIGFwcGx5ICovXG5cdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRoZWlnaHQ6IDIycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHR9XG5cblx0XHQmIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0b3BhY2l0eTogLjk7XG5cblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdH1cblxuXHRcdCYuY2stZGlzYWJsZWQge1xuXHRcdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0XHQvKiBMZXQgZGVmYXVsdCAuY2stYnV0dG9uIDpmb2N1cyBzdHlsZXMgYXBwbHkgKi9cblx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRcdFx0XHRmaWx0ZXI6IHNhdHVyYXRlKC4zKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXG5cdFx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAtMXB4IDAgdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdFx0XHR6LWluZGV4OiAxOyAvKiBTdGF5IG9uIHRvcCBvZiB0aGUgcHJldmlldyB3aXRoIHRoZSBzaGFkb3cuICovXG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOm5vdCguY2stb24pIHtcblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKTpub3QoLmNrLW9uKSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xuXG5cdFx0XHQmIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1wYW5lbF9fc3R5bGUtZ3JvdXAge1xuXHQmID4gLmNrLWxhYmVsIHtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cblxuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc3R5bGUtcGFuZWwtbWF4LWhlaWdodDogNDcwcHg7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuQGltcG9ydCBcIi4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuLmNrLmNrLWlucHV0LWNvbG9yIHtcblx0JiA+IC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgZm9jdXNlZCBpbnB1dCBpcyBhbHdheXMgb24gdG9wIG9mIHRoZSBkcm9wZG93biBidXR0b24gc28gaXRzXG5cdFx0ICAgb3V0bGluZSBhbmQgYm9yZGVyIGFyZSBuZXZlciBjcm9wcGVkIChhbHNvIHdoZW4gdGhlIGlucHV0IGlzIHJlYWQtb25seSkuICovXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiAwO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2suY2stZHJvcGRvd24ge1xuXHRcdCYgPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXG5cdFx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdFx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cblx0XHRcdFx0JiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3X19uby1jb2xvci1pbmRpY2F0b3Ige1xuXHRcdFx0XHRcdHRvcDogLTMwJTtcblx0XHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNTAlO1xuXHRcdFx0XHRcdHdpZHRoOiA4JTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBoc2woMCwgMTAwJSwgNTAlKTtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0JiAuY2suY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZvcm0ge1xuXHRwYWRkaW5nOiAwIDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0Jjpmb2N1cyB7XG5cdFx0LyogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy80NzczICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG5cdCYgLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0XHR3aWR0aDogMDtcblx0fVxuXG5cdCYgLmNrLmNrLWRyb3Bkb3duIHtcblx0XHRtaW4td2lkdGg6IDEwMCU7XG5cblx0XHQmIC5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblxuXHQvKiBJZ25vcmUgbGFiZWxzIHRoYXQgd29yayBhcyBmaWVsZHNldCBsZWdlbmRzICovXG5cdCYgPiAqOm5vdCguY2stbGFiZWwpIHtcblx0XHQmICsgKiB7XG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stbGFiZWwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0fVxuXG5cdCYuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHQmIC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nOiAxMHB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtaGVpZ2h0OiAxMXB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGg6IDEycHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW46IDFweDtcbn1cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2dyaWQge1xuXHQvKiBUaGUgd2lkdGggb2YgYSBjb250YWluZXIgc2hvdWxkIG1hdGNoIDEwIGl0ZW1zIGluIGEgcm93IHNvIHRoZXJlIHdpbGwgYmUgYSAxMHgxMCBncmlkLiAqL1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoKSAqIDEwICsgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pICogMjAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgKiAyKTtcblx0cGFkZGluZzogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAwO1xufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwsXG4uY2tbZGlyPXJ0bF0gLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWdyaWQtYm94IHtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoKTtcblx0bWluLWhlaWdodDogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1oZWlnaHQpO1xuXHRtYXJnaW46IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRib3JkZXItcmFkaXVzOiAxcHg7XG5cdG91dGxpbmU6IG5vbmU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXG5cdCYuY2stb24ge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcblxuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX3BhZGRpbmctcm93IHtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0fVxuXG5cdFx0Ji5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHQmIC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1mb2N1c2VkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMTIsIDkwJSwgODAlLCAuMyk7XG59XG5cbi5jay13aWRnZXQudGFibGUge1xuXHQmIHRkLFxuXHQmIHRoIHtcblx0XHQvKipcblx0XHQgKiBXaGlsZSBzZXR0aW5nIG91dGxpbmUgaXMgZmluZSwgdGhlIGJvcmRlciBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGhlcmVcblx0XHQgKiBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB0YWJsZSBjZWxsIGJvcmRlciBjb2xvciB3aGljaCBpcyBub3QgZXhwZWN0ZWQuXG5cdFx0ICogU28gZG8gbm90IHVzZSBgQG1peGluIGNrLWZvY3VzLXJpbmc7YCBoZXJlLCBvciBhbnkgb3RoZXIgYm9yZGVyIHN0eWxlcy5cblx0XHQgKiBTZWUgbW9yZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTY5Nzlcblx0XHQgKi9cblx0XHQmLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsXG5cdFx0Ji5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1cyB7XG5cdFx0XHQvKiBBIHZlcnkgc2xpZ2h0IGJhY2tncm91bmQgdG8gaGlnaGxpZ2h0IHRoZSBmb2N1c2VkIGNlbGwgKi9cblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWZvY3VzZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7IC8qIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50IC0gbm8gSUUgc3VwcG9ydCAqL1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZTogNnB4O1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoOiAxNTBweDtcbn1cblxuLmNrLmNrLXRhYmxlLWZvcm0ge1xuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyB7XG5cdFx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXN0eWxlLFxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXdpZHRoIHtcblx0XHRcdFx0d2lkdGg6IDgwcHg7XG5cdFx0XHRcdG1pbi13aWR0aDogODBweDtcblx0XHRcdFx0bWF4LXdpZHRoOiA4MHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX3dpZHRoLFxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdG1hcmdpbjogMFxuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3Ige1xuXHRcdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0bWFyZ2luOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGgpO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcikgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKTtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdH1cblxuXHRcdFx0YW5pbWF0aW9uOiBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIC4xNXMgZWFzZSBib3RoO1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogSGlkZSB0aGUgZXJyb3IgYmFsbG9vbiB3aGVuIHRoZSBmaWVsZCBpcyBibHVycmVkLiBNYWtlcyB0aGUgZXhwZXJpZW5jZSBtdWNoIG1vcmUgY2xlYXIuICovXG5cdFx0JiAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xuXG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmIC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0XHQmIC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdGFibGUtc2VsZWN0ZWQtY2VsbC1iYWNrZ3JvdW5kOiBoc2xhKDIwOCwgOTAlLCA4MCUsIC4zKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHtcblx0JiB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkLFxuXHQmIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NDQ2ICovXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stdGFibGUtc2VsZWN0ZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHR9XG5cblx0XHQmIDo6c2VsZWN0aW9uLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0Lypcblx0XHQgKiBUbyByZWR1Y2UgdGhlIGFtb3VudCBvZiBub2lzZSwgYWxsIHdpZGdldHMgaW4gdGhlIHRhYmxlIHNlbGVjdGlvbiBoYXZlIG5vIG91dGxpbmUgYW5kIG5vIHNlbGVjdGlvbiBoYW5kbGUuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk0OTEuXG5cdFx0ICovXG5cdFx0JiAuY2std2lkZ2V0IHtcblx0XHRcdG91dGxpbmU6IHVuc2V0O1xuXG5cdFx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDNweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDE2cHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDBtcztcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmU6IGVhc2U7XG5cblx0LS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXI6IGhzbCgwLCAwJSwgODclKTtcblx0LS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyOiBoc2woNDMsIDEwMCUsIDYyJSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cdG91dGxpbmUtd2lkdGg6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcyk7XG5cdG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0dHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxufVxuXG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogVGhlIDpmb2N1cyBzdHlsZSBpcyBhcHBsaWVkIGJlZm9yZSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCBjbGFzcyBpcyByZW5kZXJlZCBpbiB0aGUgdmlldy5cblx0VGhlc2Ugc3R5bGVzIHNob3cgYSBkaWZmZXJlbnQgYm9yZGVyIGZvciBhIGJsaW5rIG9mIGFuIGV5ZSwgc28gYDpmb2N1c2AgbmVlZCB0byBoYXZlIHNhbWUgc3R5bGVzIGFwcGxpZWQuICovXG5cdCYuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2staW5uZXItc2hhZG93KTtcblx0XHRAbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQpO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIEZvY3VzIGJvcmRlciBzaG91bGQgbm90IGJlIGFwcGxpZWQgdG8gdGFibGUgY2VsbHMgYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdGFibGUgY2VsbCBib3JkZXIgY29sb3IuXG5cdFx0ICogSW4gb3RoZXIgd29yZHMgLSBpbiBzb21lIHNjZW5hcmlvcywgdGhlIHBhcnQgb2YgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGhhcyBmb2N1cyBjb2xvciBzdHlsZSwgd2hpY2ggaXMgbm90IGV4cGVjdGVkIGJlaGF2aW9yXG5cdFx0ICogYmVjYXVzZSBpdCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yLlxuXHRcdCAqL1xuXHRcdCY6bm90KHRkLCB0aCkge1xuXHRcdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0fVxuXHR9XG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHBhZGRpbmc6IDRweDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdFx0LyogQmFja2dyb3VuZCBhbmQgb3BhY2l0eSB3aWxsIGJlIGFuaW1hdGVkIGFzIHRoZSBoYW5kbGVyIHNob3dzIHVwIG9yIHRoZSB3aWRnZXQgZ2V0cyBzZWxlY3RlZC4gKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0LyogVHJhbnNpdGlvbjpcblx0XHQgICAqIGJhY2tncm91bmQtY29sb3IgZm9yIHRoZSAuY2std2lkZ2V0X3NlbGVjdGVkIHN0YXRlIGNoYW5nZSxcblx0XHQgICAqIHZpc2liaWxpdHkgZm9yIGhpZGluZyB0aGUgaGFuZGxlcixcblx0XHQgICAqIG9wYWNpdHkgZm9yIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbiB3aGVuIHRoZSBoYW5kbGVyIGRpc2FwcGVhcnMuICovXG5cdFx0dHJhbnNpdGlvbjpcblx0XHRcdGJhY2tncm91bmQtY29sb3IgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLFxuXHRcdFx0dmlzaWJpbGl0eSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHRvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdC8qIE1ha2Ugb25seSB0b3AgY29ybmVycyByb3VuZC4gKi9cblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwIDA7XG5cblx0XHQvKiBQbGFjZSB0aGUgZHJhZyBoYW5kbGVyIG91dHNpZGUgdGhlIHdpZGdldCB3cmFwcGVyLiAqL1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cdFx0bGVmdDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHR0b3A6IDA7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaWNvbiBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGZvbi1zaXplIG9mIHRoZSBjb250ZW50LiAqL1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yKTtcblxuXHRcdFx0LyogVGhlIFwic2VsZWN0ZWRcIiBwYXJ0IG9mIHRoZSBpY29uIGlzIGludmlzaWJsZSBieSBkZWZhdWx0ICovXG5cdFx0XHQmIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0XHRcdC8qIE5vdGU6IFRoZSBhbmltYXRpb24gaXMgbG9uZ2VyIG9uIHB1cnBvc2UuIFNpbXBseSBmZWVscyBiZXR0ZXIuICovXG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBBZHZlcnRpc2UgdXNpbmcgdGhlIGxvb2sgb2YgdGhlIGljb24gdGhhdCBvbmNlIGNsaWNrZWQgdGhlIGhhbmRsZXIsIHRoZSB3aWRnZXQgd2lsbCBiZSBzZWxlY3RlZC4gKi9cblx0XHQmOmhvdmVyIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXHQmOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxuXG5cdC8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGVyIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cblx0XHRcdC8qIFdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgbm90aWZ5IHRoZSB1c2VyIHVzaW5nIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbi4gKi9cblx0XHRcdCYgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qIEluIGEgUlRMIGVudmlyb25tZW50LCBhbGlnbiB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5ja1tkaXI9XCJydGxcIl0gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcbn1cblxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjQxNSAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQge1xuXHQvKiBQcmV2ZW50IHRoZSA6aG92ZXIgb3V0bGluZSBmcm9tIHNob3dpbmcgdXAgYmVjYXVzZSBvZiB0aGUgdXNlZCBvdXRsaW5lLWNvbG9yIHRyYW5zaXRpb24uICovXG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkge1xuXHRcdC8qIERpc2FibGUgdmlzdWFsIGVmZmVjdHMgb2YgaG92ZXIvYWN0aXZlIHdpZGdldCB3aGVuIENLRWRpdG9yIGlzIGluIHJlYWRPbmx5IG1vZGUuXG5cdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjYxXG5cdFx0ICpcblx0XHQgKiBMZWF2ZSB0aGUgdW5pdCBiZWNhdXNlIHRoaXMgY3VzdG9tIHByb3BlcnR5IGlzIHVzZWQgaW4gY2FsYygpIGJ5IG90aGVyIGZlYXR1cmVzLlxuXHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjc3NVxuXHRcdCAqL1xuXHRcdC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzOiAwcHg7XG5cdH1cblxuXHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdCYgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0XHR9XG5cdH1cbn1cblxuLyogU3R5bGUgdGhlIHdpZGdldCB3aGVuIGl0J3Mgc2VsZWN0ZWQgYnV0IHRoZSBlZGl0YWJsZSBpdCBiZWxvbmdzIHRvIGxvc3QgZm9jdXMuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0IHtcblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXG5cdFx0Ji5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdCYgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLFxuXHRcdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCxcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGJsb2NrcXVvdGUgPiAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6Zmlyc3QtY2hpbGQge1xuXHQvKiBEbyBub3QgY3JvcCBzZWxlY3Rpb24gaGFuZGxlciBpZiBhIHdpZGdldCBpcyBhIGZpcnN0LWNoaWxkIGluIHRoZSBibG9ja3F1b3RlIG9yIGluIHRoZSByb290IGVkaXRhYmxlLlxuXHRJbiBmYWN0LCBhbnl0aGluZyB3aXRoIG92ZXJmbG93OiBoaWRkZW4uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtYmxvY2stcXVvdGUvaXNzdWVzLzI4XG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtd2lkZ2V0L2lzc3Vlcy80NFxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXdpZGdldC9pc3N1ZXMvNjYgKi9cblx0bWFyZ2luLXRvcDogY2FsYygxZW0gKyB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1yZXNpemVyLXNpemU6IDEwcHg7XG5cblx0LyogU2V0IHRoZSByZXNpemVyIHdpdGggYSA1MCUgb2Zmc2V0LiAqL1xuXHQtLWNrLXJlc2l6ZXItb2Zmc2V0OiBjYWxjKCAoIHZhcigtLWNrLXJlc2l6ZXItc2l6ZSkgLyAtMiApIC0gMnB4KTtcblx0LS1jay1yZXNpemVyLWJvcmRlci13aWR0aDogMXB4O1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1yZXNpemVyKTtcbn1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZSB7XG5cdHdpZHRoOiB2YXIoLS1jay1yZXNpemVyLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItc2l6ZSk7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdGJvcmRlcjogdmFyKC0tY2stcmVzaXplci1ib3JkZXItd2lkdGgpIHNvbGlkIGhzbCgwLCAwJSwgMTAwJSk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXJhZGl1cyk7XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtbGVmdCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtcmlnaHQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1yaWdodCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLWxlZnQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZTogMjBweDtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWFjdGl2ZTogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhvdmVyOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWJsdXJyZWQtZWRpdGFibGU6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYTogMDtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLWVuZC1hbHBoYTogLjM7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1pY29uOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG5AZGVmaW5lLW1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tdmlzaWJsZSB7XG5cdG9wYWNpdHk6IDE7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG5AZGVmaW5lLW1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taGlkZGVuIHtcblx0b3BhY2l0eTogMDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jayAuY2std2lkZ2V0IHtcblx0Lypcblx0ICogU3R5bGVzIG9mIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zXG5cdCAqL1xuXHQmIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdHdpZHRoOiB2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uKTtcblx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSwgYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0XHRAbWl4aW4gY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1oaWRkZW47XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmIHN2ZyB7XG5cdFx0XHR3aWR0aDogMTBweDtcblx0XHRcdGhlaWdodDogOHB4O1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgZWFzZTtcblx0XHRcdG1hcmdpbi10b3A6IDFweDtcblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0JiAqIHtcblx0XHRcdFx0c3Ryb2tlLWRhc2hhcnJheTogMTA7XG5cdFx0XHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXG5cdFx0XHRcdGZpbGw6IG5vbmU7XG5cdFx0XHRcdHN0cm9rZTogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1pY29uKTtcblx0XHRcdFx0c3Ryb2tlLXdpZHRoOiAxLjVweDtcblx0XHRcdFx0c3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuXHRcdFx0XHRzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuXHRcdFx0fVxuXG5cdFx0XHQmIGxpbmUge1xuXHRcdFx0XHRzdHJva2UtZGFzaGFycmF5OiA3O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Lypcblx0XHRcdCAqIERpc3BsYXkgdGhlIFwic29uYXJcIiBhcm91bmQgdGhlIGJ1dHRvbiB3aGVuIGhvdmVyZWQuXG5cdFx0XHQgKi9cblx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zb25hciAxcyBlYXNlIGluZmluaXRlO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogQW5pbWF0ZSBhY3RpdmUgYnV0dG9uJ3MgaWNvbi5cblx0XHRcdCAqL1xuXHRcdFx0JiBzdmcge1xuXHRcdFx0XHQmIHBvbHlsaW5lIHtcblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy1kYXNoIDJzIGxpbmVhcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgbGluZSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2ggMnMgbGluZWFyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblxuXHRcdFx0XHQmIHN2ZyB7XG5cdFx0XHRcdFx0JiBwb2x5bGluZSB7XG5cdFx0XHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JiBsaW5lIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTaG93IHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGdldHMgc2VsZWN0ZWQgb3IgYmVpbmcgaG92ZXJlZC5cblx0ICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQmOmhvdmVyIHtcblx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXZpc2libGU7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgTk9UIHNlbGVjdGVkIChidXQgdGhlIGJ1dHRvbnMgYXJlIHZpc2libGVcblx0ICogYW5kIHN0aWxsIGNhbiBiZSBob3ZlcmVkKS5cblx0ICovXG5cdCY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhvdmVyKTtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbjpcblx0ICogLSB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLFxuXHQgKiAtIG9yIHRoZSBidXR0b24gaXMgYmVpbmcgaG92ZXJlZCAocmVnYXJkbGVzcyBvZiB0aGUgd2lkZ2V0IHN0YXRlKS5cblx0ICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLFxuXHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWFjdGl2ZSk7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHR3aWR0aDogY2FsYyh2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpIC0gMnB4KTtcblx0XHRcdGhlaWdodDogY2FsYyh2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpIC0gMnB4KTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsYSgwLDAlLDEwMCUsMCkgMCUsIGhzbGEoMCwwJSwxMDAlLC4zKSAxMDAlKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZS4gQmVjYXVzZSBzb21lIHNwYWNlXG5cdCAqIGlzIGNvbnN1bWVkIGJ5IHRoZSBoYW5kbGUsIHRoZSBidXR0b24gbXVzdCBiZSBtb3ZlZCBzbGlnaHRseSB0byB0aGUgcmlnaHQgdG8gbGV0IGl0IGJyZWF0aGUuXG5cdCAqL1xuXHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hpY2ggaXMgZGlzcGxheWVkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHVzaW5nIHRoZSBrZXlib2FyZC5cblx0ICovXG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGhlaWdodDogMXB4O1xuXHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWZha2UtY2FyZXQtcHVsc2UgbGluZWFyIDFzIGluZmluaXRlIG5vcm1hbCBmb3J3YXJkcztcblxuXHRcdC8qXG5cdFx0ICogVGhlIHNlbWktdHJhbnNwYXJlbnQtb3V0bGluZStiYWNrZ3JvdW5kIGNvbWJvIGltcHJvdmVzIHRoZSBjb250cmFzdFxuXHRcdCAqIHdoZW4gdGhlIGJhY2tncm91bmQgdW5kZXJuZWF0aCB0aGUgZmFrZSBjYXJldCBpcyBkYXJrLlxuXHRcdCAqL1xuXHRcdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IHdoZW4gdGhlIFwiZmFrZSBjYXJldFwiIGlzIGJsaW5raW5nIChlLmcuIHVwb24ga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdCAqIERlc3BpdGUgdGhlIHdpZGdldCBiZWluZyBwaHlzaWNhbGx5IHNlbGVjdGVkIGluIHRoZSBtb2RlbCwgaXRzIG91dGxpbmUgc2hvdWxkIGRpc2FwcGVhci5cblx0ICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLFxuXHRcdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cblxuXHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLFxuXHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIge1xuXHRcdC8qXG5cdFx0ICogV2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgdmlzaWJsZSB3ZSBzaW11bGF0ZSB0aGF0IHRoZSB3aWRnZXQgaXMgbm90IHNlbGVjdGVkXG5cdFx0ICogKGRlc3BpdGUgYmVpbmcgcGh5c2ljYWxseSBzZWxlY3RlZCksIHNvIHRoZSBvdXRsaW5lIGNvbG9yIHNob3VsZCBiZSBmb3IgdGhlXG5cdFx0ICogdW5zZWxlY3RlZCB3aWRnZXQuXG5cdFx0ICovXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdFx0b3V0bGluZS1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0Lypcblx0XHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgYmxpbmtpbmcgKGUuZy4gdXBvbiBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0XHQgKiBJbiB0aGlzIHN0YXRlLCB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3b3VsZCBjb2xsaWRlIHdpdGggdGhlIGZha2UgY2FyZXRzIHNvIHRoZXkgc2hvdWxkIGRpc2FwcGVhci5cblx0XHQgKi9cblx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhpZGRlbjtcblx0XHR9XG5cblx0XHQvKlxuXHRcdCAqIEZha2UgaG9yaXpvbnRhbCBjYXJldCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBzZWxlY3Rpb24gaGFuZGxlLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSBoYW5kbGUgYmVjYXVzZSBpdCBpbnRlcnNlY3RzIHdpdGggdGhlIGNhcmV0IChhbmQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlIGFueXdheSkuXG5cdFx0ICovXG5cdFx0Ji5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdFx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMFxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lypcblx0XHQgKiBGYWtlIGhvcml6b250YWwgY2FyZXQgaW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzaXplIFVJLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSByZXNpemUgVUkgYmVjYXVzZSBpdCBjcmVhdGVzIHRvbyBtdWNoIG5vaXNlLiBJdCBjYW4gYmUgdmlzaWJsZSB3aGVuIHRoZSB1c2VyXG5cdFx0ICogaG92ZXJzIHRoZSB3aWRnZXQsIHRob3VnaC5cblx0XHQgKi9cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1yZXNpemVyID4gLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdFx0XHRvcGFjaXR5OiAwXG5cdFx0fVxuXHR9XG59XG5cbi8qXG4gKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZSBpbiBhbiBSVEwgZW52aXJvbm1lbnQuXG4gKiBUaGUgc2VsZWN0aW9uIGhhbmRsZXIgaXMgYWxpZ25lZCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gY3JlYXRlXG4gKiBhZGRpdGlvbmFsIHNwYWNlIGZvciBpdCBuZXh0IHRvIHRoZSBcImJlZm9yZVwiIGJ1dHRvbi5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi8qXG4gKiBIaWRlIHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIGFzIGEgY2hpbGQgb2YgYSBzZWxlY3RlZFxuICogbmVzdGVkIGVkaXRhYmxlIChlLmcuIG11bGl0LWNlbGwgdGFibGUgc2VsZWN0aW9uKS5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzI2My5cbiAqL1xuLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHQmIC5jay13aWRnZXQge1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhpZGRlbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIGJ1dCB0aGUgdXNlciBjbGlja2VkIG91dHNpZGUgb2YgdGhlIGVkaXRvciAoYmx1cnJlZCB0aGUgZWRpdG9yKS5cbiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpub3QoOmhvdmVyKSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYmx1cnJlZC1lZGl0YWJsZSk7XG5cblx0JiBzdmcgKiB7XG5cdFx0c3Ryb2tlOiBoc2woMCwwJSw2MCUpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LWRhc2gge1xuXHQwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDEwO1xuXHR9XG5cdDIwJSwgMTAwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2gge1xuXHQwJSwgMjAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogNztcblx0fVxuXHQ0MCUsIDEwMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zb25hciB7XG5cdDAlIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCAwIGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYSkpO1xuXHR9XG5cdDUwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1lbmQtYWxwaGEpKTtcblx0fVxuXHQxMDAlIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpLCB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLXN0YXJ0LWFscGhhKSk7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtZmFrZS1jYXJldC1wdWxzZSB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cdDQ5JSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXHQ1MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0OTklIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IGNvZGUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCA3OCUsIDAuMyk7XG5cdHBhZGRpbmc6IC4xNWVtO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay1jb2RlX3NlbGVjdGVkICB7XG5cdGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDc4JSwgMC41KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IGJsb2NrcXVvdGUge1xuXHQvKiBTZWUgIzEyICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMTUgKi9cblx0cGFkZGluZy1yaWdodDogMS41ZW07XG5cdHBhZGRpbmctbGVmdDogMS41ZW07XG5cblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRib3JkZXItbGVmdDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUge1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCA1cHggaHNsKDAsIDAlLCA4MCUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWJvb2ttYXJrLWljb24taG92ZXItZmlsbC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdC0tY2stYm9va21hcmstaWNvbi1zZWxlY3RlZC1maWxsLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHQtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pO1xuXHQtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWN1cnZlOiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xufVxuXG4uY2stYm9va21hcmsge1xuXHQmLmNrLXdpZGdldCB7XG5cdFx0b3V0bGluZTogbm9uZTtcblxuXHRcdCYgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdHRyYW5zaXRpb246IGZpbGwgdmFyKC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWN1cnZlKTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdCYgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdFx0ZmlsbDogdmFyKC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHQuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0XHRmaWxsOiB2YXIoLS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3IpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYm9va21hcmtfX2ljb24ge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0LyogVG8gbWFrZSBpdCBhbGlnbiB3aXRoIHRleHQgYmFzZWxpbmUuICovXG5cdFx0XHR0b3A6IC0wLjFlbTtcblxuXHRcdFx0JiAuY2staWNvbiB7XG5cdFx0XHRcdGhlaWdodDogMS4yZW07XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1ib29rbWFyay12aWV3IHtcblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxufVxuXG4uY2suY2stYm9va21hcmstZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0JiAuY2stYnV0dG9uLFxuXHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuXHQmLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0JiA+IC5jay1idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHRcdFx0JjpudGgtbGFzdC1jaGlsZCgxKSB7XG5cdFx0XHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fdW5zZWxlY3RhYmxlLmNzc1wiO1xuXG4uY2suY2stYm9va21hcmstYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0JiAuY2stYm9va21hcmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdFx0bWluLXdpZHRoOiAzZW07XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdEBtaXhpbiBjay11bnNlbGVjdGFibGU7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cblx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdCYgLmNrLWJvb2ttYXJrLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgMDtcblx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIEJhc2VkIG9uIGRlZmF1bHQgQ0tCb3ggdGhlbWUgY29sb3JzICovXG5cdC0tY2staW1hZ2UtcHJvY2Vzc2luZy1oaWdobGlnaHQtY29sb3I6IGhzbCgyMjAsIDEwJSwgOTglKTtcblx0LS1jay1pbWFnZS1wcm9jZXNzaW5nLWJhY2tncm91bmQtY29sb3I6IGhzbCgyMjAsIDEwJSwgOTAlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQmIC5pbWFnZSB7XG5cdFx0Ji5pbWFnZS1wcm9jZXNzaW5nIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdFx0XHQ5MGRlZyxcblx0XHRcdFx0XHR2YXIoLS1jay1pbWFnZS1wcm9jZXNzaW5nLWJhY2tncm91bmQtY29sb3IpLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctaGlnaGxpZ2h0LWNvbG9yKSxcblx0XHRcdFx0XHR2YXIoLS1jay1pbWFnZS1wcm9jZXNzaW5nLWJhY2tncm91bmQtY29sb3IpXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuXG5cdFx0XHRcdGFuaW1hdGlvbjogY2staW1hZ2UtcHJvY2Vzc2luZy1hbmltYXRpb24gMnMgbGluZWFyIGluZmluaXRlO1xuXHRcdFx0fVxuXG5cdFx0XHQmIGltZyB7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay1pbWFnZS1wcm9jZXNzaW5nLWFuaW1hdGlvbiB7XG5cdDAlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKlxuXHQgKiBWZXJ0aWNhbCBkcm9wIHRhcmdldCAoaW4gdGV4dCkuXG5cdCAqL1xuXHQmIC5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtcG9zaXRpb24ge1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0XHQmIHNwYW4ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cblx0JiAuY2std2lkZ2V0Oi13ZWJraXQtZHJhZyB7XG5cdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IHByZSB7XG5cdHBhZGRpbmc6IDFlbTtcblx0Y29sb3I6IGhzbCgwLCAwJSwgMjAuOCUpO1xuXHRiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCA3OCUsIDAuMyk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzclKTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXG5cdC8qIENvZGUgYmxvY2sgYXJlIGxhbmd1YWdlIGRpcmVjdGlvbuKAk2Fnbm9zdGljLiAqL1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcblxuXHR0YWItc2l6ZTogNDtcblx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXG5cdC8qIERvbid0IGluaGVyaXQgdGhlIHN0eWxlLCBlLmcuIHdoZW4gaW4gYSBibG9jayBxdW90ZS4gKi9cblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXG5cdC8qIERvbid0IGxldCB0aGUgY29kZSBiZSBzcXVhc2hlZCBlLmcuIHdoZW4gaW4gYSB0YWJsZSBjZWxsLiAqL1xuXHRtaW4td2lkdGg6IDIwMHB4O1xuXG5cdCYgY29kZSB7XG5cdFx0YmFja2dyb3VuZDogdW5zZXQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHByZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmW2RhdGEtbGFuZ3VhZ2VdOjphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWxhbmd1YWdlKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3Ige1xuXHQvKiBBbGwgdGhlIGVsZW1lbnRzIHdpdGhpbiBgLmNrLWVkaXRvcmAgYXJlIHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byBpdC5cblx0IElmIGFueSBlbGVtZW50IG5lZWRzIHRvIGJlIHBvc2l0aW9uZWQgd2l0aCByZXNwZWN0IHRvIHRoZSA8Ym9keT4sIGV0Yy4sXG5cdCBpdCBtdXN0IGxhbmQgb3V0c2lkZSBvZiB0aGUgYC5jay1lZGl0b3JgIGluIERPTS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCYgLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXRvb2xiYXIge1xuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWMvaXNzdWVzLzYyICovXG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhciB7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZTogMjdweDtcbn1cblxuLmNrLmNrLWVtb2ppIHtcblx0JiAuY2suY2stZW1vamlfX3RpbGVzIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0bWF4LWhlaWdodDogbWluKDI2NXB4LCA0MHZoKTtcblxuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0XHQmIC5jay1lbW9qaV9fZ3JpZCB7XG5cdFx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpLCAxZnIpKTtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRncmlkLWdhcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0JiAuY2stZW1vamlfX3RpbGUge1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHRyYW5zaXRpb246IC4ycyBlYXNlIGJveC1zaGFkb3c7XG5cdFx0XHRib3JkZXI6IDA7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6Zm9jdXM6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQmOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGdseXBoIGlzIHJlbmRlcmVkIGluIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZW1vamlfX2NhdGVnb3JpZXMtbGlzdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0bWFyZ2luOiAwIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdD4gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHRib3JkZXItd2lkdGg6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtYmlnKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXG5cdFx0Ji5jay1lbW9qaV9fY2F0ZWdvcnktaXRlbS5jay1vbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdFx0fVxuXG5cdFx0PiBzcGFuIHtcblx0XHRcdG1hcmdpbjogYXV0bztcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lbW9qaV9fc2tpbi10b25lIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdD4gLmNrLmNrLWRyb3Bkb3duIHtcblxuXHRcdC5jay5jay1saXN0X19pdGVtIHtcblx0XHRcdG1pbi13aWR0aDogMWVtO1xuXHRcdH1cblxuXHRcdC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiB7XG5cdFx0XHQuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHdpZHRoOiBpbml0aWFsO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuXG4uY2sgLmNrLmNrLWVtb2ppX19zZWFyY2gge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgZW1vamkgcGlja2VyIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtZW1vamktc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG5cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cbi5jay5jay1wbGFjZWhvbGRlcixcbi5jayAuY2stcGxhY2Vob2xkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xkZXIpO1xuXG5cdFx0LyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSM0NjkuICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbn1cblxuLyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSMxOTg3LiAqL1xuLmNrLmNrLXJlYWQtb25seSAuY2stcGxhY2Vob2xkZXIge1xuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLypcbiAqIFJ1bGVzIGZvciB0aGUgYGNrLXBsYWNlaG9sZGVyYCBhcmUgbG9hZGVkIGJlZm9yZSB0aGUgcnVsZXMgZm9yIGBjay1yZXNldF9hbGxgIGluIHRoZSBiYXNlIENLRWRpdG9yIDUgRExMIGJ1aWxkLlxuICogVGhpcyBmaXggb3ZlcndyaXRlcyB0aGUgaW5jb3JyZWN0bHkgc2V0IGBwb3NpdGlvbjogc3RhdGljYCBmcm9tIGBjay1yZXNldF9hbGxgLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzExNDE4LlxuICovXG4uY2suY2stcmVzZXRfYWxsIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIEVsZW1lbnRzIG1hcmtlZCBieSB0aGUgUmVuZGVyZXIgYXMgaGlkZGVuIHNob3VsZCBiZSBpbnZpc2libGUgaW4gdGhlIGVkaXRvci4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHNwYW5bZGF0YS1jay11bnNhZmUtZWxlbWVudF0ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWZpbmQtcmVzdWx0IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG59XG5cbi5jay1maW5kLXJlc3VsdF9zZWxlY3RlZCB7XG5cdGJhY2tncm91bmQ6IGhzbCgyOSwgMTAwJSwgNjAlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0JiAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMsIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQvKiBUaGUgaW5wdXRzIGFyZWEgc3R5bGVzICovXG5cdFx0Ji5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRoZSB2YWx1ZXMgc2hvdWxkIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBcIkZPTlRfU0laRV9QUkVTRVRfVU5JVFNcIiBvYmplY3QgaW4gdGhlIFwiL3NyYy9mb250c2l6ZS91dGlscy5qc1wiIGZpbGUuICovXG5cbi8qIFN0eWxlcyBzaG91bGQgYmUgcHJlZml4ZWQgd2l0aCB0aGUgYC5jay1jb250ZW50YCBjbGFzcy5cblNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NjM2ICovXG4uY2stY29udGVudCB7XG5cdCYgLnRleHQtdGlueSB7XG5cdFx0Zm9udC1zaXplOiAuN2VtO1xuXHR9XG5cblx0JiAudGV4dC1zbWFsbCB7XG5cdFx0Zm9udC1zaXplOiAuODVlbTtcblx0fVxuXG5cdCYgLnRleHQtYmlnIHtcblx0XHRmb250LXNpemU6IDEuNGVtO1xuXHR9XG5cblx0JiAudGV4dC1odWdlIHtcblx0XHRmb250LXNpemU6IDEuOGVtO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDE3cHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmczIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2tbY2xhc3MqPVwiY2staGVhZGluZ19oZWFkaW5nXCJdIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staGlnaGxpZ2h0LW1hcmtlci15ZWxsb3c6IGhzbCg2MCwgOTclLCA3MyUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItZ3JlZW46IGhzbCgxMjAsIDkzJSwgNjglKTtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLXBpbms6IGhzbCgzNDUsIDk2JSwgNzMlKTtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLWJsdWU6IGhzbCgyMDEsIDk3JSwgNzIlKTtcblx0LS1jay1oaWdobGlnaHQtcGVuLXJlZDogaHNsKDAsIDg1JSwgNDklKTtcblx0LS1jay1oaWdobGlnaHQtcGVuLWdyZWVuOiBoc2woMTEyLCAxMDAlLCAyNyUpO1xufVxuXG5AZGVmaW5lLW1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgJGNvbG9yIHtcblx0LmNrLWNvbnRlbnQgLm1hcmtlci0kY29sb3Ige1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1tYXJrZXItJGNvbG9yKTtcblx0fVxufVxuXG5AZGVmaW5lLW1peGluIGhpZ2hsaWdodC1wZW4tY29sb3IgJGNvbG9yIHtcblx0LmNrLWNvbnRlbnQgLnBlbi0kY29sb3Ige1xuXHRcdGNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtcGVuLSRjb2xvcik7XG5cblx0XHQvKiBPdmVycmlkZSBkZWZhdWx0IHllbGxvdyBiYWNrZ3JvdW5kIG9mIGA8bWFyaz5gIGZyb20gdXNlciBhZ2VudCBzdHlsZXNoZWV0ICovXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxuQG1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgeWVsbG93O1xuQG1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgZ3JlZW47XG5AbWl4aW4gaGlnaGxpZ2h0LW1hcmtlci1jb2xvciBwaW5rO1xuQG1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgYmx1ZTtcblxuQG1peGluIGhpZ2hsaWdodC1wZW4tY29sb3IgcmVkO1xuQG1peGluIGhpZ2hsaWdodC1wZW4tY29sb3IgZ3JlZW47XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay1ob3Jpem9udGFsLWxpbmUge1xuXHQvKiBOZWNlc3NhcnkgdG8gcmVuZGVyIHByb3Blcmx5IG5leHQgdG8gZmxvYXRlZCBvYmplY3RzLCBlLmcuIHNpZGUgaW1hZ2UgY2FzZS4gKi9cblx0ZGlzcGxheTogZmxvdy1yb290O1xufVxuXG4uY2stY29udGVudCBociB7XG5cdG1hcmdpbjogMTVweCAwO1xuXHRoZWlnaHQ6IDRweDtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCA4NyUpO1xuXHRib3JkZXI6IDA7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBUaGUgZmVhdHVyZSBjb250YWluZXIuICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIHtcblx0LyogR2l2ZSB0aGUgZW1iZWQgc29tZSBhaXIuICovXG5cdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0bWFyZ2luOiAwLjllbSBhdXRvO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGZsb3ctcm9vdDtcblxuXHQvKiBHaXZlIHRoZSBodG1sIGVtYmVkIHNvbWUgbWluaW1hbCB3aWR0aCBpbiB0aGUgY29udGVudCB0byBwcmV2ZW50IHRoZW1cblx0ZnJvbSBiZWluZyBcInNxdWFzaGVkXCIgaW4gdGlnaHQgc3BhY2VzLCBlLmcuIGluIHRhYmxlIGNlbGxzIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MzMxKSAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG5cblx0LyogRG9uJ3QgaW5oZXJpdCB0aGUgc3R5bGUsIGUuZy4gd2hlbiBpbiBhIGJsb2NrIHF1b3RlLiAqL1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cblx0LyogLS0tLS0gRW1lYmVkIGxhYmVsIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjb250ZW50IGRvZXMgbm90IGNvdmVyIHRoZSBsYWJlbC4gKi9cblx0XHR6LWluZGV4OiAxO1xuXHR9XG5cblx0LyogLS0tLS0gRW1lYmVkIGludGVybmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvKiBUaGUgc3dpdGNoIG1vZGUgYnV0dG9uIHdyYXBwZXIuICovXG5cdCYgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ZGlzcGxheTogZmxleDtcblx0fVxuXG5cdCYgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LWNvbnRlbnQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW46IGF1dG87XG5cblx0XHQvKiBHaXZlcyBzcGFjaW5nIHRvIHRoZSBzbWFsbCByZW5kZXJhYmxlIGVsZW1lbnRzLCBzbyB0aGV5IGFsd2F5cyBjb3ZlciB0aGUgcGxhY2Vob2xkZXIuICovXG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0XHRib3JkZXItc3BhY2luZzogN3B4O1xuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctcGxhY2Vob2xkZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aDogMXB4O1xufVxuXG4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtYmFzZSk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHQvKiBMZWF2ZSBzcGFjZSBmb3IgbGFiZWwgKi9cblx0cGFkZGluZy10b3A6IGNhbGModmFyKC0tY2stZm9udC1zaXplLXRpbnkpICsgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXHRtaW4td2lkdGg6IGNhbGMoNzZweCArIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblxuXHQmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpIGRhc2hlZCB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWh0bWwtb2JqZWN0LWVtYmVkLWxhYmVsKTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0YmFja2dyb3VuZDogaHNsKDBkZWcgMCUgNjAlKTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctdGlueSkgKyB2YXIoLS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHR9XG5cblx0LyogTWFrZSBzcGFjZSBmb3IgbGFiZWwuICovXG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRtYXJnaW4tbGVmdDogNTBweDtcblx0fVxuXG5cdCYgLmh0bWwtb2JqZWN0LWVtYmVkX19jb250ZW50IHtcblx0XHQvKiBEaXNhYmxlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBlbWJlZCBjb250ZW50ICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbn1cblxuZGl2LmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdG1hcmdpbjogMWVtIGF1dG87XG59XG5cbnNwYW4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk3JSk7XG5cdC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi10ZXh0OiBoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kOiBoc2woNTJkZWcgMTAwJSA1MCUpO1xufVxuXG4vKiBDb250ZW50IHN0eWxlcyAqL1xuLmNrLWNvbnRlbnQgLmltYWdlID4gZmlnY2FwdGlvbiB7XG5cdGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG5cdGNhcHRpb24tc2lkZTogYm90dG9tO1xuXHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi10ZXh0KTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogLjZlbTtcblx0Zm9udC1zaXplOiAuNzVlbTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cblx0LyogSW1wcm92ZSBwbGFjZWhvbGRlciByZW5kZXJpbmcgaW4gaGlnaC1jb25zdHJhc3QgbW9kZSAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcpLiAqL1xuXHRAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXHRcdGNvbG9yOiB1bnNldDtcblx0fVxufVxuXG4vKiBFZGl0aW5nIHN0eWxlcyAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlID4gZmlnY2FwdGlvbi5pbWFnZV9fY2FwdGlvbl9oaWdobGlnaHRlZCB7XG5cdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0YW5pbWF0aW9uOiBjay1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodCAuNnMgZWFzZS1vdXQ7XG5cdH1cblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCB7XG5cdHdpZHRoOiA0MDBweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblxuXHQmIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFByZXNlcnZlIGFzcGVjdCByYXRpbyBvZiB0aGUgcmVzaXplZCBpbWFnZSBhZnRlciBpbnRyb2R1Y2luZyBpbWFnZSBoZWlnaHQgYXR0cmlidXRlLiAqL1xuLmNrLWNvbnRlbnQgaW1nLmltYWdlX3Jlc2l6ZWQge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHQvKlxuXHRUaGUgYDxmaWd1cmU+YCBlbGVtZW50IGZvciByZXNpemVkIGltYWdlcyBtdXN0IG5vdCB1c2UgYGRpc3BsYXk6dGFibGVgIGFzIGJyb3dzZXJzIGRvIG5vdCBzdXBwb3J0IGBtYXgtd2lkdGhgIGZvciBpdCB3ZWxsLlxuXHRTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDAxOTYwNC9jaHJvbWUtc2FmYXJpLWlnbm9yaW5nLW1heC13aWR0aC1pbi10YWJsZS8xNDQyMDY5MSMxNDQyMDY5MSBmb3IgbW9yZS5cblx0Rm9ydHVuYXRlbHksIHNpbmNlIHdlIGNvbnRyb2wgdGhlIHdpZHRoLCB0aGVyZSBpcyBubyByaXNrIHRoYXQgdGhlIGltYWdlIHdpbGwgbG9vayBiYWQuXG5cdCovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdCYgaW1nIHtcblx0XHQvKiBGb3IgcmVzaXplZCBpbWFnZXMgaXQgaXMgdGhlIGA8ZmlndXJlPmAgZWxlbWVudCB0aGF0IGRldGVybWluZXMgdGhlIGltYWdlIHdpZHRoLiAqL1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiA+IGZpZ2NhcHRpb24ge1xuXHRcdC8qIFRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgdXNlcyBgZGlzcGxheTpibG9ja2AsIHNvIGA8ZmlnY2FwdGlvbj5gIGFsc28gaGFzIHRvLiAqL1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0LyogVGhlIHJlc2l6ZWQgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIHJlc3BlY3QgaXRzIHBhcmVudCBzaXplLlxuXHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy4gKi9cblx0JiB0ZCxcblx0JiB0aCB7XG5cdFx0JiAuaW1hZ2UtaW5saW5lLmltYWdlX3Jlc2l6ZWQgaW1nIHtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0d2lkdGg6IDRlbTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cblx0JiAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZzogMS41ZW07XG5cdC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmc6IGNhbGModmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZykgLyAyKTtcbn1cblxuLmNrLWNvbnRlbnQge1xuXHQvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2MzE3ICovXG5cdCYgLmltYWdlIHtcblx0XHQvKiBQcm92aWRlcyBhIG1pbmltYWwgc2lkZSBtYXJnaW4gZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBhbGlnbmVkIGltYWdlcywgc28gdGhhdCB0aGUgdXNlciBoYXMgYSB2aXN1YWwgZmVlZGJhY2tcblx0XHRjb25maXJtaW5nIHN1Y2Nlc3NmdWwgYXBwbGljYXRpb24gb2YgdGhlIHN0eWxlIGlmIGltYWdlIHdpZHRoIGV4Y2VlZHMgdGhlIGVkaXRvcidzIHNpemUuXG5cdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkzNDIgKi9cblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLWxlZnQsXG5cdFx0Ji5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpKTtcblx0XHR9XG5cblx0XHQvKiBBbGxvd3MgZGlzcGxheWluZyBtdWx0aXBsZSBmbG9hdGluZyBpbWFnZXMgaW4gdGhlIHNhbWUgbGluZS5cblx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTE4MyNpc3N1ZWNvbW1lbnQtODA0OTg4MTMyICovXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHRcdCYuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0Y2xlYXI6IG5vbmU7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1zaWRlIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHRcdG1heC13aWR0aDogNTAlO1xuXHRcdH1cblxuXHRcdCYuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLWxlZnQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0JiAuaW1hZ2Utc3R5bGUtYWxpZ24tY2VudGVyIHtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdH1cblxuXHQmIC5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG5cblx0JiAuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdH1cblxuXHQvKiBTaW11bGF0ZXMgbWFyZ2luIGNvbGxhcHNpbmcgd2l0aCB0aGUgcHJlY2VkaW5nIHBhcmFncmFwaCwgd2hpY2ggZG9lcyBub3Qgd29yayBmb3IgdGhlIGZsb2F0aW5nIGVsZW1lbnRzLiAqL1xuXHQmIHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCxcblx0JiBwICsgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0LFxuXHQmIHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtc2lkZSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHRcdCYuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuXHRcdCYuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1zcGxpdGJ1dHRvbiB7XG5cdC8qIFRoZSBidXR0b24gc2hvdWxkIGRpc3BsYXkgYXMgYSByZWd1bGFyIGRyb3AtZG93biBpZiB0aGUgYWN0aW9uIGJ1dHRvblxuXHRpcyBmb3JjZWQgdG8gZmlyZSB0aGUgc2FtZSBhY3Rpb24gYXMgdGhlIGFycm93IGJ1dHRvbi4gKi9cblx0Ji5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuIHtcblx0XHQmOmhvdmVyLFxuXHRcdCYuY2stc3BsaXRidXR0b25fb3BlbiB7XG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXG5cdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5jay1zcGxpdGJ1dHRvbl9vcGVuOmhvdmVyIHtcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cblx0JiAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdCYgLmltYWdlLFxuXHQmIC5pbWFnZS1pbmxpbmUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdC8qIFVwbG9hZCBwcm9ncmVzcyBiYXIuICovXG5cdCYgLmltYWdlIC5jay1wcm9ncmVzcy1iYXIsXG5cdCYgLmltYWdlLWlubGluZSAuY2stcHJvZ3Jlc3MtYmFyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0Lypcblx0ICogU21hbGxlciBpbWFnZXMgc2hvdWxkIGhhdmUgdGhlIGljb24gY2xvc2VyIHRvIHRoZSBib3JkZXIuXG5cdCAqIE1hdGNoIHRoZSBpY29uIHBvc2l0aW9uIHdpdGggdGhlIGxpbmtlZCBpbWFnZSBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgbGluayBpbWFnZSBmZWF0dXJlLlxuXHQgKi9cblx0dG9wOiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdHJpZ2h0OiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0ei1pbmRleDogMTtcblxuXHQmOjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblxuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQge1xuXHQmIC5pbWFnZSB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIGltYWdlLiBDZW50ZXIgaW1hZ2UgYnkgZGVmYXVsdC4gKi9cblx0XHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHQgXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdFx0bWFyZ2luOiAwLjllbSBhdXRvO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjYXB0aW9uIHdpbGwgYmUgZGlzcGxheWVkIHByb3Blcmx5IChTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE4NzApLiAqL1xuXHRcdG1pbi13aWR0aDogNTBweDtcblxuXHRcdCYgaW1nIHtcblx0XHRcdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgbWFyZ2lucyBjYXVzZWQgYnkgbGluZS1oZWlnaHQgKHNlZSAjNDQpLiAqL1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdC8qIENlbnRlciB0aGUgaW1hZ2UgaWYgaXRzIHdpZHRoIGlzIHNtYWxsZXIgdGhhbiB0aGUgY29udGVudCdzIHdpZHRoLiAqL1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgbmV2ZXIgZXhjZWVkcyB0aGUgc2l6ZSBvZiB0aGUgcGFyZW50IGNvbnRhaW5lciAoY2tlZGl0b3IvY2tlZGl0b3I1LXVpIzY3KS4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBpcyBuZXZlciBzbWFsbGVyIHRoYW4gdGhlIHBhcmVudCBjb250YWluZXIgKFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTMwMCkuICovXG5cdFx0XHRtaW4td2lkdGg6IDEwMCU7XG5cblx0XHRcdC8qIEtlZXAgcHJvcG9ydGlvbnMgb2YgdGhlIGJsb2NrIGltYWdlIGlmIHRoZSBoZWlnaHQgaXMgc2V0IGFuZCB0aGUgaW1hZ2UgaXMgd2lkZXIgdGhhbiB0aGUgZWRpdG9yIHdpZHRoLlxuXHRcdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0NTQyLiAqL1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblx0fVxuXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0Lypcblx0XHQgKiBOb3JtYWxseSwgdGhlIC5pbWFnZS1pbmxpbmUgd291bGQgaGF2ZSBcImRpc3BsYXk6IGlubGluZS1ibG9ja1wiIGFuZCBcImltZyB7IHdpZHRoOiAxMDAlIH1cIiAodG8gZm9sbG93IHRoZSB3cmFwcGVyIHdoaWxlIHJlc2l6aW5nKS5cblx0XHQgKiBVbmZvcnR1bmF0ZWx5LCB0b2dldGhlciB3aXRoIFwic3Jjc2V0XCIsIGl0IGdldHMgYXV0b21hdGljYWxseSBzdHJldGNoZWQgdXAgdG8gdGhlIHdpZHRoIG9mIHRoZSBlZGl0aW5nIHJvb3QuXG5cdFx0ICogVGhpcyBzdHJhbmdlIGJlaGF2aW9yIGRvZXMgbm90IGhhcHBlbiB3aXRoIGlubGluZS1mbGV4LlxuXHRcdCAqL1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG5cdFx0LyogV2hpbGUgYmVpbmcgcmVzaXplZCwgZG9uJ3QgYWxsb3cgdGhlIGltYWdlIHRvIGV4Y2VlZCB0aGUgd2lkdGggb2YgdGhlIGVkaXRpbmcgcm9vdC4gKi9cblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHQvKiBUaGlzIGlzIHJlcXVpcmVkIGJ5IFNhZmFyaSB0byByZXNpemUgaW1hZ2VzIGluIGEgc2Vuc2libGUgd2F5LiBXaXRob3V0IHRoaXMsIHRoZSBicm93c2VyIGJyZWFrcyB0aGUgcmF0aW8uICovXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0XHQvKiBXaGVuIHRoZSBwaWN0dXJlIGlzIHByZXNlbnQgaXQgbXVzdCBhY3QgYXMgYSBmbGV4IGNvbnRhaW5lciB0byBsZXQgdGhlIGltZyByZXNpemUgcHJvcGVybHkgKi9cblx0XHQmIHBpY3R1cmUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHR9XG5cblx0XHQvKiBXaGVuIHRoZSBwaWN0dXJlIGlzIHByZXNlbnQsIGl0IG11c3QgYWN0IGxpa2UgYSByZXNpemFibGUgaW1nLiAqL1xuXHRcdCYgcGljdHVyZSxcblx0XHQmIGltZyB7XG5cdFx0XHQvKiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIGltZyB0byBzcGFuIHRoZSBlbnRpcmUgLmltYWdlLWlubGluZSB3cmFwcGVyIGFuZCB0byByZXNpemUgcHJvcGVybHkuICovXG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRmbGV4LXNocmluazogMTtcblxuXHRcdFx0LyogUHJldmVudHMgb3ZlcmZsb3dpbmcgdGhlIGVkaXRpbmcgcm9vdCBib3VuZGFyaWVzIHdoZW4gYW4gaW5saW5lIGltYWdlIGlzIHZlcnkgd2lkZS4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKlxuXHQgKiBJbmhlcnRpdCB0aGUgY29udGVudCBzdHlsZXMgcGFkZGluZyBvZiB0aGUgPGZpZ2NhcHRpb24+IGluIGNhc2UgdGhlIGludGVncmF0aW9uIG92ZXJyaWRlcyBgdGV4dC1hbGlnbjogY2VudGVyYFxuXHQgKiBvZiBgLmltYWdlYCAoZS5nLiB0byB0aGUgbGVmdC9yaWdodCkuIFRoaXMgZW5zdXJlcyB0aGUgcGxhY2Vob2xkZXIgc3RheXMgYXQgdGhlIHBhZGRpbmcganVzdCBsaWtlIHRoZSBuYXRpdmVcblx0ICogY2FyZXQgZG9lcywgYW5kIG5vdCBhdCB0aGUgZWRnZSBvZiA8ZmlnY2FwdGlvbj4uXG5cdCAqL1xuXHQmIC5pbWFnZSA+IGZpZ2NhcHRpb24uY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG5cdC8qXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTExNS5cblx0ICovXG5cdCYgLmltYWdlIHtcblx0XHR6LWluZGV4OiAxO1xuXG5cdFx0Lypcblx0XHQgKiBNYWtlIHN1cmUgdGhlIHNlbGVjdGVkIGltYWdlIGFsd2F5cyBzdGF5cyBvbiB0b3Agb2YgaXRzIHNpYmxpbmdzLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTA4LlxuXHRcdCAqL1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdHotaW5kZXg6IDI7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1MTE1LlxuXHQgKi9cblx0JiAuaW1hZ2UtaW5saW5lIHtcblx0XHR6LWluZGV4OiAxO1xuXG5cdFx0Lypcblx0XHQgKiBNYWtlIHN1cmUgdGhlIHNlbGVjdGVkIGlubGluZSBpbWFnZSBhbHdheXMgc3RheXMgb24gdG9wIG9mIGl0cyBzaWJsaW5ncy5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTEwOC5cblx0XHQgKi9cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHR6LWluZGV4OiAyO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogTWFrZSBzdXJlIHRoZSBuYXRpdmUgYnJvd3NlciBzZWxlY3Rpb24gc3R5bGUgaXMgbm90IGRpc3BsYXllZC5cblx0XHRcdCAqIElubGluZSBpbWFnZSB3aWRnZXRzIGhhdmUgdGhlaXIgb3duIHN0eWxlcyBmb3IgdGhlIHNlbGVjdGVkIHN0YXRlIGFuZFxuXHRcdFx0ICogbGVhdmluZyB0aGlzIHVwIHRvIHRoZSBicm93c2VyIGlzIGFza2luZyBmb3IgYSB2aXN1YWwgY29sbGlzaW9uLlxuXHRcdFx0ICovXG5cdFx0XHQmIDo6c2VsZWN0aW9uIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKiBLZWVwIHByb3BvcnRpb25zIG9mIHRoZSBpbmxpbmUgaW1hZ2UgaWYgdGhlIGhlaWdodCBpcyBzZXQgYW5kIHRoZSBpbWFnZSBpcyB3aWRlciB0aGFuIHRoZSBlZGl0b3Igd2lkdGguXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDU0Mi4gKi9cblx0JiAuaW1hZ2UtaW5saW5lIGltZyB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG5cblx0LyogVGhlIGlubGluZSBpbWFnZSBuZXN0ZWQgaW4gdGhlIHRhYmxlIHNob3VsZCBoYXZlIGl0cyBvcmlnaW5hbCBzaXplIGlmIG5vdCByZXNpemVkLlxuXHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy4gKi9cblx0JiB0ZCxcblx0JiB0aCB7XG5cdFx0JiAuaW1hZ2UtaW5saW5lIGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdCYgaW1nLmltYWdlX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBMaW5rZWQgaW1hZ2UgaW5kaWNhdG9yICovXG5cdCYgZmlndXJlLmltYWdlID4gYSxcblx0JiBhIHNwYW4uaW1hZ2UtaW5saW5lIHtcblx0XHQmOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1saW5rLWFjdGlvbnMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHQmIC5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdCYgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1saW5rLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHQmIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFN0eWxlIGxpbmsgZm9ybSBkaWZmZXJlbnRseSB3aGVuIG1hbnVhbCBkZWNvcmF0b3JzIGFyZSBhdmFpbGFibGUuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbGluay9pc3N1ZXMvMTg2LlxuICovXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdC8qXG5cdCAqIFdoZXRoZXIgdGhlIGZvcm0gaXMgaW4gdGhlIHJlc3BvbnNpdmUgbW9kZSBvciBub3QsIGlmIHRoZXJlIGFyZSBkZWNvcmF0b3IgYnV0dG9uc1xuXHQgKiBrZWVwIHRoZSB0b3AgbWFyZ2luIG9mIGFjdGlvbiBidXR0b25zIG1lZGl1bS5cblx0ICovXG5cdCYgLmNrLWJ1dHRvbiB7XG5cdFx0Ji5jay1idXR0b24tc2F2ZSxcblx0XHQmLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWxpc3QtYm9ndXMtcGFyYWdyYXBoIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBvbCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcblxuXHQmIG9sIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWxhdGluO1xuXG5cdFx0JiBvbCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLXJvbWFuO1xuXG5cdFx0XHQmIG9sIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiB1cHBlci1sYXRpbjtcblxuXHRcdFx0XHQmIG9sIHtcblx0XHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay1jb250ZW50IHVsIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuXG5cdCYgdWwge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xuXG5cdFx0JiB1bCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcblxuXHRcdFx0JiB1bCB7XG5cdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZTogMTZweDtcbn1cblxuQGRlZmluZS1taXhpbiB0b2RvLWxpc3QtY2hlY2tib3gge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdC8qIE5lZWRlZCBvbiBpT1MgKi9cblx0Ym9yZGVyOiAwO1xuXG5cdC8qIExUUiBzdHlsZXMgKi9cblx0bGVmdDogLTI1cHg7XG5cdG1hcmdpbi1yaWdodDogLTE1cHg7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW4tbGVmdDogMDtcblxuXHQvKiBSVEwgc3R5bGVzICovXG5cdFtkaXI9cnRsXSYge1xuXHRcdGxlZnQ6IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdHJpZ2h0OiAtMjVweDtcblx0XHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDIwJSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRyYW5zaXRpb246IDI1MG1zIGVhc2UtaW4tb3V0IGJveC1zaGFkb3c7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmOjphZnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0LyogQ2FsY3VsYXRlIHRpY2sgcG9zaXRpb24sIHNpemUgYW5kIGJvcmRlci13aWR0aCBwcm9wb3J0aW9uYWwgdG8gdGhlIGNoZWNrbWFyayBzaXplLiAqL1xuXHRcdGxlZnQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAzICk7XG5cdFx0dG9wOiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0d2lkdGg6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHRoZWlnaHQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAyLjYgKTtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0fVxuXG5cdCZbY2hlY2tlZF0ge1xuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0fVxuXHR9XG59XG5cbi8qXG4gKiBUby1kbyBsaXN0IGNvbnRlbnQgc3R5bGVzLlxuICovXG4uY2stY29udGVudCAudG9kby1saXN0IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHQmIGxpIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0JiAudG9kby1saXN0IHtcblx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHR9XG5cdH1cblxuXHQmIC50b2RvLWxpc3RfX2xhYmVsIHtcblx0XHQmID4gaW5wdXQge1xuXHRcdFx0QG1peGluIHRvZG8tbGlzdC1jaGVja2JveDtcblx0XHR9XG5cblx0XHQmIC50b2RvLWxpc3RfX2xhYmVsX19kZXNjcmlwdGlvbiB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cblxuXHRcdCYudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFRvLWRvIGxpc3QgZWRpdGluZyB2aWV3IHN0eWxlcy5cbiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsIHtcblx0Lypcblx0ICogVG8tZG8gbGlzdCBzaG91bGQgYmUgaW50ZXJhY3RpdmUgb25seSBkdXJpbmcgdGhlIGVkaXRpbmdcblx0ICogKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzIwOTApLlxuXHQgKi9cblx0JiA+IGlucHV0LFxuXHQmID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdCY6aG92ZXI6OmJlZm9yZSB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogRG9jdW1lbnQgTGlzdHMgLSBlZGl0aW5nIHZpZXcgaGFzIGFuIGFkZGl0aW9uYWwgc3BhbiBhcm91bmQgY2hlY2tib3guXG5cdCAqL1xuXHQmID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdEBtaXhpbiB0b2RvLWxpc3QtY2hlY2tib3g7XG5cdH1cblxuXHQmLnRvZG8tbGlzdF9fbGFiZWxfd2l0aG91dC1kZXNjcmlwdGlvbiB7XG5cdFx0JiBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCAubWVkaWEge1xuXHQvKiBEb24ndCBhbGxvdyBmbG9hdGVkIGNvbnRlbnQgb3ZlcmxhcCB0aGUgbWVkaWEuXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvaXNzdWVzLzUzICovXG5cdGNsZWFyOiBib3RoO1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBzb21lIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRlbnQgYW5kIHRoZSBtZWRpYS4gKi9cblx0LyogVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBlcXVhbCB0byAtLWNrLXNwYWNpbmctbGFyZ2UgdmFyaWFibGUgaWYgdXNlZCBpbiB0aGUgZWRpdG9yIGNvbnRleHRcblx0dG8gYXZvaWQgdGhlIGNvbnRlbnQganVtcGluZyAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLiAqL1xuXHRtYXJnaW46IDAuOWVtIDA7XG5cblx0LyogTWFrZSBzdXJlIG1lZGlhIGlzIG5vdCBvdmVycmlkZW4gd2l0aCBCb290c3RyYXAgZGVmYXVsdCBgZmxleGAgdmFsdWUuXG5cdFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTM3My4gKi9cblx0ZGlzcGxheTogYmxvY2s7XG5cblx0LyogR2l2ZSB0aGUgbWVkaWEgc29tZSBtaW5pbWFsIHdpZHRoIGluIHRoZSBjb250ZW50IHRvIHByZXZlbnQgdGhlbVxuXHRmcm9tIGJlaW5nIFwic3F1YXNoZWRcIiBpbiB0aWdodCBzcGFjZXMsIGUuZy4gaW4gdGFibGUgY2VsbHMgKCM0NCkgKi9cblx0bWluLXdpZHRoOiAxNWVtO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsIHtcblx0XHRcdC8qIE90aGVyd2lzZSB0aGUgVVJMIHdpbGwgb3ZlcmZsb3cgd2hlbiB0aGUgY29udGVudCBpcyB2ZXJ5IG5hcnJvdy4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJnb29nbGUuY29tL21hcHNcIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImdvby5nbC9tYXBzXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmdvb2dsZS5jb21cIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuYXBwLmdvby5nbFwiXSxcblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIHtcblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiBhcyBsb25nIGFzIHRoZSBlZGl0b3IgaXMgbm90IHJlYWTigJNvbmx5LlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2stbWVkaWFfX3dyYXBwZXIgPiAqOm5vdCguY2stbWVkaWFfX3BsYWNlaG9sZGVyKSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiB3aGVuIHRoZSB3aWRnZXQgaXMgbm90IHNlbGVjdGVkIChlLmcuIHRvIGF2b2lkIG9wZW5pbmcgbGlua3MgYnkgYWNjaWRlbnQpLlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvMTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuLmNrLXZlcnRpY2FsLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHdpZHRoOiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogLTFweDtcblx0XHR0b3A6IC0xcHg7XG5cdFx0Ym90dG9tOiAtMXB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblxuXHQmOmZvY3VzOjphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHQmIC5jay1idXR0b24ge1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogLTFweDtcblx0XHRcdFx0dG9wOiAtMXB4O1xuXHRcdFx0XHRib3R0b206IC0xcHg7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHR9XG5cblx0XHRcdCY6Zm9jdXM6OmFmdGVyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0d2lkdGg6IDQwMHB4O1xuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmIC5jay1pbnB1dCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudGlvbi1saXN0LW1heC1oZWlnaHQ6IDMwMHB4O1xufVxuXG4uY2suY2stbWVudGlvbnMge1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1tZW50aW9uLWxpc3QtbWF4LWhlaWdodCk7XG5cblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHQvKiBQcmV2ZW50IHVubmVjZXNzYXJ5IGhvcml6b250YWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblxuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG5cdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgdmVydGljYWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG5cdCYgPiAuY2stbGlzdF9faXRlbSB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRmbGV4LXNocmluazogMDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kOiAyMDgsIDAlLCA1MSU7XG5cdC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtb3V0bGluZTogaHNsKDBkZWcgMCUgNzUlKTtcblx0LS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1zaGFkb3c6IGhzbCgwZGVnIDAlIDAlIC8gMTElKTtcblx0LS1jay1jb2xvci1taW5pbWFwLXByb2dyZXNzLWJhY2tncm91bmQ6IGhzbCgwLDAlLDQwJSk7XG59XG5cbi5jay5jay1taW5pbWFwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQmLFxuXHQmIGlmcmFtZSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0JiBpZnJhbWUge1xuXHRcdGJvcmRlcjogMDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLW91dGxpbmUpO1xuXHRcdGJveC1zaGFkb3c6IDAgMnB4IDVweCB2YXIoLS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1zaGFkb3cpO1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdCYgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR0b3A6IDA7XG5cdFx0YmFja2dyb3VuZDogaHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuMiApO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMDBtcyBlYXNlLWluLW91dDtcblxuXG5cdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOmhzbGEoIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kKSwgLjMgKTtcblx0XHR9XG5cblx0XHQmLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmcsXG5cdFx0Ji5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyX2RyYWdnaW5nOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6aHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuNCApO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogYXR0cihkYXRhLXByb2dyZXNzKSBcIiVcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNXB4O1xuXHRcdFx0cmlnaHQ6IDVweDtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLW1pbmltYXAtcHJvZ3Jlc3MtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRwYWRkaW5nOiAycHggNHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXMgZWFzZS1pbi1vdXQ7XG5cblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWsge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGNsZWFyOiBib3RoO1xuXHRwYWRkaW5nOiA1cHggMDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGhzbCgwLCAwJSwgNzclKTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4uY2stY29udGVudCAucGFnZS1icmVha19fbGFiZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDE7XG5cdHBhZGRpbmc6IC4zZW0gLjZlbTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzclKTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBTYW5zLVNlcmlmO1xuXHRmb250LXNpemU6IDAuNzVlbTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGNvbG9yOiBoc2woMCwgMCUsIDIwJSk7XG5cdGJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdGJveC1zaGFkb3c6IDJweCAycHggMXB4IGhzbGEoMCwgMCUsIDAlLCAwLjE1KTtcblxuXHQvKiBEaXNhYmxlIHRoZSBwb3NzaWJpbGl0eSB0byBzZWxlY3QgdGhlIGxhYmVsIHRleHQgYnkgdGhlIHVzZXIuICovXG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8qIERvIG5vdCBzaG93IHRoZSBwYWdlIGJyZWFrIGVsZW1lbnQgaW5zaWRlIHRoZSBwcmludCBwcmV2aWV3IHdpbmRvdy4gKi9cbkBtZWRpYSBwcmludCB7XG5cdC5jay1jb250ZW50IC5wYWdlLWJyZWFrIHtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBGcm9tIHRpbWUgdG8gdGltZSBwbGFjaW5nIHBhZ2UtYnJlYWsgZGlyZWN0bHkgYWZ0ZXIgYSBibG9jayBlbGVtZW50IHdpdGggbWFyZ2luIGNhdXNlcyBhcHBlbmRpbmcgYSBuZXcgYmxhbmsgcGFnZSBpbiBwYWdpbmF0aW9uIG1vZGUuXG5cdCAqIFJlbW92aW5nIG1hcmdpbi1ib3R0b20gZnJvbSB0aGUgYmxvY2sgZWxlbWVudCBmaXhlcyB0aGF0IGlzc3VlIGFuZCB0aGUgbWFyZ2luIGlzIG5vdCBiZWluZyBtb3ZlZCB0byB0aGUgbmV4dCBibGFuayBwYWdlLlxuXHQgKlxuXHQgKiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSBwYWdpbmF0aW9uIHBsdWdpbnMuXG5cdCAqL1xuXHQuY2stY29udGVudCAqOmhhcygrIC5wYWdlLWJyZWFrKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNDYlKTtcbn1cblxuQGRlZmluZS1taXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtbHRyICR0ZXh0IHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPiQodGV4dCk8L3RleHQ+PC9zdmc+XCIpO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xufVxuXG5AZGVmaW5lLW1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1ydGwgJHRleHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+JCh0ZXh0KTwvdGV4dD48L3N2Zz5cIik7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xufVxuXG5AZGVmaW5lLW1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCAkdGV4dCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHBhZGRpbmctdG9wOiAxNXB4O1xuXG5cdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0W2Rpcj1sdHJdICYge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtbHRyICR0ZXh0O1xuXHR9XG5cdFtkaXI9cnRsXSAmIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kLXJ0bCAkdGV4dDtcblx0fVxuXG5cdCY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtbHRyICR0ZXh0O1xuXHR9XG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kLXJ0bCAkdGV4dDtcblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkge1xuXHQmIGFkZHJlc3Mge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgQUREUkVTUztcblx0fVxuXG5cdCYgYXNpZGUge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgQVNJREU7XG5cdH1cblxuXHQmIGJsb2NrcXVvdGUge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgQkxPQ0tRVU9URTtcblx0fVxuXG5cdCYgZGV0YWlscyB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBERVRBSUxTO1xuXHR9XG5cblx0JiBkaXY6bm90KC5jay13aWRnZXQsIC5jay13aWRnZXQgKikge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgRElWO1xuXHR9XG5cblx0JiBmb290ZXIge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgRk9PVEVSO1xuXHR9XG5cblx0JiBoMSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBIMTtcblx0fVxuXG5cdCYgaDIge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDI7XG5cdH1cblxuXHQmIGgzIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEgzO1xuXHR9XG5cblx0JiBoNCB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBINDtcblx0fVxuXG5cdCYgaDUge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDU7XG5cdH1cblxuXHQmIGg2IHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEg2O1xuXHR9XG5cblx0JiBoZWFkZXIge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSEVBREVSO1xuXHR9XG5cblx0JiBtYWluIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIE1BSU47XG5cdH1cblxuXHQmIG5hdiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBOQVY7XG5cdH1cblxuXHQmIHByZSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBQUkU7XG5cdH1cblxuXHQmIG9sIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIE9MO1xuXHR9XG5cblx0JiB1bCB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBVTDtcblx0fVxuXG5cdCYgcCB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBQO1xuXHR9XG5cblx0JiBzZWN0aW9uIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIFNFQ1RJT047XG5cdH1cblxuXHQmIDp3aGVyZShmaWd1cmUuaW1hZ2UsIGZpZ3VyZS50YWJsZSkgZmlnY2FwdGlvbiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBGSUdDQVBUSU9OO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYTo6YWZ0ZXIsXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYSB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCk7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWE6OmFmdGVyIHtcblx0Y29udGVudDogYXR0cihkYXRhLXZhbHVlKSBcIiBcIjtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWEge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHJlc2l6ZTogbm9uZTtcblx0b3V0bGluZTogbm9uZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Jjpub3QoW3JlYWRvbmx5XSk6Zm9jdXMge1xuXHRcdEBtaXhpbiBjay1mb2N1cy1yaW5nO1xuXHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWlubmVyLXNoYWRvdyk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWZvY3VzLXJpbmcge1xuXHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRvdXRsaW5lOiBub25lO1xuXHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY2hhcmFjdGVyLWdyaWQge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0JiAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGVzIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogTm90ZTogVGhpcyBmaWxlIHNob3VsZCBjb250YWluIHRoZSB3aXJlZnJhbWUgc3R5bGVzIG9ubHkuIEJ1dCBzaW5jZSB0aGVyZSBhcmUgbm8gc3VjaCBzdHlsZXMsXG4gKiBpdCBhY3RzIGFzIGEgbWVzc2FnZSB0byB0aGUgYnVpbGRlciB0ZWxsaW5nIHRoYXQgaXQgc2hvdWxkIGxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlc1xuICogKippbiB0aGUgdGhlbWUqKiB3aGVuIGNvbXBpbGluZyB0aGUgZWRpdG9yLlxuICovXG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMge1xuXHQmID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiB7XG5cdFx0d2lkdGg6IDM1MHB4O1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtY29sdW1uLWdhcDogMHB4O1xuXHRcdGdyaWQtcm93LWdhcDogMHB4O1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXHRcdGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bztcblxuXHRcdCYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMge1xuXHRcdFx0Z3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAyO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0XHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoKTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKTtcblx0XHRcdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIC4xNXMgZWFzZSBib3RoO1xuXG5cdFx0XHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBIaWRlIHRoZSBlcnJvciBiYWxsb29uIHdoZW4gdGhlIGZpZWxkIGlzIGJsdXJyZWQuIE1ha2VzIHRoZSBleHBlcmllbmNlIG11Y2ggbW9yZSBjbGVhci4gKi9cblx0XHRcdFx0JiAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdCYgPiBidXR0b24ge1xuXHRcdFx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgPiBzcGFuIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgPiAuY2stY2hhcmFjdGVyLWdyaWQge1xuXHRcdFx0Z3JpZC1hcmVhOiAyIC8gMSAvIDMgLyAyO1xuXHRcdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdFx0XHRncmlkLWFyZWE6IDMgLyAxIC8gNCAvIDI7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc3R5bGUtcGFuZWwtY29sdW1uczogMztcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY2stc3R5bGUtcGFuZWwtY29sdW1ucyksYXV0byk7XG5cdGp1c3RpZnktY29udGVudDogc3RhcnQ7XG5cblx0JiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0JiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC50YWJsZSB7XG5cdC8qIEdpdmUgdGhlIHRhYmxlIHdpZGdldCBzb21lIGFpciBhbmQgY2VudGVyIGl0IGhvcml6b250YWxseSAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gYXV0bztcblx0ZGlzcGxheTogdGFibGU7XG5cblx0JiB0YWJsZSB7XG5cdFx0LyogVGhlIHRhYmxlIGNlbGxzIHNob3VsZCBoYXZlIHNsaWdodCBib3JkZXJzICovXG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0XHRib3JkZXItc3BhY2luZzogMDtcblxuXHRcdC8qIFRhYmxlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIHNldCBvbiB0aGUgcGFyZW50IDxmaWd1cmU+LiBNYWtlIHN1cmUgdGhlIHRhYmxlIGluc2lkZSBzdHJldGNoZXNcblx0XHR0byB0aGUgZnVsbCBkaW1lbnNpb25zIG9mIHRoZSBjb250YWluZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzYxODYpLiAqL1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRcdC8qIFRoZSBvdXRlciBib3JkZXIgb2YgdGhlIHRhYmxlIHNob3VsZCBiZSBzbGlnaHRseSBkYXJrZXIgdGhhbiB0aGUgaW5uZXIgbGluZXMuXG5cdFx0QWxzbyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10YWJsZS9pc3N1ZXMvNTAuICovXG5cdFx0Ym9yZGVyOiAxcHggZG91YmxlIGhzbCgwLCAwJSwgNzAlKTtcblxuXHRcdCYgdGQsXG5cdFx0JiB0aCB7XG5cdFx0XHRtaW4td2lkdGg6IDJlbTtcblx0XHRcdHBhZGRpbmc6IC40ZW07XG5cblx0XHRcdC8qIFRoZSBib3JkZXIgaXMgaW5oZXJpdGVkIGZyb20gLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHN0eWxlcywgc28gdGhlb3JldGljYWxseSBpdCdzIG5vdCBuZWNlc3NhcnkgaGVyZS5cblx0XHRcdEhvd2V2ZXIsIHRoZSBib3JkZXIgaXMgYSBjb250ZW50IHN0eWxlLCBzbyBpdCBzaG91bGQgdXNlIC5jay1jb250ZW50IChzbyBpdCB3b3JrcyBvdXRzaWRlIHRoZSBlZGl0b3IpLlxuXHRcdFx0SGVuY2UsIHRoZSBkdXBsaWNhdGlvbi4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzYzMTQgKi9cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzUlKTtcblx0XHR9XG5cblx0XHQmIHRoIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMCUsIDUlKTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBFeHBhbmRpbmcgdGhlIHRhYmxlIHRvIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lciBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0YWJsZXNcbiAqIGFyZSByZW5kZXJlZCBpbnNpZGUgPGZpZ3VyZT4gZWxlbWVudHMsIHdoaWNoIGlzIGtpbmRhIGJ1Z2d5IGluIHRhYmxlIGhlaWdodCBjYWxjdWxhdGlvbi5cbiAqIFdoaWxlIHNldHRpbmcgYGhlaWdodDogMTAwJWAgZml4ZXMgdGhlIGlzc3VlIGluIHRoZSBlZGl0aW5nIG1vZGUgZGVzY3JpYmVkIGhlcmU6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MTg2XG4gKlxuICogaXQncyBjYXVzaW5nIGFub3RoZXIgaXNzdWUgd2l0aCB0aGUgdGFibGUgaGVpZ2h0IGluIHRoZSBwcmludCBwcmV2aWV3IG1vZGUgaGVyZTpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2ODU2XG4gKlxuICogRm9yIG5vdywgcmVzZXR0aW5nIHRoZSBoZWlnaHQgdG8gYGluaXRpYWxgIGluIHRoZSBwcmludCBtb2RlIHdvcmtzIGFzIGEgd29ya2Fyb3VuZC5cbiAqL1xuQG1lZGlhIHByaW50IHtcblx0LmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHtcblx0XHRoZWlnaHQ6IGluaXRpYWw7XG5cdH1cbn1cblxuLyogVGV4dCBhbGlnbm1lbnQgb2YgdGhlIHRhYmxlIGhlYWRlciBzaG91bGQgbWF0Y2ggdGhlIGVkaXRvciBzZXR0aW5ncyBhbmQgb3ZlcnJpZGUgdGhlIG5hdGl2ZSBicm93c2VyIHN0eWxpbmcsXG53aGVuIGNvbnRlbnQgaXMgYXZhaWxhYmxlIG91dHNpZGUgdGhlIGVkaXRvci4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzggKi9cbi5jay1jb250ZW50W2Rpcj1cInJ0bFwiXSAudGFibGUgdGgge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwibHRyXCJdIC50YWJsZSB0aCB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay10YWJsZS1ib2d1cy1wYXJhZ3JhcGgge1xuXHQvKlxuXHQgKiBVc2UgZGlzcGxheTppbmxpbmUtYmxvY2sgdG8gZm9yY2UgQ2hyb21lL1NhZmFyaSB0byBsaW1pdCB0ZXh0IG11dGF0aW9ucyB0byB0aGlzIGVsZW1lbnQuXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MDYyLlxuXHQgKi9cblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qXG5cdCAqIElubGluZSBIVE1MIGVsZW1lbnRzIG5lc3RlZCBpbiB0aGUgc3BhbiBzaG91bGQgYWx3YXlzIGJlIGRpbWVuc2lvbmVkIGluIHJlbGF0aW9uIHRvIHRoZSB3aG9sZSBjZWxsIHdpZHRoLlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy5cblx0ICovXG5cdHdpZHRoOiAxMDAlO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2dyaWQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuXHQvKiBJZ25vcmUgbGFiZWxzIHRoYXQgd29yayBhcyBmaWVsZHNldCBsZWdlbmRzICovXG5cdCYgPiAqOm5vdCguY2stbGFiZWwpIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdH1cblxuXHQmLmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cge1xuXHRcdCYgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdCYgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0ge1xuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0XHQmIC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHQvKiA0IGJ1dHRvbnMgb3V0IG9mIDcgKGgtYWxpZ25tZW50ICsgdi1hbGlnbm1lbnQpID0gMC41NyAqL1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMC41Nztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHQvKiAzIGJ1dHRvbnMgb3V0IG9mIDcgKGgtYWxpZ25tZW50ICsgdi1hbGlnbm1lbnQpID0gMC40MyAqL1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMC40Mztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staW5wdXQtY29sb3Ige1xuXHR3aWR0aDogMTAwJTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG5cdCYgPiBpbnB1dC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0ZmxleC1ncm93OiAxO1xuXHR9XG5cblx0JiA+IGRpdi5jay5jay1kcm9wZG93biB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXG5cdFx0LyogVGhpcyBkcm9wZG93biBoYXMgbm8gYXJyb3cgYnV0IGEgY29sb3IgcHJldmlldyBpbnN0ZWFkLiAqL1xuXHRcdCYgPiAuY2staW5wdXQtY29sb3JfX2J1dHRvbiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbiB7XG5cdFx0LyogUmVzb2x2aW5nIGlzc3VlIHdpdGggbWlzYWxpZ25lZCBidXR0b25zIG9uIFNhZmFyaSAoc2VlICMxMDU4OSkgKi9cblx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0JiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0XHQmID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXdfX25vLWNvbG9yLWluZGljYXRvciB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtZm9ybSB7XG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cblx0XHQmLmNrLXRhYmxlLWZvcm1fX2JhY2tncm91bmQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cblx0XHQmLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0XHQmIC5jay5jay1kcm9wZG93biB7XG5cdFx0XHRcdFx0ZmxleC1ncm93OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdGZsZXgtZ3JvdzogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdC8qIEFsbG93IGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHRoZSBzdGF0dXMgKGVycm9yKSBiYWxsb29ucy4gKi9cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSApO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwxMDAlKTtcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBiYWxsb29uIHN0YXR1cyBzdGF5cyBvbiB0b3Agb2Ygb3RoZXIgZm9ybSBlbGVtZW50cy4gKi9cblx0XHRcdHotaW5kZXg6IDE7XG5cblx0XHRcdC8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IGNhbGMoIC0xICogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSApO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggLTUwJSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSB7XG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleC1iYXNpczogMDtcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGJhc2VsaW5lO1xuXG5cdFx0XHQmIC5jay5jay10b29sYmFyIC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19tZWRpYWNvbG9ycy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NyUpO1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tdGV4dDogaHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogaHNsKDUyZGVnIDEwMCUgNTAlKTtcbn1cblxuLyogQ29udGVudCBzdHlsZXMgKi9cbi5jay1jb250ZW50IC50YWJsZSA+IGZpZ2NhcHRpb24ge1xuXHRkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuXHRjYXB0aW9uLXNpZGU6IHRvcDtcblx0d29yZC1icmVhazogYnJlYWstd29yZDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi10ZXh0KTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogLjZlbTtcblx0Zm9udC1zaXplOiAuNzVlbTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cblx0LyogSW1wcm92ZSBwbGFjZWhvbGRlciByZW5kZXJpbmcgaW4gaGlnaC1jb25zdHJhc3QgbW9kZSAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcpLiAqL1xuXHRAbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0Y29sb3I6IHVuc2V0O1xuXHR9XG59XG5cbi8qIEVkaXRpbmcgc3R5bGVzICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgPiBmaWdjYXB0aW9uIHtcblx0QG1peGluIGNrLW1lZGlhLWRlZmF1bHQtY29sb3JzIHtcblx0XHQmLnRhYmxlX19jYXB0aW9uX2hpZ2hsaWdodGVkIHtcblx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtY2FwdGlvbi1oaWdobGlnaHQgLjZzIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuXG5cdCYuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgdGFibGUgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc2VsZWN0b3ItY29sdW1uLXJlc2l6ZXItaG92ZXI6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0LS1jay10YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aDogN3B4O1xuXG5cdC8qIFRoZSBvZmZzZXQgdXNlZCBmb3IgYWJzb2x1dGUgcG9zaXRpb25pbmcgb2YgdGhlIHJlc2l6ZXIgZWxlbWVudCwgc28gdGhhdCBpdCBpcyBwbGFjZWQgZXhhY3RseSBhYm92ZSB0aGUgY2VsbCBib3JkZXIuXG5cdCAgIFRoZSB2YWx1ZSBpczogbWludXMgaGFsZiB0aGUgd2lkdGggb2YgdGhlIHJlc2l6ZXIgZGVjcmVhc2VkIGFkZGl0aW9uYWx5IGJ5IHRoZSBoYWxmIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyICgwLjVweCkuICovXG5cdC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0OiBjYWxjKHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXdpZHRoKSAqIC0wLjUgLSAwLjVweCk7XG59XG5cbi5jay1jb250ZW50IC50YWJsZSAuY2stdGFibGUtcmVzaXplZCB7XG5cdHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5cbi5jay1jb250ZW50IC50YWJsZSB0YWJsZSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jay1jb250ZW50IC50YWJsZSB0ZCxcbi5jay1jb250ZW50IC50YWJsZSB0aCB7XG5cdC8qIFRvIHByZXZlbnQgdGV4dCBvdmVyZmxvd2luZyBiZXlvbmQgaXRzIGNlbGwgd2hlbiBjb2x1bW5zIGFyZSByZXNpemVkIGJ5IHJlc2l6ZSBoYW5kbGVyXG5cdChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L3B1bGwvMTQzNzkjaXNzdWVjb21tZW50LTE1ODk0NjA5NzgpLiAqL1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0Ym90dG9tOiAwO1xuXHRyaWdodDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0KTtcblx0d2lkdGg6IHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXdpZHRoKTtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29sdW1uLXJlc2l6ZV9kaXNhYmxlZCAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogVGhlIHJlc2l6ZXIgZWxlbWVudHMsIHdoaWNoIGFyZSBleHRlbmRlZCB0byBhbiBleHRyZW1lbHkgaGlnaCBoZWlnaHQsIGJyZWFrIHRoZSBkcmFnICYgZHJvcCBmZWF0dXJlIGluIENocm9tZS4gVG8gbWFrZSBpdCB3b3JrIGFnYWluLFxuICAgYWxsIHJlc2l6ZXJzIG11c3QgYmUgaGlkZGVuIHdoaWxlIHRoZSB0YWJsZSBpcyBkcmFnZ2VkLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlW2RyYWdnYWJsZV0gLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplcjpob3Zlcixcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXJfX2FjdGl2ZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNvbHVtbi1yZXNpemVyLWhvdmVyKTtcblx0b3BhY2l0eTogMC4yNTtcblx0LyogVGhlIHJlc2l6ZXIgZWxlbWVudCByZXNpZGVzIGluIGVhY2ggY2VsbCBzbyB0byBvY2N1cHkgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIHRhYmxlLCB3aGljaCBpcyB1bmtub3duIGZyb20gYSBDU1MgcG9pbnQgb2Ygdmlldyxcblx0ICAgaXQgaXMgZXh0ZW5kZWQgdG8gYW4gZXh0cmVtZWx5IGhpZ2ggaGVpZ2h0LiBFdmVuIGZvciBzY3JlZW5zIHdpdGggYSB2ZXJ5IGhpZ2ggcGl4ZWwgZGVuc2l0eSwgdGhlIHJlc2l6ZXIgd2lsbCBmdWxmaWxsIGl0cyByb2xlIGFzXG5cdCAgIGl0IHNob3VsZCwgaS5lLiBmb3IgYSBzY3JlZW4gb2YgNDc2IHBwaSB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSByZXNpemVyIHdpbGwgdGFrZSBvdmVyIDM1MCBzaGVldHMgb2YgQTQgZm9ybWF0LCB3aGljaCBpcyB0b3RhbGx5XG5cdCAgIHVucmVhbGlzdGljIGhlaWdodCBmb3IgYSBzaW5nbGUgdGFibGUuICovXG5cdHRvcDogLTk5OTk5OXB4O1xuXHRib3R0b206IC05OTk5OTlweDtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVbZGlyPXJ0bF0gLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdGxlZnQ6IHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXBvc2l0aW9uLW9mZnNldCk7XG5cdHJpZ2h0OiB1bnNldDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuL19oaWRkZW4uY3NzXCI7XG5AaW1wb3J0IFwiLi9femluZGV4LmNzc1wiO1xuQGltcG9ydCBcIi4vX3RyYW5zaXRpb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9fcG93ZXJlZGJ5LmNzc1wiO1xuQGltcG9ydCBcIi4vX2V2YWx1YXRpb25iYWRnZS5jc3NcIjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBoaWRlcyBhbiBlbGVtZW50IGluIERPTS5cbiAqL1xuLmNrLWhpZGRlbiB7XG5cdC8qIE92ZXJyaWRlIHNlbGVjdG9yIHNwZWNpZmljaXR5LiBPdGhlcndpc2UsIGFsbCBlbGVtZW50cyB3aXRoIHNvbWUgZGlzcGxheVxuXHRzdHlsZSBkZWZpbmVkIHdpbGwgb3ZlcnJpZGUgdGhpcyBvbmUsIHdoaWNoIGlzIG5vdCBhIGRlc2lyZWQgcmVzdWx0LiAqL1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stei1kZWZhdWx0OiAxO1xuXHQtLWNrLXotcGFuZWw6IGNhbGMoIHZhcigtLWNrLXotZGVmYXVsdCkgKyA5OTkgKTtcblx0LS1jay16LWRpYWxvZzogOTk5OTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IGRpc2FibGVzIGFsbCB0cmFuc2l0aW9ucyBvZiB0aGUgZWxlbWVudCBhbmQgaXRzIGNoaWxkcmVuLlxuICovXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQsXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQgKiB7XG5cdHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgZm9udCBzaXplIG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktZm9udC1zaXplOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgMTAocHgpIGlzIHRoZSBsaW5lIGhlaWdodCBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDEwIC8gMTMpO1xuXHQvKiB3aGVyZSAtMC4yKHB4KSBpcyB0aGUgbGV0dGVyIHNwYWNpbmcgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1sZXR0ZXItc3BhY2luZzogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAtMC4yIC8gMTMpO1xuXHQtLWNrLXBvd2VyZWQtYnktcGFkZGluZy12ZXJ0aWNhbDogMnB4O1xuXHQtLWNrLXBvd2VyZWQtYnktcGFkZGluZy1ob3Jpem9udGFsOiA0cHg7XG5cdC0tY2stcG93ZXJlZC1ieS10ZXh0LWNvbG9yOiBoc2woMCwgMCUsIDMxJSk7XG5cdC0tY2stcG93ZXJlZC1ieS1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0LS1jay1wb3dlcmVkLWJ5LWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stcG93ZXJlZC1ieS1ib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cblx0LS1jay1wb3dlcmVkLWJ5LXN2Zy13aWR0aDogNTM7XG5cdC0tY2stcG93ZXJlZC1ieS1zdmctaGVpZ2h0OiAxMDtcblx0LS1jay1wb3dlcmVkLWJ5LWljb24td2lkdGg6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogdmFyKC0tY2stcG93ZXJlZC1ieS1zdmctd2lkdGgpIC8gMTMpO1xuXHQtLWNrLXBvd2VyZWQtYnktaWNvbi1oZWlnaHQ6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogdmFyKC0tY2stcG93ZXJlZC1ieS1zdmctaGVpZ2h0KSAvIDEzKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIHtcblx0LS1jay1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWJvcmRlci1yYWRpdXMpO1xuXG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLXBvd2VyZWQtYnktYmFja2dyb3VuZCk7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSAtIDEgKTtcblxuXHQmIC5jay5jay1wb3dlcmVkLWJ5IHtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodCk7XG5cblx0XHQmIGEge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRvcGFjaXR5OiAuNjY7XG5cdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSg4MCUpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktbGluZS1oZWlnaHQpO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cdFx0fVxuXG5cdFx0JiAuY2stcG93ZXJlZC1ieV9fbGFiZWwge1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stcG93ZXJlZC1ieS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1wb3dlcmVkLWJ5LXRleHQtY29sb3IpO1xuXG5cdFx0fVxuXG5cdFx0JiAuY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWljb24td2lkdGgpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWljb24taGVpZ2h0KTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdCYgYSB7XG5cdFx0XHRcdGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cInBvc2l0aW9uX2luc2lkZVwiXSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuXG5cdCZbY2xhc3MqPVwicG9zaXRpb25fYm9yZGVyXCJdIHtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stcG93ZXJlZC1ieS1ib3JkZXItY29sb3IpO1xuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgZm9udCBzaXplIG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtZm9udC1zaXplOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIC0wLjIocHgpIGlzIHRoZSBsZXR0ZXIgc3BhY2luZyBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWxldHRlci1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIC0wLjIgLyAxMyk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLXZlcnRpY2FsOiAycHg7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLWhvcml6b250YWw6IDRweDtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXRleHQtY29sb3I6IGhzbCgwLCAwJSwgMzElKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uIHtcblx0LS1jay1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1yYWRpdXMpO1xuXG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYmFja2dyb3VuZCk7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSAtIDEgKTtcblxuXHQmIC5jay5jay1ldmFsdWF0aW9uLWJhZGdlIHtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1saW5lLWhlaWdodCk7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cblx0XHQmIC5jay1ldmFsdWF0aW9uLWJhZGdlX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmc6IDAgMnB4O1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtdGV4dC1jb2xvcik7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJwb3NpdGlvbl9pbnNpZGVcIl0ge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQmW2NsYXNzKj1cInBvc2l0aW9uX2JvcmRlclwiXSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLWNvbG9yKTtcblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdEBtaXhpbiBjay11bnNlbGVjdGFibGU7XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdGp1c3RpZnktY29udGVudDogcmlnaHQ7XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Ji5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cblxuXHQvKiBDZW50ZXIgdGhlIGljb24gaG9yaXpvbnRhbGx5IGluIGEgYnV0dG9uIHdpdGhvdXQgdGV4dC4gKi9cblx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpICB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stdW5zZWxlY3RhYmxlIHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGRlZmluZS1taXhpbiBjay1kaXIgJGRpcmVjdGlvbiB7XG5cdFtkaXI9XCIkKGRpcmVjdGlvbilcIl0gJiB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIHtcblx0JiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0JiAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR3aWR0aDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdCYuY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0d2lkdGg6IC45ZW07XG5cdFx0aGVpZ2h0OiAuOWVtO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staWNvbiB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY29sbGFwc2libGUuY2stY29sbGFwc2libGVfY29sbGFwc2VkIHtcblx0JiA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jb2xvci1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jb2xvci1waWNrZXItaGV4LWlucHV0IHtcblx0d2lkdGg6IG1heC1jb250ZW50O1xuXG5cdCYgLmNrLmNrLWlucHV0IHtcblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXHR9XG59XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMCAwO1xuXHR3aWR0aDogdW5zZXQ7XG5cblx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdW5zZXQ7XG5cdH1cblxuXHQmIC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHR3aWR0aDogdW5zZXQ7XG5cdH1cblxuXHQmIC5jay1jb2xvci1waWNrZXJfX2hhc2gtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIHtcblx0LyogVmlldyBmcmFnbWVudCB3aXRoIGNvbG9yIGdyaWRzLiAqL1xuXHQmIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCB7XG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsXG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFZpZXcgZnJhZ21lbnQgd2l0aCBhIGNvbG9yIHBpY2tlci4gKi9cblx0JiAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IHtcblx0XHQmIC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cblx0XHRcdCYgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdFx0JiAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRcdGZsZXg6IDFcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kaWFsb2cge1xuXHQmIC5jay5jay1kaWFsb2dfX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRpYWxvZy1vdmVybGF5IHtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG5cblx0cG9zaXRpb246IGZpeGVkO1xuXHRib3R0b206IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cblx0Ji5jay1kaWFsb2ctb3ZlcmxheV9fdHJhbnNwYXJlbnQge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHR9XG59XG5cbi5jay5jay1kaWFsb2cge1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQmIC5jay5jay1mb3JtX19oZWFkZXIgIHtcblx0XHRmbGV4LXNocmluazogMDtcblx0fVxuXG5cdC8qIE1vZGFscyBzaG91bGQgbm90IGJlIGRyYWdnYWJsZS4gKi9cblx0Jjpub3QoLmNrLWRpYWxvZ19tb2RhbCkge1xuXHRcdCYgLmNrLmNrLWZvcm1fX2hlYWRlciAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0XHRjdXJzb3I6IGdyYWI7XG5cdFx0fVxuXHR9XG5cblx0LmNrLmNrLWRpYWxvZy1vdmVybGF5LmNrLWRpYWxvZy1vdmVybGF5X190cmFuc3BhcmVudCAmIHtcblx0XHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWF4LXdpZHRoOiA3NXZ3O1xufVxuXG4uY2suY2stZHJvcGRvd24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuXHQvKiBEcm9wZG93biBidXR0b24gc2hvdWxkIHNwYW4gaG9yaXpvbnRhbGx5LCBlLmcuIGluIHZlcnRpY2FsIHRvb2xiYXJzICovXG5cdCYgLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdCYgLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1heC13aWR0aCk7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbC12aXNpYmxlIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uZSxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9udyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25tdyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9ubWUge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3NlLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3N3LFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3Ntdyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zbWUsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfcyB7XG5cdFx0XHQvKlxuXHRcdFx0ICogVXNpbmcgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMCwgMTAwJSwgMCApIGNhdXNlcyBibHVycnkgZHJvcGRvd24gb24gQ2hyb21lIDY3LTc4KyBvbiBub24tcmV0aW5hIGRpc3BsYXlzLlxuXHRcdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwNTMuXG5cdFx0XHQgKi9cblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uZSxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zZSB7XG5cdFx0XHRsZWZ0OiAwcHg7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbncsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdFx0cmlnaHQ6IDBweDtcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX24ge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25tdyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zbXcge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBtaWRkbGUtd2VzdCBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHRsZWZ0OiA3NSU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTc1JSk7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbm1lLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3NtZSB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIG1pZGRsZS1lYXN0IG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUlKTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFRvb2xiYXIgZHJvcGRvd24gcGFuZWxzIHNob3VsZCBiZSBhbHdheXMgYWJvdmUgdGhlIFVJIChlZy4gb3RoZXIgZHJvcGRvd24gcGFuZWxzKSBmcm9tIHRoZSBlZGl0b3IncyBjb250ZW50LlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc4NzRcbiAqL1xuLmNrLmNrLXRvb2xiYXIgLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpICsgMSApO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQmIC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOmZvY3VzIHtcblx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1kcm9wZG93bi1tYXgtd2lkdGg6IDYwdnc7XG59XG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzU1ODYgKi9cblx0d2lkdGg6IG1heC1jb250ZW50O1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLXRvb2xiYXItZHJvcGRvd24tbWF4LXdpZHRoKTtcblxuXHQmIC5jay1idXR0b24ge1xuXHRcdCY6Zm9jdXMge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bWF4LWhlaWdodDogMzE0cHg7IC8qIFdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MsIHRoaXMgaXMgZXF1YWwgdG8gMTAgbWVudSBpdGVtcy4gKi9cblx0b3ZlcmZsb3cteTogYXV0bztcblx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LXBhbmVsKSArIDEpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnUge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1hcmlhLWxpdmUtYW5ub3VuY2VyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAtMTAwMDBweDtcblx0dG9wOiAtMTAwMDBweDtcbn1cblxuLmNrLmNrLWFyaWEtbGl2ZS1yZWdpb24tbGlzdCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtX19oZWFkZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdCYgaDIuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staWNvbiB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLmNrLmNrLXZvaWNlLWxhYmVsIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHQmID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQmIC5jay5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5cbi5jay5jay1saXN0IHtcblx0QG1peGluIGNrLXVuc2VsZWN0YWJsZTtcblxuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdCYgLmNrLWxpc3RfX2l0ZW0sXG5cdCYgLmNrLWxpc3RfX3NlcGFyYXRvciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQvKiBNYWtlIHN1cmUgdGhhdCB3aGF0ZXZlciBjaGlsZCBvZiB0aGUgbGlzdCBpdGVtIGdldHMgZm9jdXMsIGl0IHJlbWFpbnMgb24gdGhlXG5cdHRvcC4gVGhhbmtzIHRvIHRoYXQsIHN0eWxlcyBsaWtlIGJveC1zaGFkb3csIG91dGxpbmUsIGV0Yy4gYXJlIG5vdCBtYXNrZWQgYnlcblx0YWRqYWNlbnQgbGlzdCBpdGVtcy4gKi9cblx0JiAuY2stbGlzdF9faXRlbSA+ICo6Zm9jdXMge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIE1ha2Ugc3VyZSB0aGUgYmFsbG9vbiBhcnJvdyBkb2VzIG5vdCBmbG9hdCBvdmVyIGl0cyBjaGlsZHJlbi4gKi9cblx0LS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSAtIDMpO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJhcnJvd19uXCJdIHtcblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cImFycm93X3NcIl0ge1xuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF92aXNpYmxlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogQnV0dG9ucyBpbnNpZGUgYSB0b29sYmFyIHNob3VsZCBiZSBjZW50ZXJlZCB3aGVuIHJvdGF0b3IgYmFyIGlzIHdpZGVyLlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXVpL2lzc3Vlcy80OTVcbiAqL1xuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQgLmNrLXRvb2xiYXIge1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stZmFrZS1wYW5lbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBGYWtlIHBhbmVscyBzaG91bGQgYmUgcGxhY2VkIHVuZGVyIG1haW4gYmFsbG9vbiBjb250ZW50LiAqL1xuXHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotcGFuZWwpIC0gMSk7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXYge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAxICkge1xuXHR6LWluZGV4OiAyO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMiApIHtcblx0ei1pbmRleDogMTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1zdGlja3ktcGFuZWwge1xuXHQmIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTsgLyogIzMxNSAqL1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdH1cblxuXHQmIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5X2JvdHRvbS1saW1pdCB7XG5cdFx0dG9wOiBhdXRvO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWF1dG9jb21wbGV0ZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXG5cdFx0Ji5jay1zZWFyY2hfX3Jlc3VsdHNfbiB7XG5cdFx0XHRib3R0b206IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ji5jay1zZWFyY2hfX3Jlc3VsdHNfcyB7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRib3R0b206IGF1dG87XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLXNlYXJjaCB7XG5cdCYgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgLmNrLXNlYXJjaF9fcmVzZXQge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdCYgPiAuY2stc2VhcmNoX19pbmZvIHtcblx0XHRcdCYgPiBzcGFuOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cblx0XHRcdC8qIEhpZGUgdGhlIGZpbHRlcmVkIHZpZXcgd2hlbiBub3RoaW5nIHdhcyBmb3VuZCAqL1xuXHRcdFx0Jjpub3QoLmNrLWhpZGRlbikgfiAqIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1oaWdobGlnaHRlZC10ZXh0IG1hcmsge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG5cdHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xuXHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3NcIjtcblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCB7XG5cdEBtaXhpbiBjay11bnNlbGVjdGFibGU7XG5cblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1kaWFsb2cpICsgMTAwICk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDE4cHg7XG59XG5cbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1zcGlubmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdHotaW5kZXg6IDE7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5cbi5jay5jay10b29sYmFyIHtcblx0QG1peGluIGNrLXVuc2VsZWN0YWJsZTtcblxuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0JiA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZmxleC1ncm93OiAxO1xuXG5cdH1cblxuXHQmIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdC8qXG5cdFx0ICogQSBsZWFkaW5nIG9yIHRyYWlsaW5nIHNlcGFyYXRvciBtYWtlcyBubyBzZW5zZSAoc2VwYXJhdGVzIGZyb20gbm90aGluZyBvbiBvbmUgc2lkZSkuXG5cdFx0ICogRm9yIGluc3RhbmNlLCBpdCBjYW4gaGFwcGVuIHdoZW4gdG9vbGJhciBpdGVtcyAoYWxzbyBzZXBhcmF0b3JzKSBhcmUgZ2V0dGluZyBncm91cGVkIG9uZSBieSBvbmUgYW5kXG5cdFx0ICogbW92ZWQgdG8gYW5vdGhlciB0b29sYmFyIGluIHRoZSBkcm9wZG93bi5cblx0XHQgKi9cblx0XHQmOmZpcnN0LWNoaWxkLFxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWsge1xuXHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX3ZlcnRpY2FsID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX2Zsb2F0aW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biB7XG5cdFx0JiA+IC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1ibG9jay10b29sYmFyLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhcl9fbWVudSAge1xuXHQmID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LW1heC13aWR0aDogNzV2dztcblx0LS1jay1tZW51LWJhci1uZXN0ZWQtbWVudS1ob3Jpem9udGFsLW9mZnNldDogNXB4O1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsIHtcblx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1tYXgtd2lkdGgpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbmUsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX253IHtcblx0XHRib3R0b206IDEwMCU7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdHRvcDogMTAwJTtcblx0XHRib3R0b206IGF1dG87XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9uZSxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc2Uge1xuXHRcdGxlZnQ6IDBweDtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX253LFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0cmlnaHQ6IDBweDtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbiB7XG5cdFx0bGVmdDogY2FsYyggMTAwJSAtIHZhcigtLWNrLW1lbnUtYmFyLW5lc3RlZC1tZW51LWhvcml6b250YWwtb2Zmc2V0KSApO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMge1xuXHRcdHRvcDogMHB4O1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4ge1xuXHRcdGJvdHRvbTogMHB4O1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3MsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3duIHtcblx0XHRyaWdodDogY2FsYyggMTAwJSAtIHZhcigtLWNrLW1lbnUtYmFyLW5lc3RlZC1tZW51LWhvcml6b250YWwtb2Zmc2V0KSApO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3Mge1xuXHRcdHRvcDogMHB4O1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24ge1xuXHRcdGJvdHRvbTogMHB4O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXI6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTUlKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dDogaHNsKDAsIDAlLCA5NSUpO1xuXG5cdC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0LS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0OiAxMHB4O1xuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQ6IGNhbGModmFyKC0tY2stc3BhY2luZy1zbWFsbCkgKiAyICsgMTBweCk7XG59XG5cbi5jayAuY2std2lkZ2V0IHtcblx0LyogVGhpcyBpcyBuZWNjZXNzYXJ5IGZvciB0eXBlIGFyb3VuZCBVSSB0byBiZSBwb3NpdGlvbmVkIHByb3Blcmx5LiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaWNvbiBpbiBub3QgYSBzdWJqZWN0IHRvIGZvbnQtc2l6ZSBvciBsaW5lLWhlaWdodCB0byBhdm9pZFxuXHRcdFx0dW5uZWNlc3Nhcnkgc3BhY2luZyBhcm91bmQgaXQuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlIG9uIG1vdXNlIGhvdmVyIG92ZXIgdGhlIHdpZGdldCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cdCY6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR9XG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZSB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cbn1cblxuLmNrIC5jay1zaXplLXZpZXcge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCk7XG5cblx0Ji5jay1vcmllbnRhdGlvbi10b3AtbGVmdCxcblx0Ji5jay1vcmllbnRhdGlvbi10b3AtcmlnaHQsXG5cdCYuY2stb3JpZW50YXRpb24tYm90dG9tLXJpZ2h0LFxuXHQmLmNrLW9yaWVudGF0aW9uLWJvdHRvbS1sZWZ0LFxuXHQmLmNrLW9yaWVudGF0aW9uLWFib3ZlLWNlbnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cblx0Ji5jay1vcmllbnRhdGlvbi10b3AtbGVmdCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG5cdCYuY2stb3JpZW50YXRpb24tdG9wLXJpZ2h0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG5cdCYuY2stb3JpZW50YXRpb24tYm90dG9tLXJpZ2h0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG5cdCYuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuXHQvKiBDbGFzcyBhcHBsaWVkIGlmIHRoZSB3aWRnZXQgaXMgdG9vIHNtYWxsIHRvIGNvbnRhaW4gdGhlIHNpemUgbGFiZWwgKi9cblx0Ji5jay1vcmllbnRhdGlvbi1hYm92ZS1jZW50ZXIge1xuXHRcdHRvcDogY2FsYyh2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0KSAqIC0xKTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2std2lkZ2V0X3dpdGgtcmVzaXplciB7XG5cdC8qIE1ha2UgdGhlIHdpZGdldCB3cmFwcGVyIGEgcmVsYXRpdmUgcG9zaXRpb25pbmcgY29udGFpbmVyIGZvciB0aGUgZHJhZyBoYW5kbGUuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogVGhlIHdyYXBwZXIgaXRzZWxmIHNob3VsZCBub3QgaW50ZXJmZXJlIHdpdGggdGhlIHBvaW50ZXIgZGV2aWNlLCBvbmx5IHRoZSBoYW5kbGVzIHNob3VsZC4gKi9cblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0bGVmdDogMDtcblx0dG9wOiAwO1xufVxuXG4uY2stZm9jdXNlZCAuY2std2lkZ2V0X3dpdGgtcmVzaXplci5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHQmID4gLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBSZXNpemVycyBhcmUgdGhlIG9ubHkgVUkgZWxlbWVudHMgdGhhdCBzaG91bGQgaW50ZXJmZXJlIHdpdGggYSBwb2ludGVyIGRldmljZS4gKi9cblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0LFxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1yaWdodCB7XG5cdFx0Y3Vyc29yOiBud3NlLXJlc2l6ZTtcblx0fVxuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLXJpZ2h0LFxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1sZWZ0IHtcblx0XHRjdXJzb3I6IG5lc3ctcmVzaXplO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLXdpZGdldCB7XG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9uc1xuXHQgKi9cblx0JiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXG5cdFx0JiBzdmcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAyKTtcblx0XHR9XG5cblx0XHQmLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdFx0LyogUGxhY2UgaXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgb3V0bGluZSAqL1xuXHRcdFx0dG9wOiBjYWxjKC0wLjUgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHRcdGxlZnQ6IG1pbigxMCUsIDMwcHgpO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXG5cdFx0Ji5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYWZ0ZXIge1xuXHRcdFx0LyogUGxhY2UgaXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgb3V0bGluZSAqL1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0wLjUgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHRcdHJpZ2h0OiBtaW4oMTAlLCAzMHB4KTtcblxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuOlxuXHQgKiAtIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsXG5cdCAqIC0gb3IgdGhlIGJ1dHRvbiBpcyBiZWluZyBob3ZlcmVkIChyZWdhcmRsZXNzIG9mIHRoZSB3aWRnZXQgc3RhdGUpLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sXG5cdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIge1xuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMXB4O1xuXHRcdFx0bGVmdDogMXB4O1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGljaCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGUgdXNlciBuYXZpZ2F0ZXMgdXNpbmcgdGhlIGtleWJvYXJkLlxuXHQgKi9cblx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuXHQvKlxuXHQgKiBXaGVuIHRoZSB3aWRnZXQgaXMgaG92ZXJlZCB0aGUgXCJmYWtlIGNhcmV0XCIgd291bGQgbm9ybWFsbHkgYmUgbmFycm93ZXIgdGhhbiB0aGVcblx0ICogZXh0cmEgb3V0bGluZSBkaXNwbGF5ZWQgYXJvdW5kIHRoZSB3aWRnZXQuIExldCdzIGV4dGVuZCB0aGUgXCJmYWtlIGNhcmV0XCIgdG8gbWF0Y2hcblx0ICogdGhlIGZ1bGwgd2lkdGggb2YgdGhlIHdpZGdldC5cblx0ICovXG5cdCY6aG92ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRsZWZ0OiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgKTtcblx0XHRyaWdodDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpICk7XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoZW4gaXQgc2hvdWxkIGJlIGRpc3BsYXllZCBiZWZvcmUgdGhlIHdpZGdldCAoYmFja3dhcmQga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdCAqL1xuXHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0dG9wOiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgLSAxcHggKTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hlbiBpdCBzaG91bGQgYmUgZGlzcGxheWVkIGFmdGVyIHRoZSB3aWRnZXQgKGZvcndhcmQga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdCAqL1xuXHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSAtIDFweCApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZWFkLW9ubHkgbW9kZSBvZiB0aGUgZWRpdG9yLlxuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzdHJpY3RlZCBlZGl0aW5nIG1vZGUgKGZlYXR1cmUpIG9mIHRoZSBlZGl0b3IuXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgI2lzRW5hYmxlZCBwcm9wZXJ0eSBvZiB0aGUgV2lkZ2V0VHlwZUFyb3VuZCBwbHVnaW4uXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfZGlzYWJsZWQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItcmVhZC12aWV3LS1kb3duLWFycm93LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXJlYWQtdmlldy0tZG93bi1hcnJvdyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLXJlYWQtdmlldy0tZG93bi1hcnJvdywgLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24taWNvbjo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDNweCAzcHggMCAwO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2cHg7XG4gIHdpZHRoOiA5cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlLCAucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWJvdHRvbV0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlIHtcbiAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjpiZWZvcmUsIC5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmJlZm9yZSwgLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj10b3BdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YWZ0ZXIsIC5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmFmdGVyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDFweDtcbiAgY29udGVudDogXCJcIjtcbiAgei1pbmRleDogLTE7XG4gIGJvcmRlci13aWR0aDogOHB4O1xuICBsZWZ0OiAtOHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj10b3BdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YmVmb3JlLCAucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWJvdHRvbV0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYWVhZWFlO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWJvdHRvbV0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiAtOHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj1ib3R0b21dIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YmVmb3JlLCAucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWJvdHRvbV0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjphZnRlciB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmMGYwZjA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWJvdHRvbV0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjphZnRlciB7XG4gIHRvcDogMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmJlZm9yZSB7XG4gIHRvcDogLTFweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2FlYWVhZTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj10b3BdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogLThweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49dG9wXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmJlZm9yZSwgLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj10b3BdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YWZ0ZXIge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj10b3BdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YWZ0ZXIge1xuICBib3R0b206IDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjpiZWZvcmUge1xuICBib3R0b206IC0xcHg7XG4gIGJvcmRlci10b3AtY29sb3I6ICNhZWFlYWU7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyLXdyYXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMwMDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhZWFlYWU7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyLS10aW1lLW9ubHkgLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlIHtcbiAgbGVmdDogMzVweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLS10aW1lLW9ubHkgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtY29udGFpbmVyIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci0tdGltZS1vbmx5IC5yZWFjdC1kYXRlcGlja2VyX190aW1lLFxuLnJlYWN0LWRhdGVwaWNrZXItLXRpbWUtb25seSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1ib3gge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjNyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjNyZW07XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTBweDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyIHtcbiAgei1pbmRleDogMTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50PWJvdHRvbS1lbmRdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZSwgLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50PXRvcC1lbmRdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiA1MHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj10b3BdIHtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXJpZ2h0XSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj1yaWdodF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDQycHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWxlZnRdIHtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj1sZWZ0XSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGUge1xuICBsZWZ0OiA0MnB4O1xuICByaWdodDogYXV0bztcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2hlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhZWFlYWU7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuM3JlbTtcbiAgcGFkZGluZzogOHB4IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19oZWFkZXItLXRpbWUge1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2hlYWRlci0tdGltZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2hlYWRlci0tdGltZS0tb25seSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2hlYWRlcjpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2hlYWRlci0taGFzLXRpbWUtc2VsZWN0KSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjNyZW07XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLWRyb3Bkb3duLWNvbnRhaW5lci0tc2VsZWN0LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLWRyb3Bkb3duLWNvbnRhaW5lci0tc2VsZWN0LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItZHJvcGRvd24tY29udGFpbmVyLS1zZWxlY3QsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1kcm9wZG93bi1jb250YWluZXItLXNjcm9sbCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1kcm9wZG93bi1jb250YWluZXItLXNjcm9sbCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLWRyb3Bkb3duLWNvbnRhaW5lci0tc2Nyb2xsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMTVweDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2N1cnJlbnQtbW9udGgsXG4ucmVhY3QtZGF0ZXBpY2tlci10aW1lX19oZWFkZXIsXG4ucmVhY3QtZGF0ZXBpY2tlci15ZWFyLWhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjk0NHJlbTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faGVhZGVyIHtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMycHg7XG4gIHRleHQtaW5kZW50OiAtOTk5ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0tcHJldmlvdXMge1xuICBsZWZ0OiAycHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0tbmV4dCB7XG4gIHJpZ2h0OiAycHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0tbmV4dC0td2l0aC10aW1lOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0tbmV4dC0td2l0aC10b2RheS1idXR0b24pIHtcbiAgcmlnaHQ6IDg1cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0teWVhcnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0teWVhcnMtcHJldmlvdXMge1xuICB0b3A6IDRweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS15ZWFycy11cGNvbWluZyB7XG4gIHRvcDogLTRweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uOmhvdmVyICo6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogI2E2YTZhNjtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24taWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xuICBmb250LXNpemU6IDIwcHg7XG4gIHdpZHRoOiAwO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24taWNvbi0tbmV4dCB7XG4gIGxlZnQ6IC0ycHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi1pY29uLS1uZXh0OjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIGxlZnQ6IC03cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi1pY29uLS1wcmV2aW91cyB7XG4gIHJpZ2h0OiAtMnB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24taWNvbi0tcHJldmlvdXM6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG4gIHJpZ2h0OiAtN3B4O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtY29udGFpbmVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyIHtcbiAgbWFyZ2luOiAwLjRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1heC13aWR0aDogMTgwcHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhciAucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNHJlbTtcbiAgbWFyZ2luOiAycHg7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19tb250aCB7XG4gIG1hcmdpbjogMC40cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGggLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGggLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDRyZW07XG4gIG1hcmdpbjogMnB4O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9faW5wdXQtdGltZS1jb250YWluZXIge1xuICBjbGVhcjogYm90aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDVweCAwIDEwcHggMTVweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19pbnB1dC10aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19jYXB0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LXRpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19pbnB1dC10aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19pbnB1dC1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LXRpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0LWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19pbnB1dCBpbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LXRpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0LWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19pbnB1dCBpbnB1dFt0eXBlPXRpbWVdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LXRpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0LWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19pbnB1dCBpbnB1dFt0eXBlPXRpbWVdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9faW5wdXQtdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faW5wdXQtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0IGlucHV0W3R5cGU9dGltZV0ge1xuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19pbnB1dC10aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19pbnB1dC1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9fZGVsaW1pdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIge1xuICBmbG9hdDogcmlnaHQ7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2FlYWVhZTtcbiAgd2lkdGg6IDg1cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXItLXdpdGgtdG9kYXktYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWVhZWFlO1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC04N3B4O1xuICB0b3A6IDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyX190aW1lIC5yZWFjdC1kYXRlcGlja2VyX190aW1lLWJveCB7XG4gIHdpZHRoOiA4NXB4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjNyZW07XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtYm94IHVsLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiBjYWxjKDE5NXB4ICsgMS43cmVtIC8gMik7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtYm94IHVsLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdCBsaS5yZWFjdC1kYXRlcGlja2VyX190aW1lLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtYm94IHVsLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdCBsaS5yZWFjdC1kYXRlcGlja2VyX190aW1lLWxpc3QtaXRlbTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1ib3ggdWwucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0IGxpLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdC1pdGVtLS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTZiYTU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtYm94IHVsLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdCBsaS5yZWFjdC1kYXRlcGlja2VyX190aW1lLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE2YmE1O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyX190aW1lIC5yZWFjdC1kYXRlcGlja2VyX190aW1lLWJveCB1bC5yZWFjdC1kYXRlcGlja2VyX190aW1lLWxpc3QgbGkucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0LWl0ZW0tLWRpc2FibGVkIHtcbiAgY29sb3I6ICNjY2M7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtYm94IHVsLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdCBsaS5yZWFjdC1kYXRlcGlja2VyX190aW1lLWxpc3QtaXRlbS0tZGlzYWJsZWQ6aG92ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXIge1xuICBjb2xvcjogI2NjYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMS43cmVtO1xuICBsaW5lLWhlaWdodDogMS43cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMC4xNjZyZW07XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXIucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXItLWNsaWNrYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci0tY2xpY2thYmxlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXItLXNlbGVjdGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3dlZWstbnVtYmVyLS1rZXlib2FyZC1zZWxlY3RlZCk6aG92ZXIge1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXItLXNlbGVjdGVkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE2YmE1O1xuICBjb2xvcjogI2ZmZjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci0tc2VsZWN0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQ1ZDkwO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3dlZWstbnVtYmVyLS1rZXlib2FyZC1zZWxlY3RlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhODdkMDtcbiAgY29sb3I6ICNmZmY7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXItLWtleWJvYXJkLXNlbGVjdGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkNWQ5MDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheS1uYW1lcyB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbi1ib3R0b206IC04cHg7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX193ZWVrIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheS1uYW1lLFxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheSxcbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLW5hbWUge1xuICBjb2xvcjogIzAwMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMS43cmVtO1xuICBsaW5lLWhlaWdodDogMS43cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMC4xNjZyZW07XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19kYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dCxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheTpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0OmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQ6aG92ZXIge1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS10b2RheSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS10b2RheSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLXRvZGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0tdG9kYXkge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWhpZ2hsaWdodGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWhpZ2hsaWdodGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taGlnaGxpZ2h0ZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1oaWdobGlnaHRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNkY2M0YTtcbiAgY29sb3I6ICNmZmY7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1oaWdobGlnaHRlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWhpZ2hsaWdodGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taGlnaGxpZ2h0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzJiZTNmO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taGlnaGxpZ2h0ZWQtY3VzdG9tLTEsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taGlnaGxpZ2h0ZWQtY3VzdG9tLTEsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1oaWdobGlnaHRlZC1jdXN0b20tMSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWhpZ2hsaWdodGVkLWN1c3RvbS0xIHtcbiAgY29sb3I6IG1hZ2VudGE7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZC1jdXN0b20tMixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1oaWdobGlnaHRlZC1jdXN0b20tMixcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWhpZ2hsaWdodGVkLWN1c3RvbS0yLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taGlnaGxpZ2h0ZWQtY3VzdG9tLTIge1xuICBjb2xvcjogZ3JlZW47XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1ob2xpZGF5cyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1ob2xpZGF5cyxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWhvbGlkYXlzLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taG9saWRheXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjgwMztcbiAgY29sb3I6ICNmZmY7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1ob2xpZGF5cyAuaG9saWRheS1vdmVybGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWhvbGlkYXlzIC5ob2xpZGF5LW92ZXJsYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1ob2xpZGF5cyAuaG9saWRheS1vdmVybGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taG9saWRheXMgLmhvbGlkYXktb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMsIG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWhvbGlkYXlzOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWhvbGlkYXlzOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taG9saWRheXM6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1ob2xpZGF5czpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZjUzMDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1ob2xpZGF5czpob3ZlciAuaG9saWRheS1vdmVybGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWhvbGlkYXlzOmhvdmVyIC5ob2xpZGF5LW92ZXJsYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1ob2xpZGF5czpob3ZlciAuaG9saWRheS1vdmVybGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taG9saWRheXM6aG92ZXIgLmhvbGlkYXktb3ZlcmxheSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1zZWxlY3RlZCwgLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlLCAucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1zZWxlY3RlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1zZWxlY3RlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0tc2VsZWN0ZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1yYW5nZSB7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxNmJhNTtcbiAgY29sb3I6ICNmZmY7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1zZWxlY3RlZDpob3ZlciwgLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlOmhvdmVyLCAucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1yYW5nZTpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1zZWxlY3RlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2U6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tcmFuZ2U6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1zZWxlY3RlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZTpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0tc2VsZWN0ZWQ6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2U6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1yYW5nZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZDVkOTA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1rZXlib2FyZC1zZWxlY3RlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1rZXlib2FyZC1zZWxlY3RlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWtleWJvYXJkLXNlbGVjdGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0ta2V5Ym9hcmQtc2VsZWN0ZWQge1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYWQ5ZjE7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1rZXlib2FyZC1zZWxlY3RlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1rZXlib2FyZC1zZWxlY3RlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWtleWJvYXJkLXNlbGVjdGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0ta2V5Ym9hcmQtc2VsZWN0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQ1ZDkwO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tcmFuZ2UpLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXJhbmdlKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzMsIDEwNywgMTY1LCAwLjUpO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLS1zZWxlY3RpbmctcmFuZ2UgLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tcmFuZ2U6bm90KC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UpLCAucmVhY3QtZGF0ZXBpY2tlcl9feWVhci0tc2VsZWN0aW5nLXJhbmdlIC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC0tc2VsZWN0aW5nLXJhbmdlIC5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSksXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci0tc2VsZWN0aW5nLXJhbmdlIC5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSksXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtLXNlbGVjdGluZy1yYW5nZSAucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSksXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci0tc2VsZWN0aW5nLXJhbmdlIC5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC0tc2VsZWN0aW5nLXJhbmdlIC5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLS1zZWxlY3RpbmctcmFuZ2UgLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tcmFuZ2U6bm90KC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgY29sb3I6ICMwMDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1kaXNhYmxlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1kaXNhYmxlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWRpc2FibGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0tZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjY2NjO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0tZGlzYWJsZWQ6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0tZGlzYWJsZWQ6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1kaXNhYmxlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19pbnB1dC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9faW5wdXQtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyX19jYWxlbmRhci1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fdmlldy1jYWxlbmRhci1pY29uIGlucHV0IHtcbiAgcGFkZGluZzogNnB4IDEwcHggNXB4IDI1cHg7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXJlYWQtdmlldyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1yZWFkLXZpZXcsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1yZWFkLXZpZXcge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1yZWFkLXZpZXc6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtcmVhZC12aWV3OmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItcmVhZC12aWV3OmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItcmVhZC12aWV3OmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXJlYWQtdmlldy0tZG93bi1hcnJvdyxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXJlYWQtdmlldzpob3ZlciAucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtcmVhZC12aWV3LS1kb3duLWFycm93LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXJlYWQtdmlldzpob3ZlciAucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1yZWFkLXZpZXctLWRvd24tYXJyb3csXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtcmVhZC12aWV3OmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX19tb250aC1yZWFkLXZpZXctLWRvd24tYXJyb3csXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1yZWFkLXZpZXc6aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItcmVhZC12aWV3LS1kb3duLWFycm93LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItcmVhZC12aWV3OmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX19tb250aC1yZWFkLXZpZXctLWRvd24tYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYjNiM2IzO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItcmVhZC12aWV3LS1kb3duLWFycm93LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXJlYWQtdmlldy0tZG93bi1hcnJvdyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLXJlYWQtdmlldy0tZG93bi1hcnJvdyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gIHJpZ2h0OiAtMTZweDtcbiAgdG9wOiAwO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1kcm9wZG93bixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1kcm9wZG93bixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLWRyb3Bkb3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNTAlO1xuICBsZWZ0OiAyNSU7XG4gIHRvcDogMzBweDtcbiAgei1pbmRleDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhZWFlYWU7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1kcm9wZG93bjpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1kcm9wZG93bjpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLWRyb3Bkb3duOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItZHJvcGRvd24tLXNjcm9sbGFibGUsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtZHJvcGRvd24tLXNjcm9sbGFibGUsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1kcm9wZG93bi0tc2Nyb2xsYWJsZSB7XG4gIGhlaWdodDogMTUwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItb3B0aW9uLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLW9wdGlvbixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLW9wdGlvbiB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1vcHRpb246Zmlyc3Qtb2YtdHlwZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1vcHRpb246Zmlyc3Qtb2YtdHlwZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLW9wdGlvbjpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4zcmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItb3B0aW9uOmxhc3Qtb2YtdHlwZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1vcHRpb246bGFzdC1vZi10eXBlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItb3B0aW9uOmxhc3Qtb2YtdHlwZSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuM3JlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuM3JlbTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLW9wdGlvbjpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1vcHRpb246aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItb3B0aW9uOmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS15ZWFycy11cGNvbWluZyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1vcHRpb246aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24tLXllYXJzLXVwY29taW5nLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItb3B0aW9uOmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS15ZWFycy11cGNvbWluZyB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiM2IzYjM7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1vcHRpb246aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24tLXllYXJzLXByZXZpb3VzLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLW9wdGlvbjpob3ZlciAucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0teWVhcnMtcHJldmlvdXMsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1vcHRpb246aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24tLXllYXJzLXByZXZpb3VzIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2IzYjNiMztcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLW9wdGlvbi0tc2VsZWN0ZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtb3B0aW9uLS1zZWxlY3RlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLW9wdGlvbi0tc2VsZWN0ZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDE1cHg7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19jbG9zZS1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBwYWRkaW5nOiAwIDZweCAwIDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2Nsb3NlLWljb246OmFmdGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE2YmE1O1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBoZWlnaHQ6IDE2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBwYWRkaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY29udGVudDogXCLDl1wiO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2Nsb3NlLWljb24tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2Nsb3NlLWljb24tLWRpc2FibGVkOjphZnRlciB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3RvZGF5LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYWVhZWFlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBjbGVhcjogbGVmdDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3BvcnRhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHotaW5kZXg6IDIxNDc0ODM2NDc7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fcG9ydGFsIC5yZWFjdC1kYXRlcGlja2VyX19kYXktbmFtZSxcbi5yZWFjdC1kYXRlcGlja2VyX19wb3J0YWwgLnJlYWN0LWRhdGVwaWNrZXJfX2RheSxcbi5yZWFjdC1kYXRlcGlja2VyX19wb3J0YWwgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbmFtZSB7XG4gIHdpZHRoOiAzcmVtO1xuICBsaW5lLWhlaWdodDogM3JlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCksIChtYXgtaGVpZ2h0OiA1NTBweCkge1xuICAucmVhY3QtZGF0ZXBpY2tlcl9fcG9ydGFsIC5yZWFjdC1kYXRlcGlja2VyX19kYXktbmFtZSxcbiAgLnJlYWN0LWRhdGVwaWNrZXJfX3BvcnRhbCAucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LFxuICAucmVhY3QtZGF0ZXBpY2tlcl9fcG9ydGFsIC5yZWFjdC1kYXRlcGlja2VyX190aW1lLW5hbWUge1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICB9XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fcG9ydGFsIC5yZWFjdC1kYXRlcGlja2VyX19jdXJyZW50LW1vbnRoLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3BvcnRhbCAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19oZWFkZXIge1xuICBmb250LXNpemU6IDEuNDRyZW07XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19jaGlsZHJlbi1jb250YWluZXIge1xuICB3aWR0aDogMTMuOHJlbTtcbiAgbWFyZ2luOiAwLjRyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjJyZW07XG4gIGhlaWdodDogYXV0bztcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2FyaWEtbGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcC1wYXRoOiBjaXJjbGUoMCk7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2NhbGVuZGFyLWljb24ge1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLnZqcy1tb2RhbC1kaWFsb2cgLnZqcy1tb2RhbC1kaWFsb2ctY29udGVudCwgLnZpZGVvLWpzIC52anMtbW9kYWwtZGlhbG9nLCAudmpzLWJ1dHRvbiA+IC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUsIC52aWRlby1qcyAudmpzLWJpZy1wbGF5LWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52anMtYnV0dG9uID4gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtYmlnLXBsYXktYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUJEa0FBc0FBQUFBRzZnQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJIVTFWQ0FBQUJDQUFBQURzQUFBQlVJSXNsZWs5VEx6SUFBQUZFQUFBQVBnQUFBRlpSaVYzaFkyMWhjQUFBQVlRQUFBRGFBQUFEUHY3NDkvcG5iSGxtQUFBQ1lBQUFDM0FBQUJIUVpnNk9jV2hsWVdRQUFBM1FBQUFBS3dBQUFEWVp3MjUxYUdobFlRQUFEZndBQUFBZEFBQUFKQStSQ0xGb2JYUjRBQUFPSEFBQUFCTUFBQUNNNzQ0QUFHeHZZMkVBQUE0d0FBQUFTQUFBQUVoRjZrcXViV0Y0Y0FBQURuZ0FBQUFmQUFBQUlBRTBBSUZ1WVcxbEFBQU9tQUFBQVNVQUFBSUsxY2Yxb0hCdmMzUUFBQS9BQUFBQkpBQUFBZFBFeFl1TmVKeGpZR1JnWU9CaU1HQ3dZMkJ5Y2ZNSlllRExTU3pKWTVCaVlHR0FBSkE4TXBzeEp6TTlrWUVEeGdQS3NZQnBEaUJtZzRnQ0FDWTdCVWdBZUp4allHUzd3VGlCZ1pXQmdhV1E1UmtEQThNdkNNMGN3eERPZUk2QmdZbUJsWmtCS3doSWMwMWhjUGpJK0ZHSkhjUmR5QTRSWmdRUkFESzNDeEVBQUhpYzdkRlpic01nQUVYUlMweWN5Wm5uT2VHN3krcUM4cFUxZEh1c0lPWHh1b3hhT2x3WllXUUIwQWVhNHF1SUVONEU5THpLYktqekRlTTZIL211YTZMbWMvcDh5aGcwbHZkWXgxNVpHOHVPTFFPR2pNcDNFenFtekppellNbUtOUnUyN05oejRNaUpNeGV1M0xqejRFa3FtN1Q4UDUyRzhQUDNsblRPVmsrK1o2aU42UVp6Tk4xRjdwdHVON2VHT2pEVW9hR09ESFZzdXZVOE1kVE85SGQ1YXFnelE1MGI2c0pRbDRhNk10UzFvVzRNZFd1b08wUGRHK3JCVUkrR2VqTFVzNkZlRFBWcXFEZER2UnZxdzFDZmhwcU05QXQwaUZMYUFBQjRuSjFZRFhCVFZSWis1LzIyVFVsSjh3ZTBwSGxKbTdSSmY1TzhGMmo2RXltbFNQa3B4YUw4VTJ4cGEzREtqMENCaGMySVc0ZVdLU29rSW9Mc3VNcXNzTTY0ZitqQTRIU2RXWFhYc2NCcTY3SU9zM0ZYWjFaWVdWeVJGZG84OTl5WHRJQlFaOTBrNzcxN3p6M3YzSFBQT2ZkODU0WUNDajljTDlkTDBSUUZPcUNiR0puckhiNUVheWlLSVdOOGlBL2hXQmJsbzZoVVdtOFR0Q0R3RTgwV01KdXMvaXJ3eXhPZHhlQjBNRGIxNFZOSkhuWFlvTExTbDZGZkNVWU85bllQVEE4RXBnOTA5MExwcmZiQmJaMmhZMFVsSlVYSFFwMy92dFdrUzZFQnY4K3JQTXE1dTk2OTJmL2ROeEpOaXF3QzF4UEU5VENVZ0NzU2RRV2dFM1hRRDI1bGtHNENOMnhtVGNPWFdCT3lzZXI2Uk42S25HYktTYm1RMytkME9JMW0yVzhRekxMa0kyc3lrcldBZ0pKRXRBOHZHR1cvMlErQ21UM244elM5d1p3dTJEQ3Z0dVpLWk4zeGtyTGgzNnlDWnVVb21RU3FHcFk4dC8yNVZmSFZodzh6NGViR0J0ZkxiMHlhOVBDYURjKzhkR1R2azJkc2g2ejdXenZvd2xYS1VTV285TUoxNWEzS3JFUDJsb09yMk9qaHc2aVc2aGYyQkRkRWNjUXZaR3BhQXk3WW92U3dxOGtyN0hHbGx4cGQ3MXJrUzZHMFNmMTFzbDlPdk1LMStqd1BQT0R4alV3a09pbTlDVTNpeDF3TmpYRGZtSlNFbjYxOEJzNmxwV3dVcFUrOFBDcUxNWTY1MHpqcThWaENJUDE3TkVLVHgzZWFMTCtzNVBpNnlKV2FXalRITFIxall6UFNWOVZGLzZPamRiLzFrTzNNazN1aEhDMHg2Z2MxQmpsS1ErblFGeFRZZGFKa1o3eVNWeExCYmhSMWRzYm9OWHAxdENZS1cyTFJhRXpwWWNJeDJCS054YUwwWmFVblNxZkZvaU5oSEtSL0drWDZQV1VTQWFKZWxRYXFaTDFFcG9ITnNhalNFeVBTb0o5SWpoSXhUZGpITG13WnZoUkRPaUZUWS9ZZVFudnJWWm1pVFF0R25jRUNYdEZUQlpMT1Z3d01SZ29YSEFrWHpNelBuMW5BSko4allTYk1EYXFOMndhR0x6TmhpaC9iWnluVUJNcElXU2c3VllpN0RSeDJtOEFMa0lkUkNKd0k2QXJKeDJFSThrYURXZVRRS2VBRms5ZmpsLzFBdndrdGpRMVA3Tmp5TUdReWZkNHZqaXBYNk0vaTUyRDdDcTgwa3FsY3hFY0dYUnIvRkVjZ3MwdTV1R2dCNFZXdU1GZnBkbjJSZTZIaTNQcXpteFdLc3o2K2FlMlBuOWhYWHcvZnFNODU5VWlHQzBvS1lZSUxKQnFKcnNuMVoxRTVxT3M5clFDaVVRUlJFam04eUpjYkhGNWNVSnVmWDF2QUhsZWZ3MFhnVW9ib1MzRVRmUWxUeEJDNFNPdHVFOFZQUkpUQlNDUVNqWkNwazdHcXp1K21hc2FaMnk3WmplaGhvNEYzZzgyQk5Ea0FIcE9SRzQrT0NTK2Y2SlRQbXRSbi9QSDFrY2g2ZDA0c3A3QVFiMjVhUS9wcVV5WGVROHZyZWJHOE9ZUWRYT1ErNTg1dTBzZFc5cnFhbHpSVVJpSis5RjRNd2VSRnJLVWpsMUdVWWhIMUEyN1dPSHc1Y1RGU0ZQTW85RWVVSUduUVRaSElhSjdBSExhT0tzT09EYU5GOWprQmpZRzJRRXNRMnhqTVVBeDJiQkViZVRCV01Id3NrQmpuZ3E1NlMveWZna0JuV0JhNEs5c3FLdHEydDFVSThTOUhlNVh1QlJiYXdBZGF0clFFQWkzMEFrczIrTE04V2VDYmFsVlprV055bHZKK2RxSm56VmIrT0hsU29LVzhuUENQN1JkK0NjWjJEZFdBR3FKMkNCRk9waGd5d0ZGQ0ZCTnRmQWJHdE5QQkN3eHZ5Z0hlWU1aTVk5WmJvQnF3cS9wVnJzYmdONXRrdjE1Mk9EbGJNZmlxd0dNQmd4YTRFeHozUWhvdlJJVXA2YWNxWm1RelJxMHlwRFhTMlRQTFQwMllJa1FFVG5PRTQ0NW9PR3hPbVhBcVVKTk5HN1hndXBNalBxMnVhOWFzcmo1eVkveXVLdGVPMUt4MFlOSlR1ZnJpckxlMW1abmF0N09MNnJuVWRDV2VucFc2SThtQW5ic1k4S1dzMVB1U292Q1c5QS9aMjVQUTI0YTdjTk9xZ21Ua0xtQk1naDRUSGdjNGI5azJJVnYxL2cvRjVuR2xqd1BMZk9nSEF6SnpoNDVWLzQrV2VuVHptTXRSNVo3dXMyVHlzOTA5VUhxclBZN0tiY2tveFJ2UkhobVZjM2NKR0U5N3VtbDBSMVMwamRVTFZsN0V2WnRERlZCRjM1TjljRWRqcGdtQWlPbEZaK0R0b2g5MytEM3p6SHI4UlJOWlFobkNOTU5iY2VnT3ZwRXdab0wrMDZjSlEwN2grdGgzZlovN1BWYlZDNm5nVEFWL0tvTEZ1TzYrMktGY1U2NTFnRWI1dWdQU0liMUQrWHA4VjQrazNzRUlHbnc1bVllNElmNGsxbEZZcjZTQ3ptTTJFUThpV3Rtd2puQkk5a1R3ZTFUbGZBbVhoN0gwMmJ5OWZXMmdzakt3dHYwYWFVUktpbDRPZFY3ckRMMU1YSUZOcmhkeG9oY1pYWVRucTQ3V2lzcktpdGFPYmJmNSt5dmtMaTVKNmxDTlpaK0I2R0MzOFZOQlpCRGlkU1MvK21Tdmg2cytzcmdDOHB5S012RHR0K2RlM2M5ZlU3NlpQZnVNOHVkNEt2MGZ5UC9McWZlcE1ULzNvWnhTcXBaYVRhMURhUVlMWThURnNIWWJXWXNQb1JoUldmTDVlU1NRYmhVR2dHQzNZTGJWTWs2UGl0VEZOR3BBc05yQzZEMVZOQktnQkhNZWphaXVSV0VXR2dzU0RCVEpqcVdJbDhrSkxsc2FMSjJ0WERyNnhHZlQ4NWJNMlEwNmE0NngySFRndmRuVjh6NVlEeS8yN0o0enQ2eDJWdGt6am9ZcGtxMzZrYUJyNGVRU2c3dHlpVndlV3ViWFp1Z3RhZGw1OHlkYXBmYk9SZktzRFR1WjBPQmd4NGNmZGpDZjV0YldOSVRuTDEyMGZkT2kxUlYxQzN1S0d6TmR3WUxjTXZaM0J4b1B5VE9DRDFYdlhUcDdVMTBnV0NWbVRWOWIzcjJ6MFNrR1dvdmIyaHA5STg5TzhhMnNtbHlhTzhtdU1VK2RSbXR6cDYwSXpBb0ZwakxyMW4zODhib0x5ZjBkUnZ4aHNIWjBxYldxRGt3cXZ2cGtqNGwwZlk2RUlYUmk1c1FTckF2c1ZZd1hSeTRxSjJFVnREMUFON2EwSFd0aDl5bXZMMXhjM1dUVUtLL1RBSEEvYlhEVnRWV2ZPTWZ1R3hHWnY0TG4valZyOWpjM2oxeU12MHRuZG15dDlWcTg4WTlnSDF3dExYM0tXam90NSsraldIZ0FvWlprUTE0d0dRMjBGbGk3MVVtS0pBeTR4S01TVEdiVmR5Ylc3RkREQXV0OVhwRDVBeldyWU83elE4cWZmcUY4K1luZC9jbHJIY2R5eEd5M2EvMyttZk5uekMvY0JzdmVUam5UdlhmMW82dnpPbFp3N1d0cXRkbVBLL0VycnovNk5OdEQ3MnptTk9aZmJtWWRUR0hmb29mcUk3OU9jK1IybjFscm5MNnBPbTBVcDdrd3hoVFcxMkFtbTdXWWtYUjJxWXJGMkFtZ21iQXN4Wmp3eTF4cGcvbTFKZTJ2cnA4di9uejJ4cG1sQmc0RTlock1VMzQxd1ZwVE9oL09mbUd2QW5yYThxNnVjdHI2MFpRSFYzUStXTVFKeWtNajhac1duMlFCT21tSE1CK201cERJcFRGb25ZaWdpYUtBaEdFaUFIRjdFbGlWblFram9MVklNUHRKcEJLSFlkM0E4R1lIOWpKenJXd21IeDVRanA3dkRBWDBzdUdSeW0xdnRtLzlXMS9IeVI4dmN6Zk1zNlNrOERTdjg1NS81ZGxYOW9RcTUyaFQ4c3l5cDJyeDVJZDE3SUF5QU0zd0lqUVBNT0h6eXRFQjY0cTZENXpUOTF5TmJueDNWL25xbmQwMTdTOVkwNjA1azNpem9YTHBzeGRlMm4zOHlvT1Y5czFMY2p3ek5qYmRYNmFzbkJWYUJqLzYvRHdLd1BrcGNxYkRHN0Juc1hvU3FXblVBbW90dFlGNmpNU2RWeVlaaDN6VlhDandUaXd3SEg2c0d1UmlFSFFHenVSWDZ3aFprcDEyM295MUJXRTJtRWZKL3R2SVJ0TTRaTTViRFhpTXNQTWFBS09UeWM1dUw1N3JxeXljNXk1SkU1cG0xaTJTMmlVWDBDY2FRNmxDNlpvZzdKcVNxWm1ZbG9zbDJLNnB3TkE4NHpSblFXNlNhQUxZWlFHVzVsaEN0VS9XMzRONm8rYktmWjhjZjMvQ2wvK2lUWDN3QnpwT1k0bVJrZU5mM3JwdHljR1NzaFFXZ0diWXQ1akZjMmUwK0RnbElyd2w2RFZXUTdCdXdhSjNYazFKNFZMNXVybkxsL1dmK2dIVS9oWm9aZEtOeW02bEcrSTM0RmFOZVpLY1NwSklvMkllQ1Z2cGRzREdmS3Z6Sm5Bd21lRDM3T3c2NVpXd1Nvd3Bnd1g1VDY5cy9yQjU1ZFA1QmNwZ0RLRlY4cDdxMnNuLzF1YzkzYlZ6VC93NlVyQ3FEVFd2ZkNxL29DRC9xWlhOb1VqOEJMNUtwNkdVMDE3ZnJmTlhrQXRpaXlmL1NPQ0VlTHFuZDhSL1FsOUdsQ1JmY3RTNms1Y2h2SUJ1UTF6Q0Nqb0NITDJESE5ISVh4TUoza1FlTzhsYnNVWE9OZVNmQTVFamNHNi9FK0tkaE40YlAwNHZCaGRpODgzK0JGQnpRYnhGYnZaelFlWTlMTkJaYzBGTmZuNU53ZkRuNnJDVG5UdzZSOG8rZ2ZwZjVoQ29tMzNjUnVpVGxzczNLSG1aakQrQlBOKzVnWHVBMnppUy9RNzNtTHhVa3BiS04vZXF3ejV1SzBYOUYzaDJkMVY0bkdOZ1pHQmdBT0pkNzc2K2l1ZTMrY3JBemM0QUFqZTVCZmNnMHh6OVlIRU9CaVlRQlFBOEZRbEZBSGljWTJCa1lHQm5BQUdPUGdhRy8vODUraGtZR1ZDQk1nQkdHd05ZQUFBQWVKeGpZR0JnWUI4RW1LT1BnUUVBUTA0QmZnQUFBQUFBQUE0QWFBQitBTXdBNEFFQ0FVSUJiQUdZQWNJQ0dBSllBclFDNEFNd0E3QUQzZ1F3QkpZRTNBVWtCV1lGaWdZZ0JtWUd0QWJxQjFnSUVnaFlDRzRJaEFpMkNPaDRuR05nWkdCZ1VHWW9aV0JuQUFFbUlPWUNRZ2FHLzJBK0F3QVlDUUcyQUhpY1haQk5hb05BR0laZkU1UFFDS0ZRMmxVcHMyb1hCZk96ekFFU3lES0JRSmRHUjJOUVIzUVNTRS9RRS9RRVBVVVBVSHFzdnNyWGpUTXc4M3pQdlBNTkN1QVdQM0RRREFlamRtMUdqendTN3BNbXdpNzVYbmdBRDQvQ1Evb1g0VEZlNFF0N3VNTWJPemp1RGMwRW1YQ1AvQzdjSjM4SXUrUlA0UUVlOENVOHBQOFdIbU9QWDJFUHo4N1RQbzIwMmV5Mk9qbG5RU1hWLzZhck9qV0ZtdnN6TVd0ZDZDcXdPbEtIcTZvdnljTGFXTVdWeWRYS0ZGWm5tVkZsWlU0NnRQN1Iybkk1bmNiaS9kRGtmRHRGQkEyRERYYllraEtjK1YwQnFzNVp0OUpNMUhRR0JSVG0vRWV6VG1aTkt0cGNBTXM5WXU2QUs5Y2FGNzZ6b0xXSVdjZk1HT1NrVmR1dlNXZWNocVpzejA0MEliMlBZM3VyeEJKVHpyaVQ5NWxpcHorVE4xZm1BQUFBZUp4dGtNbDJ3akFNUmZPQWhBQmxLbTJoODBDMythamdDS0tEWTZjZWdQNTlUWUJ6dWtBTCt6MVpzcThjdGFKVFRLUHJzVVFMYlhRUUkwRVhLWHJvWTRBYkRESENHQk5NY1lzWjduQ1BCOHl4d0NPZThJd1h2T0lONy9qQUo3Nnd4SGZVcVdYK096Z3VtV0FqSk1WMTdpME5kbHI2aXJMS08rcWZ0ZFQ3aTZ5NHVGU1V2Q2tuYXkrbEZZWklaYVFjbWZIL3hJRmRZbjk4YnFocmExYUtUTS82bFdNbnlhWWlyeDFyRlVRWkZCa2IyekpVdG9YZUpDZWcwV25MdEhlU0ZjM090cm5vek53cWkwVGtTcEJNREIxblNkZTVvSlhXMjNoVFMyL1QwTGlsZ2xYWDdkbUZWeExucTVVMHZZQVRIRmszelgzQk9pc29RSE5ERkRlWm5xS0R5OWhSTmF3TjdWaDcyN2hGemNKNWM4VElMcktaZkg3dElQeEFGUDBCcExlSlBBPT0pIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1wbGF5LCAudmlkZW8tanMgLnZqcy1wbGF5LWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyLCAudmlkZW8tanMgLnZqcy1iaWctcGxheS1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tcGxheTpiZWZvcmUsIC52aWRlby1qcyAudmpzLXBsYXktY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1iaWctcGxheS1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAxXCI7XG59XG5cbi52anMtaWNvbi1wbGF5LWNpcmNsZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tcGxheS1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDJcIjtcbn1cblxuLnZqcy1pY29uLXBhdXNlLCAudmlkZW8tanMgLnZqcy1wbGF5LWNvbnRyb2wudmpzLXBsYXlpbmcgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1wYXVzZTpiZWZvcmUsIC52aWRlby1qcyAudmpzLXBsYXktY29udHJvbC52anMtcGxheWluZyAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDNcIjtcbn1cblxuLnZqcy1pY29uLXZvbHVtZS1tdXRlLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0wIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdm9sdW1lLW11dGU6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0wIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNFwiO1xufVxuXG4udmpzLWljb24tdm9sdW1lLWxvdywgLnZpZGVvLWpzIC52anMtbXV0ZS1jb250cm9sLnZqcy12b2wtMSAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXZvbHVtZS1sb3c6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0xIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNVwiO1xufVxuXG4udmpzLWljb24tdm9sdW1lLW1pZCwgLnZpZGVvLWpzIC52anMtbXV0ZS1jb250cm9sLnZqcy12b2wtMiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXZvbHVtZS1taWQ6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0yIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNlwiO1xufVxuXG4udmpzLWljb24tdm9sdW1lLWhpZ2gsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXZvbHVtZS1oaWdoOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtbXV0ZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwN1wiO1xufVxuXG4udmpzLWljb24tZnVsbHNjcmVlbi1lbnRlciwgLnZpZGVvLWpzIC52anMtZnVsbHNjcmVlbi1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tZnVsbHNjcmVlbi1lbnRlcjpiZWZvcmUsIC52aWRlby1qcyAudmpzLWZ1bGxzY3JlZW4tY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDhcIjtcbn1cblxuLnZqcy1pY29uLWZ1bGxzY3JlZW4tZXhpdCwgLnZpZGVvLWpzLnZqcy1mdWxsc2NyZWVuIC52anMtZnVsbHNjcmVlbi1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tZnVsbHNjcmVlbi1leGl0OmJlZm9yZSwgLnZpZGVvLWpzLnZqcy1mdWxsc2NyZWVuIC52anMtZnVsbHNjcmVlbi1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOVwiO1xufVxuXG4udmpzLWljb24tc3F1YXJlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGFcIjtcbn1cblxuLnZqcy1pY29uLXNwaW5uZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXNwaW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGJcIjtcbn1cblxuLnZqcy1pY29uLXN1YnRpdGxlcywgLnZpZGVvLWpzIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIsXG4udmlkZW8tanMudmlkZW8tanM6bGFuZyhlbi1HQikgLnZqcy1zdWJzLWNhcHMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcixcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLUlFKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tQVUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIsXG4udmlkZW8tanMudmlkZW8tanM6bGFuZyhlbi1OWikgLnZqcy1zdWJzLWNhcHMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciwgLnZpZGVvLWpzIC52anMtc3VidGl0bGVzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXN1YnRpdGxlczpiZWZvcmUsIC52aWRlby1qcyAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSxcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLUdCKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSxcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLUlFKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSxcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLUFVKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSxcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLU5aKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtc3VidGl0bGVzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGNcIjtcbn1cblxuLnZqcy1pY29uLWNhcHRpb25zLCAudmlkZW8tanM6bGFuZyhlbikgLnZqcy1zdWJzLWNhcHMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcixcbi52aWRlby1qczpsYW5nKGZyLUNBKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLCAudmlkZW8tanMgLnZqcy1jYXB0aW9ucy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1jYXB0aW9uczpiZWZvcmUsIC52aWRlby1qczpsYW5nKGVuKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSxcbi52aWRlby1qczpsYW5nKGZyLUNBKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtY2FwdGlvbnMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZFwiO1xufVxuXG4udmpzLWljb24tY2hhcHRlcnMsIC52aWRlby1qcyAudmpzLWNoYXB0ZXJzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNoYXB0ZXJzOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtY2hhcHRlcnMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZVwiO1xufVxuXG4udmpzLWljb24tc2hhcmUge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBmXCI7XG59XG5cbi52anMtaWNvbi1jb2cge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMFwiO1xufVxuXG4udmpzLWljb24tY2lyY2xlLCAudmpzLXNlZWstdG8tbGl2ZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciwgLnZpZGVvLWpzIC52anMtdm9sdW1lLWxldmVsLCAudmlkZW8tanMgLnZqcy1wbGF5LXByb2dyZXNzIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1jaXJjbGU6YmVmb3JlLCAudmpzLXNlZWstdG8tbGl2ZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUsIC52aWRlby1qcyAudmpzLXZvbHVtZS1sZXZlbDpiZWZvcmUsIC52aWRlby1qcyAudmpzLXBsYXktcHJvZ3Jlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTFcIjtcbn1cblxuLnZqcy1pY29uLWNpcmNsZS1vdXRsaW5lIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1jaXJjbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMlwiO1xufVxuXG4udmpzLWljb24tY2lyY2xlLWlubmVyLWNpcmNsZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tY2lyY2xlLWlubmVyLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExM1wiO1xufVxuXG4udmpzLWljb24taGQge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWhkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE0XCI7XG59XG5cbi52anMtaWNvbi1jYW5jZWwsIC52aWRlby1qcyAudmpzLWNvbnRyb2wudmpzLWNsb3NlLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNhbmNlbDpiZWZvcmUsIC52aWRlby1qcyAudmpzLWNvbnRyb2wudmpzLWNsb3NlLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTVcIjtcbn1cblxuLnZqcy1pY29uLXJlcGxheSwgLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sLnZqcy1lbmRlZCAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXJlcGxheTpiZWZvcmUsIC52aWRlby1qcyAudmpzLXBsYXktY29udHJvbC52anMtZW5kZWQgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE2XCI7XG59XG5cbi52anMtaWNvbi1mYWNlYm9vayB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTdcIjtcbn1cblxuLnZqcy1pY29uLWdwbHVzIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1ncGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuXG4udmpzLWljb24tbGlua2VkaW4ge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE5XCI7XG59XG5cbi52anMtaWNvbi10d2l0dGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFhXCI7XG59XG5cbi52anMtaWNvbi10dW1ibHIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXR1bWJscjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYlwiO1xufVxuXG4udmpzLWljb24tcGludGVyZXN0IHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1waW50ZXJlc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWNcIjtcbn1cblxuLnZqcy1pY29uLWF1ZGlvLWRlc2NyaXB0aW9uLCAudmlkZW8tanMgLnZqcy1kZXNjcmlwdGlvbnMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tYXVkaW8tZGVzY3JpcHRpb246YmVmb3JlLCAudmlkZW8tanMgLnZqcy1kZXNjcmlwdGlvbnMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExZFwiO1xufVxuXG4udmpzLWljb24tYXVkaW8sIC52aWRlby1qcyAudmpzLWF1ZGlvLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWF1ZGlvOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtYXVkaW8tYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExZVwiO1xufVxuXG4udmpzLWljb24tbmV4dC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1uZXh0LWl0ZW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWZcIjtcbn1cblxuLnZqcy1pY29uLXByZXZpb3VzLWl0ZW0ge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXByZXZpb3VzLWl0ZW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjBcIjtcbn1cblxuLnZqcy1pY29uLXBpY3R1cmUtaW4tcGljdHVyZS1lbnRlciwgLnZpZGVvLWpzIC52anMtcGljdHVyZS1pbi1waWN0dXJlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1waWN0dXJlLWluLXBpY3R1cmUtZW50ZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1waWN0dXJlLWluLXBpY3R1cmUtY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjFcIjtcbn1cblxuLnZqcy1pY29uLXBpY3R1cmUtaW4tcGljdHVyZS1leGl0LCAudmlkZW8tanMudmpzLXBpY3R1cmUtaW4tcGljdHVyZSAudmpzLXBpY3R1cmUtaW4tcGljdHVyZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tcGljdHVyZS1pbi1waWN0dXJlLWV4aXQ6YmVmb3JlLCAudmlkZW8tanMudmpzLXBpY3R1cmUtaW4tcGljdHVyZSAudmpzLXBpY3R1cmUtaW4tcGljdHVyZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMlwiO1xufVxuXG4udmlkZW8tanMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgd29yZC1icmVhazogaW5pdGlhbDtcbn1cbi52aWRlby1qczotbW96LWZ1bGwtc2NyZWVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnZpZGVvLWpzOi13ZWJraXQtZnVsbC1zY3JlZW4ge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnZpZGVvLWpzW3RhYmluZGV4PVwiLTFcIl0ge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4udmlkZW8tanMgKixcbi52aWRlby1qcyAqOmJlZm9yZSxcbi52aWRlby1qcyAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuLnZpZGVvLWpzIHVsIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi52aWRlby1qcy52anMtZmx1aWQsXG4udmlkZW8tanMudmpzLTE2LTksXG4udmlkZW8tanMudmpzLTQtMyxcbi52aWRlby1qcy52anMtOS0xNixcbi52aWRlby1qcy52anMtMS0xIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4udmlkZW8tanMudmpzLTE2LTkge1xuICBwYWRkaW5nLXRvcDogNTYuMjUlO1xufVxuXG4udmlkZW8tanMudmpzLTQtMyB7XG4gIHBhZGRpbmctdG9wOiA3NSU7XG59XG5cbi52aWRlby1qcy52anMtOS0xNiB7XG4gIHBhZGRpbmctdG9wOiAxNzcuNzc3Nzc3Nzc3OCU7XG59XG5cbi52aWRlby1qcy52anMtMS0xIHtcbiAgcGFkZGluZy10b3A6IDEwMCU7XG59XG5cbi52aWRlby1qcy52anMtZmlsbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52aWRlby1qcyAudmpzLXRlY2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuYm9keS52anMtZnVsbC13aW5kb3cge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1mdWxsLXdpbmRvdyAudmlkZW8tanMudmpzLWZ1bGxzY3JlZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDEwMDA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbn1cblxuLnZpZGVvLWpzLnZqcy1mdWxsc2NyZWVuOm5vdCgudmpzLWlvcy1uYXRpdmUtZnMpIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi52aWRlby1qcy52anMtZnVsbHNjcmVlbi52anMtdXNlci1pbmFjdGl2ZSB7XG4gIGN1cnNvcjogbm9uZTtcbn1cblxuLnZqcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi52anMtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnZpZGVvLWpzIC52anMtb2Zmc2NyZWVuIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMXB4O1xufVxuXG4udmpzLWxvY2stc2hvd2luZyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi52anMtbm8tanMge1xuICBwYWRkaW5nOiAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMTUwcHg7XG4gIG1hcmdpbjogMHB4IGF1dG87XG59XG5cbi52anMtbm8tanMgYSxcbi52anMtbm8tanMgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICM2NkE4Q0M7XG59XG5cbi52aWRlby1qcyAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIGhlaWdodDogMS42MzMzMmVtO1xuICB3aWR0aDogM2VtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyOiAwLjA2NjY2ZW0gc29saWQgI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJCMzMzRjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTEsIDYzLCAwLjcpO1xuICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XG59XG4udmpzLWJpZy1wbGF5LWNlbnRlcmVkIC52anMtYmlnLXBsYXktYnV0dG9uIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTAuODE2NjZlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xLjVlbTtcbn1cblxuLnZpZGVvLWpzOmhvdmVyIC52anMtYmlnLXBsYXktYnV0dG9uLFxuLnZpZGVvLWpzIC52anMtYmlnLXBsYXktYnV0dG9uOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM4NTlmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNSwgMTMzLCAxNTksIDAuNSk7XG4gIHRyYW5zaXRpb246IGFsbCAwcztcbn1cblxuLnZqcy1jb250cm9scy1kaXNhYmxlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbixcbi52anMtaGFzLXN0YXJ0ZWQgLnZqcy1iaWctcGxheS1idXR0b24sXG4udmpzLXVzaW5nLW5hdGl2ZS1jb250cm9scyAudmpzLWJpZy1wbGF5LWJ1dHRvbixcbi52anMtZXJyb3IgLnZqcy1iaWctcGxheS1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLWhhcy1zdGFydGVkLnZqcy1wYXVzZWQudmpzLXNob3ctYmlnLXBsYXktYnV0dG9uLW9uLXBhdXNlIC52anMtYmlnLXBsYXktYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby1qcyBidXR0b24ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4udmpzLWNvbnRyb2wgLnZqcy1idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmlkZW8tanMgLnZqcy1jb250cm9sLnZqcy1jbG9zZS1idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogM2VtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDAuNWVtO1xuICB6LWluZGV4OiAyO1xufVxuLnZpZGVvLWpzIC52anMtbW9kYWwtZGlhbG9nIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuOCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnZpZGVvLWpzIC52anMtbW9kYWwtZGlhbG9nID4gKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi52anMtbW9kYWwtZGlhbG9nIC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQge1xuICBmb250LXNpemU6IDEuMmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gIHotaW5kZXg6IDE7XG59XG5cbi52anMtbWVudS1idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi52anMtbWVudS1idXR0b24udmpzLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4udmpzLXdvcmtpbmdob3ZlciAudmpzLW1lbnUtYnV0dG9uLnZqcy1kaXNhYmxlZDpob3ZlciAudmpzLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi52anMtbWVudSAudmpzLW1lbnUtY29udGVudCA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4udmpzLXNjcnViYmluZyAudmpzLWNvbnRyb2wudmpzLW1lbnUtYnV0dG9uOmhvdmVyIC52anMtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtbWVudSBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4yZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICBmb250LXNpemU6IDEuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG5cbi52anMtbWVudSBsaS52anMtbWVudS1pdGVtOmZvY3VzLFxuLnZqcy1tZW51IGxpLnZqcy1tZW51LWl0ZW06aG92ZXIsXG4uanMtZm9jdXMtdmlzaWJsZSAudmpzLW1lbnUgbGkudmpzLW1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Mzg1OWY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE1LCAxMzMsIDE1OSwgMC41KTtcbn1cblxuLnZqcy1tZW51IGxpLnZqcy1zZWxlY3RlZCxcbi52anMtbWVudSBsaS52anMtc2VsZWN0ZWQ6Zm9jdXMsXG4udmpzLW1lbnUgbGkudmpzLXNlbGVjdGVkOmhvdmVyLFxuLmpzLWZvY3VzLXZpc2libGUgLnZqcy1tZW51IGxpLnZqcy1zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMkIzMzNGO1xufVxuXG4udmlkZW8tanMgLnZqcy1tZW51ICo6bm90KC52anMtc2VsZWN0ZWQpOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4uanMtZm9jdXMtdmlzaWJsZSAudmpzLW1lbnUgKjpub3QoLnZqcy1zZWxlY3RlZCk6Zm9jdXM6bm90KC5mb2N1cy12aXNpYmxlKSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi52anMtbWVudSBsaS52anMtbWVudS10aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAwIDAuM2VtIDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMGVtO1xuICBsZWZ0OiAtM2VtO1xuICBoZWlnaHQ6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoNDMsIDUxLCA2MywgMC43KTtcbn1cblxuLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkIzMzNGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1MSwgNjMsIDAuNyk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTogMS41ZW07XG4gIG1heC1oZWlnaHQ6IDE1ZW07XG59XG5cbi52anMtbGF5b3V0LXRpbnkgLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQsXG4udmpzLWxheW91dC14LXNtYWxsIC52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogNWVtO1xufVxuXG4udmpzLWxheW91dC1zbWFsbCAudmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDEwZW07XG59XG5cbi52anMtbGF5b3V0LW1lZGl1bSAudmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDE0ZW07XG59XG5cbi52anMtbGF5b3V0LWxhcmdlIC52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50LFxuLnZqcy1sYXlvdXQteC1sYXJnZSAudmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCxcbi52anMtbGF5b3V0LWh1Z2UgLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiAyNWVtO1xufVxuXG4udmpzLXdvcmtpbmdob3ZlciAudmpzLW1lbnUtYnV0dG9uLXBvcHVwLnZqcy1ob3ZlciAudmpzLW1lbnUsXG4udmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudS52anMtbG9jay1zaG93aW5nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby1qcyAudmpzLW1lbnUtYnV0dG9uLWlubGluZSB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udmlkZW8tanMgLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmU6YmVmb3JlIHtcbiAgd2lkdGg6IDIuMjIyMjIyMjIyZW07XG59XG5cbi52aWRlby1qcyAudmpzLW1lbnUtYnV0dG9uLWlubGluZTpob3Zlcixcbi52aWRlby1qcyAudmpzLW1lbnUtYnV0dG9uLWlubGluZTpmb2N1cyxcbi52aWRlby1qcyAudmpzLW1lbnUtYnV0dG9uLWlubGluZS52anMtc2xpZGVyLWFjdGl2ZSxcbi52aWRlby1qcy52anMtbm8tZmxleCAudmpzLW1lbnUtYnV0dG9uLWlubGluZSB7XG4gIHdpZHRoOiAxMmVtO1xufVxuXG4udmpzLW1lbnUtYnV0dG9uLWlubGluZSAudmpzLW1lbnUge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDRlbTtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzO1xufVxuXG4udmpzLW1lbnUtYnV0dG9uLWlubGluZTpob3ZlciAudmpzLW1lbnUsXG4udmpzLW1lbnUtYnV0dG9uLWlubGluZTpmb2N1cyAudmpzLW1lbnUsXG4udmpzLW1lbnUtYnV0dG9uLWlubGluZS52anMtc2xpZGVyLWFjdGl2ZSAudmpzLW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMTtcbn1cblxuLnZqcy1uby1mbGV4IC52anMtbWVudS1idXR0b24taW5saW5lIC52anMtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmU6aG92ZXIgLnZqcy1tZW51LFxuLnZqcy1uby1mbGV4IC52anMtbWVudS1idXR0b24taW5saW5lOmZvY3VzIC52anMtbWVudSxcbi52anMtbm8tZmxleCAudmpzLW1lbnUtYnV0dG9uLWlubGluZS52anMtc2xpZGVyLWFjdGl2ZSAudmpzLW1lbnUge1xuICB3aWR0aDogYXV0bztcbn1cblxuLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUgLnZqcy1tZW51LWNvbnRlbnQge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi52aWRlby1qcyAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAzZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQjMzM0Y7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDUxLCA2MywgMC43KTtcbn1cblxuLnZqcy1oYXMtc3RhcnRlZCAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwLjFzLCBvcGFjaXR5IDAuMXM7XG59XG5cbi52anMtaGFzLXN0YXJ0ZWQudmpzLXVzZXItaW5hY3RpdmUudmpzLXBsYXlpbmcgLnZqcy1jb250cm9sLWJhciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXM7XG59XG5cbi52anMtY29udHJvbHMtZGlzYWJsZWQgLnZqcy1jb250cm9sLWJhcixcbi52anMtdXNpbmctbmF0aXZlLWNvbnRyb2xzIC52anMtY29udHJvbC1iYXIsXG4udmpzLWVycm9yIC52anMtY29udHJvbC1iYXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi52anMtYXVkaW8udmpzLWhhcy1zdGFydGVkLnZqcy11c2VyLWluYWN0aXZlLnZqcy1wbGF5aW5nIC52anMtY29udHJvbC1iYXIge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4udmpzLWhhcy1zdGFydGVkLnZqcy1uby1mbGV4IC52anMtY29udHJvbC1iYXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnZpZGVvLWpzIC52anMtY29udHJvbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDRlbTtcbiAgZmxleDogbm9uZTtcbn1cblxuLnZqcy1idXR0b24gPiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgZm9udC1zaXplOiAxLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjc7XG59XG5cbi52anMtYnV0dG9uID4gLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby1qcyAudmpzLWNvbnRyb2w6Zm9jdXM6YmVmb3JlLFxuLnZpZGVvLWpzIC52anMtY29udHJvbDpob3ZlcjpiZWZvcmUsXG4udmlkZW8tanMgLnZqcy1jb250cm9sOmZvY3VzIHtcbiAgdGV4dC1zaGFkb3c6IDBlbSAwZW0gMWVtIHdoaXRlO1xufVxuXG4udmlkZW8tanMgLnZqcy1jb250cm9sLXRleHQge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG59XG5cbi52anMtbm8tZmxleCAudmpzLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4udmlkZW8tanMgLnZqcy1jdXN0b20tY29udHJvbC1zcGFjZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDRlbTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sLmRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4udmpzLWxpdmUgLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZqcy1saXZldWkgLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnZqcy1uby1mbGV4IC52anMtcHJvZ3Jlc3MtY29udHJvbCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1ob2xkZXIge1xuICBmbGV4OiBhdXRvO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgaGVpZ2h0OiAwLjNlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbCAudmpzLXByb2dyZXNzLWhvbGRlciB7XG4gIG1hcmdpbjogMCAxMHB4O1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sOmhvdmVyIC52anMtcHJvZ3Jlc3MtaG9sZGVyIHtcbiAgZm9udC1zaXplOiAxLjY2NjY2NjY2NjdlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbDpob3ZlciAudmpzLXByb2dyZXNzLWhvbGRlci5kaXNhYmxlZCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1wbGF5LXByb2dyZXNzLFxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtbG9hZC1wcm9ncmVzcyxcbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLWxvYWQtcHJvZ3Jlc3MgZGl2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAwO1xufVxuXG4udmlkZW8tanMgLnZqcy1wbGF5LXByb2dyZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi52aWRlby1qcyAudmpzLXBsYXktcHJvZ3Jlc3M6YmVmb3JlIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTAuNWVtO1xuICB0b3A6IC0wLjMzMzMzMzMzMzNlbTtcbiAgei1pbmRleDogMTtcbn1cblxuLnZpZGVvLWpzIC52anMtbG9hZC1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTE1LCAxMzMsIDE1OSwgMC41KTtcbn1cblxuLnZpZGVvLWpzIC52anMtbG9hZC1wcm9ncmVzcyBkaXYge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDExNSwgMTMzLCAxNTksIDAuNzUpO1xufVxuXG4udmlkZW8tanMgLnZqcy10aW1lLXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuM2VtO1xuICBjb2xvcjogIzAwMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDZweCA4cHggOHB4IDhweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMy40ZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtaG9sZGVyOmZvY3VzIC52anMtdGltZS10b29sdGlwIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbDpob3ZlciAudmpzLXRpbWUtdG9vbHRpcCxcbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2w6aG92ZXIgLnZqcy1wcm9ncmVzcy1ob2xkZXI6Zm9jdXMgLnZqcy10aW1lLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjZlbTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbC5kaXNhYmxlZDpob3ZlciAudmpzLXRpbWUtdG9vbHRpcCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICB6LWluZGV4OiAxO1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1wcm9ncmVzcy1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2w6aG92ZXIgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZSAudmpzLXByb2dyZXNzLWNvbnRyb2wgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFzLCBvcGFjaXR5IDFzO1xufVxuXG4udmlkZW8tanMudmpzLXVzZXItaW5hY3RpdmUudmpzLW5vLWZsZXggLnZqcy1wcm9ncmVzcy1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtbW91c2UtZGlzcGxheSAudmpzLXRpbWUtdG9vbHRpcCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG5cbi52aWRlby1qcyAudmpzLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDAgMC40NWVtIDAgMC40NWVtO1xuICAvKiBpT1MgU2FmYXJpICovXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLyogU2FmYXJpICovXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIEtvbnF1ZXJvciBIVE1MICovXG4gIC8qIEZpcmVmb3ggKi9cbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogSW50ZXJuZXQgRXhwbG9yZXIvRWRnZSAqL1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIE5vbi1wcmVmaXhlZCB2ZXJzaW9uLCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IENocm9tZSBhbmQgT3BlcmEgKi9cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Mzg1OWY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE1LCAxMzMsIDE1OSwgMC41KTtcbn1cblxuLnZpZGVvLWpzIC52anMtc2xpZGVyLmRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4udmlkZW8tanMgLnZqcy1zbGlkZXI6Zm9jdXMge1xuICB0ZXh0LXNoYWRvdzogMGVtIDBlbSAxZW0gd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMCAxZW0gI2ZmZjtcbn1cblxuLnZpZGVvLWpzIC52anMtbXV0ZS1jb250cm9sIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4OiBub25lO1xufVxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLWhvcml6b250YWwge1xuICB3aWR0aDogNWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggMXM7XG59XG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLWhvdmVyIC52anMtdm9sdW1lLWNvbnRyb2wsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbDphY3RpdmUgLnZqcy12b2x1bWUtY29udHJvbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsOmZvY3VzIC52anMtdm9sdW1lLWNvbnRyb2wsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sOmFjdGl2ZSwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy1ob3ZlciAudmpzLW11dGUtY29udHJvbCB+IC52anMtdm9sdW1lLWNvbnRyb2wsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy1zbGlkZXItYWN0aXZlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDAuMXMsIG9wYWNpdHkgMC4xcywgaGVpZ2h0IDAuMXMsIHdpZHRoIDAuMXMsIGxlZnQgMHMsIHRvcCAwcztcbn1cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtaG92ZXIgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLWhvcml6b250YWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbDphY3RpdmUgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLWhvcml6b250YWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbDpmb2N1cyAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtaG9yaXpvbnRhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2w6YWN0aXZlLnZqcy12b2x1bWUtaG9yaXpvbnRhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy1ob3ZlciAudmpzLW11dGUtY29udHJvbCB+IC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS1ob3Jpem9udGFsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbC52anMtc2xpZGVyLWFjdGl2ZS52anMtdm9sdW1lLWhvcml6b250YWwge1xuICB3aWR0aDogNWVtO1xuICBoZWlnaHQ6IDNlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy1ob3ZlciAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtdmVydGljYWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbDphY3RpdmUgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLXZlcnRpY2FsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWw6Zm9jdXMgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLXZlcnRpY2FsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbDphY3RpdmUudmpzLXZvbHVtZS12ZXJ0aWNhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy1ob3ZlciAudmpzLW11dGUtY29udHJvbCB+IC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS12ZXJ0aWNhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXNsaWRlci1hY3RpdmUudmpzLXZvbHVtZS12ZXJ0aWNhbCB7XG4gIGxlZnQ6IC0zLjVlbTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwcztcbn1cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLWhvdmVyLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsOmFjdGl2ZSwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbC52anMtc2xpZGVyLWFjdGl2ZSB7XG4gIHdpZHRoOiAxMGVtO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzO1xufVxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbC52anMtbXV0ZS10b2dnbGUtb25seSB7XG4gIHdpZHRoOiA0ZW07XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtdmVydGljYWwge1xuICBoZWlnaHQ6IDhlbTtcbiAgd2lkdGg6IDNlbTtcbiAgbGVmdDogLTMwMDBlbTtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcywgaGVpZ2h0IDFzIDFzLCB3aWR0aCAxcyAxcywgbGVmdCAxcyAxcywgdG9wIDFzIDFzO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLWhvcml6b250YWwge1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFzLCBvcGFjaXR5IDFzLCBoZWlnaHQgMXMgMXMsIHdpZHRoIDFzLCBsZWZ0IDFzIDFzLCB0b3AgMXMgMXM7XG59XG5cbi52aWRlby1qcy52anMtbm8tZmxleCAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtaG9yaXpvbnRhbCB7XG4gIHdpZHRoOiA1ZW07XG4gIGhlaWdodDogM2VtO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi52aWRlby1qcy52anMtbm8tZmxleCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtdmVydGljYWwsXG4udmlkZW8tanMudmpzLW5vLWZsZXggLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDNlbTtcbiAgbGVmdDogMC41ZW07XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1iYXIge1xuICBtYXJnaW46IDEuMzVlbSAwLjQ1ZW07XG59XG5cbi52anMtdm9sdW1lLWJhci52anMtc2xpZGVyLWhvcml6b250YWwge1xuICB3aWR0aDogNWVtO1xuICBoZWlnaHQ6IDAuM2VtO1xufVxuXG4udmpzLXZvbHVtZS1iYXIudmpzLXNsaWRlci12ZXJ0aWNhbCB7XG4gIHdpZHRoOiAwLjNlbTtcbiAgaGVpZ2h0OiA1ZW07XG4gIG1hcmdpbjogMS4zNWVtIGF1dG87XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1sZXZlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWxldmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgei1pbmRleDogMTtcbn1cblxuLnZqcy1zbGlkZXItdmVydGljYWwgLnZqcy12b2x1bWUtbGV2ZWwge1xuICB3aWR0aDogMC4zZW07XG59XG4udmpzLXNsaWRlci12ZXJ0aWNhbCAudmpzLXZvbHVtZS1sZXZlbDpiZWZvcmUge1xuICB0b3A6IC0wLjVlbTtcbiAgbGVmdDogLTAuM2VtO1xuICB6LWluZGV4OiAxO1xufVxuXG4udmpzLXNsaWRlci1ob3Jpem9udGFsIC52anMtdm9sdW1lLWxldmVsIHtcbiAgaGVpZ2h0OiAwLjNlbTtcbn1cbi52anMtc2xpZGVyLWhvcml6b250YWwgLnZqcy12b2x1bWUtbGV2ZWw6YmVmb3JlIHtcbiAgdG9wOiAtMC4zZW07XG4gIHJpZ2h0OiAtMC41ZW07XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLXZlcnRpY2FsIHtcbiAgd2lkdGg6IDRlbTtcbn1cblxuLnZqcy12b2x1bWUtYmFyLnZqcy1zbGlkZXItdmVydGljYWwgLnZqcy12b2x1bWUtbGV2ZWwge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52anMtdm9sdW1lLWJhci52anMtc2xpZGVyLWhvcml6b250YWwgLnZqcy12b2x1bWUtbGV2ZWwge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXZlcnRpY2FsIHtcbiAgd2lkdGg6IDNlbTtcbiAgaGVpZ2h0OiA4ZW07XG4gIGJvdHRvbTogOGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkIzMzNGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1MSwgNjMsIDAuNyk7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1ob3Jpem9udGFsIC52anMtbWVudSB7XG4gIGxlZnQ6IC0yZW07XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS10b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbiAgY29sb3I6ICMwMDA7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiA2cHggOHB4IDhweCA4cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTMuNGVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sOmhvdmVyIC52anMtdm9sdW1lLXRvb2x0aXAsXG4udmlkZW8tanMgLnZqcy12b2x1bWUtY29udHJvbDpob3ZlciAudmpzLXByb2dyZXNzLWhvbGRlcjpmb2N1cyAudmpzLXZvbHVtZS10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtdmVydGljYWw6aG92ZXIgLnZqcy12b2x1bWUtdG9vbHRpcCxcbi52aWRlby1qcyAudmpzLXZvbHVtZS12ZXJ0aWNhbDpob3ZlciAudmpzLXByb2dyZXNzLWhvbGRlcjpmb2N1cyAudmpzLXZvbHVtZS10b29sdGlwIHtcbiAgbGVmdDogMWVtO1xuICB0b3A6IC0xMnB4O1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtY29udHJvbC5kaXNhYmxlZDpob3ZlciAudmpzLXZvbHVtZS10b29sdGlwIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICB6LWluZGV4OiAxO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtaG9yaXpvbnRhbCAudmpzLW1vdXNlLWRpc3BsYXkge1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52anMtbm8tZmxleCAudmpzLXZvbHVtZS1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sOmhvdmVyIC52anMtbW91c2UtZGlzcGxheSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udmlkZW8tanMudmpzLXVzZXItaW5hY3RpdmUgLnZqcy12b2x1bWUtY29udHJvbCAudmpzLW1vdXNlLWRpc3BsYXkge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXM7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZS52anMtbm8tZmxleCAudmpzLXZvbHVtZS1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtbW91c2UtZGlzcGxheSAudmpzLXZvbHVtZS10b29sdGlwIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cblxuLnZqcy1wb3N0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52anMtaGFzLXN0YXJ0ZWQgLnZqcy1wb3N0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLWF1ZGlvLnZqcy1oYXMtc3RhcnRlZCAudmpzLXBvc3RlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udmpzLXVzaW5nLW5hdGl2ZS1jb250cm9scyAudmpzLXBvc3RlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBmbGV4OiBhdXRvO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDNlbTtcbn1cblxuLnZqcy1uby1mbGV4IC52anMtbGl2ZS1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi52aWRlby1qczpub3QoLnZqcy1saXZlKSAudmpzLWxpdmUtY29udHJvbCxcbi52aWRlby1qcy52anMtbGl2ZXVpIC52anMtbGl2ZS1jb250cm9sIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZpZGVvLWpzIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDNlbTtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogNGVtO1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udmlkZW8tanMudmpzLWxpdmU6bm90KC52anMtbGl2ZXVpKSAudmpzLXNlZWstdG8tbGl2ZS1jb250cm9sLFxuLnZpZGVvLWpzOm5vdCgudmpzLWxpdmUpIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLXNlZWstdG8tbGl2ZS1jb250cm9sLnZqcy1jb250cm9sLnZqcy1hdC1saXZlLWVkZ2Uge1xuICBjdXJzb3I6IGF1dG87XG59XG5cbi52anMtc2Vlay10by1saXZlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgY29sb3I6ICM4ODg7XG59XG5cbi52anMtc2Vlay10by1saXZlLWNvbnRyb2wudmpzLWNvbnRyb2wudmpzLWF0LWxpdmUtZWRnZSAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmVkO1xufVxuXG4udmlkZW8tanMgLnZqcy10aW1lLWNvbnRyb2wge1xuICBmbGV4OiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDNlbTtcbiAgbWluLXdpZHRoOiAyZW07XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgcGFkZGluZy1yaWdodDogMWVtO1xufVxuXG4udmpzLWxpdmUgLnZqcy10aW1lLWNvbnRyb2wge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1jdXJyZW50LXRpbWUsXG4udmpzLW5vLWZsZXggLnZqcy1jdXJyZW50LXRpbWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1kdXJhdGlvbixcbi52anMtbm8tZmxleCAudmpzLWR1cmF0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZqcy10aW1lLWRpdmlkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBsaW5lLWhlaWdodDogM2VtO1xufVxuXG4udmpzLWxpdmUgLnZqcy10aW1lLWRpdmlkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1wbGF5LWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi52aWRlby1qcyAudmpzLXBsYXktY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmbGV4OiBub25lO1xufVxuXG4udmpzLXRleHQtdHJhY2stZGlzcGxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAzZW07XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udmlkZW8tanMudmpzLXVzZXItaW5hY3RpdmUudmpzLXBsYXlpbmcgLnZqcy10ZXh0LXRyYWNrLWRpc3BsYXkge1xuICBib3R0b206IDFlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtdGV4dC10cmFjayB7XG4gIGZvbnQtc2l6ZTogMS40ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMC4xZW07XG59XG5cbi52anMtc3VidGl0bGVzIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi52anMtY2FwdGlvbnMge1xuICBjb2xvcjogI2ZjNjtcbn1cblxuLnZqcy10dC1jdWUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxudmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zZW0pO1xufVxuXG4udmlkZW8tanMudmpzLXVzZXItaW5hY3RpdmUudmpzLXBsYXlpbmcgdmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjVlbSk7XG59XG5cbi52aWRlby1qcyAudmpzLXBpY3R1cmUtaW4tcGljdHVyZS1jb250cm9sIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4OiBub25lO1xufVxuLnZpZGVvLWpzIC52anMtZnVsbHNjcmVlbi1jb250cm9sIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4OiBub25lO1xufVxuLnZqcy1wbGF5YmFjay1yYXRlID4gLnZqcy1tZW51LWJ1dHRvbixcbi52anMtcGxheWJhY2stcmF0ZSAudmpzLXBsYXliYWNrLXJhdGUtdmFsdWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1wbGF5YmFjay1yYXRlIC52anMtcGxheWJhY2stcmF0ZS12YWx1ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udmpzLXBsYXliYWNrLXJhdGUgLnZqcy1tZW51IHtcbiAgd2lkdGg6IDRlbTtcbiAgbGVmdDogMGVtO1xufVxuXG4udmpzLWVycm9yIC52anMtZXJyb3ItZGlzcGxheSAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udmpzLWVycm9yIC52anMtZXJyb3ItZGlzcGxheTpiZWZvcmUge1xuICBjb2xvcjogI2ZmZjtcbiAgY29udGVudDogXCJYXCI7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDRlbTtcbiAgbGVmdDogMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LXNoYWRvdzogMC4wNWVtIDAuMDVlbSAwLjFlbSAjMDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRvcDogNTAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnZqcy1sb2FkaW5nLXNwaW5uZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTI1cHggMCAwIC0yNXB4O1xuICBvcGFjaXR5OiAwLjg1O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXI6IDZweCBzb2xpZCByZ2JhKDQzLCA1MSwgNjMsIDAuNyk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnZqcy1zZWVraW5nIC52anMtbG9hZGluZy1zcGlubmVyLFxuLnZqcy13YWl0aW5nIC52anMtbG9hZGluZy1zcGlubmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiB2anMtc3Bpbm5lci1zaG93IDBzIGxpbmVhciAwLjNzIGZvcndhcmRzO1xuICAgICAgICAgIGFuaW1hdGlvbjogdmpzLXNwaW5uZXItc2hvdyAwcyBsaW5lYXIgMC4zcyBmb3J3YXJkcztcbn1cblxuLnZqcy1sb2FkaW5nLXNwaW5uZXI6YmVmb3JlLFxuLnZqcy1sb2FkaW5nLXNwaW5uZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogLTZweDtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyOiBpbmhlcml0O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cblxuLnZqcy1zZWVraW5nIC52anMtbG9hZGluZy1zcGlubmVyOmJlZm9yZSxcbi52anMtc2Vla2luZyAudmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlcixcbi52anMtd2FpdGluZyAudmpzLWxvYWRpbmctc3Bpbm5lcjpiZWZvcmUsXG4udmpzLXdhaXRpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YWZ0ZXIge1xuICAtd2Via2l0LWFuaW1hdGlvbjogdmpzLXNwaW5uZXItc3BpbiAxLjFzIGN1YmljLWJlemllcigwLjYsIDAuMiwgMCwgMC44KSBpbmZpbml0ZSwgdmpzLXNwaW5uZXItZmFkZSAxLjFzIGxpbmVhciBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiB2anMtc3Bpbm5lci1zcGluIDEuMXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4yLCAwLCAwLjgpIGluZmluaXRlLCB2anMtc3Bpbm5lci1mYWRlIDEuMXMgbGluZWFyIGluZmluaXRlO1xufVxuXG4udmpzLXNlZWtpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YmVmb3JlLFxuLnZqcy13YWl0aW5nIC52anMtbG9hZGluZy1zcGlubmVyOmJlZm9yZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xufVxuXG4udmpzLXNlZWtpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YWZ0ZXIsXG4udmpzLXdhaXRpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNDRzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuNDRzO1xufVxuXG5Aa2V5ZnJhbWVzIHZqcy1zcGlubmVyLXNob3cge1xuICB0byB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHZqcy1zcGlubmVyLXNob3cge1xuICB0byB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQGtleWZyYW1lcyB2anMtc3Bpbm5lci1zcGluIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHZqcy1zcGlubmVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmpzLXNwaW5uZXItZmFkZSB7XG4gIDAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDIwJSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzczODU5ZjtcbiAgfVxuICAzNSUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xuICB9XG4gIDYwJSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzczODU5ZjtcbiAgfVxuICAxMDAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgdmpzLXNwaW5uZXItZmFkZSB7XG4gIDAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDIwJSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzczODU5ZjtcbiAgfVxuICAzNSUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xuICB9XG4gIDYwJSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzczODU5ZjtcbiAgfVxuICAxMDAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG59XG4udmpzLWNoYXB0ZXJzLWJ1dHRvbiAudmpzLW1lbnUgdWwge1xuICB3aWR0aDogMjRlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtc3Vicy1jYXBzLWJ1dHRvbiArIC52anMtbWVudSAudmpzLWNhcHRpb25zLW1lbnUtaXRlbSAudmpzLW1lbnUtaXRlbS10ZXh0IC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLTAuMWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy1zdWJzLWNhcHMtYnV0dG9uICsgLnZqcy1tZW51IC52anMtY2FwdGlvbnMtbWVudS1pdGVtIC52anMtbWVudS1pdGVtLXRleHQgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBjb250ZW50OiBcIu+EjVwiO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLnZpZGVvLWpzIC52anMtYXVkaW8tYnV0dG9uICsgLnZqcy1tZW51IC52anMtbWFpbi1kZXNjLW1lbnUtaXRlbSAudmpzLW1lbnUtaXRlbS10ZXh0IC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLTAuMWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy1hdWRpby1idXR0b24gKyAudmpzLW1lbnUgLnZqcy1tYWluLWRlc2MtbWVudS1pdGVtIC52anMtbWVudS1pdGVtLXRleHQgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBjb250ZW50OiBcIiDvhJ1cIjtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtY3VycmVudC10aW1lLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy10aW1lLWRpdmlkZXIsXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLWR1cmF0aW9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1yZW1haW5pbmctdGltZSxcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtcGxheWJhY2stcmF0ZSxcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtY2hhcHRlcnMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1kZXNjcmlwdGlvbnMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1jYXB0aW9ucy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLXN1YnRpdGxlcy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLWF1ZGlvLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtdm9sdW1lLWNvbnRyb2wsIC52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1jdXJyZW50LXRpbWUsXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtdGltZS1kaXZpZGVyLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLWR1cmF0aW9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXJlbWFpbmluZy10aW1lLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXBsYXliYWNrLXJhdGUsXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtY2hhcHRlcnMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtY2FwdGlvbnMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXN1YnRpdGxlcy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtYXVkaW8tYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXZvbHVtZS1jb250cm9sLCAudmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtY3VycmVudC10aW1lLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXRpbWUtZGl2aWRlcixcbi52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1kdXJhdGlvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1yZW1haW5pbmctdGltZSxcbi52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1wbGF5YmFjay1yYXRlLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLWNoYXB0ZXJzLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1kZXNjcmlwdGlvbnMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLWNhcHRpb25zLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1zdWJ0aXRsZXMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLWF1ZGlvLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy12b2x1bWUtY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbDpob3Zlcixcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbDphY3RpdmUsXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLXNsaWRlci1hY3RpdmUsIC52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsOmhvdmVyLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWw6YWN0aXZlLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLXNsaWRlci1hY3RpdmUsIC52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsOmhvdmVyLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWw6YWN0aXZlLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLXNsaWRlci1hY3RpdmUge1xuICB3aWR0aDogYXV0bztcbiAgd2lkdGg6IGluaXRpYWw7XG59XG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsOm5vdCgudmpzLWxpdmV1aSkgLnZqcy1zdWJzLWNhcHMtYnV0dG9uLCAudmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsOm5vdCgudmpzLWxpdmUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiwgLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXN1YnMtY2Fwcy1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbC52anMtbGl2ZXVpIC52anMtY3VzdG9tLWNvbnRyb2wtc3BhY2VyLCAudmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtY3VzdG9tLWNvbnRyb2wtc3BhY2VyIHtcbiAgZmxleDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsLnZqcy1saXZldWkudmpzLW5vLWZsZXggLnZqcy1jdXN0b20tY29udHJvbC1zcGFjZXIsIC52aWRlby1qcy52anMtbGF5b3V0LXRpbnkudmpzLW5vLWZsZXggLnZqcy1jdXN0b20tY29udHJvbC1zcGFjZXIge1xuICB3aWR0aDogYXV0bztcbn1cbi52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwudmpzLWxpdmV1aSAudmpzLXByb2dyZXNzLWNvbnRyb2wsIC52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZqcy1tb2RhbC1kaWFsb2cudmpzLXRleHQtdHJhY2stc2V0dGluZ3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkIzMzNGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1MSwgNjMsIDAuNzUpO1xuICBjb2xvcjogI2ZmZjtcbiAgaGVpZ2h0OiA3MCU7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50IHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLXRyYWNrLXNldHRpbmdzLWNvbG9ycyxcbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLXRyYWNrLXNldHRpbmdzLWZvbnQsXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLXRyYWNrLXNldHRpbmdzLWNvbnRyb2xzIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbkBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAudmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy1tb2RhbC1kaWFsb2ctY29udGVudCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gICAgcGFkZGluZzogMjBweCAyNHB4IDBweCAyNHB4O1xuICB9XG5cbiAgLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyAudmpzLWRlZmF1bHQtYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG5cbiAgLnZqcy1sYXlvdXQtc21hbGwgLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQsXG4udmpzLWxheW91dC14LXNtYWxsIC52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50LFxuLnZqcy1sYXlvdXQtdGlueSAudmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy1tb2RhbC1kaWFsb2ctY29udGVudCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cbi52anMtdHJhY2stc2V0dGluZyA+IHNlbGVjdCB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cblxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiA1cHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgZmllbGRzZXQgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIGZpZWxkc2V0IHNwYW4gPiBzZWxlY3Qge1xuICBtYXgtd2lkdGg6IDcuM2VtO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgbGVnZW5kIHtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbjogMCAwIDVweCAwO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgxcHggMXB4IDFweCAxcHgpO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgMCA1cHggMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyBidXR0b246Zm9jdXMsXG4udmpzLXRyYWNrLXNldHRpbmdzLWNvbnRyb2xzIGJ1dHRvbjphY3RpdmUge1xuICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgb3V0bGluZS13aWR0aDogbWVkaXVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgI2ZmZiA4OCUsICM3Mzg1OWYgMTAwJSk7XG59XG5cbi52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMgYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoNDMsIDUxLCA2MywgMC43NSk7XG59XG5cbi52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC0xODBkZWcsICNmZmYgODglLCAjNzM4NTlmIDEwMCUpO1xuICBjb2xvcjogIzJCMzMzRjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMgLnZqcy1kZWZhdWx0LWJ1dHRvbiB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAudmlkZW8tanMgPiAqOm5vdCgudmpzLXRlY2gpOm5vdCgudmpzLXBvc3Rlcikge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuLnZqcy1yZXNpemUtbWFuYWdlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIHotaW5kZXg6IC0xMDAwO1xufVxuXG4uanMtZm9jdXMtdmlzaWJsZSAudmlkZW8tanMgKjpmb2N1czpub3QoLmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnZpZGVvLWpzICo6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4iLCJAa2V5ZnJhbWVzIHJlYWN0LWxvYWRpbmctc2tlbGV0b24ge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cblxuLnJlYWN0LWxvYWRpbmctc2tlbGV0b24ge1xuICAtLWJhc2UtY29sb3I6ICNlYmViZWI7XG4gIC0taGlnaGxpZ2h0LWNvbG9yOiAjZjVmNWY1O1xuICAtLWFuaW1hdGlvbi1kdXJhdGlvbjogMS41cztcbiAgLS1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7XG4gIC0tcHNldWRvLWVsZW1lbnQtZGlzcGxheTogYmxvY2s7IC8qIEVuYWJsZSBhbmltYXRpb24gKi9cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYXNlLWNvbG9yKTtcblxuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yZWFjdC1sb2FkaW5nLXNrZWxldG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZGlzcGxheTogdmFyKC0tcHNldWRvLWVsZW1lbnQtZGlzcGxheSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoXG4gICAgLS1jdXN0b20taGlnaGxpZ2h0LWJhY2tncm91bmQsXG4gICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgOTBkZWcsXG4gICAgICB2YXIoLS1iYXNlLWNvbG9yKSAwJSxcbiAgICAgIHZhcigtLWhpZ2hsaWdodC1jb2xvcikgNTAlLFxuICAgICAgdmFyKC0tYmFzZS1jb2xvcikgMTAwJVxuICAgIClcbiAgKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcblxuICBhbmltYXRpb24tbmFtZTogcmVhY3QtbG9hZGluZy1za2VsZXRvbjtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tYW5pbWF0aW9uLWRpcmVjdGlvbik7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pIHtcbiAgLnJlYWN0LWxvYWRpbmctc2tlbGV0b24ge1xuICAgIC0tcHNldWRvLWVsZW1lbnQtZGlzcGxheTogbm9uZTsgLyogRGlzYWJsZSBhbmltYXRpb24gKi9cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5nbG9iYWxzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9tZW51L21lbnUuaW9zLnZhcnNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL21lbnUvbWVudS5tZC52YXJzXCI7XG5cbi8vIElvbmljIEZvbnQgRmFtaWx5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5odG1sLmlvcyB7XG4gIC0taW9uLWRlZmF1bHQtZm9udDogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG59XG5odG1sLm1kIHtcbiAgLS1pb24tZGVmYXVsdC1mb250OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbmh0bWwge1xuICAtLWlvbi1kZWZhdWx0LWR5bmFtaWMtZm9udDogLWFwcGxlLXN5c3RlbS1ib2R5O1xuICAtLWlvbi1mb250LWZhbWlseTogdmFyKC0taW9uLWRlZmF1bHQtZm9udCk7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcik7XG59XG5cbmJvZHkuYmFja2Ryb3Atbm8tc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gTW9kYWwgLSBDYXJkIFN0eWxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyoqXG4gKiBDYXJkIHN0eWxlIG1vZGFsIG5lZWRzIGFkZGl0aW9uYWwgcGFkZGluZyBvbiB0aGVcbiAqIHRvcCBvZiB0aGUgaGVhZGVyLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgdGFyZ2V0aW5nXG4gKiB0aGUgZmlyc3QgdG9vbGJhciBpbiB0aGUgaGVhZGVyLlxuICogRm9vdGVyIGFsc28gbmVlZHMgdGhpcy4gV2UgZG8gbm90IGFkanVzdCB0aGUgYm90dG9tXG4gKiBwYWRkaW5nIHRob3VnaCBiZWNhdXNlIG9mIHRoZSBzYWZlIGFyZWEuXG4gKi9cbmh0bWwuaW9zIGlvbi1tb2RhbC5tb2RhbC1jYXJkIGlvbi1oZWFkZXIgaW9uLXRvb2xiYXI6Zmlyc3Qtb2YtdHlwZSxcbmh0bWwuaW9zIGlvbi1tb2RhbC5tb2RhbC1zaGVldCBpb24taGVhZGVyIGlvbi10b29sYmFyOmZpcnN0LW9mLXR5cGUsXG5odG1sLmlvcyBpb24tbW9kYWwgaW9uLWZvb3RlciBpb24tdG9vbGJhcjpmaXJzdC1vZi10eXBlIHtcbiAgcGFkZGluZy10b3A6IDZweDtcbn1cblxuLyoqXG4qIENhcmQgc3R5bGUgbW9kYWwgbmVlZHMgYWRkaXRpb25hbCBwYWRkaW5nIG9uIHRoZVxuKiBib3R0b20gb2YgdGhlIGhlYWRlci4gV2UgYWNjb21wbGlzaCB0aGlzIGJ5IHRhcmdldGluZ1xuKiB0aGUgbGFzdCB0b29sYmFyIGluIHRoZSBoZWFkZXIuXG4qL1xuaHRtbC5pb3MgaW9uLW1vZGFsLm1vZGFsLWNhcmQgaW9uLWhlYWRlciBpb24tdG9vbGJhcjpsYXN0LW9mLXR5cGUsXG5odG1sLmlvcyBpb24tbW9kYWwubW9kYWwtc2hlZXQgaW9uLWhlYWRlciBpb24tdG9vbGJhcjpsYXN0LW9mLXR5cGUge1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xufVxuXG4vKipcbiogQWRkIHBhZGRpbmcgb24gdGhlIGxlZnQgYW5kIHJpZ2h0XG4qIG9mIHRvb2xiYXJzIHdoaWxlIGFjY291bnRpbmcgZm9yXG4qIHNhZmUgYXJlYSB2YWx1ZXMgd2hlbiBpbiBsYW5kc2NhcGUuXG4qL1xuaHRtbC5pb3MgaW9uLW1vZGFsIGlvbi10b29sYmFyIHtcbiAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1pb24tc2FmZS1hcmVhLXJpZ2h0KSArIDhweCk7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1pb24tc2FmZS1hcmVhLWxlZnQpICsgOHB4KTtcbn1cblxuLyoqXG4gKiBDYXJkIHN0eWxlIG1vZGFsIG9uIGlQYWRPU1xuICogc2hvdWxkIG9ubHkgaGF2ZSBiYWNrZHJvcCBvbiBmaXJzdCBpbnN0YW5jZS5cbiAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaHRtbC5pb3MgaW9uLW1vZGFsLm1vZGFsLWNhcmQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgLS1iYWNrZHJvcC1vcGFjaXR5OiAwLjE4O1xuICB9XG59XG5cbi8qKlxuICogU3Vic2VxdWVudCBtb2RhbHMgc2hvdWxkIG5vdCBoYXZlIGEgYmFja2Ryb3AvYm94IHNoYWRvd1xuICogYXMgaXQgd2lsbCBjYXVzZSB0aGUgc2NyZWVuIHRvIGFwcGVhciB0byBnZXQgcHJvZ3Jlc3NpdmVseVxuICogZGFya2VyLiBXaXRoIElvbmljIDYsIGRlY2xhcmF0aXZlIG1vZGFscyBtYWRlIGl0XG4gKiBwb3NzaWJsZSB0byBoYXZlIG11bHRpcGxlIG5vbi1wcmVzZW50ZWQgbW9kYWxzIGluIHRoZSBET00sXG4gKiBzbyB3ZSBjb3VsZCBubyBsb25nZXIgcmVseSBvbiBpb24tbW9kYWw6Zmlyc3Qtb2YtdHlwZS5cbiAqIEhlcmUgd2UgZGlzYWJsZSB0aGUgb3BhY2l0eS9ib3gtc2hhZG93IGZvciBldmVyeSBtb2RhbFxuICogdGhhdCBjb21lcyBhZnRlciB0aGUgZmlyc3QgcHJlc2VudGVkIG1vZGFsLlxuICpcbiAqIE5vdGU6IGlvbi1tb2RhbDpub3QoLm92ZXJsYXktaGlkZGVuKTpmaXJzdC1vZi10eXBlXG4gKiBkb2VzIG5vdCBtYXRjaCB0aGUgZmlyc3QgbW9kYWwgdG8gbm90IGhhdmVcbiAqIHRoZSAub3ZlcmxheS1oaWRkZW4gY2xhc3MsIGl0IHdpbGwgbWF0Y2ggdGhlXG4gKiBmaXJzdCBtb2RhbCBpbiBnZW5lcmFsIG9ubHkgaWYgaXQgZG9lcyBub3RcbiAqIGhhdmUgdGhlIC5vdmVybGF5LWhpZGRlbiBjbGFzcy5cbiAqIFRoZSA6bnRoLWNoaWxkKCkgcHNldWRvLWNsYXNzIGhhcyBzdXBwb3J0XG4gKiBmb3Igc2VsZWN0b3JzIHdoaWNoIHdvdWxkIGhlbHAgdXMgaGVyZS4gQXQgdGhlXG4gKiB0aW1lIG9mIHdyaXRpbmcgaXQgZG9lcyBub3QgaGF2ZSBncmVhdCBjcm9zcyBicm93c2VyXG4gKiBzdXBwb3J0LlxuICpcbiAqIE5vdGUgMjogVGhpcyBzaG91bGQgb25seSBhcHBseSB0byBub24tY2FyZCBhbmRcbiAqIG5vbi1zaGVldCBtb2RhbHMuIENhcmQgYW5kIHNoZWV0IG1vZGFscyBoYXZlIHRoZWlyXG4gKiBvd24gY3JpdGVyaWEgZm9yIGRpc3BsYXlpbmcgYmFja2Ryb3BzL2JveCBzaGFkb3dzLlxuICpcbiAqIERvIG5vdCB1c2UgOm5vdCgub3ZlcmxheS1oaWRkZW4pIGluIHBsYWNlIG9mXG4gKiAuc2hvdy1tb2RhbCBiZWNhdXNlIHRoYXQgdHJpZ2dlcnMgYSBtZW1vcnlcbiAqIGxlYWsgaW4gQmxpbms6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTE0MTg3NjhcbiAqL1xuaW9uLW1vZGFsLm1vZGFsLWRlZmF1bHQuc2hvdy1tb2RhbCB+IGlvbi1tb2RhbC5tb2RhbC1kZWZhdWx0IHtcbiAgLS1iYWNrZHJvcC1vcGFjaXR5OiAwO1xuICAtLWJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qKlxuICogVGhpcyB3b3JrcyBhcm91bmQgYSBidWcgaW4gV2ViS2l0IHdoZXJlIHRoZVxuICogY29udGVudCB3aWxsIG92ZXJmbG93IG91dHNpZGUgb2YgdGhlIGJvdHRvbSBib3JkZXJcbiAqIHJhZGl1cyB3aGVuIHJlLXBhaW50aW5nLiBBcyBsb25nIGFzIGEgc2luZ2xlXG4gKiBib3JkZXIgcmFkaXVzIHZhbHVlIGlzIHNldCBvbiAuaW9uLXBhZ2UsIHRoaXNcbiAqIGlzc3VlIGRvZXMgbm90IGhhcHBlbi4gV2Ugc2V0IHRoZSB0b3AgbGVmdCByYWRpdXNcbiAqIGhlcmUgYmVjYXVzZSB0aGUgdG9wIGxlZnQgY29ybmVyIHdpbGwgYWx3YXlzIGhhdmUgYVxuICogcmFkaXVzIG5vIG1hdHRlciB0aGUgcGxhdGZvcm0uXG4gKiBUaGlzIGJlaGF2aW9yIG9ubHkgYXBwbGllcyB0byBjYXJkIG1vZGFscy5cbiAqL1xuaHRtbC5pb3MgaW9uLW1vZGFsLm1vZGFsLWNhcmQgLmlvbi1wYWdlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8vIElvbmljIENvbG9yc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdlbmVyYXRlcyB0aGUgY29sb3IgY2xhc3NlcyBhbmQgdmFyaWFibGVzIGJhc2VkIG9uIHRoZVxuLy8gY29sb3JzIG1hcFxuXG5AbWl4aW4gZ2VuZXJhdGUtY29sb3IoJGNvbG9yLW5hbWUpIHtcbiAgJHZhbHVlOiBtYXAtZ2V0KCRjb2xvcnMsICRjb2xvci1uYW1lKTtcblxuICAkYmFzZTogbWFwLWdldCgkdmFsdWUsIGJhc2UpO1xuICAkY29udHJhc3Q6IG1hcC1nZXQoJHZhbHVlLCBjb250cmFzdCk7XG4gICRzaGFkZTogbWFwLWdldCgkdmFsdWUsIHNoYWRlKTtcbiAgJHRpbnQ6IG1hcC1nZXQoJHZhbHVlLCB0aW50KTtcblxuICAtLWlvbi1jb2xvci1iYXNlOiB2YXIoLS1pb24tY29sb3ItI3skY29sb3ItbmFtZX0sICN7JGJhc2V9KSAhaW1wb3J0YW50O1xuICAtLWlvbi1jb2xvci1iYXNlLXJnYjogdmFyKC0taW9uLWNvbG9yLSN7JGNvbG9yLW5hbWV9LXJnYiwgI3tjb2xvci10by1yZ2ItbGlzdCgkYmFzZSl9KSAhaW1wb3J0YW50O1xuICAtLWlvbi1jb2xvci1jb250cmFzdDogdmFyKC0taW9uLWNvbG9yLSN7JGNvbG9yLW5hbWV9LWNvbnRyYXN0LCAjeyRjb250cmFzdH0pICFpbXBvcnRhbnQ7XG4gIC0taW9uLWNvbG9yLWNvbnRyYXN0LXJnYjogdmFyKC0taW9uLWNvbG9yLSN7JGNvbG9yLW5hbWV9LWNvbnRyYXN0LXJnYiwgI3tjb2xvci10by1yZ2ItbGlzdCgkY29udHJhc3QpfSkgIWltcG9ydGFudDtcbiAgLS1pb24tY29sb3Itc2hhZGU6IHZhcigtLWlvbi1jb2xvci0jeyRjb2xvci1uYW1lfS1zaGFkZSwgI3skc2hhZGV9KSAhaW1wb3J0YW50O1xuICAtLWlvbi1jb2xvci10aW50OiB2YXIoLS1pb24tY29sb3ItI3skY29sb3ItbmFtZX0tdGludCwgI3skdGludH0pICFpbXBvcnRhbnQ7XG59XG5cbkBlYWNoICRjb2xvci1uYW1lLCAkdmFsdWUgaW4gJGNvbG9ycyB7XG4gIC5pb24tY29sb3ItI3skY29sb3ItbmFtZX0ge1xuICAgIEBpbmNsdWRlIGdlbmVyYXRlLWNvbG9yKCRjb2xvci1uYW1lKTtcbiAgfVxufVxuXG5cbi8vIFBhZ2UgQ29udGFpbmVyIFN0cnVjdHVyZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmlvbi1wYWdlIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oMCwgMCwgMCwgMCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICBjb250YWluOiBsYXlvdXQgc2l6ZSBzdHlsZTtcbiAgei1pbmRleDogJHotaW5kZXgtcGFnZS1jb250YWluZXI7XG59XG5cbi8qKlxuICogV2hlbiBtYWtpbmcgY3VzdG9tIGRpYWxvZ3MsIHVzaW5nXG4gKiBpb24tY29udGVudCBpcyBub3QgcmVxdWlyZWQuIEFzIGEgcmVzdWx0LFxuICogc29tZSBkZXZlbG9wZXJzIG1heSB3aXNoIHRvIGhhdmUgZGlhbG9nc1xuICogdGhhdCBhcmUgYXV0b21hdGljYWxseSBzaXplZCBieSB0aGUgYnJvd3Nlci5cbiAqIFRoZXNlIGNoYW5nZXMgYWxsb3cgY2VydGFpbiBkaW1lbnNpb24gdmFsdWVzXG4gKiBzdWNoIGFzIGZpdC1jb250ZW50IHRvIHdvcmsgY29ycmVjdGx5LlxuICovXG5pb24tbW9kYWwgPiAuaW9uLXBhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgY29udGFpbjogbGF5b3V0IHN0eWxlO1xuXG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnNwbGl0LXBhbmUtdmlzaWJsZSA+IC5pb24tcGFnZS5zcGxpdC1wYW5lLW1haW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmlvbi1yb3V0ZSxcbmlvbi1yb3V0ZS1yZWRpcmVjdCxcbmlvbi1yb3V0ZXIsXG5pb24tc2VsZWN0LW9wdGlvbixcbmlvbi1uYXYtY29udHJvbGxlcixcbmlvbi1tZW51LWNvbnRyb2xsZXIsXG5pb24tYWN0aW9uLXNoZWV0LWNvbnRyb2xsZXIsXG5pb24tYWxlcnQtY29udHJvbGxlcixcbmlvbi1sb2FkaW5nLWNvbnRyb2xsZXIsXG5pb24tbW9kYWwtY29udHJvbGxlcixcbmlvbi1waWNrZXItY29udHJvbGxlcixcbmlvbi1wb3BvdmVyLWNvbnRyb2xsZXIsXG5pb24tdG9hc3QtY29udHJvbGxlcixcbi5pb24tcGFnZS1oaWRkZW4ge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmlvbi1wYWdlLWludmlzaWJsZSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jYW4tZ28tYmFjayA+IGlvbi1oZWFkZXIgaW9uLWJhY2stYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cblxuLy8gSW9uaWMgU2FmZSBNYXJnaW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5odG1sLnBsdC1pb3MucGx0LWh5YnJpZCwgaHRtbC5wbHQtaW9zLnBsdC1wd2Ege1xuICAtLWlvbi1zdGF0dXNiYXItcGFkZGluZzogMjBweDtcbn1cblxuQHN1cHBvcnRzIChwYWRkaW5nLXRvcDogMjBweCkge1xuICBodG1sIHtcbiAgICAtLWlvbi1zYWZlLWFyZWEtdG9wOiB2YXIoLS1pb24tc3RhdHVzYmFyLXBhZGRpbmcpO1xuICB9XG59XG5cbkBzdXBwb3J0cyAocGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSkge1xuICBodG1sIHtcbiAgICAtLWlvbi1zYWZlLWFyZWEtdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XG4gICAgLS1pb24tc2FmZS1hcmVhLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuICAgIC0taW9uLXNhZmUtYXJlYS1sZWZ0OiBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpO1xuICAgIC0taW9uLXNhZmUtYXJlYS1yaWdodDogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XG4gIH1cbn1cblxuXG4vLyBHbG9iYWwgQ2FyZCBTdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmlvbi1jYXJkLmlvbi1jb2xvciAuaW9uLWluaGVyaXQtY29sb3IsXG5pb24tY2FyZC1oZWFkZXIuaW9uLWNvbG9yIC5pb24taW5oZXJpdC1jb2xvciB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5cbi8vIE1lbnUgU3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubWVudS1jb250ZW50IHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKDAsIDAsIDApKTtcbn1cblxuLm1lbnUtY29udGVudC1vcGVuIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpdHNlbGYgc2hvdWxkIGJlIGNsaWNrYWJsZSBidXRcbiAgICogZXZlcnl0aGluZyBpbnNpZGUgb2YgaXQgc2hvdWxkIG5vdCBjbGlja2FibGUgd2hlbiBtZW51IGlzIG9wZW5cbiAgICpcbiAgICogU2V0dGluZyBwb2ludGVyLWV2ZW50cyBhZnRlciBzY3JvbGxpbmcgaGFzIGFscmVhZHkgc3RhcnRlZFxuICAgKiB3aWxsIG5vdCBjYW5jZWwgc2Nyb2xsaW5nIHdoaWNoIGlzIHdoeSB3ZSBhbHNvIHNldFxuICAgKiBvdmVyZmxvdy15IGJlbG93LlxuICAgKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLyoqXG4gICAqIFRoaXMgYWNjb3VudHMgZm9yIHNjZW5hcmlvcyB3aGVyZSB0aGUgbWFpbiBjb250ZW50IGl0c2VsZlxuICAgKiBpcyBzY3JvbGxhYmxlLlxuICAgKi9cbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuXG4vKipcbiAqIFNldHRpbmcgb3ZlcmZsb3cgY2FuY2VscyBhbnkgaW4tcHJvZ3Jlc3Mgc2Nyb2xsaW5nXG4gKiB3aGVuIHRoZSBtZW51IG9wZW5zLiBUaGlzIHByZXZlbnRzIHVzZXJzIGZyb20gYWNjaWRlbnRhbGx5XG4gKiBzY3JvbGxpbmcgdGhlIG1haW4gY29udGVudCB3aGlsZSBhbHNvIGRyYWdnaW5nIHRoZSBtZW51IG9wZW4uXG4gKiBUaGUgY29kZSBiZWxvdyBhY2NvdW50cyBmb3IgYm90aCBpb24tY29udGVudCBhbmQgdGhlbiBjdXN0b21cbiAqIHNjcm9sbCBjb250YWluZXJzIHdpdGhpbiBpb24tY29udGVudCAoc3VjaCBhcyB2aXJ0dWFsIHNjcm9sbClcbiAqL1xuLm1lbnUtY29udGVudC1vcGVuIGlvbi1jb250ZW50IHtcbiAgLS1vdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWVudS1jb250ZW50LW9wZW4gLmlvbi1jb250ZW50LXNjcm9sbC1ob3N0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmlvcyAubWVudS1jb250ZW50LXJldmVhbCB7XG4gIGJveC1zaGFkb3c6ICRtZW51LWlvcy1ib3gtc2hhZG93LXJldmVhbDtcbn1cblxuW2Rpcj1ydGxdLmlvcyAubWVudS1jb250ZW50LXJldmVhbCB7XG4gIGJveC1zaGFkb3c6ICRtZW51LWlvcy1ib3gtc2hhZG93LXJldmVhbC1ydGw7XG59XG5cbi5pb3MgLm1lbnUtY29udGVudC1wdXNoIHtcbiAgYm94LXNoYWRvdzogJG1lbnUtaW9zLWJveC1zaGFkb3ctcHVzaDtcbn1cblxuLm1kIC5tZW51LWNvbnRlbnQtcmV2ZWFsIHtcbiAgYm94LXNoYWRvdzogJG1lbnUtbWQtYm94LXNoYWRvdztcbn1cblxuLm1kIC5tZW51LWNvbnRlbnQtcHVzaCB7XG4gIGJveC1zaGFkb3c6ICRtZW51LW1kLWJveC1zaGFkb3c7XG59XG5cbi8vIEFjY29yZGlvbiBTdHlsZXNcbmlvbi1hY2NvcmRpb24tZ3JvdXAuYWNjb3JkaW9uLWdyb3VwLWV4cGFuZC1pbnNldCA+IGlvbi1hY2NvcmRpb246Zmlyc3Qtb2YtdHlwZSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbn1cbmlvbi1hY2NvcmRpb24tZ3JvdXAuYWNjb3JkaW9uLWdyb3VwLWV4cGFuZC1pbnNldCA+IGlvbi1hY2NvcmRpb246bGFzdC1vZi10eXBlIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4O1xufVxuaW9uLWFjY29yZGlvbi1ncm91cCA+IGlvbi1hY2NvcmRpb246bGFzdC1vZi10eXBlIGlvbi1pdGVtW3Nsb3Q9XCJoZWFkZXJcIl0ge1xuICAtLWJvcmRlci13aWR0aDogMHB4O1xufVxuXG5pb24tYWNjb3JkaW9uLmFjY29yZGlvbi1hbmltYXRlZCA+IFtzbG90PVwiaGVhZGVyXCJdIC5pb24tYWNjb3JkaW9uLXRvZ2dsZS1pY29uIHtcbiAgdHJhbnNpdGlvbjogMzAwbXMgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIGlvbi1hY2NvcmRpb24gLmlvbi1hY2NvcmRpb24tdG9nZ2xlLWljb24ge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqXG4gKiBUaGUgPiBbc2xvdD1cImhlYWRlclwiXSBzZWxlY3RvciBlbnN1cmVzIHRoYXQgd2UgZG9cbiAqIG5vdCBtb2RpZnkgdG9nZ2xlIGljb25zIGZvciBhbnkgbmVzdGVkIGFjY29yZGlvbnMuIFRoZSBzdGF0ZVxuICogb2Ygb25lIGFjY29yZGlvbiBzaG91bGQgbm90IGFmZmVjdCBhbnkgYWNjb3JkaW9ucyBpbnNpZGVcbiAqIG9mIGEgbmVzdGVkIGFjY29yZGlvbiBncm91cC5cbiAqL1xuaW9uLWFjY29yZGlvbi5hY2NvcmRpb24tZXhwYW5kaW5nID4gW3Nsb3Q9XCJoZWFkZXJcIl0gLmlvbi1hY2NvcmRpb24tdG9nZ2xlLWljb24sXG5pb24tYWNjb3JkaW9uLmFjY29yZGlvbi1leHBhbmRlZCA+IFtzbG90PVwiaGVhZGVyXCJdIC5pb24tYWNjb3JkaW9uLXRvZ2dsZS1pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuaW9uLWFjY29yZGlvbi1ncm91cC5hY2NvcmRpb24tZ3JvdXAtZXhwYW5kLWluc2V0Lm1kID4gaW9uLWFjY29yZGlvbi5hY2NvcmRpb24tcHJldmlvdXMgaW9uLWl0ZW1bc2xvdD1cImhlYWRlclwiXSB7XG4gIC0tYm9yZGVyLXdpZHRoOiAwcHg7XG4gIC0taW5uZXItYm9yZGVyLXdpZHRoOiAwcHg7XG59XG5cbmlvbi1hY2NvcmRpb24tZ3JvdXAuYWNjb3JkaW9uLWdyb3VwLWV4cGFuZC1pbnNldC5tZCA+IGlvbi1hY2NvcmRpb24uYWNjb3JkaW9uLWV4cGFuZGluZzpmaXJzdC1vZi10eXBlLFxuaW9uLWFjY29yZGlvbi1ncm91cC5hY2NvcmRpb24tZ3JvdXAtZXhwYW5kLWluc2V0Lm1kID4gaW9uLWFjY29yZGlvbi5hY2NvcmRpb24tZXhwYW5kZWQ6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi8vIFNhZmFyaS9pT1MgMTUgY2hhbmdlcyB0aGUgYXBwZWFyYW5jZSBvZiBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmcm9tIElvbmljIDUvU2FmYXJpIDE0IGRlc2lnbnMsXG4vLyB3ZSBvdmVycmlkZSB0aGUgYXBwZWFyYW5jZSBvbmx5IHdoZW4gdXNpbmcgd2l0aGluIGFuIGlvbi1pbnB1dC5cbmlvbi1pbnB1dCBpbnB1dDo6LXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIHtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG59XG5cbi8qKlxuICogVGhlIC5pb24tZGF0ZXRpbWUtYnV0dG9uLW92ZXJsYXkgY2xhc3MgY29udGFpbnNcbiAqIHN0eWxlcyB0aGF0IGFsbG93IGFueSBtb2RhbC9wb3BvdmVyIHRvIGJlXG4gKiBzaXplZCBhY2NvcmRpbmcgdG8gdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGRhdGV0aW1lXG4gKiB3aGVuIHVzZWQgd2l0aCBpb24tZGF0ZXRpbWUtYnV0dG9uLlxuICovXG4uaW9uLWRhdGV0aW1lLWJ1dHRvbi1vdmVybGF5IHtcbiAgLS13aWR0aDogZml0LWNvbnRlbnQ7XG4gIC0taGVpZ2h0OiBmaXQtY29udGVudDtcbn1cblxuLyoqXG4gKiBUaGUgZ3JpZCB2YXJpYW50IGNhbiBzY2FsZSBkb3duIHdoZW4gaW5saW5lLlxuICogV2hlbiB1c2VkIGluIGEgYGZpdC1jb250ZW50YCBvdmVybGF5LCB0aGlzIGNhdXNlc1xuICogdGhlIG92ZXJsYXkgdG8gc2hyaW5rIHdoZW4gdGhlIG1vbnRoL3llYXIgcGlja2VyIGlzIG9wZW4uXG4gKiBFeHBsaWNpdGx5IHNldHRpbmcgdGhlIGRpbWVuc2lvbnMgbGV0cyB1cyBoYXZlIGEgY29uc2lzdGVudGx5XG4gKiBzaXplZCBncmlkIGludGVyZmFjZS5cbiAqL1xuLmlvbi1kYXRldGltZS1idXR0b24tb3ZlcmxheSBpb24tZGF0ZXRpbWUuZGF0ZXRpbWUtZ3JpZCB7XG4gIHdpZHRoOiAzMjBweDtcbiAgbWluLWhlaWdodDogMzIwcHg7XG59XG5cbi8qKlxuICogSWYgYSBwb3BvdmVyIGhhcyBhIGNoaWxkIGlvbi1jb250ZW50IChvciBjbGFzcyBlcXVpdmFsZW50KSB0aGVuIHRoZSAucG9wb3Zlci12aWV3cG9ydCBlbGVtZW50XG4gKiBzaG91bGQgbm90IGJlIHNjcm9sbGFibGUgdG8gZW5zdXJlIHRoZSBpbm5lciBjb250ZW50IGRvZXMgc2Nyb2xsLiBIb3dldmVyLCBpZiB0aGUgcG9wb3ZlclxuICogZG9lcyBub3QgaGF2ZSBhIGNoaWxkIGlvbi1jb250ZW50IChvciBjbGFzcyBlcXVpdmFsZW50KSB0aGVuIHRoZSAucG9wb3Zlci12aWV3cG9ydCBlbGVtZW50XG4gKiBzaG91bGQgcmVtYWluIHNjcm9sbGFibGUuIFRoaXMgY29kZSBleGlzdHMgZ2xvYmFsbHkgYmVjYXVzZSBwb3BvdmVyIHRhcmdldHNcbiAqIC5wb3BvdmVyLXZpZXdwb3J0IHVzaW5nIDo6c2xvdHRlZCB3aGljaCBvbmx5IHN1cHBvcnRzIHNpbXBsZSBzZWxlY3RvcnMuXG4gKlxuICogTm90ZSB0aGF0IHdlIGRvIG5vdCBuZWVkIHRvIGFjY291bnQgZm9yIC5pb24tY29udGVudC1zY3JvbGwtaG9zdCBoZXJlIGJlY2F1c2UgdGhhdFxuICogY2xhc3Mgc2hvdWxkIGFsd2F5cyBiZSBwbGFjZWQgd2l0aGluIGlvbi1jb250ZW50IGV2ZW4gaWYgaW9uLWNvbnRlbnQgaXMgbm90IHNjcm9sbGFibGUuXG4gKi9cbi5wb3BvdmVyLXZpZXdwb3J0Omhhcyg+IGlvbi1jb250ZW50KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qKlxuICogOmhhcyBoYXMgY3Jvc3MtYnJvd3NlciBzdXBwb3J0LCBidXQgaXQgaXMgc3RpbGwgcmVsYXRpdmVseSBuZXcuIEFzIGEgcmVzdWx0LFxuICogd2Ugc2hvdWxkIGZhbGxiYWNrIHRvIHRoZSBvbGQgYmVoYXZpb3IgZm9yIGVudmlyb25tZW50cyB0aGF0IGRvIG5vdCBzdXBwb3J0IDpoYXMuXG4gKiBEZXZlbG9wZXJzIGNhbiBleHBsaWNpdGx5IGVuYWJsZSB0aGlzIGJlaGF2aW9yIGJ5IHNldHRpbmcgb3ZlcmZsb3c6IHZpc2libGVcbiAqIG9uIC5wb3BvdmVyLXZpZXdwb3J0IGlmIHRoZXkga25vdyB0aGV5IGFyZSBub3QgZ29pbmcgdG8gdXNlIGFuIGlvbi1jb250ZW50LlxuICogVE9ETyBGVy02MTA2IFJlbW92ZSB0aGlzXG4gKi9cbkBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmhhcyg+IGlvbi1jb250ZW50KSkge1xuICAucG9wb3Zlci12aWV3cG9ydCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiXG4vKipcbiAqIEEgaGV1cmlzdGljIHRoYXQgYXBwbGllcyBDU1MgdG8gdGFibGV0XG4gKiB2aWV3cG9ydHMuXG4gKlxuICogVXNhZ2U6XG4gKiBAaW5jbHVkZSB0YWJsZXQtdmlld3BvcnQoKSB7XG4gKiAgIDpob3N0IHtcbiAqICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjtcbiAqICAgfVxuICogfVxuICovXG5AbWl4aW4gdGFibGV0LXZpZXdwb3J0KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qKlxuICogQSBoZXVyaXN0aWMgdGhhdCBhcHBsaWVzIENTUyB0byBtb2JpbGVcbiAqIHZpZXdwb3J0cyAoaS5lLiBwaG9uZXMsIG5vdCB0YWJsZXRzKS5cbiAqXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIG1vYmlsZS12aWV3cG9ydCgpIHtcbiAqICAgOmhvc3Qge1xuICogICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7XG4gKiAgIH1cbiAqIH1cbiAqL1xuQG1peGluIG1vYmlsZS12aWV3cG9ydCgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW5wdXQtY292ZXIoKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKDAsIG51bGwsIG51bGwsIDApO1xuICBAaW5jbHVkZSBtYXJnaW4oMCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4oKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcblxuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuXG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbkBtaXhpbiB0ZXh0LWluaGVyaXQoKSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LWluZGVudDogaW5oZXJpdDtcbiAgdGV4dC1vdmVyZmxvdzogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIGJ1dHRvbi1zdGF0ZSgpIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oMCwgMCwgMCwgMCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIGNvbnRlbnQ6IFwiXCI7XG5cbiAgb3BhY2l0eTogMDtcbn1cblxuLy8gRm9udCBzbW9vdGhpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBmb250LXNtb290aGluZygpIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi8vIEdldCB0aGUga2V5IGZyb20gYSBtYXAgYmFzZWQgb24gdGhlIGluZGV4XG5AZnVuY3Rpb24gaW5kZXgtdG8ta2V5KCRtYXAsICRpbmRleCkge1xuICAka2V5czogbWFwLWtleXMoJG1hcCk7XG5cbiAgQHJldHVybiBudGgoJGtleXMsICRpbmRleCk7XG59XG5cblxuLy8gQnJlYWtwb2ludCBNaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJHNjcmVlbi1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcblxuICBAcmV0dXJuIGlmKCRuYW1lICE9IGluZGV4LXRvLWtleSgkYnJlYWtwb2ludHMsIDEpLCAkbWluLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbmZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJHNjcmVlbi1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXHQvLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVx0Ly8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8vIFRleHQgRGlyZWN0aW9uIC0gbHRyIC8gcnRsXG4vL1xuLy8gQ1NTIGRlZmF1bHRzIHRvIHVzZSB0aGUgbHRyIGNzcywgYW5kIGFkZHMgW2Rpcj1ydGxdIHNlbGVjdG9yc1xuLy8gdG8gb3ZlcnJpZGUgbHRyIGRlZmF1bHRzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gbXVsdGktZGlyKCkge1xuICBAY29udGVudDtcblxuICAvLyAkcm9vdDogI3smfTtcbiAgLy8gQGF0LXJvb3QgW2Rpcl0ge1xuICAvLyAgICN7JHJvb3R9IHtcbiAgLy8gICAgIEBjb250ZW50O1xuICAvLyAgIH1cbiAgLy8gfVxufVxuXG5AbWl4aW4gcnRsKCkge1xuICAkcm9vdDogI3smfTtcblxuICAkcm9vdFNwbGl0OiBzdHItc3BsaXQoJHJvb3QsIFwiLFwiKTtcbiAgJHNlbGVjdG9yczogI3thZGQtcm9vdC1zZWxlY3Rvcigkcm9vdCwgXCJbZGlyPXJ0bF1cIil9O1xuICAkc2VsZWN0b3JzU3BsaXQ6IHN0ci1zcGxpdCgkc2VsZWN0b3JzLCBcIixcIik7XG5cbiAgJGhvc3RDb250ZXh0U2VsZWN0b3JzOiAoKTtcbiAgJHJlc3RTZWxlY3RvcnM6ICgpO1xuICAkZGlyU2VsZWN0b3JzOiAoKTtcblxuICAvLyBTZWxlY3RvcnMgbXVzdCBiZSBzcGxpdCBpbnRvIGluZGl2aWR1YWwgc2VsZWN0b3JzIGluIGNhc2UgdGhlIGJyb3dzZXJcbiAgLy8gZG9lc24ndCBzdXBwb3J0IGEgc3BlY2lmaWMgc2VsZWN0b3IuXG4gIC8vIEZvciBleGFtcGxlLCBGaXJlZm94IGFuZCBTYWZhcmkgZG9lc24ndCBzdXBwb3J0IGA6aG9zdC1jb250ZXh0KClgLlxuICAvLyBJZiBhbiBpbnZhbGlkIHNlbGVjdG9yIGlzIHVzZWQsIHRoZW4gdGhlIGVudGlyZSBncm91cCBvZiBzZWxlY3RvcnNcbiAgLy8gd2lsbCBiZSBpZ25vcmVkLlxuICAvLyBAbGluayBodHRwczovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLTMvI2dyb3VwaW5nXG4gIEBlYWNoICRzZWxlY3RvciBpbiAkc2VsZWN0b3JzU3BsaXQge1xuICAgIC8vIEdyb3VwIHRoZSBzZWxlY3RvcnMgYmFjayBpbnRvIGEgc2luZ2xlIHNlbGVjdG9yIHRvIG9wdGltaXplIHRoZSBvdXRwdXQuXG4gICAgQGlmIHN0ci1pbmRleCgkc2VsZWN0b3IsIFwiOmhvc3QtY29udGV4dFwiKSB7XG4gICAgICAkaG9zdENvbnRleHRTZWxlY3RvcnM6IGFwcGVuZCgkaG9zdENvbnRleHRTZWxlY3RvcnMsICRzZWxlY3RvciwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gR3JvdXAgdGhlIHNlbGVjdG9ycyBiYWNrIGludG8gYSBzaW5nbGUgc2VsZWN0b3IgdG8gb3B0aW1pemUgdGhlIG91dHB1dC5cbiAgICAgICRyZXN0U2VsZWN0b3JzOiBhcHBlbmQoJHJlc3RTZWxlY3RvcnMsICRzZWxlY3RvciwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN1cHBvcnRlZCBieSBDaHJvbWUuXG4gIEBpZiBsZW5ndGgoJGhvc3RDb250ZXh0U2VsZWN0b3JzKSA+IDAge1xuICAgIEBhdC1yb290ICN7JGhvc3RDb250ZXh0U2VsZWN0b3JzfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBTdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzLlxuICBAaWYgbGVuZ3RoKCRyZXN0U2VsZWN0b3JzKSA+IDAge1xuICAgIEBhdC1yb290ICN7JHJlc3RTZWxlY3RvcnN9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIGJyb3dzZXIgY2FuIHN1cHBvcnQgYDpkaXIoKWAsIHRoZW4gYWRkIHRoZSBgOmRpcigpYCBzZWxlY3RvcnMuXG4gIEBzdXBwb3J0cyBzZWxlY3Rvcig6ZGlyKHJ0bCkpIHtcbiAgICAvLyBBZGRpbmcgOmRpcigpIGluIGNhc2UgdGhlIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGA6aG9zdC1jb250ZXh0KClgIGFuZCBkb2VzIHN1cHBvcnQgYDpkaXIoKWAuXG4gICAgLy8gYDpob3N0LWNvbnRleHQoKWAgaXMgYWRkZWQ6XG4gICAgLy8gLSB0aHJvdWdoIHRoZSBgYWRkLXJvb3Qtc2VsZWN0b3IoKWAgZnVuY3Rpb24uXG4gICAgLy8gLSBmaXJzdCBzbyB0aGF0IGl0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBgOmRpcigpYC5cbiAgICAvLyBGb3IgZXhhbXBsZSxcbiAgICAvLyAtIEZpcmVmb3ggZG9lc24ndCBzdXBwb3J0IGA6aG9zdC1jb250ZXh0KClgLCBidXQgZG9lcyBzdXBwb3J0IGA6ZGlyKClgLlxuICAgIC8vIC0gU2FmYXJpIGRvZXNuJ3Qgc3VwcG9ydCBgOmhvc3QtY29udGV4dCgpYCwgYnV0IFNhZmFyaSAxNi40KyBzdXBwb3J0cyBgOmRpcigpYFxuICAgIC8vIEBsaW5rIGh0dHBzOi8vd2Via2l0Lm9yZy9ibG9nLzEzOTY2L3dlYmtpdC1mZWF0dXJlcy1pbi1zYWZhcmktMTYtNC9cbiAgICAvLyAtLSBIb3dldmVyLCB0aGVyZSBpcyBhIFdlYmtpdCBidWcgb24gdjE2IHRoYXQgcHJldmVudHMgYDpkaXIoKWAgZnJvbSB3b3JraW5nIHdoZW5cbiAgICAvLyAtLSB0aGUgYXBwIGRpcmVjdGlvbiBpcyBjaGFuZ2VkIGR5bmFtaWNhbGx5LiB2MTcrIHdvcmtzIGZpbmUuXG4gICAgLy8gLS0gQGxpbmsgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NzEzM1xuXG4gICAgLy8gU3VwcG9ydGVkIGJ5IEZpcmVmb3guXG4gICAgQGF0LXJvb3QgI3thZGQtcm9vdC1zZWxlY3Rvcigkcm9vdCwgXCI6ZGlyKHJ0bClcIiwgZmFsc2UpfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGx0cigpIHtcbiAgQGNvbnRlbnQ7XG59XG5cblxuLy8gU1ZHIEJhY2tncm91bmQgSW1hZ2UgTWl4aW5cbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3ZnXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gc3ZnLWJhY2tncm91bmQtaW1hZ2UoJHN2ZywgJGZsaXAtcnRsOiBmYWxzZSkge1xuICAkdXJsOiB1cmwtZW5jb2RlKCRzdmcpO1xuICAkdmlld0JveDogc3RyLXNwbGl0KHN0ci1leHRyYWN0KCRzdmcsIFwidmlld0JveD0nXCIsIFwiJ1wiKSwgXCIgXCIpO1xuXG4gIEBpZiAkZmxpcC1ydGwgIT0gdHJ1ZSBvciAkdmlld0JveCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtdWx0aS1kaXIoKSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwjeyR1cmx9XCIpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHRyYW5zZm9ybTogXCJ0cmFuc2Zvcm09J3RyYW5zbGF0ZSgje250aCgkdmlld0JveCwgMyl9LCAwKSBzY2FsZSgtMSwgMSknXCI7XG4gICAgJGZsaXBwZWQtdXJsOiAkc3ZnO1xuICAgICRmbGlwcGVkLXVybDogc3RyLXJlcGxhY2UoJGZsaXBwZWQtdXJsLCBcIjxwYXRoXCIsIFwiPHBhdGggI3skdHJhbnNmb3JtfVwiKTtcbiAgICAkZmxpcHBlZC11cmw6IHN0ci1yZXBsYWNlKCRmbGlwcGVkLXVybCwgXCI8bGluZVwiLCBcIjxsaW5lICN7JHRyYW5zZm9ybX1cIik7XG4gICAgJGZsaXBwZWQtdXJsOiBzdHItcmVwbGFjZSgkZmxpcHBlZC11cmwsIFwiPHBvbHlnb25cIiwgXCI8cG9seWdvbiAjeyR0cmFuc2Zvcm19XCIpO1xuICAgICRmbGlwcGVkLXVybDogdXJsLWVuY29kZSgkZmxpcHBlZC11cmwpO1xuXG4gICAgQGluY2x1ZGUgbHRyICgpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCN7JHVybH1cIik7XG4gICAgfVxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCN7JGZsaXBwZWQtdXJsfVwiKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkIHByb3BlcnR5IGhvcml6b250YWxcbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkZW5kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gcHJvcGVydHktaG9yaXpvbnRhbCgkcHJvcCwgJHN0YXJ0LCAkZW5kOiAkc3RhcnQpIHtcbiAgQGlmICRzdGFydCA9PSAwIGFuZCAkZW5kID09IDAge1xuICAgICN7JHByb3B9LWxlZnQ6ICRzdGFydDtcbiAgICAjeyRwcm9wfS1yaWdodDogJGVuZDtcblxuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LSN7JHByb3B9LXN0YXJ0OiAkc3RhcnQ7XG4gICAgI3skcHJvcH0taW5saW5lLXN0YXJ0OiAkc3RhcnQ7XG4gICAgLXdlYmtpdC0jeyRwcm9wfS1lbmQ6ICRlbmQ7XG4gICAgI3skcHJvcH0taW5saW5lLWVuZDogJGVuZDtcbiAgfVxufVxuXG4vLyBBZGQgcHJvcGVydHkgZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJHByb3Bcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdG9wXG4vLyBAcGFyYW0ge3N0cmluZ30gJGVuZFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRib3R0b21cbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnRcbi8vIEBwYXJhbSB7Ym9vbGVhbn0gJGNvbnRlbnQgaW5jbHVkZSBjb250ZW50IG9yIHVzZSBkZWZhdWx0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gcHJvcGVydHkoJHByb3AsICR0b3AsICRlbmQ6ICR0b3AsICRib3R0b206ICR0b3AsICRzdGFydDogJGVuZCkge1xuICBAaW5jbHVkZSBwcm9wZXJ0eS1ob3Jpem9udGFsKCRwcm9wLCAkc3RhcnQsICRlbmQpO1xuICAjeyRwcm9wfS10b3A6ICR0b3A7XG4gICN7JHByb3B9LWJvdHRvbTogJGJvdHRvbTtcbn1cblxuLy8gQWRkIHBhZGRpbmcgaG9yaXpvbnRhbFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRzdGFydFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRlbmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwYWRkaW5nLWhvcml6b250YWwoJHN0YXJ0LCAkZW5kOiAkc3RhcnQpIHtcbiAgQGluY2x1ZGUgcHJvcGVydHktaG9yaXpvbnRhbChwYWRkaW5nLCAkc3RhcnQsICRlbmQpO1xufVxuXG4vLyBBZGQgcGFkZGluZyBmb3IgYWxsIGRpcmVjdGlvbnNcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdG9wXG4vLyBAcGFyYW0ge3N0cmluZ30gJGVuZFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRib3R0b21cbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwYWRkaW5nKCR0b3AsICRlbmQ6ICR0b3AsICRib3R0b206ICR0b3AsICRzdGFydDogJGVuZCkge1xuICBAaW5jbHVkZSBwcm9wZXJ0eShwYWRkaW5nLCAkdG9wLCAkZW5kLCAkYm90dG9tLCAkc3RhcnQpO1xufVxuXG4vLyBBZGQgbWFyZ2luIGhvcml6b250YWxcbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkZW5kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbWFyZ2luLWhvcml6b250YWwoJHN0YXJ0LCAkZW5kOiAkc3RhcnQpIHtcbiAgQGluY2x1ZGUgcHJvcGVydHktaG9yaXpvbnRhbChtYXJnaW4sICRzdGFydCwgJGVuZCk7XG59XG5cbi8vIEFkZCBtYXJnaW4gZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJHRvcFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRlbmRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkYm90dG9tXG4vLyBAcGFyYW0ge3N0cmluZ30gJHN0YXJ0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbWFyZ2luKCR0b3AsICRlbmQ6ICR0b3AsICRib3R0b206ICR0b3AsICRzdGFydDogJGVuZCkge1xuICBAaW5jbHVkZSBwcm9wZXJ0eShtYXJnaW4sICR0b3AsICRlbmQsICRib3R0b20sICRzdGFydCk7XG59XG5cbi8vIEFkZCBwb3NpdGlvbiBob3Jpem9udGFsXG4vLyBAcGFyYW0ge3N0cmluZ30gJHN0YXJ0IC0gYW1vdW50IHRvIHBvc2l0aW9uIHN0YXJ0XG4vLyBAcGFyYW0ge3N0cmluZ30gJGVuZCAtIGFtb3VudCB0byBsZWZ0OiAwOyBlbmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwb3NpdGlvbi1ob3Jpem9udGFsKCRzdGFydDogbnVsbCwgJGVuZDogbnVsbCkge1xuICBAaWYgJHN0YXJ0ID09ICRlbmQge1xuICAgIEBpbmNsdWRlIG11bHRpLWRpcigpIHtcbiAgICAgIGxlZnQ6ICRzdGFydDtcbiAgICAgIHJpZ2h0OiAkZW5kO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQHN1cHBvcnRzIChpbnNldC1pbmxpbmUtc3RhcnQ6IDApIHtcbiAgICAgICAgJiB7XG4gICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAkc3RhcnQ7XG4gICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogJGVuZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE8gRlctMzc2NlxuICAgIEBhdC1yb290IHtcbiAgICAgIEBzdXBwb3J0cyBub3QgKGluc2V0LWlubGluZS1zdGFydDogMCkge1xuICAgICAgICAmIHtcbiAgICAgICAgICBAaW5jbHVkZSBsdHIoKSB7XG4gICAgICAgICAgICBsZWZ0OiAkc3RhcnQ7XG4gICAgICAgICAgICByaWdodDogJGVuZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgcnRsKCkge1xuICAgICAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgICAgICByaWdodDogdW5zZXQ7XG5cbiAgICAgICAgICAgIGxlZnQ6ICRlbmQ7XG4gICAgICAgICAgICByaWdodDogJHN0YXJ0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBZGQgcG9zaXRpb24gZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJHRvcFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRlbmRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkYm90dG9tXG4vLyBAcGFyYW0ge3N0cmluZ30gJHN0YXJ0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gcG9zaXRpb24oJHRvcDogbnVsbCwgJGVuZDogbnVsbCwgJGJvdHRvbTogbnVsbCwgJHN0YXJ0OiBudWxsKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uLWhvcml6b250YWwoJHN0YXJ0LCAkZW5kKTtcbiAgdG9wOiAkdG9wO1xuICBib3R0b206ICRib3R0b207XG59XG5cbi8vIEFkZCBib3JkZXIgZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJHRvcFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRlbmRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkYm90dG9tXG4vLyBAcGFyYW0ge3N0cmluZ30gJHN0YXJ0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gYm9yZGVyKCR0b3AsICRlbmQ6ICR0b3AsICRib3R0b206ICR0b3AsICRzdGFydDogJGVuZCkge1xuICBAaW5jbHVkZSBwcm9wZXJ0eShib3JkZXIsICR0b3AsICRlbmQsICRib3R0b20sICRzdGFydCk7XG59XG5cbi8vIEFkZCBib3JkZXIgcmFkaXVzIGZvciBhbGwgZGlyZWN0aW9uc1xuLy8gQHBhcmFtIHtzdHJpbmd9ICR0b3Atc3RhcnRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdG9wLWVuZFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRib3R0b20tZW5kXG4vLyBAcGFyYW0ge3N0cmluZ30gJGJvdHRvbS1zdGFydFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGJvcmRlci1yYWRpdXMoJHRvcC1zdGFydCwgJHRvcC1lbmQ6ICR0b3Atc3RhcnQsICRib3R0b20tZW5kOiAkdG9wLXN0YXJ0LCAkYm90dG9tLXN0YXJ0OiAkdG9wLWVuZCkge1xuICBAaWYgJHRvcC1zdGFydCA9PSAkdG9wLWVuZCBhbmQgJHRvcC1zdGFydCA9PSAkYm90dG9tLWVuZCBhbmQgJHRvcC1zdGFydCA9PSAkYm90dG9tLXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBtdWx0aS1kaXIoKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkdG9wLXN0YXJ0O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbHRyKCkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHRvcC1zdGFydDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkdG9wLWVuZDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm90dG9tLWVuZDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3R0b20tc3RhcnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcnRsKCkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHRvcC1lbmQ7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHRvcC1zdGFydDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm90dG9tLXN0YXJ0O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvdHRvbS1lbmQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZCBkaXJlY3Rpb24gZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJGRpciAtIERpcmVjdGlvbiBvbiBMVFJcbkBtaXhpbiBkaXJlY3Rpb24oJGRpcikge1xuICAkb3RoZXItZGlyOiBudWxsO1xuXG4gIEBpZiAkZGlyID09IGx0ciB7XG4gICAgJG90aGVyLWRpcjogcnRsO1xuICB9IEBlbHNlIHtcbiAgICAkb3RoZXItZGlyOiBsdHI7XG4gIH1cblxuICBAaW5jbHVkZSBsdHIoKSB7XG4gICAgZGlyZWN0aW9uOiAkZGlyO1xuICB9XG4gIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICBkaXJlY3Rpb246ICRvdGhlci1kaXI7XG4gIH1cbn1cblxuLy8gQWRkIGZsb2F0IGZvciBhbGwgZGlyZWN0aW9uc1xuLy8gQHBhcmFtIHtzdHJpbmd9ICRzaWRlXG4vLyBAcGFyYW0ge3N0cmluZ30gJGRlY29yYXRvciAtICFpbXBvcnRhbnRcbkBtaXhpbiBmbG9hdCgkc2lkZSwgJGRlY29yYXRvcjogbnVsbCkge1xuICBAaWYgJHNpZGUgPT0gc3RhcnQge1xuICAgIEBpbmNsdWRlIGx0cigpIHtcbiAgICAgIGZsb2F0OiBsZWZ0ICRkZWNvcmF0b3I7XG4gICAgfVxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIGZsb2F0OiByaWdodCAkZGVjb3JhdG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkc2lkZSA9PSBlbmQge1xuICAgIEBpbmNsdWRlIGx0cigpIHtcbiAgICAgIGZsb2F0OiByaWdodCAkZGVjb3JhdG9yO1xuICAgIH1cbiAgICBAaW5jbHVkZSBydGwoKSB7XG4gICAgICBmbG9hdDogbGVmdCAkZGVjb3JhdG9yO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbXVsdGktZGlyKCkge1xuICAgICAgZmxvYXQ6ICRzaWRlICRkZWNvcmF0b3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLXBvc2l0aW9uKCRob3Jpem9udGFsLCAkaG9yaXpvbnRhbC1hbW91bnQ6IG51bGwsICR2ZXJ0aWNhbDogbnVsbCwgJHZlcnRpY2FsLWFtb3VudDogbnVsbCkge1xuICBAaWYgJGhvcml6b250YWwgPT0gc3RhcnQgb3IgJGhvcml6b250YWwgPT0gZW5kIHtcbiAgICAkaG9yaXpvbnRhbC1sdHI6IG51bGw7XG4gICAgJGhvcml6b250YWwtcnRsOiBudWxsO1xuICAgIEBpZiAkaG9yaXpvbnRhbCA9PSBzdGFydCB7XG4gICAgICAkaG9yaXpvbnRhbC1sdHI6IGxlZnQ7XG4gICAgICAkaG9yaXpvbnRhbC1ydGw6IHJpZ2h0O1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGhvcml6b250YWwtbHRyOiByaWdodDtcbiAgICAgICRob3Jpem9udGFsLXJ0bDogbGVmdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsdHIoKSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkaG9yaXpvbnRhbC1sdHIgJGhvcml6b250YWwtYW1vdW50ICR2ZXJ0aWNhbCAkdmVydGljYWwtYW1vdW50O1xuICAgIH1cbiAgICBAaW5jbHVkZSBydGwoKSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkaG9yaXpvbnRhbC1ydGwgJGhvcml6b250YWwtYW1vdW50ICR2ZXJ0aWNhbCAkdmVydGljYWwtYW1vdW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbXVsdGktZGlyKCkge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGhvcml6b250YWwgJGhvcml6b250YWwtYW1vdW50ICR2ZXJ0aWNhbCAkdmVydGljYWwtYW1vdW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkeC1heGlzLCAkeS1heGlzOiBudWxsKSB7XG4gIEBpZiAkeC1heGlzID09IHN0YXJ0IHtcbiAgICBAaW5jbHVkZSBsdHIoKSB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0ICR5LWF4aXM7XG4gICAgfVxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0ICR5LWF4aXM7XG4gICAgfVxuICB9IEBlbHNlIGlmICR4LWF4aXMgPT0gZW5kIHtcbiAgICBAaW5jbHVkZSBsdHIoKSB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCAkeS1heGlzO1xuICAgIH1cbiAgICBAaW5jbHVkZSBydGwoKSB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0ICR5LWF4aXM7XG4gICAgfVxuICB9IEBlbHNlIGlmICR4LWF4aXMgPT0gbGVmdCBvciAkeC1heGlzID09IHJpZ2h0IHtcbiAgICBAaW5jbHVkZSBtdWx0aS1kaXIoKSB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAkeC1heGlzICR5LWF4aXM7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBsdHIoKSB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAkeC1heGlzICR5LWF4aXM7XG4gICAgfVxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNhbGMoMTAwJSAtICN7JHgtYXhpc30pICR5LWF4aXM7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZCB0cmFuc2Zvcm0gZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJHRyYW5zZm9ybXMgLSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB0cmFuc2Zvcm1zXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zLi4uKSB7XG4gICRleHRyYTogbnVsbDtcblxuICAkeDogbnVsbDtcbiAgJGx0ci10cmFuc2xhdGU6IG51bGw7XG4gICRydGwtdHJhbnNsYXRlOiBudWxsO1xuXG4gIEBlYWNoICR0cmFuc2Zvcm0gaW4gJHRyYW5zZm9ybXMge1xuICAgIEBpZiAoc3RyLWluZGV4KCR0cmFuc2Zvcm0sIHRyYW5zbGF0ZTNkKSkge1xuICAgICAgJHRyYW5zZm9ybTogc3RyLXJlcGxhY2UoJHRyYW5zZm9ybSwgJ3RyYW5zbGF0ZTNkKCcpO1xuICAgICAgJHRyYW5zZm9ybTogc3RyLXJlcGxhY2UoJHRyYW5zZm9ybSwgJyknKTtcblxuICAgICAgJGNvb3JkaW5hdGVzOiBzdHItc3BsaXQoJHRyYW5zZm9ybSwgJywnKTtcblxuICAgICAgJHg6IG50aCgkY29vcmRpbmF0ZXMsIDEpO1xuICAgICAgJHk6IG50aCgkY29vcmRpbmF0ZXMsIDIpO1xuICAgICAgJHo6IG50aCgkY29vcmRpbmF0ZXMsIDMpO1xuXG4gICAgICAkbHRyLXRyYW5zbGF0ZTogdHJhbnNsYXRlM2QoJHgsICR5LCAkeik7XG4gICAgICAkcnRsLXRyYW5zbGF0ZTogdHJhbnNsYXRlM2QoY2FsYygtMSAqICN7JHh9KSwgJHksICR6KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkZXh0cmEgPT0gbnVsbCB7XG4gICAgICAgICRleHRyYTogJHRyYW5zZm9ybTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkZXh0cmE6ICRleHRyYSAkdHJhbnNmb3JtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkeCA9PSAnMCcgb3IgJHggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbXVsdGktZGlyKCkge1xuICAgICAgdHJhbnNmb3JtOiAkbHRyLXRyYW5zbGF0ZSAkZXh0cmE7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBsdHIoKSB7XG4gICAgICB0cmFuc2Zvcm06ICRsdHItdHJhbnNsYXRlICRleHRyYTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBydGwoKSB7XG4gICAgICB0cmFuc2Zvcm06ICRydGwtdHJhbnNsYXRlICRleHRyYTtcbiAgICB9XG4gIH1cbn1cbiIsIlxuLy8gR2xvYmFsIFV0aWxpdHkgRnVuY3Rpb25zXG5AaW1wb3J0IFwiLi9pb25pYy5mdW5jdGlvbnMuc3RyaW5nXCI7XG5cbi8vIEdsb2JhbCBDb2xvciBGdW5jdGlvbnNcbkBpbXBvcnQgXCIuL2lvbmljLmZ1bmN0aW9ucy5jb2xvclwiO1xuXG4vLyBHbG9iYWwgRm9udCBGdW5jdGlvbnNcbkBpbXBvcnQgXCIuL2lvbmljLmZ1bmN0aW9ucy5mb250XCI7XG5cbi8vIEdsb2JhbCBNaXhpbnNcbkBpbXBvcnQgXCIuL2lvbmljLm1peGluc1wiO1xuXG4vLyBEZWZhdWx0IFRoZW1lXG5AaW1wb3J0IFwiLi9pb25pYy50aGVtZS5kZWZhdWx0XCI7XG5cblxuLy8gRGVmYXVsdCBHZW5lcmFsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGZvbnQtZmFtaWx5LWJhc2U6ICAgICAgICAgICAgICAgICAgdmFyKC0taW9uLWZvbnQtZmFtaWx5LCBpbmhlcml0KSAhZGVmYXVsdDtcblxuLy8gSGFpcmxpbmVzIHdpZHRoXG4kaGFpcmxpbmVzLXdpZHRoOiAuNTVweCAhZGVmYXVsdDtcblxuLy8gVGhlIG1pbmltdW0gZGltZW5zaW9ucyBhdCB3aGljaCB5b3VyIGxheW91dCB3aWxsIGNoYW5nZSxcbi8vIGFkYXB0aW5nIHRvIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMsIGZvciB1c2UgaW4gbWVkaWEgcXVlcmllc1xuJHNjcmVlbi1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgc206IDU3NnB4LFxuICBtZDogNzY4cHgsXG4gIGxnOiA5OTJweCxcbiAgeGw6IDEyMDBweFxuKSAhZGVmYXVsdDtcblxuLy8gSW5wdXQgcGxhY2Vob2xkZXIgb3BhY2l0eVxuLy8gRW5zdXJlcyB0aGF0IHRoZSBwbGFjZWhvbGRlciBoYXMgdGhlXG4vLyBjb3JyZWN0IGNvbG9yIGNvbnRyYXN0IGFnYWluc3QgdGhlIGJhY2tncm91bmQuXG4kcGxhY2Vob2xkZXItb3BhY2l0eTogMC42ICFkZWZhdWx0O1xuXG4kZm9ybS1jb250cm9sLWxhYmVsLW1hcmdpbjogMTZweCAhZGVmYXVsdDtcblxuLy8gSG93IG11Y2ggdGhlIHN0YWNrZWQgbGFiZWxzIHNob3VsZCBiZSBzY2FsZWQgYnlcbi8vLyBUaGUgdmFsdWUgMC43NSBpcyB1c2VkIHRvIG1hdGNoIHRoZSBNRCBzcGVjLlxuLy8vIGlPUyBkb2VzIG5vdCBoYXZlIGEgZmxvYXRpbmcgbGFiZWwgZGVzaWduIHNwZWMsIHNvIHdlIHN0YW5kYXJkaXplIG9uIDAuNzUuXG4kZm9ybS1jb250cm9sLWxhYmVsLXN0YWNrZWQtc2NhbGU6IDAuNzUgIWRlZmF1bHQ7XG5cblxuLy8gWi1JbmRleFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdyb3VwZWQgYnkgZWxlbWVudHMgd2hpY2ggd291bGQgYmUgc2libGluZ3NcblxuJHotaW5kZXgtbWVudS1vdmVybGF5OiAgICAgICAgICAgMTAwMDtcbiR6LWluZGV4LW92ZXJsYXk6ICAgICAgICAgICAgICAgIDEwMDE7XG5cbiR6LWluZGV4LWZpeGVkLWNvbnRlbnQ6ICAgICAgICAgIDk5OTtcbiR6LWluZGV4LXJlZnJlc2hlcjogICAgICAgICAgICAgIC0xO1xuXG4kei1pbmRleC1wYWdlLWNvbnRhaW5lcjogICAgICAgICAwO1xuJHotaW5kZXgtdG9vbGJhcjogICAgICAgICAgICAgICAgMTA7XG4kei1pbmRleC10b29sYmFyLWJhY2tncm91bmQ6ICAgICAtMTtcbiR6LWluZGV4LXRvb2xiYXItYnV0dG9uczogICAgICAgIDk5O1xuXG4kei1pbmRleC1iYWNrZHJvcDogICAgICAgICAgICAgICAyO1xuJHotaW5kZXgtb3ZlcmxheS13cmFwcGVyOiAgICAgICAgMTA7XG5cbiR6LWluZGV4LWl0ZW0tb3B0aW9uczogICAgICAgICAgIDE7XG4kei1pbmRleC1pdGVtLWlucHV0OiAgICAgICAgICAgICAyO1xuJHotaW5kZXgtaXRlbS1kaXZpZGVyOiAgICAgICAgICAgMTAwO1xuXG4kei1pbmRleC1yZW9yZGVyLXNlbGVjdGVkOiAgICAgICAxMDA7XG4iLCJAaW1wb3J0IFwiLi4vLi4vdGhlbWVzL2lvbmljLmdsb2JhbHMuaW9zXCI7XG5cbi8vIGlPUyBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gQHByb3AgLSBCb3ggc2hhZG93IGNvbG9yIG9mIHRoZSBtZW51XG4kbWVudS1pb3MtYm94LXNoYWRvdy1jb2xvcjogICAgICByZ2JhKDAsIDAsIDAsIC4wOCkgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEJveCBzaGFkb3cgb2YgdGhlIG1lbnVcbiRtZW51LWlvcy1ib3gtc2hhZG93OiAgICAgICAgICAgIC04cHggMCA0MnB4ICRtZW51LWlvcy1ib3gtc2hhZG93LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQHByb3AgLSBCb3ggc2hhZG93IG9mIHRoZSBtZW51IGluIHJ0bCBtb2RlXG4kbWVudS1pb3MtYm94LXNoYWRvdy1ydGw6ICAgICAgICA4cHggMCA0MnB4ICRtZW51LWlvcy1ib3gtc2hhZG93LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQHByb3AgLSBCb3ggc2hhZG93IG9mIHRoZSByZXZlYWwgbWVudVxuJG1lbnUtaW9zLWJveC1zaGFkb3ctcmV2ZWFsOiAgICAgJG1lbnUtaW9zLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEJveCBzaGFkb3cgb2YgdGhlIHJldmVhbCBtZW51XG4kbWVudS1pb3MtYm94LXNoYWRvdy1yZXZlYWwtcnRsOiAkbWVudS1pb3MtYm94LXNoYWRvdy1ydGwgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEJveCBzaGFkb3cgb2YgdGhlIHB1c2ggbWVudVxuJG1lbnUtaW9zLWJveC1zaGFkb3ctcHVzaDogICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8vIEBwcm9wIC0gQm94IHNoYWRvdyBvZiB0aGUgb3ZlcmxheSBtZW51XG4kbWVudS1pb3MtYm94LXNoYWRvdy1vdmVybGF5OiAgICBudWxsICFkZWZhdWx0O1xuIiwiQGltcG9ydCBcIi4uLy4uL3RoZW1lcy9pb25pYy5nbG9iYWxzLm1kXCI7XG5cbi8vIE1hdGVyaWFsIERlc2lnbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gQHByb3AgLSBCb3ggc2hhZG93IG9mIHRoZSBtZW51XG4kbWVudS1tZC1ib3gtc2hhZG93OiAgICAgICAgICAgIDRweCAwcHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTgpICFkZWZhdWx0O1xuIiwiLy8gISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcblxuXG4vLyBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAxLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIDFcbn1cblxuLy8gUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbi8vIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGhlaWdodDogMDtcbn1cblxuXG4vLyBUZXh0LWxldmVsIHNlbWFudGljc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vLyBFbWJlZGRlZCBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBNYWtlcyBpdCBzbyB0aGUgaW1nIGRvZXMgbm90IGZsb3cgb3V0c2lkZSBjb250YWluZXJcbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8gR3JvdXBpbmcgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaHIge1xuICBoZWlnaHQ6IDFweDtcblxuICBib3JkZXItd2lkdGg6IDA7XG5cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8vIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuXG4vLyBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbi8vIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cblxuLy8gMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4vLyAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5sYWJlbCxcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcblxuICBoZWlnaHQ6IGF1dG87XG5cbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIHBhZGRpbmctbGVmdDogMnB4O1xufVxuXG5mb3JtLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCB7XG4gIG1hcmdpbjogMDsgLy8gM1xuXG4gIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgY29sb3I6IGluaGVyaXQ7IC8vIDFcbn1cblxuLy8gMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2Bcbi8vICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuLy8gMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuLy8gMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbi8vICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLy8gMVxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgLy8gM1xuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAyXG59XG5cbi8vIHJlbW92ZSAzMDBtcyBkZWxheVxuYSxcbmEgZGl2LFxuYSBzcGFuLFxuYSBpb24taWNvbixcbmEgaW9uLWxhYmVsLFxuYnV0dG9uLFxuYnV0dG9uIGRpdixcbmJ1dHRvbiBzcGFuLFxuYnV0dG9uIGlvbi1pY29uLFxuYnV0dG9uIGlvbi1sYWJlbCxcbi5pb24tdGFwcGFibGUsXG5bdGFwcGFibGVdLFxuW3RhcHBhYmxlXSBkaXYsXG5bdGFwcGFibGVdIHNwYW4sXG5bdGFwcGFibGVdIGlvbi1pY29uLFxuW3RhcHBhYmxlXSBpb24tbGFiZWwsXG5pbnB1dCxcbnRleHRhcmVhIHtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbmEgaW9uLWxhYmVsLFxuYnV0dG9uIGlvbi1sYWJlbCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXN0eWxlOiBpbmhlcml0O1xuICBmb250LXZhcmlhbnQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5bdGFwcGFibGVdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLyBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuYVtkaXNhYmxlZF0sXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcblxuICBib3JkZXI6IDA7XG59XG5cbi8vIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4vLyBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuLy8gZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuLy8gU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuLy8gcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblxuLy8gVGFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vXG5cbi8vIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5nbG9iYWxzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLm1peGluc1wiO1xuXG5cbi8vIFN0cnVjdHVyZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEFkZHMgc3RydWN0dXJhbCBjc3MgdG8gdGhlIG5hdGl2ZSBodG1sIGVsZW1lbnRzXG5cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xufVxuXG5odG1sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuXG4gIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbmh0bWw6bm90KC5oeWRyYXRlZCkgYm9keSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmh0bWwuaW9uLWNlIGJvZHkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuaHRtbC5wbHQtcHdhIHtcbiAgaGVpZ2h0OiAxMDB2aDtcbn1cblxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKCk7XG4gIEBpbmNsdWRlIG1hcmdpbigwKTtcbiAgQGluY2x1ZGUgcGFkZGluZygwKTtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gIC8qKlxuICAgKiBCZWNhdXNlIGJvZHkgaGFzIHBvc2l0aW9uOiBmaXhlZCxcbiAgICogaXQgc2hvdWxkIGJlIHByb21vdGVkIHRvIGl0cyBvd25cbiAgICogbGF5ZXIuXG4gICAqXG4gICAqIFdlYktpdCBkb2VzIG5vdCBhbHdheXMgcHJvbW90ZVxuICAgKiB0aGUgYm9keSB0byBpdHMgb3duIGxheWVyIG9uIHBhZ2VcbiAgICogbG9hZCBpbiBJb25pYyBhcHBzLiBPbmNlIHNjcm9sbGluZyBvblxuICAgKiBpb24tY29udGVudCBzdGFydHMsIFdlYktpdCB3aWxsIHByb21vdGVcbiAgICogYm9keS4gVW5mb3J0dW5hdGVseSwgdGhpcyBjYXVzZXMgYSByZS1wYWludFxuICAgKiB3aGljaCByZXN1bHRzIGluIHNjcm9sbGluZyBiZWluZyBoYWx0ZWRcbiAgICogdW50aWwgdGhlIG5leHQgdXNlciBnZXN0dXJlLlxuICAgKlxuICAgKiBUaGlzIGltcGFjdHMgdGhlIEN1c3RvbSBFbGVtZW50cyBidWlsZC5cbiAgICogVGhlIGxhenkgbG9hZGVkIGJ1aWxkIGNhdXNlcyB0aGUgYnJvd3NlciB0b1xuICAgKiByZS1wYWludCBkdXJpbmcgaHlkcmF0aW9uIHdoaWNoIGNhdXNlcyBXZWJLaXRcbiAgICogdG8gcHJvbW90ZSBib2R5IHRvIGl0cyBvd24gbGF5ZXIuXG4gICAqIEluIHRoZSBDRSBCdWlsZCwgdGhpcyBoeWRyYXRpb24gZG9lcyBub3RcbiAgICogaGFwcGVuLCBzbyB0aGUgYWRkaXRpb25hbCByZS1wYWludCBkb2VzIG5vdCBvY2N1ci5cbiAgICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG5cbiAgLW1zLWNvbnRlbnQtem9vbWluZzogbm9uZTtcblxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBub25lO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG5cbiAgdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbn1cbiIsIkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMuZ2xvYmFsc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5taXhpbnNcIjtcblxuLy8gVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEBwcm9wIC0gRm9udCB3ZWlnaHQgb2YgYWxsIGhlYWRpbmdzXG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICAgICAgICAgNTAwICFkZWZhdWx0O1xuXG4vLy8gQHByb3AgLSBMaW5lIGhlaWdodCBvZiBhbGwgaGVhZGluZ3NcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogICAgICAgICAxLjIgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEZvbnQgc2l6ZSBvZiBoZWFkaW5nIGxldmVsIDFcbiRoMS1mb250LXNpemU6ICAgICAgICAgICAgICAgICBkeW5hbWljLWZvbnQoMjZweCkgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEZvbnQgc2l6ZSBvZiBoZWFkaW5nIGxldmVsIDJcbiRoMi1mb250LXNpemU6ICAgICAgICAgICAgICAgICBkeW5hbWljLWZvbnQoMjRweCkgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEZvbnQgc2l6ZSBvZiBoZWFkaW5nIGxldmVsIDNcbiRoMy1mb250LXNpemU6ICAgICAgICAgICAgICAgICBkeW5hbWljLWZvbnQoMjJweCkgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEZvbnQgc2l6ZSBvZiBoZWFkaW5nIGxldmVsIDRcbiRoNC1mb250LXNpemU6ICAgICAgICAgICAgICAgICBkeW5hbWljLWZvbnQoMjBweCkgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEZvbnQgc2l6ZSBvZiBoZWFkaW5nIGxldmVsIDVcbiRoNS1mb250LXNpemU6ICAgICAgICAgICAgICAgICBkeW5hbWljLWZvbnQoMThweCkgIWRlZmF1bHQ7XG5cbi8vLyBAcHJvcCAtIEZvbnQgc2l6ZSBvZiBoZWFkaW5nIGxldmVsIDZcbiRoNi1mb250LXNpemU6ICAgICAgICAgICAgICAgICBkeW5hbWljLWZvbnQoMTZweCkgIWRlZmF1bHQ7XG5cbmh0bWwge1xuICBmb250LWZhbWlseTogdmFyKC0taW9uLWZvbnQtZmFtaWx5KTtcbn1cblxuLyoqXG4gKiBEeW5hbWljIFR5cGUgaXMgYW4gaU9TLW9ubHkgZmVhdHVyZSwgc29cbiAqIHRoaXMgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCBvbiBpT1MgZGV2aWNlcy5cbiAqL1xuQHN1cHBvcnRzICgtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmUpIHtcbiAgaHRtbCB7XG4gICAgLyoqXG4gICAgICogSW5jbHVkZXMgZmFsbGJhY2sgaWYgRHluYW1pYyBUeXBlIGlzIG5vdCBlbmFibGVkLlxuICAgICAqL1xuICAgIGZvbnQ6IHZhcigtLWlvbi1keW5hbWljLWZvbnQsIDE2cHggdmFyKC0taW9uLWZvbnQtZmFtaWx5KSk7XG4gIH1cbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW9uLWNvbG9yKHByaW1hcnksIGJhc2UpO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBAaW5jbHVkZSBtYXJnaW4oMTZweCwgbnVsbCwgMTBweCwgbnVsbCk7XG5cbiAgZm9udC13ZWlnaHQ6ICRoZWFkaW5ncy1mb250LXdlaWdodDtcblxuICBsaW5lLWhlaWdodDogJGhlYWRpbmdzLWxpbmUtaGVpZ2h0O1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIG1hcmdpbigyMHB4LCBudWxsLCBudWxsLCBudWxsKTtcblxuICBmb250LXNpemU6ICRoMS1mb250LXNpemU7XG59XG5cbmgyIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDE4cHgsIG51bGwsIG51bGwsIG51bGwpO1xuXG4gIGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbn1cblxuaDMge1xuICBmb250LXNpemU6ICRoMy1mb250LXNpemU7XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAkaDQtZm9udC1zaXplO1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbn1cblxuaDYge1xuICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA3NSU7XG59XG5cbnN1YixcbnN1cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBmb250LXNpemU6IDc1JTtcblxuICBsaW5lLWhlaWdodDogMDtcblxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLS41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLS4yNWVtO1xufVxuIiwiQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5nbG9iYWxzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLm1peGluc1wiO1xuXG5cbi8vIEVsZW1lbnQgU3BhY2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDcmVhdGVzIHBhZGRpbmcgYW5kIG1hcmdpbiBhdHRyaWJ1dGVzIHRvIGJlIHVzZWQgb25cbi8vIGFueSBlbGVtZW50XG5cbiRwYWRkaW5nOiB2YXIoLS1pb24tcGFkZGluZywgMTZweCk7XG4kbWFyZ2luOiB2YXIoLS1pb24tbWFyZ2luLCAxNnB4KTtcblxuLy8gUGFkZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmlvbi1uby1wYWRkaW5nIHtcbiAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAtLXBhZGRpbmctZW5kOiAwO1xuICAtLXBhZGRpbmctdG9wOiAwO1xuICAtLXBhZGRpbmctYm90dG9tOiAwO1xuXG4gIEBpbmNsdWRlIHBhZGRpbmcoMCk7XG59XG5cbi5pb24tcGFkZGluZyB7XG4gIC0tcGFkZGluZy1zdGFydDogI3skcGFkZGluZ307XG4gIC0tcGFkZGluZy1lbmQ6ICN7JHBhZGRpbmd9O1xuICAtLXBhZGRpbmctdG9wOiAjeyRwYWRkaW5nfTtcbiAgLS1wYWRkaW5nLWJvdHRvbTogI3skcGFkZGluZ307XG5cbiAgQGluY2x1ZGUgcGFkZGluZygkcGFkZGluZyk7XG59XG5cbi5pb24tcGFkZGluZy10b3Age1xuICAtLXBhZGRpbmctdG9wOiAjeyRwYWRkaW5nfTtcblxuICBAaW5jbHVkZSBwYWRkaW5nKCRwYWRkaW5nLCBudWxsLCBudWxsLCBudWxsKTtcbn1cblxuLmlvbi1wYWRkaW5nLXN0YXJ0IHtcbiAgLS1wYWRkaW5nLXN0YXJ0OiAjeyRwYWRkaW5nfTtcblxuICBAaW5jbHVkZSBwYWRkaW5nLWhvcml6b250YWwoJHBhZGRpbmcsIG51bGwpO1xufVxuXG4uaW9uLXBhZGRpbmctZW5kIHtcbiAgLS1wYWRkaW5nLWVuZDogI3skcGFkZGluZ307XG5cbiAgQGluY2x1ZGUgcGFkZGluZy1ob3Jpem9udGFsKG51bGwsICRwYWRkaW5nKTtcbn1cblxuLmlvbi1wYWRkaW5nLWJvdHRvbSB7XG4gIC0tcGFkZGluZy1ib3R0b206ICN7JHBhZGRpbmd9O1xuXG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCwgbnVsbCwgJHBhZGRpbmcsIG51bGwpO1xufVxuXG4uaW9uLXBhZGRpbmctdmVydGljYWwge1xuICAtLXBhZGRpbmctdG9wOiAjeyRwYWRkaW5nfTtcbiAgLS1wYWRkaW5nLWJvdHRvbTogI3skcGFkZGluZ307XG5cbiAgQGluY2x1ZGUgcGFkZGluZygkcGFkZGluZywgbnVsbCwgJHBhZGRpbmcsIG51bGwpO1xufVxuXG4uaW9uLXBhZGRpbmctaG9yaXpvbnRhbCB7XG4gIC0tcGFkZGluZy1zdGFydDogI3skcGFkZGluZ307XG4gIC0tcGFkZGluZy1lbmQ6ICN7JHBhZGRpbmd9O1xuXG4gIEBpbmNsdWRlIHBhZGRpbmctaG9yaXpvbnRhbCgkcGFkZGluZyk7XG59XG5cblxuLy8gTWFyZ2luXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uaW9uLW5vLW1hcmdpbiB7XG4gIC0tbWFyZ2luLXN0YXJ0OiAwO1xuICAtLW1hcmdpbi1lbmQ6IDA7XG4gIC0tbWFyZ2luLXRvcDogMDtcbiAgLS1tYXJnaW4tYm90dG9tOiAwO1xuXG4gIEBpbmNsdWRlIG1hcmdpbigwKTtcbn1cblxuLmlvbi1tYXJnaW4ge1xuICAtLW1hcmdpbi1zdGFydDogI3skbWFyZ2lufTtcbiAgLS1tYXJnaW4tZW5kOiAjeyRtYXJnaW59O1xuICAtLW1hcmdpbi10b3A6ICN7JG1hcmdpbn07XG4gIC0tbWFyZ2luLWJvdHRvbTogI3skbWFyZ2lufTtcblxuICBAaW5jbHVkZSBtYXJnaW4oJG1hcmdpbik7XG59XG5cbi5pb24tbWFyZ2luLXRvcCB7XG4gIC0tbWFyZ2luLXRvcDogI3skbWFyZ2lufTtcblxuICBAaW5jbHVkZSBtYXJnaW4oJG1hcmdpbiwgbnVsbCwgbnVsbCwgbnVsbCk7XG59XG5cbi5pb24tbWFyZ2luLXN0YXJ0IHtcbiAgLS1tYXJnaW4tc3RhcnQ6ICN7JG1hcmdpbn07XG5cbiAgQGluY2x1ZGUgbWFyZ2luLWhvcml6b250YWwoJG1hcmdpbiwgbnVsbCk7XG59XG5cbi5pb24tbWFyZ2luLWVuZCB7XG4gIC0tbWFyZ2luLWVuZDogI3skbWFyZ2lufTtcblxuICBAaW5jbHVkZSBtYXJnaW4taG9yaXpvbnRhbChudWxsLCAkbWFyZ2luKTtcbn1cblxuLmlvbi1tYXJnaW4tYm90dG9tIHtcbiAgLS1tYXJnaW4tYm90dG9tOiAjeyRtYXJnaW59O1xuXG4gIEBpbmNsdWRlIG1hcmdpbihudWxsLCBudWxsLCAkbWFyZ2luLCBudWxsKTtcbn1cblxuLmlvbi1tYXJnaW4tdmVydGljYWwge1xuICAtLW1hcmdpbi10b3A6ICN7JG1hcmdpbn07XG4gIC0tbWFyZ2luLWJvdHRvbTogI3skbWFyZ2lufTtcblxuICBAaW5jbHVkZSBtYXJnaW4oJG1hcmdpbiwgbnVsbCwgJG1hcmdpbiwgbnVsbCk7XG59XG5cbi5pb24tbWFyZ2luLWhvcml6b250YWwge1xuICAtLW1hcmdpbi1zdGFydDogI3skbWFyZ2lufTtcbiAgLS1tYXJnaW4tZW5kOiAjeyRtYXJnaW59O1xuXG4gIEBpbmNsdWRlIG1hcmdpbi1ob3Jpem9udGFsKCRtYXJnaW4pO1xufVxuIiwiQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5nbG9iYWxzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLm1peGluc1wiO1xuXG4vLyBGbG9hdCBFbGVtZW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENyZWF0ZXMgZmxvYXQgY2xhc3NlcyBiYXNlZCBvbiBzY3JlZW4gc2l6ZVxuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cyk7XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cykge1xuICAgIC8vIFByb3ZpZGUgYC5pb24tZmxvYXQte2JwfS17c2lkZX1gIGNsYXNzZXMgZm9yIGZsb2F0aW5nIHRoZSBlbGVtZW50IGJhc2VkXG4gICAgLy8gb24gdGhlIGJyZWFrcG9pbnQgYW5kIHNpZGVcbiAgICAuaW9uLWZsb2F0I3skaW5maXh9LWxlZnQge1xuICAgICAgQGluY2x1ZGUgZmxvYXQobGVmdCwgIWltcG9ydGFudCk7XG4gICAgfVxuXG4gICAgLmlvbi1mbG9hdCN7JGluZml4fS1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBmbG9hdChyaWdodCwgIWltcG9ydGFudCk7XG4gICAgfVxuXG4gICAgLmlvbi1mbG9hdCN7JGluZml4fS1zdGFydCB7XG4gICAgICBAaW5jbHVkZSBmbG9hdChzdGFydCwgIWltcG9ydGFudCk7XG4gICAgfVxuXG4gICAgLmlvbi1mbG9hdCN7JGluZml4fS1lbmQge1xuICAgICAgQGluY2x1ZGUgZmxvYXQoZW5kLCAhaW1wb3J0YW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMuZ2xvYmFsc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5taXhpbnNcIjtcblxuLy8gVGV4dCBBbGlnbm1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDcmVhdGVzIHRleHQgYWxpZ25tZW50IGF0dHJpYnV0ZXMgYmFzZWQgb24gc2NyZWVuIHNpemVcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpO1xuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBQcm92aWRlIGAuaW9uLXRleHQte2JwfWAgY2xhc3NlcyBmb3IgYWxpZ25pbmcgdGhlIHRleHQgYmFzZWRcbiAgICAvLyBvbiB0aGUgYnJlYWtwb2ludFxuICAgIC5pb24tdGV4dCN7JGluZml4fS1jZW50ZXIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmlvbi10ZXh0I3skaW5maXh9LWp1c3RpZnkge1xuICAgICAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1zdGFydCB7XG4gICAgICB0ZXh0LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1lbmQge1xuICAgICAgdGV4dC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmlvbi10ZXh0I3skaW5maXh9LWxlZnQge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1ub3dyYXAge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS13cmFwIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMuZ2xvYmFsc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5taXhpbnNcIjtcblxuLy8gVGV4dCBUcmFuc2Zvcm1hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENyZWF0ZXMgdGV4dCB0cmFuc2Zvcm0gYXR0cmlidXRlcyBiYXNlZCBvbiBzY3JlZW4gc2l6ZVxuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cyk7XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cykge1xuICAgIC8vIFByb3ZpZGUgYC5pb24tdGV4dC17YnB9YCBjbGFzc2VzIGZvciB0cmFuc2Zvcm1pbmcgdGhlIHRleHQgYmFzZWRcbiAgICAvLyBvbiB0aGUgYnJlYWtwb2ludFxuICAgIC5pb24tdGV4dCN7JGluZml4fS11cHBlcmNhc2Uge1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1sb3dlcmNhc2Uge1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1jYXBpdGFsaXplIHtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGbGV4IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENyZWF0ZXMgZmxleCBjbGFzc2VzIHRvIGFsaWduIGZsZXggY29udGFpbmVyc1xuLy8gYW5kIGl0ZW1zXG5cbi8vIEFsaWduIFNlbGZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5pb24tYWxpZ24tc2VsZi1zdGFydCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbn1cblxuLmlvbi1hbGlnbi1zZWxmLWVuZCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG5cbi5pb24tYWxpZ24tc2VsZi1jZW50ZXIge1xuICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmlvbi1hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG59XG5cbi5pb24tYWxpZ24tc2VsZi1iYXNlbGluZSB7XG4gIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5pb24tYWxpZ24tc2VsZi1hdXRvIHtcbiAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50O1xufVxuXG5cbi8vIEZsZXggV3JhcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmlvbi13cmFwIHtcbiAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG59XG5cbi5pb24tbm93cmFwIHtcbiAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLmlvbi13cmFwLXJldmVyc2Uge1xuICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xufVxuXG5cbi8vIEp1c3RpZnkgQ29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmlvbi1qdXN0aWZ5LWNvbnRlbnQtc3RhcnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbn1cblxuLmlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmlvbi1qdXN0aWZ5LWNvbnRlbnQtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuXG4uaW9uLWp1c3RpZnktY29udGVudC1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4uaW9uLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG59XG5cbi5pb24tanVzdGlmeS1jb250ZW50LWV2ZW5seSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gQWxpZ24gSXRlbXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5pb24tYWxpZ24taXRlbXMtc3RhcnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uaW9uLWFsaWduLWl0ZW1zLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmlvbi1hbGlnbi1pdGVtcy1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbn1cblxuLmlvbi1hbGlnbi1pdGVtcy1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cblxuLmlvbi1hbGlnbi1pdGVtcy1iYXNlbGluZSB7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50O1xufVxuIiwiQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5nbG9iYWxzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLm1peGluc1wiO1xuXG4vLyBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTW9kaWZpZXMgZGlzcGxheSBvZiBhIHBhcnRpY3VsYXIgZWxlbWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gY2xhc3Nlc1xuXG4uaW9uLWhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFkZHMgaGlkZGVuIGNsYXNzZXNcbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKTtcblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gUHJvdmlkZSBgaW9uLWhpZGUte2JwfS11cGAgY2xhc3NlcyBmb3IgaGlkaW5nIHRoZSBlbGVtZW50IGJhc2VkXG4gICAgLy8gb24gdGhlIGJyZWFrcG9pbnRcbiAgICAuaW9uLWhpZGUjeyRpbmZpeH0tdXAge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cykge1xuICAgIC8vIFByb3ZpZGUgYGlvbi1oaWRlLXticH0tZG93bmAgY2xhc3NlcyBmb3IgaGlkaW5nIHRoZSBlbGVtZW50IGJhc2VkXG4gICAgLy8gb24gdGhlIGJyZWFrcG9pbnRcbiAgICAuaW9uLWhpZGUjeyRpbmZpeH0tZG93biB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9*/