qms-angular 1.0.76 → 1.0.80

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.
@@ -151,7 +151,7 @@ export class SelectOneDialog {
151
151
  }
152
152
  }
153
153
  getModuleFilteredOptions() {
154
- if (this.listChildrenSelectOne.length) {
154
+ if (this.listChildrenSelectOne.length && this.disabledList.length) {
155
155
  for (let index = 0; index < this.listChildrenSelectOne.length; index++) {
156
156
  const firstEl = this.listChildrenSelectOne[index];
157
157
  for (let j = 0; j < this.filteredOptions.length; j++) {
@@ -171,31 +171,44 @@ export class SelectOneDialog {
171
171
  return related ? related.itemName : undefined;
172
172
  }
173
173
  selectItemSearched(item) {
174
- var _a;
175
- if ((_a = this.treeConfig) === null || _a === void 0 ? void 0 : _a.selectOne) {
176
- this.disabledList = [];
177
- }
178
174
  // reset to root
179
175
  this.expandToChildNode = [''];
180
176
  this.checkedNodeList = [];
181
177
  let position = -1;
182
178
  let node;
183
179
  let typeId;
184
- position = this.treeData.findIndex(x => {
185
- return x.rootId === item.id;
186
- });
180
+ let treeNodeDup;
181
+ if (this.treeConfig.canHaveDupId) {
182
+ position = this.treeData.findIndex(x => {
183
+ return x.rootId === item.parentId && x.childId === item.id;
184
+ });
185
+ }
186
+ else {
187
+ position = this.treeData.findIndex(x => {
188
+ return x.rootId === item.id;
189
+ });
190
+ }
187
191
  typeId = item.itemType;
188
192
  if (position >= 0) {
189
193
  node = this.treeData[position];
190
194
  this.checkedNodeList.push({
191
195
  moduleId: this.moduleId,
192
- id: node.rootId,
193
- itemName: node.rootName || node.subName,
196
+ id: this.treeConfig.canHaveDupId ? node.childId : node.rootId,
197
+ itemName: this.treeConfig.canHaveDupId ? node.childName : node.rootName || node.subName,
194
198
  itemType: typeId,
195
199
  itemNumberId: item.itemNumberId,
196
- levelType: item.levelType
200
+ levelType: item.levelType,
201
+ parentId: node.rootId
197
202
  });
198
203
  }
204
+ if (this.treeConfig.canHaveDupId) {
205
+ treeNodeDup = {
206
+ id: node.childId,
207
+ name: !!node.rootId ? node.subName : node.rootName,
208
+ children: [],
209
+ parentId: node.rootId
210
+ };
211
+ }
199
212
  const treeNode = {
200
213
  id: node.rootId,
201
214
  name: !!node.rootId ? node.subName : node.rootName,
@@ -203,15 +216,20 @@ export class SelectOneDialog {
203
216
  parentId: node.parentId
204
217
  };
205
218
  setTimeout(() => {
206
- this.dataTrees.toArray()[0].todoFolderSelection([treeNode]);
207
- this.expandAndScrollToNode(treeNode, node);
219
+ this.dataTrees.toArray()[0].todoFolderSelection([this.treeConfig.canHaveDupId ? treeNodeDup : treeNode]);
220
+ this.expandAndScrollToNode(this.treeConfig.canHaveDupId ? treeNodeDup : treeNode, node);
208
221
  }, 500);
209
222
  return;
210
223
  }
211
224
  expandAndScrollToNode(treeNode, node) {
212
225
  let parent;
213
226
  let parentList = [];
214
- parent = this.treeData.find(x => x.rootId === node.parentId);
227
+ if (this.treeConfig.canHaveDupId) {
228
+ parent = this.treeData.find(x => x.rootId === node.rootId && x.childId === node.childId);
229
+ }
230
+ else {
231
+ parent = this.treeData.find(x => x.rootId === node.parentId);
232
+ }
215
233
  if (parent) {
216
234
  parentList.push({
217
235
  id: parent.rootId,
@@ -220,24 +238,20 @@ export class SelectOneDialog {
220
238
  });
221
239
  parentList = this.getParentLineOfNode(parentList, parent);
222
240
  }
223
- if (parentList.length) {
224
- parentList.reverse().forEach(x => {
225
- this.focusEditItem(x);
226
- });
227
- }
228
- else {
229
- this.focusEditItem(treeNode);
230
- }
241
+ parentList.unshift(treeNode);
242
+ parentList.reverse().forEach(x => {
243
+ this.focusEditItem(x);
244
+ });
231
245
  }
232
246
  getParentLineOfNode(listParent, node) {
233
247
  let parent;
234
248
  parent = this.treeData.find(x => x.rootId === node.parentId);
235
249
  if (parent) {
236
- listParent = [...listParent, {
237
- id: parent.rootId,
238
- itemName: parent.rootName,
239
- parentId: parent.parentId
240
- }];
250
+ listParent.push({
251
+ id: parent.rootId,
252
+ itemName: parent.rootName,
253
+ parentId: parent.parentId
254
+ });
241
255
  this.getParentLineOfNode(listParent, parent);
242
256
  }
243
257
  return listParent;
@@ -246,7 +260,7 @@ export class SelectOneDialog {
246
260
  const node = this.dataTrees.toArray()[0].getNodeByIdAndParentId(selectedOption.id, selectedOption.parentId);
247
261
  if (node) {
248
262
  this.dataTrees.toArray()[0].expandNode(node);
249
- const element = document.getElementById(`_${node.parentId ? node.parentId : ''}_${node.id}_${node.level}`);
263
+ const element = document.getElementById(`_${node.parentId ? node.parentId.toLowerCase() : ''}_${node.id.toLowerCase()}_${node.level}`);
250
264
  if (element) {
251
265
  element.scrollIntoView(false);
252
266
  }
@@ -375,7 +389,7 @@ export class SelectOneDialog {
375
389
  SelectOneDialog.decorators = [
376
390
  { type: Component, args: [{
377
391
  selector: 'qms-select-one',
378
- template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n >\r\n <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n (click)=\"selectItemSearched(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar col-12 qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"false\"\r\n [expandToChildNode]=\"expandToChildNode\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList()\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
392
+ template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n (click)=\"selectItemSearched(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar col-12 qmslib_related_popup_content panel__content_item\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"false\"\r\n [expandToChildNode]=\"expandToChildNode\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList()\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
379
393
  encapsulation: ViewEncapsulation.None,
380
394
  styles: [".qms-scrollbar::-webkit-scrollbar{width:12px}.qms-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-scrollbar.none-scroll-bg::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:#fff;padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:#9e360f;margin-left:10px}.qms__danger .yellow{background-color:#e4cf53;margin-left:10px;color:#323232}.qms__danger .green{background-color:#00804c;margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:#f8f9f9}.confirm__button__groups .confirm:hover{background:#001983;color:#fff}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:#f8f9f9}.confirm__button__groups .cancel:hover{background:#001983;color:#fff}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:#eee}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:#e5e5e5;max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:#8e8e8e;font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
381
395
  },] }
@@ -395,4 +409,4 @@ SelectOneDialog.propDecorators = {
395
409
  autoComplete: [{ type: ViewChild, args: ['autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true },] }],
396
410
  onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
397
411
  };
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LW9uZS9zZWxlY3Qtb25lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFB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dmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJWaWV3Q2hlY2tlZCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwLWljb24vaWNvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi9jb21tb24vZGF0YS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGVUeXBlIH0gZnJvbSAnLi9jb21tb24vZG9jdW1lbnQtZm9sZGVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE1vZHVsZVR5cGUgfSBmcm9tICcuL2NvbW1vbi9tb2R1bGUtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU2hvd0hpZGVTZWFyY2hSZXN1bHRDb25zdCB9IGZyb20gJy4vY29tbW9uL3Nob3ctaGlkZS1zZWFyY2gtcmVzdWx0LmNvbnN0JztcclxuaW1wb3J0IHsgU2VsZWN0T25lUG9wdXBEYXRhIH0gZnJvbSAnLi9jb21tb24vc2VsZWN0b25lLXBvcHVwLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T25lSXRlbSB9IGZyb20gJy4vY29tbW9uL3NlbGVjdC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWROb2RlIH0gZnJvbSAnLi9jb21tb24vc2VsZWN0ZWQtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU1NlbGVjdE9uZUdsb2JhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2Uvc2VsZWN0LW9uZS1nbG9iYWwuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRyZWVGbGF0Tm9kZSB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1mbGF0LW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncW1zLXNlbGVjdC1vbmUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1vbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LW9uZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0T25lRGlhbG9nIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgTEFORzogYW55O1xyXG4gICAgbW9kdWxlSWQgPSAwO1xyXG4gICAgbW9kdWxlTmFtZSA9ICcnO1xyXG4gICAgdHJlZURhdGE6IEFycmF5PFRyZWVNb2RlbD4gPSBbXTtcclxuICAgIHRyZWVDb25maWc6IFRyZWVDb25maWc7XHJcblxyXG4gICAgY2hlY2tlZE5vZGVMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcbiAgICBzZWxlY3RlZE5vZGU6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICAgIHNlbGVjdGVkRGF0YTogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG5cclxuICAgIG1vZHVsZSA9IE1vZHVsZVR5cGU7XHJcbiAgICBkYXRhVHlwZSA9IERhdGFUeXBlO1xyXG4gICAgaXRlbVR5cGUgPSAwO1xyXG4gICAgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgICBkaXNhYmxlZExpc3Q6IGFueSA9IFtdO1xyXG4gICAgZXhwYW5kVG9DaGlsZE5vZGU6IGFueSA9IFtdO1xyXG5cclxuICAgIGlzQ29tbW9uRXhwYW5kZWQgPSB0cnVlO1xyXG5cclxuICAgIG15Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgZmlsdGVyZWRPcHRpb25zOiBJU2VsZWN0T25lSXRlbVtdID0gW107XHJcbiAgICBpc0lucHV0VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgICBzZWxlY3RlZEZvbGRlcjogVHJlZUZsYXROb2RlID0gbnVsbDtcclxuICAgIGxpc3RDaGlsZHJlblNlbGVjdE9uZTogYW55ID0gW107XHJcblxyXG4gICAgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBvbkV4cGFuZEZvbGRlciA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9uZUl0ZW0+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihUcmVlQ29tcG9uZW50LCB7fSkgZGF0YVRyZWVzOiBRdWVyeUxpc3Q8VHJlZUNvbXBvbmVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlSW5wdXRTZWFyY2gnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgYXV0b0NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNlbGVjdE9uZURpYWxvZz4sXHJcbiAgICAgICAgcHVibGljIGdsb2JhbFNlcnZpY2U6IFFNU1NlbGVjdE9uZUdsb2JhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgIHByaXZhdGUgYXBwSWNvblNlcnZpY2U6IFFNU0ljb25SZWdpc3RyeVNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBTZWxlY3RPbmVQb3B1cERhdGFcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMubW9kdWxlSWQgPSBkYXRhLm1vZHVsZUlkO1xyXG4gICAgICAgIHRoaXMubW9kdWxlTmFtZSA9IGRhdGEubW9kdWxlTmFtZTtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhID0gZGF0YS50cmVlRGF0YTtcclxuICAgICAgICB0aGlzLnRyZWVDb25maWcgPSBkYXRhLnRyZWVDb25maWc7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJpc2tEYXRhID0gZGF0YT8uc2VsZWN0ZWROb2RlIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gZGF0YS5kaXNhYmxlZExpc3QgfHwgW107XHJcbiAgICAgICAgdGhpcy5leHBhbmRUb0NoaWxkTm9kZSA9IGRhdGEuZXhwYW5kVG9DaGlsZE5vZGU7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzQXJlYUljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRG9jdW1lbnRJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckZvbGRlckljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRGV2aWF0aW9uSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJDaGVja2xpc3RJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlclJpc2tJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRTZWFyY2hSZWxhdGVkKFtdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRm9sZGVyID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgICBvbk1lc3NhZ2UoZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gU2hvd0hpZGVTZWFyY2hSZXN1bHRDb25zdC5ISURFX1NFQVJDSF9SRVNVTFQpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUuY2xvc2VQYW5lbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXRMYW5ndWFnZVN1YmplY3QkLnBpcGUoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNlYXJjaFJlbGF0ZWQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHJlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vblNlYXJjaFJlbGF0ZWQodmFsKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5pdGVtVHlwZSA9IHRoaXMuZ2V0RGF0YVR5cGVJZCh0aGlzLm1vZHVsZUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zICYmIHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZS5vcGVuUGFuZWwoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRSZXN1bHRIZWlnaHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YVR5cGVJZChtb2R1bGVJZDogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1UeXBlO1xyXG4gICAgICAgIHN3aXRjaCAobW9kdWxlSWQpIHtcclxuICAgICAgICAgICAgY2FzZSBNb2R1bGVUeXBlLmRvY3VtZW50UHJvY2VzczpcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5wcm9jZXNzO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5kZXZpYXRpb246XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5yaXNrOlxyXG4gICAgICAgICAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLnJpc2s7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5kb2N1bWVudDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmVzdWx0SGVpZ2h0KGFycj86IElTZWxlY3RPbmVJdGVtW10pIHtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gNDg0O1xyXG4gICAgICAgIGNvbnN0IHBvcHVwX2NvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbXNsaWJfcmVsYXRlZF9wb3B1cF9jb250ZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgbGluZV9fZGl2aWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmVfX2RpdmlkZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAocG9wdXBfY29udGVudCAmJiBsaW5lX19kaXZpZGVyKSB7XHJcbiAgICAgICAgICAgIG1heEhlaWdodCA9IHRoaXMuZ2V0T2Zmc2V0SGVpZ2h0KHBvcHVwX2NvbnRlbnQsIHRydWUpICsgdGhpcy5nZXRPZmZzZXRIZWlnaHQobGluZV9fZGl2aWRlciwgdHJ1ZSkgKiAyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY29udGVudFJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCB2aWV3cmVwb3J0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3JlbGF0ZWQtdmlld3BvcnQnKVswXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHZpZXdyZXBvcnRzKSB7XHJcbiAgICAgICAgICAgIGlmIChjb250ZW50UmVzdWx0Lm9mZnNldEhlaWdodCA8PSBtYXhIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke2NvbnRlbnRSZXN1bHQub2Zmc2V0SGVpZ2h0fXB4YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWFyY2hSZWxhdGVkKF92YWw6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW107XHJcbiAgICAgICAgaWYgKHR5cGVvZiAoX3ZhbCkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXlDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKCEhX3ZhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KF92YWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldE1vZHVsZUZpbHRlcmVkT3B0aW9ucygpIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0RWwgPSB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kRWwgPSB0aGlzLmZpbHRlcmVkT3B0aW9uc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RFbC5pZCA9PT0gc2Vjb25kRWwuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMuc3BsaWNlKGosIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZWFyY2hSZXN1bHQoKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheVJlbGF0ZWQocmVsYXRlZD86IElTZWxlY3RPbmVJdGVtKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gcmVsYXRlZCA/IHJlbGF0ZWQuaXRlbU5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0SXRlbVNlYXJjaGVkKGl0ZW06IElTZWxlY3RPbmVJdGVtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZz8uc2VsZWN0T25lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHJlc2V0IHRvIHJvb3RcclxuICAgICAgICB0aGlzLmV4cGFuZFRvQ2hpbGROb2RlID0gWycnXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgICBsZXQgbm9kZTogYW55O1xyXG4gICAgICAgIGxldCB0eXBlSWQ6IG51bWJlcjtcclxuXHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHgucm9vdElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHR5cGVJZCA9IGl0ZW0uaXRlbVR5cGU7XHJcblxyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcbiAgICAgICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgICBpZDogbm9kZS5yb290SWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogbm9kZS5yb290TmFtZSB8fCBub2RlLnN1Yk5hbWUsXHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZTogdHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZCxcclxuICAgICAgICAgICAgICAgIGxldmVsVHlwZTogaXRlbS5sZXZlbFR5cGVcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0cmVlTm9kZSA9IHtcclxuICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICBuYW1lOiAhIW5vZGUucm9vdElkID8gbm9kZS5zdWJOYW1lIDogbm9kZS5yb290TmFtZSxcclxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvRm9sZGVyU2VsZWN0aW9uKFt0cmVlTm9kZV0pO1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuZEFuZFNjcm9sbFRvTm9kZSh0cmVlTm9kZSwgbm9kZSk7XHJcbiAgICAgICAgfSwgNTAwKTtcclxuXHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBleHBhbmRBbmRTY3JvbGxUb05vZGUodHJlZU5vZGU6IFRyZWVOb2RlLCBub2RlOiBUcmVlTW9kZWwpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGxldCBwYXJlbnRMaXN0ID0gW107XHJcbiAgICAgICAgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKHggPT4geC5yb290SWQgPT09IG5vZGUucGFyZW50SWQpO1xyXG4gICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgcGFyZW50TGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBwYXJlbnQucm9vdElkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU5hbWU6IHBhcmVudC5yb290TmFtZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnQucGFyZW50SWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHBhcmVudExpc3QgPSB0aGlzLmdldFBhcmVudExpbmVPZk5vZGUocGFyZW50TGlzdCwgcGFyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBhcmVudExpc3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHBhcmVudExpc3QucmV2ZXJzZSgpLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzRWRpdEl0ZW0oeCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNFZGl0SXRlbSh0cmVlTm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFBhcmVudExpbmVPZk5vZGUobGlzdFBhcmVudCwgbm9kZTogVHJlZU1vZGVsKSB7XHJcbiAgICAgICAgbGV0IHBhcmVudDtcclxuICAgICAgICBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoeCA9PiB4LnJvb3RJZCA9PT0gbm9kZS5wYXJlbnRJZCk7XHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICBsaXN0UGFyZW50ID0gWy4uLmxpc3RQYXJlbnQsIHtcclxuICAgICAgICAgICAgICAgIGlkOiBwYXJlbnQucm9vdElkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU5hbWU6IHBhcmVudC5yb290TmFtZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnQucGFyZW50SWRcclxuICAgICAgICAgICAgfV07XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UGFyZW50TGluZU9mTm9kZShsaXN0UGFyZW50LCBwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbGlzdFBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICBmb2N1c0VkaXRJdGVtKHNlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5nZXROb2RlQnlJZEFuZFBhcmVudElkKHNlbGVjdGVkT3B0aW9uLmlkLCBzZWxlY3RlZE9wdGlvbi5wYXJlbnRJZCk7XHJcblxyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5leHBhbmROb2RlKG5vZGUpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYF8ke25vZGUucGFyZW50SWQgPyBub2RlLnBhcmVudElkIDogJyd9XyR7bm9kZS5pZH1fJHtub2RlLmxldmVsfWApO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xvc2VDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRm9sZGVyID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfTtcclxuXHJcbiAgICBvbkFkZENsaWNrKCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGb2xkZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuY2hlY2tlZE5vZGVMaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRPZmZzZXRIZWlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGluY2x1ZGVNYXJnaW46IGJvb2xlYW4pOiBudW1iZXIge1xyXG4gICAgICAgIGxldCBlbG1IZWlnaHQgPSAwLCBlbG1NYXJnaW4gPSAwO1xyXG5cclxuICAgICAgICBlbG1IZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgICBpZiAoaW5jbHVkZU1hcmdpbikge1xyXG4gICAgICAgICAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICBlbG1NYXJnaW4gPSBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpblRvcC5yZXBsYWNlKCdweCcsICcnKSkgKyBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpbkJvdHRvbS5yZXBsYWNlKCdweCcsICcnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gKGVsbUhlaWdodCArIGVsbU1hcmdpbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUNoaXBOYW1lKGl0ZW06IFNlbGVjdGVkTm9kZSkge1xyXG4gICAgICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSBEYXRhVHlwZS5jaGVja2xpc3QgfHwgaXRlbS5pdGVtVHlwZSA9PT0gRGF0YVR5cGUuZGV2aWF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoaXRlbS5wYXJlbnROYW1lICYmIGl0ZW0uaXRlbU5hbWUgIT09IGl0ZW0ucGFyZW50TmFtZSkgPyBgJHtpdGVtLnBhcmVudE5hbWV9LyR7aXRlbS5pdGVtTmFtZX1gIDogaXRlbS5pdGVtTmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uaXRlbU5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFbGxpcHNpc0FjdGl2ZShlOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBlID8gKGUuY2xpZW50V2lkdGggPCBlLnNjcm9sbFdpZHRoKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE5vZGVJY29uKGl0ZW06IElTZWxlY3RPbmVJdGVtKSB7XHJcbiAgICAgICAgc3dpdGNoIChpdGVtLml0ZW1UeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUuZm9sZGVyOiB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGl0ZW0ubGV2ZWxUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkRlcGFydG1lbnRGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGVwYXJ0bWVudF9mb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdpb25hbF9mb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Ub3BGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZW50ZXJwcmlzZV9mb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Gb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnbG9jYWxfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5kb2N1bWVudDoge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChpdGVtLmxldmVsVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RvY3VtZW50X2RlcGFydG1lbnQnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9yZWdpb25hbCc7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLlRvcEZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9lbnRlcnByaXNlJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RvY3VtZW50X2xvY2FsJztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RvY3VtZW50JztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmFyZWE6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Byb2Nlc3NfYXJlYV9vdXRsaW5lZCc7XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUucHJvY2VzczpcclxuICAgICAgICAgICAgICAgIHJldHVybiAncHJvY2Vzcyc7XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZXZpYXRpb24nO1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmNoZWNrbGlzdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnY2hlY2tsaXN0JztcclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5yaXNrOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdyaXNrJztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldFBhcmVudE5hbWUoaXRlbTogSVNlbGVjdE9uZUl0ZW0pIHtcclxuICAgICAgICBpZiAoaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5jaGVja2xpc3QgfHwgaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5kZXZpYXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ucGFyZW50TmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUlkKGl0ZW06IElTZWxlY3RPbmVJdGVtKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUucHJvY2Vzcykge1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5MQU5HLlBST0NFU1NfSUR9OiAke2l0ZW0uaXRlbU51bWJlcklkfTsgJHtpdGVtLnN0YXR1c05hbWV9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5kb2N1bWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5MQU5HLkRPQ1VNRU5UX0lEfTogJHtpdGVtLml0ZW1OdW1iZXJJZH07ICR7aXRlbS5zdGF0dXNOYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzZWxlY3ROb2RlVHJlZUV2ZW50KG5vZGUpIHtcclxuICAgICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgICBsZXQgcGFyZW50TmFtZSA9ICcnO1xyXG4gICAgICAgIGxldCBpdGVtTnVtYmVySWQgPSAnJztcclxuXHJcbiAgICAgICAgcG9zaXRpb24gPSAhbm9kZS5leHBhbmRhYmxlID8gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IG5vZGUuaWQgJiYgcC5yb290SWQgPT09IG5vZGUucGFyZW50SWQpIDpcclxuICAgICAgICAgICAgdGhpcy50cmVlRGF0YS5maW5kSW5kZXgocCA9PiBwLnJvb3RJZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgcGFyZW50TmFtZSA9IHRoaXMudHJlZURhdGFbcG9zaXRpb25dLnBhcmVudElkID8gdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0uc3ViTmFtZSA6IHRoaXMudHJlZURhdGFbcG9zaXRpb25dLnJvb3ROYW1lO1xyXG4gICAgICAgIGl0ZW1OdW1iZXJJZCA9IHRoaXMudHJlZURhdGFbcG9zaXRpb25dPy5kaXNwbGF5SWQ/LnRvU3RyaW5nKCk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgaWQ6IG5vZGUuaWQsXHJcbiAgICAgICAgICAgIGl0ZW1OYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgICAgICAgIGl0ZW1UeXBlOiBub2RlLml0ZW1UeXBlLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCxcclxuICAgICAgICAgICAgcGFyZW50TmFtZTogcGFyZW50TmFtZSxcclxuICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtTnVtYmVySWQsXHJcbiAgICAgICAgICAgIGxldmVsVHlwZTogbm9kZS5sZXZlbFR5cGVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDaGlsZE5vZGVTZWxlY3RPbmUobGlzdENoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUgPSBbXTtcclxuICAgICAgICB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZSA9IGxpc3RDaGlsZHJlbjtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVDaGVja2VkTm9kZUxpc3QoKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbTogVHJlZUZsYXROb2RlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gWy4uLltdLCBpdGVtXTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB9LCA1MDApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LW9uZS9zZWxlY3Qtb25lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFB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eyBDaGFuZ2VEZXRlY3RvclJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEFmdGVyVmlld0NoZWNrZWQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUU1TSWNvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2FwcC1pY29uL2ljb24tcmVnaXN0cnkuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4vY29tbW9uL2RhdGEtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRG9jdW1lbnROb2RlVHlwZSB9IGZyb20gJy4vY29tbW9uL2RvY3VtZW50LWZvbGRlci10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBNb2R1bGVUeXBlIH0gZnJvbSAnLi9jb21tb24vbW9kdWxlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFNob3dIaWRlU2VhcmNoUmVzdWx0Q29uc3QgfSBmcm9tICcuL2NvbW1vbi9zaG93LWhpZGUtc2VhcmNoLXJlc3VsdC5jb25zdCc7XHJcbmltcG9ydCB7IFNlbGVjdE9uZVBvcHVwRGF0YSB9IGZyb20gJy4vY29tbW9uL3NlbGVjdG9uZS1wb3B1cC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgSVNlbGVjdE9uZUl0ZW0gfSBmcm9tICcuL2NvbW1vbi9zZWxlY3QtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdGVkTm9kZSB9IGZyb20gJy4vY29tbW9uL3NlbGVjdGVkLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNTZWxlY3RPbmVHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL3NlbGVjdC1vbmUtZ2xvYmFsLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlRmxhdE5vZGUgfSBmcm9tICcuLi90cmVlL21vZGVsL3RyZWUtZmxhdC1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuLi90cmVlL21vZGVsL3RyZWUtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRyZWVNb2RlbCB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi90cmVlL3RyZWUuY29tcG9uZW50JztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Ftcy1zZWxlY3Qtb25lJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Qtb25lLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1vbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdE9uZURpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIExBTkc6IGFueTtcclxuICAgIG1vZHVsZUlkID0gMDtcclxuICAgIG1vZHVsZU5hbWUgPSAnJztcclxuICAgIHRyZWVEYXRhOiBBcnJheTxUcmVlTW9kZWw+ID0gW107XHJcbiAgICB0cmVlQ29uZmlnOiBUcmVlQ29uZmlnO1xyXG5cclxuICAgIGNoZWNrZWROb2RlTGlzdDogQXJyYXk8U2VsZWN0ZWROb2RlPiA9IFtdO1xyXG4gICAgc2VsZWN0ZWROb2RlOiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcbiAgICBzZWxlY3RlZERhdGE6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuXHJcbiAgICBtb2R1bGUgPSBNb2R1bGVUeXBlO1xyXG4gICAgZGF0YVR5cGUgPSBEYXRhVHlwZTtcclxuICAgIGl0ZW1UeXBlID0gMDtcclxuICAgIHNlbGVjdGVkUmlza0RhdGE6IGFueSA9IFtdO1xyXG4gICAgZGlzYWJsZWRMaXN0OiBhbnkgPSBbXTtcclxuICAgIGV4cGFuZFRvQ2hpbGROb2RlOiBhbnkgPSBbXTtcclxuXHJcbiAgICBpc0NvbW1vbkV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcbiAgICBteUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICAgIGZpbHRlcmVkT3B0aW9uczogSVNlbGVjdE9uZUl0ZW1bXSA9IFtdO1xyXG4gICAgaXNJbnB1dFZhbHVlID0gZmFsc2U7XHJcblxyXG4gICAgc2VsZWN0ZWRGb2xkZXI6IFRyZWVGbGF0Tm9kZSA9IG51bGw7XHJcbiAgICBsaXN0Q2hpbGRyZW5TZWxlY3RPbmU6IGFueSA9IFtdO1xyXG5cclxuICAgIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgb25FeHBhbmRGb2xkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPElTZWxlY3RPbmVJdGVtPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGRyZW4oVHJlZUNvbXBvbmVudCwge30pIGRhdGFUcmVlczogUXVlcnlMaXN0PFRyZWVDb21wb25lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0U2VhcmNoJywgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBzdGF0aWM6IHRydWUgfSlcclxuICAgIGF1dG9Db21wbGV0ZTogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTZWxlY3RPbmVEaWFsb2c+LFxyXG4gICAgICAgIHB1YmxpYyBnbG9iYWxTZXJ2aWNlOiBRTVNTZWxlY3RPbmVHbG9iYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgICAgICBwcml2YXRlIGFwcEljb25TZXJ2aWNlOiBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogU2VsZWN0T25lUG9wdXBEYXRhXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLm1vZHVsZUlkID0gZGF0YS5tb2R1bGVJZDtcclxuICAgICAgICB0aGlzLm1vZHVsZU5hbWUgPSBkYXRhLm1vZHVsZU5hbWU7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YSA9IGRhdGEudHJlZURhdGE7XHJcbiAgICAgICAgdGhpcy50cmVlQ29uZmlnID0gZGF0YS50cmVlQ29uZmlnO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXNrRGF0YSA9IGRhdGE/LnNlbGVjdGVkTm9kZSB8fCBbXTtcclxuICAgICAgICB0aGlzLmRpc2FibGVkTGlzdCA9IGRhdGEuZGlzYWJsZWRMaXN0IHx8IFtdO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kVG9DaGlsZE5vZGUgPSBkYXRhLmV4cGFuZFRvQ2hpbGROb2RlO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyUHJvY2Vzc0ljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyUHJvY2Vzc0FyZWFJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckRvY3VtZW50SWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJGb2xkZXJJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckRldmlhdGlvbkljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyQ2hlY2tsaXN0SWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJSaXNrSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmdsb2JhbFNlcnZpY2Uuc2V0U2VhcmNoUmVsYXRlZChbXSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1lc3NhZ2UnLCBbJyRldmVudCddKVxyXG4gICAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09IFNob3dIaWRlU2VhcmNoUmVzdWx0Q29uc3QuSElERV9TRUFSQ0hfUkVTVUxUKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZWFyY2hSZWxhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSByZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5teUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApKS5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5wdXRWYWx1ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMub25TZWFyY2hSZWxhdGVkKHZhbCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaXRlbVR5cGUgPSB0aGlzLmdldERhdGFUeXBlSWQodGhpcy5tb2R1bGVJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlcmVkT3B0aW9ucyAmJiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UmVzdWx0SGVpZ2h0KCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9Db21wbGV0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZS5jbG9zZVBhbmVsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldERhdGFUeXBlSWQobW9kdWxlSWQ6IG51bWJlcikge1xyXG4gICAgICAgIGxldCBpdGVtVHlwZTtcclxuICAgICAgICBzd2l0Y2ggKG1vZHVsZUlkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5kb2N1bWVudFByb2Nlc3M6XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUucHJvY2VzcztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIE1vZHVsZVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgICAgICAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvbjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIE1vZHVsZVR5cGUuY2hlY2tsaXN0OlxyXG4gICAgICAgICAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIE1vZHVsZVR5cGUucmlzazpcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5yaXNrO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1UeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFJlc3VsdEhlaWdodChhcnI/OiBJU2VsZWN0T25lSXRlbVtdKSB7XHJcbiAgICAgICAgbGV0IG1heEhlaWdodCA9IDQ4NDtcclxuICAgICAgICBjb25zdCBwb3B1cF9jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncW1zbGliX3JlbGF0ZWRfcG9wdXBfY29udGVudCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGxpbmVfX2RpdmlkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsaW5lX19kaXZpZGVyJylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKHBvcHVwX2NvbnRlbnQgJiYgbGluZV9fZGl2aWRlcikge1xyXG4gICAgICAgICAgICBtYXhIZWlnaHQgPSB0aGlzLmdldE9mZnNldEhlaWdodChwb3B1cF9jb250ZW50LCB0cnVlKSArIHRoaXMuZ2V0T2Zmc2V0SGVpZ2h0KGxpbmVfX2RpdmlkZXIsIHRydWUpICogMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRSZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyJylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3Qgdmlld3JlcG9ydHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZWxhdGVkLXZpZXdwb3J0JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmICh2aWV3cmVwb3J0cykge1xyXG4gICAgICAgICAgICBpZiAoY29udGVudFJlc3VsdC5vZmZzZXRIZWlnaHQgPD0gbWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB2aWV3cmVwb3J0cy5zdHlsZS5oZWlnaHQgPSBgJHtjb250ZW50UmVzdWx0Lm9mZnNldEhlaWdodH1weGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB2aWV3cmVwb3J0cy5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uU2VhcmNoUmVsYXRlZChfdmFsOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFtdO1xyXG4gICAgICAgIGlmICh0eXBlb2YgKF92YWwpID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICB0aGlzLm15Q29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiAoX3ZhbCkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGlmICghIV92YWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TZWFyY2guZW1pdChfdmFsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRNb2R1bGVGaWx0ZXJlZE9wdGlvbnMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lLmxlbmd0aCAmJiB0aGlzLmRpc2FibGVkTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RFbCA9IHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWNvbmRFbCA9IHRoaXMuZmlsdGVyZWRPcHRpb25zW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEVsLmlkID09PSBzZWNvbmRFbC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5zcGxpY2UoaiwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZE9wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd1NlYXJjaFJlc3VsdCgpIHtcclxuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZS5vcGVuUGFuZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5UmVsYXRlZChyZWxhdGVkPzogSVNlbGVjdE9uZUl0ZW0pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiByZWxhdGVkID8gcmVsYXRlZC5pdGVtTmFtZSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RJdGVtU2VhcmNoZWQoaXRlbTogSVNlbGVjdE9uZUl0ZW0pIHtcclxuICAgICAgICAvLyByZXNldCB0byByb290XHJcbiAgICAgICAgdGhpcy5leHBhbmRUb0NoaWxkTm9kZSA9IFsnJ107XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuXHJcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gLTE7XHJcbiAgICAgICAgbGV0IG5vZGU6IGFueTtcclxuICAgICAgICBsZXQgdHlwZUlkOiBudW1iZXI7XHJcbiAgICAgICAgbGV0IHRyZWVOb2RlRHVwOiBhbnk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRyZWVDb25maWcuY2FuSGF2ZUR1cElkKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0ucGFyZW50SWQgJiYgeC5jaGlsZElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHgucm9vdElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHlwZUlkID0gaXRlbS5pdGVtVHlwZTtcclxuXHJcbiAgICAgICAgaWYgKHBvc2l0aW9uID49IDApIHtcclxuICAgICAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGFbcG9zaXRpb25dO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLnRyZWVDb25maWcuY2FuSGF2ZUR1cElkID8gbm9kZS5jaGlsZElkIDogbm9kZS5yb290SWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogdGhpcy50cmVlQ29uZmlnLmNhbkhhdmVEdXBJZCA/IG5vZGUuY2hpbGROYW1lIDogbm9kZS5yb290TmFtZSB8fCBub2RlLnN1Yk5hbWUsXHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZTogdHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZCxcclxuICAgICAgICAgICAgICAgIGxldmVsVHlwZTogaXRlbS5sZXZlbFR5cGUsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5yb290SWRcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQpIHtcclxuICAgICAgICAgICAgdHJlZU5vZGVEdXAgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogbm9kZS5jaGlsZElkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogISFub2RlLnJvb3RJZCA/IG5vZGUuc3ViTmFtZSA6IG5vZGUucm9vdE5hbWUsXHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5yb290SWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0cmVlTm9kZSA9IHtcclxuICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICBuYW1lOiAhIW5vZGUucm9vdElkID8gbm9kZS5zdWJOYW1lIDogbm9kZS5yb290TmFtZSxcclxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0ZvbGRlclNlbGVjdGlvbihbdGhpcy50cmVlQ29uZmlnLmNhbkhhdmVEdXBJZCA/IHRyZWVOb2RlRHVwIDogdHJlZU5vZGVdKTtcclxuICAgICAgICAgICAgdGhpcy5leHBhbmRBbmRTY3JvbGxUb05vZGUodGhpcy50cmVlQ29uZmlnLmNhbkhhdmVEdXBJZCA/IHRyZWVOb2RlRHVwIDogdHJlZU5vZGUsIG5vZGUpO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBleHBhbmRBbmRTY3JvbGxUb05vZGUodHJlZU5vZGU6IFRyZWVOb2RlLCBub2RlOiBUcmVlTW9kZWwpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGxldCBwYXJlbnRMaXN0ID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQpIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKHggPT4geC5yb290SWQgPT09IG5vZGUucm9vdElkICYmIHguY2hpbGRJZCA9PT0gbm9kZS5jaGlsZElkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoeCA9PiB4LnJvb3RJZCA9PT0gbm9kZS5wYXJlbnRJZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgICAgIHBhcmVudExpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogcGFyZW50LnJvb3RJZCxcclxuICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiBwYXJlbnQucm9vdE5hbWUsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50LnBhcmVudElkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBwYXJlbnRMaXN0ID0gdGhpcy5nZXRQYXJlbnRMaW5lT2ZOb2RlKHBhcmVudExpc3QsIHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudExpc3QudW5zaGlmdCh0cmVlTm9kZSk7XHJcblxyXG4gICAgICAgIHBhcmVudExpc3QucmV2ZXJzZSgpLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNFZGl0SXRlbSh4KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGFyZW50TGluZU9mTm9kZShsaXN0UGFyZW50LCBub2RlOiBUcmVlTW9kZWwpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIHBhcmVudCA9IHRoaXMudHJlZURhdGEuZmluZCh4ID0+IHgucm9vdElkID09PSBub2RlLnBhcmVudElkKTtcclxuXHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICBsaXN0UGFyZW50LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHBhcmVudC5yb290SWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogcGFyZW50LnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudC5wYXJlbnRJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5nZXRQYXJlbnRMaW5lT2ZOb2RlKGxpc3RQYXJlbnQsIHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbGlzdFBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICBmb2N1c0VkaXRJdGVtKHNlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5nZXROb2RlQnlJZEFuZFBhcmVudElkKHNlbGVjdGVkT3B0aW9uLmlkLCBzZWxlY3RlZE9wdGlvbi5wYXJlbnRJZCk7XHJcblxyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5leHBhbmROb2RlKG5vZGUpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYF8ke25vZGUucGFyZW50SWQgPyBub2RlLnBhcmVudElkLnRvTG93ZXJDYXNlKCkgOiAnJ31fJHtub2RlLmlkLnRvTG93ZXJDYXNlKCl9XyR7bm9kZS5sZXZlbH1gKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH07XHJcblxyXG4gICAgb25BZGRDbGljaygpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRm9sZGVyID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmNoZWNrZWROb2RlTGlzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0T2Zmc2V0SGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpbmNsdWRlTWFyZ2luOiBib29sZWFuKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgZWxtSGVpZ2h0ID0gMCwgZWxtTWFyZ2luID0gMDtcclxuXHJcbiAgICAgICAgZWxtSGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgaWYgKGluY2x1ZGVNYXJnaW4pIHtcclxuICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAgICAgICAgICAgZWxtTWFyZ2luID0gcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Ub3AucmVwbGFjZSgncHgnLCAnJykpICsgcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Cb3R0b20ucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIChlbG1IZWlnaHQgKyBlbG1NYXJnaW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1DaGlwTmFtZShpdGVtOiBTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICBpZiAoaXRlbS5pdGVtVHlwZSA9PT0gRGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IERhdGFUeXBlLmRldmlhdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gKGl0ZW0ucGFyZW50TmFtZSAmJiBpdGVtLml0ZW1OYW1lICE9PSBpdGVtLnBhcmVudE5hbWUpID8gYCR7aXRlbS5wYXJlbnROYW1lfS8ke2l0ZW0uaXRlbU5hbWV9YCA6IGl0ZW0uaXRlbU5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtLml0ZW1OYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRWxsaXBzaXNBY3RpdmUoZTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZSA/IChlLmNsaWVudFdpZHRoIDwgZS5zY3JvbGxXaWR0aCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXROb2RlSWNvbihpdGVtOiBJU2VsZWN0T25lSXRlbSkge1xyXG4gICAgICAgIHN3aXRjaCAoaXRlbS5pdGVtVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmZvbGRlcjoge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChpdGVtLmxldmVsVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RlcGFydG1lbnRfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2VudGVycHJpc2VfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2xvY2FsX2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdmb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5sZXZlbFR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRGVwYXJ0bWVudEZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9kZXBhcnRtZW50JztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfcmVnaW9uYWwnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Ub3BGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfZW50ZXJwcmlzZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9sb2NhbCc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5hcmVhOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdwcm9jZXNzX2FyZWFfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLnByb2Nlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Byb2Nlc3MnO1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmRldmlhdGlvbjpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZGV2aWF0aW9uJztcclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NoZWNrbGlzdCc7XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUucmlzazpcclxuICAgICAgICAgICAgICAgIHJldHVybiAncmlzayc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXRQYXJlbnROYW1lKGl0ZW06IElTZWxlY3RPbmVJdGVtKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtLnBhcmVudE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1JZChpdGVtOiBJU2VsZWN0T25lSXRlbSkge1xyXG4gICAgICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLnByb2Nlc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5QUk9DRVNTX0lEfTogJHtpdGVtLml0ZW1OdW1iZXJJZH07ICR7aXRlbS5zdGF0dXNOYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5ET0NVTUVOVF9JRH06ICR7aXRlbS5pdGVtTnVtYmVySWR9OyAke2l0ZW0uc3RhdHVzTmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2VsZWN0Tm9kZVRyZWVFdmVudChub2RlKSB7XHJcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gLTE7XHJcbiAgICAgICAgbGV0IHBhcmVudE5hbWUgPSAnJztcclxuICAgICAgICBsZXQgaXRlbU51bWJlcklkID0gJyc7XHJcblxyXG4gICAgICAgIHBvc2l0aW9uID0gIW5vZGUuZXhwYW5kYWJsZSA/IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBub2RlLmlkICYmIHAucm9vdElkID09PSBub2RlLnBhcmVudElkKSA6XHJcbiAgICAgICAgICAgIHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5yb290SWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICAgIHBhcmVudE5hbWUgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5wYXJlbnRJZCA/IHRoaXMudHJlZURhdGFbcG9zaXRpb25dLnN1Yk5hbWUgOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5yb290TmFtZTtcclxuICAgICAgICBpdGVtTnVtYmVySWQgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXT8uZGlzcGxheUlkPy50b1N0cmluZygpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogbm9kZS5pdGVtVHlwZSxcclxuICAgICAgICAgICAgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQsXHJcbiAgICAgICAgICAgIHBhcmVudE5hbWU6IHBhcmVudE5hbWUsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbU51bWJlcklkLFxyXG4gICAgICAgICAgICBsZXZlbFR5cGU6IG5vZGUubGV2ZWxUeXBlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2hpbGROb2RlU2VsZWN0T25lKGxpc3RDaGlsZHJlbikge1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lID0gW107XHJcbiAgICAgICAgdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUgPSBsaXN0Q2hpbGRyZW47XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW06IFRyZWVGbGF0Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IFsuLi5bXSwgaXRlbV07XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -10,4 +10,4 @@ export class SelectProcessDocumentPopupData {
10
10
  this.splitView = false;
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LXByb2Nlc3MtZG9jdW1lbnQvbW9kZWxzL3BvcC11cC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyw4QkFBOEI7SUFjekM7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gXCIuLi8uLi90cmVlL21vZGVsL3RyZWUtY29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IE5ld1RyZWVNb2RlbCB9IGZyb20gXCIuLi8uLi90cmVlTmV3L21vZGVsL3RyZWUubW9kZWxcIjtcclxuZXhwb3J0IGNsYXNzIFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwRGF0YSB7XHJcbiAgbW9kdWxlSWQ6IG51bWJlcjtcclxuICBtb2R1bGVOYW1lOiBzdHJpbmc7XHJcbiAgdHJlZURhdGExOiBBcnJheTxOZXdUcmVlTW9kZWw+O1xyXG4gIHRyZWVEYXRhMjogQXJyYXk8TmV3VHJlZU1vZGVsPjtcclxuICB0cmVlQ29uZmlnMTogVHJlZUNvbmZpZztcclxuICB0cmVlQ29uZmlnMjogVHJlZUNvbmZpZztcclxuICBzZWxlY3RlZE5vZGU/OiBBcnJheTxhbnk+O1xyXG4gIGRpc2FibGVkTGlzdD86IEFycmF5PGFueT47XHJcbiAgZGlzYWJsZWRMaXN0Mj86IEFycmF5PGFueT47XHJcbiAgc3BsaXRWaWV3PzogYm9vbGVhbjtcclxuICBpc1NlbGVjdE9uZT86IGJvb2xlYW47XHJcbiAgY2FuT25seVNlbGVjdEl0ZW0/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMubW9kdWxlSWQgPSAwO1xyXG4gICAgdGhpcy5tb2R1bGVOYW1lID0gJyc7XHJcbiAgICB0aGlzLnRyZWVEYXRhMSA9IFtdO1xyXG4gICAgdGhpcy50cmVlRGF0YTIgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gW107XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5kaXNhYmxlZExpc3QyID0gW107XHJcbiAgICB0aGlzLnNwbGl0VmlldyA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LXByb2Nlc3MtZG9jdW1lbnQvbW9kZWxzL3BvcC11cC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyw4QkFBOEI7SUFlekM7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gXCIuLi8uLi90cmVlL21vZGVsL3RyZWUtY29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IE5ld1RyZWVNb2RlbCB9IGZyb20gXCIuLi8uLi90cmVlTmV3L21vZGVsL3RyZWUubW9kZWxcIjtcclxuZXhwb3J0IGNsYXNzIFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwRGF0YSB7XHJcbiAgbW9kdWxlSWQ6IG51bWJlcjtcclxuICBtb2R1bGVOYW1lOiBzdHJpbmc7XHJcbiAgdHJlZURhdGExOiBBcnJheTxOZXdUcmVlTW9kZWw+O1xyXG4gIHRyZWVEYXRhMjogQXJyYXk8TmV3VHJlZU1vZGVsPjtcclxuICB0cmVlQ29uZmlnMTogVHJlZUNvbmZpZztcclxuICB0cmVlQ29uZmlnMjogVHJlZUNvbmZpZztcclxuICBzZWxlY3RlZE5vZGU/OiBBcnJheTxhbnk+O1xyXG4gIGRpc2FibGVkTGlzdD86IEFycmF5PGFueT47XHJcbiAgZGlzYWJsZWRMaXN0Mj86IEFycmF5PGFueT47XHJcbiAgc3BsaXRWaWV3PzogYm9vbGVhbjtcclxuICBpc1NlbGVjdE9uZT86IGJvb2xlYW47XHJcbiAgY2FuT25seVNlbGVjdEl0ZW0/OiBib29sZWFuO1xyXG4gIGhpZGVTcGxpdHZpZXdDaGVja2JveD86IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5tb2R1bGVJZCA9IDA7XHJcbiAgICB0aGlzLm1vZHVsZU5hbWUgPSAnJztcclxuICAgIHRoaXMudHJlZURhdGExID0gW107XHJcbiAgICB0aGlzLnRyZWVEYXRhMiA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBbXTtcclxuICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdDIgPSBbXTtcclxuICAgIHRoaXMuc3BsaXRWaWV3ID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==