devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
1,752 lines • 170 kB
JavaScript
/*!
* devextreme-angular
* Version: 25.1.3
* Build date: Wed Jun 25 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file in the root of the project for details.
*
* https://github.com/DevExpress/devextreme-angular
*/
/* tslint:disable:max-line-length */
import { TransferState, Component, NgModule, ElementRef, NgZone, PLATFORM_ID, Inject, Input, Output, EventEmitter, ContentChildren, QueryList } from '@angular/core';
import DxCardView from 'devextreme/ui/card_view';
import { DxComponent, DxTemplateHost, DxIntegrationModule, DxTemplateModule, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core';
import { DxoCardViewAnimationModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewAsyncRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewAtModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewBoundaryOffsetModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewButtonItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewButtonOptionsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewCardCoverModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewCardHeaderModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewCardHeaderItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewCardViewHeaderFilterModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewCardViewHeaderFilterSearchModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewCardViewHeaderFilterTextsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewCardViewSelectionModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewChangeModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewColCountByScreenModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewCollisionModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewColumnModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewColumnChooserModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewColumnChooserSearchModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewColumnChooserSelectionModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewColumnHeaderFilterModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewColumnHeaderFilterSearchModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewCompareRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewCustomOperationModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewCustomRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewDraggingModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewEditingModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewEditingTextsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewEmailRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewEmptyItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewFieldModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFilterBuilderModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFilterOperationDescriptionsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFilterPanelModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFilterPanelTextsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFormModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFormatModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFormItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewFromModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewGroupItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewGroupOperationDescriptionsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewHeaderFilterModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewHeaderPanelModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewHideModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewLabelModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewLoadPanelModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewLookupModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewMyModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewNumericRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewOffsetModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewPagerModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewPagingModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewPatternRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewPositionModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewRangeRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewRemoteOperationsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewRequiredRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewScrollingModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewSearchModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewSearchPanelModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewSelectionModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewShowModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewSimpleItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewSortingModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewStringLengthRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewTabModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewTabbedItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewTabPanelOptionsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewTabPanelOptionsItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewTextsModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewToModule } from 'devextreme-angular/ui/card-view/nested';
import { DxoCardViewToolbarModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewToolbarItemModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewValidationRuleModule } from 'devextreme-angular/ui/card-view/nested';
import { DxiCardViewColumnComponent } from 'devextreme-angular/ui/card-view/nested';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/core";
export class DxCardViewComponent extends DxComponent {
_watcherHelper;
_idh;
instance = null;
get accessKey() {
return this._getOption('accessKey');
}
set accessKey(value) {
this._setOption('accessKey', value);
}
get activeStateEnabled() {
return this._getOption('activeStateEnabled');
}
set activeStateEnabled(value) {
this._setOption('activeStateEnabled', value);
}
get allowColumnReordering() {
return this._getOption('allowColumnReordering');
}
set allowColumnReordering(value) {
this._setOption('allowColumnReordering', value);
}
get cardContentTemplate() {
return this._getOption('cardContentTemplate');
}
set cardContentTemplate(value) {
this._setOption('cardContentTemplate', value);
}
get cardCover() {
return this._getOption('cardCover');
}
set cardCover(value) {
this._setOption('cardCover', value);
}
get cardFooterTemplate() {
return this._getOption('cardFooterTemplate');
}
set cardFooterTemplate(value) {
this._setOption('cardFooterTemplate', value);
}
get cardHeader() {
return this._getOption('cardHeader');
}
set cardHeader(value) {
this._setOption('cardHeader', value);
}
get cardMaxWidth() {
return this._getOption('cardMaxWidth');
}
set cardMaxWidth(value) {
this._setOption('cardMaxWidth', value);
}
get cardMinWidth() {
return this._getOption('cardMinWidth');
}
set cardMinWidth(value) {
this._setOption('cardMinWidth', value);
}
get cardsPerRow() {
return this._getOption('cardsPerRow');
}
set cardsPerRow(value) {
this._setOption('cardsPerRow', value);
}
get cardTemplate() {
return this._getOption('cardTemplate');
}
set cardTemplate(value) {
this._setOption('cardTemplate', value);
}
get columnChooser() {
return this._getOption('columnChooser');
}
set columnChooser(value) {
this._setOption('columnChooser', value);
}
get columns() {
return this._getOption('columns');
}
set columns(value) {
this._setOption('columns', value);
}
get dataSource() {
return this._getOption('dataSource');
}
set dataSource(value) {
this._setOption('dataSource', value);
}
get disabled() {
return this._getOption('disabled');
}
set disabled(value) {
this._setOption('disabled', value);
}
get editing() {
return this._getOption('editing');
}
set editing(value) {
this._setOption('editing', value);
}
get elementAttr() {
return this._getOption('elementAttr');
}
set elementAttr(value) {
this._setOption('elementAttr', value);
}
get errorRowEnabled() {
return this._getOption('errorRowEnabled');
}
set errorRowEnabled(value) {
this._setOption('errorRowEnabled', value);
}
get fieldHintEnabled() {
return this._getOption('fieldHintEnabled');
}
set fieldHintEnabled(value) {
this._setOption('fieldHintEnabled', value);
}
get filterBuilder() {
return this._getOption('filterBuilder');
}
set filterBuilder(value) {
this._setOption('filterBuilder', value);
}
get filterBuilderPopup() {
return this._getOption('filterBuilderPopup');
}
set filterBuilderPopup(value) {
this._setOption('filterBuilderPopup', value);
}
get filterPanel() {
return this._getOption('filterPanel');
}
set filterPanel(value) {
this._setOption('filterPanel', value);
}
get filterValue() {
return this._getOption('filterValue');
}
set filterValue(value) {
this._setOption('filterValue', value);
}
get focusStateEnabled() {
return this._getOption('focusStateEnabled');
}
set focusStateEnabled(value) {
this._setOption('focusStateEnabled', value);
}
get headerFilter() {
return this._getOption('headerFilter');
}
set headerFilter(value) {
this._setOption('headerFilter', value);
}
get headerPanel() {
return this._getOption('headerPanel');
}
set headerPanel(value) {
this._setOption('headerPanel', value);
}
get height() {
return this._getOption('height');
}
set height(value) {
this._setOption('height', value);
}
get hint() {
return this._getOption('hint');
}
set hint(value) {
this._setOption('hint', value);
}
get hoverStateEnabled() {
return this._getOption('hoverStateEnabled');
}
set hoverStateEnabled(value) {
this._setOption('hoverStateEnabled', value);
}
get keyExpr() {
return this._getOption('keyExpr');
}
set keyExpr(value) {
this._setOption('keyExpr', value);
}
get loadPanel() {
return this._getOption('loadPanel');
}
set loadPanel(value) {
this._setOption('loadPanel', value);
}
get noDataTemplate() {
return this._getOption('noDataTemplate');
}
set noDataTemplate(value) {
this._setOption('noDataTemplate', value);
}
get noDataText() {
return this._getOption('noDataText');
}
set noDataText(value) {
this._setOption('noDataText', value);
}
get pager() {
return this._getOption('pager');
}
set pager(value) {
this._setOption('pager', value);
}
get paging() {
return this._getOption('paging');
}
set paging(value) {
this._setOption('paging', value);
}
get remoteOperations() {
return this._getOption('remoteOperations');
}
set remoteOperations(value) {
this._setOption('remoteOperations', value);
}
get rtlEnabled() {
return this._getOption('rtlEnabled');
}
set rtlEnabled(value) {
this._setOption('rtlEnabled', value);
}
get scrolling() {
return this._getOption('scrolling');
}
set scrolling(value) {
this._setOption('scrolling', value);
}
get searchPanel() {
return this._getOption('searchPanel');
}
set searchPanel(value) {
this._setOption('searchPanel', value);
}
get selectedCardKeys() {
return this._getOption('selectedCardKeys');
}
set selectedCardKeys(value) {
this._setOption('selectedCardKeys', value);
}
get selection() {
return this._getOption('selection');
}
set selection(value) {
this._setOption('selection', value);
}
get sorting() {
return this._getOption('sorting');
}
set sorting(value) {
this._setOption('sorting', value);
}
get tabIndex() {
return this._getOption('tabIndex');
}
set tabIndex(value) {
this._setOption('tabIndex', value);
}
get toolbar() {
return this._getOption('toolbar');
}
set toolbar(value) {
this._setOption('toolbar', value);
}
get visible() {
return this._getOption('visible');
}
set visible(value) {
this._setOption('visible', value);
}
get width() {
return this._getOption('width');
}
set width(value) {
this._setOption('width', value);
}
get wordWrapEnabled() {
return this._getOption('wordWrapEnabled');
}
set wordWrapEnabled(value) {
this._setOption('wordWrapEnabled', value);
}
/**
*
*/
onCardClick;
/**
*
*/
onCardDblClick;
/**
*
*/
onCardHoverChanged;
/**
*
*/
onCardInserted;
/**
*
*/
onCardInserting;
/**
*
*/
onCardPrepared;
/**
*
*/
onCardRemoved;
/**
*
*/
onCardRemoving;
/**
*
*/
onCardSaved;
/**
*
*/
onCardSaving;
/**
*
*/
onCardUpdated;
/**
*
*/
onCardUpdating;
/**
*
*/
onContentReady;
/**
*
*/
onContextMenuPreparing;
/**
*
*/
onDataErrorOccurred;
/**
*
*/
onDisposing;
/**
*
*/
onEditCanceled;
/**
*
*/
onEditCanceling;
/**
*
*/
onEditingStart;
/**
*
*/
onFieldCaptionClick;
/**
*
*/
onFieldCaptionDblClick;
/**
*
*/
onFieldCaptionPrepared;
/**
*
*/
onFieldValueClick;
/**
*
*/
onFieldValueDblClick;
/**
*
*/
onFieldValuePrepared;
/**
*
*/
onFocusedCardChanged;
/**
*
*/
onInitialized;
/**
*
*/
onInitNewCard;
/**
*
*/
onOptionChanged;
/**
*
*/
onSelectionChanged;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
accessKeyChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
activeStateEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
allowColumnReorderingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardContentTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardCoverChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardFooterTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardHeaderChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardMaxWidthChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardMinWidthChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardsPerRowChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cardTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
columnChooserChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
columnsChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
dataSourceChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
disabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
editingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
elementAttrChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
errorRowEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
fieldHintEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
filterBuilderChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
filterBuilderPopupChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
filterPanelChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
filterValueChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
focusStateEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
headerFilterChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
headerPanelChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
heightChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
hintChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
hoverStateEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
keyExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
loadPanelChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
noDataTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
noDataTextChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
pagerChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
pagingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
remoteOperationsChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
rtlEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
scrollingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
searchPanelChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
selectedCardKeysChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
selectionChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
sortingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
tabIndexChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
toolbarChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
visibleChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
widthChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
wordWrapEnabledChange;
get columnsChildren() {
return this._getOption('columns');
}
set columnsChildren(value) {
this._setChildren('columns', value, 'DxiCardViewColumnComponent');
}
constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {
super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);
this._watcherHelper = _watcherHelper;
this._idh = _idh;
this._createEventEmitters([
{ subscribe: 'cardClick', emit: 'onCardClick' },
{ subscribe: 'cardDblClick', emit: 'onCardDblClick' },
{ subscribe: 'cardHoverChanged', emit: 'onCardHoverChanged' },
{ subscribe: 'cardInserted', emit: 'onCardInserted' },
{ subscribe: 'cardInserting', emit: 'onCardInserting' },
{ subscribe: 'cardPrepared', emit: 'onCardPrepared' },
{ subscribe: 'cardRemoved', emit: 'onCardRemoved' },
{ subscribe: 'cardRemoving', emit: 'onCardRemoving' },
{ subscribe: 'cardSaved', emit: 'onCardSaved' },
{ subscribe: 'cardSaving', emit: 'onCardSaving' },
{ subscribe: 'cardUpdated', emit: 'onCardUpdated' },
{ subscribe: 'cardUpdating', emit: 'onCardUpdating' },
{ subscribe: 'contentReady', emit: 'onContentReady' },
{ subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' },
{ subscribe: 'dataErrorOccurred', emit: 'onDataErrorOccurred' },
{ subscribe: 'disposing', emit: 'onDisposing' },
{ subscribe: 'editCanceled', emit: 'onEditCanceled' },
{ subscribe: 'editCanceling', emit: 'onEditCanceling' },
{ subscribe: 'editingStart', emit: 'onEditingStart' },
{ subscribe: 'fieldCaptionClick', emit: 'onFieldCaptionClick' },
{ subscribe: 'fieldCaptionDblClick', emit: 'onFieldCaptionDblClick' },
{ subscribe: 'fieldCaptionPrepared', emit: 'onFieldCaptionPrepared' },
{ subscribe: 'fieldValueClick', emit: 'onFieldValueClick' },
{ subscribe: 'fieldValueDblClick', emit: 'onFieldValueDblClick' },
{ subscribe: 'fieldValuePrepared', emit: 'onFieldValuePrepared' },
{ subscribe: 'focusedCardChanged', emit: 'onFocusedCardChanged' },
{ subscribe: 'initialized', emit: 'onInitialized' },
{ subscribe: 'initNewCard', emit: 'onInitNewCard' },
{ subscribe: 'optionChanged', emit: 'onOptionChanged' },
{ subscribe: 'selectionChanged', emit: 'onSelectionChanged' },
{ emit: 'accessKeyChange' },
{ emit: 'activeStateEnabledChange' },
{ emit: 'allowColumnReorderingChange' },
{ emit: 'cardContentTemplateChange' },
{ emit: 'cardCoverChange' },
{ emit: 'cardFooterTemplateChange' },
{ emit: 'cardHeaderChange' },
{ emit: 'cardMaxWidthChange' },
{ emit: 'cardMinWidthChange' },
{ emit: 'cardsPerRowChange' },
{ emit: 'cardTemplateChange' },
{ emit: 'columnChooserChange' },
{ emit: 'columnsChange' },
{ emit: 'dataSourceChange' },
{ emit: 'disabledChange' },
{ emit: 'editingChange' },
{ emit: 'elementAttrChange' },
{ emit: 'errorRowEnabledChange' },
{ emit: 'fieldHintEnabledChange' },
{ emit: 'filterBuilderChange' },
{ emit: 'filterBuilderPopupChange' },
{ emit: 'filterPanelChange' },
{ emit: 'filterValueChange' },
{ emit: 'focusStateEnabledChange' },
{ emit: 'headerFilterChange' },
{ emit: 'headerPanelChange' },
{ emit: 'heightChange' },
{ emit: 'hintChange' },
{ emit: 'hoverStateEnabledChange' },
{ emit: 'keyExprChange' },
{ emit: 'loadPanelChange' },
{ emit: 'noDataTemplateChange' },
{ emit: 'noDataTextChange' },
{ emit: 'pagerChange' },
{ emit: 'pagingChange' },
{ emit: 'remoteOperationsChange' },
{ emit: 'rtlEnabledChange' },
{ emit: 'scrollingChange' },
{ emit: 'searchPanelChange' },
{ emit: 'selectedCardKeysChange' },
{ emit: 'selectionChange' },
{ emit: 'sortingChange' },
{ emit: 'tabIndexChange' },
{ emit: 'toolbarChange' },
{ emit: 'visibleChange' },
{ emit: 'widthChange' },
{ emit: 'wordWrapEnabledChange' }
]);
this._idh.setHost(this);
optionHost.setHost(this);
}
_createInstance(element, options) {
return new DxCardView(element, options);
}
ngOnDestroy() {
this._destroyWidget();
}
ngOnChanges(changes) {
super.ngOnChanges(changes);
this.setupChanges('columns', changes);
this.setupChanges('dataSource', changes);
this.setupChanges('filterValue', changes);
this.setupChanges('keyExpr', changes);
this.setupChanges('selectedCardKeys', changes);
}
setupChanges(prop, changes) {
if (!(prop in this._optionsToUpdate)) {
this._idh.setup(prop, changes);
}
}
ngDoCheck() {
this._idh.doCheck('columns');
this._idh.doCheck('dataSource');
this._idh.doCheck('filterValue');
this._idh.doCheck('keyExpr');
this._idh.doCheck('selectedCardKeys');
this._watcherHelper.checkWatchers();
super.ngDoCheck();
super.clearChangedOptions();
}
_setOption(name, value) {
let isSetup = this._idh.setupSingle(name, value);
let isChanged = this._idh.getChanges(name, value) !== null;
if (isSetup || isChanged) {
super._setOption(name, value);
}
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxCardViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.DxTemplateHost }, { token: i1.WatcherHelper }, { token: i1.IterableDifferHelper }, { token: i1.NestedOptionHost }, { token: i0.TransferState }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxCardViewComponent, isStandalone: true, selector: "dx-card-view", inputs: { accessKey: "accessKey", activeStateEnabled: "activeStateEnabled", allowColumnReordering: "allowColumnReordering", cardContentTemplate: "cardContentTemplate", cardCover: "cardCover", cardFooterTemplate: "cardFooterTemplate", cardHeader: "cardHeader", cardMaxWidth: "cardMaxWidth", cardMinWidth: "cardMinWidth", cardsPerRow: "cardsPerRow", cardTemplate: "cardTemplate", columnChooser: "columnChooser", columns: "columns", dataSource: "dataSource", disabled: "disabled", editing: "editing", elementAttr: "elementAttr", errorRowEnabled: "errorRowEnabled", fieldHintEnabled: "fieldHintEnabled", filterBuilder: "filterBuilder", filterBuilderPopup: "filterBuilderPopup", filterPanel: "filterPanel", filterValue: "filterValue", focusStateEnabled: "focusStateEnabled", headerFilter: "headerFilter", headerPanel: "headerPanel", height: "height", hint: "hint", hoverStateEnabled: "hoverStateEnabled", keyExpr: "keyExpr", loadPanel: "loadPanel", noDataTemplate: "noDataTemplate", noDataText: "noDataText", pager: "pager", paging: "paging", remoteOperations: "remoteOperations", rtlEnabled: "rtlEnabled", scrolling: "scrolling", searchPanel: "searchPanel", selectedCardKeys: "selectedCardKeys", selection: "selection", sorting: "sorting", tabIndex: "tabIndex", toolbar: "toolbar", visible: "visible", width: "width", wordWrapEnabled: "wordWrapEnabled" }, outputs: { onCardClick: "onCardClick", onCardDblClick: "onCardDblClick", onCardHoverChanged: "onCardHoverChanged", onCardInserted: "onCardInserted", onCardInserting: "onCardInserting", onCardPrepared: "onCardPrepared", onCardRemoved: "onCardRemoved", onCardRemoving: "onCardRemoving", onCardSaved: "onCardSaved", onCardSaving: "onCardSaving", onCardUpdated: "onCardUpdated", onCardUpdating: "onCardUpdating", onContentReady: "onContentReady", onContextMenuPreparing: "onContextMenuPreparing", onDataErrorOccurred: "onDataErrorOccurred", onDisposing: "onDisposing", onEditCanceled: "onEditCanceled", onEditCanceling: "onEditCanceling", onEditingStart: "onEditingStart", onFieldCaptionClick: "onFieldCaptionClick", onFieldCaptionDblClick: "onFieldCaptionDblClick", onFieldCaptionPrepared: "onFieldCaptionPrepared", onFieldValueClick: "onFieldValueClick", onFieldValueDblClick: "onFieldValueDblClick", onFieldValuePrepared: "onFieldValuePrepared", onFocusedCardChanged: "onFocusedCardChanged", onInitialized: "onInitialized", onInitNewCard: "onInitNewCard", onOptionChanged: "onOptionChanged", onSelectionChanged: "onSelectionChanged", accessKeyChange: "accessKeyChange", activeStateEnabledChange: "activeStateEnabledChange", allowColumnReorderingChange: "allowColumnReorderingChange", cardContentTemplateChange: "cardContentTemplateChange", cardCoverChange: "cardCoverChange", cardFooterTemplateChange: "cardFooterTemplateChange", cardHeaderChange: "cardHeaderChange", cardMaxWidthChange: "cardMaxWidthChange", cardMinWidthChange: "cardMinWidthChange", cardsPerRowChange: "cardsPerRowChange", cardTemplateChange: "cardTemplateChange", columnChooserChange: "columnChooserChange", columnsChange: "columnsChange", dataSourceChange: "dataSourceChange", disabledChange: "disabledChange", editingChange: "editingChange", elementAttrChange: "elementAttrChange", errorRowEnabledChange: "errorRowEnabledChange", fieldHintEnabledChange: "fieldHintEnabledChange", filterBuilderChange: "filterBuilderChange", filterBuilderPopupChange: "filterBuilderPopupChange", filterPanelChange: "filterPanelChange", filterValueChange: "filterValueChange", focusStateEnabledChange: "focusStateEnabledChange", headerFilterChange: "headerFilterChange", headerPanelChange: "headerPanelChange", heightChange: "heightChange", hintChange: "hintChange", hoverStateEnabledChange: "hoverStateEnabledChange", keyExprChange: "keyExprChange", loadPanelChange: "loadPanelChange", noDataTemplateChange: "noDataTemplateChange", noDataTextChange: "noDataTextChange", pagerChange: "pagerChange", pagingChange: "pagingChange", remoteOperationsChange: "remoteOperationsChange", rtlEnabledChange: "rtlEnabledChange", scrollingChange: "scrollingChange", searchPanelChange: "searchPanelChange", selectedCardKeysChange: "selectedCardKeysChange", selectionChange: "selectionChange", sortingChange: "sortingChange", tabIndexChange: "tabIndexChange", toolbarChange: "toolbarChange", visibleChange: "visibleChange", widthChange: "widthChange", wordWrapEnabledChange: "wordWrapEnabledChange" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
DxTemplateHost,
WatcherHelper,
NestedOptionHost,
IterableDifferHelper
], queries: [{ propertyName: "columnsChildren", predicate: DxiCardViewColumnComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, dependencies: [{ kind: "ngmodule", type: DxIntegrationModule }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxCardViewComponent, decorators: [{
type: Component,
args: [{
selector: 'dx-card-view',
standalone: true,
template: '',
host: { ngSkipHydration: 'true' },
imports: [DxIntegrationModule],
providers: [
DxTemplateHost,
WatcherHelper,
NestedOptionHost,
IterableDifferHelper
]
}]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i0.TransferState }, { type: undefined, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }], propDecorators: { accessKey: [{
type: Input
}], activeStateEnabled: [{
type: Input
}], allowColumnReordering: [{
type: Input
}], cardContentTemplate: [{
type: Input
}], cardCover: [{
type: Input
}], cardFooterTemplate: [{
type: Input
}], cardHeader: [{
type: Input
}], cardMaxWidth: [{
type: Input
}], cardMinWidth: [{
type: Input
}], cardsPerRow: [{
type: Input
}], cardTemplate: [{
type: Input
}], columnChooser: [{
type: Input
}], columns: [{
type: Input
}], dataSource: [{
type: Input
}], disabled: [{
type: Input
}], editing: [{
type: Input
}], elementAttr: [{
type: Input
}], errorRowEnabled: [{
type: Input
}], fieldHintEnabled: [{
type: Input
}], filterBuilder: [{
type: Input
}], filterBuilderPopup: [{
type: Input
}], filterPanel: [{
type: Input
}], filterValue: [{
type: Input
}], focusStateEnabled: [{
type: Input
}], headerFilter: [{
type: Input
}], headerPanel: [{
type: Input
}], height: [{
type: Input
}], hint: [{
type: Input
}], hoverStateEnabled: [{
type: Input
}], keyExpr: [{
type: Input
}], loadPanel: [{
type: Input
}], noDataTemplate: [{
type: Input
}], noDataText: [{
type: Input
}], pager: [{
type: Input
}], paging: [{
type: Input
}], remoteOperations: [{
type: Input
}], rtlEnabled: [{
type: Input
}], scrolling: [{
type: Input
}], searchPanel: [{
type: Input
}], selectedCardKeys: [{
type: Input
}], selection: [{
type: Input
}], sorting: [{
type: Input
}], tabIndex: [{
type: Input
}], toolbar: [{
type: Input
}], visible: [{
type: Input
}], width: [{
type: Input
}], wordWrapEnabled: [{
type: Input
}], onCardClick: [{
type: Output
}], onCardDblClick: [{
type: Output
}], onCardHoverChanged: [{
type: Output
}], onCardInserted: [{
type: Output
}], onCardInserting: [{
type: Output
}], onCardPrepared: [{
type: Output
}], onCardRemoved: [{
type: Output
}], onCardRemoving: [{
type: Output
}], onCardSaved: [{
type: Output
}], onCardSaving: [{
type: Output
}], onCardUpdated: [{
type: Output
}], onCardUpdating: [{
type: Output
}], onContentReady: [{
type: Output
}], onContextMenuPreparing: [{
type: Output
}], onDataErrorOccurred: [{
type: Output
}], onDisposing: [{
type: Output
}], onEditCanceled: [{
type: Output
}], onEditCanceling: [{
type: Output
}], onEditingStart: [{
type: Output
}], onFieldCaptionClick: [{
type: Output
}], onFieldCaptionDblClick: [{
type: Output
}], onFieldCaptionPrepared: [{
type: Output
}], onFieldValueClick: [{
type: Output
}], onFieldValueDblClick: [{
type: Output
}], onFieldValuePrepared: [{
type: Output
}], onFocusedCardChanged: [{
type: Output
}], onInitialized: [{
type: Output
}], onInitNewCard: [{
type: Output
}], onOptionChanged: [{
type: Output
}], onSelectionChanged: [{
type: Output
}], accessKeyChange: [{
type: Output
}], activeStateEnabledChange: [{
type: Output
}], allowColumnReorderingChange: [{
type: Output
}], cardContentTemplateChange: [{
type: Output
}], cardCoverChange: [{
type: Output
}], cardFooterTemplateChange: [{
type: Output
}], cardHeaderChange: [{
type: Output
}], cardMaxWidthChange: [{
type: Output
}], cardMinWidthChange: [{
type: Output
}], cardsPerRowChange: [{
type: Output
}], cardTemplateChange: [{
type: Output
}], columnChooserChange: [{
type: Output
}], columnsChange: [{
type: Output
}], dataSourceChange: [{
type: Output
}], disabledChange: [{
type: Output
}], editingChange: [{
type: Output
}], elementAttrChange: [{
type: Output
}], errorRowEnabledChange: [{
type: Output
}], fieldHintEnabledChange: [{
type: Output
}], filterBuilderChange: [{
type: Output
}], filterBuilderPopupChange: [{
type: Output
}], filterPanelChange: [{
type: Output
}], filterValueChange: [{
type: Output
}], focusStateEnabledChange: [{
type: Output
}], headerFilterChange: [{
type: Output
}], headerPanelChange: [{
type: Output
}], heightChange: [{
type: Output
}], hintChange: [{
type: Output
}], hoverStateEnabledChange: [{
type: Output
}], keyExprChange: [{
type: Output
}], loadPanelChange: [{
type: Output
}], noDataTemplateChange: [{
type: Output
}], noDataTextChange: [{
type: Output
}], pagerChange: [{
type: Output
}], pagingChange: [{
type: Output
}], remoteOperationsChange: [{
type: Output
}], rtlEnabledChange: [{
type: Output
}], scrollingChange: [{
type: Output
}], searchPanelChange: [{
type: Output
}], selectedCardKeysChange: [{
type: Output
}], selectionChange: [{
type: Output
}], sortingChange: [{
type: Output
}], tabIndexChange: [{
type: Output
}], toolbarChange: [{
type: Output
}], visibleChange: [{
type: Output
}], widthChange: [{
type: Output
}], wordWrapEnabledChange: [{
type: Output
}], columnsChildren: [{
type: ContentChildren,
args: [DxiCardViewColumnComponent]
}] } });
export class DxCardViewModule {
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxCardViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxCardViewModule, imports: [DxCardViewComponent, DxoCardViewAnimationModule,
DxiCardViewAsyncRuleModule,
DxoCardViewAtModule,
DxoCardViewBoundaryOffsetModule,
DxiCardViewButtonItemModule,
DxoCardViewButtonOptionsModule,
DxoCardViewCardCoverModule,
DxoCardViewCardHeaderModule,
DxiCardViewCardHeaderItemModule,
DxoCardViewCardViewHeaderFilterModule,
DxoCardViewCardViewHeaderFilterSearchModule,
DxoCardViewCardViewHeaderFilterTextsModule,
DxoCardViewCardViewSelectionModule,
DxiCardViewChangeModule,
DxoCardViewColCountByScreenModule,
DxoCardViewCollisionModule,
DxiCardViewColumnModule,
DxoCardViewColumnChooserModule,
DxoCardViewColumnChooserSearchModule,
DxoCardViewColumnChooserSelectionModule,
DxoCardViewColumnHeaderFilterModule,
DxoCardViewColumnHeaderFilterSearchModule,
DxiCardViewCompareRuleModule,
DxiCardViewCustomOperationModule,
DxiCardViewCustomRuleModule,
DxoCardViewDraggingModule,
DxoCardViewEditingModule,
DxoCardViewEditingTextsModule,
DxiCardViewEmailRuleModule,
DxiCardViewEmptyItemModule,
DxiCardViewFieldModule,
DxoCardViewFilterBuilderModule,
DxoCardViewFilterOperationDescriptionsModule,
DxoCardViewFilterPanelModule,
DxoCardViewFilterPanelTextsModule,
DxoCardViewFormModule,
DxoCardViewFormatModule,
DxoCardViewFormItemModule,
DxoCardViewFromModule,
DxiCardViewGroupItemModule,
DxoCardViewGroupOperationDescriptionsModule,
DxoCardViewHeaderFilterModule,
DxoCardViewHeaderPanelModule,
DxoCardViewHideModule,
DxiCardViewItemModule,
DxoCardViewLabelModule,
DxoCardViewLoadPanelModule,
DxoCardViewLookupModule,
DxoCardViewMyModule,
DxiCardViewNumericRuleModule,
DxoCardViewOffsetModule,
DxoCardViewPagerModule,
DxoCardViewPagingModule,
DxiCardViewPatternRuleModule,
DxoCardViewPositionModule,
DxiCardViewRangeRuleModule,
DxoCardViewRemoteOperationsModule,
DxiCardViewRequiredRuleModule,
DxoCardViewScrollingModule,
DxoCardViewSearchModule,
DxoCardViewSearchPanelModule,
DxoCardViewSelectionModule,
DxoCardViewShowModule,
DxiCardViewSimpleItemModule,
DxoCardViewSortingModule,
DxiCardViewStringLengthRuleModule,
DxiCardViewTabModule,
DxiCardViewTabbedItemModule,
DxoCardViewTabPanelOptionsModule,
DxiCardViewTabPanelOptionsItemModule,
DxoCardViewTextsModule,
DxoCardViewToModule,
DxoCardViewToolbarModule,
DxiCardViewToolbarItemModule,
DxiCardViewValidationRuleModule,
DxIntegrationModule,
DxTemplateModule], exports: [DxCardViewComponent, DxoCardViewAnimationModule,
DxiCardViewAsyncRuleModule,
DxoCardViewAtModule,
DxoCardViewBoundaryOffsetModule,
DxiCardViewButtonItemModule,
DxoCardViewButtonOptionsModule,
DxoCardViewCardCoverModule,
DxoCardViewCardHeaderModule,
DxiCardViewCardHeaderItemModule,
DxoCardViewCardViewHeaderFilterModule,
DxoCardViewCardViewHeaderFilterSearchModule,
DxoCardViewCardViewHeaderFilterTextsModule,
DxoCardViewCardViewSelectionModule,
DxiCardViewChangeModule,
DxoCardViewColCountByScreenModule,
DxoCardViewCollisionModule,
DxiCardViewColumnModule,
DxoCardViewColumnChooserModule,
DxoCardViewColumnChooserSearchModule,
DxoCardViewColumnChooserSelectionModule,
DxoCardViewColumnHeaderFilterModule,
DxoCardViewColumnHeaderFilterSearchModule,
DxiCardViewCompareRuleModule,
DxiCardViewCustomOperationModule,
DxiCardViewCustomRuleModule,
DxoCardViewDraggingModule,
DxoCardViewEditingModule,
DxoCardViewEditingTextsModule,
DxiCardViewEmailRuleModule,
DxiCardViewEmptyItemModule,
DxiCardViewFieldModule,
DxoCardViewFilterBuilderModule,
DxoCardViewFilterOperationDescriptionsModule,
DxoCardViewFilterPanelModule,
DxoCardViewFilterPanelTextsModule,
DxoCardViewFormModule,
DxoCardViewFormatModule,
DxoCardViewFormItemModule,
DxoCardViewFromModule,
DxiCardViewGroupItemModule,
DxoCardViewGroupOperationDescriptionsModule,
DxoCardViewHeaderFilterModule,
DxoCardViewHeaderPanelModule,
DxoCardViewHideModule,
DxiCardViewItemModule,
DxoCardViewLabelModule,
DxoCardViewLoadPanelModule,
DxoCardViewLookupModule,
DxoCardViewMyModule,
DxiCardViewNumericRuleModule,
DxoCardViewOffsetModule,
DxoCardViewPagerModule,
DxoCardViewPagingModule,
DxiCardViewPatternRuleModule,
DxoCardViewPositionModule,
DxiCardViewRangeRuleModule,
DxoCardViewRemoteOperationsModule,
DxiCardViewRequiredRuleModule,
DxoCardViewScrollingModule,
DxoCardViewSearchModule,
DxoCardViewSearchPanelModule,
DxoCardViewSelectionModule,
DxoCardViewShowModule,
DxiCardViewSimpleItemModule,
DxoCardViewSortingModule,
DxiCardViewStringLengthRuleModule,
DxiCardViewTabModule,
DxiCardViewTabbedItemModule,
DxoCardViewTabPanelOptionsModule,
DxiCardViewTabPanelOptionsItemModule,
DxoCardViewTextsModule,
DxoCardViewToModule,
DxoCardViewToolbarModule,
DxiCardViewToolbarItemModule,
DxiCardViewValidationRuleModule,
DxTemplateModule] });
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxCardViewModule, imports: [DxCardViewComponent,
DxoCardViewAnimationModule,
DxiCardViewAsyncRuleModule,
DxoCardViewAtModule,
DxoCardViewBoundaryOffsetModule,
DxiCardViewButtonItemModule,
DxoCardViewButtonOptionsModule,
DxoCardViewCardCoverModule,
DxoCardViewCardHeaderModule,
DxiCardViewCardHeaderItemModule,
DxoCardViewCardViewHeaderFilterModule,
DxoCardViewCardViewHeaderFilterSearchModule,
DxoCardViewCardViewHeaderFilterTextsModule,
DxoCardViewCardViewSelectionModule,
DxiCardViewChangeModule,
DxoCardViewColCountByScreenModule,
DxoCardViewCollisionModule,
DxiCardViewColumnModule,
DxoCardViewColumnChooserModule,
DxoCardViewColumnChooserSearchModule,
DxoCardViewColumnChooserSelectionModule,
DxoCardViewColumnHeaderFilterModule,
DxoCardViewColumnHeaderFilterSearchModule,
DxiCardViewCompareRuleModule,
DxiCardViewCustomOperationModule,
DxiCardViewCustomRuleModule,
DxoCardViewDraggingModule,
DxoCardViewEditingModule,
DxoCardViewEditingTextsModule,
DxiCardViewEmailRuleModule,
DxiCardViewEmptyItemModule,
DxiCardViewFieldModule,
DxoCardViewFilterBuilderModule,
DxoCardViewFilterOperationDescriptionsModule,
DxoCardViewFilterPanelModule,
DxoCardViewFilterPanelTextsModule,
DxoCardViewFormModule,
DxoCardViewFormatModule,
DxoCardViewFormItemModule,
DxoCardViewFromModule,
DxiCardViewGroupItemModule,
DxoCardViewGroupOperationDescriptionsModule,
DxoCardViewHeaderFilterModule,
DxoCardViewHeaderPanelModule,
DxoCardViewHideModule,
DxiCardViewItemModule,
DxoCardViewLabelModule,
DxoCardViewLoadPanelModule,
DxoCardViewLookupModule,
DxoCardViewMyModule,
DxiCardViewNumericRuleModule,
DxoCardViewOffsetModule,
DxoCardViewPagerModule,
DxoCardViewPagingModule,
DxiCardViewPatternRuleModule,
DxoCardViewPositionModule,
DxiCardViewRangeRuleModule,
DxoCardViewRemoteOperationsModule,
DxiCardViewRequiredRuleModule,
DxoCardViewScrollingModule,
DxoCardViewSearchModule,
DxoCardViewSearchPanelModule,
DxoCardViewSelectionModule,
DxoCardViewShowModule,
DxiCardViewSimpleItemModule,
DxoCardViewSortingModule,
DxiCardViewStringLengthRuleModule,
DxiCardViewTabModule,
DxiCardViewTabbedItemModule,
DxoCardViewTabPanelOptionsModule,
DxiCardViewTabPanelOptionsItemModule,
DxoCardViewTextsModule,
DxoCardViewToModule,
DxoCardViewToolbarModule,
DxiCardViewToolbarItemModule,
DxiCardViewValidationRuleModule,
DxIntegrationModule,
DxTemplateModule, DxoCardViewAnimationModule,
DxiCardViewAsyncRuleModule,
DxoCardViewAtModule,
DxoCardViewBoundaryOffsetModule,
DxiCardViewButtonItemModule,
DxoCardViewButtonOptionsModule,
DxoCardViewCardCoverModule,
DxoCardViewCardHeaderModule,
DxiCardViewCardHeaderItemModule,
DxoCardViewCardViewHeaderFilterModule,
DxoCardViewCardViewHeaderFilterSearchModule,
DxoCardViewCardViewHeaderFilterTextsModule,
DxoCardViewCardViewSelectionModule,
DxiCardViewChangeModule,
DxoCardViewColCountByScreenModule,
DxoCardViewCollisionModule,
DxiCardViewColumnModule,
DxoCardViewColumnChooserModule,
DxoCardViewColumnChooserSearchModule,
DxoCardViewColumnChooserSelectionModule,
DxoCardViewColumnHeaderFilterModule,
DxoCardViewColumnHeaderFilterSearchModule,
DxiCardViewCompareRuleModule,
DxiCardViewCustomOperationModule,
DxiCardViewCustomRuleModule,
DxoCardViewDraggingModule,
DxoCardViewEditingModule,
DxoCardViewEditingTextsModule,
DxiCardViewEmailRuleModule,
DxiCardViewEmptyItemModule,
DxiCardViewFieldModule,
DxoCardViewFilterBuilderModule,
DxoCardViewFilterOperationDescriptionsModule,
DxoCardViewFilterPanelModule,
DxoCardViewFilterPanelTextsModule,
DxoCardViewFormModule,
DxoCardViewFormatModule,
DxoCardViewFormItemModule,
DxoCardViewFromModule,
DxiCardViewGroupItemModule,
DxoCardViewGroupOperationDescriptionsModule,
DxoCardViewHeaderFilterModule,
DxoCardViewHeaderPanelModule,
DxoCardViewHideModule,
DxiCardViewItemModule,
DxoCardViewLabelModule,
DxoCardViewLoadPanelModule,
DxoCardViewLookupModule,
DxoCardViewMyModule,
DxiCardViewNumericRuleModule,
DxoCardViewOffsetModule,
DxoCardViewPagerModule,
DxoCardViewPagingModule,
DxiCardViewPatternRuleModule,
DxoCardViewPositionModule,
DxiCardViewRangeRuleModule,
DxoCardViewRemoteOperationsModule,
DxiCardViewRequiredRuleModule,
DxoCardViewScrollingModule,
DxoCardViewSearchModule,
DxoCardViewSearchPanelModule,
DxoCardViewSelectionModule,
DxoCardViewShowModule,
DxiCardViewSimpleItemModule,
DxoCardViewSortingModule,
DxiCardViewStringLengthRuleModule,
DxiCardViewTabModule,
DxiCardViewTabbedItemModule,
DxoCardViewTabPanelOptionsModule,
DxiCardViewTabPanelOptionsItemModule,
DxoCardViewTextsModule,
DxoCardViewToModule,
DxoCardViewToolbarModule,
DxiCardViewToolbarItemModule,
DxiCardViewValidationRuleModule,
DxTemplateModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxCardViewModule, decorators: [{
type: NgModule,
args: [{
imports: [
DxCardViewComponent,
DxoCardViewAnimationModule,
DxiCardViewAsyncRuleModule,
DxoCardViewAtModule,
DxoCardViewBoundaryOffsetModule,
DxiCardViewButtonItemModule,
DxoCardViewButtonOptionsModule,
DxoCardViewCardCoverModule,
DxoCardViewCardHeaderModule,
DxiCardViewCardHeaderItemModule,
DxoCardViewCardViewHeaderFilterModule,
DxoCardViewCardViewHeaderFilterSearchModule,
DxoCardViewCardViewHeaderFilterTextsModule,
DxoCardViewCardViewSelectionModule,
DxiCardViewChangeModule,
DxoCardViewColCountByScreenModule,
DxoCardViewCollisionModule,
DxiCardViewColumnModule,
DxoCardViewColumnChooserModule,
DxoCardViewColumnChooserSearchModule,
DxoCardViewColumnChooserSelectionModule,
DxoCardViewColumnHeaderFilterModule,
DxoCardViewColumnHeaderFilterSearchModule,
DxiCardViewCompareRuleModule,
DxiCardViewCustomOperationModule,
DxiCardViewCustomRuleModule,
DxoCardViewDraggingModule,
DxoCardViewEditingModule,
DxoCardViewEditingTextsModule,
DxiCardViewEmailRuleModule,
DxiCardViewEmptyItemModule,
DxiCardViewFieldModule,
DxoCardViewFilterBuilderModule,
DxoCardViewFilterOperationDescriptionsModule,
DxoCardViewFilterPanelModule,
DxoCardViewFilterPanelTextsModule,
DxoCardViewFormModule,
DxoCardViewFormatModule,
DxoCardViewFormItemModule,
DxoCardViewFromModule,
DxiCardViewGroupItemModule,
DxoCardViewGroupOperationDescriptionsModule,
DxoCardViewHeaderFilterModule,
DxoCardViewHeaderPanelModule,
DxoCardViewHideModule,
DxiCardViewItemModule,
DxoCardViewLabelModule,
DxoCardViewLoadPanelModule,
DxoCardViewLookupModule,
DxoCardViewMyModule,
DxiCardViewNumericRuleModule,
DxoCardViewOffsetModule,
DxoCardViewPagerModule,
DxoCardViewPagingModule,
DxiCardViewPatternRuleModule,
DxoCardViewPositionModule,
DxiCardViewRangeRuleModule,
DxoCardViewRemoteOperationsModule,
DxiCardViewRequiredRuleModule,
DxoCardViewScrollingModule,
DxoCardViewSearchModule,
DxoCardViewSearchPanelModule,
DxoCardViewSelectionModule,
DxoCardViewShowModule,
DxiCardViewSimpleItemModule,
DxoCardViewSortingModule,
DxiCardViewStringLengthRuleModule,
DxiCardViewTabModule,
DxiCardViewTabbedItemModule,
DxoCardViewTabPanelOptionsModule,
DxiCardViewTabPanelOptionsItemModule,
DxoCardViewTextsModule,
DxoCardViewToModule,
DxoCardViewToolbarModule,
DxiCardViewToolbarItemModule,
DxiCardViewValidationRuleModule,
DxIntegrationModule,
DxTemplateModule
],
exports: [
DxCardViewComponent,
DxoCardViewAnimationModule,
DxiCardViewAsyncRuleModule,
DxoCardViewAtModule,
DxoCardViewBoundaryOffsetModule,
DxiCardViewButtonItemModule,
DxoCardViewButtonOptionsModule,
DxoCardViewCardCoverModule,
DxoCardViewCardHeaderModule,
DxiCardViewCardHeaderItemModule,
DxoCardViewCardViewHeaderFilterModule,
DxoCardViewCardViewHeaderFilterSearchModule,
DxoCardViewCardViewHeaderFilterTextsModule,
DxoCardViewCardViewSelectionModule,
DxiCardViewChangeModule,
DxoCardViewColCountByScreenModule,
DxoCardViewCollisionModule,
DxiCardViewColumnModule,
DxoCardViewColumnChooserModule,
DxoCardViewColumnChooserSearchModule,
DxoCardViewColumnChooserSelectionModule,
DxoCardViewColumnHeaderFilterModule,
DxoCardViewColumnHeaderFilterSearchModule,
DxiCardViewCompareRuleModule,
DxiCardViewCustomOperationModule,
DxiCardViewCustomRuleModule,
DxoCardViewDraggingModule,
DxoCardViewEditingModule,
DxoCardViewEditingTextsModule,
DxiCardViewEmailRuleModule,
DxiCardViewEmptyItemModule,
DxiCardViewFieldModule,
DxoCardViewFilterBuilderModule,
DxoCardViewFilterOperationDescriptionsModule,
DxoCardViewFilterPanelModule,
DxoCardViewFilterPanelTextsModule,
DxoCardViewFormModule,
DxoCardViewFormatModule,
DxoCardViewFormItemModule,
DxoCardViewFromModule,
DxiCardViewGroupItemModule,
DxoCardViewGroupOperationDescriptionsModule,
DxoCardViewHeaderFilterModule,
DxoCardViewHeaderPanelModule,
DxoCardViewHideModule,
DxiCardViewItemModule,
DxoCardViewLabelModule,
DxoCardViewLoadPanelModule,
DxoCardViewLookupModule,
DxoCardViewMyModule,
DxiCardViewNumericRuleModule,
DxoCardViewOffsetModule,
DxoCardViewPagerModule,
DxoCardViewPagingModule,
DxiCardViewPatternRuleModule,
DxoCardViewPositionModule,
DxiCardViewRangeRuleModule,
DxoCardViewRemoteOperationsModule,
DxiCardViewRequiredRuleModule,
DxoCardViewScrollingModule,
DxoCardViewSearchModule,
DxoCardViewSearchPanelModule,
DxoCardViewSelectionModule,
DxoCardViewShowModule,
DxiCardViewSimpleItemModule,
DxoCardViewSortingModule,
DxiCardViewStringLengthRuleModule,
DxiCardViewTabModule,
DxiCardViewTabbedItemModule,
DxoCardViewTabPanelOptionsModule,
DxiCardViewTabPanelOptionsItemModule,
DxoCardViewTextsModule,
DxoCardViewToModule,
DxoCardViewToolbarModule,
DxiCardViewToolbarItemModule,
DxiCardViewValidationRuleModule,
DxTemplateModule
]
}]
}] });
export * from 'devextreme-angular/ui/card-view/nested';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kaXN0L3VpL2NhcmQtdmlldy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILG9DQUFvQztBQUdwQyxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUVOLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUlaLGVBQWUsRUFDZixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFjdkIsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFHakQsT0FBTyxFQUNILFdBQVcsRUFDWCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUdqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx3Q0FB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QTRCO3dCQUM1QixnQ0FBZ0M7d0JBQ2hDLDJCQUEyQjt3QkFDM0IseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5Qiw0Q0FBNEM7d0JBQzVDLDRCQUE0Qjt3QkFDNUIsaUNBQWlDO3dCQUNqQyxxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsMkNBQTJDO3dCQUMzQyw2QkFBNkI7d0JBQzdCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2Qiw0QkFBNEI7d0JBQzVCLHlCQUF5Qjt3QkFDekIsMEJBQTBCO3dCQUMxQixpQ0FBaUM7d0JBQ2pDLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsMEJBQTBCO3dCQUMxQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4QixpQ0FBaUM7d0JBQ2pDLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3dCQUMzQixnQ0FBZ0M7d0JBQ2hDLG9DQUFvQzt3QkFDcEMsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QiwrQkFBK0I7d0JBQy9CLGdCQUFnQjtxQkFDakI7aUJBQ0Y7O0FBR0QsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKiBWZXJzaW9uOiAyNS4xLjNcbiAqIEJ1aWxkIGRhdGU6IFdlZCBKdW4gMjUgMjAyNVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjUgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcblxyXG5pbXBvcnQge1xyXG4gICAgVHJhbnNmZXJTdGF0ZSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIE5nTW9kdWxlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIE5nWm9uZSxcclxuICAgIFBMQVRGT1JNX0lELFxyXG4gICAgSW5qZWN0LFxyXG5cclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgRG9DaGVjayxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBRdWVyeUxpc3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCB7IEV4cGxpY2l0VHlwZXMgfSBmcm9tICdkZXZleHRyZW1lL3VpL2NhcmRfdmlldyc7XHJcblxyXG5pbXBvcnQgRGF0YVNvdXJjZSBmcm9tICdkZXZleHRyZW1lL2RhdGEvZGF0YV9zb3VyY2UnO1xyXG5pbXBvcnQgeyBDYXJkQ292ZXIsIENhcmRIZWFkZXIsIENvbHVtblByb3BlcnRpZXMsIGR4Q2FyZFZpZXdFZGl0aW5nLCBIZWFkZXJQYW5lbCwgQ2FyZENsaWNrRXZlbnQsIENhcmREYmxDbGlja0V2ZW50LCBDYXJkSG92ZXJDaGFuZ2VkRXZlbnQsIENhcmRJbnNlcnRlZEV2ZW50LCBDYXJkSW5zZXJ0aW5nRXZlbnQsIENhcmRQcmVwYXJlZEV2ZW50LCBDYXJkUmVtb3ZlZEV2ZW50LCBDYXJkUmVtb3ZpbmdFdmVudCwgQ2FyZFNhdmVkRXZlbnQsIENhcmRTYXZpbmdFdmVudCwgQ2FyZFVwZGF0ZWRFdmVudCwgQ2FyZFVwZGF0aW5nRXZlbnQsIENvbnRleHRNZW51UHJlcGFyaW5nRXZlbnQsIEVkaXRDYW5jZWxlZEV2ZW50LCBFZGl0Q2FuY2VsaW5nRXZlbnQsIEVkaXRpbmdTdGFydEV2ZW50LCBGaWVsZENhcHRpb25DbGlja0V2ZW50LCBGaWVsZENhcHRpb25EYmxDbGlja0V2ZW50LCBGaWVsZENhcHRpb25QcmVwYXJlZEV2ZW50LCBGaWVsZFZhbHVlQ2xpY2tFdmVudCwgRmllbGRWYWx1ZURibENsaWNrRXZlbnQsIEZpZWxkVmFsdWVQcmVwYXJlZEV2ZW50LCBGb2N1c2VkQ2FyZENoYW5nZWQsIEluaXROZXdDYXJkRXZlbnQsIFNlbGVjdGlvbkNoYW5nZWRFdmVudCwgUGFnaW5nLCBSZW1vdGVPcGVyYXRpb25zLCBTZWxlY3Rpb25Db25maWd1cmF0aW9uLCBkeENhcmRWaWV3VG9vbGJhciB9IGZyb20gJ2RldmV4dHJlbWUvdWkvY2FyZF92aWV3JztcclxuaW1wb3J0IHsgTW9kZSwgU2Nyb2xsYmFyTW9kZSB9IGZyb20gJ2RldmV4dHJlbWUvY29tbW9uJztcclxuaW1wb3J0IHsgQ29sdW1uQ2hvb3NlciwgRmlsdGVyUGFuZWwsIEhlYWRlckZpbHRlciwgUGFnZXIsIFNlYXJjaFBhbmVsLCBTb3J0aW5nIH0gZnJvbSAnZGV2ZXh0cmVtZS9jb21tb24vZ3JpZHMnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJ2RldmV4dHJlbWUvZGF0YS9kYXRhX3NvdXJjZSc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnZGV2ZXh0cmVtZS9kYXRhL3N0b3JlJztcclxuaW1wb3J0IHsgZHhGaWx0ZXJCdWlsZGVyT3B0aW9ucyB9IGZyb20gJ2RldmV4dHJlbWUvdWkvZmlsdGVyX2J1aWxkZXInO1xyXG5pbXBvcnQgeyBkeExvYWRQYW5lbE9wdGlvbnMgfSBmcm9tICdkZXZleHRyZW1lL3VpL2xvYWRfcGFuZWwnO1xyXG5pbXBvcnQgeyBFdmVudEluZm8gfSBmcm9tICdkZXZleHRyZW1lL2NvbW1vbi9jb3JlL2V2ZW50cyc7XHJcblxyXG5pbXBvcnQgRHhDYXJkVmlldyBmcm9tICdkZXZleHRyZW1lL3VpL2NhcmRfdmlldyc7XHJcblxyXG5cclxuaW1wb3J0IHtcclxuICAgIER4Q29tcG9uZW50LFxyXG4gICAgRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZSxcclxuICAgIE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICBJdGVyYWJsZURpZmZlckhlbHBlcixcclxuICAgIFdhdGNoZXJIZWxwZXJcclxufSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdBbmltYXRpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3QXN5bmNSdWxlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0F0TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0JvdW5kYXJ5T2Zmc2V0TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld0J1dHRvbkl0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3QnV0dG9uT3B0aW9uc01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkQ292ZXJNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Q2FyZEhlYWRlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDYXJkSGVhZGVySXRlbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlclNlYXJjaE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlclRleHRzTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NhcmRWaWV3U2VsZWN0aW9uTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld0NoYW5nZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDb2xDb3VudEJ5U2NyZWVuTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NvbGxpc2lvbk1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDb2x1bW5Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Q29sdW1uQ2hvb3Nlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyU2VhcmNoTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJTZWxlY3Rpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Q29sdW1uSGVhZGVyRmlsdGVyTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NvbHVtbkhlYWRlckZpbHRlclNlYXJjaE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDb21wYXJlUnVsZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDdXN0b21PcGVyYXRpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3Q3VzdG9tUnVsZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdEcmFnZ2luZ01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdFZGl0aW5nTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0VkaXRpbmdUZXh0c01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdFbWFpbFJ1bGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3RW1wdHlJdGVtTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld0ZpZWxkTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0ZpbHRlckJ1aWxkZXJNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3RmlsdGVyT3BlcmF0aW9uRGVzY3JpcHRpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0ZpbHRlclBhbmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0ZpbHRlclBhbmVsVGV4dHNNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Rm9ybU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdGb3JtYXRNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Rm9ybUl0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3RnJvbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdHcm91cEl0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3R3JvdXBPcGVyYXRpb25EZXNjcmlwdGlvbnNNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3SGVhZGVyRmlsdGVyTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0hlYWRlclBhbmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0hpZGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3SXRlbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdMYWJlbE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdMb2FkUGFuZWxNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3TG9va3VwTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld015TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld051bWVyaWNSdWxlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld09mZnNldE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdQYWdlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdQYWdpbmdNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3UGF0dGVyblJ1bGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3UG9zaXRpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3UmFuZ2VSdWxlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld1JlbW90ZU9wZXJhdGlvbnNNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3UmVxdWlyZWRSdWxlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld1Njcm9sbGluZ01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdTZWFyY2hNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3U2VhcmNoUGFuZWxNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3U2VsZWN0aW9uTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld1Nob3dNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3U2ltcGxlSXRlbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdTb3J0aW5nTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld1N0cmluZ0xlbmd0aFJ1bGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3VGFiTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld1RhYmJlZEl0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3VGFiUGFuZWxPcHRpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld1RhYlBhbmVsT3B0aW9uc0l0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3VGV4dHNNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3VG9Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3VG9vbGJhck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdUb29sYmFySXRlbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdWYWxpZGF0aW9uUnVsZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuXHJcblxyXG5pbXBvcnQgeyBEeGlDYXJkVmlld0NvbHVtbkNvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2R4LWNhcmQtdmlldycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxyXG4gICAgaW1wb3J0czogWyBEeEludGVncmF0aW9uTW9kdWxlIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBEeFRlbXBsYXRlSG9zdCxcclxuICAgICAgICBXYXRjaGVySGVscGVyLFxyXG4gICAgICAgIE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICAgICAgSXRlcmFibGVEaWZmZXJIZWxwZXJcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER4Q2FyZFZpZXdDb21wb25lbnQ8VENhcmREYXRhID0gYW55LCBUS2V5ID0gYW55PiBleHRlbmRzIER4Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIERvQ2hlY2sge1xyXG4gICAgaW5zdGFuY2U6IER4Q2FyZFZpZXc8VENhcmREYXRhLCBUS2V5PiA9IG51bGw7XHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGFjY2Vzc0tleSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FjY2Vzc0tleScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGFjY2Vzc0tleSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdhY2Nlc3NLZXknLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBhY3RpdmVTdGF0ZUVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignYWN0aXZlU3RhdGVFbmFibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgYWN0aXZlU3RhdGVFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdhY3RpdmVTdGF0ZUVuYWJsZWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBhbGxvd0NvbHVtblJlb3JkZXJpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignYWxsb3dDb2x1bW5SZW9yZGVyaW5nJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgYWxsb3dDb2x1bW5SZW9yZGVyaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdhbGxvd0NvbHVtblJlb3JkZXJpbmcnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjYXJkQ29udGVudFRlbXBsYXRlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2FyZENvbnRlbnRUZW1wbGF0ZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNhcmRDb250ZW50VGVtcGxhdGUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZENvbnRlbnRUZW1wbGF0ZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNhcmRDb3ZlcigpOiBDYXJkQ292ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NhcmRDb3ZlcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNhcmRDb3Zlcih2YWx1ZTogQ2FyZENvdmVyKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdjYXJkQ292ZXInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjYXJkRm9vdGVyVGVtcGxhdGUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjYXJkRm9vdGVyVGVtcGxhdGUnKTtcclxuICAgIH1cclxuICAgIHNldCBjYXJkRm9vdGVyVGVtcGxhdGUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZEZvb3RlclRlbXBsYXRlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY2FyZEhlYWRlcigpOiBDYXJkSGVhZGVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjYXJkSGVhZGVyJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY2FyZEhlYWRlcih2YWx1ZTogQ2FyZEhlYWRlcikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZEhlYWRlcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNhcmRNYXhXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NhcmRNYXhXaWR0aCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNhcmRNYXhXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdjYXJkTWF4V2lkdGgnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjYXJkTWluV2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjYXJkTWluV2lkdGgnKTtcclxuICAgIH1cclxuICAgIHNldCBjYXJkTWluV2lkdGgodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZE1pbldpZHRoJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY2FyZHNQZXJSb3coKTogTW9kZSB8IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2FyZHNQZXJSb3cnKTtcclxuICAgIH1cclxuICAgIHNldCBjYXJkc1BlclJvdyh2YWx1ZTogTW9kZSB8IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZHNQZXJSb3cnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjYXJkVGVtcGxhdGUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjYXJkVGVtcGxhdGUnKTtcclxuICAgIH1cclxuICAgIHNldCBjYXJkVGVtcGxhdGUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZFRlbXBsYXRlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY29sdW1uQ2hvb3NlcigpOiBDb2x1bW5DaG9vc2VyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjb2x1bW5DaG9vc2VyJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY29sdW1uQ2hvb3Nlcih2YWx1ZTogQ29sdW1uQ2hvb3Nlcikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY29sdW1uQ2hvb3NlcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNvbHVtbnMoKTogQXJyYXk8Q29sdW1uUHJvcGVydGllcyB8IHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NvbHVtbnMnKTtcclxuICAgIH1cclxuICAgIHNldCBjb2x1bW5zKHZhbHVlOiBBcnJheTxDb2x1bW5Qcm9wZXJ0aWVzIHwgc3RyaW5nPikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY29sdW1ucycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGRhdGFTb3VyY2UoKTogQXJyYXk8YW55PiB8IERhdGFTb3VyY2UgfCBEYXRhU291cmNlT3B0aW9ucyB8IFN0b3JlIHwgc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdkYXRhU291cmNlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZGF0YVNvdXJjZSh2YWx1ZTogQXJyYXk8YW55PiB8IERhdGFTb3VyY2UgfCBEYXRhU291cmNlT3B0aW9ucyB8IFN0b3JlIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdkYXRhU291cmNlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZGlzYWJsZWQnKTtcclxuICAgIH1cclxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGlzYWJsZWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBlZGl0aW5nKCk6IGR4Q2FyZFZpZXdFZGl0aW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdlZGl0aW5nJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZWRpdGluZyh2YWx1ZTogZHhDYXJkVmlld0VkaXRpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2VkaXRpbmcnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBlbGVtZW50QXR0cigpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdlbGVtZW50QXR0cicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGVsZW1lbnRBdHRyKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdlbGVtZW50QXR0cicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGVycm9yUm93RW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdlcnJvclJvd0VuYWJsZWQnKTtcclxuICAgIH1cclxuICAgIHNldCBlcnJvclJvd0VuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2Vycm9yUm93RW5hYmxlZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGZpZWxkSGludEVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZmllbGRIaW50RW5hYmxlZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGZpZWxkSGludEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2ZpZWxkSGludEVuYWJsZWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBmaWx0ZXJCdWlsZGVyKCk6IGR4RmlsdGVyQnVpbGRlck9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZpbHRlckJ1aWxkZXInKTtcclxuICAgIH1cclxuICAgIHNldCBmaWx0ZXJCdWlsZGVyKHZhbHVlOiBkeEZpbHRlckJ1aWxkZXJPcHRpb25zKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdmaWx0ZXJCdWlsZGVyJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZmlsdGVyQnVpbGRlclBvcHVwKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZpbHRlckJ1aWxkZXJQb3B1cCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGZpbHRlckJ1aWxkZXJQb3B1cCh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZmlsdGVyQnVpbGRlclBvcHVwJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZmlsdGVyUGFuZWwoKTogRmlsdGVyUGFuZWwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZpbHRlclBhbmVsJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZmlsdGVyUGFuZWwodmFsdWU6IEZpbHRlclBhbmVsKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdmaWx0ZXJQYW5lbCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGZpbHRlclZhbHVlKCk6IEFycmF5PGFueT4gfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZmlsdGVyVmFsdWUnKTtcclxuICAgIH1cclxuICAgIHNldCBmaWx0ZXJWYWx1ZSh2YWx1ZTogQXJyYXk8YW55PiB8IEZ1bmN0aW9uIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdmaWx0ZXJWYWx1ZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGZvY3VzU3RhdGVFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZvY3VzU3RhdGVFbmFibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZm9jdXNTdGF0ZUVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2ZvY3VzU3RhdGVFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaGVhZGVyRmlsdGVyKCk6IEhlYWRlckZpbHRlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGVhZGVyRmlsdGVyJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaGVhZGVyRmlsdGVyKHZhbHVlOiBIZWFkZXJGaWx0ZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2hlYWRlckZpbHRlcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhlYWRlclBhbmVsKCk6IEhlYWRlclBhbmVsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdoZWFkZXJQYW5lbCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhlYWRlclBhbmVsKHZhbHVlOiBIZWFkZXJQYW5lbCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGVhZGVyUGFuZWwnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBoZWlnaHQoKTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdoZWlnaHQnKTtcclxuICAgIH1cclxuICAgIHNldCBoZWlnaHQodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGVpZ2h0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaGludCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hpbnQnKTtcclxuICAgIH1cclxuICAgIHNldCBoaW50KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2hpbnQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBob3ZlclN0YXRlRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdob3ZlclN0YXRlRW5hYmxlZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhvdmVyU3RhdGVFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdob3ZlclN0YXRlRW5hYmxlZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGtleUV4cHIoKTogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigna2V5RXhwcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGtleUV4cHIodmFsdWU6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2tleUV4cHInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBsb2FkUGFuZWwoKTogZHhMb2FkUGFuZWxPcHRpb25zIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdsb2FkUGFuZWwnKTtcclxuICAgIH1cclxuICAgIHNldCBsb2FkUGFuZWwodmFsdWU6IGR4TG9hZFBhbmVsT3B0aW9ucykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbG9hZFBhbmVsJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbm9EYXRhVGVtcGxhdGUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdub0RhdGFUZW1wbGF0ZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IG5vRGF0YVRlbXBsYXRlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ25vRGF0YVRlbXBsYXRlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbm9EYXRhVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ25vRGF0YVRleHQnKTtcclxuICAgIH1cclxuICAgIHNldCBub0RhdGFUZXh0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ25vRGF0YVRleHQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBwYWdlcigpOiBQYWdlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigncGFnZXInKTtcclxuICAgIH1cclxuICAgIHNldCBwYWdlcih2YWx1ZTogUGFnZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3BhZ2VyJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcGFnaW5nKCk6IFBhZ2luZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigncGFnaW5nJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgcGFnaW5nKHZhbHVlOiBQYWdpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3BhZ2luZycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHJlbW90ZU9wZXJhdGlvbnMoKTogYm9vbGVhbiB8IE1vZGUgfCBSZW1vdGVPcGVyYXRpb25zIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdyZW1vdGVPcGVyYXRpb25zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgcmVtb3RlT3BlcmF0aW9ucyh2YWx1ZTogYm9vbGVhbiB8IE1vZGUgfCBSZW1vdGVPcGVyYXRpb25zKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdyZW1vdGVPcGVyYXRpb25zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcnRsRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdydGxFbmFibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgcnRsRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigncnRsRW5hYmxlZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNjcm9sbGluZygpOiB7IHNjcm9sbEJ5Q29udGVudD86IGJvb2xlYW4sIHNjcm9sbEJ5VGh1bWI/OiBib29sZWFuLCBzaG93U2Nyb2xsYmFyPzogU2Nyb2xsYmFyTW9kZSwgdXNlTmF0aXZlPzogYm9vbGVhbiB8IE1vZGUgfSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignc2Nyb2xsaW5nJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgc2Nyb2xsaW5nKHZhbHVlOiB7IHNjcm9sbEJ5Q29udGVudD86IGJvb2xlYW4sIHNjcm9sbEJ5VGh1bWI/OiBib29sZWFuLCBzaG93U2Nyb2xsYmFyPzogU2Nyb2xsYmFyTW9kZSwgdXNlTmF0aXZlPzogYm9vbGVhbiB8IE1vZGUgfSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignc2Nyb2xsaW5nJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2VhcmNoUGFuZWwoKTogU2VhcmNoUGFuZWwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3NlYXJjaFBhbmVsJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgc2VhcmNoUGFuZWwodmFsdWU6IFNlYXJjaFBhbmVsKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzZWFyY2hQYW5lbCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNlbGVjdGVkQ2FyZEtleXMoKTogQXJyYXk8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignc2VsZWN0ZWRDYXJkS2V5cycpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNlbGVjdGVkQ2FyZEtleXModmFsdWU6IEFycmF5PGFueT4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3NlbGVjdGVkQ2FyZEtleXMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzZWxlY3Rpb24oKTogU2VsZWN0aW9uQ29uZmlndXJhdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignc2VsZWN0aW9uJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgc2VsZWN0aW9uKHZhbHVlOiBTZWxlY3Rpb25Db25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzZWxlY3Rpb24nLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzb3J0aW5nKCk6IFNvcnRpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3NvcnRpbmcnKTtcclxuICAgIH1cclxuICAgIHNldCBzb3J0aW5nKHZhbHVlOiBTb3J0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzb3J0aW5nJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdGFiSW5kZXgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd0YWJJbmRleCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IHRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3RhYkluZGV4JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdG9vbGJhcigpOiBkeENhcmRWaWV3VG9vbGJhciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigndG9vbGJhcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IHRvb2xiYXIodmFsdWU6IGR4Q2FyZFZpZXdUb29sYmFyKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd0b29sYmFyJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd2aXNpYmxlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigndmlzaWJsZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHdpZHRoKCk6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignd2lkdGgnKTtcclxuICAgIH1cclxuICAgIHNldCB3aWR0aCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3aWR0aCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHdvcmRXcmFwRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd3b3JkV3JhcEVuYWJsZWQnKTtcclxuICAgIH1cclxuICAgIHNldCB3b3JkV3JhcEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3dvcmRXcmFwRW5hYmxlZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNhcmRDbGljazogRXZlbnRFbWl0dGVyPENhcmRDbGlja0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNhcmREYmxDbGljazogRXZlbnRFbWl0dGVyPENhcmREYmxDbGlja0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNhcmRIb3ZlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDYXJkSG92ZXJDaGFuZ2VkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZEluc2VydGVkOiBFdmVudEVtaXR0ZXI8Q2FyZEluc2VydGVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZEluc2VydGluZzogRXZlbnRFbWl0dGVyPENhcmRJbnNlcnRpbmdFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25DYXJkUHJlcGFyZWQ6IEV2ZW50RW1pdHRlcjxDYXJkUHJlcGFyZWRFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25DYXJkUmVtb3ZlZDogRXZlbnRFbWl0dGVyPENhcmRSZW1vdmVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZFJlbW92aW5nOiBFdmVudEVtaXR0ZXI8Q2FyZFJlbW92aW5nRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZFNhdmVkOiBFdmVudEVtaXR0ZXI8Q2FyZFNhdmVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZFNhdmluZzogRXZlbnRFbWl0dGVyPENhcmRTYXZpbmdFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25DYXJkVXBkYXRlZDogRXZlbnRFbWl0dGVyPENhcmRVcGRhdGVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZFVwZGF0aW5nOiBFdmVudEVtaXR0ZXI8Q2FyZFVwZGF0aW5nRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ29udGVudFJlYWR5OiBFdmVudEVtaXR0ZXI8RXZlbnRJbmZvPGFueT4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ29udGV4dE1lbnVQcmVwYXJpbmc6IEV2ZW50RW1pdHRlcjxDb250ZXh0TWVudVByZXBhcmluZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkRhdGFFcnJvck9jY3VycmVkOiBFdmVudEVtaXR0ZXI8T2JqZWN0PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkRpc3Bvc2luZzogRXZlbnRFbWl0dGVyPEV2ZW50SW5mbzxhbnk+PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkVkaXRDYW5jZWxlZDogRXZlbnRFbWl0dGVyPEVkaXRDYW5jZWxlZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkVkaXRDYW5jZWxpbmc6IEV2ZW50RW1pdHRlcjxFZGl0Q2FuY2VsaW5nRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRWRpdGluZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8RWRpdGluZ1N0YXJ0RXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRmllbGRDYXB0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxGaWVsZENhcHRpb25DbGlja0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkZpZWxkQ2FwdGlvbkRibENsaWNrOiBFdmVudEVtaXR0ZXI8RmllbGRDYXB0aW9uRGJsQ2xpY2tFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25GaWVsZENhcHRpb25QcmVwYXJlZDogRXZlbnRFbWl0dGVyPEZpZWxkQ2FwdGlvblByZXBhcmVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRmllbGRWYWx1ZUNsaWNrOiBFdmVudEVtaXR0ZXI8RmllbGRWYWx1ZUNsaWNrRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRmllbGRWYWx1ZURibENsaWNrOiBFdmVudEVtaXR0ZXI8RmllbGRWYWx1ZURibENsaWNrRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRmllbGRWYWx1ZVByZXBhcmVkOiBFdmVudEVtaXR0ZXI8RmllbGRWYWx1ZVByZXBhcmVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRm9jdXNlZENhcmRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Rm9jdXNlZENhcmRDaGFuZ2VkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8T2JqZWN0PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkluaXROZXdDYXJkOiBFdmVudEVtaXR0ZXI8SW5pdE5ld0NhcmRFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25PcHRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8T2JqZWN0PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBhY2Nlc3NLZXlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBhY3RpdmVTdGF0ZUVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgYWxsb3dDb2x1bW5SZW9yZGVyaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRDb250ZW50VGVtcGxhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjYXJkQ292ZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYXJkQ292ZXI+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjYXJkRm9vdGVyVGVtcGxhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjYXJkSGVhZGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q2FyZEhlYWRlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRNYXhXaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRNaW5XaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRzUGVyUm93Q2hhbmdlOiBFdmVudEVtaXR0ZXI8TW9kZSB8IG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRUZW1wbGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNvbHVtbkNob29zZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDb2x1bW5DaG9vc2VyPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgY29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PENvbHVtblByb3BlcnRpZXMgfCBzdHJpbmc+PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZGF0YVNvdXJjZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PGFueT4gfCBEYXRhU291cmNlIHwgRGF0YVNvdXJjZU9wdGlvbnMgfCBTdG9yZSB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGRpc2FibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGVkaXRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeENhcmRWaWV3RWRpdGluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGVsZW1lbnRBdHRyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGVycm9yUm93RW5hYmxlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBmaWVsZEhpbnRFbmFibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGZpbHRlckJ1aWxkZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeEZpbHRlckJ1aWxkZXJPcHRpb25zPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZmlsdGVyQnVpbGRlclBvcHVwQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGZpbHRlclBhbmVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsdGVyUGFuZWw+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBmaWx0ZXJWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PGFueT4gfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGZvY3VzU3RhdGVFbmFibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhlYWRlckZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPEhlYWRlckZpbHRlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhlYWRlclBhbmVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SGVhZGVyUGFuZWw+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoZWlnaHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoaW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaG92ZXJTdGF0ZUVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkga2V5RXhwckNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4gfCBzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBsb2FkUGFuZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeExvYWRQYW5lbE9wdGlvbnM+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBub0RhdGFUZW1wbGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG5vRGF0YVRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBwYWdlckNoYW5nZTogRXZlbnRFbWl0dGVyPFBhZ2VyPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcGFnaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UGFnaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVtb3RlT3BlcmF0aW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4gfCBNb2RlIHwgUmVtb3RlT3BlcmF0aW9ucz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHJ0bEVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc2Nyb2xsaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBzY3JvbGxCeUNvbnRlbnQ/OiBib29sZWFuLCBzY3JvbGxCeVRodW1iPzogYm9vbGVhbiwgc2hvd1Njcm9sbGJhcj86IFNjcm9sbGJhck1vZGUsIHVzZU5hdGl2ZT86IGJvb2xlYW4gfCBNb2RlIH0+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzZWFyY2hQYW5lbENoYW5nZTogRXZlbnRFbWl0dGVyPFNlYXJjaFBhbmVsPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRDYXJkS2V5c0NoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PGFueT4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25Db25maWd1cmF0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc29ydGluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPFNvcnRpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB0YWJJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHRvb2xiYXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeENhcmRWaWV3VG9vbGJhcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgd2lkdGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB3b3JkV3JhcEVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcblxyXG5cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKER4aUNhcmRWaWV3Q29sdW1uQ29tcG9uZW50KVxyXG4gICAgZ2V0IGNvbHVtbnNDaGlsZHJlbigpOiBRdWVyeUxpc3Q8RHhpQ2FyZFZpZXdDb2x1bW5Db21wb25lbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjb2x1bW5zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY29sdW1uc0NoaWxkcmVuKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0Q2hpbGRyZW4oJ2NvbHVtbnMnLCB2YWx1ZSwgJ0R4aUNhcmRWaWV3Q29sdW1uQ29tcG9uZW50Jyk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIG5nWm9uZTogTmdab25lLCB0ZW1wbGF0ZUhvc3Q6IER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgICAgICBwcml2YXRlIF93YXRjaGVySGVscGVyOiBXYXRjaGVySGVscGVyLFxyXG4gICAgICAgICAgICBwcml2YXRlIF9pZGg6IEl0ZXJhYmxlRGlmZmVySGVscGVyLFxyXG4gICAgICAgICAgICBvcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgICAgICAgICB0cmFuc2ZlclN0YXRlOiBUcmFuc2ZlclN0YXRlLFxyXG4gICAgICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBhbnkpIHtcclxuXHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgbmdab25lLCB0ZW1wbGF0ZUhvc3QsIF93YXRjaGVySGVscGVyLCB0cmFuc2ZlclN0YXRlLCBwbGF0Zm9ybUlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY3JlYXRlRXZlbnRFbWl0dGVycyhbXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY2FyZENsaWNrJywgZW1pdDogJ29uQ2FyZENsaWNrJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmREYmxDbGljaycsIGVtaXQ6ICdvbkNhcmREYmxDbGljaycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjYXJkSG92ZXJDaGFuZ2VkJywgZW1pdDogJ29uQ2FyZEhvdmVyQ2hhbmdlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjYXJkSW5zZXJ0ZWQnLCBlbWl0OiAnb25DYXJkSW5zZXJ0ZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY2FyZEluc2VydGluZycsIGVtaXQ6ICdvbkNhcmRJbnNlcnRpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY2FyZFByZXBhcmVkJywgZW1pdDogJ29uQ2FyZFByZXBhcmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRSZW1vdmVkJywgZW1pdDogJ29uQ2FyZFJlbW92ZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY2FyZFJlbW92aW5nJywgZW1pdDogJ29uQ2FyZFJlbW92aW5nJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRTYXZlZCcsIGVtaXQ6ICdvbkNhcmRTYXZlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjYXJkU2F2aW5nJywgZW1pdDogJ29uQ2FyZFNhdmluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjYXJkVXBkYXRlZCcsIGVtaXQ6ICdvbkNhcmRVcGRhdGVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRVcGRhdGluZycsIGVtaXQ6ICdvbkNhcmRVcGRhdGluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjb250ZW50UmVhZHknLCBlbWl0OiAnb25Db250ZW50UmVhZHknIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY29udGV4dE1lbnVQcmVwYXJpbmcnLCBlbWl0OiAnb25Db250ZXh0TWVudVByZXBhcmluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdkYXRhRXJyb3JPY2N1cnJlZCcsIGVtaXQ6ICdvbkRhdGFFcnJvck9jY3VycmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rpc3Bvc2luZycsIGVtaXQ6ICdvbkRpc3Bvc2luZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdlZGl0Q2FuY2VsZWQnLCBlbWl0OiAnb25FZGl0Q2FuY2VsZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZWRpdENhbmNlbGluZycsIGVtaXQ6ICdvbkVkaXRDYW5jZWxpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZWRpdGluZ1N0YXJ0JywgZW1pdDogJ29uRWRpdGluZ1N0YXJ0JyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2ZpZWxkQ2FwdGlvbkNsaWNrJywgZW1pdDogJ29uRmllbGRDYXB0aW9uQ2xpY2snIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZmllbGRDYXB0aW9uRGJsQ2xpY2snLCBlbWl0OiAnb25GaWVsZENhcHRpb25EYmxDbGljaycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdmaWVsZENhcHRpb25QcmVwYXJlZCcsIGVtaXQ6ICdvbkZpZWxkQ2FwdGlvblByZXBhcmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2ZpZWxkVmFsdWVDbGljaycsIGVtaXQ6ICdvbkZpZWxkVmFsdWVDbGljaycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdmaWVsZFZhbHVlRGJsQ2xpY2snLCBlbWl0OiAnb25GaWVsZFZhbHVlRGJsQ2xpY2snIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZmllbGRWYWx1ZVByZXBhcmVkJywgZW1pdDogJ29uRmllbGRWYWx1ZVByZXBhcmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2ZvY3VzZWRDYXJkQ2hhbmdlZCcsIGVtaXQ6ICdvbkZvY3VzZWRDYXJkQ2hhbmdlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpbml0aWFsaXplZCcsIGVtaXQ6ICdvbkluaXRpYWxpemVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2luaXROZXdDYXJkJywgZW1pdDogJ29uSW5pdE5ld0NhcmQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnb3B0aW9uQ2hhbmdlZCcsIGVtaXQ6ICdvbk9wdGlvbkNoYW5nZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnc2VsZWN0aW9uQ2hhbmdlZCcsIGVtaXQ6ICdvblNlbGVjdGlvbkNoYW5nZWQnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2FjY2Vzc0tleUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnYWN0aXZlU3RhdGVFbmFibGVkQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdhbGxvd0NvbHVtblJlb3JkZXJpbmdDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRDb250ZW50VGVtcGxhdGVDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRDb3ZlckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY2FyZEZvb3RlclRlbXBsYXRlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdjYXJkSGVhZGVyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdjYXJkTWF4V2lkdGhDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRNaW5XaWR0aENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY2FyZHNQZXJSb3dDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRUZW1wbGF0ZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY29sdW1uQ2hvb3NlckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY29sdW1uc0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGF0YVNvdXJjZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGlzYWJsZWRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2VkaXRpbmdDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2VsZW1lbnRBdHRyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdlcnJvclJvd0VuYWJsZWRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpZWxkSGludEVuYWJsZWRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpbHRlckJ1aWxkZXJDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpbHRlckJ1aWxkZXJQb3B1cENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZmlsdGVyUGFuZWxDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpbHRlclZhbHVlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdmb2N1c1N0YXRlRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaGVhZGVyRmlsdGVyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoZWFkZXJQYW5lbENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaGVpZ2h0Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoaW50Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdob3ZlclN0YXRlRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAna2V5RXhwckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnbG9hZFBhbmVsQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdub0RhdGFUZW1wbGF0ZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnbm9EYXRhVGV4dENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncGFnZXJDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3BhZ2luZ0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncmVtb3RlT3BlcmF0aW9uc0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncnRsRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2Nyb2xsaW5nQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzZWFyY2hQYW5lbENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2VsZWN0ZWRDYXJkS2V5c0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2VsZWN0aW9uQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzb3J0aW5nQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICd0YWJJbmRleENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAndG9vbGJhckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAndmlzaWJsZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnd2lkdGhDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3dvcmRXcmFwRW5hYmxlZENoYW5nZScgfVxyXG4gICAgICAgIF0pO1xyXG5cclxuICAgICAgICB0aGlzLl9pZGguc2V0SG9zdCh0aGlzKTtcclxuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVJbnN0YW5jZShlbGVtZW50LCBvcHRpb25zKSB7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRHhDYXJkVmlldyhlbGVtZW50LCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5fZGVzdHJveVdpZGdldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnNldHVwQ2hhbmdlcygnY29sdW1ucycsIGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMuc2V0dXBDaGFuZ2VzKCdkYXRhU291cmNlJywgY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZXMoJ2ZpbHRlclZhbHVlJywgY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZXMoJ2tleUV4cHInLCBjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnNldHVwQ2hhbmdlcygnc2VsZWN0ZWRDYXJkS2V5cycsIGNoYW5nZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwQ2hhbmdlcyhwcm9wOiBzdHJpbmcsIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoIShwcm9wIGluIHRoaXMuX29wdGlvbnNUb1VwZGF0ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5faWRoLnNldHVwKHByb3AsIGNoYW5nZXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0RvQ2hlY2soKSB7XHJcbiAgICAgICAgdGhpcy5faWRoLmRvQ2hlY2soJ2NvbHVtbnMnKTtcclxuICAgICAgICB0aGlzLl9pZGguZG9DaGVjaygnZGF0YVNvdXJjZScpO1xyXG4gICAgICAgIHRoaXMuX2lkaC5kb0NoZWNrKCdmaWx0ZXJWYWx1ZScpO1xyXG4gICAgICAgIHRoaXMuX2lkaC5kb0NoZWNrKCdrZXlFeHByJyk7XHJcbiAgICAgICAgdGhpcy5faWRoLmRvQ2hlY2soJ3NlbGVjdGVkQ2FyZEtleXMnKTtcclxuICAgICAgICB0aGlzLl93YXRjaGVySGVscGVyLmNoZWNrV2F0Y2hlcnMoKTtcclxuICAgICAgICBzdXBlci5uZ0RvQ2hlY2soKTtcclxuICAgICAgICBzdXBlci5jbGVhckNoYW5nZWRPcHRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX3NldE9wdGlvbihuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBsZXQgaXNTZXR1cCA9IHRoaXMuX2lkaC5zZXR1cFNpbmdsZShuYW1lLCB2YWx1ZSk7XHJcbiAgICAgICAgbGV0IGlzQ2hhbmdlZCA9IHRoaXMuX2lkaC5nZXRDaGFuZ2VzKG5hbWUsIHZhbHVlKSAhPT0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKGlzU2V0dXAgfHwgaXNDaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgIHN1cGVyLl9zZXRPcHRpb24obmFtZSwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBEeENhcmRWaWV3Q29tcG9uZW50LFxyXG4gICAgRHhvQ2FyZFZpZXdBbmltYXRpb25Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0FzeW5jUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3QXRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0JvdW5kYXJ5T2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdCdXR0b25JdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdCdXR0b25PcHRpb25zTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDYXJkQ292ZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRIZWFkZXJNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0NhcmRIZWFkZXJJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZFZpZXdIZWFkZXJGaWx0ZXJTZWFyY2hNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRWaWV3SGVhZGVyRmlsdGVyVGV4dHNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRWaWV3U2VsZWN0aW9uTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDaGFuZ2VNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbENvdW50QnlTY3JlZW5Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbGxpc2lvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q29sdW1uTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyU2VhcmNoTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyU2VsZWN0aW9uTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5IZWFkZXJGaWx0ZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkhlYWRlckZpbHRlclNlYXJjaE1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q29tcGFyZVJ1bGVNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0N1c3RvbU9wZXJhdGlvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q3VzdG9tUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RHJhZ2dpbmdNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0VkaXRpbmdNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0VkaXRpbmdUZXh0c01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3RW1haWxSdWxlTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdFbXB0eUl0ZW1Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0ZpZWxkTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGaWx0ZXJCdWlsZGVyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGaWx0ZXJPcGVyYXRpb25EZXNjcmlwdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlclBhbmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGaWx0ZXJQYW5lbFRleHRzTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGb3JtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGb3JtYXRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zvcm1JdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGcm9tTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdHcm91cEl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0dyb3VwT3BlcmF0aW9uRGVzY3JpcHRpb25zTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdIZWFkZXJGaWx0ZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0hlYWRlclBhbmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdIaWRlTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdMYWJlbE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3TG9hZFBhbmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdMb29rdXBNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld015TW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdOdW1lcmljUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3T2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdQYWdlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3UGFnaW5nTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdQYXR0ZXJuUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3UG9zaXRpb25Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1JhbmdlUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3UmVtb3RlT3BlcmF0aW9uc01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3UmVxdWlyZWRSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTY3JvbGxpbmdNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1NlYXJjaE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2VhcmNoUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1NlbGVjdGlvbk1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2hvd01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3U2ltcGxlSXRlbU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U29ydGluZ01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3U3RyaW5nTGVuZ3RoUnVsZU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VGFiTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdUYWJiZWRJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdUYWJQYW5lbE9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1RhYlBhbmVsT3B0aW9uc0l0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1RleHRzTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdUb01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3VG9vbGJhck1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VG9vbGJhckl0ZW1Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1ZhbGlkYXRpb25SdWxlTW9kdWxlLFxyXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcclxuICAgIER4VGVtcGxhdGVNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIER4Q2FyZFZpZXdDb21wb25lbnQsXHJcbiAgICBEeG9DYXJkVmlld0FuaW1hdGlvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3QXN5bmNSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdBdE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Qm91bmRhcnlPZmZzZXRNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0J1dHRvbkl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0J1dHRvbk9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRDb3Zlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZEhlYWRlck1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q2FyZEhlYWRlckl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRWaWV3SGVhZGVyRmlsdGVyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlclNlYXJjaE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZFZpZXdIZWFkZXJGaWx0ZXJUZXh0c01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZFZpZXdTZWxlY3Rpb25Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0NoYW5nZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q29sQ291bnRCeVNjcmVlbk1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q29sbGlzaW9uTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDb2x1bW5Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJTZWFyY2hNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJTZWxlY3Rpb25Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkhlYWRlckZpbHRlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q29sdW1uSGVhZGVyRmlsdGVyU2VhcmNoTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDb21wYXJlUnVsZU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q3VzdG9tT3BlcmF0aW9uTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDdXN0b21SdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdEcmFnZ2luZ01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RWRpdGluZ01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RWRpdGluZ1RleHRzTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdFbWFpbFJ1bGVNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0VtcHR5SXRlbU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3RmllbGRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlckJ1aWxkZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlck9wZXJhdGlvbkRlc2NyaXB0aW9uc01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RmlsdGVyUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlclBhbmVsVGV4dHNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zvcm1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zvcm1hdE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Rm9ybUl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zyb21Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0dyb3VwSXRlbU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3R3JvdXBPcGVyYXRpb25EZXNjcmlwdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0hlYWRlckZpbHRlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3SGVhZGVyUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0hpZGVNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0l0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0xhYmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdMb2FkUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0xvb2t1cE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3TXlNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld051bWVyaWNSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdPZmZzZXRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1BhZ2VyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdQYWdpbmdNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1BhdHRlcm5SdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdQb3NpdGlvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3UmFuZ2VSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdSZW1vdGVPcGVyYXRpb25zTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdSZXF1aXJlZFJ1bGVNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1Njcm9sbGluZ01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2VhcmNoTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTZWFyY2hQYW5lbE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2VsZWN0aW9uTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTaG93TW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdTaW1wbGVJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTb3J0aW5nTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdTdHJpbmdMZW5ndGhSdWxlTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdUYWJNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1RhYmJlZEl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1RhYlBhbmVsT3B0aW9uc01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VGFiUGFuZWxPcHRpb25zSXRlbU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3VGV4dHNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1RvTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdUb29sYmFyTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdUb29sYmFySXRlbU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VmFsaWRhdGlvblJ1bGVNb2R1bGUsXHJcbiAgICBEeFRlbXBsYXRlTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhDYXJkVmlld01vZHVsZSB7IH1cclxuXHJcbmV4cG9ydCAqIGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuXHJcbmltcG9ydCB0eXBlICogYXMgRHhDYXJkVmlld1R5cGVzIGZyb20gXCJkZXZleHRyZW1lL3VpL2NhcmRfdmlld190eXBlc1wiO1xyXG5leHBvcnQgeyBEeENhcmRWaWV3VHlwZXMgfTtcclxuXHJcblxyXG4iXX0=