@eo-sdk/client 8.0.0-rc.1 → 8.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +5 -0
- package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts +10 -2
- package/app/eo-framework/form-elements/organization/organization.component.d.ts +2 -0
- package/app/eo-framework/grid/grid.component.d.ts +0 -1
- package/app/eo-framework/media/media.component.d.ts +6 -0
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +1 -0
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts +1 -0
- package/app/eo-framework/ui/loading-spinner/loading-spinner.component.d.ts +1 -0
- package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts +8 -0
- package/app/eo-framework-core/api/grid.service.d.ts +2 -1
- package/assets/_default/api/pdf/web/viewer.js +1 -1
- package/assets/_default/config/main.json +1 -1
- package/assets/_default/i18n/de.json +9 -4
- package/assets/_default/i18n/en.json +14 -9
- package/assets/_default/img/yuuvis-agent.png +0 -0
- package/assets/_default/svg/ic_book.svg +1 -0
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +5 -4
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +202 -98
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
- package/esm2015/app/eo-framework/app-shell/app-bar/app-bar.component.js +45 -1
- package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +3 -3
- package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +20 -6
- package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +4 -11
- package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +5 -11
- package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +3 -3
- package/esm2015/app/eo-framework/grid/grid.component.js +3 -29
- package/esm2015/app/eo-framework/media/media.component.js +7 -4
- package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +13 -6
- package/esm2015/app/eo-framework/object-form/object-form/object-form.component.js +2 -2
- package/esm2015/app/eo-framework/object-form/object-form-edit/object-form-edit.component.js +2 -2
- package/esm2015/app/eo-framework/object-state-details/object-state-details.component.js +9 -5
- package/esm2015/app/eo-framework/process/history/process-history.component.js +2 -2
- package/esm2015/app/eo-framework/process/process-file/process-file.component.js +3 -3
- package/esm2015/app/eo-framework/result-list/result-list.component.js +7 -3
- package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +1 -1
- package/esm2015/app/eo-framework/ui/loading-spinner/loading-spinner.component.js +5 -4
- package/esm2015/app/eo-framework/upload-overlay/upload-overlay.component.js +40 -4
- package/esm2015/app/eo-framework-core/api/grid.service.js +39 -1
- package/esm2015/projects/eo-sdk/core/lib/service/bpm/bpm.service.js +2 -2
- package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +4 -3
- package/esm2015/projects/eo-sdk/core/lib/util/utils.js +2 -2
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +5 -4
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +195 -83
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +2 -1
- package/projects/eo-sdk/core/package.json +1 -1
|
@@ -114,7 +114,7 @@ export class GridComponent extends UnsubscribeOnDestroy {
|
|
|
114
114
|
return typeof this.gridOptions.context.count === 'number' ? 'eq' : this.gridOptions.context.count.relation;
|
|
115
115
|
}
|
|
116
116
|
copyCellHandler(event) {
|
|
117
|
-
this.copyToClipboard(event);
|
|
117
|
+
this.gridApi.copyToClipboard(event, this.gridOptions);
|
|
118
118
|
}
|
|
119
119
|
loadingMessage() {
|
|
120
120
|
let loaderContent = '';
|
|
@@ -339,32 +339,6 @@ export class GridComponent extends UnsubscribeOnDestroy {
|
|
|
339
339
|
this.selectRow(lastFocusedIndex);
|
|
340
340
|
}, this.contextCount ? 500 : 0);
|
|
341
341
|
}
|
|
342
|
-
// copy content of either row or table cell to clipboard
|
|
343
|
-
copyToClipboard(event) {
|
|
344
|
-
event.preventDefault();
|
|
345
|
-
event.stopPropagation();
|
|
346
|
-
let content = '';
|
|
347
|
-
const grid = document.querySelector('ag-grid-angular'); // todo: refactoring
|
|
348
|
-
const focusedCell = this.gridOptions.api.getFocusedCell();
|
|
349
|
-
const rows = event.shiftKey ? this.gridOptions.api.getSelectedNodes() : [this.gridOptions.api.getDisplayedRowAtIndex(focusedCell.rowIndex)];
|
|
350
|
-
const cols = event.shiftKey ? this.gridOptions.columnApi.getAllDisplayedColumns() : [focusedCell.column];
|
|
351
|
-
const value = (col, row) => {
|
|
352
|
-
const cell = grid.querySelector(`div[row-index="${row.rowIndex}"] [col-id="${col.colId}"]`);
|
|
353
|
-
const chips = cell === null || cell === void 0 ? void 0 : cell.querySelectorAll('.chip');
|
|
354
|
-
const val = cell && Array.from((chips === null || chips === void 0 ? void 0 : chips.length) ? chips : [cell]).map((c) => c.textContent || '');
|
|
355
|
-
return (val === undefined || val === null ? '' : val).toString().replace(/\n/g, ' ');
|
|
356
|
-
};
|
|
357
|
-
// const value = (col, row) => (this.gridOptions.api.getValue(col, row) || '').toString().replace(/\n/g, ' ');
|
|
358
|
-
if (event.altKey)
|
|
359
|
-
content += cols.map((col) => col.getColDef().headerName).join(' ') + '\n';
|
|
360
|
-
content += rows.map((row) => cols.map((col) => value(col, row)).join(' ')).join('\n');
|
|
361
|
-
const textArea = document.createElement('textarea');
|
|
362
|
-
textArea.value = content;
|
|
363
|
-
document.body.appendChild(textArea);
|
|
364
|
-
textArea.select();
|
|
365
|
-
const copySuccess = document.execCommand('copy');
|
|
366
|
-
document.body.removeChild(textArea);
|
|
367
|
-
}
|
|
368
342
|
get columns() {
|
|
369
343
|
return this.gridOptions.columnApi.getAllGridColumns().filter(c => c.getColId() !== this.pinnedColumn.field);
|
|
370
344
|
}
|
|
@@ -389,7 +363,7 @@ GridComponent.decorators = [
|
|
|
389
363
|
selector: 'eo-grid',
|
|
390
364
|
template: "<div class=\"eo-grid-empty\" [hidden]=\"!(isEmpty || isEmptyRows)\">\r\n <ng-content select=\".empty\"></ng-content>\r\n</div>\r\n<div class=\"eo-grid-header\" *ngIf=\"showHeader\" [hidden]=\"isEmpty\">\r\n <ng-content select=\".header\"></ng-content>\r\n</div>\r\n<ag-grid-angular #agGrid class=\"ag-theme-balham\" [modules]=\"modules\"\r\n [hidden]=\"isEmpty\"\r\n [ngClass]=\"{'hide-header': showHeader, 'enable-footer': showFooter, 'full-width': fullWidth}\"\r\n [gridOptions]=\"gridOptions\"\r\n [frameworkComponents]=\"frameworkComponents\"\r\n (modelUpdated)=\"onModelUpdated()\"\r\n (cellFocused)=\"onCellFocused($event)\"\r\n (cellContextMenu)=\"onContextMenuClicked($event)\"\r\n (contextmenu)=\"$event.stopPropagation();$event.preventDefault()\"\r\n (mousedown)=\"onMouseDown($event)\"\r\n (cellClicked)=\"onCellClicked($event)\"\r\n (cellDoubleClicked)=\"onCellDoubleClicked($event)\"\r\n (selectionChanged)=\"onSelectionChanged($event)\"\r\n (columnResized)=\"onColumnResized($event)\"\r\n (gridReady)=\"onReady()\">\r\n</ag-grid-angular>\r\n<div class=\"eo-grid-footer\" *ngIf=\"showFooter\" [hidden]=\"isEmpty\">\r\n <ng-content select=\".footer\"></ng-content>\r\n</div>\r\n",
|
|
391
365
|
encapsulation: ViewEncapsulation.None,
|
|
392
|
-
styles: [":host-context(.dark) .eo-grid-empty{color:var(--color-white)}eo-grid{--footer-height:40px;--header-height:30px;bottom:0;color:var(--text-color-caption);left:0;position:absolute;right:0;top:0}eo-grid #center{overflow-x:hidden}eo-grid .eo-grid-empty,eo-grid .eo-grid-footer,eo-grid .eo-grid-header{align-items:center;border-bottom:1px solid var(--panel-header-border-bottom-color);box-sizing:border-box;display:flex;flex:1;flex-direction:row;height:var(--header-height);min-height:0;min-width:0;padding:0 calc(var(--app-pane-padding)/4*3);position:absolute;width:100%;z-index:1}eo-grid .eo-grid-empty .empty,eo-grid .eo-grid-footer .empty,eo-grid .eo-grid-header .empty{-webkit-border-radius:2px;align-items:center;background-color:rgba(var(--color-black-rgb),0);border-radius:2px;display:flex;flex:1;flex-direction:column;font-style:italic;height:auto;justify-content:space-around;min-height:0;min-width:0;padding:5px}eo-grid .eo-grid-empty .footer,eo-grid .eo-grid-empty .header,eo-grid .eo-grid-footer .footer,eo-grid .eo-grid-footer .header,eo-grid .eo-grid-header .footer,eo-grid .eo-grid-header .header{align-items:center;display:flex;flex:1;flex-direction:row;justify-content:flex-end;min-height:0;min-width:0}eo-grid .eo-grid-empty .footer>*,eo-grid .eo-grid-empty .header>*,eo-grid .eo-grid-footer .footer>*,eo-grid .eo-grid-footer .header>*,eo-grid .eo-grid-header .footer>*,eo-grid .eo-grid-header .header>*{margin:0 calc(var(--app-pane-padding)/4)}eo-grid .eo-grid-empty{border:none;height:calc(100% - var(--footer-height) - var(--header-height));top:var(--header-height)}eo-grid .eo-grid-footer{border-top:1px solid var(--panel-header-border-bottom-color);bottom:0;height:var(--footer-height)}eo-grid ag-grid-angular.ag-theme-balham{bottom:0;box-sizing:border-box;font-size:13px;position:absolute;top:0;width:100%}eo-grid ag-grid-angular.ag-theme-balham #center{overflow-x:hidden}eo-grid ag-grid-angular.ag-theme-balham.enable-footer{bottom:var(--footer-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width{top:var(--header-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-body-container,eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-center-cols-container{width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell>span{width:100%}eo-grid ag-grid-angular.ag-theme-balham.hide-header .ag-header{display:none;height:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell-menu-button .ag-icon-menu{height:30px}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell{line-height:30px;padding-left:var(--app-pane-padding);padding-right:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell:after{border-right:1px solid var(--list-item-border-color);height:100%;margin-top:0}eo-grid ag-grid-angular.ag-theme-balham .ag-header{background-color:transparent;border-bottom:1px solid var(--list-item-border-color)}eo-grid ag-grid-angular.ag-theme-balham .ag-tab-header .ag-tab.ag-tab-selected{border-bottom:2px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-menu-button{float:left}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell{-webkit-border-radius:2px;border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell .ag-column-drag{margin-top:0}eo-grid ag-grid-angular.ag-theme-balham .chip:last-of-type:after{background:transparent;background:linear-gradient(90deg,transparent 0,#fff);bottom:0;content:\" \";position:absolute;right:0;top:0;width:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-row{-moz-user-select:none;-webkit-user-select:none;background:var(--color-white);border:none;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover{background:var(--list-item-hover-background)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header .ag-header-cell:first-child:after{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-cell[col-id=__selectionField],eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-cell[col-id=__selectionField]{border:0!important;padding:0!important;width:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before{background:linear-gradient(0deg,#fff,#fff 5%,var(--color-accent) 0,var(--color-accent) 95%,#fff 0,#fff);content:\"\";height:100%;position:absolute;width:3px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before{right:0}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before{background:var(--color-primary)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before{background:linear-gradient(0deg,#fff,#fff 5%,var(--color-accent) 0,var(--color-accent) 95%,#fff 0,#fff)}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{background:var(--list-item-selected-background)!important;border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected .chip:last-of-type:after{background:transparent;background:linear-gradient(90deg,transparent 0,var(--list-item-selected-background))}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-range-selected{background:var(--list-item-selected-background)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell,eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus{border:1px solid;border-bottom-color:var(--list-item-border-color)!important;border-color:transparent!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell{-moz-user-select:none;-webkit-user-select:none;align-items:center;display:flex;font-size:var(--font-body);line-height:1.7em;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell svg{pointer-events:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.ag-cell-value{text-overflow:ellipsis;white-space:nowrap}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a{color:var(--text-color-accent);text-decoration:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link{color:var(--text-color-body)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link:hover{color:var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a:hover{text-decoration:underline}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-boolean,eo-grid ag-grid-angular.ag-theme-balham .ag-cell.res-ico{justify-content:center}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-number{justify-content:flex-end}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type{height:24px;opacity:.5;vertical-align:bottom;width:24px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type-label{padding:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.06);border-color:rgba(var(--color-black-rgb),0);border-radius:2px;color:var(--text-color-caption);margin:0!important;padding:4px var(--app-pane-padding);white-space:nowrap;width:100%}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:hover{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-select[ref=eOptions2],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-select[ref=eOptions2]{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.06);border-color:rgba(var(--color-black-rgb),0);border-radius:2px;color:var(--text-color-caption);height:20px;padding:0;width:20px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:hover{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled eo-icon,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled eo-icon{height:var(--app-pane-padding);width:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input{-moz-user-select:all;-webkit-user-select:all;border:0!important;border-bottom:1px solid!important;border-bottom-color:rgba(var(--color-black-rgb),.1)!important;font-family:inherit;height:2em;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)!important;user-select:all;width:100%}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input:focus{border-bottom-color:var(--color-accent)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z%22%2F%3E%3C%2Fsvg%3E\") no-repeat;background-position-x:right;background-position-y:center;background-size:var(--app-pane-padding);border:none;border-bottom:1px solid rgba(var(--color-black-rgb),.1);font-family:inherit;height:2em;outline:none;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{background-position-x:right;none:left}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{background-position-x:left;none:right}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select:focus{border-bottom:1px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-list-filter,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-list-filter{display:block;padding-left:calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom{display:block;margin:0 calc(var(--app-pane-padding)/4)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization{margin-top:calc(var(--app-pane-padding)/4);position:relative}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{position:absolute;top:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{right:0}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{left:0}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization .ui-autocomplete-panel{position:relative;top:3px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container{border:none;flex-flow:column}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token{margin:2px calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token{padding:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button{right:8px}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button{left:8px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-group-cell>svg.checkbox{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-cell,eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-cell{padding:0 var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-label{text-align:right}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell.contextfolder .ag-header-cell-text:before{-webkit-border-radius:2px;background:var(--color-primary-3);border-radius:2px;color:var(--color-white);content:\"*\";display:inline-block;line-height:14px;padding:0 calc(var(--app-pane-padding)/4)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-left:calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-right:calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-group-value{vertical-align:middle}"]
|
|
366
|
+
styles: [":host-context(.dark) .eo-grid-empty{color:var(--color-white)}eo-grid{--footer-height:40px;--header-height:30px;bottom:0;color:var(--text-color-caption);left:0;position:absolute;right:0;top:0}eo-grid #center{overflow-x:hidden}eo-grid .eo-grid-empty,eo-grid .eo-grid-footer,eo-grid .eo-grid-header{align-items:center;border-bottom:1px solid var(--panel-header-border-bottom-color);box-sizing:border-box;display:flex;flex:1;flex-direction:row;height:var(--header-height);min-height:0;min-width:0;padding:0 calc(var(--app-pane-padding)/4*3);position:absolute;width:100%;z-index:1}eo-grid .eo-grid-empty .empty,eo-grid .eo-grid-footer .empty,eo-grid .eo-grid-header .empty{-webkit-border-radius:2px;align-items:center;background-color:rgba(var(--color-black-rgb),0);border-radius:2px;display:flex;flex:1;flex-direction:column;font-style:italic;height:auto;justify-content:space-around;min-height:0;min-width:0;padding:5px}eo-grid .eo-grid-empty .footer,eo-grid .eo-grid-empty .header,eo-grid .eo-grid-footer .footer,eo-grid .eo-grid-footer .header,eo-grid .eo-grid-header .footer,eo-grid .eo-grid-header .header{align-items:center;display:flex;flex:1;flex-direction:row;justify-content:flex-end;min-height:0;min-width:0}eo-grid .eo-grid-empty .footer>*,eo-grid .eo-grid-empty .header>*,eo-grid .eo-grid-footer .footer>*,eo-grid .eo-grid-footer .header>*,eo-grid .eo-grid-header .footer>*,eo-grid .eo-grid-header .header>*{margin:0 calc(var(--app-pane-padding)/4)}eo-grid .eo-grid-empty{border:none;height:calc(100% - var(--footer-height) - var(--header-height));top:var(--header-height)}eo-grid .eo-grid-footer{border-top:1px solid var(--panel-header-border-bottom-color);bottom:0;height:var(--footer-height)}eo-grid ag-grid-angular.ag-theme-balham{bottom:0;box-sizing:border-box;font-size:13px;position:absolute;top:0;width:100%}eo-grid ag-grid-angular.ag-theme-balham #center{overflow-x:hidden}eo-grid ag-grid-angular.ag-theme-balham.enable-footer{bottom:var(--footer-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width{top:var(--header-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-body-container,eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-center-cols-container{width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell>span{width:100%}eo-grid ag-grid-angular.ag-theme-balham.hide-header .ag-header{display:none;height:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell-menu-button .ag-icon-menu{height:30px}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell{line-height:30px;padding-left:var(--app-pane-padding);padding-right:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell:after{border-right:1px solid var(--list-item-border-color);height:100%;margin-top:0}eo-grid ag-grid-angular.ag-theme-balham .ag-header{background-color:transparent;border-bottom:1px solid var(--list-item-border-color)}eo-grid ag-grid-angular.ag-theme-balham .ag-tab-header .ag-tab.ag-tab-selected{border-bottom:2px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-menu-button{float:left}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell{-webkit-border-radius:2px;border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell .ag-column-drag{margin-top:0}eo-grid ag-grid-angular.ag-theme-balham .chip:last-of-type:after{background:transparent;background:linear-gradient(90deg,transparent 0,#fff);bottom:0;content:\" \";position:absolute;right:0;top:0;width:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-row{-moz-user-select:none;-webkit-user-select:none;background:var(--color-white);border:none;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover{background:var(--list-item-hover-background)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header .ag-header-cell:first-child:after{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-cell[col-id=__selectionField],eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-cell[col-id=__selectionField]{border:0!important;padding:0!important;width:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before{background:linear-gradient(0deg,#fff,#fff 5%,var(--color-accent) 0,var(--color-accent) 95%,#fff 0,#fff);content:\"\";height:100%;position:absolute;width:3px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before{right:0}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before{background:var(--color-primary)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before{background:linear-gradient(0deg,#fff,#fff 5%,var(--color-accent) 0,var(--color-accent) 95%,#fff 0,#fff)}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{background:var(--list-item-selected-background)!important;border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected .chip:last-of-type:after{background:transparent;background:linear-gradient(90deg,transparent 0,var(--list-item-selected-background))}eo-grid ag-grid-angular.ag-theme-balham .copy-cell{-webkit-animation-duration:4s;-webkit-animation-name:copy-cell;animation-duration:4s;animation-name:copy-cell}@-webkit-keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}@keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-range-selected{background:var(--list-item-selected-background)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell,eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus{border:1px solid;border-bottom-color:var(--list-item-border-color)!important;border-color:transparent!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus{background-color:var(--list-item-hover-background);outline:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus[col-id=__custom]{background-color:transparent}eo-grid ag-grid-angular.ag-theme-balham .ag-cell{-moz-user-select:none;-webkit-user-select:none;align-items:center;display:flex;font-size:var(--font-body);line-height:1.7em;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell svg{pointer-events:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.ag-cell-value{text-overflow:ellipsis;white-space:nowrap}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a{color:var(--text-color-accent);text-decoration:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link{color:var(--text-color-body)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link:hover{color:var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a:hover{text-decoration:underline}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-boolean,eo-grid ag-grid-angular.ag-theme-balham .ag-cell.res-ico{justify-content:center}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-number{justify-content:flex-end}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type{height:24px;opacity:.5;vertical-align:bottom;width:24px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type-label{padding:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.06);border-color:rgba(var(--color-black-rgb),0);border-radius:2px;color:var(--text-color-caption);margin:0!important;padding:4px var(--app-pane-padding);white-space:nowrap;width:100%}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:hover{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-select[ref=eOptions2],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-select[ref=eOptions2]{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.06);border-color:rgba(var(--color-black-rgb),0);border-radius:2px;color:var(--text-color-caption);height:20px;padding:0;width:20px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:hover{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled eo-icon,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled eo-icon{height:var(--app-pane-padding);width:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input{-moz-user-select:all;-webkit-user-select:all;border:0!important;border-bottom:1px solid!important;border-bottom-color:rgba(var(--color-black-rgb),.1)!important;font-family:inherit;height:2em;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)!important;user-select:all;width:100%}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input:focus{border-bottom-color:var(--color-accent)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z%22%2F%3E%3C%2Fsvg%3E\") no-repeat;background-position-x:right;background-position-y:center;background-size:var(--app-pane-padding);border:none;border-bottom:1px solid rgba(var(--color-black-rgb),.1);font-family:inherit;height:2em;outline:none;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{background-position-x:right;none:left}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{background-position-x:left;none:right}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select:focus{border-bottom:1px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-list-filter,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-list-filter{display:block;padding-left:calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom{display:block;margin:0 calc(var(--app-pane-padding)/4)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization{margin-top:calc(var(--app-pane-padding)/4);position:relative}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{position:absolute;top:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{right:0}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{left:0}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization .ui-autocomplete-panel{position:relative;top:3px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container{border:none;flex-flow:column}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token{margin:2px calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token{padding:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button{right:8px}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button{left:8px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-group-cell>svg.checkbox{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-cell,eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-cell{padding:0 var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-label{text-align:right}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell.contextfolder .ag-header-cell-text:before{-webkit-border-radius:2px;background:var(--color-primary-3);border-radius:2px;color:var(--color-white);content:\"*\";display:inline-block;line-height:14px;padding:0 calc(var(--app-pane-padding)/4)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-left:calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-right:calc(var(--app-pane-padding)/2)}eo-grid ag-grid-angular.ag-theme-balham .ag-group-value{vertical-align:middle}"]
|
|
393
367
|
},] }
|
|
394
368
|
];
|
|
395
369
|
GridComponent.ctorParameters = () => [
|
|
@@ -419,4 +393,4 @@ GridComponent.propDecorators = {
|
|
|
419
393
|
gridOptions: [{ type: Input }],
|
|
420
394
|
copyCellHandler: [{ type: HostListener, args: ['keydown.control.alt.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.alt.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.c', ['$event'],] }]
|
|
421
395
|
};
|
|
422
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxXQUFXLEVBQVUsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FB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QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQTFiRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLHE1Q0FBb0M7Z0JBRXBDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBbEI0QixnQkFBZ0I7WUFBckMsV0FBVztZQUNYLFdBQVc7WUFJWCxNQUFNO1lBRk4scUJBQXFCOzs7cUJBZ0QxQixTQUFTLFNBQUMsUUFBUTtpQ0FFbEIsTUFBTTtxQ0FDTixNQUFNO2lDQUNOLE1BQU07OEJBQ04sTUFBTTtnQ0FDTixNQUFNO3FDQUNOLE1BQU07a0NBQ04sTUFBTTswQkFNTixLQUFLOzZCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBU0wsS0FBSzs4QkFvQkwsWUFBWSxTQUFDLDZCQUE2QixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQ3RELFlBQVksU0FBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUNsRCxZQUFZLFNBQUMsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDaEQsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbERlZiwgR3JpZEFwaSwgR3JpZE9wdGlvbnMsIENvbHVtbiwgTW9kdWxlLCBSb3dOb2RlLCBDZWxsUG9zaXRpb259IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcclxuaW1wb3J0IHtDbGllbnRTaWRlUm93TW9kZWxNb2R1bGV9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jbGllbnQtc2lkZS1yb3ctbW9kZWwnO1xyXG5pbXBvcnQge1Jvd0dyb3VwaW5nTW9kdWxlfSBmcm9tICcuL3Jvdy1ncm91cGluZy9yb3ctZ3JvdXBpbmcubW9kdWxlJztcclxuXHJcbmltcG9ydCB7VXNlclNlcnZpY2UsIEVvVXNlciwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XHJcbmltcG9ydCB7SUxvYWRlcn0gZnJvbSAnLi9sb2FkZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XHJcbmltcG9ydCB7VW5zdWJzY3JpYmVPbkRlc3Ryb3l9IGZyb20gJy4uL3V0aWwvdW5zdWJzY3JpYmUvdW5zdWJzY3JpYmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7RGF0ZXRpbWVGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9kYXRldGltZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtPcmdhbml6YXRpb25GaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9vcmdhbml6YXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q29kZXN5c3RlbUZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXJzL2NvZGVzeXN0ZW0tZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RHluYW1pY0xpc3RGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9keW5hbWljLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TGlzdEZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXJzL2xpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmlkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZENvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIG1vZHVsZXM6IE1vZHVsZVtdID0gW0NsaWVudFNpZGVSb3dNb2RlbE1vZHVsZSwgUm93R3JvdXBpbmdNb2R1bGVdO1xyXG5cclxuICBvdmVybGF5TG9hZGluZ1RlbXBsYXRlOiBzdHJpbmc7XHJcbiAgZnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcclxuICAgIGFnRGF0ZUlucHV0OiBEYXRldGltZUZpbHRlckNvbXBvbmVudCxcclxuICAgIE9yZ2FuaXphdGlvbkZpbHRlckNvbXBvbmVudDogT3JnYW5pemF0aW9uRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgQ29kZXN5c3RlbUZpbHRlckNvbXBvbmVudDogQ29kZXN5c3RlbUZpbHRlckNvbXBvbmVudCxcclxuICAgIER5bmFtaWNMaXN0RmlsdGVyQ29tcG9uZW50OiBEeW5hbWljTGlzdEZpbHRlckNvbXBvbmVudCxcclxuICAgIExpc3RGaWx0ZXJDb21wb25lbnQ6IExpc3RGaWx0ZXJDb21wb25lbnRcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9ncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XHJcbiAgcHJpdmF0ZSBfb3B0aW9uczogYW55ID0ge307XHJcbiAgcHJpdmF0ZSBfZ3JpZENvdW50OiBhbnkgPSB7fTtcclxuICBwcml2YXRlIHBpbm5lZENvbHVtbjogQ29sRGVmID0ge1xyXG4gICAgaGVhZGVyTmFtZTogJycsXHJcbiAgICBmaWx0ZXI6IGZhbHNlLFxyXG4gICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgcmVzaXphYmxlOiBmYWxzZSxcclxuICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcclxuICAgIHN1cHByZXNzTW92YWJsZTogdHJ1ZSxcclxuICAgIHN1cHByZXNzTmF2aWdhYmxlOiB0cnVlLFxyXG4gICAgc3VwcHJlc3NQYXN0ZTogdHJ1ZSxcclxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiB0cnVlLFxyXG4gICAgcGlubmVkOiAnbGVmdCcsXHJcbiAgICB3aWR0aDogMSxcclxuICAgIGZpZWxkOiAnX19zZWxlY3Rpb25GaWVsZCcsXHJcbiAgICB2YWx1ZUdldHRlcjogKCkgPT4gJydcclxuICB9O1xyXG5cclxuICBAVmlld0NoaWxkKCdhZ0dyaWQnKSBhZ0dyaWQ7XHJcblxyXG4gIEBPdXRwdXQoKSBlb0dyaWRDb3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBlb0dyaWRGb2N1c0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZW9HcmlkQ2VsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGVvR3JpZERvdWJsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGVvR3JpZENvbnRleHRNZW51Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZW9HcmlkQ29sdW1uUmVzaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIGNvbFJlc2l6ZURlYm91bmNlciA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVEZWJvdW5jZXIgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgZm9jdXNlZFJvd0lEID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdEZpcnN0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWxlY3Rpb25MaW1pdDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNpemVUb0ZpdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZ1bGxXaWR0aCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Rm9vdGVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9hZGVyQ29udGVudDogSUxvYWRlciA9IHtzaG93OiBmYWxzZSwgaW1hZ2U6IG51bGwsIHRleHQ6IG51bGx9O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogYW55KSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBvcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBncmlkT3B0aW9ucyhncmlkT3B0aW9uczogR3JpZE9wdGlvbnMpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZ3JpZE9wdGlvbnMsIGdyaWRPcHRpb25zLCB7XHJcbiAgICAgIGNvbnRleHQ6IE9iamVjdC5hc3NpZ24odGhpcy5fZ3JpZE9wdGlvbnMuY29udGV4dCwgZ3JpZE9wdGlvbnMuY29udGV4dCksXHJcbiAgICAgIGNvbHVtbkRlZnM6IGdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPyBbdGhpcy5waW5uZWRDb2x1bW5dLmNvbmNhdChncmlkT3B0aW9ucy5jb2x1bW5EZWZzKSA6IG51bGxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdyaWRPcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dyaWRPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRleHRDb3VudCgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID09PSAnbnVtYmVyJyA/IHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA6IHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBjb250ZXh0UmVsYXRpb24oKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9PT0gJ251bWJlcicgPyAnZXEnIDogdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50LnJlbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5jb250cm9sLmFsdC5zaGlmdC5jJywgWyckZXZlbnQnXSlcclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuc2hpZnQuYycsIFsnJGV2ZW50J10pXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5jb250cm9sLmFsdC5jJywgWyckZXZlbnQnXSlcclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuYycsIFsnJGV2ZW50J10pXHJcbiAgY29weUNlbGxIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmNvcHlUb0NsaXBib2FyZChldmVudCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsIHB1YmxpYyBncmlkQXBpOiBHcmlkU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICB0aGlzLl9ncmlkT3B0aW9ucyA9IDxHcmlkT3B0aW9ucz57XHJcbiAgICAgIGNvbnRleHQ6IGdyaWRBcGkuZ2V0Q29udGV4dCgpLFxyXG4gICAgICBhbmltYXRlUm93czogdHJ1ZSxcclxuICAgICAgaGVhZGVySGVpZ2h0OiAzMCxcclxuICAgICAgcm93SGVpZ2h0OiA0OCxcclxuICAgICAgcm93QnVmZmVyOiAyMCxcclxuICAgICAgcm93U2VsZWN0aW9uOiAnbXVsdGlwbGUnLFxyXG4gICAgICByb3dEZXNlbGVjdGlvbjogdHJ1ZSxcclxuICAgICAgbXVsdGlTb3J0S2V5OiAnY3RybCcsXHJcbiAgICAgIGFjY2VudGVkU29ydDogdHJ1ZSxcclxuICAgICAgc3VwcHJlc3NDb250ZXh0TWVudTogdHJ1ZSxcclxuICAgICAgb3ZlcmxheUxvYWRpbmdUZW1wbGF0ZTogJyAnLFxyXG4gICAgICBvdmVybGF5Tm9Sb3dzVGVtcGxhdGU6ICcgJyxcclxuICAgICAgZ2V0Um93Tm9kZUlkOiAoZGF0YSkgPT4gZGF0YS5pZCB8fCBkYXRhLFxyXG4gICAgICBsb2NhbGVUZXh0RnVuYzogKGtleSwgZGVmYXVsdFZhbHVlKSA9PiB7XHJcbiAgICAgICAgbGV0IGdyaWRLZXkgPSAnZW8ucmVzdWx0bGlzdC5ncmlkLicgKyBrZXk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdHJhbnNsYXRlLmluc3RhbnQoZ3JpZEtleSk7XHJcbiAgICAgICAgcmV0dXJuIH52YWx1ZS5pbmRleE9mKGdyaWRLZXkpID8gZGVmYXVsdFZhbHVlIDogdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5sb2FkaW5nTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5nZXRVc2VyKCk7XHJcblxyXG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy50YXNrcyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRhc2tzID0+ICh0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzQ2VsbFNlbGVjdGlvbiA9ICEhdGFza3MubGVuZ3RoKSk7XHJcblxyXG4gICAgdGhpcy5jb2xSZXNpemVEZWJvdW5jZXIucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKDEwMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKGNvbCA9PiB0aGlzLmVvR3JpZENvbHVtblJlc2l6ZWQuZW1pdChjb2wpKTtcclxuXHJcbiAgICB0aGlzLmNhbGN1bGF0ZURlYm91bmNlci5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNhbGN1bGF0ZVJvd0NvdW50KCkpO1xyXG4gIH1cclxuXHJcbiAgbG9hZGluZ01lc3NhZ2UoKSB7XHJcbiAgICBsZXQgbG9hZGVyQ29udGVudCA9ICcnO1xyXG5cclxuICAgIGlmICh0aGlzLmxvYWRlckNvbnRlbnQuc2hvdykge1xyXG4gICAgICBpZiAodGhpcy5sb2FkZXJDb250ZW50LmltYWdlKSB7XHJcbiAgICAgICAgbG9hZGVyQ29udGVudCA9IGA8c3BhbiBjbGFzcz1cImFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXJcIj48aW1nIFtzcmNdPVwiJHt0aGlzLmxvYWRlckNvbnRlbnQuaW1hZ2V9XCIgYWx0PVwibG9hZGVyIGltYWdlXCI+PC9zcGFuPmA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbG9hZGVyQ29udGVudCA9IGA8c3BhbiBjbGFzcz1cImFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXJcIj4ke3RoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5sb2FkZXJDb250ZW50LnRleHQpfTwvc3Bhbj5gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm92ZXJsYXlMb2FkaW5nVGVtcGxhdGUgPSBsb2FkZXJDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVc2VyKCkge1xyXG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyJC5zdWJzY3JpYmUoKHVzZXI6IEVvVXNlcikgPT4ge1xyXG4gICAgICAodGhpcy5ncmlkT3B0aW9ucyB8fCB0aGlzLl9ncmlkT3B0aW9ucykuZW5hYmxlUnRsID0gKHVzZXIudWlEaXJlY3Rpb24gPT09ICdydGwnKTtcclxuICAgICAgdGhpcy5waW5uZWRDb2x1bW4ucGlubmVkID0gKHVzZXIudWlEaXJlY3Rpb24gPT09ICdydGwnKSA/ICdyaWdodCcgOiAnbGVmdCc7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlUm93Q291bnQoKSB7XHJcbiAgICBsZXQgcm93Q291bnQgPSAwO1xyXG4gICAgbGV0IHRvdGFsQ291bnQgPSB0aGlzLmNvbnRleHRDb3VudDtcclxuICAgIGxldCByb3dJbmRleCA9IHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dJbmRleDtcclxuICAgIGxldCBzZWxlY3Rpb24gPSB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQuc2VsZWN0aW9uO1xyXG5cclxuICAgIGlmICh0aGlzLmFwaSAmJiB0aGlzLmdyaWRPcHRpb25zLnJvd0RhdGEpIHtcclxuICAgICAgdGhpcy5hcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlcihuID0+IG4uZ3JvdXAgfHwgcm93Q291bnQrKyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByb3dDb3VudCA9IHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCB8fCAwO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0Rmlyc3QgJiYgIXRoaXMuYXBpLmdldEZvY3VzZWRDZWxsKCkgJiYgKHJvd0luZGV4ICE9PSBudWxsIHx8ICF0aGlzLmZvY3VzZWRSb3dJRCkpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdFJvdyhyb3dJbmRleCB8fCAwLCBzZWxlY3Rpb24pLCAyMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZ3JpZENvdW50ID0ge3RvdGFsQ291bnQsIHJvd0NvdW50LCByZWxhdGlvbjogdGhpcy5jb250ZXh0UmVsYXRpb259O1xyXG4gICAgdGhpcy5lb0dyaWRDb3VudENoYW5nZWQuZW1pdCh0aGlzLl9ncmlkQ291bnQpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRm9jdXMoaWQgPSB0aGlzLmZvY3VzZWRSb3dJRCkge1xyXG4gICAgY29uc3QgY2VsbCA9IHRoaXMuYXBpLmdldEZvY3VzZWRDZWxsKCk7XHJcbiAgICBjb25zdCByb3c6IFJvd05vZGUgPSB0aGlzLmFwaS5nZXRSb3dOb2RlKGlkKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLmZpbHRlckFjdGl2ZSAmJiAoY2VsbCAmJiBjZWxsLnJvd0luZGV4KSAhPT0gKHJvdyAmJiByb3cucm93SW5kZXgpKSB7XHJcbiAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICB0aGlzLmFwaS5zZXRGb2N1c2VkQ2VsbChyb3cucm93SW5kZXgsICh0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnNbMV0gYXMgQ29sRGVmKS5maWVsZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hcGkuY2xlYXJGb2N1c2VkQ2VsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNlbGxDbGlja2VkKCRldmVudCkge1xyXG5cclxuICAgIGlmICgkZXZlbnQucm93SW5kZXggIT09IG51bGwpIHtcclxuICAgICAgaWYgKCEkZXZlbnQubm9kZS5ncm91cCAmJiAkZXZlbnQuZGF0YSkge1xyXG4gICAgICAgIGlmICgkZXZlbnQuY29sRGVmLmNlbGxDbGFzcyA9PT0gJ3JvdXRlci1saW5rLWNlbGwnKSB7XHJcbiAgICAgICAgICB0aGlzLmdyaWRBcGkub3BlblJvdXRlckxpbmsoJGV2ZW50LmV2ZW50LCAnYWctcm93Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVvR3JpZENlbGxDbGljay5lbWl0KCRldmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2VsbERvdWJsZUNsaWNrZWQoJGV2ZW50KSB7XHJcblxyXG4gICAgaWYgKCRldmVudC5yb3dJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoISRldmVudC5ub2RlLmdyb3VwICYmICRldmVudC5kYXRhKSB7XHJcbiAgICAgICAgdGhpcy5lb0dyaWREb3VibGVDbGljay5lbWl0KCRldmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW91c2VEb3duKCRldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5ncmlkT3B0aW9ucy5zdXBwcmVzc0NlbGxTZWxlY3Rpb24pIHtcclxuICAgICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzQ2VsbFNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIGxldCByb3dJbmRleCA9IHRoaXMuZ3JpZEFwaS5nZXRSb3dJbmRleCgkZXZlbnQudGFyZ2V0LCAnYWctYm9keScpO1xyXG4gICAgICAgIGlmIChyb3dJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgLy9zZWxlY3Qgcm93IG9ubHkgb24gbGVmdCBjbGlja1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RSb3cocm93SW5kZXgsICRldmVudC5idXR0b24gPT09IDAgPyBudWxsIDogW10sICEkZXZlbnQuY3RybEtleSk7XHJcbiAgICAgICAgICBpZiAoJGV2ZW50LmJ1dHRvbiA9PT0gMikge1xyXG4gICAgICAgICAgICAvL29wZW4gY29udGV4dCBtZW51IG9uIHJpZ2h0IGNsaWNrXHJcbiAgICAgICAgICAgIGxldCBub2RlID0gdGhpcy5hcGkuZ2V0TW9kZWwoKS5nZXRSb3cocm93SW5kZXgpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ29udGV4dE1lbnVDbGlja2VkKHtyb3dJbmRleCwgbm9kZSwgZGF0YTogbm9kZS5kYXRhfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DZWxsRm9jdXNlZCgkZXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzQ2VsbFNlbGVjdGlvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVGb2N1cygpO1xyXG4gICAgfVxyXG4gICAgaWYgKCRldmVudC5yb3dJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAkZXZlbnQuZm9jdXNlZE5vZGUgPSB0aGlzLmFwaS5nZXRNb2RlbCgpLmdldFJvdygkZXZlbnQucm93SW5kZXgpO1xyXG4gICAgICBpZiAoJGV2ZW50LmZvY3VzZWROb2RlICYmICEkZXZlbnQuZm9jdXNlZE5vZGUuZ3JvdXAgJiYgJGV2ZW50LmZvY3VzZWROb2RlLmRhdGEpIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWRSb3dJRCA9ICRldmVudC5mb2N1c2VkTm9kZS5pZDtcclxuICAgICAgICB0aGlzLmVvR3JpZEZvY3VzQ2hhbmdlZC5lbWl0KCRldmVudC5mb2N1c2VkTm9kZS5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Db250ZXh0TWVudUNsaWNrZWQoJGV2ZW50KSB7XHJcbiAgICBpZiAoJGV2ZW50LnJvd0luZGV4ICE9PSBudWxsICYmICEkZXZlbnQubm9kZS5ncm91cCAmJiAkZXZlbnQuZGF0YSkge1xyXG4gICAgICBsZXQgc2VsZWN0ZWROb2RlcyA9IHRoaXMuYXBpLmdldFNlbGVjdGVkTm9kZXMoKS5tYXAobiA9PiBuLmRhdGEpLmZpbHRlcihkID0+IGQpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWROb2Rlcy5sZW5ndGggJiYgc2VsZWN0ZWROb2Rlcy5zb21lKG4gPT4gbi5pZCA9PT0gJGV2ZW50LmRhdGEuaWQpKSB7XHJcbiAgICAgICAgdGhpcy5lb0dyaWRDb250ZXh0TWVudUNsaWNrLmVtaXQoc2VsZWN0ZWROb2Rlcyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lb0dyaWRDb250ZXh0TWVudUNsaWNrLmVtaXQoWyRldmVudC5kYXRhXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpIHtcclxuICAgIGxldCBzZWxlY3RlZE5vZGVzID0gdGhpcy5hcGkuZ2V0U2VsZWN0ZWROb2RlcygpLm1hcChuID0+IG4uZGF0YSkuZmlsdGVyKGQgPT4gZCk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25MaW1pdCAmJiBzZWxlY3RlZE5vZGVzLmxlbmd0aCA+IHRoaXMuc2VsZWN0aW9uTGltaXQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RSb3codGhpcy5hcGkuZ2V0Rm9jdXNlZENlbGwoKS5yb3dJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVvR3JpZFNlbGVjdGlvbkNoYW5nZWQuZW1pdChzZWxlY3RlZE5vZGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ29sdW1uUmVzaXplZCgkZXZlbnQpIHtcclxuICAgIGlmICgkZXZlbnQuY29sdW1uKSB7XHJcbiAgICAgIHRoaXMuY29sUmVzaXplRGVib3VuY2VyLm5leHQoJGV2ZW50LmNvbHVtbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1vZGVsVXBkYXRlZCgpIHtcclxuICAgIHRoaXMuY2FsY3VsYXRlRGVib3VuY2VyLm5leHQoe30pO1xyXG4gIH1cclxuXHJcbiAgb25SZWFkeSgpIHtcclxuICAgIGlmICh0aGlzLnNpemVUb0ZpdCkge1xyXG4gICAgICB0aGlzLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblF1aWNrRmlsdGVyQ2hhbmdlZCgkZXZlbnQpIHtcclxuICAgIHRoaXMuYXBpLnNldFF1aWNrRmlsdGVyKCRldmVudC50YXJnZXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Um93KHJvdzogYW55LCBzZWxlY3Rpb24/OiBudW1iZXJbXSwgY2xlYXJTZWxlY3Rpb24gPSB0cnVlLCBwb3NpdGlvbiA9IG51bGwpIHtcclxuICAgIGlmICghdGhpcy5hcGkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJvd05vZGUgPSB0eXBlb2Ygcm93ID09PSAnbnVtYmVyJyA/IHRoaXMuYXBpLmdldE1vZGVsKCkuZ2V0Um93KHJvdykgOiB0aGlzLmFwaS5nZXRSb3dOb2RlKHRoaXMuZ3JpZE9wdGlvbnMuZ2V0Um93Tm9kZUlkKHJvdykpO1xyXG4gICAgbGV0IGluZGV4ID0gcm93Tm9kZSA/IHJvd05vZGUucm93SW5kZXggOiAwO1xyXG5cclxuICAgIGlmIChyb3dOb2RlICYmIHJvd05vZGUuZGF0YSkge1xyXG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XHJcbiAgICAgICAgc2VsZWN0aW9uLmZvckVhY2goKHJvd0luZGV4LCBpKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFwaS5nZXRNb2RlbCgpLmdldFJvdyhyb3dJbmRleCkuc2V0U2VsZWN0ZWQodHJ1ZSwgaSA9PT0gMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LnNlbGVjdGlvbiA9IG51bGw7IC8vcmVzZXQgaW5pdGlhbCBzZWxlY3Rpb25cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByb3dOb2RlLnNldFNlbGVjdGVkKHRydWUsIGNsZWFyU2VsZWN0aW9uKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hcGkuc2V0Rm9jdXNlZENlbGwoaW5kZXgsICh0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnNbMV0gYXMgQ29sRGVmKS5maWVsZCk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG9Sb3coaW5kZXgsIHBvc2l0aW9uKTtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0luZGV4ID0gbnVsbDsgLy9yZXNldCBpbml0aWFsIHJvd0luZGV4XHJcbiAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCAmJiB0aGlzLmNvbnRleHRDb3VudCkge1xyXG4gICAgICB0aGlzLnNlbGVjdFJvdygtLWluZGV4LCBzZWxlY3Rpb24sIGNsZWFyU2VsZWN0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXBpLmNsZWFyRm9jdXNlZENlbGwoKTtcclxuICAgICAgdGhpcy5lb0dyaWRGb2N1c0NoYW5nZWQuZW1pdChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFRvUm93KGluZGV4PzogbnVtYmVyLCBwb3NpdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuYXBpLmVuc3VyZUluZGV4VmlzaWJsZShpbmRleCA9PT0gdW5kZWZpbmVkID8gKHRoaXMuYXBpLmdldEZvY3VzZWRDZWxsKCkgPyB0aGlzLmFwaS5nZXRGb2N1c2VkQ2VsbCgpLnJvd0luZGV4IDogMCkgOiBpbmRleCwgcG9zaXRpb24pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Um93QnlJZChpZCwgcG9zaXRpb24gPSAnJykge1xyXG4gICAgY29uc3Qgcm93Tm9kZUlkID0gdGhpcy5ncmlkT3B0aW9ucy5nZXRSb3dOb2RlSWQoaWQpO1xyXG4gICAgY29uc3Qgcm93Tm9kZSA9IHRoaXMuYXBpLmdldFJvd05vZGUocm93Tm9kZUlkKTtcclxuICAgIGlmIChyb3dOb2RlKSB7XHJcbiAgICAgIHJvd05vZGUuc2V0U2VsZWN0ZWQodHJ1ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0Um93KHJvd05vZGUucm93SW5kZXgsIFtdLCB0cnVlLCBwb3NpdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb2x1bW5EZWZzKGNvbHVtbkRlZnM6IENvbERlZltdKSB7XHJcbiAgICB0aGlzLmFwaS5zZXRDb2x1bW5EZWZzKGNvbHVtbkRlZnMgPyBbdGhpcy5waW5uZWRDb2x1bW5dLmNvbmNhdChjb2x1bW5EZWZzKSA6IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um93RGF0YShkYXRhOiBhbnlbXSA9IFtdLCByb3c/OiBhbnkpIHtcclxuICAgIHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IGRhdGEubGVuZ3RoO1xyXG4gICAgdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0luZGV4ID0gcm93O1xyXG4gICAgdGhpcy5hcGkuY2xlYXJGb2N1c2VkQ2VsbCgpO1xyXG4gICAgdGhpcy5hcGkuc2V0Um93RGF0YShkYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvY2Vzc1NvZnREYXRhKGRhdGE6IGFueVtdID0gW10pIHtcclxuICAgIGxldCByZW1vdmUgPSBkYXRhLmZpbHRlcihpID0+IGkuX19yZW1vdmVkKS5tYXAoaSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBpLl9fcmVtb3ZlZDtcclxuICAgICAgcmV0dXJuIGk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgdXBkYXRlID0gZGF0YS5maWx0ZXIoaSA9PiBpLl9fdXBkYXRlZCkubWFwKGkgPT4ge1xyXG4gICAgICBkZWxldGUgaS5fX3VwZGF0ZWQ7XHJcbiAgICAgIHJldHVybiBpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gZmluYWxseSByZW1vdmUgaXRlbXMgZnJvbSBhcnJheVxyXG4gICAgcmVtb3ZlLmZvckVhY2goaSA9PiBkYXRhLnNwbGljZShkYXRhLmluZGV4T2YoaSksIDEpKTtcclxuXHJcbiAgICBsZXQgYXBwbHlVcGRhdGUgPSByZW1vdmUubGVuZ3RoIHx8IHVwZGF0ZS5sZW5ndGg7XHJcblxyXG4gICAgcmV0dXJuIHthcHBseVVwZGF0ZSwgcmVtb3ZlLCB1cGRhdGV9O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUm93RGF0YShkYXRhOiBhbnlbXSA9IFtdLCByb3c/OiBhbnksIHNlbGVjdGlvbj86IG51bWJlcltdKSB7XHJcblxyXG4gICAgbGV0IHthcHBseVVwZGF0ZSwgcmVtb3ZlLCB1cGRhdGV9ID0gdGhpcy5wcm9jZXNzU29mdERhdGEoZGF0YSk7XHJcbiAgICBpZiAoIWFwcGx5VXBkYXRlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNldFJvd0RhdGEoZGF0YSwgcm93KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSBkYXRhLmxlbmd0aDtcclxuICAgIGxldCBsYXN0Rm9jdXNlZENlbGw6IENlbGxQb3NpdGlvbiA9IHRoaXMuYXBpLmdldEZvY3VzZWRDZWxsKCk7XHJcbiAgICB0aGlzLmFwaS51cGRhdGVSb3dEYXRhKHtyZW1vdmUsIHVwZGF0ZX0pO1xyXG4gICAgdGhpcy5hcGkucmVkcmF3Um93cygpO1xyXG4gICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RSb3coIGxhc3RGb2N1c2VkQ2VsbCA/IGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCA6IChyb3cgfHwgMCksIHNlbGVjdGlvbik7XHJcbiAgICB9LCB0aGlzLmNvbnRleHRDb3VudCA/IDUwMCA6IDApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUm93cyhkYXRhOiBhbnlbXSA9IFtdKSB7XHJcblxyXG4gICAgbGV0IHthcHBseVVwZGF0ZSwgcmVtb3ZlLCB1cGRhdGV9ID0gdGhpcy5wcm9jZXNzU29mdERhdGEoZGF0YSk7XHJcbiAgICBpZiAoIWFwcGx5VXBkYXRlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSB0aGlzLmNvbnRleHRDb3VudCAtIHJlbW92ZS5sZW5ndGg7XHJcbiAgICBsZXQgbGFzdEZvY3VzZWRJbmRleCA9IHRoaXMuYXBpLmdldEZvY3VzZWRDZWxsKCkgPyB0aGlzLmFwaS5nZXRGb2N1c2VkQ2VsbCgpLnJvd0luZGV4IDogMDtcclxuXHJcbiAgICB0aGlzLmFwaS51cGRhdGVSb3dEYXRhKHtyZW1vdmUsIHVwZGF0ZX0pO1xyXG5cclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0Um93KGxhc3RGb2N1c2VkSW5kZXgpO1xyXG4gICAgfSwgdGhpcy5jb250ZXh0Q291bnQgPyA1MDAgOiAwKTtcclxuICB9XHJcblxyXG4gICAvLyBjb3B5IGNvbnRlbnQgb2YgZWl0aGVyIHJvdyBvciB0YWJsZSBjZWxsIHRvIGNsaXBib2FyZFxyXG4gICBwcml2YXRlIGNvcHlUb0NsaXBib2FyZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGxldCBjb250ZW50ID0gJyc7XHJcbiAgICBjb25zdCBncmlkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYWctZ3JpZC1hbmd1bGFyJyk7IC8vIHRvZG86IHJlZmFjdG9yaW5nXHJcbiAgICBjb25zdCBmb2N1c2VkQ2VsbCA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldEZvY3VzZWRDZWxsKCk7XHJcbiAgICBjb25zdCByb3dzOiBSb3dOb2RlW10gPSBldmVudC5zaGlmdEtleSA/IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkTm9kZXMoKSA6IFt0aGlzLmdyaWRPcHRpb25zLmFwaS5nZXREaXNwbGF5ZWRSb3dBdEluZGV4KGZvY3VzZWRDZWxsLnJvd0luZGV4KV07XHJcbiAgICBjb25zdCBjb2xzOiBDb2x1bW5bXSA9IGV2ZW50LnNoaWZ0S2V5ID8gdGhpcy5ncmlkT3B0aW9ucy5jb2x1bW5BcGkuZ2V0QWxsRGlzcGxheWVkQ29sdW1ucygpIDogW2ZvY3VzZWRDZWxsLmNvbHVtbl07XHJcbiAgICBjb25zdCB2YWx1ZSA9IChjb2wsIHJvdykgPT4ge1xyXG4gICAgICBjb25zdCBjZWxsID0gZ3JpZC5xdWVyeVNlbGVjdG9yKGBkaXZbcm93LWluZGV4PVwiJHtyb3cucm93SW5kZXh9XCJdIFtjb2wtaWQ9XCIke2NvbC5jb2xJZH1cIl1gKTtcclxuICAgICAgY29uc3QgY2hpcHMgPSBjZWxsPy5xdWVyeVNlbGVjdG9yQWxsKCcuY2hpcCcpO1xyXG4gICAgICBjb25zdCB2YWwgPSBjZWxsICYmIEFycmF5LmZyb20oY2hpcHM/Lmxlbmd0aCA/IGNoaXBzIDogW2NlbGxdKS5tYXAoKGMpID0+IGMudGV4dENvbnRlbnQgfHwgJycpO1xyXG4gICAgICByZXR1cm4gKHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbCA/ICcnIDogdmFsKS50b1N0cmluZygpLnJlcGxhY2UoL1xcbi9nLCAnICcpO1xyXG4gICAgfTtcclxuICAgIC8vIGNvbnN0IHZhbHVlID0gKGNvbCwgcm93KSA9PiAodGhpcy5ncmlkT3B0aW9ucy5hcGkuZ2V0VmFsdWUoY29sLCByb3cpIHx8ICcnKS50b1N0cmluZygpLnJlcGxhY2UoL1xcbi9nLCAnICcpO1xyXG4gICAgaWYgKGV2ZW50LmFsdEtleSkgY29udGVudCArPSBjb2xzLm1hcCgoY29sOiBDb2x1bW4pID0+IGNvbC5nZXRDb2xEZWYoKS5oZWFkZXJOYW1lKS5qb2luKCdcdCcpICsgJ1xcbic7XHJcbiAgICBjb250ZW50ICs9IHJvd3MubWFwKChyb3cpID0+IGNvbHMubWFwKChjb2w6IENvbHVtbikgPT4gdmFsdWUoY29sLCByb3cpKS5qb2luKCdcdCcpKS5qb2luKCdcXG4nKTtcclxuXHJcbiAgICBjb25zdCB0ZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XHJcbiAgICB0ZXh0QXJlYS52YWx1ZSA9IGNvbnRlbnQ7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKTtcclxuICAgIHRleHRBcmVhLnNlbGVjdCgpO1xyXG4gICAgY29uc3QgY29weVN1Y2Nlc3MgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgfVxyXG5cclxuICBnZXQgY29sdW1ucygpOiBDb2x1bW5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5ncmlkT3B0aW9ucy5jb2x1bW5BcGkuZ2V0QWxsR3JpZENvbHVtbnMoKS5maWx0ZXIoYyA9PiBjLmdldENvbElkKCkgIT09IHRoaXMucGlubmVkQ29sdW1uLmZpZWxkKTtcclxuICB9XHJcblxyXG4gIGdldCBhcGkoKTogR3JpZEFwaSB7XHJcbiAgICByZXR1cm4gdGhpcy5ncmlkT3B0aW9ucy5hcGk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNSZWFkeSgpIHtcclxuICAgIHJldHVybiAhIXRoaXMuYXBpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRW1wdHkoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuX2dyaWRDb3VudC50b3RhbENvdW50ICYmICghdGhpcy5hcGkgfHwgIU9iamVjdC5rZXlzKHRoaXMuYXBpLmdldEZpbHRlck1vZGVsKCkpLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNFbXB0eVJvd3MoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuX2dyaWRDb3VudC5yb3dDb3VudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWZyZXNoVmlldygpIHtcclxuICAgIHRoaXMuYXBpLnJlZnJlc2hWaWV3KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
396
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxXQUFXLEVBQVUsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FB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QUMsTUFBTSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQTlaRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLHE1Q0FBb0M7Z0JBRXBDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBbEI0QixnQkFBZ0I7WUFBckMsV0FBVztZQUNYLFdBQVc7WUFJWCxNQUFNO1lBRk4scUJBQXFCOzs7cUJBZ0QxQixTQUFTLFNBQUMsUUFBUTtpQ0FFbEIsTUFBTTtxQ0FDTixNQUFNO2lDQUNOLE1BQU07OEJBQ04sTUFBTTtnQ0FDTixNQUFNO3FDQUNOLE1BQU07a0NBQ04sTUFBTTswQkFNTixLQUFLOzZCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBU0wsS0FBSzs4QkFvQkwsWUFBWSxTQUFDLDZCQUE2QixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQ3RELFlBQVksU0FBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUNsRCxZQUFZLFNBQUMsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDaEQsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbERlZiwgR3JpZEFwaSwgR3JpZE9wdGlvbnMsIENvbHVtbiwgTW9kdWxlLCBSb3dOb2RlLCBDZWxsUG9zaXRpb259IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcclxuaW1wb3J0IHtDbGllbnRTaWRlUm93TW9kZWxNb2R1bGV9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jbGllbnQtc2lkZS1yb3ctbW9kZWwnO1xyXG5pbXBvcnQge1Jvd0dyb3VwaW5nTW9kdWxlfSBmcm9tICcuL3Jvdy1ncm91cGluZy9yb3ctZ3JvdXBpbmcubW9kdWxlJztcclxuXHJcbmltcG9ydCB7VXNlclNlcnZpY2UsIEVvVXNlciwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XHJcbmltcG9ydCB7SUxvYWRlcn0gZnJvbSAnLi9sb2FkZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XHJcbmltcG9ydCB7VW5zdWJzY3JpYmVPbkRlc3Ryb3l9IGZyb20gJy4uL3V0aWwvdW5zdWJzY3JpYmUvdW5zdWJzY3JpYmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7RGF0ZXRpbWVGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9kYXRldGltZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtPcmdhbml6YXRpb25GaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9vcmdhbml6YXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q29kZXN5c3RlbUZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXJzL2NvZGVzeXN0ZW0tZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RHluYW1pY0xpc3RGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9keW5hbWljLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TGlzdEZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXJzL2xpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmlkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZENvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIG1vZHVsZXM6IE1vZHVsZVtdID0gW0NsaWVudFNpZGVSb3dNb2RlbE1vZHVsZSwgUm93R3JvdXBpbmdNb2R1bGVdO1xyXG5cclxuICBvdmVybGF5TG9hZGluZ1RlbXBsYXRlOiBzdHJpbmc7XHJcbiAgZnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcclxuICAgIGFnRGF0ZUlucHV0OiBEYXRldGltZUZpbHRlckNvbXBvbmVudCxcclxuICAgIE9yZ2FuaXphdGlvbkZpbHRlckNvbXBvbmVudDogT3JnYW5pemF0aW9uRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgQ29kZXN5c3RlbUZpbHRlckNvbXBvbmVudDogQ29kZXN5c3RlbUZpbHRlckNvbXBvbmVudCxcclxuICAgIER5bmFtaWNMaXN0RmlsdGVyQ29tcG9uZW50OiBEeW5hbWljTGlzdEZpbHRlckNvbXBvbmVudCxcclxuICAgIExpc3RGaWx0ZXJDb21wb25lbnQ6IExpc3RGaWx0ZXJDb21wb25lbnRcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9ncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XHJcbiAgcHJpdmF0ZSBfb3B0aW9uczogYW55ID0ge307XHJcbiAgcHJpdmF0ZSBfZ3JpZENvdW50OiBhbnkgPSB7fTtcclxuICBwcml2YXRlIHBpbm5lZENvbHVtbjogQ29sRGVmID0ge1xyXG4gICAgaGVhZGVyTmFtZTogJycsXHJcbiAgICBmaWx0ZXI6IGZhbHNlLFxyXG4gICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgcmVzaXphYmxlOiBmYWxzZSxcclxuICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcclxuICAgIHN1cHByZXNzTW92YWJsZTogdHJ1ZSxcclxuICAgIHN1cHByZXNzTmF2aWdhYmxlOiB0cnVlLFxyXG4gICAgc3VwcHJlc3NQYXN0ZTogdHJ1ZSxcclxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiB0cnVlLFxyXG4gICAgcGlubmVkOiAnbGVmdCcsXHJcbiAgICB3aWR0aDogMSxcclxuICAgIGZpZWxkOiAnX19zZWxlY3Rpb25GaWVsZCcsXHJcbiAgICB2YWx1ZUdldHRlcjogKCkgPT4gJydcclxuICB9O1xyXG5cclxuICBAVmlld0NoaWxkKCdhZ0dyaWQnKSBhZ0dyaWQ7XHJcblxyXG4gIEBPdXRwdXQoKSBlb0dyaWRDb3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBlb0dyaWRGb2N1c0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZW9HcmlkQ2VsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGVvR3JpZERvdWJsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGVvR3JpZENvbnRleHRNZW51Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZW9HcmlkQ29sdW1uUmVzaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIGNvbFJlc2l6ZURlYm91bmNlciA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVEZWJvdW5jZXIgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgZm9jdXNlZFJvd0lEID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdEZpcnN0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWxlY3Rpb25MaW1pdDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNpemVUb0ZpdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZ1bGxXaWR0aCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Rm9vdGVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9hZGVyQ29udGVudDogSUxvYWRlciA9IHtzaG93OiBmYWxzZSwgaW1hZ2U6IG51bGwsIHRleHQ6IG51bGx9O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogYW55KSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBvcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBncmlkT3B0aW9ucyhncmlkT3B0aW9uczogR3JpZE9wdGlvbnMpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZ3JpZE9wdGlvbnMsIGdyaWRPcHRpb25zLCB7XHJcbiAgICAgIGNvbnRleHQ6IE9iamVjdC5hc3NpZ24odGhpcy5fZ3JpZE9wdGlvbnMuY29udGV4dCwgZ3JpZE9wdGlvbnMuY29udGV4dCksXHJcbiAgICAgIGNvbHVtbkRlZnM6IGdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPyBbdGhpcy5waW5uZWRDb2x1bW5dLmNvbmNhdChncmlkT3B0aW9ucy5jb2x1bW5EZWZzKSA6IG51bGxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdyaWRPcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dyaWRPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRleHRDb3VudCgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID09PSAnbnVtYmVyJyA/IHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA6IHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBjb250ZXh0UmVsYXRpb24oKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9PT0gJ251bWJlcicgPyAnZXEnIDogdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50LnJlbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5jb250cm9sLmFsdC5zaGlmdC5jJywgWyckZXZlbnQnXSlcclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuc2hpZnQuYycsIFsnJGV2ZW50J10pXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5jb250cm9sLmFsdC5jJywgWyckZXZlbnQnXSlcclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuYycsIFsnJGV2ZW50J10pXHJcbiAgY29weUNlbGxIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmdyaWRBcGkuY29weVRvQ2xpcGJvYXJkKGV2ZW50LCB0aGlzLmdyaWRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuX2dyaWRPcHRpb25zID0gPEdyaWRPcHRpb25zPntcclxuICAgICAgY29udGV4dDogZ3JpZEFwaS5nZXRDb250ZXh0KCksXHJcbiAgICAgIGFuaW1hdGVSb3dzOiB0cnVlLFxyXG4gICAgICBoZWFkZXJIZWlnaHQ6IDMwLFxyXG4gICAgICByb3dIZWlnaHQ6IDQ4LFxyXG4gICAgICByb3dCdWZmZXI6IDIwLFxyXG4gICAgICByb3dTZWxlY3Rpb246ICdtdWx0aXBsZScsXHJcbiAgICAgIHJvd0Rlc2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgICBtdWx0aVNvcnRLZXk6ICdjdHJsJyxcclxuICAgICAgYWNjZW50ZWRTb3J0OiB0cnVlLFxyXG4gICAgICBzdXBwcmVzc0NvbnRleHRNZW51OiB0cnVlLFxyXG4gICAgICBvdmVybGF5TG9hZGluZ1RlbXBsYXRlOiAnICcsXHJcbiAgICAgIG92ZXJsYXlOb1Jvd3NUZW1wbGF0ZTogJyAnLFxyXG4gICAgICBnZXRSb3dOb2RlSWQ6IChkYXRhKSA9PiBkYXRhLmlkIHx8IGRhdGEsXHJcbiAgICAgIGxvY2FsZVRleHRGdW5jOiAoa2V5LCBkZWZhdWx0VmFsdWUpID0+IHtcclxuICAgICAgICBsZXQgZ3JpZEtleSA9ICdlby5yZXN1bHRsaXN0LmdyaWQuJyArIGtleTtcclxuICAgICAgICBsZXQgdmFsdWUgPSB0cmFuc2xhdGUuaW5zdGFudChncmlkS2V5KTtcclxuICAgICAgICByZXR1cm4gfnZhbHVlLmluZGV4T2YoZ3JpZEtleSkgPyBkZWZhdWx0VmFsdWUgOiB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmxvYWRpbmdNZXNzYWdlKCk7XHJcbiAgICB0aGlzLmdldFVzZXIoKTtcclxuXHJcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLnRhc2tzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUodGFza3MgPT4gKHRoaXMuZ3JpZE9wdGlvbnMuc3VwcHJlc3NDZWxsU2VsZWN0aW9uID0gISF0YXNrcy5sZW5ndGgpKTtcclxuXHJcbiAgICB0aGlzLmNvbFJlc2l6ZURlYm91bmNlci5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoY29sID0+IHRoaXMuZW9HcmlkQ29sdW1uUmVzaXplZC5lbWl0KGNvbCkpO1xyXG5cclxuICAgIHRoaXMuY2FsY3VsYXRlRGVib3VuY2VyLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2FsY3VsYXRlUm93Q291bnQoKSk7XHJcbiAgfVxyXG5cclxuICBsb2FkaW5nTWVzc2FnZSgpIHtcclxuICAgIGxldCBsb2FkZXJDb250ZW50ID0gJyc7XHJcblxyXG4gICAgaWYgKHRoaXMubG9hZGVyQ29udGVudC5zaG93KSB7XHJcbiAgICAgIGlmICh0aGlzLmxvYWRlckNvbnRlbnQuaW1hZ2UpIHtcclxuICAgICAgICBsb2FkZXJDb250ZW50ID0gYDxzcGFuIGNsYXNzPVwiYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlclwiPjxpbWcgW3NyY109XCIke3RoaXMubG9hZGVyQ29udGVudC5pbWFnZX1cIiBhbHQ9XCJsb2FkZXIgaW1hZ2VcIj48L3NwYW4+YDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsb2FkZXJDb250ZW50ID0gYDxzcGFuIGNsYXNzPVwiYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlclwiPiR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmxvYWRlckNvbnRlbnQudGV4dCl9PC9zcGFuPmA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMub3ZlcmxheUxvYWRpbmdUZW1wbGF0ZSA9IGxvYWRlckNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFVzZXIoKSB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIkLnN1YnNjcmliZSgodXNlcjogRW9Vc2VyKSA9PiB7XHJcbiAgICAgICh0aGlzLmdyaWRPcHRpb25zIHx8IHRoaXMuX2dyaWRPcHRpb25zKS5lbmFibGVSdGwgPSAodXNlci51aURpcmVjdGlvbiA9PT0gJ3J0bCcpO1xyXG4gICAgICB0aGlzLnBpbm5lZENvbHVtbi5waW5uZWQgPSAodXNlci51aURpcmVjdGlvbiA9PT0gJ3J0bCcpID8gJ3JpZ2h0JyA6ICdsZWZ0JztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVSb3dDb3VudCgpIHtcclxuICAgIGxldCByb3dDb3VudCA9IDA7XHJcbiAgICBsZXQgdG90YWxDb3VudCA9IHRoaXMuY29udGV4dENvdW50O1xyXG4gICAgbGV0IHJvd0luZGV4ID0gdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0luZGV4O1xyXG4gICAgbGV0IHNlbGVjdGlvbiA9IHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5zZWxlY3Rpb247XHJcblxyXG4gICAgaWYgKHRoaXMuYXBpICYmIHRoaXMuZ3JpZE9wdGlvbnMucm93RGF0YSkge1xyXG4gICAgICB0aGlzLmFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyKG4gPT4gbi5ncm91cCB8fCByb3dDb3VudCsrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJvd0NvdW50ID0gdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0NvdW50IHx8IDA7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RGaXJzdCAmJiAhdGhpcy5hcGkuZ2V0Rm9jdXNlZENlbGwoKSAmJiAocm93SW5kZXggIT09IG51bGwgfHwgIXRoaXMuZm9jdXNlZFJvd0lEKSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0Um93KHJvd0luZGV4IHx8IDAsIHNlbGVjdGlvbiksIDIwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9ncmlkQ291bnQgPSB7dG90YWxDb3VudCwgcm93Q291bnQsIHJlbGF0aW9uOiB0aGlzLmNvbnRleHRSZWxhdGlvbn07XHJcbiAgICB0aGlzLmVvR3JpZENvdW50Q2hhbmdlZC5lbWl0KHRoaXMuX2dyaWRDb3VudCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGb2N1cyhpZCA9IHRoaXMuZm9jdXNlZFJvd0lEKSB7XHJcbiAgICBjb25zdCBjZWxsID0gdGhpcy5hcGkuZ2V0Rm9jdXNlZENlbGwoKTtcclxuICAgIGNvbnN0IHJvdzogUm93Tm9kZSA9IHRoaXMuYXBpLmdldFJvd05vZGUoaWQpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZmlsdGVyQWN0aXZlICYmIChjZWxsICYmIGNlbGwucm93SW5kZXgpICE9PSAocm93ICYmIHJvdy5yb3dJbmRleCkpIHtcclxuICAgICAgaWYgKHJvdykge1xyXG4gICAgICAgIHRoaXMuYXBpLnNldEZvY3VzZWRDZWxsKHJvdy5yb3dJbmRleCwgKHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uRGVmc1sxXSBhcyBDb2xEZWYpLmZpZWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFwaS5jbGVhckZvY3VzZWRDZWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2VsbENsaWNrZWQoJGV2ZW50KSB7XHJcblxyXG4gICAgaWYgKCRldmVudC5yb3dJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoISRldmVudC5ub2RlLmdyb3VwICYmICRldmVudC5kYXRhKSB7XHJcbiAgICAgICAgaWYgKCRldmVudC5jb2xEZWYuY2VsbENsYXNzID09PSAncm91dGVyLWxpbmstY2VsbCcpIHtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFwaS5vcGVuUm91dGVyTGluaygkZXZlbnQuZXZlbnQsICdhZy1yb3cnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZW9HcmlkQ2VsbENsaWNrLmVtaXQoJGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DZWxsRG91YmxlQ2xpY2tlZCgkZXZlbnQpIHtcclxuXHJcbiAgICBpZiAoJGV2ZW50LnJvd0luZGV4ICE9PSBudWxsKSB7XHJcbiAgICAgIGlmICghJGV2ZW50Lm5vZGUuZ3JvdXAgJiYgJGV2ZW50LmRhdGEpIHtcclxuICAgICAgICB0aGlzLmVvR3JpZERvdWJsZUNsaWNrLmVtaXQoJGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Nb3VzZURvd24oJGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzQ2VsbFNlbGVjdGlvbikge1xyXG4gICAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuc3VwcHJlc3NDZWxsU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHJvd0luZGV4ID0gdGhpcy5ncmlkQXBpLmdldFJvd0luZGV4KCRldmVudC50YXJnZXQsICdhZy1ib2R5Jyk7XHJcbiAgICAgICAgaWYgKHJvd0luZGV4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAvL3NlbGVjdCByb3cgb25seSBvbiBsZWZ0IGNsaWNrXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdFJvdyhyb3dJbmRleCwgJGV2ZW50LmJ1dHRvbiA9PT0gMCA/IG51bGwgOiBbXSwgISRldmVudC5jdHJsS2V5KTtcclxuICAgICAgICAgIGlmICgkZXZlbnQuYnV0dG9uID09PSAyKSB7XHJcbiAgICAgICAgICAgIC8vb3BlbiBjb250ZXh0IG1lbnUgb24gcmlnaHQgY2xpY2tcclxuICAgICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLmFwaS5nZXRNb2RlbCgpLmdldFJvdyhyb3dJbmRleCk7XHJcbiAgICAgICAgICAgIHRoaXMub25Db250ZXh0TWVudUNsaWNrZWQoe3Jvd0luZGV4LCBub2RlLCBkYXRhOiBub2RlLmRhdGF9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNlbGxGb2N1c2VkKCRldmVudCkge1xyXG4gICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuc3VwcHJlc3NDZWxsU2VsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoJGV2ZW50LnJvd0luZGV4ICE9PSBudWxsKSB7XHJcbiAgICAgICRldmVudC5mb2N1c2VkTm9kZSA9IHRoaXMuYXBpLmdldE1vZGVsKCkuZ2V0Um93KCRldmVudC5yb3dJbmRleCk7XHJcbiAgICAgIGlmICgkZXZlbnQuZm9jdXNlZE5vZGUgJiYgISRldmVudC5mb2N1c2VkTm9kZS5ncm91cCAmJiAkZXZlbnQuZm9jdXNlZE5vZGUuZGF0YSkge1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZFJvd0lEID0gJGV2ZW50LmZvY3VzZWROb2RlLmlkO1xyXG4gICAgICAgIHRoaXMuZW9HcmlkRm9jdXNDaGFuZ2VkLmVtaXQoJGV2ZW50LmZvY3VzZWROb2RlLmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNvbnRleHRNZW51Q2xpY2tlZCgkZXZlbnQpIHtcclxuICAgIGlmICgkZXZlbnQucm93SW5kZXggIT09IG51bGwgJiYgISRldmVudC5ub2RlLmdyb3VwICYmICRldmVudC5kYXRhKSB7XHJcbiAgICAgIGxldCBzZWxlY3RlZE5vZGVzID0gdGhpcy5hcGkuZ2V0U2VsZWN0ZWROb2RlcygpLm1hcChuID0+IG4uZGF0YSkuZmlsdGVyKGQgPT4gZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZE5vZGVzLmxlbmd0aCAmJiBzZWxlY3RlZE5vZGVzLnNvbWUobiA9PiBuLmlkID09PSAkZXZlbnQuZGF0YS5pZCkpIHtcclxuICAgICAgICB0aGlzLmVvR3JpZENvbnRleHRNZW51Q2xpY2suZW1pdChzZWxlY3RlZE5vZGVzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmVvR3JpZENvbnRleHRNZW51Q2xpY2suZW1pdChbJGV2ZW50LmRhdGFdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudCkge1xyXG4gICAgbGV0IHNlbGVjdGVkTm9kZXMgPSB0aGlzLmFwaS5nZXRTZWxlY3RlZE5vZGVzKCkubWFwKG4gPT4gbi5kYXRhKS5maWx0ZXIoZCA9PiBkKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbkxpbWl0ICYmIHNlbGVjdGVkTm9kZXMubGVuZ3RoID4gdGhpcy5zZWxlY3Rpb25MaW1pdCkge1xyXG4gICAgICB0aGlzLnNlbGVjdFJvdyh0aGlzLmFwaS5nZXRGb2N1c2VkQ2VsbCgpLnJvd0luZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGVkTm9kZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Db2x1bW5SZXNpemVkKCRldmVudCkge1xyXG4gICAgaWYgKCRldmVudC5jb2x1bW4pIHtcclxuICAgICAgdGhpcy5jb2xSZXNpemVEZWJvdW5jZXIubmV4dCgkZXZlbnQuY29sdW1uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW9kZWxVcGRhdGVkKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVEZWJvdW5jZXIubmV4dCh7fSk7XHJcbiAgfVxyXG5cclxuICBvblJlYWR5KCkge1xyXG4gICAgaWYgKHRoaXMuc2l6ZVRvRml0KSB7XHJcbiAgICAgIHRoaXMuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUXVpY2tGaWx0ZXJDaGFuZ2VkKCRldmVudCkge1xyXG4gICAgdGhpcy5hcGkuc2V0UXVpY2tGaWx0ZXIoJGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSb3cocm93OiBhbnksIHNlbGVjdGlvbj86IG51bWJlcltdLCBjbGVhclNlbGVjdGlvbiA9IHRydWUsIHBvc2l0aW9uID0gbnVsbCkge1xyXG4gICAgaWYgKCF0aGlzLmFwaSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgcm93Tm9kZSA9IHR5cGVvZiByb3cgPT09ICdudW1iZXInID8gdGhpcy5hcGkuZ2V0TW9kZWwoKS5nZXRSb3cocm93KSA6IHRoaXMuYXBpLmdldFJvd05vZGUodGhpcy5ncmlkT3B0aW9ucy5nZXRSb3dOb2RlSWQocm93KSk7XHJcbiAgICBsZXQgaW5kZXggPSByb3dOb2RlID8gcm93Tm9kZS5yb3dJbmRleCA6IDA7XHJcblxyXG4gICAgaWYgKHJvd05vZGUgJiYgcm93Tm9kZS5kYXRhKSB7XHJcbiAgICAgIGlmIChzZWxlY3Rpb24pIHtcclxuICAgICAgICBzZWxlY3Rpb24uZm9yRWFjaCgocm93SW5kZXgsIGkpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXBpLmdldE1vZGVsKCkuZ2V0Um93KHJvd0luZGV4KS5zZXRTZWxlY3RlZCh0cnVlLCBpID09PSAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQuc2VsZWN0aW9uID0gbnVsbDsgLy9yZXNldCBpbml0aWFsIHNlbGVjdGlvblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJvd05vZGUuc2V0U2VsZWN0ZWQodHJ1ZSwgY2xlYXJTZWxlY3Rpb24pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFwaS5zZXRGb2N1c2VkQ2VsbChpbmRleCwgKHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uRGVmc1sxXSBhcyBDb2xEZWYpLmZpZWxkKTtcclxuICAgICAgdGhpcy5zY3JvbGxUb1JvdyhpbmRleCwgcG9zaXRpb24pO1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQucm93SW5kZXggPSBudWxsOyAvL3Jlc2V0IGluaXRpYWwgcm93SW5kZXhcclxuICAgIH0gZWxzZSBpZiAoaW5kZXggPiAwICYmIHRoaXMuY29udGV4dENvdW50KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0Um93KC0taW5kZXgsIHNlbGVjdGlvbiwgY2xlYXJTZWxlY3Rpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hcGkuY2xlYXJGb2N1c2VkQ2VsbCgpO1xyXG4gICAgICB0aGlzLmVvR3JpZEZvY3VzQ2hhbmdlZC5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9Sb3coaW5kZXg/OiBudW1iZXIsIHBvc2l0aW9uID0gbnVsbCkge1xyXG4gICAgdGhpcy5hcGkuZW5zdXJlSW5kZXhWaXNpYmxlKGluZGV4ID09PSB1bmRlZmluZWQgPyAodGhpcy5hcGkuZ2V0Rm9jdXNlZENlbGwoKSA/IHRoaXMuYXBpLmdldEZvY3VzZWRDZWxsKCkucm93SW5kZXggOiAwKSA6IGluZGV4LCBwb3NpdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSb3dCeUlkKGlkLCBwb3NpdGlvbiA9ICcnKSB7XHJcbiAgICBjb25zdCByb3dOb2RlSWQgPSB0aGlzLmdyaWRPcHRpb25zLmdldFJvd05vZGVJZChpZCk7XHJcbiAgICBjb25zdCByb3dOb2RlID0gdGhpcy5hcGkuZ2V0Um93Tm9kZShyb3dOb2RlSWQpO1xyXG4gICAgaWYgKHJvd05vZGUpIHtcclxuICAgICAgcm93Tm9kZS5zZXRTZWxlY3RlZCh0cnVlKTtcclxuICAgICAgdGhpcy5zZWxlY3RSb3cocm93Tm9kZS5yb3dJbmRleCwgW10sIHRydWUsIHBvc2l0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENvbHVtbkRlZnMoY29sdW1uRGVmczogQ29sRGVmW10pIHtcclxuICAgIHRoaXMuYXBpLnNldENvbHVtbkRlZnMoY29sdW1uRGVmcyA/IFt0aGlzLnBpbm5lZENvbHVtbl0uY29uY2F0KGNvbHVtbkRlZnMpIDogbnVsbCk7XHJcbiAgfVxyXG5cclxuICBzZXRSb3dEYXRhKGRhdGE6IGFueVtdID0gW10sIHJvdz86IGFueSkge1xyXG4gICAgdGhpcy5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID0gZGF0YS5sZW5ndGg7XHJcbiAgICB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQucm93SW5kZXggPSByb3c7XHJcbiAgICB0aGlzLmFwaS5jbGVhckZvY3VzZWRDZWxsKCk7XHJcbiAgICB0aGlzLmFwaS5zZXRSb3dEYXRhKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzU29mdERhdGEoZGF0YTogYW55W10gPSBbXSkge1xyXG4gICAgbGV0IHJlbW92ZSA9IGRhdGEuZmlsdGVyKGkgPT4gaS5fX3JlbW92ZWQpLm1hcChpID0+IHtcclxuICAgICAgZGVsZXRlIGkuX19yZW1vdmVkO1xyXG4gICAgICByZXR1cm4gaTtcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCB1cGRhdGUgPSBkYXRhLmZpbHRlcihpID0+IGkuX191cGRhdGVkKS5tYXAoaSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBpLl9fdXBkYXRlZDtcclxuICAgICAgcmV0dXJuIGk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBmaW5hbGx5IHJlbW92ZSBpdGVtcyBmcm9tIGFycmF5XHJcbiAgICByZW1vdmUuZm9yRWFjaChpID0+IGRhdGEuc3BsaWNlKGRhdGEuaW5kZXhPZihpKSwgMSkpO1xyXG5cclxuICAgIGxldCBhcHBseVVwZGF0ZSA9IHJlbW92ZS5sZW5ndGggfHwgdXBkYXRlLmxlbmd0aDtcclxuXHJcbiAgICByZXR1cm4ge2FwcGx5VXBkYXRlLCByZW1vdmUsIHVwZGF0ZX07XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSb3dEYXRhKGRhdGE6IGFueVtdID0gW10sIHJvdz86IGFueSwgc2VsZWN0aW9uPzogbnVtYmVyW10pIHtcclxuXHJcbiAgICBsZXQge2FwcGx5VXBkYXRlLCByZW1vdmUsIHVwZGF0ZX0gPSB0aGlzLnByb2Nlc3NTb2Z0RGF0YShkYXRhKTtcclxuICAgIGlmICghYXBwbHlVcGRhdGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2V0Um93RGF0YShkYXRhLCByb3cpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IGRhdGEubGVuZ3RoO1xyXG4gICAgbGV0IGxhc3RGb2N1c2VkQ2VsbDogQ2VsbFBvc2l0aW9uID0gdGhpcy5hcGkuZ2V0Rm9jdXNlZENlbGwoKTtcclxuICAgIHRoaXMuYXBpLnVwZGF0ZVJvd0RhdGEoe3JlbW92ZSwgdXBkYXRlfSk7XHJcbiAgICB0aGlzLmFwaS5yZWRyYXdSb3dzKCk7XHJcbiAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdFJvdyggbGFzdEZvY3VzZWRDZWxsID8gbGFzdEZvY3VzZWRDZWxsLnJvd0luZGV4IDogKHJvdyB8fCAwKSwgc2VsZWN0aW9uKTtcclxuICAgIH0sIHRoaXMuY29udGV4dENvdW50ID8gNTAwIDogMCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSb3dzKGRhdGE6IGFueVtdID0gW10pIHtcclxuXHJcbiAgICBsZXQge2FwcGx5VXBkYXRlLCByZW1vdmUsIHVwZGF0ZX0gPSB0aGlzLnByb2Nlc3NTb2Z0RGF0YShkYXRhKTtcclxuICAgIGlmICghYXBwbHlVcGRhdGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHRoaXMuY29udGV4dENvdW50IC0gcmVtb3ZlLmxlbmd0aDtcclxuICAgIGxldCBsYXN0Rm9jdXNlZEluZGV4ID0gdGhpcy5hcGkuZ2V0Rm9jdXNlZENlbGwoKSA/IHRoaXMuYXBpLmdldEZvY3VzZWRDZWxsKCkucm93SW5kZXggOiAwO1xyXG5cclxuICAgIHRoaXMuYXBpLnVwZGF0ZVJvd0RhdGEoe3JlbW92ZSwgdXBkYXRlfSk7XHJcblxyXG4gICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RSb3cobGFzdEZvY3VzZWRJbmRleCk7XHJcbiAgICB9LCB0aGlzLmNvbnRleHRDb3VudCA/IDUwMCA6IDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbHVtbnMoKTogQ29sdW1uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uQXBpLmdldEFsbEdyaWRDb2x1bW5zKCkuZmlsdGVyKGMgPT4gYy5nZXRDb2xJZCgpICE9PSB0aGlzLnBpbm5lZENvbHVtbi5maWVsZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXBpKCk6IEdyaWRBcGkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JpZE9wdGlvbnMuYXBpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUmVhZHkoKSB7XHJcbiAgICByZXR1cm4gISF0aGlzLmFwaTtcclxuICB9XHJcblxyXG4gIGdldCBpc0VtcHR5KCkge1xyXG4gICAgcmV0dXJuICF0aGlzLl9ncmlkQ291bnQudG90YWxDb3VudCAmJiAoIXRoaXMuYXBpIHx8ICFPYmplY3Qua2V5cyh0aGlzLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKS5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRW1wdHlSb3dzKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLl9ncmlkQ291bnQucm93Q291bnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaFZpZXcoKSB7XHJcbiAgICB0aGlzLmFwaS5yZWZyZXNoVmlldygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|