devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
1,799 lines • 177 kB
JavaScript
/*!
* devextreme-angular
* Version: 25.2.3
* Build date: Fri Dec 12 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 { DxoCardViewAIOptionsModule } from 'devextreme-angular/ui/card-view/nested';
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 { DxoCardViewIndicatorOptionsModule } 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 { PROPERTY_TOKEN_validationRules, PROPERTY_TOKEN_items, PROPERTY_TOKEN_changes, PROPERTY_TOKEN_columns, PROPERTY_TOKEN_customOperations, PROPERTY_TOKEN_fields, PROPERTY_TOKEN_tabs, } from 'devextreme-angular/core/tokens';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/core";
export class DxCardViewComponent extends DxComponent {
_watcherHelper;
_idh;
set _validationRulesContentChildren(value) {
this.setChildren('validationRules', value);
}
set _itemsContentChildren(value) {
this.setChildren('items', value);
}
set _changesContentChildren(value) {
this.setChildren('changes', value);
}
set _columnsContentChildren(value) {
this.setChildren('columns', value);
}
set _customOperationsContentChildren(value) {
this.setChildren('customOperations', value);
}
set _fieldsContentChildren(value) {
this.setChildren('fields', value);
}
set _tabsContentChildren(value) {
this.setChildren('tabs', value);
}
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;
/**
*
*/
onCardUpdated;
/**
*
*/
onCardUpdating;
/**
*
*/
onContentReady;
/**
*
*/
onContextMenuPreparing;
/**
*
*/
onDataErrorOccurred;
/**
*
*/
onDisposing;
/**
*
*/
onEditCanceled;
/**
*
*/
onEditCanceling;
/**
*
*/
onEditingStart;
/**
*
*/
onFieldCaptionClick;
/**
*
*/
onFieldCaptionDblClick;
/**
*
*/
onFieldCaptionPrepared;
/**
*
*/
onFieldValueClick;
/**
*
*/
onFieldValueDblClick;
/**
*
*/
onFieldValuePrepared;
/**
*
*/
onFocusedCardChanged;
/**
*
*/
onInitialized;
/**
*
*/
onInitNewCard;
/**
*
*/
onOptionChanged;
/**
*
*/
onSaved;
/**
*
*/
onSaving;
/**
*
*/
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;
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: '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: 'saved', emit: 'onSaved' },
{ subscribe: 'saving', emit: 'onSaving' },
{ 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", 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", onSaved: "onSaved", onSaving: "onSaving", 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: "_validationRulesContentChildren", predicate: PROPERTY_TOKEN_validationRules }, { propertyName: "_itemsContentChildren", predicate: PROPERTY_TOKEN_items }, { propertyName: "_changesContentChildren", predicate: PROPERTY_TOKEN_changes }, { propertyName: "_columnsContentChildren", predicate: PROPERTY_TOKEN_columns }, { propertyName: "_customOperationsContentChildren", predicate: PROPERTY_TOKEN_customOperations }, { propertyName: "_fieldsContentChildren", predicate: PROPERTY_TOKEN_fields }, { propertyName: "_tabsContentChildren", predicate: PROPERTY_TOKEN_tabs }], 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: { _validationRulesContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_validationRules]
}], _itemsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_items]
}], _changesContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_changes]
}], _columnsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_columns]
}], _customOperationsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_customOperations]
}], _fieldsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_fields]
}], _tabsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_tabs]
}], 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
}], 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
}], onSaved: [{
type: Output
}], onSaving: [{
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
}] } });
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, DxoCardViewAIOptionsModule,
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,
DxoCardViewIndicatorOptionsModule,
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, DxoCardViewAIOptionsModule,
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,
DxoCardViewIndicatorOptionsModule,
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,
DxoCardViewAIOptionsModule,
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,
DxoCardViewIndicatorOptionsModule,
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, DxoCardViewAIOptionsModule,
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,
DxoCardViewIndicatorOptionsModule,
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,
DxoCardViewAIOptionsModule,
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,
DxoCardViewIndicatorOptionsModule,
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,
DxoCardViewAIOptionsModule,
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,
DxoCardViewIndicatorOptionsModule,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kaXN0L3VpL2NhcmQtdmlldy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILG9DQUFvQztBQUdwQyxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUVOLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUlaLGVBQWUsRUFDZixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFjdkIsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFHakQsT0FBTyxFQUNILFdBQVcsRUFDWCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGFBQWEsR0FFaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUdqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3Q0FB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d0JBQ25CLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QiwrQkFBK0I7d0JBQy9CLGdCQUFnQjtxQkFDakI7aUJBQ0Y7O0FBR0QsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKiBWZXJzaW9uOiAyNS4yLjNcbiAqIEJ1aWxkIGRhdGU6IEZyaSBEZWMgMTIgMjAyNVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjUgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcblxyXG5pbXBvcnQge1xyXG4gICAgVHJhbnNmZXJTdGF0ZSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIE5nTW9kdWxlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIE5nWm9uZSxcclxuICAgIFBMQVRGT1JNX0lELFxyXG4gICAgSW5qZWN0LFxyXG5cclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgRG9DaGVjayxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBRdWVyeUxpc3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCB7IEV4cGxpY2l0VHlwZXMgfSBmcm9tICdkZXZleHRyZW1lL3VpL2NhcmRfdmlldyc7XHJcblxyXG5pbXBvcnQgRGF0YVNvdXJjZSBmcm9tICdkZXZleHRyZW1lL2RhdGEvZGF0YV9zb3VyY2UnO1xyXG5pbXBvcnQgeyBDYXJkQ292ZXIsIENhcmRIZWFkZXIsIENvbHVtblByb3BlcnRpZXMsIGR4Q2FyZFZpZXdFZGl0aW5nLCBIZWFkZXJQYW5lbCwgQ2FyZENsaWNrRXZlbnQsIENhcmREYmxDbGlja0V2ZW50LCBDYXJkSG92ZXJDaGFuZ2VkRXZlbnQsIENhcmRJbnNlcnRlZEV2ZW50LCBDYXJkSW5zZXJ0aW5nRXZlbnQsIENhcmRQcmVwYXJlZEV2ZW50LCBDYXJkUmVtb3ZlZEV2ZW50LCBDYXJkUmVtb3ZpbmdFdmVudCwgQ2FyZFVwZGF0ZWRFdmVudCwgQ2FyZFVwZGF0aW5nRXZlbnQsIENvbnRleHRNZW51UHJlcGFyaW5nRXZlbnQsIEVkaXRDYW5jZWxlZEV2ZW50LCBFZGl0Q2FuY2VsaW5nRXZlbnQsIEVkaXRpbmdTdGFydEV2ZW50LCBGaWVsZENhcHRpb25DbGlja0V2ZW50LCBGaWVsZENhcHRpb25EYmxDbGlja0V2ZW50LCBGaWVsZENhcHRpb25QcmVwYXJlZEV2ZW50LCBGaWVsZFZhbHVlQ2xpY2tFdmVudCwgRmllbGRWYWx1ZURibENsaWNrRXZlbnQsIEZpZWxkVmFsdWVQcmVwYXJlZEV2ZW50LCBGb2N1c2VkQ2FyZENoYW5nZWQsIEluaXROZXdDYXJkRXZlbnQsIE9wdGlvbkNoYW5nZWRFdmVudCwgU2F2ZWRFdmVudCwgU2F2aW5nRXZlbnQsIFNlbGVjdGlvbkNoYW5nZWRFdmVudCwgUGFnaW5nLCBSZW1vdGVPcGVyYXRpb25zLCBTZWxlY3Rpb25Db25maWd1cmF0aW9uLCBkeENhcmRWaWV3VG9vbGJhciB9IGZyb20gJ2RldmV4dHJlbWUvdWkvY2FyZF92aWV3JztcclxuaW1wb3J0IHsgTW9kZSwgU2Nyb2xsYmFyTW9kZSB9IGZyb20gJ2RldmV4dHJlbWUvY29tbW9uJztcclxuaW1wb3J0IHsgQ29sdW1uQ2hvb3NlciwgRmlsdGVyUGFuZWwsIEhlYWRlckZpbHRlciwgUGFnZXIsIFNlYXJjaFBhbmVsLCBTb3J0aW5nIH0gZnJvbSAnZGV2ZXh0cmVtZS9jb21tb24vZ3JpZHMnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJ2RldmV4dHJlbWUvZGF0YS9kYXRhX3NvdXJjZSc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnZGV2ZXh0cmVtZS9kYXRhL3N0b3JlJztcclxuaW1wb3J0IHsgZHhGaWx0ZXJCdWlsZGVyT3B0aW9ucyB9IGZyb20gJ2RldmV4dHJlbWUvdWkvZmlsdGVyX2J1aWxkZXInO1xyXG5pbXBvcnQgeyBkeExvYWRQYW5lbE9wdGlvbnMgfSBmcm9tICdkZXZleHRyZW1lL3VpL2xvYWRfcGFuZWwnO1xyXG5pbXBvcnQgeyBFdmVudEluZm8gfSBmcm9tICdkZXZleHRyZW1lL2NvbW1vbi9jb3JlL2V2ZW50cyc7XHJcblxyXG5pbXBvcnQgRHhDYXJkVmlldyBmcm9tICdkZXZleHRyZW1lL3VpL2NhcmRfdmlldyc7XHJcblxyXG5cclxuaW1wb3J0IHtcclxuICAgIER4Q29tcG9uZW50LFxyXG4gICAgRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZSxcclxuICAgIE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICBJdGVyYWJsZURpZmZlckhlbHBlcixcclxuICAgIFdhdGNoZXJIZWxwZXIsXHJcbiAgICBDb2xsZWN0aW9uTmVzdGVkT3B0aW9uLFxyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0FJT3B0aW9uc01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdBbmltYXRpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3QXN5bmNSdWxlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0F0TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0JvdW5kYXJ5T2Zmc2V0TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld0J1dHRvbkl0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3QnV0dG9uT3B0aW9uc01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkQ292ZXJNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Q2FyZEhlYWRlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDYXJkSGVhZGVySXRlbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlclNlYXJjaE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlclRleHRzTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NhcmRWaWV3U2VsZWN0aW9uTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld0NoYW5nZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDb2xDb3VudEJ5U2NyZWVuTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NvbGxpc2lvbk1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDb2x1bW5Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Q29sdW1uQ2hvb3Nlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyU2VhcmNoTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJTZWxlY3Rpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Q29sdW1uSGVhZGVyRmlsdGVyTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0NvbHVtbkhlYWRlckZpbHRlclNlYXJjaE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDb21wYXJlUnVsZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdDdXN0b21PcGVyYXRpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3Q3VzdG9tUnVsZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdEcmFnZ2luZ01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdFZGl0aW5nTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0VkaXRpbmdUZXh0c01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdFbWFpbFJ1bGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3RW1wdHlJdGVtTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld0ZpZWxkTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0ZpbHRlckJ1aWxkZXJNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3RmlsdGVyT3BlcmF0aW9uRGVzY3JpcHRpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0ZpbHRlclBhbmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0ZpbHRlclBhbmVsVGV4dHNNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Rm9ybU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdGb3JtYXRNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3Rm9ybUl0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3RnJvbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdHcm91cEl0ZW1Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3R3JvdXBPcGVyYXRpb25EZXNjcmlwdGlvbnNNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3SGVhZGVyRmlsdGVyTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0hlYWRlclBhbmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0hpZGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3SW5kaWNhdG9yT3B0aW9uc01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdJdGVtTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0xhYmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld0xvYWRQYW5lbE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdMb29rdXBNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3TXlNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3TnVtZXJpY1J1bGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3T2Zmc2V0TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld1BhZ2VyTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld1BhZ2luZ01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdQYXR0ZXJuUnVsZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdQb3NpdGlvbk1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdSYW5nZVJ1bGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3UmVtb3RlT3BlcmF0aW9uc01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdSZXF1aXJlZFJ1bGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3U2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld1NlYXJjaE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdTZWFyY2hQYW5lbE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdTZWxlY3Rpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0NhcmRWaWV3U2hvd01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdTaW1wbGVJdGVtTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9DYXJkVmlld1NvcnRpbmdNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3U3RyaW5nTGVuZ3RoUnVsZU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhpQ2FyZFZpZXdUYWJNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3VGFiYmVkSXRlbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdUYWJQYW5lbE9wdGlvbnNNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcbmltcG9ydCB7IER4aUNhcmRWaWV3VGFiUGFuZWxPcHRpb25zSXRlbU1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdUZXh0c01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdUb01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9jYXJkLXZpZXcvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ2FyZFZpZXdUb29sYmFyTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld1Rvb2xiYXJJdGVtTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeGlDYXJkVmlld1ZhbGlkYXRpb25SdWxlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL2NhcmQtdmlldy9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBcclxuICAgICAgICAgICBQUk9QRVJUWV9UT0tFTl92YWxpZGF0aW9uUnVsZXMsXHJcbiAgICAgICAgICAgUFJPUEVSVFlfVE9LRU5faXRlbXMsXHJcbiAgICAgICAgICAgUFJPUEVSVFlfVE9LRU5fY2hhbmdlcyxcclxuICAgICAgICAgICBQUk9QRVJUWV9UT0tFTl9jb2x1bW5zLFxyXG4gICAgICAgICAgIFBST1BFUlRZX1RPS0VOX2N1c3RvbU9wZXJhdGlvbnMsXHJcbiAgICAgICAgICAgUFJPUEVSVFlfVE9LRU5fZmllbGRzLFxyXG4gICAgICAgICAgIFBST1BFUlRZX1RPS0VOX3RhYnMsXHJcbiAgICAgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZS90b2tlbnMnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZHgtY2FyZC12aWV3JyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZTogJycsXHJcbiAgICBob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXHJcbiAgICBpbXBvcnRzOiBbIER4SW50ZWdyYXRpb25Nb2R1bGUgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgIFdhdGNoZXJIZWxwZXIsXHJcbiAgICAgICAgTmVzdGVkT3B0aW9uSG9zdCxcclxuICAgICAgICBJdGVyYWJsZURpZmZlckhlbHBlclxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhDYXJkVmlld0NvbXBvbmVudDxUQ2FyZERhdGEgPSBhbnksIFRLZXkgPSBhbnk+IGV4dGVuZHMgRHhDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgRG9DaGVjayB7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQUk9QRVJUWV9UT0tFTl92YWxpZGF0aW9uUnVsZXMpXHJcbiAgICBzZXQgX3ZhbGlkYXRpb25SdWxlc0NvbnRlbnRDaGlsZHJlbih2YWx1ZTogUXVlcnlMaXN0PENvbGxlY3Rpb25OZXN0ZWRPcHRpb24+KSB7XHJcbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlbigndmFsaWRhdGlvblJ1bGVzJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oUFJPUEVSVFlfVE9LRU5faXRlbXMpXHJcbiAgICBzZXQgX2l0ZW1zQ29udGVudENoaWxkcmVuKHZhbHVlOiBRdWVyeUxpc3Q8Q29sbGVjdGlvbk5lc3RlZE9wdGlvbj4pIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCdpdGVtcycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFBST1BFUlRZX1RPS0VOX2NoYW5nZXMpXHJcbiAgICBzZXQgX2NoYW5nZXNDb250ZW50Q2hpbGRyZW4odmFsdWU6IFF1ZXJ5TGlzdDxDb2xsZWN0aW9uTmVzdGVkT3B0aW9uPikge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ2NoYW5nZXMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQUk9QRVJUWV9UT0tFTl9jb2x1bW5zKVxyXG4gICAgc2V0IF9jb2x1bW5zQ29udGVudENoaWxkcmVuKHZhbHVlOiBRdWVyeUxpc3Q8Q29sbGVjdGlvbk5lc3RlZE9wdGlvbj4pIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCdjb2x1bW5zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oUFJPUEVSVFlfVE9LRU5fY3VzdG9tT3BlcmF0aW9ucylcclxuICAgIHNldCBfY3VzdG9tT3BlcmF0aW9uc0NvbnRlbnRDaGlsZHJlbih2YWx1ZTogUXVlcnlMaXN0PENvbGxlY3Rpb25OZXN0ZWRPcHRpb24+KSB7XHJcbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlbignY3VzdG9tT3BlcmF0aW9ucycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFBST1BFUlRZX1RPS0VOX2ZpZWxkcylcclxuICAgIHNldCBfZmllbGRzQ29udGVudENoaWxkcmVuKHZhbHVlOiBRdWVyeUxpc3Q8Q29sbGVjdGlvbk5lc3RlZE9wdGlvbj4pIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCdmaWVsZHMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQUk9QRVJUWV9UT0tFTl90YWJzKVxyXG4gICAgc2V0IF90YWJzQ29udGVudENoaWxkcmVuKHZhbHVlOiBRdWVyeUxpc3Q8Q29sbGVjdGlvbk5lc3RlZE9wdGlvbj4pIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCd0YWJzJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGluc3RhbmNlOiBEeENhcmRWaWV3PFRDYXJkRGF0YSwgVEtleT4gPSBudWxsO1xyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBhY2Nlc3NLZXkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdhY2Nlc3NLZXknKTtcclxuICAgIH1cclxuICAgIHNldCBhY2Nlc3NLZXkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWNjZXNzS2V5JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgYWN0aXZlU3RhdGVFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FjdGl2ZVN0YXRlRW5hYmxlZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGFjdGl2ZVN0YXRlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWN0aXZlU3RhdGVFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgYWxsb3dDb2x1bW5SZW9yZGVyaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FsbG93Q29sdW1uUmVvcmRlcmluZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGFsbG93Q29sdW1uUmVvcmRlcmluZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWxsb3dDb2x1bW5SZW9yZGVyaW5nJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY2FyZENvbnRlbnRUZW1wbGF0ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NhcmRDb250ZW50VGVtcGxhdGUnKTtcclxuICAgIH1cclxuICAgIHNldCBjYXJkQ29udGVudFRlbXBsYXRlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NhcmRDb250ZW50VGVtcGxhdGUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjYXJkQ292ZXIoKTogQ2FyZENvdmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjYXJkQ292ZXInKTtcclxuICAgIH1cclxuICAgIHNldCBjYXJkQ292ZXIodmFsdWU6IENhcmRDb3Zlcikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZENvdmVyJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY2FyZEZvb3RlclRlbXBsYXRlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2FyZEZvb3RlclRlbXBsYXRlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY2FyZEZvb3RlclRlbXBsYXRlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NhcmRGb290ZXJUZW1wbGF0ZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNhcmRIZWFkZXIoKTogQ2FyZEhlYWRlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2FyZEhlYWRlcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNhcmRIZWFkZXIodmFsdWU6IENhcmRIZWFkZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NhcmRIZWFkZXInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjYXJkTWF4V2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjYXJkTWF4V2lkdGgnKTtcclxuICAgIH1cclxuICAgIHNldCBjYXJkTWF4V2lkdGgodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2FyZE1heFdpZHRoJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY2FyZE1pbldpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2FyZE1pbldpZHRoJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY2FyZE1pbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NhcmRNaW5XaWR0aCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNhcmRzUGVyUm93KCk6IE1vZGUgfCBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NhcmRzUGVyUm93Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY2FyZHNQZXJSb3codmFsdWU6IE1vZGUgfCBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NhcmRzUGVyUm93JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY2FyZFRlbXBsYXRlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2FyZFRlbXBsYXRlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY2FyZFRlbXBsYXRlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NhcmRUZW1wbGF0ZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNvbHVtbkNob29zZXIoKTogQ29sdW1uQ2hvb3NlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY29sdW1uQ2hvb3NlcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNvbHVtbkNob29zZXIodmFsdWU6IENvbHVtbkNob29zZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NvbHVtbkNob29zZXInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjb2x1bW5zKCk6IEFycmF5PENvbHVtblByb3BlcnRpZXMgfCBzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjb2x1bW5zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogQXJyYXk8Q29sdW1uUHJvcGVydGllcyB8IHN0cmluZz4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NvbHVtbnMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkYXRhU291cmNlKCk6IEFycmF5PGFueT4gfCBEYXRhU291cmNlIHwgRGF0YVNvdXJjZU9wdGlvbnMgfCBTdG9yZSB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZGF0YVNvdXJjZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGRhdGFTb3VyY2UodmFsdWU6IEFycmF5PGFueT4gfCBEYXRhU291cmNlIHwgRGF0YVNvdXJjZU9wdGlvbnMgfCBTdG9yZSB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGF0YVNvdXJjZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2Rpc2FibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2Rpc2FibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZWRpdGluZygpOiBkeENhcmRWaWV3RWRpdGluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZWRpdGluZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGVkaXRpbmcodmFsdWU6IGR4Q2FyZFZpZXdFZGl0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdlZGl0aW5nJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZWxlbWVudEF0dHIoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZWxlbWVudEF0dHInKTtcclxuICAgIH1cclxuICAgIHNldCBlbGVtZW50QXR0cih2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZWxlbWVudEF0dHInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBlcnJvclJvd0VuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZXJyb3JSb3dFbmFibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZXJyb3JSb3dFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdlcnJvclJvd0VuYWJsZWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBmaWVsZEhpbnRFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZpZWxkSGludEVuYWJsZWQnKTtcclxuICAgIH1cclxuICAgIHNldCBmaWVsZEhpbnRFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdmaWVsZEhpbnRFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZmlsdGVyQnVpbGRlcigpOiBkeEZpbHRlckJ1aWxkZXJPcHRpb25zIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdmaWx0ZXJCdWlsZGVyJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZmlsdGVyQnVpbGRlcih2YWx1ZTogZHhGaWx0ZXJCdWlsZGVyT3B0aW9ucykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZmlsdGVyQnVpbGRlcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGZpbHRlckJ1aWxkZXJQb3B1cCgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdmaWx0ZXJCdWlsZGVyUG9wdXAnKTtcclxuICAgIH1cclxuICAgIHNldCBmaWx0ZXJCdWlsZGVyUG9wdXAodmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2ZpbHRlckJ1aWxkZXJQb3B1cCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGZpbHRlclBhbmVsKCk6IEZpbHRlclBhbmVsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdmaWx0ZXJQYW5lbCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGZpbHRlclBhbmVsKHZhbHVlOiBGaWx0ZXJQYW5lbCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZmlsdGVyUGFuZWwnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBmaWx0ZXJWYWx1ZSgpOiBBcnJheTxhbnk+IHwgRnVuY3Rpb24gfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZpbHRlclZhbHVlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZmlsdGVyVmFsdWUodmFsdWU6IEFycmF5PGFueT4gfCBGdW5jdGlvbiB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZmlsdGVyVmFsdWUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBmb2N1c1N0YXRlRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdmb2N1c1N0YXRlRW5hYmxlZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGZvY3VzU3RhdGVFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdmb2N1c1N0YXRlRW5hYmxlZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhlYWRlckZpbHRlcigpOiBIZWFkZXJGaWx0ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hlYWRlckZpbHRlcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhlYWRlckZpbHRlcih2YWx1ZTogSGVhZGVyRmlsdGVyKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdoZWFkZXJGaWx0ZXInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBoZWFkZXJQYW5lbCgpOiBIZWFkZXJQYW5lbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGVhZGVyUGFuZWwnKTtcclxuICAgIH1cclxuICAgIHNldCBoZWFkZXJQYW5lbCh2YWx1ZTogSGVhZGVyUGFuZWwpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2hlYWRlclBhbmVsJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaGVpZ2h0KCk6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaGVpZ2h0KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2hlaWdodCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhpbnQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdoaW50Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaGludCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdoaW50JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaG92ZXJTdGF0ZUVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaG92ZXJTdGF0ZUVuYWJsZWQnKTtcclxuICAgIH1cclxuICAgIHNldCBob3ZlclN0YXRlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaG92ZXJTdGF0ZUVuYWJsZWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBrZXlFeHByKCk6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2tleUV4cHInKTtcclxuICAgIH1cclxuICAgIHNldCBrZXlFeHByKHZhbHVlOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdrZXlFeHByJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbG9hZFBhbmVsKCk6IGR4TG9hZFBhbmVsT3B0aW9ucyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbG9hZFBhbmVsJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbG9hZFBhbmVsKHZhbHVlOiBkeExvYWRQYW5lbE9wdGlvbnMpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2xvYWRQYW5lbCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG5vRGF0YVRlbXBsYXRlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbm9EYXRhVGVtcGxhdGUnKTtcclxuICAgIH1cclxuICAgIHNldCBub0RhdGFUZW1wbGF0ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdub0RhdGFUZW1wbGF0ZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG5vRGF0YVRleHQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdub0RhdGFUZXh0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbm9EYXRhVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdub0RhdGFUZXh0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcGFnZXIoKTogUGFnZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3BhZ2VyJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgcGFnZXIodmFsdWU6IFBhZ2VyKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdwYWdlcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHBhZ2luZygpOiBQYWdpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3BhZ2luZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IHBhZ2luZyh2YWx1ZTogUGFnaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdwYWdpbmcnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCByZW1vdGVPcGVyYXRpb25zKCk6IGJvb2xlYW4gfCBNb2RlIHwgUmVtb3RlT3BlcmF0aW9ucyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigncmVtb3RlT3BlcmF0aW9ucycpO1xyXG4gICAgfVxyXG4gICAgc2V0IHJlbW90ZU9wZXJhdGlvbnModmFsdWU6IGJvb2xlYW4gfCBNb2RlIHwgUmVtb3RlT3BlcmF0aW9ucykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigncmVtb3RlT3BlcmF0aW9ucycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHJ0bEVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigncnRsRW5hYmxlZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IHJ0bEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3J0bEVuYWJsZWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzY3JvbGxpbmcoKTogeyBzY3JvbGxCeUNvbnRlbnQ/OiBib29sZWFuLCBzY3JvbGxCeVRodW1iPzogYm9vbGVhbiwgc2hvd1Njcm9sbGJhcj86IFNjcm9sbGJhck1vZGUsIHVzZU5hdGl2ZT86IGJvb2xlYW4gfCBNb2RlIH0ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Njcm9sbGluZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNjcm9sbGluZyh2YWx1ZTogeyBzY3JvbGxCeUNvbnRlbnQ/OiBib29sZWFuLCBzY3JvbGxCeVRodW1iPzogYm9vbGVhbiwgc2hvd1Njcm9sbGJhcj86IFNjcm9sbGJhck1vZGUsIHVzZU5hdGl2ZT86IGJvb2xlYW4gfCBNb2RlIH0pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Njcm9sbGluZycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNlYXJjaFBhbmVsKCk6IFNlYXJjaFBhbmVsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdzZWFyY2hQYW5lbCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNlYXJjaFBhbmVsKHZhbHVlOiBTZWFyY2hQYW5lbCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignc2VhcmNoUGFuZWwnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzZWxlY3RlZENhcmRLZXlzKCk6IEFycmF5PGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3NlbGVjdGVkQ2FyZEtleXMnKTtcclxuICAgIH1cclxuICAgIHNldCBzZWxlY3RlZENhcmRLZXlzKHZhbHVlOiBBcnJheTxhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzZWxlY3RlZENhcmRLZXlzJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2VsZWN0aW9uKCk6IFNlbGVjdGlvbkNvbmZpZ3VyYXRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3NlbGVjdGlvbicpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNlbGVjdGlvbih2YWx1ZTogU2VsZWN0aW9uQ29uZmlndXJhdGlvbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignc2VsZWN0aW9uJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc29ydGluZygpOiBTb3J0aW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdzb3J0aW5nJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgc29ydGluZyh2YWx1ZTogU29ydGluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignc29ydGluZycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigndGFiSW5kZXgnKTtcclxuICAgIH1cclxuICAgIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd0YWJJbmRleCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHRvb2xiYXIoKTogZHhDYXJkVmlld1Rvb2xiYXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Rvb2xiYXInKTtcclxuICAgIH1cclxuICAgIHNldCB0b29sYmFyKHZhbHVlOiBkeENhcmRWaWV3VG9vbGJhcikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigndG9vbGJhcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigndmlzaWJsZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Zpc2libGUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCB3aWR0aCgpOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3dpZHRoJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgd2lkdGgodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignd2lkdGgnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCB3b3JkV3JhcEVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignd29yZFdyYXBFbmFibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgd29yZFdyYXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3b3JkV3JhcEVuYWJsZWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25DYXJkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDYXJkQ2xpY2tFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25DYXJkRGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDYXJkRGJsQ2xpY2tFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25DYXJkSG92ZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q2FyZEhvdmVyQ2hhbmdlZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNhcmRJbnNlcnRlZDogRXZlbnRFbWl0dGVyPENhcmRJbnNlcnRlZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNhcmRJbnNlcnRpbmc6IEV2ZW50RW1pdHRlcjxDYXJkSW5zZXJ0aW5nRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZFByZXBhcmVkOiBFdmVudEVtaXR0ZXI8Q2FyZFByZXBhcmVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uQ2FyZFJlbW92ZWQ6IEV2ZW50RW1pdHRlcjxDYXJkUmVtb3ZlZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNhcmRSZW1vdmluZzogRXZlbnRFbWl0dGVyPENhcmRSZW1vdmluZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNhcmRVcGRhdGVkOiBFdmVudEVtaXR0ZXI8Q2FyZFVwZGF0ZWRFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25DYXJkVXBkYXRpbmc6IEV2ZW50RW1pdHRlcjxDYXJkVXBkYXRpbmdFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25Db250ZW50UmVhZHk6IEV2ZW50RW1pdHRlcjxFdmVudEluZm88YW55Pj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25Db250ZXh0TWVudVByZXBhcmluZzogRXZlbnRFbWl0dGVyPENvbnRleHRNZW51UHJlcGFyaW5nRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRGF0YUVycm9yT2NjdXJyZWQ6IEV2ZW50RW1pdHRlcjxPYmplY3Q+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRGlzcG9zaW5nOiBFdmVudEVtaXR0ZXI8RXZlbnRJbmZvPGFueT4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRWRpdENhbmNlbGVkOiBFdmVudEVtaXR0ZXI8RWRpdENhbmNlbGVkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRWRpdENhbmNlbGluZzogRXZlbnRFbWl0dGVyPEVkaXRDYW5jZWxpbmdFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25FZGl0aW5nU3RhcnQ6IEV2ZW50RW1pdHRlcjxFZGl0aW5nU3RhcnRFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25GaWVsZENhcHRpb25DbGljazogRXZlbnRFbWl0dGVyPEZpZWxkQ2FwdGlvbkNsaWNrRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRmllbGRDYXB0aW9uRGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjxGaWVsZENhcHRpb25EYmxDbGlja0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkZpZWxkQ2FwdGlvblByZXBhcmVkOiBFdmVudEVtaXR0ZXI8RmllbGRDYXB0aW9uUHJlcGFyZWRFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25GaWVsZFZhbHVlQ2xpY2s6IEV2ZW50RW1pdHRlcjxGaWVsZFZhbHVlQ2xpY2tFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25GaWVsZFZhbHVlRGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjxGaWVsZFZhbHVlRGJsQ2xpY2tFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25GaWVsZFZhbHVlUHJlcGFyZWQ6IEV2ZW50RW1pdHRlcjxGaWVsZFZhbHVlUHJlcGFyZWRFdmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjp1bmRlZmluZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25Gb2N1c2VkQ2FyZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGb2N1c2VkQ2FyZENoYW5nZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uSW5pdGlhbGl6ZWQ6IEV2ZW50RW1pdHRlcjxPYmplY3Q+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uSW5pdE5ld0NhcmQ6IEV2ZW50RW1pdHRlcjxJbml0TmV3Q2FyZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbk9wdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxPcHRpb25DaGFuZ2VkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6dW5kZWZpbmVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uU2F2ZWQ6IEV2ZW50RW1pdHRlcjxTYXZlZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvblNhdmluZzogRXZlbnRFbWl0dGVyPFNhdmluZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOnVuZGVmaW5lZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBhY2Nlc3NLZXlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBhY3RpdmVTdGF0ZUVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgYWxsb3dDb2x1bW5SZW9yZGVyaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRDb250ZW50VGVtcGxhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjYXJkQ292ZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYXJkQ292ZXI+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjYXJkRm9vdGVyVGVtcGxhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjYXJkSGVhZGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q2FyZEhlYWRlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRNYXhXaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRNaW5XaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRzUGVyUm93Q2hhbmdlOiBFdmVudEVtaXR0ZXI8TW9kZSB8IG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNhcmRUZW1wbGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGNvbHVtbkNob29zZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDb2x1bW5DaG9vc2VyPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgY29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PENvbHVtblByb3BlcnRpZXMgfCBzdHJpbmc+PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZGF0YVNvdXJjZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PGFueT4gfCBEYXRhU291cmNlIHwgRGF0YVNvdXJjZU9wdGlvbnMgfCBTdG9yZSB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGRpc2FibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGVkaXRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeENhcmRWaWV3RWRpdGluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGVsZW1lbnRBdHRyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGVycm9yUm93RW5hYmxlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBmaWVsZEhpbnRFbmFibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGZpbHRlckJ1aWxkZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeEZpbHRlckJ1aWxkZXJPcHRpb25zPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZmlsdGVyQnVpbGRlclBvcHVwQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGZpbHRlclBhbmVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsdGVyUGFuZWw+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBmaWx0ZXJWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PGFueT4gfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGZvY3VzU3RhdGVFbmFibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhlYWRlckZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPEhlYWRlckZpbHRlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhlYWRlclBhbmVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SGVhZGVyUGFuZWw+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoZWlnaHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoaW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaG92ZXJTdGF0ZUVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkga2V5RXhwckNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4gfCBzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBsb2FkUGFuZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeExvYWRQYW5lbE9wdGlvbnM+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBub0RhdGFUZW1wbGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG5vRGF0YVRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBwYWdlckNoYW5nZTogRXZlbnRFbWl0dGVyPFBhZ2VyPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcGFnaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UGFnaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVtb3RlT3BlcmF0aW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4gfCBNb2RlIHwgUmVtb3RlT3BlcmF0aW9ucz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHJ0bEVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc2Nyb2xsaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBzY3JvbGxCeUNvbnRlbnQ/OiBib29sZWFuLCBzY3JvbGxCeVRodW1iPzogYm9vbGVhbiwgc2hvd1Njcm9sbGJhcj86IFNjcm9sbGJhck1vZGUsIHVzZU5hdGl2ZT86IGJvb2xlYW4gfCBNb2RlIH0+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzZWFyY2hQYW5lbENoYW5nZTogRXZlbnRFbWl0dGVyPFNlYXJjaFBhbmVsPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRDYXJkS2V5c0NoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PGFueT4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25Db25maWd1cmF0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc29ydGluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPFNvcnRpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB0YWJJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHRvb2xiYXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxkeENhcmRWaWV3VG9vbGJhcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgd2lkdGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB3b3JkV3JhcEVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcblxyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBuZ1pvbmU6IE5nWm9uZSwgdGVtcGxhdGVIb3N0OiBEeFRlbXBsYXRlSG9zdCxcclxuICAgICAgICAgICAgcHJpdmF0ZSBfd2F0Y2hlckhlbHBlcjogV2F0Y2hlckhlbHBlcixcclxuICAgICAgICAgICAgcHJpdmF0ZSBfaWRoOiBJdGVyYWJsZURpZmZlckhlbHBlcixcclxuICAgICAgICAgICAgb3B0aW9uSG9zdDogTmVzdGVkT3B0aW9uSG9zdCxcclxuICAgICAgICAgICAgdHJhbnNmZXJTdGF0ZTogVHJhbnNmZXJTdGF0ZSxcclxuICAgICAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogYW55KSB7XHJcblxyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIG5nWm9uZSwgdGVtcGxhdGVIb3N0LCBfd2F0Y2hlckhlbHBlciwgdHJhbnNmZXJTdGF0ZSwgcGxhdGZvcm1JZCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUV2ZW50RW1pdHRlcnMoW1xyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRDbGljaycsIGVtaXQ6ICdvbkNhcmRDbGljaycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjYXJkRGJsQ2xpY2snLCBlbWl0OiAnb25DYXJkRGJsQ2xpY2snIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY2FyZEhvdmVyQ2hhbmdlZCcsIGVtaXQ6ICdvbkNhcmRIb3ZlckNoYW5nZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY2FyZEluc2VydGVkJywgZW1pdDogJ29uQ2FyZEluc2VydGVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRJbnNlcnRpbmcnLCBlbWl0OiAnb25DYXJkSW5zZXJ0aW5nJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRQcmVwYXJlZCcsIGVtaXQ6ICdvbkNhcmRQcmVwYXJlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjYXJkUmVtb3ZlZCcsIGVtaXQ6ICdvbkNhcmRSZW1vdmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRSZW1vdmluZycsIGVtaXQ6ICdvbkNhcmRSZW1vdmluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjYXJkVXBkYXRlZCcsIGVtaXQ6ICdvbkNhcmRVcGRhdGVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NhcmRVcGRhdGluZycsIGVtaXQ6ICdvbkNhcmRVcGRhdGluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdjb250ZW50UmVhZHknLCBlbWl0OiAnb25Db250ZW50UmVhZHknIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnY29udGV4dE1lbnVQcmVwYXJpbmcnLCBlbWl0OiAnb25Db250ZXh0TWVudVByZXBhcmluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdkYXRhRXJyb3JPY2N1cnJlZCcsIGVtaXQ6ICdvbkRhdGFFcnJvck9jY3VycmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rpc3Bvc2luZycsIGVtaXQ6ICdvbkRpc3Bvc2luZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdlZGl0Q2FuY2VsZWQnLCBlbWl0OiAnb25FZGl0Q2FuY2VsZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZWRpdENhbmNlbGluZycsIGVtaXQ6ICdvbkVkaXRDYW5jZWxpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZWRpdGluZ1N0YXJ0JywgZW1pdDogJ29uRWRpdGluZ1N0YXJ0JyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2ZpZWxkQ2FwdGlvbkNsaWNrJywgZW1pdDogJ29uRmllbGRDYXB0aW9uQ2xpY2snIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZmllbGRDYXB0aW9uRGJsQ2xpY2snLCBlbWl0OiAnb25GaWVsZENhcHRpb25EYmxDbGljaycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdmaWVsZENhcHRpb25QcmVwYXJlZCcsIGVtaXQ6ICdvbkZpZWxkQ2FwdGlvblByZXBhcmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2ZpZWxkVmFsdWVDbGljaycsIGVtaXQ6ICdvbkZpZWxkVmFsdWVDbGljaycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdmaWVsZFZhbHVlRGJsQ2xpY2snLCBlbWl0OiAnb25GaWVsZFZhbHVlRGJsQ2xpY2snIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZmllbGRWYWx1ZVByZXBhcmVkJywgZW1pdDogJ29uRmllbGRWYWx1ZVByZXBhcmVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2ZvY3VzZWRDYXJkQ2hhbmdlZCcsIGVtaXQ6ICdvbkZvY3VzZWRDYXJkQ2hhbmdlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpbml0aWFsaXplZCcsIGVtaXQ6ICdvbkluaXRpYWxpemVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2luaXROZXdDYXJkJywgZW1pdDogJ29uSW5pdE5ld0NhcmQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnb3B0aW9uQ2hhbmdlZCcsIGVtaXQ6ICdvbk9wdGlvbkNoYW5nZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnc2F2ZWQnLCBlbWl0OiAnb25TYXZlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdzYXZpbmcnLCBlbWl0OiAnb25TYXZpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnc2VsZWN0aW9uQ2hhbmdlZCcsIGVtaXQ6ICdvblNlbGVjdGlvbkNoYW5nZWQnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2FjY2Vzc0tleUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnYWN0aXZlU3RhdGVFbmFibGVkQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdhbGxvd0NvbHVtblJlb3JkZXJpbmdDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRDb250ZW50VGVtcGxhdGVDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRDb3ZlckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY2FyZEZvb3RlclRlbXBsYXRlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdjYXJkSGVhZGVyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdjYXJkTWF4V2lkdGhDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRNaW5XaWR0aENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY2FyZHNQZXJSb3dDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2NhcmRUZW1wbGF0ZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY29sdW1uQ2hvb3NlckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY29sdW1uc0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGF0YVNvdXJjZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGlzYWJsZWRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2VkaXRpbmdDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2VsZW1lbnRBdHRyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdlcnJvclJvd0VuYWJsZWRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpZWxkSGludEVuYWJsZWRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpbHRlckJ1aWxkZXJDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpbHRlckJ1aWxkZXJQb3B1cENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZmlsdGVyUGFuZWxDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZpbHRlclZhbHVlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdmb2N1c1N0YXRlRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaGVhZGVyRmlsdGVyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoZWFkZXJQYW5lbENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaGVpZ2h0Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoaW50Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdob3ZlclN0YXRlRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAna2V5RXhwckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnbG9hZFBhbmVsQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdub0RhdGFUZW1wbGF0ZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnbm9EYXRhVGV4dENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncGFnZXJDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3BhZ2luZ0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncmVtb3RlT3BlcmF0aW9uc0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncnRsRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2Nyb2xsaW5nQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzZWFyY2hQYW5lbENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2VsZWN0ZWRDYXJkS2V5c0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2VsZWN0aW9uQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzb3J0aW5nQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICd0YWJJbmRleENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAndG9vbGJhckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAndmlzaWJsZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnd2lkdGhDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3dvcmRXcmFwRW5hYmxlZENoYW5nZScgfVxyXG4gICAgICAgIF0pO1xyXG5cclxuICAgICAgICB0aGlzLl9pZGguc2V0SG9zdCh0aGlzKTtcclxuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVJbnN0YW5jZShlbGVtZW50LCBvcHRpb25zKSB7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRHhDYXJkVmlldyhlbGVtZW50LCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5fZGVzdHJveVdpZGdldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnNldHVwQ2hhbmdlcygnY29sdW1ucycsIGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMuc2V0dXBDaGFuZ2VzKCdkYXRhU291cmNlJywgY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZXMoJ2ZpbHRlclZhbHVlJywgY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZXMoJ2tleUV4cHInLCBjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnNldHVwQ2hhbmdlcygnc2VsZWN0ZWRDYXJkS2V5cycsIGNoYW5nZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwQ2hhbmdlcyhwcm9wOiBzdHJpbmcsIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoIShwcm9wIGluIHRoaXMuX29wdGlvbnNUb1VwZGF0ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5faWRoLnNldHVwKHByb3AsIGNoYW5nZXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0RvQ2hlY2soKSB7XHJcbiAgICAgICAgdGhpcy5faWRoLmRvQ2hlY2soJ2NvbHVtbnMnKTtcclxuICAgICAgICB0aGlzLl9pZGguZG9DaGVjaygnZGF0YVNvdXJjZScpO1xyXG4gICAgICAgIHRoaXMuX2lkaC5kb0NoZWNrKCdmaWx0ZXJWYWx1ZScpO1xyXG4gICAgICAgIHRoaXMuX2lkaC5kb0NoZWNrKCdrZXlFeHByJyk7XHJcbiAgICAgICAgdGhpcy5faWRoLmRvQ2hlY2soJ3NlbGVjdGVkQ2FyZEtleXMnKTtcclxuICAgICAgICB0aGlzLl93YXRjaGVySGVscGVyLmNoZWNrV2F0Y2hlcnMoKTtcclxuICAgICAgICBzdXBlci5uZ0RvQ2hlY2soKTtcclxuICAgICAgICBzdXBlci5jbGVhckNoYW5nZWRPcHRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX3NldE9wdGlvbihuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBsZXQgaXNTZXR1cCA9IHRoaXMuX2lkaC5zZXR1cFNpbmdsZShuYW1lLCB2YWx1ZSk7XHJcbiAgICAgICAgbGV0IGlzQ2hhbmdlZCA9IHRoaXMuX2lkaC5nZXRDaGFuZ2VzKG5hbWUsIHZhbHVlKSAhPT0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKGlzU2V0dXAgfHwgaXNDaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgIHN1cGVyLl9zZXRPcHRpb24obmFtZSwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBEeENhcmRWaWV3Q29tcG9uZW50LFxyXG4gICAgRHhvQ2FyZFZpZXdBSU9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0FuaW1hdGlvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3QXN5bmNSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdBdE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Qm91bmRhcnlPZmZzZXRNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0J1dHRvbkl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0J1dHRvbk9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRDb3Zlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZEhlYWRlck1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q2FyZEhlYWRlckl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRWaWV3SGVhZGVyRmlsdGVyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlclNlYXJjaE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZFZpZXdIZWFkZXJGaWx0ZXJUZXh0c01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZFZpZXdTZWxlY3Rpb25Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0NoYW5nZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q29sQ291bnRCeVNjcmVlbk1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q29sbGlzaW9uTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDb2x1bW5Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJTZWFyY2hNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkNob29zZXJTZWxlY3Rpb25Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkhlYWRlckZpbHRlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q29sdW1uSGVhZGVyRmlsdGVyU2VhcmNoTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDb21wYXJlUnVsZU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q3VzdG9tT3BlcmF0aW9uTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDdXN0b21SdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdEcmFnZ2luZ01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RWRpdGluZ01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RWRpdGluZ1RleHRzTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdFbWFpbFJ1bGVNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0VtcHR5SXRlbU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3RmllbGRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlckJ1aWxkZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlck9wZXJhdGlvbkRlc2NyaXB0aW9uc01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RmlsdGVyUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlclBhbmVsVGV4dHNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zvcm1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zvcm1hdE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Rm9ybUl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zyb21Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0dyb3VwSXRlbU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3R3JvdXBPcGVyYXRpb25EZXNjcmlwdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0hlYWRlckZpbHRlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3SGVhZGVyUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0hpZGVNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0luZGljYXRvck9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0l0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0xhYmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdMb2FkUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0xvb2t1cE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3TXlNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld051bWVyaWNSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdPZmZzZXRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1BhZ2VyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdQYWdpbmdNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1BhdHRlcm5SdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdQb3NpdGlvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3UmFuZ2VSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdSZW1vdGVPcGVyYXRpb25zTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdSZXF1aXJlZFJ1bGVNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1Njcm9sbGluZ01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2VhcmNoTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTZWFyY2hQYW5lbE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2VsZWN0aW9uTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTaG93TW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdTaW1wbGVJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTb3J0aW5nTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdTdHJpbmdMZW5ndGhSdWxlTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdUYWJNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1RhYmJlZEl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1RhYlBhbmVsT3B0aW9uc01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VGFiUGFuZWxPcHRpb25zSXRlbU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3VGV4dHNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1RvTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdUb29sYmFyTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdUb29sYmFySXRlbU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VmFsaWRhdGlvblJ1bGVNb2R1bGUsXHJcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHhDYXJkVmlld0NvbXBvbmVudCxcclxuICAgIER4b0NhcmRWaWV3QUlPcHRpb25zTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdBbmltYXRpb25Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0FzeW5jUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3QXRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0JvdW5kYXJ5T2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdCdXR0b25JdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdCdXR0b25PcHRpb25zTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDYXJkQ292ZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRIZWFkZXJNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0NhcmRIZWFkZXJJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDYXJkVmlld0hlYWRlckZpbHRlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3Q2FyZFZpZXdIZWFkZXJGaWx0ZXJTZWFyY2hNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRWaWV3SGVhZGVyRmlsdGVyVGV4dHNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NhcmRWaWV3U2VsZWN0aW9uTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdDaGFuZ2VNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbENvdW50QnlTY3JlZW5Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbGxpc2lvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q29sdW1uTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyU2VhcmNoTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5DaG9vc2VyU2VsZWN0aW9uTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdDb2x1bW5IZWFkZXJGaWx0ZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0NvbHVtbkhlYWRlckZpbHRlclNlYXJjaE1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q29tcGFyZVJ1bGVNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0N1c3RvbU9wZXJhdGlvbk1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3Q3VzdG9tUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3RHJhZ2dpbmdNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0VkaXRpbmdNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0VkaXRpbmdUZXh0c01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3RW1haWxSdWxlTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdFbXB0eUl0ZW1Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld0ZpZWxkTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGaWx0ZXJCdWlsZGVyTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGaWx0ZXJPcGVyYXRpb25EZXNjcmlwdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0ZpbHRlclBhbmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGaWx0ZXJQYW5lbFRleHRzTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGb3JtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGb3JtYXRNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0Zvcm1JdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdGcm9tTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdHcm91cEl0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0dyb3VwT3BlcmF0aW9uRGVzY3JpcHRpb25zTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdIZWFkZXJGaWx0ZXJNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld0hlYWRlclBhbmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdIaWRlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdJbmRpY2F0b3JPcHRpb25zTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdMYWJlbE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3TG9hZFBhbmVsTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdMb29rdXBNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld015TW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdOdW1lcmljUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3T2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdQYWdlck1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3UGFnaW5nTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdQYXR0ZXJuUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3UG9zaXRpb25Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1JhbmdlUnVsZU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3UmVtb3RlT3BlcmF0aW9uc01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3UmVxdWlyZWRSdWxlTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdTY3JvbGxpbmdNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1NlYXJjaE1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2VhcmNoUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1NlbGVjdGlvbk1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U2hvd01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3U2ltcGxlSXRlbU1vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3U29ydGluZ01vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3U3RyaW5nTGVuZ3RoUnVsZU1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VGFiTW9kdWxlLFxyXG4gICAgRHhpQ2FyZFZpZXdUYWJiZWRJdGVtTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdUYWJQYW5lbE9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1RhYlBhbmVsT3B0aW9uc0l0ZW1Nb2R1bGUsXHJcbiAgICBEeG9DYXJkVmlld1RleHRzTW9kdWxlLFxyXG4gICAgRHhvQ2FyZFZpZXdUb01vZHVsZSxcclxuICAgIER4b0NhcmRWaWV3VG9vbGJhck1vZHVsZSxcclxuICAgIER4aUNhcmRWaWV3VG9vbGJhckl0ZW1Nb2R1bGUsXHJcbiAgICBEeGlDYXJkVmlld1ZhbGlkYXRpb25SdWxlTW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER4Q2FyZFZpZXdNb2R1bGUgeyB9XHJcblxyXG5leHBvcnQgKiBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvY2FyZC12aWV3L25lc3RlZCc7XHJcblxyXG5pbXBvcnQgdHlwZSAqIGFzIER4Q2FyZFZpZXdUeXBlcyBmcm9tIFwiZGV2ZXh0cmVtZS91aS9jYXJkX3ZpZXdfdHlwZXNcIjtcclxuZXhwb3J0IHsgRHhDYXJkVmlld1R5cGVzIH07XHJcblxyXG5cclxuIl19