/*!
 * FullCalendar v3.2.0 Stylesheet
 * Docs & License: https://fullcalendar.io/
 * (c) 2017 Adam Shaw
 */


.fc {
	direction: ltr;
	text-align: left;
}

.fc-rtl {
	text-align: right;
}

body .fc { /* extra precedence to overcome jqui */
	font-size: 1em;
}


/* Colors
--------------------------------------------------------------------------------------------------*/

.fc-unthemed th,
.fc-unthemed td,
.fc-unthemed thead,
.fc-unthemed tbody,
.fc-unthemed .fc-divider,
.fc-unthemed .fc-row,
.fc-unthemed .fc-content, /* for gutter border */
.fc-unthemed .fc-popover,
.fc-unthemed .fc-list-view,
.fc-unthemed .fc-list-heading td {
	border-color: #ddd;
}

.fc-unthemed .fc-popover {
	background-color: #fff;
}

.fc-unthemed .fc-divider,
.fc-unthemed .fc-popover .fc-header,
.fc-unthemed .fc-list-heading td {
	background: #eee;
}

.fc-unthemed .fc-popover .fc-header .fc-close {
	color: #666;
}

.fc-unthemed td.fc-today {
	background: #fcf8e3;
}

.fc-highlight { /* when user is selecting cells */
	background: #bce8f1;
	opacity: .3;
}

.fc-bgevent { /* default look for background events */
	background: rgb(143, 223, 130);
	opacity: .3;
}

.fc-nonbusiness { /* default look for non-business-hours areas */
	/* will inherit .fc-bgevent's styles */
	background: #d7d7d7;
}


/* Icons (inline elements with styled text that mock arrow icons)
--------------------------------------------------------------------------------------------------*/

.fc-icon {
	display: inline-block;
	height: 1em;
	overflow: hidden;
	font-size: 1em;
	font-family: "Courier New", Courier, monospace;
	line-height: 1em;
	text-align: center;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	/* don't allow browser text-selection */
	-webkit-touch-callout: none;
	}

/*
Acceptable font-family overrides for individual icons:
	"Arial", sans-serif
	"Times New Roman", serif

NOTE: use percentage font sizes or else old IE chokes
*/

.fc-icon:after {
	position: relative;
}

.fc-icon-left-single-arrow:after {
	top: -7%;
	font-weight: bold;
	font-size: 200%;
	content: "\02039";
}

.fc-icon-right-single-arrow:after {
	top: -7%;
	font-weight: bold;
	font-size: 200%;
	content: "\0203A";
}

.fc-icon-left-double-arrow:after {
	top: -7%;
	font-size: 160%;
	content: "\000AB";
}

.fc-icon-right-double-arrow:after {
	top: -7%;
	font-size: 160%;
	content: "\000BB";
}

.fc-icon-left-triangle:after {
	top: 3%;
	font-size: 125%;
	content: "\25C4";
}

.fc-icon-right-triangle:after {
	top: 3%;
	font-size: 125%;
	content: "\25BA";
}

.fc-icon-down-triangle:after {
	top: 2%;
	font-size: 125%;
	content: "\25BC";
}

.fc-icon-x:after {
	top: 6%;
	font-size: 200%;
	content: "\000D7";
}


/* Buttons (styled <button> tags, normalized to work cross-browser)
--------------------------------------------------------------------------------------------------*/

.fc button {
	/* force height to include the border and padding */
	box-sizing: border-box;
	height: 2.1em;

	/* dimensions */
	margin: 0;
	padding: 0 .6em;

	/* text & cursor */
	font-size: 1em; /* normalize */
	white-space: nowrap;
	cursor: pointer;
}

/* Firefox has an annoying inner border */
.fc button::-moz-focus-inner { margin: 0; padding: 0; }

.fc-state-default { /* non-theme */
	border: 1px solid;
}

.fc-state-default.fc-corner-left { /* non-theme */
	border-top-left-radius: 4px;
	border-bottom-left-radius: 4px;
}

.fc-state-default.fc-corner-right { /* non-theme */
	border-top-right-radius: 4px;
	border-bottom-right-radius: 4px;
}

/* icons in buttons */

.fc button .fc-icon { /* non-theme */
	position: relative;
	top: -0.05em; /* seems to be a good adjustment across browsers */
	margin: 0 .2em;
	vertical-align: middle;
}

/*
  button states
  borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
*/

.fc-state-default {
	color: #333;
	text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
	background-color: #f5f5f5;
	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
	background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
	background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
	background-repeat: repeat-x;
	border-color: #e6e6e6 #e6e6e6 #bfbfbf;
	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.fc-state-hover,
.fc-state-down,
.fc-state-active,
.fc-state-disabled {
	color: #333333;
	background-color: #e6e6e6;
}

.fc-state-hover {
	color: #333333;
	text-decoration: none;
	background-position: 0 -15px;
	-webkit-transition: background-position 0.1s linear;
	        transition: background-position 0.1s linear;
}

.fc-state-down,
.fc-state-active {
	background-color: #cccccc;
	background-image: none;
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.fc-state-disabled {
	background-image: none;
	box-shadow: none;
	cursor: default;
	opacity: 0.65;
}


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

.fc-button-group {
	display: inline-block;
}

/*
every button that is not first in a button group should scootch over one pixel and cover the
previous button's border...
*/

.fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */
	float: left;
	margin: 0 0 0 -1px;
}

.fc .fc-button-group > :first-child { /* same */
	margin-left: 0;
}


/* Popover
--------------------------------------------------------------------------------------------------*/

.fc-popover {
	position: absolute;
	box-shadow: 0 2px 6px rgba(0,0,0,.15);
}

.fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */
	padding: 2px 4px;
}

.fc-popover .fc-header .fc-title {
	margin: 0 2px;
}

.fc-popover .fc-header .fc-close {
	cursor: pointer;
}

.fc-ltr .fc-popover .fc-header .fc-title,
.fc-rtl .fc-popover .fc-header .fc-close {
	float: left;
}

.fc-rtl .fc-popover .fc-header .fc-title,
.fc-ltr .fc-popover .fc-header .fc-close {
	float: right;
}

/* unthemed */

.fc-unthemed .fc-popover {
	border-style: solid;
	border-width: 1px;
}

.fc-unthemed .fc-popover .fc-header .fc-close {
	margin-top: 2px;
	font-size: .9em;
}

/* jqui themed */

.fc-popover > .ui-widget-header + .ui-widget-content {
	border-top: 0; /* where they meet, let the header have the border */
}


/* Misc Reusable Components
--------------------------------------------------------------------------------------------------*/

.fc-divider {
	border-style: solid;
	border-width: 1px;
}

hr.fc-divider {
	height: 0;
	margin: 0;
	padding: 0 0 2px; /* height is unreliable across browsers, so use padding */
	border-width: 1px 0;
}

.fc-clear {
	clear: both;
}

.fc-bg,
.fc-bgevent-skeleton,
.fc-highlight-skeleton,
.fc-helper-skeleton {
	/* these element should always cling to top-left/right corners */
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
}

.fc-bg {
	bottom: 0; /* strech bg to bottom edge */
}

.fc-bg table {
	height: 100%; /* strech bg to bottom edge */
}


/* Tables
--------------------------------------------------------------------------------------------------*/

.fc table {
	box-sizing: border-box; /* fix scrollbar issue in firefox */
	width: 100%;
	font-size: 1em; /* normalize cross-browser */
	table-layout: fixed;
	border-collapse: collapse;
	border-spacing: 0;
}

.fc th {
	text-align: center;
}

.fc th,
.fc td {
	padding: 0;
	vertical-align: top;
	border-style: solid;
	border-width: 1px;
}

.fc td.fc-today {
	border-style: double; /* overcome neighboring borders */
}


/* Internal Nav Links
--------------------------------------------------------------------------------------------------*/

a[data-goto] {
	cursor: pointer;
}

a[data-goto]:hover {
	text-decoration: underline;
}


/* Fake Table Rows
--------------------------------------------------------------------------------------------------*/

.fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */
	/* no visible border by default. but make available if need be (scrollbar width compensation) */
	border-style: solid;
	border-width: 0;
}

.fc-row table {
	border-right: 0 hidden transparent;

	/* no bottom borders on rows */
	border-bottom: 0 hidden transparent;
	/* don't put left/right border on anything within a fake row.
	   the outer tbody will worry about this */
	border-left: 0 hidden transparent;
}

.fc-row:first-child table {
	border-top: 0 hidden transparent; /* no top border on first row */
}


/* Day Row (used within the header and the DayGrid)
--------------------------------------------------------------------------------------------------*/

.fc-row {
	position: relative;
}

.fc-row .fc-bg {
	z-index: 1;
}

/* highlighting cells & background event skeleton */

.fc-row .fc-bgevent-skeleton,
.fc-row .fc-highlight-skeleton {
	bottom: 0; /* stretch skeleton to bottom of row */
}

.fc-row .fc-bgevent-skeleton table,
.fc-row .fc-highlight-skeleton table {
	height: 100%; /* stretch skeleton to bottom of row */
}

.fc-row .fc-highlight-skeleton td,
.fc-row .fc-bgevent-skeleton td {
	border-color: transparent;
}

.fc-row .fc-bgevent-skeleton {
	z-index: 2;

}

.fc-row .fc-highlight-skeleton {
	z-index: 3;
}

/*
row content (which contains day/week numbers and events) as well as "helper" (which contains
temporary rendered events).
*/

.fc-row .fc-content-skeleton {
	position: relative;
	z-index: 4;
	padding-bottom: 2px; /* matches the space above the events */
}

.fc-row .fc-helper-skeleton {
	z-index: 5;
}

.fc-row .fc-content-skeleton td,
.fc-row .fc-helper-skeleton td {
	/* see-through to the background below */
	background: none; /* in case <td>s are globally styled */
	border-color: transparent;

	/* don't put a border between events and/or the day number */
	border-bottom: 0;
}

.fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */
.fc-row .fc-helper-skeleton tbody td {
	/* don't put a border between event cells */
	border-top: 0;
}


/* Scrolling Container
--------------------------------------------------------------------------------------------------*/

.fc-scroller {
	-webkit-overflow-scrolling: touch;
}

/* TODO: move to agenda/basic */
.fc-scroller > .fc-day-grid,
.fc-scroller > .fc-time-grid {
	position: relative; /* re-scope all positions */
	width: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */
}


/* Global Event Styles
--------------------------------------------------------------------------------------------------*/

.fc-event {
	position: relative; /* for resize handle and other inner positioning */
	display: block; /* make the <a> tag block */
	font-weight: normal; /* undo jqui's ui-widget-header bold */
	font-size: .85em;
	line-height: 1.3;
	border: 1px solid #3a87ad; /* default BORDER color */
	border-radius: 3px;
}

.fc-event,
.fc-event-dot {
	background-color: #3a87ad; /* default BACKGROUND color */
}

/* overpower some of bootstrap's and jqui's styles on <a> tags */
.fc-event,
.fc-event:hover,
.ui-widget .fc-event {
	color: #fff; /* default TEXT color */
	text-decoration: none; /* if <a> has an href */
}

.fc-event[href],
.fc-event.fc-draggable {
	cursor: pointer; /* give events with links and draggable events a hand mouse pointer */
}

.fc-not-allowed, /* causes a "warning" cursor. applied on body */
.fc-not-allowed .fc-event { /* to override an event's custom cursor */
	cursor: not-allowed;
}

.fc-event .fc-bg { /* the generic .fc-bg already does position */
	z-index: 1;
	background: #fff;
	opacity: .25;
}

.fc-event .fc-content {
	position: relative;
	z-index: 2;
}

/* resizer (cursor AND touch devices) */

.fc-event .fc-resizer {
	position: absolute;
	z-index: 4;
}

/* resizer (touch devices) */

.fc-event .fc-resizer {
	display: none;
}

.fc-event.fc-allow-mouse-resize .fc-resizer,
.fc-event.fc-selected .fc-resizer {
	/* only show when hovering or selected (with touch) */
	display: block;
}

/* hit area */

.fc-event.fc-selected .fc-resizer:before {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 9999; /* user of this util can scope within a lower z-index */
	width: 40px;
	height: 40px;
	margin-top: -20px;
	margin-left: -20px;
	/* 40x40 touch area */
	content: "";
}


/* Event Selection (only for touch devices)
--------------------------------------------------------------------------------------------------*/

.fc-event.fc-selected {
	z-index: 9999 !important; /* overcomes inline z-index */
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.fc-event.fc-selected.fc-dragging {
	box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3);
}


/* Horizontal Events
--------------------------------------------------------------------------------------------------*/

/* bigger touch area when selected */
.fc-h-event.fc-selected:before {
	position: absolute;
	top: -10px;
	right: 0;
	bottom: -10px;
	left: 0;
	z-index: 3; /* below resizers */
	content: "";
}

/* events that are continuing to/from another week. kill rounded corners and butt up against edge */

.fc-ltr .fc-h-event.fc-not-start,
.fc-rtl .fc-h-event.fc-not-end {
	margin-left: 0;
	padding-left: 1px; /* replace the border with padding */
	border-left-width: 0;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.fc-ltr .fc-h-event.fc-not-end,
.fc-rtl .fc-h-event.fc-not-start {
	margin-right: 0;
	padding-right: 1px; /* replace the border with padding */
	border-right-width: 0;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

/* resizer (cursor AND touch devices) */

/* left resizer  */
.fc-ltr .fc-h-event .fc-start-resizer,
.fc-rtl .fc-h-event .fc-end-resizer {
	left: -1px; /* overcome border */
	cursor: w-resize;
}

/* right resizer */
.fc-ltr .fc-h-event .fc-end-resizer,
.fc-rtl .fc-h-event .fc-start-resizer {
	right: -1px; /* overcome border */
	cursor: e-resize;
}

/* resizer (mouse devices) */

.fc-h-event.fc-allow-mouse-resize .fc-resizer {
	top: -1px; /* overcome top border */
	bottom: -1px; /* overcome bottom border */
	width: 7px;
}

/* resizer (touch devices) */

.fc-h-event.fc-selected .fc-resizer {
	/* vertically center */
	top: 50%;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	background: #fff;
	border-color: inherit;
	border-style: solid;
	border-width: 1px;
	/* 8x8 little dot */
	border-radius: 4px;
}

/* left resizer  */
.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,
.fc-rtl .fc-h-event.fc-selected .fc-end-resizer {
	margin-left: -4px; /* centers the 8x8 dot on the left edge */
}

/* right resizer */
.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,
.fc-rtl .fc-h-event.fc-selected .fc-start-resizer {
	margin-right: -4px; /* centers the 8x8 dot on the right edge */
}


/* DayGrid events
----------------------------------------------------------------------------------------------------
We use the full "fc-day-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/

.fc-day-grid-event {
	margin: 1px 2px 0; /* spacing between events and edges */
	padding: 0 1px;
}

tr:first-child > td > .fc-day-grid-event {
	margin-top: 2px; /* a little bit more space before the first event */
}

.fc-day-grid-event.fc-selected:after {
	position: absolute;
	/* overcome the borders */
	top: -1px;
	right: -1px;
	bottom: -1px;
	left: -1px;
	z-index: 1; /* same z-index as fc-bg, behind text */
	/* darkening effect */
	background: #000;
	opacity: .25;
	content: "";
}

.fc-day-grid-event .fc-content { /* force events to be one-line tall */
	overflow: hidden;
	white-space: nowrap;
}

.fc-day-grid-event .fc-time {
	font-weight: bold;
}

/* resizer (cursor devices) */

/* left resizer  */
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer {
	margin-left: -2px; /* to the day cell's edge */
}

/* right resizer */
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer {
	margin-right: -2px; /* to the day cell's edge */
}


/* Event Limiting
--------------------------------------------------------------------------------------------------*/

/* "more" link that represents hidden events */

a.fc-more {
	margin: 1px 3px;
	font-size: .85em;
	text-decoration: none;
	cursor: pointer;
}

a.fc-more:hover {
	text-decoration: underline;
}

.fc-limited { /* rows and cells that are hidden because of a "more" link */
	display: none;
}

/* popover that appears when "more" link is clicked */

.fc-day-grid .fc-row {
	z-index: 1; /* make the "more" popover one higher than this */
}

.fc-more-popover {
	z-index: 2;
	width: 220px;
}

.fc-more-popover .fc-event-container {
	padding: 10px;
}


/* Now Indicator
--------------------------------------------------------------------------------------------------*/

.fc-now-indicator {
	position: absolute;
	border: 0 solid red;
}


/* Utilities
--------------------------------------------------------------------------------------------------*/

.fc-unselectable {
	-webkit-user-select: none;
	   -moz-user-select: none;
	    -ms-user-select: none;
	        user-select: none;
	-webkit-touch-callout: none;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}



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

.fc-toolbar {
	text-align: center;
}

.fc-toolbar.fc-header-toolbar {
	margin-bottom: 1em;
}

.fc-toolbar.fc-footer-toolbar {
	margin-top: 1em;
}

.fc-toolbar .fc-left {
	float: left;
}

.fc-toolbar .fc-right {
	float: right;
}

.fc-toolbar .fc-center {
	display: inline-block;
}

/* the things within each left/right/center section */
.fc .fc-toolbar > * > * { /* extra precedence to override button border margins */
	float: left;
	margin-left: .75em;
}

/* the first thing within each left/center/right section */
.fc .fc-toolbar > * > :first-child { /* extra precedence to override button border margins */
	margin-left: 0;
}

/* title text */

.fc-toolbar h2 {
	margin: 0;
}

/* button layering (for border precedence) */

.fc-toolbar button {
	position: relative;
}

.fc-toolbar .fc-state-hover,
.fc-toolbar .ui-state-hover {
	z-index: 2;
}

.fc-toolbar .fc-state-down {
	z-index: 3;
}

.fc-toolbar .fc-state-active,
.fc-toolbar .ui-state-active {
	z-index: 4;
}

.fc-toolbar button:focus {
	z-index: 5;
}


/* View Structure
--------------------------------------------------------------------------------------------------*/

/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */
/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
.fc-view-container *,
.fc-view-container *:before,
.fc-view-container *:after {
	box-sizing: content-box;
}

.fc-view, /* scope positioning and z-index's for everything within the view */
.fc-view > table { /* so dragged elements can be above the view's main element */
	position: relative;
	z-index: 1;
}

.fc-view-container {
  position: relative;
}

.fc-view-container .loading {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 100;
  background-color: rgba(1,1,1,0.75);
}


/* BasicView
--------------------------------------------------------------------------------------------------*/

/* day row structure */

.fc-basicWeek-view .fc-content-skeleton,
.fc-basicDay-view .fc-content-skeleton {
	/* there may be week numbers in these views, so no padding-top */
	padding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */
}

.fc-basic-view .fc-body .fc-row {
	min-height: 4em; /* ensure that all rows are at least this tall */
}

/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */

.fc-row.fc-rigid {
	overflow: hidden;
}

.fc-row.fc-rigid .fc-content-skeleton {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
}

/* week and day number styling */

.fc-day-top.fc-other-month {
	opacity: 0.3;
}

.fc-basic-view .fc-week-number,
.fc-basic-view .fc-day-number {
	padding: 2px;
}

.fc-basic-view th.fc-week-number,
.fc-basic-view th.fc-day-number {
	padding: 0 2px; /* column headers can't have as much v space */
}

.fc-ltr .fc-basic-view .fc-day-top .fc-day-number { float: right; }
.fc-rtl .fc-basic-view .fc-day-top .fc-day-number { float: left; }

.fc-ltr .fc-basic-view .fc-day-top .fc-week-number { float: left; border-radius: 0 0 3px 0; }
.fc-rtl .fc-basic-view .fc-day-top .fc-week-number { float: right; border-radius: 0 0 0 3px; }

.fc-basic-view .fc-day-top .fc-week-number {
	min-width: 1.5em;
	color: #808080;
	text-align: center;
	background-color: #f2f2f2;
}

/* when week/day number have own column */

.fc-basic-view td.fc-week-number {
	text-align: center;
}

.fc-basic-view td.fc-week-number > * {
	/* work around the way we do column resizing and ensure a minimum width */
	display: inline-block;
	min-width: 1.25em;
}


/* AgendaView all-day area
--------------------------------------------------------------------------------------------------*/

.fc-agenda-view .fc-day-grid {
	position: relative;
	z-index: 2; /* so the "more.." popover will be over the time grid */
}

.fc-agenda-view .fc-day-grid .fc-row {
	min-height: 3em; /* all-day section will never get shorter than this */
}

.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {
	padding-bottom: 1em; /* give space underneath events for clicking/selecting days */
}


/* TimeGrid axis running down the side (for both the all-day area and the slot area)
--------------------------------------------------------------------------------------------------*/

.fc .fc-axis { /* .fc to overcome default cell styles */
	padding: 0 4px;
	white-space: nowrap;
	vertical-align: middle;
}

.fc-ltr .fc-axis {
	text-align: right;
}

.fc-rtl .fc-axis {
	text-align: left;
}

.ui-widget td.fc-axis {
	font-weight: normal; /* overcome jqui theme making it bold */
}


/* TimeGrid Structure
--------------------------------------------------------------------------------------------------*/

.fc-time-grid-container, /* so scroll container's z-index is below all-day */
.fc-time-grid { /* so slats/bg/content/etc positions get scoped within here */
	position: relative;
	z-index: 1;
}

.fc-time-grid {
	min-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */
}

.fc-time-grid table { /* don't put outer borders on slats/bg/content/etc */
	border: 0 hidden transparent;
}

.fc-time-grid > .fc-bg {
	z-index: 1;
}

.fc-time-grid .fc-slats,
.fc-time-grid > hr { /* the <hr> AgendaView injects when grid is shorter than scroller */
	position: relative;
	z-index: 2;
}

.fc-time-grid .fc-content-col {
	position: relative; /* because now-indicator lives directly inside */
}

.fc-time-grid .fc-content-skeleton {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 3;
}

/* divs within a cell within the fc-content-skeleton */

.fc-time-grid .fc-business-container {
	position: relative;
	z-index: 1;
}

.fc-time-grid .fc-bgevent-container {
	position: relative;
	z-index: 2;
}

.fc-time-grid .fc-highlight-container {
	position: relative;
	z-index: 3;
}

.fc-time-grid .fc-event-container {
	position: relative;
	z-index: 4;
}

.fc-time-grid .fc-now-indicator-line {
	z-index: 5;
}

.fc-time-grid .fc-helper-container { /* also is fc-event-container */
	position: relative;
	z-index: 6;
}


/* TimeGrid Slats (lines that run horizontally)
--------------------------------------------------------------------------------------------------*/

.fc-time-grid .fc-slats td {
	height: 1.5em;
	border-bottom: 0; /* each cell is responsible for its top border */
}

.fc-time-grid .fc-slats .fc-minor td {
	border-top-style: dotted;
}

.fc-time-grid .fc-slats .ui-widget-content { /* for jqui theme */
	background: none; /* see through to fc-bg */
}


/* TimeGrid Highlighting Slots
--------------------------------------------------------------------------------------------------*/

.fc-time-grid .fc-highlight-container { /* a div within a cell within the fc-highlight-skeleton */
	position: relative; /* scopes the left/right of the fc-highlight to be in the column */
}

.fc-time-grid .fc-highlight {
	position: absolute;
	right: 0;
	left: 0;
	/* top and bottom will be in by JS */
}


/* TimeGrid Event Containment
--------------------------------------------------------------------------------------------------*/

.fc-ltr .fc-time-grid .fc-event-container { /* space on the sides of events for LTR (default) */
	margin: 0 2.5% 0 2px;
}

.fc-rtl .fc-time-grid .fc-event-container { /* space on the sides of events for RTL */
	margin: 0 2px 0 2.5%;
}

.fc-time-grid .fc-event,
.fc-time-grid .fc-bgevent {
	position: absolute;
	z-index: 1; /* scope inner z-index's */
}

.fc-time-grid .fc-bgevent {
	right: 0;
	/* background events always span full width */
	left: 0;
}


/* Generic Vertical Event
--------------------------------------------------------------------------------------------------*/

.fc-v-event.fc-not-start { /* events that are continuing from another day */
	padding-top: 1px;
	/* replace space made by the top border with padding */
	border-top-width: 0;

	/* remove top rounded corners */
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

.fc-v-event.fc-not-end {
	padding-bottom: 1px;
	/* replace space made by the top border with padding */
	border-bottom-width: 0;
	border-bottom-right-radius: 0;

	/* remove bottom rounded corners */
	border-bottom-left-radius: 0;
}


/* TimeGrid Event Styling
----------------------------------------------------------------------------------------------------
We use the full "fc-time-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/

.fc-time-grid-event {
	overflow: hidden; /* don't let the bg flow over rounded corners */
}

.fc-time-grid-event.fc-selected {
	/* need to allow touch resizers to extend outside event's bounding box */
	/* common fc-selected styles hide the fc-bg, so don't need this anyway */
	overflow: visible;
}

.fc-time-grid-event.fc-selected .fc-bg {
	display: none; /* hide semi-white background, to appear darker */
}

.fc-time-grid-event .fc-content {
	overflow: hidden; /* for when .fc-selected */
}

.fc-time-grid-event .fc-time,
.fc-time-grid-event .fc-title {
	padding: 0 1px;
}

.fc-time-grid-event .fc-time {
	font-size: .85em;
	white-space: nowrap;
}

/* short mode, where time and title are on the same line */

.fc-time-grid-event.fc-short .fc-content {
	/* don't wrap to second line (now that contents will be inline) */
	white-space: nowrap;
}

.fc-time-grid-event.fc-short .fc-time,
.fc-time-grid-event.fc-short .fc-title {
	/* put the time and title on the same line */
	display: inline-block;
	vertical-align: top;
}

.fc-time-grid-event.fc-short .fc-time span {
	display: none; /* don't display the full time text... */
}

.fc-time-grid-event.fc-short .fc-time:before {
	content: attr(data-start); /* ...instead, display only the start time */
}

.fc-time-grid-event.fc-short .fc-time:after {
	content: "\000A0-\000A0"; /* seperate with a dash, wrapped in nbsp's */
}

.fc-time-grid-event.fc-short .fc-title {
	padding: 0; /* undo padding from above */
	font-size: .85em; /* make the title text the same size as the time */
}

/* resizer (cursor device) */

.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer {
	right: 0;
	bottom: 0;
	left: 0;
	height: 8px;
	overflow: hidden;
	font-size: 11px;
	font-family: monospace;
	line-height: 8px;
	text-align: center;
	cursor: s-resize;
}

.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after {
	content: "=";
}

/* resizer (touch device) */

.fc-time-grid-event.fc-selected .fc-resizer {
	/* center on the bottom edge */
	bottom: -5px;
	/* horizontally center */
	left: 50%;
	width: 8px;
	height: 8px;
	margin-left: -5px;
	background: #fff;
	border-color: inherit;
	border-style: solid;
	border-width: 1px;
	/* 10x10 dot */
	border-radius: 5px;
}


/* Now Indicator
--------------------------------------------------------------------------------------------------*/

.fc-time-grid .fc-now-indicator-line {
	right: 0;
	left: 0;
	border-top-width: 1px;
}

/* arrow on axis */

.fc-time-grid .fc-now-indicator-arrow {
	margin-top: -5px; /* vertically center on top coordinate */
}

.fc-ltr .fc-time-grid .fc-now-indicator-arrow {
	left: 0;
	/* triangle pointing right... */
	border-width: 5px 0 5px 6px;
	border-top-color: transparent;
	border-bottom-color: transparent;
}

.fc-rtl .fc-time-grid .fc-now-indicator-arrow {
	right: 0;
	/* triangle pointing left... */
	border-width: 5px 6px 5px 0;
	border-top-color: transparent;
	border-bottom-color: transparent;
}



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

/* possibly reusable */

.fc-event-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 5px;
}

/* view wrapper */

.fc-rtl .fc-list-view {
	direction: rtl; /* unlike core views, leverage browser RTL */
}

.fc-list-view {
	border-style: solid;
	border-width: 1px;
}

/* table resets */

.fc .fc-list-table {
	table-layout: auto; /* for shrinkwrapping cell content */
}

.fc-list-table td {
	padding: 8px 14px;
	border-width: 1px 0 0;
}

.fc-list-table tr:first-child td {
	border-top-width: 0;
}

/* day headings with the list */

.fc-list-heading {
	border-bottom-width: 1px;
}

.fc-list-heading td {
	font-weight: bold;
}

.fc-ltr .fc-list-heading-main { float: left; }
.fc-ltr .fc-list-heading-alt { float: right; }

.fc-rtl .fc-list-heading-main { float: right; }
.fc-rtl .fc-list-heading-alt { float: left; }

/* event list items */

.fc-list-item.fc-has-url {
	cursor: pointer; /* whole row will be clickable */
}

.fc-list-item:hover td {
	background-color: #f5f5f5;
}

.fc-list-item-marker,
.fc-list-item-time {
	width: 1px;
	white-space: nowrap;
}

/* make the dot closer to the event title */
.fc-ltr .fc-list-item-marker { padding-right: 0; }
.fc-rtl .fc-list-item-marker { padding-left: 0; }

.fc-list-item-title a {
	color: inherit;
	/* every event title cell has an <a> tag */
	text-decoration: none;
}

.fc-list-item-title a[href]:hover {
	/* hover effect only on titles with hrefs */
	text-decoration: underline;
}

/* message when no events */

.fc-list-empty-wrap2 {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}

.fc-list-empty-wrap1 {
	display: table;
	width: 100%;
	height: 100%;
}

.fc-list-empty {
	display: table-cell;
	text-align: center;
	vertical-align: middle;
}

.fc-unthemed .fc-list-empty { /* theme will provide own background */
	background-color: #eee;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHlsZXNoZWV0cy9mdWxsY2FsZW5kYXIuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7OztBQUdIO0NBQ0MsZUFBZTtDQUNmLGlCQUFpQjtDQUNqQjs7QUFFRDtDQUNDLGtCQUFrQjtDQUNsQjs7QUFFRCxXQUFXLHVDQUF1QztDQUNqRCxlQUFlO0NBQ2Y7OztBQUdEO29HQUNvRzs7QUFFcEc7Ozs7Ozs7Ozs7Q0FVQyxtQkFBbUI7Q0FDbkI7O0FBRUQ7Q0FDQyx1QkFBdUI7Q0FDdkI7O0FBRUQ7OztDQUdDLGlCQUFpQjtDQUNqQjs7QUFFRDtDQUNDLFlBQVk7Q0FDWjs7QUFFRDtDQUNDLG9CQUFvQjtDQUNwQjs7QUFFRCxnQkFBZ0Isa0NBQWtDO0NBQ2pELG9CQUFvQjtDQUNwQixZQUFZO0NBQ1o7O0FBRUQsY0FBYyx3Q0FBd0M7Q0FDckQsK0JBQStCO0NBQy9CLFlBQVk7Q0FDWjs7QUFFRCxrQkFBa0IsK0NBQStDO0NBQ2hFLHVDQUF1QztDQUN2QyxvQkFBb0I7Q0FDcEI7OztBQUdEO29HQUNvRzs7QUFFcEc7Q0FDQyxzQkFBc0I7Q0FDdEIsWUFBWTtDQUNaLGlCQUFpQjtDQUNqQixlQUFlO0NBQ2YsK0NBQStDO0NBQy9DLGlCQUFpQjtDQUNqQixtQkFBbUI7Q0FDbkIsMEJBQTBCO0NBRTFCLHVCQUF1QjtDQUN2QixzQkFBc0I7Q0FDdEIsa0JBQWtCOztDQUVsQix3Q0FBd0M7Q0FDeEMsNEJBQTRCO0VBQzNCOztBQUVGOzs7Ozs7RUFNRTs7QUFFRjtDQUNDLG1CQUFtQjtDQUNuQjs7QUFFRDtDQUNDLFNBQVM7Q0FDVCxrQkFBa0I7Q0FDbEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQjs7QUFFRDtDQUNDLFNBQVM7Q0FDVCxrQkFBa0I7Q0FDbEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQjs7QUFFRDtDQUNDLFNBQVM7Q0FDVCxnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCOztBQUVEO0NBQ0MsU0FBUztD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RSx1QkFBdUI7Q0FDdkIiLCJmaWxlIjoiZnVsbGNhbGVuZGFyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogRnVsbENhbGVuZGFyIHYzLjIuMCBTdHlsZXNoZWV0XG4gKiBEb2NzICYgTGljZW5zZTogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vXG4gKiAoYykgMjAxNyBBZGFtIFNoYXdcbiAqL1xuXG5cbi5mYyB7XG5cdGRpcmVjdGlvbjogbHRyO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uZmMtcnRsIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbmJvZHkgLmZjIHsgLyogZXh0cmEgcHJlY2VkZW5jZSB0byBvdmVyY29tZSBqcXVpICovXG5cdGZvbnQtc2l6ZTogMWVtO1xufVxuXG5cbi8qIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtdW50aGVtZWQgdGgsXG4uZmMtdW50aGVtZWQgdGQsXG4uZmMtdW50aGVtZWQgdGhlYWQsXG4uZmMtdW50aGVtZWQgdGJvZHksXG4uZmMtdW50aGVtZWQgLmZjLWRpdmlkZXIsXG4uZmMtdW50aGVtZWQgLmZjLXJvdyxcbi5mYy11bnRoZW1lZCAuZmMtY29udGVudCwgLyogZm9yIGd1dHRlciBib3JkZXIgKi9cbi5mYy11bnRoZW1lZCAuZmMtcG9wb3Zlcixcbi5mYy11bnRoZW1lZCAuZmMtbGlzdC12aWV3LFxuLmZjLXVudGhlbWVkIC5mYy1saXN0LWhlYWRpbmcgdGQge1xuXHRib3JkZXItY29sb3I6ICNkZGQ7XG59XG5cbi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5mYy11bnRoZW1lZCAuZmMtZGl2aWRlcixcbi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyLFxuLmZjLXVudGhlbWVkIC5mYy1saXN0LWhlYWRpbmcgdGQge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xufVxuXG4uZmMtdW50aGVtZWQgLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtY2xvc2Uge1xuXHRjb2xvcjogIzY2Njtcbn1cblxuLmZjLXVudGhlbWVkIHRkLmZjLXRvZGF5IHtcblx0YmFja2dyb3VuZDogI2ZjZjhlMztcbn1cblxuLmZjLWhpZ2hsaWdodCB7IC8qIHdoZW4gdXNlciBpcyBzZWxlY3RpbmcgY2VsbHMgKi9cblx0YmFja2dyb3VuZDogI2JjZThmMTtcblx0b3BhY2l0eTogLjM7XG59XG5cbi5mYy1iZ2V2ZW50IHsgLyogZGVmYXVsdCBsb29rIGZvciBiYWNrZ3JvdW5kIGV2ZW50cyAqL1xuXHRiYWNrZ3JvdW5kOiByZ2IoMTQzLCAyMjMsIDEzMCk7XG5cdG9wYWNpdHk6IC4zO1xufVxuXG4uZmMtbm9uYnVzaW5lc3MgeyAvKiBkZWZhdWx0IGxvb2sgZm9yIG5vbi1idXNpbmVzcy1ob3VycyBhcmVhcyAqL1xuXHQvKiB3aWxsIGluaGVyaXQgLmZjLWJnZXZlbnQncyBzdHlsZXMgKi9cblx0YmFja2dyb3VuZDogI2Q3ZDdkNztcbn1cblxuXG4vKiBJY29ucyAoaW5saW5lIGVsZW1lbnRzIHdpdGggc3R5bGVkIHRleHQgdGhhdCBtb2NrIGFycm93IGljb25zKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtaWNvbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0aGVpZ2h0OiAxZW07XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZvbnQtc2l6ZTogMWVtO1xuXHRmb250LWZhbWlseTogXCJDb3VyaWVyIE5ld1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdC8qIGRvbid0IGFsbG93IGJyb3dzZXIgdGV4dC1zZWxlY3Rpb24gKi9cblx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHR9XG5cbi8qXG5BY2NlcHRhYmxlIGZvbnQtZmFtaWx5IG92ZXJyaWRlcyBmb3IgaW5kaXZpZHVhbCBpY29uczpcblx0XCJBcmlhbFwiLCBzYW5zLXNlcmlmXG5cdFwiVGltZXMgTmV3IFJvbWFuXCIsIHNlcmlmXG5cbk5PVEU6IHVzZSBwZXJjZW50YWdlIGZvbnQgc2l6ZXMgb3IgZWxzZSBvbGQgSUUgY2hva2VzXG4qL1xuXG4uZmMtaWNvbjphZnRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZjLWljb24tbGVmdC1zaW5nbGUtYXJyb3c6YWZ0ZXIge1xuXHR0b3A6IC03JTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGZvbnQtc2l6ZTogMjAwJTtcblx0Y29udGVudDogXCJcXDAyMDM5XCI7XG59XG5cbi5mYy1pY29uLXJpZ2h0LXNpbmdsZS1hcnJvdzphZnRlciB7XG5cdHRvcDogLTclO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Zm9udC1zaXplOiAyMDAlO1xuXHRjb250ZW50OiBcIlxcMDIwM0FcIjtcbn1cblxuLmZjLWljb24tbGVmdC1kb3VibGUtYXJyb3c6YWZ0ZXIge1xuXHR0b3A6IC03JTtcblx0Zm9udC1zaXplOiAxNjAlO1xuXHRjb250ZW50OiBcIlxcMDAwQUJcIjtcbn1cblxuLmZjLWljb24tcmlnaHQtZG91YmxlLWFycm93OmFmdGVyIHtcblx0dG9wOiAtNyU7XG5cdGZvbnQtc2l6ZTogMTYwJTtcblx0Y29udGVudDogXCJcXDAwMEJCXCI7XG59XG5cbi5mYy1pY29uLWxlZnQtdHJpYW5nbGU6YWZ0ZXIge1xuXHR0b3A6IDMlO1xuXHRmb250LXNpemU6IDEyNSU7XG5cdGNvbnRlbnQ6IFwiXFwyNUM0XCI7XG59XG5cbi5mYy1pY29uLXJpZ2h0LXRyaWFuZ2xlOmFmdGVyIHtcblx0dG9wOiAzJTtcblx0Zm9udC1zaXplOiAxMjUlO1xuXHRjb250ZW50OiBcIlxcMjVCQVwiO1xufVxuXG4uZmMtaWNvbi1kb3duLXRyaWFuZ2xlOmFmdGVyIHtcblx0dG9wOiAyJTtcblx0Zm9udC1zaXplOiAxMjUlO1xuXHRjb250ZW50OiBcIlxcMjVCQ1wiO1xufVxuXG4uZmMtaWNvbi14OmFmdGVyIHtcblx0dG9wOiA2JTtcblx0Zm9udC1zaXplOiAyMDAlO1xuXHRjb250ZW50OiBcIlxcMDAwRDdcIjtcbn1cblxuXG4vKiBCdXR0b25zIChzdHlsZWQgPGJ1dHRvbj4gdGFncywgbm9ybWFsaXplZCB0byB3b3JrIGNyb3NzLWJyb3dzZXIpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYyBidXR0b24ge1xuXHQvKiBmb3JjZSBoZWlnaHQgdG8gaW5jbHVkZSB0aGUgYm9yZGVyIGFuZCBwYWRkaW5nICovXG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRoZWlnaHQ6IDIuMWVtO1xuXG5cdC8qIGRpbWVuc2lvbnMgKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwIC42ZW07XG5cblx0LyogdGV4dCAmIGN1cnNvciAqL1xuXHRmb250LXNpemU6IDFlbTsgLyogbm9ybWFsaXplICovXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogRmlyZWZveCBoYXMgYW4gYW5ub3lpbmcgaW5uZXIgYm9yZGVyICovXG4uZmMgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9XG5cbi5mYy1zdGF0ZS1kZWZhdWx0IHsgLyogbm9uLXRoZW1lICovXG5cdGJvcmRlcjogMXB4IHNvbGlkO1xufVxuXG4uZmMtc3RhdGUtZGVmYXVsdC5mYy1jb3JuZXItbGVmdCB7IC8qIG5vbi10aGVtZSAqL1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbn1cblxuLmZjLXN0YXRlLWRlZmF1bHQuZmMtY29ybmVyLXJpZ2h0IHsgLyogbm9uLXRoZW1lICovXG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG5cbi8qIGljb25zIGluIGJ1dHRvbnMgKi9cblxuLmZjIGJ1dHRvbiAuZmMtaWNvbiB7IC8qIG5vbi10aGVtZSAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogLTAuMDVlbTsgLyogc2VlbXMgdG8gYmUgYSBnb29kIGFkanVzdG1lbnQgYWNyb3NzIGJyb3dzZXJzICovXG5cdG1hcmdpbjogMCAuMmVtO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKlxuICBidXR0b24gc3RhdGVzXG4gIGJvcnJvd2VkIGZyb20gdHdpdHRlciBib290c3RyYXAgKGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5jb20vYm9vdHN0cmFwLylcbiovXG5cbi5mYy1zdGF0ZS1kZWZhdWx0IHtcblx0Y29sb3I6ICMzMzM7XG5cdHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcblx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcblx0YmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmLCAjZTZlNmU2KTtcblx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKCNmZmZmZmYpLCB0bygjZTZlNmU2KSk7XG5cdGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiwgI2U2ZTZlNik7XG5cdGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYsICNlNmU2ZTYpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmZmZmLCAjZTZlNmU2KTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuXHRib3JkZXItY29sb3I6ICNlNmU2ZTYgI2U2ZTZlNiAjYmZiZmJmO1xuXHRib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjI1KTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4uZmMtc3RhdGUtaG92ZXIsXG4uZmMtc3RhdGUtZG93bixcbi5mYy1zdGF0ZS1hY3RpdmUsXG4uZmMtc3RhdGUtZGlzYWJsZWQge1xuXHRjb2xvcjogIzMzMzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbn1cblxuLmZjLXN0YXRlLWhvdmVyIHtcblx0Y29sb3I6ICMzMzMzMzM7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTVweDtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMXMgbGluZWFyO1xuXHQgICAtbW96LXRyYW5zaXRpb246IGJhY2tncm91bmQtcG9zaXRpb24gMC4xcyBsaW5lYXI7XG5cdCAgICAgLW8tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjFzIGxpbmVhcjtcblx0ICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMXMgbGluZWFyO1xufVxuXG4uZmMtc3RhdGUtZG93bixcbi5mYy1zdGF0ZS1hY3RpdmUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRib3gtc2hhZG93OiBpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi5mYy1zdGF0ZS1kaXNhYmxlZCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0b3BhY2l0eTogMC42NTtcbn1cblxuXG4vKiBCdXR0b25zIEdyb3Vwc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtYnV0dG9uLWdyb3VwIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKlxuZXZlcnkgYnV0dG9uIHRoYXQgaXMgbm90IGZpcnN0IGluIGEgYnV0dG9uIGdyb3VwIHNob3VsZCBzY29vdGNoIG92ZXIgb25lIHBpeGVsIGFuZCBjb3ZlciB0aGVcbnByZXZpb3VzIGJ1dHRvbidzIGJvcmRlci4uLlxuKi9cblxuLmZjIC5mYy1idXR0b24tZ3JvdXAgPiAqIHsgLyogZXh0cmEgcHJlY2VkZW5jZSBiL2MgYnV0dG9ucyBoYXZlIG1hcmdpbiBzZXQgdG8gemVybyAqL1xuXHRmbG9hdDogbGVmdDtcblx0bWFyZ2luOiAwIDAgMCAtMXB4O1xufVxuXG4uZmMgLmZjLWJ1dHRvbi1ncm91cCA+IDpmaXJzdC1jaGlsZCB7IC8qIHNhbWUgKi9cblx0bWFyZ2luLWxlZnQ6IDA7XG59XG5cblxuLyogUG9wb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtcG9wb3ZlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwwLDAsLjE1KTtcbn1cblxuLmZjLXBvcG92ZXIgLmZjLWhlYWRlciB7IC8qIFRPRE86IGJlIG1vcmUgY29uc2lzdGVudCB3aXRoIGZjLWhlYWQvZmMtYm9keSAqL1xuXHRwYWRkaW5nOiAycHggNHB4O1xufVxuXG4uZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy10aXRsZSB7XG5cdG1hcmdpbjogMCAycHg7XG59XG5cbi5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLWNsb3NlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmMtbHRyIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLXRpdGxlLFxuLmZjLXJ0bCAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy1jbG9zZSB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuXG4uZmMtcnRsIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLXRpdGxlLFxuLmZjLWx0ciAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy1jbG9zZSB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyogdW50aGVtZWQgKi9cblxuLmZjLXVudGhlbWVkIC5mYy1wb3BvdmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy1jbG9zZSB7XG5cdG1hcmdpbi10b3A6IDJweDtcblx0Zm9udC1zaXplOiAuOWVtO1xufVxuXG4vKiBqcXVpIHRoZW1lZCAqL1xuXG4uZmMtcG9wb3ZlciA+IC51aS13aWRnZXQtaGVhZGVyICsgLnVpLXdpZGdldC1jb250ZW50IHtcblx0Ym9yZGVyLXRvcDogMDsgLyogd2hlcmUgdGhleSBtZWV0LCBsZXQgdGhlIGhlYWRlciBoYXZlIHRoZSBib3JkZXIgKi9cbn1cblxuXG4vKiBNaXNjIFJldXNhYmxlIENvbXBvbmVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLWRpdmlkZXIge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cblxuaHIuZmMtZGl2aWRlciB7XG5cdGhlaWdodDogMDtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwIDAgMnB4OyAvKiBoZWlnaHQgaXMgdW5yZWxpYWJsZSBhY3Jvc3MgYnJvd3NlcnMsIHNvIHVzZSBwYWRkaW5nICovXG5cdGJvcmRlci13aWR0aDogMXB4IDA7XG59XG5cbi5mYy1jbGVhciB7XG5cdGNsZWFyOiBib3RoO1xufVxuXG4uZmMtYmcsXG4uZmMtYmdldmVudC1za2VsZXRvbixcbi5mYy1oaWdobGlnaHQtc2tlbGV0b24sXG4uZmMtaGVscGVyLXNrZWxldG9uIHtcblx0LyogdGhlc2UgZWxlbWVudCBzaG91bGQgYWx3YXlzIGNsaW5nIHRvIHRvcC1sZWZ0L3JpZ2h0IGNvcm5lcnMgKi9cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRsZWZ0OiAwO1xufVxuXG4uZmMtYmcge1xuXHRib3R0b206IDA7IC8qIHN0cmVjaCBiZyB0byBib3R0b20gZWRnZSAqL1xufVxuXG4uZmMtYmcgdGFibGUge1xuXHRoZWlnaHQ6IDEwMCU7IC8qIHN0cmVjaCBiZyB0byBib3R0b20gZWRnZSAqL1xufVxuXG5cbi8qIFRhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMgdGFibGUge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBmaXggc2Nyb2xsYmFyIGlzc3VlIGluIGZpcmVmb3ggKi9cblx0d2lkdGg6IDEwMCU7XG5cdGZvbnQtc2l6ZTogMWVtOyAvKiBub3JtYWxpemUgY3Jvc3MtYnJvd3NlciAqL1xuXHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcbn1cblxuLmZjIHRoIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmMgdGgsXG4uZmMgdGQge1xuXHRwYWRkaW5nOiAwO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLmZjIHRkLmZjLXRvZGF5IHtcblx0Ym9yZGVyLXN0eWxlOiBkb3VibGU7IC8qIG92ZXJjb21lIG5laWdoYm9yaW5nIGJvcmRlcnMgKi9cbn1cblxuXG4vKiBJbnRlcm5hbCBOYXYgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuYVtkYXRhLWdvdG9dIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG5hW2RhdGEtZ290b106aG92ZXIge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuXG4vKiBGYWtlIFRhYmxlIFJvd3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjIC5mYy1yb3cgeyAvKiBleHRyYSBwcmVjZWRlbmNlIHRvIG92ZXJjb21lIHRoZW1lcyB3LyAudWktd2lkZ2V0LWNvbnRlbnQgZm9yY2luZyBhIDFweCBib3JkZXIgKi9cblx0Lyogbm8gdmlzaWJsZSBib3JkZXIgYnkgZGVmYXVsdC4gYnV0IG1ha2UgYXZhaWxhYmxlIGlmIG5lZWQgYmUgKHNjcm9sbGJhciB3aWR0aCBjb21wZW5zYXRpb24pICovXG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmZjLXJvdyB0YWJsZSB7XG5cdGJvcmRlci1yaWdodDogMCBoaWRkZW4gdHJhbnNwYXJlbnQ7XG5cblx0Lyogbm8gYm90dG9tIGJvcmRlcnMgb24gcm93cyAqL1xuXHRib3JkZXItYm90dG9tOiAwIGhpZGRlbiB0cmFuc3BhcmVudDtcblx0LyogZG9uJ3QgcHV0IGxlZnQvcmlnaHQgYm9yZGVyIG9uIGFueXRoaW5nIHdpdGhpbiBhIGZha2Ugcm93LlxuXHQgICB0aGUgb3V0ZXIgdGJvZHkgd2lsbCB3b3JyeSBhYm91dCB0aGlzICovXG5cdGJvcmRlci1sZWZ0OiAwIGhpZGRlbiB0cmFuc3BhcmVudDtcbn1cblxuLmZjLXJvdzpmaXJzdC1jaGlsZCB0YWJsZSB7XG5cdGJvcmRlci10b3A6IDAgaGlkZGVuIHRyYW5zcGFyZW50OyAvKiBubyB0b3AgYm9yZGVyIG9uIGZpcnN0IHJvdyAqL1xufVxuXG5cbi8qIERheSBSb3cgKHVzZWQgd2l0aGluIHRoZSBoZWFkZXIgYW5kIHRoZSBEYXlHcmlkKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtcm93IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmMtcm93IC5mYy1iZyB7XG5cdHotaW5kZXg6IDE7XG59XG5cbi8qIGhpZ2hsaWdodGluZyBjZWxscyAmIGJhY2tncm91bmQgZXZlbnQgc2tlbGV0b24gKi9cblxuLmZjLXJvdyAuZmMtYmdldmVudC1za2VsZXRvbixcbi5mYy1yb3cgLmZjLWhpZ2hsaWdodC1za2VsZXRvbiB7XG5cdGJvdHRvbTogMDsgLyogc3RyZXRjaCBza2VsZXRvbiB0byBib3R0b20gb2Ygcm93ICovXG59XG5cbi5mYy1yb3cgLmZjLWJnZXZlbnQtc2tlbGV0b24gdGFibGUsXG4uZmMtcm93IC5mYy1oaWdobGlnaHQtc2tlbGV0b24gdGFibGUge1xuXHRoZWlnaHQ6IDEwMCU7IC8qIHN0cmV0Y2ggc2tlbGV0b24gdG8gYm90dG9tIG9mIHJvdyAqL1xufVxuXG4uZmMtcm93IC5mYy1oaWdobGlnaHQtc2tlbGV0b24gdGQsXG4uZmMtcm93IC5mYy1iZ2V2ZW50LXNrZWxldG9uIHRkIHtcblx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmZjLXJvdyAuZmMtYmdldmVudC1za2VsZXRvbiB7XG5cdHotaW5kZXg6IDI7XG5cbn1cblxuLmZjLXJvdyAuZmMtaGlnaGxpZ2h0LXNrZWxldG9uIHtcblx0ei1pbmRleDogMztcbn1cblxuLypcbnJvdyBjb250ZW50ICh3aGljaCBjb250YWlucyBkYXkvd2VlayBudW1iZXJzIGFuZCBldmVudHMpIGFzIHdlbGwgYXMgXCJoZWxwZXJcIiAod2hpY2ggY29udGFpbnNcbnRlbXBvcmFyeSByZW5kZXJlZCBldmVudHMpLlxuKi9cblxuLmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogNDtcblx0cGFkZGluZy1ib3R0b206IDJweDsgLyogbWF0Y2hlcyB0aGUgc3BhY2UgYWJvdmUgdGhlIGV2ZW50cyAqL1xufVxuXG4uZmMtcm93IC5mYy1oZWxwZXItc2tlbGV0b24ge1xuXHR6LWluZGV4OiA1O1xufVxuXG4uZmMtcm93IC5mYy1jb250ZW50LXNrZWxldG9uIHRkLFxuLmZjLXJvdyAuZmMtaGVscGVyLXNrZWxldG9uIHRkIHtcblx0Lyogc2VlLXRocm91Z2ggdG8gdGhlIGJhY2tncm91bmQgYmVsb3cgKi9cblx0YmFja2dyb3VuZDogbm9uZTsgLyogaW4gY2FzZSA8dGQ+cyBhcmUgZ2xvYmFsbHkgc3R5bGVkICovXG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0LyogZG9uJ3QgcHV0IGEgYm9yZGVyIGJldHdlZW4gZXZlbnRzIGFuZC9vciB0aGUgZGF5IG51bWJlciAqL1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZmMtcm93IC5mYy1jb250ZW50LXNrZWxldG9uIHRib2R5IHRkLCAvKiBjZWxscyB3aXRoIGV2ZW50cyBpbnNpZGUgKHNvIE5PVCB0aGUgZGF5IG51bWJlciBjZWxsKSAqL1xuLmZjLXJvdyAuZmMtaGVscGVyLXNrZWxldG9uIHRib2R5IHRkIHtcblx0LyogZG9uJ3QgcHV0IGEgYm9yZGVyIGJldHdlZW4gZXZlbnQgY2VsbHMgKi9cblx0Ym9yZGVyLXRvcDogMDtcbn1cblxuXG4vKiBTY3JvbGxpbmcgQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy1zY3JvbGxlciB7XG5cdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLyogVE9ETzogbW92ZSB0byBhZ2VuZGEvYmFzaWMgKi9cbi5mYy1zY3JvbGxlciA+IC5mYy1kYXktZ3JpZCxcbi5mYy1zY3JvbGxlciA+IC5mYy10aW1lLWdyaWQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7IC8qIHJlLXNjb3BlIGFsbCBwb3NpdGlvbnMgKi9cblx0d2lkdGg6IDEwMCU7IC8qIGhhY2sgdG8gZm9yY2UgcmUtc2l6aW5nIHRoaXMgaW5uZXIgZWxlbWVudCB3aGVuIHNjcm9sbGJhcnMgYXBwZWFyL2Rpc2FwcGVhciAqL1xufVxuXG5cbi8qIEdsb2JhbCBFdmVudCBTdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLWV2ZW50IHtcblx0cG9zaXRpb246IHJlbGF0aXZlOyAvKiBmb3IgcmVzaXplIGhhbmRsZSBhbmQgb3RoZXIgaW5uZXIgcG9zaXRpb25pbmcgKi9cblx0ZGlzcGxheTogYmxvY2s7IC8qIG1ha2UgdGhlIDxhPiB0YWcgYmxvY2sgKi9cblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDsgLyogdW5kbyBqcXVpJ3MgdWktd2lkZ2V0LWhlYWRlciBib2xkICovXG5cdGZvbnQtc2l6ZTogLjg1ZW07XG5cdGxpbmUtaGVpZ2h0OiAxLjM7XG5cdGJvcmRlcjogMXB4IHNvbGlkICMzYTg3YWQ7IC8qIGRlZmF1bHQgQk9SREVSIGNvbG9yICovXG5cdGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmZjLWV2ZW50LFxuLmZjLWV2ZW50LWRvdCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMzYTg3YWQ7IC8qIGRlZmF1bHQgQkFDS0dST1VORCBjb2xvciAqL1xufVxuXG4vKiBvdmVycG93ZXIgc29tZSBvZiBib290c3RyYXAncyBhbmQganF1aSdzIHN0eWxlcyBvbiA8YT4gdGFncyAqL1xuLmZjLWV2ZW50LFxuLmZjLWV2ZW50OmhvdmVyLFxuLnVpLXdpZGdldCAuZmMtZXZlbnQge1xuXHRjb2xvcjogI2ZmZjsgLyogZGVmYXVsdCBURVhUIGNvbG9yICovXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogaWYgPGE+IGhhcyBhbiBocmVmICovXG59XG5cbi5mYy1ldmVudFtocmVmXSxcbi5mYy1ldmVudC5mYy1kcmFnZ2FibGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7IC8qIGdpdmUgZXZlbnRzIHdpdGggbGlua3MgYW5kIGRyYWdnYWJsZSBldmVudHMgYSBoYW5kIG1vdXNlIHBvaW50ZXIgKi9cbn1cblxuLmZjLW5vdC1hbGxvd2VkLCAvKiBjYXVzZXMgYSBcIndhcm5pbmdcIiBjdXJzb3IuIGFwcGxpZWQgb24gYm9keSAqL1xuLmZjLW5vdC1hbGxvd2VkIC5mYy1ldmVudCB7IC8qIHRvIG92ZXJyaWRlIGFuIGV2ZW50J3MgY3VzdG9tIGN1cnNvciAqL1xuXHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZmMtZXZlbnQgLmZjLWJnIHsgLyogdGhlIGdlbmVyaWMgLmZjLWJnIGFscmVhZHkgZG9lcyBwb3NpdGlvbiAqL1xuXHR6LWluZGV4OiAxO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRvcGFjaXR5OiAuMjU7XG59XG5cbi5mYy1ldmVudCAuZmMtY29udGVudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMjtcbn1cblxuLyogcmVzaXplciAoY3Vyc29yIEFORCB0b3VjaCBkZXZpY2VzKSAqL1xuXG4uZmMtZXZlbnQgLmZjLXJlc2l6ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IDQ7XG59XG5cbi8qIHJlc2l6ZXIgKHRvdWNoIGRldmljZXMpICovXG5cbi5mYy1ldmVudCAuZmMtcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mYy1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLXJlc2l6ZXIsXG4uZmMtZXZlbnQuZmMtc2VsZWN0ZWQgLmZjLXJlc2l6ZXIge1xuXHQvKiBvbmx5IHNob3cgd2hlbiBob3ZlcmluZyBvciBzZWxlY3RlZCAod2l0aCB0b3VjaCkgKi9cblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIGhpdCBhcmVhICovXG5cbi5mYy1ldmVudC5mYy1zZWxlY3RlZCAuZmMtcmVzaXplcjpiZWZvcmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXHRsZWZ0OiA1MCU7XG5cdHotaW5kZXg6IDk5OTk7IC8qIHVzZXIgb2YgdGhpcyB1dGlsIGNhbiBzY29wZSB3aXRoaW4gYSBsb3dlciB6LWluZGV4ICovXG5cdHdpZHRoOiA0MHB4O1xuXHRoZWlnaHQ6IDQwcHg7XG5cdG1hcmdpbi10b3A6IC0yMHB4O1xuXHRtYXJnaW4tbGVmdDogLTIwcHg7XG5cdC8qIDQweDQwIHRvdWNoIGFyZWEgKi9cblx0Y29udGVudDogXCJcIjtcbn1cblxuXG4vKiBFdmVudCBTZWxlY3Rpb24gKG9ubHkgZm9yIHRvdWNoIGRldmljZXMpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy1ldmVudC5mYy1zZWxlY3RlZCB7XG5cdHotaW5kZXg6IDk5OTkgIWltcG9ydGFudDsgLyogb3ZlcmNvbWVzIGlubGluZSB6LWluZGV4ICovXG5cdGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5mYy1ldmVudC5mYy1zZWxlY3RlZC5mYy1kcmFnZ2luZyB7XG5cdGJveC1zaGFkb3c6IDAgMnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cblxuLyogSG9yaXpvbnRhbCBFdmVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogYmlnZ2VyIHRvdWNoIGFyZWEgd2hlbiBzZWxlY3RlZCAqL1xuLmZjLWgtZXZlbnQuZmMtc2VsZWN0ZWQ6YmVmb3JlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IC0xMHB4O1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAtMTBweDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogMzsgLyogYmVsb3cgcmVzaXplcnMgKi9cblx0Y29udGVudDogXCJcIjtcbn1cblxuLyogZXZlbnRzIHRoYXQgYXJlIGNvbnRpbnVpbmcgdG8vZnJvbSBhbm90aGVyIHdlZWsuIGtpbGwgcm91bmRlZCBjb3JuZXJzIGFuZCBidXR0IHVwIGFnYWluc3QgZWRnZSAqL1xuXG4uZmMtbHRyIC5mYy1oLWV2ZW50LmZjLW5vdC1zdGFydCxcbi5mYy1ydGwgLmZjLWgtZXZlbnQuZmMtbm90LWVuZCB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDFweDsgLyogcmVwbGFjZSB0aGUgYm9yZGVyIHdpdGggcGFkZGluZyAqL1xuXHRib3JkZXItbGVmdC13aWR0aDogMDtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmZjLWx0ciAuZmMtaC1ldmVudC5mYy1ub3QtZW5kLFxuLmZjLXJ0bCAuZmMtaC1ldmVudC5mYy1ub3Qtc3RhcnQge1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG5cdHBhZGRpbmctcmlnaHQ6IDFweDsgLyogcmVwbGFjZSB0aGUgYm9yZGVyIHdpdGggcGFkZGluZyAqL1xuXHRib3JkZXItcmlnaHQtd2lkdGg6IDA7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLyogcmVzaXplciAoY3Vyc29yIEFORCB0b3VjaCBkZXZpY2VzKSAqL1xuXG4vKiBsZWZ0IHJlc2l6ZXIgICovXG4uZmMtbHRyIC5mYy1oLWV2ZW50IC5mYy1zdGFydC1yZXNpemVyLFxuLmZjLXJ0bCAuZmMtaC1ldmVudCAuZmMtZW5kLXJlc2l6ZXIge1xuXHRsZWZ0OiAtMXB4OyAvKiBvdmVyY29tZSBib3JkZXIgKi9cblx0Y3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLyogcmlnaHQgcmVzaXplciAqL1xuLmZjLWx0ciAuZmMtaC1ldmVudCAuZmMtZW5kLXJlc2l6ZXIsXG4uZmMtcnRsIC5mYy1oLWV2ZW50IC5mYy1zdGFydC1yZXNpemVyIHtcblx0cmlnaHQ6IC0xcHg7IC8qIG92ZXJjb21lIGJvcmRlciAqL1xuXHRjdXJzb3I6IGUtcmVzaXplO1xufVxuXG4vKiByZXNpemVyIChtb3VzZSBkZXZpY2VzKSAqL1xuXG4uZmMtaC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLXJlc2l6ZXIge1xuXHR0b3A6IC0xcHg7IC8qIG92ZXJjb21lIHRvcCBib3JkZXIgKi9cblx0Ym90dG9tOiAtMXB4OyAvKiBvdmVyY29tZSBib3R0b20gYm9yZGVyICovXG5cdHdpZHRoOiA3cHg7XG59XG5cbi8qIHJlc2l6ZXIgKHRvdWNoIGRldmljZXMpICovXG5cbi5mYy1oLWV2ZW50LmZjLXNlbGVjdGVkIC5mYy1yZXNpemVyIHtcblx0LyogdmVydGljYWxseSBjZW50ZXIgKi9cblx0dG9wOiA1MCU7XG5cdHdpZHRoOiA2cHg7XG5cdGhlaWdodDogNnB4O1xuXHRtYXJnaW4tdG9wOiAtNHB4O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGluaGVyaXQ7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHQvKiA4eDggbGl0dGxlIGRvdCAqL1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi8qIGxlZnQgcmVzaXplciAgKi9cbi5mYy1sdHIgLmZjLWgtZXZlbnQuZmMtc2VsZWN0ZWQgLmZjLXN0YXJ0LXJlc2l6ZXIsXG4uZmMtcnRsIC5mYy1oLWV2ZW50LmZjLXNlbGVjdGVkIC5mYy1lbmQtcmVzaXplciB7XG5cdG1hcmdpbi1sZWZ0OiAtNHB4OyAvKiBjZW50ZXJzIHRoZSA4eDggZG90IG9uIHRoZSBsZWZ0IGVkZ2UgKi9cbn1cblxuLyogcmlnaHQgcmVzaXplciAqL1xuLmZjLWx0ciAuZmMtaC1ldmVudC5mYy1zZWxlY3RlZCAuZmMtZW5kLXJlc2l6ZXIsXG4uZmMtcnRsIC5mYy1oLWV2ZW50LmZjLXNlbGVjdGVkIC5mYy1zdGFydC1yZXNpemVyIHtcblx0bWFyZ2luLXJpZ2h0OiAtNHB4OyAvKiBjZW50ZXJzIHRoZSA4eDggZG90IG9uIHRoZSByaWdodCBlZGdlICovXG59XG5cblxuLyogRGF5R3JpZCBldmVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbldlIHVzZSB0aGUgZnVsbCBcImZjLWRheS1ncmlkLWV2ZW50XCIgY2xhc3MgaW5zdGVhZCBvZiB1c2luZyBkZXNjZW5kYW50cyBiZWNhdXNlIHRoZSBldmVudCB3b24ndFxuYmUgYSBkZXNjZW5kYW50IG9mIHRoZSBncmlkIHdoZW4gaXQgaXMgYmVpbmcgZHJhZ2dlZC5cbiovXG5cbi5mYy1kYXktZ3JpZC1ldmVudCB7XG5cdG1hcmdpbjogMXB4IDJweCAwOyAvKiBzcGFjaW5nIGJldHdlZW4gZXZlbnRzIGFuZCBlZGdlcyAqL1xuXHRwYWRkaW5nOiAwIDFweDtcbn1cblxudHI6Zmlyc3QtY2hpbGQgPiB0ZCA+IC5mYy1kYXktZ3JpZC1ldmVudCB7XG5cdG1hcmdpbi10b3A6IDJweDsgLyogYSBsaXR0bGUgYml0IG1vcmUgc3BhY2UgYmVmb3JlIHRoZSBmaXJzdCBldmVudCAqL1xufVxuXG4uZmMtZGF5LWdyaWQtZXZlbnQuZmMtc2VsZWN0ZWQ6YWZ0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdC8qIG92ZXJjb21lIHRoZSBib3JkZXJzICovXG5cdHRvcDogLTFweDtcblx0cmlnaHQ6IC0xcHg7XG5cdGJvdHRvbTogLTFweDtcblx0bGVmdDogLTFweDtcblx0ei1pbmRleDogMTsgLyogc2FtZSB6LWluZGV4IGFzIGZjLWJnLCBiZWhpbmQgdGV4dCAqL1xuXHQvKiBkYXJrZW5pbmcgZWZmZWN0ICovXG5cdGJhY2tncm91bmQ6ICMwMDA7XG5cdG9wYWNpdHk6IC4yNTtcblx0Y29udGVudDogXCJcIjtcbn1cblxuLmZjLWRheS1ncmlkLWV2ZW50IC5mYy1jb250ZW50IHsgLyogZm9yY2UgZXZlbnRzIHRvIGJlIG9uZS1saW5lIHRhbGwgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZjLWRheS1ncmlkLWV2ZW50IC5mYy10aW1lIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIHJlc2l6ZXIgKGN1cnNvciBkZXZpY2VzKSAqL1xuXG4vKiBsZWZ0IHJlc2l6ZXIgICovXG4uZmMtbHRyIC5mYy1kYXktZ3JpZC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLXN0YXJ0LXJlc2l6ZXIsXG4uZmMtcnRsIC5mYy1kYXktZ3JpZC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLWVuZC1yZXNpemVyIHtcblx0bWFyZ2luLWxlZnQ6IC0ycHg7IC8qIHRvIHRoZSBkYXkgY2VsbCdzIGVkZ2UgKi9cbn1cblxuLyogcmlnaHQgcmVzaXplciAqL1xuLmZjLWx0ciAuZmMtZGF5LWdyaWQtZXZlbnQuZmMtYWxsb3ctbW91c2UtcmVzaXplIC5mYy1lbmQtcmVzaXplcixcbi5mYy1ydGwgLmZjLWRheS1ncmlkLWV2ZW50LmZjLWFsbG93LW1vdXNlLXJlc2l6ZSAuZmMtc3RhcnQtcmVzaXplciB7XG5cdG1hcmdpbi1yaWdodDogLTJweDsgLyogdG8gdGhlIGRheSBjZWxsJ3MgZWRnZSAqL1xufVxuXG5cbi8qIEV2ZW50IExpbWl0aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFwibW9yZVwiIGxpbmsgdGhhdCByZXByZXNlbnRzIGhpZGRlbiBldmVudHMgKi9cblxuYS5mYy1tb3JlIHtcblx0bWFyZ2luOiAxcHggM3B4O1xuXHRmb250LXNpemU6IC44NWVtO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYS5mYy1tb3JlOmhvdmVyIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5mYy1saW1pdGVkIHsgLyogcm93cyBhbmQgY2VsbHMgdGhhdCBhcmUgaGlkZGVuIGJlY2F1c2Ugb2YgYSBcIm1vcmVcIiBsaW5rICovXG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIHBvcG92ZXIgdGhhdCBhcHBlYXJzIHdoZW4gXCJtb3JlXCIgbGluayBpcyBjbGlja2VkICovXG5cbi5mYy1kYXktZ3JpZCAuZmMtcm93IHtcblx0ei1pbmRleDogMTsgLyogbWFrZSB0aGUgXCJtb3JlXCIgcG9wb3ZlciBvbmUgaGlnaGVyIHRoYW4gdGhpcyAqL1xufVxuXG4uZmMtbW9yZS1wb3BvdmVyIHtcblx0ei1pbmRleDogMjtcblx0d2lkdGg6IDIyMHB4O1xufVxuXG4uZmMtbW9yZS1wb3BvdmVyIC5mYy1ldmVudC1jb250YWluZXIge1xuXHRwYWRkaW5nOiAxMHB4O1xufVxuXG5cbi8qIE5vdyBJbmRpY2F0b3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLW5vdy1pbmRpY2F0b3Ige1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvcmRlcjogMCBzb2xpZCByZWQ7XG59XG5cblxuLyogVXRpbGl0aWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy11bnNlbGVjdGFibGUge1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuXHQgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHQgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuXG5cbi8qIFRvb2xiYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLXRvb2xiYXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mYy10b29sYmFyLmZjLWhlYWRlci10b29sYmFyIHtcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4uZmMtdG9vbGJhci5mYy1mb290ZXItdG9vbGJhciB7XG5cdG1hcmdpbi10b3A6IDFlbTtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLWxlZnQge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLXJpZ2h0IHtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZmMtdG9vbGJhciAuZmMtY2VudGVyIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKiB0aGUgdGhpbmdzIHdpdGhpbiBlYWNoIGxlZnQvcmlnaHQvY2VudGVyIHNlY3Rpb24gKi9cbi5mYyAuZmMtdG9vbGJhciA+ICogPiAqIHsgLyogZXh0cmEgcHJlY2VkZW5jZSB0byBvdmVycmlkZSBidXR0b24gYm9yZGVyIG1hcmdpbnMgKi9cblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbi1sZWZ0OiAuNzVlbTtcbn1cblxuLyogdGhlIGZpcnN0IHRoaW5nIHdpdGhpbiBlYWNoIGxlZnQvY2VudGVyL3JpZ2h0IHNlY3Rpb24gKi9cbi5mYyAuZmMtdG9vbGJhciA+ICogPiA6Zmlyc3QtY2hpbGQgeyAvKiBleHRyYSBwcmVjZWRlbmNlIHRvIG92ZXJyaWRlIGJ1dHRvbiBib3JkZXIgbWFyZ2lucyAqL1xuXHRtYXJnaW4tbGVmdDogMDtcbn1cblxuLyogdGl0bGUgdGV4dCAqL1xuXG4uZmMtdG9vbGJhciBoMiB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogYnV0dG9uIGxheWVyaW5nIChmb3IgYm9yZGVyIHByZWNlZGVuY2UpICovXG5cbi5mYy10b29sYmFyIGJ1dHRvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLXN0YXRlLWhvdmVyLFxuLmZjLXRvb2xiYXIgLnVpLXN0YXRlLWhvdmVyIHtcblx0ei1pbmRleDogMjtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLXN0YXRlLWRvd24ge1xuXHR6LWluZGV4OiAzO1xufVxuXG4uZmMtdG9vbGJhciAuZmMtc3RhdGUtYWN0aXZlLFxuLmZjLXRvb2xiYXIgLnVpLXN0YXRlLWFjdGl2ZSB7XG5cdHotaW5kZXg6IDQ7XG59XG5cbi5mYy10b29sYmFyIGJ1dHRvbjpmb2N1cyB7XG5cdHotaW5kZXg6IDU7XG59XG5cblxuLyogVmlldyBTdHJ1Y3R1cmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogdW5kbyB0d2l0dGVyIGJvb3RzdHJhcCdzIGJveC1zaXppbmcgcnVsZXMuIG5vcm1hbGl6ZXMgcG9zaXRpb25pbmcgdGVjaG5pcXVlcyAqL1xuLyogZG9uJ3QgZG8gdGhpcyBmb3IgdGhlIHRvb2xiYXIgYmVjYXVzZSB3ZSdsbCB3YW50IGJvb3RzdHJhcCB0byBzdHlsZSB0aG9zZSBidXR0b25zIGFzIHNvbWUgcHQgKi9cbi5mYy12aWV3LWNvbnRhaW5lciAqLFxuLmZjLXZpZXctY29udGFpbmVyICo6YmVmb3JlLFxuLmZjLXZpZXctY29udGFpbmVyICo6YWZ0ZXIge1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHQgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHQgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4uZmMtdmlldywgLyogc2NvcGUgcG9zaXRpb25pbmcgYW5kIHotaW5kZXgncyBmb3IgZXZlcnl0aGluZyB3aXRoaW4gdGhlIHZpZXcgKi9cbi5mYy12aWV3ID4gdGFibGUgeyAvKiBzbyBkcmFnZ2VkIGVsZW1lbnRzIGNhbiBiZSBhYm92ZSB0aGUgdmlldydzIG1haW4gZWxlbWVudCAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDE7XG59XG5cbi5mYy12aWV3LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZjLXZpZXctY29udGFpbmVyIC5sb2FkaW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxLDEsMSwwLjc1KTtcbn1cblxuXG4vKiBCYXNpY1ZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogZGF5IHJvdyBzdHJ1Y3R1cmUgKi9cblxuLmZjLWJhc2ljV2Vlay12aWV3IC5mYy1jb250ZW50LXNrZWxldG9uLFxuLmZjLWJhc2ljRGF5LXZpZXcgLmZjLWNvbnRlbnQtc2tlbGV0b24ge1xuXHQvKiB0aGVyZSBtYXkgYmUgd2VlayBudW1iZXJzIGluIHRoZXNlIHZpZXdzLCBzbyBubyBwYWRkaW5nLXRvcCAqL1xuXHRwYWRkaW5nLWJvdHRvbTogMWVtOyAvKiBlbnN1cmUgYSBzcGFjZSBhdCBib3R0b20gb2YgY2VsbCBmb3IgdXNlciBzZWxlY3RpbmcvY2xpY2tpbmcgKi9cbn1cblxuLmZjLWJhc2ljLXZpZXcgLmZjLWJvZHkgLmZjLXJvdyB7XG5cdG1pbi1oZWlnaHQ6IDRlbTsgLyogZW5zdXJlIHRoYXQgYWxsIHJvd3MgYXJlIGF0IGxlYXN0IHRoaXMgdGFsbCAqL1xufVxuXG4vKiBhIFwicmlnaWRcIiByb3cgd2lsbCB0YWtlIHVwIGEgY29uc3RhbnQgYW1vdW50IG9mIGhlaWdodCBiZWNhdXNlIGNvbnRlbnQtc2tlbGV0b24gaXMgYWJzb2x1dGUgKi9cblxuLmZjLXJvdy5mYy1yaWdpZCB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mYy1yb3cuZmMtcmlnaWQgLmZjLWNvbnRlbnQtc2tlbGV0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGxlZnQ6IDA7XG59XG5cbi8qIHdlZWsgYW5kIGRheSBudW1iZXIgc3R5bGluZyAqL1xuXG4uZmMtZGF5LXRvcC5mYy1vdGhlci1tb250aCB7XG5cdG9wYWNpdHk6IDAuMztcbn1cblxuLmZjLWJhc2ljLXZpZXcgLmZjLXdlZWstbnVtYmVyLFxuLmZjLWJhc2ljLXZpZXcgLmZjLWRheS1udW1iZXIge1xuXHRwYWRkaW5nOiAycHg7XG59XG5cbi5mYy1iYXNpYy12aWV3IHRoLmZjLXdlZWstbnVtYmVyLFxuLmZjLWJhc2ljLXZpZXcgdGguZmMtZGF5LW51bWJlciB7XG5cdHBhZGRpbmc6IDAgMnB4OyAvKiBjb2x1bW4gaGVhZGVycyBjYW4ndCBoYXZlIGFzIG11Y2ggdiBzcGFjZSAqL1xufVxuXG4uZmMtbHRyIC5mYy1iYXNpYy12aWV3IC5mYy1kYXktdG9wIC5mYy1kYXktbnVtYmVyIHsgZmxvYXQ6IHJpZ2h0OyB9XG4uZmMtcnRsIC5mYy1iYXNpYy12aWV3IC5mYy1kYXktdG9wIC5mYy1kYXktbnVtYmVyIHsgZmxvYXQ6IGxlZnQ7IH1cblxuLmZjLWx0ciAuZmMtYmFzaWMtdmlldyAuZmMtZGF5LXRvcCAuZmMtd2Vlay1udW1iZXIgeyBmbG9hdDogbGVmdDsgYm9yZGVyLXJhZGl1czogMCAwIDNweCAwOyB9XG4uZmMtcnRsIC5mYy1iYXNpYy12aWV3IC5mYy1kYXktdG9wIC5mYy13ZWVrLW51bWJlciB7IGZsb2F0OiByaWdodDsgYm9yZGVyLXJhZGl1czogMCAwIDAgM3B4OyB9XG5cbi5mYy1iYXNpYy12aWV3IC5mYy1kYXktdG9wIC5mYy13ZWVrLW51bWJlciB7XG5cdG1pbi13aWR0aDogMS41ZW07XG5cdGNvbG9yOiAjODA4MDgwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG59XG5cbi8qIHdoZW4gd2Vlay9kYXkgbnVtYmVyIGhhdmUgb3duIGNvbHVtbiAqL1xuXG4uZmMtYmFzaWMtdmlldyB0ZC5mYy13ZWVrLW51bWJlciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZjLWJhc2ljLXZpZXcgdGQuZmMtd2Vlay1udW1iZXIgPiAqIHtcblx0Lyogd29yayBhcm91bmQgdGhlIHdheSB3ZSBkbyBjb2x1bW4gcmVzaXppbmcgYW5kIGVuc3VyZSBhIG1pbmltdW0gd2lkdGggKi9cblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtaW4td2lkdGg6IDEuMjVlbTtcbn1cblxuXG4vKiBBZ2VuZGFWaWV3IGFsbC1kYXkgYXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtYWdlbmRhLXZpZXcgLmZjLWRheS1ncmlkIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyOyAvKiBzbyB0aGUgXCJtb3JlLi5cIiBwb3BvdmVyIHdpbGwgYmUgb3ZlciB0aGUgdGltZSBncmlkICovXG59XG5cbi5mYy1hZ2VuZGEtdmlldyAuZmMtZGF5LWdyaWQgLmZjLXJvdyB7XG5cdG1pbi1oZWlnaHQ6IDNlbTsgLyogYWxsLWRheSBzZWN0aW9uIHdpbGwgbmV2ZXIgZ2V0IHNob3J0ZXIgdGhhbiB0aGlzICovXG59XG5cbi5mYy1hZ2VuZGEtdmlldyAuZmMtZGF5LWdyaWQgLmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB7XG5cdHBhZGRpbmctYm90dG9tOiAxZW07IC8qIGdpdmUgc3BhY2UgdW5kZXJuZWF0aCBldmVudHMgZm9yIGNsaWNraW5nL3NlbGVjdGluZyBkYXlzICovXG59XG5cblxuLyogVGltZUdyaWQgYXhpcyBydW5uaW5nIGRvd24gdGhlIHNpZGUgKGZvciBib3RoIHRoZSBhbGwtZGF5IGFyZWEgYW5kIHRoZSBzbG90IGFyZWEpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYyAuZmMtYXhpcyB7IC8qIC5mYyB0byBvdmVyY29tZSBkZWZhdWx0IGNlbGwgc3R5bGVzICovXG5cdHBhZGRpbmc6IDAgNHB4O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZmMtbHRyIC5mYy1heGlzIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5mYy1ydGwgLmZjLWF4aXMge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udWktd2lkZ2V0IHRkLmZjLWF4aXMge1xuXHRmb250LXdlaWdodDogbm9ybWFsOyAvKiBvdmVyY29tZSBqcXVpIHRoZW1lIG1ha2luZyBpdCBib2xkICovXG59XG5cblxuLyogVGltZUdyaWQgU3RydWN0dXJlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy10aW1lLWdyaWQtY29udGFpbmVyLCAvKiBzbyBzY3JvbGwgY29udGFpbmVyJ3Mgei1pbmRleCBpcyBiZWxvdyBhbGwtZGF5ICovXG4uZmMtdGltZS1ncmlkIHsgLyogc28gc2xhdHMvYmcvY29udGVudC9ldGMgcG9zaXRpb25zIGdldCBzY29wZWQgd2l0aGluIGhlcmUgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xufVxuXG4uZmMtdGltZS1ncmlkIHtcblx0bWluLWhlaWdodDogMTAwJTsgLyogc28gaWYgaGVpZ2h0IHNldHRpbmcgaXMgJ2F1dG8nLCAuZmMtYmcgc3RyZXRjaGVzIHRvIGZpbGwgaGVpZ2h0ICovXG59XG5cbi5mYy10aW1lLWdyaWQgdGFibGUgeyAvKiBkb24ndCBwdXQgb3V0ZXIgYm9yZGVycyBvbiBzbGF0cy9iZy9jb250ZW50L2V0YyAqL1xuXHRib3JkZXI6IDAgaGlkZGVuIHRyYW5zcGFyZW50O1xufVxuXG4uZmMtdGltZS1ncmlkID4gLmZjLWJnIHtcblx0ei1pbmRleDogMTtcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtc2xhdHMsXG4uZmMtdGltZS1ncmlkID4gaHIgeyAvKiB0aGUgPGhyPiBBZ2VuZGFWaWV3IGluamVjdHMgd2hlbiBncmlkIGlzIHNob3J0ZXIgdGhhbiBzY3JvbGxlciAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5mYy10aW1lLWdyaWQgLmZjLWNvbnRlbnQtY29sIHtcblx0cG9zaXRpb246IHJlbGF0aXZlOyAvKiBiZWNhdXNlIG5vdy1pbmRpY2F0b3IgbGl2ZXMgZGlyZWN0bHkgaW5zaWRlICovXG59XG5cbi5mYy10aW1lLWdyaWQgLmZjLWNvbnRlbnQtc2tlbGV0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGxlZnQ6IDA7XG5cdHotaW5kZXg6IDM7XG59XG5cbi8qIGRpdnMgd2l0aGluIGEgY2VsbCB3aXRoaW4gdGhlIGZjLWNvbnRlbnQtc2tlbGV0b24gKi9cblxuLmZjLXRpbWUtZ3JpZCAuZmMtYnVzaW5lc3MtY29udGFpbmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xufVxuXG4uZmMtdGltZS1ncmlkIC5mYy1iZ2V2ZW50LWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMjtcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtaGlnaGxpZ2h0LWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMztcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtZXZlbnQtY29udGFpbmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiA0O1xufVxuXG4uZmMtdGltZS1ncmlkIC5mYy1ub3ctaW5kaWNhdG9yLWxpbmUge1xuXHR6LWluZGV4OiA1O1xufVxuXG4uZmMtdGltZS1ncmlkIC5mYy1oZWxwZXItY29udGFpbmVyIHsgLyogYWxzbyBpcyBmYy1ldmVudC1jb250YWluZXIgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiA2O1xufVxuXG5cbi8qIFRpbWVHcmlkIFNsYXRzIChsaW5lcyB0aGF0IHJ1biBob3Jpem9udGFsbHkpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy10aW1lLWdyaWQgLmZjLXNsYXRzIHRkIHtcblx0aGVpZ2h0OiAxLjVlbTtcblx0Ym9yZGVyLWJvdHRvbTogMDsgLyogZWFjaCBjZWxsIGlzIHJlc3BvbnNpYmxlIGZvciBpdHMgdG9wIGJvcmRlciAqL1xufVxuXG4uZmMtdGltZS1ncmlkIC5mYy1zbGF0cyAuZmMtbWlub3IgdGQge1xuXHRib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG59XG5cbi5mYy10aW1lLWdyaWQgLmZjLXNsYXRzIC51aS13aWRnZXQtY29udGVudCB7IC8qIGZvciBqcXVpIHRoZW1lICovXG5cdGJhY2tncm91bmQ6IG5vbmU7IC8qIHNlZSB0aHJvdWdoIHRvIGZjLWJnICovXG59XG5cblxuLyogVGltZUdyaWQgSGlnaGxpZ2h0aW5nIFNsb3RzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy10aW1lLWdyaWQgLmZjLWhpZ2hsaWdodC1jb250YWluZXIgeyAvKiBhIGRpdiB3aXRoaW4gYSBjZWxsIHdpdGhpbiB0aGUgZmMtaGlnaGxpZ2h0LXNrZWxldG9uICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogc2NvcGVzIHRoZSBsZWZ0L3JpZ2h0IG9mIHRoZSBmYy1oaWdobGlnaHQgdG8gYmUgaW4gdGhlIGNvbHVtbiAqL1xufVxuXG4uZmMtdGltZS1ncmlkIC5mYy1oaWdobGlnaHQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHRsZWZ0OiAwO1xuXHQvKiB0b3AgYW5kIGJvdHRvbSB3aWxsIGJlIGluIGJ5IEpTICovXG59XG5cblxuLyogVGltZUdyaWQgRXZlbnQgQ29udGFpbm1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLWx0ciAuZmMtdGltZS1ncmlkIC5mYy1ldmVudC1jb250YWluZXIgeyAvKiBzcGFjZSBvbiB0aGUgc2lkZXMgb2YgZXZlbnRzIGZvciBMVFIgKGRlZmF1bHQpICovXG5cdG1hcmdpbjogMCAyLjUlIDAgMnB4O1xufVxuXG4uZmMtcnRsIC5mYy10aW1lLWdyaWQgLmZjLWV2ZW50LWNvbnRhaW5lciB7IC8qIHNwYWNlIG9uIHRoZSBzaWRlcyBvZiBldmVudHMgZm9yIFJUTCAqL1xuXHRtYXJnaW46IDAgMnB4IDAgMi41JTtcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtZXZlbnQsXG4uZmMtdGltZS1ncmlkIC5mYy1iZ2V2ZW50IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxOyAvKiBzY29wZSBpbm5lciB6LWluZGV4J3MgKi9cbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtYmdldmVudCB7XG5cdHJpZ2h0OiAwO1xuXHQvKiBiYWNrZ3JvdW5kIGV2ZW50cyBhbHdheXMgc3BhbiBmdWxsIHdpZHRoICovXG5cdGxlZnQ6IDA7XG59XG5cblxuLyogR2VuZXJpYyBWZXJ0aWNhbCBFdmVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtdi1ldmVudC5mYy1ub3Qtc3RhcnQgeyAvKiBldmVudHMgdGhhdCBhcmUgY29udGludWluZyBmcm9tIGFub3RoZXIgZGF5ICovXG5cdHBhZGRpbmctdG9wOiAxcHg7XG5cdC8qIHJlcGxhY2Ugc3BhY2UgbWFkZSBieSB0aGUgdG9wIGJvcmRlciB3aXRoIHBhZGRpbmcgKi9cblx0Ym9yZGVyLXRvcC13aWR0aDogMDtcblxuXHQvKiByZW1vdmUgdG9wIHJvdW5kZWQgY29ybmVycyAqL1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLmZjLXYtZXZlbnQuZmMtbm90LWVuZCB7XG5cdHBhZGRpbmctYm90dG9tOiAxcHg7XG5cdC8qIHJlcGxhY2Ugc3BhY2UgbWFkZSBieSB0aGUgdG9wIGJvcmRlciB3aXRoIHBhZGRpbmcgKi9cblx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMDtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0LyogcmVtb3ZlIGJvdHRvbSByb3VuZGVkIGNvcm5lcnMgKi9cblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuXG4vKiBUaW1lR3JpZCBFdmVudCBTdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5XZSB1c2UgdGhlIGZ1bGwgXCJmYy10aW1lLWdyaWQtZXZlbnRcIiBjbGFzcyBpbnN0ZWFkIG9mIHVzaW5nIGRlc2NlbmRhbnRzIGJlY2F1c2UgdGhlIGV2ZW50IHdvbid0XG5iZSBhIGRlc2NlbmRhbnQgb2YgdGhlIGdyaWQgd2hlbiBpdCBpcyBiZWluZyBkcmFnZ2VkLlxuKi9cblxuLmZjLXRpbWUtZ3JpZC1ldmVudCB7XG5cdG92ZXJmbG93OiBoaWRkZW47IC8qIGRvbid0IGxldCB0aGUgYmcgZmxvdyBvdmVyIHJvdW5kZWQgY29ybmVycyAqL1xufVxuXG4uZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNlbGVjdGVkIHtcblx0LyogbmVlZCB0byBhbGxvdyB0b3VjaCByZXNpemVycyB0byBleHRlbmQgb3V0c2lkZSBldmVudCdzIGJvdW5kaW5nIGJveCAqL1xuXHQvKiBjb21tb24gZmMtc2VsZWN0ZWQgc3R5bGVzIGhpZGUgdGhlIGZjLWJnLCBzbyBkb24ndCBuZWVkIHRoaXMgYW55d2F5ICovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNlbGVjdGVkIC5mYy1iZyB7XG5cdGRpc3BsYXk6IG5vbmU7IC8qIGhpZGUgc2VtaS13aGl0ZSBiYWNrZ3JvdW5kLCB0byBhcHBlYXIgZGFya2VyICovXG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLWNvbnRlbnQge1xuXHRvdmVyZmxvdzogaGlkZGVuOyAvKiBmb3Igd2hlbiAuZmMtc2VsZWN0ZWQgKi9cbn1cblxuLmZjLXRpbWUtZ3JpZC1ldmVudCAuZmMtdGltZSxcbi5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLXRpdGxlIHtcblx0cGFkZGluZzogMCAxcHg7XG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLXRpbWUge1xuXHRmb250LXNpemU6IC44NWVtO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBzaG9ydCBtb2RlLCB3aGVyZSB0aW1lIGFuZCB0aXRsZSBhcmUgb24gdGhlIHNhbWUgbGluZSAqL1xuXG4uZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNob3J0IC5mYy1jb250ZW50IHtcblx0LyogZG9uJ3Qgd3JhcCB0byBzZWNvbmQgbGluZSAobm93IHRoYXQgY29udGVudHMgd2lsbCBiZSBpbmxpbmUpICovXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWUsXG4uZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNob3J0IC5mYy10aXRsZSB7XG5cdC8qIHB1dCB0aGUgdGltZSBhbmQgdGl0bGUgb24gdGhlIHNhbWUgbGluZSAqL1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWUgc3BhbiB7XG5cdGRpc3BsYXk6IG5vbmU7IC8qIGRvbid0IGRpc3BsYXkgdGhlIGZ1bGwgdGltZSB0ZXh0Li4uICovXG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWU6YmVmb3JlIHtcblx0Y29udGVudDogYXR0cihkYXRhLXN0YXJ0KTsgLyogLi4uaW5zdGVhZCwgZGlzcGxheSBvbmx5IHRoZSBzdGFydCB0aW1lICovXG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIlxcMDAwQTAtXFwwMDBBMFwiOyAvKiBzZXBlcmF0ZSB3aXRoIGEgZGFzaCwgd3JhcHBlZCBpbiBuYnNwJ3MgKi9cbn1cblxuLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGl0bGUge1xuXHRwYWRkaW5nOiAwOyAvKiB1bmRvIHBhZGRpbmcgZnJvbSBhYm92ZSAqL1xuXHRmb250LXNpemU6IC44NWVtOyAvKiBtYWtlIHRoZSB0aXRsZSB0ZXh0IHRoZSBzYW1lIHNpemUgYXMgdGhlIHRpbWUgKi9cbn1cblxuLyogcmVzaXplciAoY3Vyc29yIGRldmljZSkgKi9cblxuLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLXJlc2l6ZXIge1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRoZWlnaHQ6IDhweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHRsaW5lLWhlaWdodDogOHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGN1cnNvcjogcy1yZXNpemU7XG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtYWxsb3ctbW91c2UtcmVzaXplIC5mYy1yZXNpemVyOmFmdGVyIHtcblx0Y29udGVudDogXCI9XCI7XG59XG5cbi8qIHJlc2l6ZXIgKHRvdWNoIGRldmljZSkgKi9cblxuLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zZWxlY3RlZCAuZmMtcmVzaXplciB7XG5cdC8qIGNlbnRlciBvbiB0aGUgYm90dG9tIGVkZ2UgKi9cblx0Ym90dG9tOiAtNXB4O1xuXHQvKiBob3Jpem9udGFsbHkgY2VudGVyICovXG5cdGxlZnQ6IDUwJTtcblx0d2lkdGg6IDhweDtcblx0aGVpZ2h0OiA4cHg7XG5cdG1hcmdpbi1sZWZ0OiAtNXB4O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGluaGVyaXQ7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHQvKiAxMHgxMCBkb3QgKi9cblx0Ym9yZGVyLXJhZGl1czogNXB4O1xufVxuXG5cbi8qIE5vdyBJbmRpY2F0b3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLXRpbWUtZ3JpZCAuZmMtbm93LWluZGljYXRvci1saW5lIHtcblx0cmlnaHQ6IDA7XG5cdGxlZnQ6IDA7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweDtcbn1cblxuLyogYXJyb3cgb24gYXhpcyAqL1xuXG4uZmMtdGltZS1ncmlkIC5mYy1ub3ctaW5kaWNhdG9yLWFycm93IHtcblx0bWFyZ2luLXRvcDogLTVweDsgLyogdmVydGljYWxseSBjZW50ZXIgb24gdG9wIGNvb3JkaW5hdGUgKi9cbn1cblxuLmZjLWx0ciAuZmMtdGltZS1ncmlkIC5mYy1ub3ctaW5kaWNhdG9yLWFycm93IHtcblx0bGVmdDogMDtcblx0LyogdHJpYW5nbGUgcG9pbnRpbmcgcmlnaHQuLi4gKi9cblx0Ym9yZGVyLXdpZHRoOiA1cHggMCA1cHggNnB4O1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5mYy1ydGwgLmZjLXRpbWUtZ3JpZCAuZmMtbm93LWluZGljYXRvci1hcnJvdyB7XG5cdHJpZ2h0OiAwO1xuXHQvKiB0cmlhbmdsZSBwb2ludGluZyBsZWZ0Li4uICovXG5cdGJvcmRlci13aWR0aDogNXB4IDZweCA1cHggMDtcblx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5cblxuLyogTGlzdCBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIHBvc3NpYmx5IHJldXNhYmxlICovXG5cbi5mYy1ldmVudC1kb3Qge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxMHB4O1xuXHRoZWlnaHQ6IDEwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLyogdmlldyB3cmFwcGVyICovXG5cbi5mYy1ydGwgLmZjLWxpc3QtdmlldyB7XG5cdGRpcmVjdGlvbjogcnRsOyAvKiB1bmxpa2UgY29yZSB2aWV3cywgbGV2ZXJhZ2UgYnJvd3NlciBSVEwgKi9cbn1cblxuLmZjLWxpc3QtdmlldyB7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMXB4O1xufVxuXG4vKiB0YWJsZSByZXNldHMgKi9cblxuLmZjIC5mYy1saXN0LXRhYmxlIHtcblx0dGFibGUtbGF5b3V0OiBhdXRvOyAvKiBmb3Igc2hyaW5rd3JhcHBpbmcgY2VsbCBjb250ZW50ICovXG59XG5cbi5mYy1saXN0LXRhYmxlIHRkIHtcblx0cGFkZGluZzogOHB4IDE0cHg7XG5cdGJvcmRlci13aWR0aDogMXB4IDAgMDtcbn1cblxuLmZjLWxpc3QtdGFibGUgdHI6Zmlyc3QtY2hpbGQgdGQge1xuXHRib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuXG4vKiBkYXkgaGVhZGluZ3Mgd2l0aCB0aGUgbGlzdCAqL1xuXG4uZmMtbGlzdC1oZWFkaW5nIHtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xufVxuXG4uZmMtbGlzdC1oZWFkaW5nIHRkIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mYy1sdHIgLmZjLWxpc3QtaGVhZGluZy1tYWluIHsgZmxvYXQ6IGxlZnQ7IH1cbi5mYy1sdHIgLmZjLWxpc3QtaGVhZGluZy1hbHQgeyBmbG9hdDogcmlnaHQ7IH1cblxuLmZjLXJ0bCAuZmMtbGlzdC1oZWFkaW5nLW1haW4geyBmbG9hdDogcmlnaHQ7IH1cbi5mYy1ydGwgLmZjLWxpc3QtaGVhZGluZy1hbHQgeyBmbG9hdDogbGVmdDsgfVxuXG4vKiBldmVudCBsaXN0IGl0ZW1zICovXG5cbi5mYy1saXN0LWl0ZW0uZmMtaGFzLXVybCB7XG5cdGN1cnNvcjogcG9pbnRlcjsgLyogd2hvbGUgcm93IHdpbGwgYmUgY2xpY2thYmxlICovXG59XG5cbi5mYy1saXN0LWl0ZW06aG92ZXIgdGQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuXG4uZmMtbGlzdC1pdGVtLW1hcmtlcixcbi5mYy1saXN0LWl0ZW0tdGltZSB7XG5cdHdpZHRoOiAxcHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIG1ha2UgdGhlIGRvdCBjbG9zZXIgdG8gdGhlIGV2ZW50IHRpdGxlICovXG4uZmMtbHRyIC5mYy1saXN0LWl0ZW0tbWFya2VyIHsgcGFkZGluZy1yaWdodDogMDsgfVxuLmZjLXJ0bCAuZmMtbGlzdC1pdGVtLW1hcmtlciB7IHBhZGRpbmctbGVmdDogMDsgfVxuXG4uZmMtbGlzdC1pdGVtLXRpdGxlIGEge1xuXHRjb2xvcjogaW5oZXJpdDtcblx0LyogZXZlcnkgZXZlbnQgdGl0bGUgY2VsbCBoYXMgYW4gPGE+IHRhZyAqL1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5mYy1saXN0LWl0ZW0tdGl0bGUgYVtocmVmXTpob3ZlciB7XG5cdC8qIGhvdmVyIGVmZmVjdCBvbmx5IG9uIHRpdGxlcyB3aXRoIGhyZWZzICovXG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiBtZXNzYWdlIHdoZW4gbm8gZXZlbnRzICovXG5cbi5mYy1saXN0LWVtcHR5LXdyYXAyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG5cdGxlZnQ6IDA7XG59XG5cbi5mYy1saXN0LWVtcHR5LXdyYXAxIHtcblx0ZGlzcGxheTogdGFibGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5mYy1saXN0LWVtcHR5IHtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZmMtdW50aGVtZWQgLmZjLWxpc3QtZW1wdHkgeyAvKiB0aGVtZSB3aWxsIHByb3ZpZGUgb3duIGJhY2tncm91bmQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbiJdfQ== */