import { __decorate, __metadata } from "tslib"; import { AfterViewInit, Component, ComponentFactoryResolver, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, ViewContainerRef, ViewEncapsulation } from "@angular/core"; import { ComponentUtil, Events, Grid, GridOptionsWrapper, Promise, _ } from "ag-grid-community"; import { AngularFrameworkOverrides } from "./angularFrameworkOverrides"; import { AngularFrameworkComponentWrapper } from "./angularFrameworkComponentWrapper"; import { AgGridColumn } from "./ag-grid-column.component"; var AgGridAngular = /** @class */ (function () { function AgGridAngular(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper, _componentFactoryResolver) { this.viewContainerRef = viewContainerRef; this.angularFrameworkOverrides = angularFrameworkOverrides; this.frameworkComponentWrapper = frameworkComponentWrapper; this._componentFactoryResolver = _componentFactoryResolver; this._initialised = false; this._destroyed = false; // in order to ensure firing of gridReady is deterministic this._fullyReady = Promise.resolve(true); // @START@ this.slaveGrids = undefined; this.alignedGrids = undefined; this.rowData = undefined; this.columnDefs = undefined; this.excelStyles = undefined; this.pinnedTopRowData = undefined; this.pinnedBottomRowData = undefined; this.components = undefined; this.frameworkComponents = undefined; this.rowStyle = undefined; this.context = undefined; this.autoGroupColumnDef = undefined; this.groupColumnDef = undefined; this.localeText = undefined; this.icons = undefined; this.datasource = undefined; this.serverSideDatasource = undefined; this.viewportDatasource = undefined; this.groupRowRendererParams = undefined; this.aggFuncs = undefined; this.fullWidthCellRendererParams = undefined; this.defaultColGroupDef = undefined; this.defaultColDef = undefined; this.defaultExportParams = undefined; this.columnTypes = undefined; this.rowClassRules = undefined; this.detailGridOptions = undefined; this.detailCellRendererParams = undefined; this.loadingCellRendererParams = undefined; this.loadingOverlayComponentParams = undefined; this.noRowsOverlayComponentParams = undefined; this.popupParent = undefined; this.colResizeDefault = undefined; this.reduxStore = undefined; this.statusBar = undefined; this.sideBar = undefined; this.sortingOrder = undefined; this.rowClass = undefined; this.rowSelection = undefined; this.overlayLoadingTemplate = undefined; this.overlayNoRowsTemplate = undefined; this.quickFilterText = undefined; this.rowModelType = undefined; this.editType = undefined; this.domLayout = undefined; this.clipboardDeliminator = undefined; this.rowGroupPanelShow = undefined; this.multiSortKey = undefined; this.pivotColumnGroupTotals = undefined; this.pivotRowTotals = undefined; this.pivotPanelShow = undefined; this.rowHeight = undefined; this.detailRowHeight = undefined; this.rowBuffer = undefined; this.colWidth = undefined; this.headerHeight = undefined; this.groupHeaderHeight = undefined; this.floatingFiltersHeight = undefined; this.pivotHeaderHeight = undefined; this.pivotGroupHeaderHeight = undefined; this.groupDefaultExpanded = undefined; this.minColWidth = undefined; this.maxColWidth = undefined; this.viewportRowModelPageSize = undefined; this.viewportRowModelBufferSize = undefined; this.autoSizePadding = undefined; this.maxBlocksInCache = undefined; this.maxConcurrentDatasourceRequests = undefined; this.tooltipShowDelay = undefined; this.cacheOverflowSize = undefined; this.paginationPageSize = undefined; this.cacheBlockSize = undefined; this.infiniteInitialRowCount = undefined; this.scrollbarWidth = undefined; this.paginationStartPage = undefined; this.infiniteBlockSize = undefined; this.batchUpdateWaitMillis = undefined; this.asyncTransactionWaitMillis = undefined; this.blockLoadDebounceMillis = undefined; this.keepDetailRowsCount = undefined; this.undoRedoCellEditingLimit = undefined; this.cellFlashDelay = undefined; this.cellFadeDelay = undefined; this.localeTextFunc = undefined; this.groupRowInnerRenderer = undefined; this.groupRowInnerRendererFramework = undefined; this.dateComponent = undefined; this.dateComponentFramework = undefined; this.groupRowRenderer = undefined; this.groupRowRendererFramework = undefined; this.isExternalFilterPresent = undefined; this.getRowHeight = undefined; this.doesExternalFilterPass = undefined; this.getRowClass = undefined; this.getRowStyle = undefined; this.getRowClassRules = undefined; this.traverseNode = undefined; this.getContextMenuItems = undefined; this.getMainMenuItems = undefined; this.processRowPostCreate = undefined; this.processCellForClipboard = undefined; this.getNodeChildDetails = undefined; this.groupRowAggNodes = undefined; this.getRowNodeId = undefined; this.isFullWidthCell = undefined; this.fullWidthCellRenderer = undefined; this.fullWidthCellRendererFramework = undefined; this.doesDataFlower = undefined; this.processSecondaryColDef = undefined; this.processSecondaryColGroupDef = undefined; this.getBusinessKeyForNode = undefined; this.sendToClipboard = undefined; this.navigateToNextCell = undefined; this.tabToNextCell = undefined; this.getDetailRowData = undefined; this.processCellFromClipboard = undefined; this.getDocument = undefined; this.postProcessPopup = undefined; this.getChildCount = undefined; this.getDataPath = undefined; this.loadingCellRenderer = undefined; this.loadingCellRendererFramework = undefined; this.loadingOverlayComponent = undefined; this.loadingOverlayComponentFramework = undefined; this.noRowsOverlayComponent = undefined; this.noRowsOverlayComponentFramework = undefined; this.detailCellRenderer = undefined; this.detailCellRendererFramework = undefined; this.defaultGroupSortComparator = undefined; this.isRowMaster = undefined; this.isRowSelectable = undefined; this.postSort = undefined; this.processHeaderForClipboard = undefined; this.paginationNumberFormatter = undefined; this.processDataFromClipboard = undefined; this.getServerSideGroupKey = undefined; this.isServerSideGroup = undefined; this.suppressKeyboardEvent = undefined; this.createChartContainer = undefined; this.processChartOptions = undefined; this.getChartToolbarItems = undefined; this.fillOperation = undefined; this.toolPanelSuppressRowGroups = undefined; this.toolPanelSuppressValues = undefined; this.toolPanelSuppressPivots = undefined; this.toolPanelSuppressPivotMode = undefined; this.toolPanelSuppressSideButtons = undefined; this.toolPanelSuppressColumnFilter = undefined; this.toolPanelSuppressColumnSelectAll = undefined; this.toolPanelSuppressColumnExpandAll = undefined; this.suppressMakeColumnVisibleAfterUnGroup = undefined; this.suppressRowClickSelection = undefined; this.suppressCellSelection = undefined; this.suppressHorizontalScroll = undefined; this.alwaysShowVerticalScroll = undefined; this.debug = undefined; this.enableBrowserTooltips = undefined; this.enableColResize = undefined; this.enableCellExpressions = undefined; this.enableSorting = undefined; this.enableServerSideSorting = undefined; this.enableFilter = undefined; this.enableServerSideFilter = undefined; this.angularCompileRows = undefined; this.angularCompileFilters = undefined; this.angularCompileHeaders = undefined; this.groupSuppressAutoColumn = undefined; this.groupSelectsChildren = undefined; this.groupIncludeFooter = undefined; this.groupIncludeTotalFooter = undefined; this.groupUseEntireRow = undefined; this.groupSuppressRow = undefined; this.groupSuppressBlankHeader = undefined; this.forPrint = undefined; this.suppressMenuHide = undefined; this.rowDeselection = undefined; this.unSortIcon = undefined; this.suppressMultiSort = undefined; this.singleClickEdit = undefined; this.suppressLoadingOverlay = undefined; this.suppressNoRowsOverlay = undefined; this.suppressAutoSize = undefined; this.skipHeaderOnAutoSize = undefined; this.suppressParentsInRowNodes = undefined; this.showToolPanel = undefined; this.suppressColumnMoveAnimation = undefined; this.suppressMovableColumns = undefined; this.suppressFieldDotNotation = undefined; this.enableRangeSelection = undefined; this.enableRangeHandle = undefined; this.enableFillHandle = undefined; this.suppressClearOnFillReduction = undefined; this.deltaSort = undefined; this.suppressTouch = undefined; this.suppressAsyncEvents = undefined; this.allowContextMenuWithControlKey = undefined; this.suppressContextMenu = undefined; this.suppressMenuFilterPanel = undefined; this.suppressMenuMainPanel = undefined; this.suppressMenuColumnPanel = undefined; this.rememberGroupStateWhenNewData = undefined; this.enableCellChangeFlash = undefined; this.suppressDragLeaveHidesColumns = undefined; this.suppressMiddleClickScrolls = undefined; this.suppressPreventDefaultOnMouseWheel = undefined; this.suppressUseColIdForGroups = undefined; this.suppressCopyRowsToClipboard = undefined; this.copyHeadersToClipboard = undefined; this.pivotMode = undefined; this.suppressAggFuncInHeader = undefined; this.suppressColumnVirtualisation = undefined; this.suppressAggAtRootLevel = undefined; this.suppressFocusAfterRefresh = undefined; this.functionsPassive = undefined; this.functionsReadOnly = undefined; this.animateRows = undefined; this.groupSelectsFiltered = undefined; this.groupRemoveSingleChildren = undefined; this.groupRemoveLowestSingleChildren = undefined; this.enableRtl = undefined; this.suppressClickEdit = undefined; this.rowDragManaged = undefined; this.suppressRowDrag = undefined; this.suppressMoveWhenRowDragging = undefined; this.enableMultiRowDragging = undefined; this.enableGroupEdit = undefined; this.embedFullWidthRows = undefined; this.deprecatedEmbedFullWidthRows = undefined; this.suppressTabbing = undefined; this.suppressPaginationPanel = undefined; this.floatingFilter = undefined; this.groupHideOpenParents = undefined; this.groupMultiAutoColumn = undefined; this.pagination = undefined; this.stopEditingWhenGridLosesFocus = undefined; this.paginationAutoPageSize = undefined; this.suppressScrollOnNewData = undefined; this.purgeClosedRowNodes = undefined; this.cacheQuickFilter = undefined; this.deltaRowDataMode = undefined; this.ensureDomOrder = undefined; this.accentedSort = undefined; this.pivotTotals = undefined; this.suppressChangeDetection = undefined; this.valueCache = undefined; this.valueCacheNeverExpires = undefined; this.aggregateOnlyChangedColumns = undefined; this.suppressAnimationFrame = undefined; this.suppressExcelExport = undefined; this.suppressCsvExport = undefined; this.treeData = undefined; this.masterDetail = undefined; this.suppressMultiRangeSelection = undefined; this.enterMovesDownAfterEdit = undefined; this.enterMovesDown = undefined; this.suppressPropertyNamesCheck = undefined; this.rowMultiSelectWithClick = undefined; this.contractColumnSelection = undefined; this.suppressEnterpriseResetOnNewColumns = undefined; this.enableOldSetFilterModel = undefined; this.suppressRowHoverHighlight = undefined; this.gridAutoHeight = undefined; this.suppressRowTransform = undefined; this.suppressClipboardPaste = undefined; this.suppressLastEmptyLineOnPaste = undefined; this.serverSideSortingAlwaysResets = undefined; this.reactNext = undefined; this.suppressSetColumnStateEvents = undefined; this.enableCharts = undefined; this.deltaColumnMode = undefined; this.suppressMaintainUnsortedOrder = undefined; this.enableCellTextSelection = undefined; this.suppressBrowserResizeObserver = undefined; this.suppressMaxRenderedRowRestriction = undefined; this.excludeChildrenWhenTreeDataFiltering = undefined; this.tooltipMouseTrack = undefined; this.keepDetailRows = undefined; this.paginateChildRows = undefined; this.preventDefaultOnContextMenu = undefined; this.undoRedoCellEditing = undefined; this.allowDragFromColumnsToolPanel = undefined; this.immutableData = undefined; this.immutableColumns = undefined; this.pivotSuppressAutoColumn = undefined; this.columnEverythingChanged = new EventEmitter(); this.newColumnsLoaded = new EventEmitter(); this.columnPivotModeChanged = new EventEmitter(); this.columnRowGroupChanged = new EventEmitter(); this.expandOrCollapseAll = new EventEmitter(); this.columnPivotChanged = new EventEmitter(); this.gridColumnsChanged = new EventEmitter(); this.columnValueChanged = new EventEmitter(); this.columnMoved = new EventEmitter(); this.columnVisible = new EventEmitter(); this.columnPinned = new EventEmitter(); this.columnGroupOpened = new EventEmitter(); this.columnResized = new EventEmitter(); this.displayedColumnsChanged = new EventEmitter(); this.virtualColumnsChanged = new EventEmitter(); this.rowGroupOpened = new EventEmitter(); this.rowDataChanged = new EventEmitter(); this.rowDataUpdated = new EventEmitter(); this.pinnedRowDataChanged = new EventEmitter(); this.rangeSelectionChanged = new EventEmitter(); this.chartCreated = new EventEmitter(); this.chartRangeSelectionChanged = new EventEmitter(); this.chartOptionsChanged = new EventEmitter(); this.chartDestroyed = new EventEmitter(); this.toolPanelVisibleChanged = new EventEmitter(); this.modelUpdated = new EventEmitter(); this.pasteStart = new EventEmitter(); this.pasteEnd = new EventEmitter(); this.fillStart = new EventEmitter(); this.fillEnd = new EventEmitter(); this.cellClicked = new EventEmitter(); this.cellDoubleClicked = new EventEmitter(); this.cellMouseDown = new EventEmitter(); this.cellContextMenu = new EventEmitter(); this.cellValueChanged = new EventEmitter(); this.rowValueChanged = new EventEmitter(); this.cellFocused = new EventEmitter(); this.rowSelected = new EventEmitter(); this.selectionChanged = new EventEmitter(); this.cellKeyDown = new EventEmitter(); this.cellKeyPress = new EventEmitter(); this.cellMouseOver = new EventEmitter(); this.cellMouseOut = new EventEmitter(); this.filterChanged = new EventEmitter(); this.filterModified = new EventEmitter(); this.filterOpened = new EventEmitter(); this.sortChanged = new EventEmitter(); this.virtualRowRemoved = new EventEmitter(); this.rowClicked = new EventEmitter(); this.rowDoubleClicked = new EventEmitter(); this.gridReady = new EventEmitter(); this.gridSizeChanged = new EventEmitter(); this.viewportChanged = new EventEmitter(); this.firstDataRendered = new EventEmitter(); this.dragStarted = new EventEmitter(); this.dragStopped = new EventEmitter(); this.checkboxChanged = new EventEmitter(); this.rowEditingStarted = new EventEmitter(); this.rowEditingStopped = new EventEmitter(); this.cellEditingStarted = new EventEmitter(); this.cellEditingStopped = new EventEmitter(); this.bodyScroll = new EventEmitter(); this.animationQueueEmpty = new EventEmitter(); this.heightScaleChanged = new EventEmitter(); this.paginationChanged = new EventEmitter(); this.componentStateChanged = new EventEmitter(); this.bodyHeightChanged = new EventEmitter(); this.displayedColumnsWidthChanged = new EventEmitter(); this.scrollVisibilityChanged = new EventEmitter(); this.columnHoverChanged = new EventEmitter(); this.flashCells = new EventEmitter(); this.rowDragEnter = new EventEmitter(); this.rowDragMove = new EventEmitter(); this.rowDragLeave = new EventEmitter(); this.rowDragEnd = new EventEmitter(); this.popupToFront = new EventEmitter(); this.columnRowGroupChangeRequest = new EventEmitter(); this.columnPivotChangeRequest = new EventEmitter(); this.columnValueChangeRequest = new EventEmitter(); this.columnAggFuncChangeRequest = new EventEmitter(); this.keyboardFocus = new EventEmitter(); this.mouseFocus = new EventEmitter(); this._nativeElement = elementDef.nativeElement; this.frameworkComponentWrapper.setViewContainerRef(this.viewContainerRef); this.frameworkComponentWrapper.setComponentFactoryResolver(this._componentFactoryResolver); } AgGridAngular.prototype.ngAfterViewInit = function () { this.checkForDeprecatedEvents(); this.gridOptions = ComponentUtil.copyAttributesToGridOptions(this.gridOptions, this, true); this.gridParams = { globalEventListener: this.globalEventListener.bind(this), frameworkOverrides: this.angularFrameworkOverrides, providedBeanInstances: { frameworkComponentWrapper: this.frameworkComponentWrapper }, modules: (this.modules || []) }; if (this.columns && this.columns.length > 0) { this.gridOptions.columnDefs = this.columns .map(function (column) { return column.toColDef(); }); } new Grid(this._nativeElement, this.gridOptions, this.gridParams); if (this.gridOptions.api) { this.api = this.gridOptions.api; } if (this.gridOptions.columnApi) { this.columnApi = this.gridOptions.columnApi; } this._initialised = true; // sometimes, especially in large client apps gridReady can fire before ngAfterViewInit // this ties these together so that gridReady will always fire after agGridAngular's ngAfterViewInit // the actual containing component's ngAfterViewInit will fire just after agGridAngular's this._fullyReady.resolveNow(null, function (resolve) { return resolve; }); }; AgGridAngular.prototype.ngOnChanges = function (changes) { if (this._initialised) { ComponentUtil.processOnChange(changes, this.gridOptions, this.api, this.columnApi); } }; AgGridAngular.prototype.ngOnDestroy = function () { if (this._initialised) { // need to do this before the destroy, so we know not to emit any events // while tearing down the grid. this._destroyed = true; if (this.api) { this.api.destroy(); } } }; AgGridAngular.prototype.checkForDeprecatedEvents = function () { var _this = this; _.iterateObject(Events, function (key, eventName) { if (_this[eventName] && _this[eventName].observers.length > 0) { GridOptionsWrapper.checkEventDeprecation(eventName); } }); }; AgGridAngular.prototype.globalEventListener = function (eventType, event) { // if we are tearing down, don't emit angular events, as this causes // problems with the angular router if (this._destroyed) { return; } // generically look up the eventType var emitter = this[eventType]; if (emitter) { if (eventType === 'gridReady') { // if the user is listening for gridReady, wait for ngAfterViewInit to fire first, then emit the // gridReady event this._fullyReady.then((function (result) { emitter.emit(event); })); } else { emitter.emit(event); } } else { console.log('ag-Grid-angular: could not find EventEmitter: ' + eventType); } }; AgGridAngular.ctorParameters = function () { return [ { type: ElementRef }, { type: ViewContainerRef }, { type: AngularFrameworkOverrides }, { type: AngularFrameworkComponentWrapper }, { type: ComponentFactoryResolver } ]; }; __decorate([ ContentChildren(AgGridColumn), __metadata("design:type", QueryList) ], AgGridAngular.prototype, "columns", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "gridOptions", void 0); __decorate([ Input(), __metadata("design:type", Array) ], AgGridAngular.prototype, "modules", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "slaveGrids", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "alignedGrids", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "columnDefs", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "excelStyles", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pinnedTopRowData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pinnedBottomRowData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "components", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "frameworkComponents", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowStyle", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "context", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "autoGroupColumnDef", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupColumnDef", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "localeText", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "icons", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "datasource", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "serverSideDatasource", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "viewportDatasource", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRowRendererParams", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "aggFuncs", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "fullWidthCellRendererParams", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "defaultColGroupDef", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "defaultColDef", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "defaultExportParams", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "columnTypes", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowClassRules", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "detailGridOptions", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "detailCellRendererParams", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "loadingCellRendererParams", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "loadingOverlayComponentParams", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "noRowsOverlayComponentParams", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "popupParent", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "colResizeDefault", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "reduxStore", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "statusBar", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "sideBar", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "sortingOrder", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowClass", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowSelection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "overlayLoadingTemplate", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "overlayNoRowsTemplate", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "quickFilterText", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowModelType", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "editType", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "domLayout", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "clipboardDeliminator", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowGroupPanelShow", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "multiSortKey", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotColumnGroupTotals", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotRowTotals", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotPanelShow", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "detailRowHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowBuffer", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "colWidth", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "headerHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupHeaderHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "floatingFiltersHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotHeaderHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotGroupHeaderHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupDefaultExpanded", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "minColWidth", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "maxColWidth", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "viewportRowModelPageSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "viewportRowModelBufferSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "autoSizePadding", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "maxBlocksInCache", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "maxConcurrentDatasourceRequests", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "tooltipShowDelay", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "cacheOverflowSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "paginationPageSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "cacheBlockSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "infiniteInitialRowCount", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "scrollbarWidth", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "paginationStartPage", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "infiniteBlockSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "batchUpdateWaitMillis", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "asyncTransactionWaitMillis", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "blockLoadDebounceMillis", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "keepDetailRowsCount", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "undoRedoCellEditingLimit", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "cellFlashDelay", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "cellFadeDelay", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "localeTextFunc", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRowInnerRenderer", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRowInnerRendererFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "dateComponent", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "dateComponentFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRowRenderer", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRowRendererFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "isExternalFilterPresent", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getRowHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "doesExternalFilterPass", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getRowClass", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getRowStyle", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getRowClassRules", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "traverseNode", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getContextMenuItems", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getMainMenuItems", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processRowPostCreate", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processCellForClipboard", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getNodeChildDetails", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRowAggNodes", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getRowNodeId", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "isFullWidthCell", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "fullWidthCellRenderer", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "fullWidthCellRendererFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "doesDataFlower", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processSecondaryColDef", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processSecondaryColGroupDef", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getBusinessKeyForNode", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "sendToClipboard", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "navigateToNextCell", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "tabToNextCell", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getDetailRowData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processCellFromClipboard", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getDocument", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "postProcessPopup", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getChildCount", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getDataPath", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "loadingCellRenderer", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "loadingCellRendererFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "loadingOverlayComponent", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "loadingOverlayComponentFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "noRowsOverlayComponent", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "noRowsOverlayComponentFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "detailCellRenderer", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "detailCellRendererFramework", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "defaultGroupSortComparator", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "isRowMaster", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "isRowSelectable", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "postSort", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processHeaderForClipboard", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "paginationNumberFormatter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processDataFromClipboard", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getServerSideGroupKey", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "isServerSideGroup", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressKeyboardEvent", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "createChartContainer", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "processChartOptions", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "getChartToolbarItems", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "fillOperation", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressRowGroups", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressValues", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressPivots", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressPivotMode", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressSideButtons", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressColumnFilter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressColumnSelectAll", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "toolPanelSuppressColumnExpandAll", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMakeColumnVisibleAfterUnGroup", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressRowClickSelection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressCellSelection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressHorizontalScroll", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "alwaysShowVerticalScroll", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "debug", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableBrowserTooltips", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableColResize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableCellExpressions", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableSorting", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableServerSideSorting", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableFilter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableServerSideFilter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "angularCompileRows", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "angularCompileFilters", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "angularCompileHeaders", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupSuppressAutoColumn", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupSelectsChildren", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupIncludeFooter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupIncludeTotalFooter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupUseEntireRow", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupSuppressRow", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupSuppressBlankHeader", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "forPrint", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMenuHide", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowDeselection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "unSortIcon", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMultiSort", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "singleClickEdit", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressLoadingOverlay", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressNoRowsOverlay", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressAutoSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "skipHeaderOnAutoSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressParentsInRowNodes", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "showToolPanel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressColumnMoveAnimation", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMovableColumns", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressFieldDotNotation", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableRangeSelection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableRangeHandle", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableFillHandle", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressClearOnFillReduction", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "deltaSort", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressTouch", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressAsyncEvents", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "allowContextMenuWithControlKey", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressContextMenu", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMenuFilterPanel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMenuMainPanel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMenuColumnPanel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rememberGroupStateWhenNewData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableCellChangeFlash", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressDragLeaveHidesColumns", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMiddleClickScrolls", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressPreventDefaultOnMouseWheel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressUseColIdForGroups", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressCopyRowsToClipboard", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "copyHeadersToClipboard", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotMode", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressAggFuncInHeader", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressColumnVirtualisation", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressAggAtRootLevel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressFocusAfterRefresh", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "functionsPassive", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "functionsReadOnly", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "animateRows", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupSelectsFiltered", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRemoveSingleChildren", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupRemoveLowestSingleChildren", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableRtl", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressClickEdit", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowDragManaged", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressRowDrag", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMoveWhenRowDragging", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableMultiRowDragging", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableGroupEdit", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "embedFullWidthRows", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "deprecatedEmbedFullWidthRows", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressTabbing", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressPaginationPanel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "floatingFilter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupHideOpenParents", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "groupMultiAutoColumn", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pagination", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "stopEditingWhenGridLosesFocus", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "paginationAutoPageSize", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressScrollOnNewData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "purgeClosedRowNodes", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "cacheQuickFilter", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "deltaRowDataMode", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "ensureDomOrder", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "accentedSort", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotTotals", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressChangeDetection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "valueCache", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "valueCacheNeverExpires", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "aggregateOnlyChangedColumns", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressAnimationFrame", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressExcelExport", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressCsvExport", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "treeData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "masterDetail", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMultiRangeSelection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enterMovesDownAfterEdit", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enterMovesDown", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressPropertyNamesCheck", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "rowMultiSelectWithClick", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "contractColumnSelection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressEnterpriseResetOnNewColumns", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableOldSetFilterModel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressRowHoverHighlight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "gridAutoHeight", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressRowTransform", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressClipboardPaste", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressLastEmptyLineOnPaste", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "serverSideSortingAlwaysResets", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "reactNext", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressSetColumnStateEvents", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableCharts", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "deltaColumnMode", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMaintainUnsortedOrder", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "enableCellTextSelection", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressBrowserResizeObserver", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "suppressMaxRenderedRowRestriction", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "excludeChildrenWhenTreeDataFiltering", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "tooltipMouseTrack", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "keepDetailRows", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "paginateChildRows", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "preventDefaultOnContextMenu", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "undoRedoCellEditing", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "allowDragFromColumnsToolPanel", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "immutableData", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "immutableColumns", void 0); __decorate([ Input(), __metadata("design:type", Object) ], AgGridAngular.prototype, "pivotSuppressAutoColumn", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnEverythingChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "newColumnsLoaded", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnPivotModeChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnRowGroupChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "expandOrCollapseAll", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnPivotChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "gridColumnsChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnValueChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnMoved", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnVisible", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnPinned", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnGroupOpened", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnResized", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "displayedColumnsChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "virtualColumnsChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowGroupOpened", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowDataChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowDataUpdated", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "pinnedRowDataChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rangeSelectionChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "chartCreated", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "chartRangeSelectionChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "chartOptionsChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "chartDestroyed", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "toolPanelVisibleChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "modelUpdated", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "pasteStart", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "pasteEnd", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "fillStart", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "fillEnd", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellClicked", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellDoubleClicked", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellMouseDown", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellContextMenu", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellValueChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowValueChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellFocused", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowSelected", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "selectionChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellKeyDown", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellKeyPress", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellMouseOver", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellMouseOut", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "filterChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "filterModified", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "filterOpened", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "sortChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "virtualRowRemoved", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowClicked", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowDoubleClicked", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "gridReady", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "gridSizeChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "viewportChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "firstDataRendered", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "dragStarted", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "dragStopped", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "checkboxChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowEditingStarted", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowEditingStopped", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellEditingStarted", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "cellEditingStopped", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "bodyScroll", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "animationQueueEmpty", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "heightScaleChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "paginationChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "componentStateChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "bodyHeightChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "displayedColumnsWidthChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "scrollVisibilityChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnHoverChanged", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "flashCells", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowDragEnter", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowDragMove", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowDragLeave", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "rowDragEnd", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "popupToFront", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnRowGroupChangeRequest", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnPivotChangeRequest", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnValueChangeRequest", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "columnAggFuncChangeRequest", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "keyboardFocus", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], AgGridAngular.prototype, "mouseFocus", void 0); AgGridAngular = __decorate([ Component({ selector: 'ag-grid-angular', template: '', providers: [ AngularFrameworkOverrides, AngularFrameworkComponentWrapper ], // tell angular we don't want view encapsulation, we don't want a shadow root encapsulation: ViewEncapsulation.None }), __metadata("design:paramtypes", [ElementRef, ViewContainerRef, AngularFrameworkOverrides, AngularFrameworkComponentWrapper, ComponentFactoryResolver]) ], AgGridAngular); return AgGridAngular; }()); export { AgGridAngular }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hbmd1bGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FnLWdyaWQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9hZy1ncmlkLWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBR0gsYUFBYSxFQUNiLE1BQU0sRUFDTixJQUFJLEVBR0osa0JBQWtCLEVBR2xCLE9BQU8sRUFDUCxDQUFDLEVBQ0osTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFZMUQ7SUFrQkksdUJBQVksVUFBc0IsRUFDdEIsZ0JBQWtDLEVBQ2xDLHlCQUFvRCxFQUNwRCx5QkFBMkQsRUFDM0QseUJBQW1EO1FBSG5ELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCw4QkFBeUIsR0FBekIseUJBQXlCLENBQWtDO1FBQzNELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFsQnZELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFJM0IsMERBQTBEO1FBQ2xELGdCQUFXLEdBQXFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUE4RzlELFVBQVU7UUFDTSxlQUFVLEdBQVMsU0FBUyxDQUFDO1FB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QUN4QyxDQUFDO3lDQW1CMEIsVUFBVTtZQUNKLGdCQUFnQjtZQUNQLHlCQUF5QjtZQUN6QixnQ0FBZ0M7WUFDaEMsd0JBQXdCO09BdEJ0RCxhQUFhLENBeWV6QjtJQUFELG9CQUFDO0NBQUEsQUF6ZUQsSUF5ZUM7U0F6ZVksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtcbiAgICBDb2xEZWYsXG4gICAgQ29sdW1uQXBpLFxuICAgIENvbXBvbmVudFV0aWwsXG4gICAgRXZlbnRzLFxuICAgIEdyaWQsXG4gICAgR3JpZEFwaSxcbiAgICBHcmlkT3B0aW9ucyxcbiAgICBHcmlkT3B0aW9uc1dyYXBwZXIsXG4gICAgR3JpZFBhcmFtcyxcbiAgICBNb2R1bGUsXG4gICAgUHJvbWlzZSxcbiAgICBfXG59IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xuXG5pbXBvcnQgeyBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzIH0gZnJvbSBcIi4vYW5ndWxhckZyYW1ld29ya092ZXJyaWRlc1wiO1xuaW1wb3J0IHsgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi9hbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlclwiO1xuaW1wb3J0IHsgQWdHcmlkQ29sdW1uIH0gZnJvbSBcIi4vYWctZ3JpZC1jb2x1bW4uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWctZ3JpZC1hbmd1bGFyJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgIEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyXG4gICAgXSxcbiAgICAvLyB0ZWxsIGFuZ3VsYXIgd2UgZG9uJ3Qgd2FudCB2aWV3IGVuY2Fwc3VsYXRpb24sIHdlIGRvbid0IHdhbnQgYSBzaGFkb3cgcm9vdFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWdHcmlkQW5ndWxhciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8vIG5vdCBpbnRlbmRlZCBmb3IgdXNlciB0byBpbnRlcmFjdCB3aXRoLiBzbyBwdXR0aW5nIF8gaW4gc28gaWYgdXNlciBnZXRzIHJlZmVyZW5jZVxuICAgIC8vIHRvIHRoaXMgb2JqZWN0LCB0aGV5IGtpbmQnYSBrbm93IGl0J3Mgbm90IHBhcnQgb2YgdGhlIGFncmVlZCBpbnRlcmZhY2VcbiAgICBwcml2YXRlIF9uYXRpdmVFbGVtZW50OiBhbnk7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGlzZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZ3JpZFBhcmFtczogR3JpZFBhcmFtcztcblxuICAgIC8vIGluIG9yZGVyIHRvIGVuc3VyZSBmaXJpbmcgb2YgZ3JpZFJlYWR5IGlzIGRldGVybWluaXN0aWNcbiAgICBwcml2YXRlIF9mdWxseVJlYWR5OiBQcm9taXNlPGJvb2xlYW4+ID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXG4gICAgLy8gbWFraW5nIHRoZXNlIHB1YmxpYywgc28gdGhleSBhcmUgYWNjZXNzaWJsZSB0byBwZW9wbGUgdXNpbmcgdGhlIG5nMiBjb21wb25lbnQgcmVmZXJlbmNlc1xuICAgIHB1YmxpYyBhcGk6IEdyaWRBcGk7XG4gICAgcHVibGljIGNvbHVtbkFwaTogQ29sdW1uQXBpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihBZ0dyaWRDb2x1bW4pIHB1YmxpYyBjb2x1bW5zOiBRdWVyeUxpc3Q8QWdHcmlkQ29sdW1uPjtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnREZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBhbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzOiBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLFxuICAgICAgICBwcml2YXRlIGZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXI6IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyLFxuICAgICAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICB0aGlzLl9uYXRpdmVFbGVtZW50ID0gZWxlbWVudERlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlci5zZXRWaWV3Q29udGFpbmVyUmVmKHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlci5zZXRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIodGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tGb3JEZXByZWNhdGVkRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucyA9IENvbXBvbmVudFV0aWwuY29weUF0dHJpYnV0ZXNUb0dyaWRPcHRpb25zKHRoaXMuZ3JpZE9wdGlvbnMsIHRoaXMsIHRydWUpO1xuXG4gICAgICAgIHRoaXMuZ3JpZFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGdsb2JhbEV2ZW50TGlzdGVuZXI6IHRoaXMuZ2xvYmFsRXZlbnRMaXN0ZW5lci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZnJhbWV3b3JrT3ZlcnJpZGVzOiB0aGlzLmFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgICAgICBwcm92aWRlZEJlYW5JbnN0YW5jZXM6IHtcbiAgICAgICAgICAgICAgICBmcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyOiB0aGlzLmZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2R1bGVzOiAodGhpcy5tb2R1bGVzIHx8IFtdKSBhcyBhbnlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSB0aGlzLmNvbHVtbnNcbiAgICAgICAgICAgICAgICAubWFwKChjb2x1bW46IEFnR3JpZENvbHVtbik6IENvbERlZiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW4udG9Db2xEZWYoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5ldyBHcmlkKHRoaXMuX25hdGl2ZUVsZW1lbnQsIHRoaXMuZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZFBhcmFtcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuYXBpKSB7XG4gICAgICAgICAgICB0aGlzLmFwaSA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uQXBpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkFwaSA9IHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uQXBpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5pdGlhbGlzZWQgPSB0cnVlO1xuXG4gICAgICAgIC8vIHNvbWV0aW1lcywgZXNwZWNpYWxseSBpbiBsYXJnZSBjbGllbnQgYXBwcyBncmlkUmVhZHkgY2FuIGZpcmUgYmVmb3JlIG5nQWZ0ZXJWaWV3SW5pdFxuICAgICAgICAvLyB0aGlzIHRpZXMgdGhlc2UgdG9nZXRoZXIgc28gdGhhdCBncmlkUmVhZHkgd2lsbCBhbHdheXMgZmlyZSBhZnRlciBhZ0dyaWRBbmd1bGFyJ3MgbmdBZnRlclZpZXdJbml0XG4gICAgICAgIC8vIHRoZSBhY3R1YWwgY29udGFpbmluZyBjb21wb25lbnQncyBuZ0FmdGVyVmlld0luaXQgd2lsbCBmaXJlIGp1c3QgYWZ0ZXIgYWdHcmlkQW5ndWxhcidzXG4gICAgICAgIHRoaXMuX2Z1bGx5UmVhZHkucmVzb2x2ZU5vdyhudWxsLCByZXNvbHZlID0+IHJlc29sdmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpc2VkKSB7XG4gICAgICAgICAgICBDb21wb25lbnRVdGlsLnByb2Nlc3NPbkNoYW5nZShjaGFuZ2VzLCB0aGlzLmdyaWRPcHRpb25zLCB0aGlzLmFwaSwgdGhpcy5jb2x1bW5BcGkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGlzZWQpIHtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gZG8gdGhpcyBiZWZvcmUgdGhlIGRlc3Ryb3ksIHNvIHdlIGtub3cgbm90IHRvIGVtaXQgYW55IGV2ZW50c1xuICAgICAgICAgICAgLy8gd2hpbGUgdGVhcmluZyBkb3duIHRoZSBncmlkLlxuICAgICAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFwaSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBpLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGb3JEZXByZWNhdGVkRXZlbnRzKCkge1xuICAgICAgICBfLml0ZXJhdGVPYmplY3Q8YW55PihFdmVudHMsIChrZXksIGV2ZW50TmFtZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXNbZXZlbnROYW1lXSAmJiAoPEV2ZW50RW1pdHRlcjxhbnk+PnRoaXNbZXZlbnROYW1lXSkub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBHcmlkT3B0aW9uc1dyYXBwZXIuY2hlY2tFdmVudERlcHJlY2F0aW9uKGV2ZW50TmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2xvYmFsRXZlbnRMaXN0ZW5lcihldmVudFR5cGU6IHN0cmluZywgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBpZiB3ZSBhcmUgdGVhcmluZyBkb3duLCBkb24ndCBlbWl0IGFuZ3VsYXIgZXZlbnRzLCBhcyB0aGlzIGNhdXNlc1xuICAgICAgICAvLyBwcm9ibGVtcyB3aXRoIHRoZSBhbmd1bGFyIHJvdXRlclxuICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBnZW5lcmljYWxseSBsb29rIHVwIHRoZSBldmVudFR5cGVcbiAgICAgICAgbGV0IGVtaXR0ZXIgPSA8RXZlbnRFbWl0dGVyPGFueT4+KDxhbnk+dGhpcylbZXZlbnRUeXBlXTtcbiAgICAgICAgaWYgKGVtaXR0ZXIpIHtcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT09ICdncmlkUmVhZHknKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHVzZXIgaXMgbGlzdGVuaW5nIGZvciBncmlkUmVhZHksIHdhaXQgZm9yIG5nQWZ0ZXJWaWV3SW5pdCB0byBmaXJlIGZpcnN0LCB0aGVuIGVtaXQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZ3JpZFJlYWR5IGV2ZW50XG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbHlSZWFkeS50aGVuKChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbWl0dGVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZy1HcmlkLWFuZ3VsYXI6IGNvdWxkIG5vdCBmaW5kIEV2ZW50RW1pdHRlcjogJyArIGV2ZW50VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2R1bGVzOiBNb2R1bGVbXTtcblxuICAgIC8vIEBTVEFSVEBcbiAgICBASW5wdXQoKSBwdWJsaWMgc2xhdmVHcmlkcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxpZ25lZEdyaWRzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5EZWZzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBleGNlbFN0eWxlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGlubmVkVG9wUm93RGF0YSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGlubmVkQm90dG9tUm93RGF0YSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29tcG9uZW50cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnJhbWV3b3JrQ29tcG9uZW50cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93U3R5bGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbnRleHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGF1dG9Hcm91cENvbHVtbkRlZiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBDb2x1bW5EZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2FsZVRleHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGljb25zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhc291cmNlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXJ2ZXJTaWRlRGF0YXNvdXJjZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmlld3BvcnREYXRhc291cmNlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJvd1JlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhZ2dGdW5jcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnVsbFdpZHRoQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0Q29sR3JvdXBEZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlZmF1bHRDb2xEZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlZmF1bHRFeHBvcnRQYXJhbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbHVtblR5cGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dDbGFzc1J1bGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXRhaWxHcmlkT3B0aW9ucyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGV0YWlsQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nT3ZlcmxheUNvbXBvbmVudFBhcmFtcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudFBhcmFtcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcG9wdXBQYXJlbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbFJlc2l6ZURlZmF1bHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJlZHV4U3RvcmUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN0YXR1c0JhciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2lkZUJhciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc29ydGluZ09yZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dDbGFzcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93U2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5TG9hZGluZ1RlbXBsYXRlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5Tm9Sb3dzVGVtcGxhdGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHF1aWNrRmlsdGVyVGV4dCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93TW9kZWxUeXBlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlZGl0VHlwZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZG9tTGF5b3V0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjbGlwYm9hcmREZWxpbWluYXRvciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93R3JvdXBQYW5lbFNob3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG11bHRpU29ydEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RDb2x1bW5Hcm91cFRvdGFscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RSb3dUb3RhbHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90UGFuZWxTaG93IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dIZWlnaHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRldGFpbFJvd0hlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93QnVmZmVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2xXaWR0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVhZGVySGVpZ2h0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmxvYXRpbmdGaWx0ZXJzSGVpZ2h0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwaXZvdEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RHcm91cEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBEZWZhdWx0RXhwYW5kZWQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG1pbkNvbFdpZHRoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhDb2xXaWR0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmlld3BvcnRSb3dNb2RlbFBhZ2VTaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2aWV3cG9ydFJvd01vZGVsQnVmZmVyU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYXV0b1NpemVQYWRkaW5nIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhCbG9ja3NJbkNhY2hlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwU2hvd0RlbGF5IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYWNoZU92ZXJmbG93U2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYWNoZUJsb2NrU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5maW5pdGVJbml0aWFsUm93Q291bnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNjcm9sbGJhcldpZHRoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uU3RhcnRQYWdlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmZpbml0ZUJsb2NrU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYmF0Y2hVcGRhdGVXYWl0TWlsbGlzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhc3luY1RyYW5zYWN0aW9uV2FpdE1pbGxpcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYmxvY2tMb2FkRGVib3VuY2VNaWxsaXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGtlZXBEZXRhaWxSb3dzQ291bnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHVuZG9SZWRvQ2VsbEVkaXRpbmdMaW1pdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY2VsbEZsYXNoRGVsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNlbGxGYWRlRGVsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2FsZVRleHRGdW5jIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJvd0lubmVyUmVuZGVyZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwUm93SW5uZXJSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUNvbXBvbmVudCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUNvbXBvbmVudEZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNFeHRlcm5hbEZpbHRlclByZXNlbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFJvd0hlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZG9lc0V4dGVybmFsRmlsdGVyUGFzcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Um93Q2xhc3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFJvd1N0eWxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRSb3dDbGFzc1J1bGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0cmF2ZXJzZU5vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldENvbnRleHRNZW51SXRlbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldE1haW5NZW51SXRlbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByb2Nlc3NSb3dQb3N0Q3JlYXRlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzQ2VsbEZvckNsaXBib2FyZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Tm9kZUNoaWxkRGV0YWlscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dBZ2dOb2RlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Um93Tm9kZUlkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Z1bGxXaWR0aENlbGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGZ1bGxXaWR0aENlbGxSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnVsbFdpZHRoQ2VsbFJlbmRlcmVyRnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkb2VzRGF0YUZsb3dlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvY2Vzc1NlY29uZGFyeUNvbERlZiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvY2Vzc1NlY29uZGFyeUNvbEdyb3VwRGVmIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRCdXNpbmVzc0tleUZvck5vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNlbmRUb0NsaXBib2FyZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbmF2aWdhdGVUb05leHRDZWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWJUb05leHRDZWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXREZXRhaWxSb3dEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzQ2VsbEZyb21DbGlwYm9hcmQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldERvY3VtZW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwb3N0UHJvY2Vzc1BvcHVwIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRDaGlsZENvdW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXREYXRhUGF0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ0NlbGxSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ0NlbGxSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ092ZXJsYXlDb21wb25lbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub1Jvd3NPdmVybGF5Q29tcG9uZW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub1Jvd3NPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXRhaWxDZWxsUmVuZGVyZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRldGFpbENlbGxSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdEdyb3VwU29ydENvbXBhcmF0b3IgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGlzUm93TWFzdGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1Jvd1NlbGVjdGFibGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBvc3RTb3J0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzSGVhZGVyRm9yQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzRGF0YUZyb21DbGlwYm9hcmQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFNlcnZlclNpZGVHcm91cEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNTZXJ2ZXJTaWRlR3JvdXAgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzS2V5Ym9hcmRFdmVudCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY3JlYXRlQ2hhcnRDb250YWluZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByb2Nlc3NDaGFydE9wdGlvbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldENoYXJ0VG9vbGJhckl0ZW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWxsT3BlcmF0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc1Jvd0dyb3VwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NWYWx1ZXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2xQYW5lbFN1cHByZXNzUGl2b3RzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc1Bpdm90TW9kZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NTaWRlQnV0dG9ucyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NDb2x1bW5GaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2xQYW5lbFN1cHByZXNzQ29sdW1uU2VsZWN0QWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc0NvbHVtbkV4cGFuZEFsbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYWtlQ29sdW1uVmlzaWJsZUFmdGVyVW5Hcm91cCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDZWxsU2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0hvcml6b250YWxTY3JvbGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFsd2F5c1Nob3dWZXJ0aWNhbFNjcm9sbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVidWcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUJyb3dzZXJUb29sdGlwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQ29sUmVzaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDZWxsRXhwcmVzc2lvbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNvcnRpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNlcnZlclNpZGVTb3J0aW5nIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNlcnZlclNpZGVGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFuZ3VsYXJDb21waWxlUm93cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYW5ndWxhckNvbXBpbGVGaWx0ZXJzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhbmd1bGFyQ29tcGlsZUhlYWRlcnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFNlbGVjdHNDaGlsZHJlbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBJbmNsdWRlRm9vdGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEluY2x1ZGVUb3RhbEZvb3RlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBVc2VFbnRpcmVSb3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NSb3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NCbGFua0hlYWRlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZm9yUHJpbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTWVudUhpZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJvd0Rlc2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB1blNvcnRJY29uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc011bHRpU29ydCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2luZ2xlQ2xpY2tFZGl0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0xvYWRpbmdPdmVybGF5IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc05vUm93c092ZXJsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQXV0b1NpemUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNraXBIZWFkZXJPbkF1dG9TaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1BhcmVudHNJblJvd05vZGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93VG9vbFBhbmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NvbHVtbk1vdmVBbmltYXRpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTW92YWJsZUNvbHVtbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRmllbGREb3ROb3RhdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlUmFuZ2VTZWxlY3Rpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVJhbmdlSGFuZGxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVGaWxsSGFuZGxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NsZWFyT25GaWxsUmVkdWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWx0YVNvcnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzVG91Y2ggOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQXN5bmNFdmVudHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFsbG93Q29udGV4dE1lbnVXaXRoQ29udHJvbEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDb250ZXh0TWVudSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNZW51RmlsdGVyUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTWVudU1haW5QYW5lbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNZW51Q29sdW1uUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJlbWVtYmVyR3JvdXBTdGF0ZVdoZW5OZXdEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDZWxsQ2hhbmdlRmxhc2ggOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc01pZGRsZUNsaWNrU2Nyb2xscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NQcmV2ZW50RGVmYXVsdE9uTW91c2VXaGVlbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NVc2VDb2xJZEZvckdyb3VwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDb3B5Um93c1RvQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb3B5SGVhZGVyc1RvQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwaXZvdE1vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQWdnRnVuY0luSGVhZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NvbHVtblZpcnR1YWxpc2F0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0FnZ0F0Um9vdExldmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0ZvY3VzQWZ0ZXJSZWZyZXNoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmdW5jdGlvbnNQYXNzaXZlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmdW5jdGlvbnNSZWFkT25seSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYW5pbWF0ZVJvd3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU2VsZWN0c0ZpbHRlcmVkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJlbW92ZVNpbmdsZUNoaWxkcmVuIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJlbW92ZUxvd2VzdFNpbmdsZUNoaWxkcmVuIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVSdGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQ2xpY2tFZGl0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dEcmFnTWFuYWdlZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dEcmFnIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc01vdmVXaGVuUm93RHJhZ2dpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZU11bHRpUm93RHJhZ2dpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUdyb3VwRWRpdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW1iZWRGdWxsV2lkdGhSb3dzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXByZWNhdGVkRW1iZWRGdWxsV2lkdGhSb3dzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1RhYmJpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUGFnaW5hdGlvblBhbmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmbG9hdGluZ0ZpbHRlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBIaWRlT3BlblBhcmVudHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwTXVsdGlBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdG9wRWRpdGluZ1doZW5HcmlkTG9zZXNGb2N1cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvbkF1dG9QYWdlU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NTY3JvbGxPbk5ld0RhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHB1cmdlQ2xvc2VkUm93Tm9kZXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNhY2hlUXVpY2tGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlbHRhUm93RGF0YU1vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuc3VyZURvbU9yZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY2NlbnRlZFNvcnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90VG90YWxzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NoYW5nZURldGVjdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDYWNoZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDYWNoZU5ldmVyRXhwaXJlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWdncmVnYXRlT25seUNoYW5nZWRDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0FuaW1hdGlvbkZyYW1lIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0V4Y2VsRXhwb3J0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NzdkV4cG9ydCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdHJlZURhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG1hc3RlckRldGFpbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNdWx0aVJhbmdlU2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbnRlck1vdmVzRG93bkFmdGVyRWRpdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW50ZXJNb3Zlc0Rvd24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUHJvcGVydHlOYW1lc0NoZWNrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dNdWx0aVNlbGVjdFdpdGhDbGljayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29udHJhY3RDb2x1bW5TZWxlY3Rpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRW50ZXJwcmlzZVJlc2V0T25OZXdDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVPbGRTZXRGaWx0ZXJNb2RlbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JpZEF1dG9IZWlnaHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUm93VHJhbnNmb3JtIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NsaXBib2FyZFBhc3RlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0xhc3RFbXB0eUxpbmVPblBhc3RlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXJ2ZXJTaWRlU29ydGluZ0Fsd2F5c1Jlc2V0cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcmVhY3ROZXh0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1NldENvbHVtblN0YXRlRXZlbnRzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDaGFydHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlbHRhQ29sdW1uTW9kZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYWludGFpblVuc29ydGVkT3JkZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0Jyb3dzZXJSZXNpemVPYnNlcnZlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYXhSZW5kZXJlZFJvd1Jlc3RyaWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBleGNsdWRlQ2hpbGRyZW5XaGVuVHJlZURhdGFGaWx0ZXJpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2x0aXBNb3VzZVRyYWNrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBrZWVwRGV0YWlsUm93cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGVDaGlsZFJvd3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByZXZlbnREZWZhdWx0T25Db250ZXh0TWVudSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdW5kb1JlZG9DZWxsRWRpdGluZyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxsb3dEcmFnRnJvbUNvbHVtbnNUb29sUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGltbXV0YWJsZURhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGltbXV0YWJsZUNvbHVtbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90U3VwcHJlc3NBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5FdmVyeXRoaW5nQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG5ld0NvbHVtbnNMb2FkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5QaXZvdE1vZGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uUm93R3JvdXBDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZXhwYW5kT3JDb2xsYXBzZUFsbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblBpdm90Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGdyaWRDb2x1bW5zQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbk1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uVmlzaWJsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblBpbm5lZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbkdyb3VwT3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRpc3BsYXllZENvbHVtbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdmlydHVhbENvbHVtbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93R3JvdXBPcGVuZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEYXRhQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RhdGFVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGlubmVkUm93RGF0YUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByYW5nZVNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydFJhbmdlU2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNoYXJ0T3B0aW9uc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydERlc3Ryb3llZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHRvb2xQYW5lbFZpc2libGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGFzdGVTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHBhc3RlRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsbFN0YXJ0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsbEVuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbERvdWJsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsTW91c2VEb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbENvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd1ZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxGb2N1c2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbEtleURvd246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsS2V5UHJlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsTW91c2VPdmVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbE1vdXNlT3V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsdGVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGZpbHRlck1vZGlmaWVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsdGVyT3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc29ydENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyB2aXJ0dWFsUm93UmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEb3VibGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ3JpZFJlYWR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ3JpZFNpemVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdmlld3BvcnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlyc3REYXRhUmVuZGVyZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBkcmFnU3RhcnRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRyYWdTdG9wcGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2hlY2tib3hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93RWRpdGluZ1N0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dFZGl0aW5nU3RvcHBlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxFZGl0aW5nU3RhcnRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxFZGl0aW5nU3RvcHBlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGJvZHlTY3JvbGw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBhbmltYXRpb25RdWV1ZUVtcHR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgaGVpZ2h0U2NhbGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGFnaW5hdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb21wb25lbnRTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBib2R5SGVpZ2h0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRpc3BsYXllZENvbHVtbnNXaWR0aENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY3JvbGxWaXNpYmlsaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbkhvdmVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGZsYXNoQ2VsbHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEcmFnRW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEcmFnTW92ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RyYWdMZWF2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RyYWdFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBwb3B1cFRvRnJvbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5Sb3dHcm91cENoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5QaXZvdENoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5WYWx1ZUNoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5BZ2dGdW5jQ2hhbmdlUmVxdWVzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGtleWJvYXJkRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBtb3VzZUZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIEBFTkRAXG59XG5cbiJdfQ==