@hmcts/ccd-case-ui-toolkit 7.0.21-cfv-accessibility → 7.0.21-markdown-pre-release

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.
Files changed (23) hide show
  1. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +83 -38
  2. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +6 -5
  3. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +3 -3
  4. package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +1 -1
  5. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +3 -3
  6. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +5 -5
  7. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +20 -3
  8. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +1 -1
  9. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +4 -1
  10. package/esm2020/lib/shared/services/form/form-validators.service.mjs +27 -2
  11. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +205 -106
  12. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  13. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +196 -106
  14. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  15. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +8 -3
  16. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  17. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
  18. package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -1
  19. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  20. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  21. package/lib/shared/services/form/form-validators.service.d.ts +4 -0
  22. package/lib/shared/services/form/form-validators.service.d.ts.map +1 -1
  23. package/package.json +1 -1
@@ -306,7 +306,7 @@ CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE = 'Uncategorised docum
306
306
  CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME = 'documentSearchFormControl';
307
307
  CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS = 1;
308
308
  CaseFileViewFolderComponent.ɵfac = function CaseFileViewFolderComponent_Factory(t) { return new (t || CaseFileViewFolderComponent)(i0.ɵɵdirectiveInject(i1.WindowService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i1.DocumentManagementService), i0.ɵɵdirectiveInject(i3.MatLegacyDialog), i0.ɵɵdirectiveInject(i4.AbstractAppConfig)); };
309
- CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", "aria-label", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options"], [3, "allowMoving", "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
309
+ CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options"], [3, "allowMoving", "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
310
310
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
311
311
  i0.ɵɵelement(2, "input", 2);
312
312
  i0.ɵɵelementEnd()();
@@ -327,7 +327,7 @@ CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
327
327
  } }, dependencies: [i5.NgIf, i6.DefaultValueAccessor, i6.NgControlStatus, i6.NgControlStatusGroup, i6.FormGroupDirective, i6.FormControlName, i7.CdkNestedTreeNode, i7.CdkTreeNodeDef, i7.CdkTreeNodeToggle, i7.CdkTree, i7.CdkTreeNodeOutlet, i8.CaseFileViewFolderSortComponent, i9.CaseFileViewFolderDocumentActionsComponent], styles: ["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column}[_nghost-%COMP%] .document-tree-container[_ngcontent-%COMP%]{flex:1 0}.document-filter-container[_ngcontent-%COMP%]{border-bottom:2px solid #C9C9C9}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{padding:10px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%] .document-search[_ngcontent-%COMP%]{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-tree-container[_ngcontent-%COMP%]{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node[_ngcontent-%COMP%]{display:block}.document-tree-container__node[_ngcontent-%COMP%] .document-tree-container__node[_ngcontent-%COMP%]{padding-left:40px}.document-tree-container[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:7px}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-button{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title[_ngcontent-%COMP%]{font-weight:700}.node[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected[_ngcontent-%COMP%]{background:#fff2cc}.node__icon[_ngcontent-%COMP%]{position:relative;display:inline-block}.node__count[_ngcontent-%COMP%]{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg[_ngcontent-%COMP%]{display:block;height:30px;width:30px}.node__name[_ngcontent-%COMP%]{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options[_ngcontent-%COMP%]{margin-left:auto;margin-right:0}.node__document-upload-timestamp[_ngcontent-%COMP%]{font-size:.8rem;float:left;padding-left:10px}"] });
328
328
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
329
329
  type: Component,
330
- args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"\n aria-label=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
330
+ args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
331
331
  }], function () { return [{ type: i1.WindowService }, { type: i2.Router }, { type: i1.DocumentManagementService }, { type: i3.MatLegacyDialog }, { type: i4.AbstractAppConfig }]; }, { categoriesAndDocuments: [{
332
332
  type: Input
333
333
  }], allowMoving: [{
@@ -337,4 +337,4 @@ CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
337
337
  }], moveDocument: [{
338
338
  type: Output
339
339
  }] }); })();
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QjtrQkFBckMsS0FBSztZQUNVLFdBQVc7a0JBQTFCLEtBQUs7WUFDVyxlQUFlO2tCQUEvQixNQUFNO1lBQ1UsWUFBWTtrQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5lc3RlZFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQge1xuICBDYXNlRmlsZVZpZXdDYXRlZ29yeSxcbiAgQ2FzZUZpbGVWaWV3RG9jdW1lbnQsXG4gIENhdGVnb3JpZXNBbmREb2N1bWVudHMsXG4gIERvY3VtZW50VHJlZU5vZGUsXG4gIERvY3VtZW50VHJlZU5vZGVUeXBlXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLWZpbGUtdmlldyc7XG5pbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vc29ydC1vcmRlci5lbnVtJztcbmltcG9ydCB7IERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UsIFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2Nhc2UtZmlsZS12aWV3LWZvbGRlci1zZWxlY3Rvci9jYXNlLWZpbGUtdmlldy1mb2xkZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCBjb25zdCBNRURJQV9WSUVXRVJfTE9DQUxTVE9SQUdFX0tFWSA9ICdtZWRpYS12aWV3ZXItaW5mbyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEUgPSAnVW5jYXRlZ29yaXNlZCBkb2N1bWVudHMnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUUgPSAnZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1JTklNVU1fU0VBUkNIX0NIQVJBQ1RFUlMgPSAxO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzOiBPYnNlcnZhYmxlPENhdGVnb3JpZXNBbmREb2N1bWVudHM+O1xuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dNb3Zpbmc6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xpY2tlZERvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxEb2N1bWVudFRyZWVOb2RlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIG1vdmVEb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuZXdDYXRlZ29yeTogc3RyaW5nLCBkb2N1bWVudDogRG9jdW1lbnRUcmVlTm9kZSB9PigpO1xuXG4gIHB1YmxpYyBuZXN0ZWRUcmVlQ29udHJvbDogTmVzdGVkVHJlZUNvbnRyb2w8RG9jdW1lbnRUcmVlTm9kZT47XG4gIHB1YmxpYyBuZXN0ZWREYXRhU291cmNlOiBEb2N1bWVudFRyZWVOb2RlW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzOiBDYXNlRmlsZVZpZXdDYXRlZ29yeVtdID0gW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBzZWxlY3RlZE5vZGVJdGVtOiBEb2N1bWVudFRyZWVOb2RlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBkb2N1bWVudEZpbHRlckZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBkb2N1bWVudFRyZWVEYXRhOiBEb2N1bWVudFRyZWVOb2RlW107XG4gIHB1YmxpYyBkb2N1bWVudEZpbHRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgc2VhcmNoVGVybUxlbmd0aDogbnVtYmVyO1xuXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW4gPSAobm9kZTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gb2Yobm9kZS5jaGlsZHJlbik7XG4gIHB1YmxpYyBuZXN0ZWRDaGlsZHJlbiA9IChfOiBudW1iZXIsIG5vZGVEYXRhOiBEb2N1bWVudFRyZWVOb2RlKSA9PiBub2RlRGF0YS5jaGlsZHJlbjtcbiAgcHVibGljIGdldCBkb2N1bWVudENvdW50KCkge1xuICAgIGlmICh0aGlzLm5lc3RlZERhdGFTb3VyY2U/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMubmVzdGVkRGF0YVNvdXJjZS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gYWNjICsgaXRlbS5jaGlsZERvY3VtZW50Q291bnQ7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlOiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnXG4gICkge1xuICAgIHRoaXMubmVzdGVkVHJlZUNvbnRyb2wgPSBuZXcgTmVzdGVkVHJlZUNvbnRyb2w8RG9jdW1lbnRUcmVlTm9kZT4odGhpcy5nZXRDaGlsZHJlbik7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudEZpbHRlckZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgdGhpcy5kb2N1bWVudEZpbHRlckZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudC5ET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUUsIHRoaXMuZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbCk7XG5cbiAgICAvLyBMaXN0ZW4gdG8gc2VhcmNoIGlucHV0IGFuZCBpbml0aWF0ZSBmaWx0ZXIgZG9jdW1lbnRzIGlmIGF0IGxlYXN0IHRocmVlIGNoYXJhY3RlcnMgZW50ZXJlZFxuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YXAoKHNlYXJjaFRlcm06IHN0cmluZykgPT4gdGhpcy5zZWFyY2hUZXJtTGVuZ3RoID0gc2VhcmNoVGVybS5sZW5ndGgpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHRoaXMuZmlsdGVyKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkucGlwZSgpKVxuICAgICkuc3Vic2NyaWJlKGRvY3VtZW50VHJlZURhdGEgPT4ge1xuICAgICAgdGhpcy5uZXN0ZWREYXRhU291cmNlID0gZG9jdW1lbnRUcmVlRGF0YTtcbiAgICAgIHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZGF0YU5vZGVzID0gZG9jdW1lbnRUcmVlRGF0YTtcbiAgICAgIHRoaXMuc2VhcmNoVGVybUxlbmd0aCA+PSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuTUlOSU1VTV9TRUFSQ0hfQ0hBUkFDVEVSU1xuICAgICAgICA/IHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZXhwYW5kQWxsKClcbiAgICAgICAgOiB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIGlucHV0IGNhdGVnb3JpZXMgYW5kIGRvY3VtZW50cywgYW5kIGdlbmVyYXRlIHRyZWUgZGF0YSBhbmQgaW5pdGlhbGlzZSBjZGsgdHJlZVxuICAgIHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbiA9IHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50cy5zdWJzY3JpYmUoY2F0ZWdvcmllc0FuZERvY3VtZW50cyA9PiB7XG4gICAgICBjb25zdCBjYXRlZ29yaWVzID0gY2F0ZWdvcmllc0FuZERvY3VtZW50cy5jYXRlZ29yaWVzO1xuICAgICAgdGhpcy5jYXRlZ29yaWVzID0gY2F0ZWdvcmllcztcbiAgICAgIC8vIEdlbmVyYXRlIGRvY3VtZW50IHRyZWUgZGF0YSBmcm9tIGNhdGVnb3JpZXNcbiAgICAgIHRoaXMuZG9jdW1lbnRUcmVlRGF0YSA9IHRoaXMuZ2VuZXJhdGVUcmVlRGF0YShjYXRlZ29yaWVzKTtcbiAgICAgIC8vIEFwcGVuZCB1bmNhdGVnb3Jpc2VkIGRvY3VtZW50c1xuICAgICAgaWYgKGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMgJiYgY2F0ZWdvcmllc0FuZERvY3VtZW50cy51bmNhdGVnb3Jpc2VkX2RvY3VtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHVuY2F0ZWdvcmlzZWREb2N1bWVudHMgPSB0aGlzLmdldFVuY2F0ZWdvcmlzZWREb2N1bWVudHMoY2F0ZWdvcmllc0FuZERvY3VtZW50cy51bmNhdGVnb3Jpc2VkX2RvY3VtZW50cyk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5wdXNoKHVuY2F0ZWdvcmlzZWREb2N1bWVudHMpO1xuICAgICAgfVxuXG4gICAgICAvLyBJbml0aWFsaXNlIGNkayB0cmVlIHdpdGggZ2VuZXJhdGVkIGRhdGFcbiAgICAgIHRoaXMubmVzdGVkRGF0YVNvdXJjZSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICAgIHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZGF0YU5vZGVzID0gdGhpcy5kb2N1bWVudFRyZWVEYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlVHJlZURhdGEoY2F0ZWdvcmllczogQ2FzZUZpbGVWaWV3Q2F0ZWdvcnlbXSk6IERvY3VtZW50VHJlZU5vZGVbXSB7XG4gICAgcmV0dXJuIGNhdGVnb3JpZXMucmVkdWNlKCh0cmVlLCBub2RlKSA9PiB7XG4gICAgICBjb25zdCBuZXdEb2N1bWVudFRyZWVOb2RlID0gbmV3IERvY3VtZW50VHJlZU5vZGUoKTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUubmFtZSA9IG5vZGUuY2F0ZWdvcnlfbmFtZTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUudHlwZSA9IERvY3VtZW50VHJlZU5vZGVUeXBlLkZPTERFUjtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUuY2hpbGRyZW4gPSBbLi4udGhpcy5nZW5lcmF0ZVRyZWVEYXRhKG5vZGUuc3ViX2NhdGVnb3JpZXMpLCAuLi50aGlzLmdldERvY3VtZW50cyhub2RlLmRvY3VtZW50cyldO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi50cmVlLFxuICAgICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLFxuICAgICAgXTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRzKGRvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGVbXSB7XG4gICAgY29uc3QgZG9jdW1lbnRzVG9SZXR1cm46IERvY3VtZW50VHJlZU5vZGVbXSA9IFtdO1xuICAgIGRvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVknKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHNUb1JldHVybi5wdXNoKGRvY3VtZW50VHJlZU5vZGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRvY3VtZW50c1RvUmV0dXJuO1xuICB9XG5cbiAgcHVibGljIGdldFVuY2F0ZWdvcmlzZWREb2N1bWVudHModW5jYXRlZ29yaXNlZERvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGUge1xuICAgIGNvbnN0IGRvY3VtZW50czogRG9jdW1lbnRUcmVlTm9kZVtdID0gW107XG4gICAgdW5jYXRlZ29yaXNlZERvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVknKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHMucHVzaChkb2N1bWVudFRyZWVOb2RlKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHVuY2F0ZWdvcmlzZWROb2RlID0gbmV3IERvY3VtZW50VHJlZU5vZGUoKTtcbiAgICB1bmNhdGVnb3Jpc2VkTm9kZS5uYW1lID0gQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50LlVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFO1xuICAgIHVuY2F0ZWdvcmlzZWROb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVI7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUuY2hpbGRyZW4gPSBkb2N1bWVudHM7XG5cbiAgICByZXR1cm4gdW5jYXRlZ29yaXNlZE5vZGU7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8RG9jdW1lbnRUcmVlTm9kZVtdPiB7XG4gICAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGRhdGEgc28gd2UgZG8gbm90IG11dGF0ZSB0aGUgb3JpZ2luYWxcbiAgICBmdW5jdGlvbiBjb3B5KG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZG9jdW1lbnRUcmVlTm9kZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICBpZiAoc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+PSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuTUlOSU1VTV9TRUFSQ0hfQ0hBUkFDVEVSUyAmJiB0aGlzLmRvY3VtZW50RmlsdGVyRm9ybUdyb3VwLmNvbnRyb2xzW0Nhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudC5ET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUVdLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5tYXAoY29weSkuZmlsdGVyKGZ1bmN0aW9uIGZpbHRlclRyZWVEYXRhKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUubmFtZSAmJiBub2RlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSAmJiBub2RlLnR5cGUgPT09IERvY3VtZW50VHJlZU5vZGVUeXBlLkRPQ1VNRU5UKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsbCByZWN1cnNpdmVseSBpZiBub2RlIGhhcyBjaGlsZHJlblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybiAobm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ubWFwKGNvcHkpLmZpbHRlcihmaWx0ZXJUcmVlRGF0YSkpLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvZihmaWx0ZXJlZERhdGEpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJEb2N1bWVudEFjdGlvbihcbiAgICBhY3Rpb25UeXBlOiAnY2hhbmdlRm9sZGVyJyB8ICdvcGVuSW5BTmV3VGFiJyB8ICdkb3dubG9hZCcgfCAncHJpbnQnLFxuICAgIGRvY3VtZW50VHJlZU5vZGU6IERvY3VtZW50VHJlZU5vZGVcbiAgKTogdm9pZCB7XG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICgnY2hhbmdlRm9sZGVyJyk6XG4gICAgICAgIHRoaXMub3Blbk1vdmVEaWFsb2coZG9jdW1lbnRUcmVlTm9kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ29wZW5JbkFOZXdUYWInKTpcbiAgICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfTE9DQUxTVE9SQUdFX0tFWSxcbiAgICAgICAgICB0aGlzLmRvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZ2V0TWVkaWFWaWV3ZXJJbmZvKHtcbiAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCxcbiAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBkb2N1bWVudFRyZWVOb2RlLmRvY3VtZW50X2ZpbGVuYW1lXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMud2luZG93U2VydmljZS5vcGVuT25OZXdUYWIoXG4gICAgICAgICAgdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy9tZWRpYS12aWV3ZXInXSk/LnRvU3RyaW5nKClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICgnZG93bmxvYWQnKTpcbiAgICAgICAgLy8gQ3JlYXRlIGEgVVJMIGZyb20gdGhlIGRvY3VtZW50X2JpbmFyeV91cmwgcHJvcGVydHkgKGFic29sdXRlIFVSTCkgYW5kIHVzZSB0aGUgcGF0aCBwb3J0aW9uIChyZWxhdGl2ZSBVUkwpLlxuICAgICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBNYW5hZ2UgQ2FzZXMgYXBwbGljYXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGx5IGEgcHJveHkgdG8gdGhlIHJlcXVlc3QsIHdpdGhcbiAgICAgICAgLy8gdGhlIGNvcnJlY3QgcmVtb3RlIGVuZHBvaW50XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKG5ldyBVUkwoZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9iaW5hcnlfdXJsKS5wYXRobmFtZSwgZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9maWxlbmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ3ByaW50Jyk6XG4gICAgICAgIHRoaXMucHJpbnREb2N1bWVudChuZXcgVVJMKGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCkucGF0aG5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VBc2NlbmRpbmcoY29sdW1uOiBudW1iZXIpIHtcbiAgICBjb25zdCBzb3J0ZWREYXRhID0gdGhpcy5uZXN0ZWREYXRhU291cmNlLm1hcChpdGVtID0+IHtcbiAgICAgIGl0ZW0uc29ydENoaWxkcmVuQXNjZW5kaW5nKGNvbHVtbiwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VEZXNjZW5kaW5nKGNvbHVtbjogbnVtYmVyKSB7XG4gICAgY29uc3Qgc29ydGVkRGF0YSA9IHRoaXMubmVzdGVkRGF0YVNvdXJjZS5tYXAoaXRlbSA9PiB7XG4gICAgICBpdGVtLnNvcnRDaGlsZHJlbkRlc2NlbmRpbmcoY29sdW1uLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTm9kZURhdGEoZGF0YTogRG9jdW1lbnRUcmVlTm9kZVtdKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlNlbGVjdGVkID0gdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5leHBhbnNpb25Nb2RlbC5zZWxlY3RlZC5tYXAoXG4gICAgICAoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbS5uYW1lO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5uZXN0ZWREYXRhU291cmNlID0gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0RvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS50eXBlID0gaXRlbS50eXBlO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5jaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgIHJldHVybiBuZXdEb2N1bWVudFRyZWVOb2RlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkQXJyYXkgPSB0aGlzLm5lc3RlZERhdGFTb3VyY2UubWFwKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5mbGF0dGVuZWRBbGw7XG4gICAgfSkuZmxhdCgpO1xuICAgIGNvbnN0IG5ld09iamVjdHMgPSBmbGF0dGVuZWRBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBwcmV2U2VsZWN0ZWQuaW5jbHVkZXMoaXRlbS5uYW1lKTtcbiAgICB9KTtcbiAgICBuZXdPYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZXhwYW5kKG9iamVjdCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuTW92ZURpYWxvZyhub2RlOiBEb2N1bWVudFRyZWVOb2RlKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMsIGRvY3VtZW50OiBub2RlIH1cbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShuZXdDYXRJZCA9PiB7XG4gICAgICBpZiAobmV3Q2F0SWQpIHtcbiAgICAgICAgdGhpcy5tb3ZlRG9jdW1lbnQuZW1pdCh7IG5ld0NhdGVnb3J5OiBuZXdDYXRJZCwgZG9jdW1lbnQ6IG5vZGUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnREb2N1bWVudCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHByaW50V2luZG93ID0gd2luZG93Lm9wZW4odXJsKTtcbiAgICBwcmludFdpbmRvdy5wcmludCgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkRmlsZSh1cmw6IHN0cmluZywgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBkb3dubG9hZEZpbGVOYW1lO1xuICAgIGEuY2xpY2soKTtcbiAgICBhLnJlbW92ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtZmlsdGVyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBkb2N1bWVudC1maWx0ZXJcIiBbZm9ybUdyb3VwXT1cImRvY3VtZW50RmlsdGVyRm9ybUdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGRvY3VtZW50LXNlYXJjaFwiXG4gICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgIGlkPVwiZG9jdW1lbnQtc2VhcmNoXCJcbiAgICAgIG5hbWU9XCJkb2N1bWVudFNlYXJjaEZvcm1Db250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZG9jdW1lbnQgbmFtZVwiXG4gICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGJ5IGRvY3VtZW50IG5hbWVcIj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50LWZvbGRlcnMtaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudC1mb2xkZXJzLWhlYWRlcl9fdGl0bGVcIj5Eb2N1bWVudHMgKHt7IGRvY3VtZW50Q291bnQgfX0pPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydFxuICAgICAgKHNvcnRBc2NlbmRpbmcpPVwic29ydERhdGFTb3VyY2VBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAoc29ydERlc2NlbmRpbmcpPVwic29ydERhdGFTb3VyY2VEZXNjZW5kaW5nKCRldmVudClcIlxuICAgID48L2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50LXRyZWUtY29udGFpbmVyXCIgKm5nSWY9XCJkb2N1bWVudFRyZWVEYXRhXCI+XG4gIDxkaXYgKm5nSWY9XCIhbmVzdGVkRGF0YVNvdXJjZSB8fCBuZXN0ZWREYXRhU291cmNlLmxlbmd0aCA9PT0gMFwiPlxuICAgIE5vIHJlc3VsdHMgZm91bmRcbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNkay10cmVlIFtkYXRhU291cmNlXT1cIm5lc3RlZERhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwibmVzdGVkVHJlZUNvbnRyb2xcIj5cbiAgICAgIDwhLS0gZG9jdW1lbnQgLS0+XG4gICAgICA8Y2RrLW5lc3RlZC10cmVlLW5vZGUgY2xhc3M9XCJkb2N1bWVudC10cmVlLWNvbnRhaW5lcl9fbm9kZSBkb2N1bWVudC10cmVlLWNvbnRhaW5lcl9fbm9kZS0tZG9jdW1lbnRcIiAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZVwiIChjbGljayk9XCJzZWxlY3RlZE5vZGVJdGVtID0gbm9kZTsgY2xpY2tlZERvY3VtZW50LmVtaXQobm9kZSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5ub2RlLS1zZWxlY3RlZF09XCJzZWxlY3RlZE5vZGVJdGVtPy5uYW1lID09PSBub2RlLm5hbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZV9faWNvblwiIGRpc2FibGVkPlxuICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9jYXNlLWZpbGUtdmlldy9jYXNlLWZpbGUtdmlldy1kb2N1bWVudC5zdmdcIiBjbGFzcz1cIm5vZGVfX2ljb25JbWdcIiBhbHQ9XCJEb2N1bWVudCBpY29uXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19uYW1lIG5vZGUtbmFtZS1kb2N1bWVudFwiPlxuICAgICAgICAgICAge3tub2RlLm5hbWV9fVxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19kb2N1bWVudC11cGxvYWQtdGltZXN0YW1wXCI+e3tub2RlLnVwbG9hZF90aW1lc3RhbXB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGVfX2RvY3VtZW50LW9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxjY2QtY2FzZS1maWxlLXZpZXctZm9sZGVyLWRvY3VtZW50LWFjdGlvbnNcbiAgICAgICAgICAgICAgKGNoYW5nZUZvbGRlckFjdGlvbik9XCJ0cmlnZ2VyRG9jdW1lbnRBY3Rpb24oJ2NoYW5nZUZvbGRlcicsIG5vZGUpXCJcbiAgICAgICAgICAgICAgKG9wZW5JbkFOZXdUYWJBY3Rpb24pPVwidHJpZ2dlckRvY3VtZW50QWN0aW9uKCdvcGVuSW5BTmV3VGFiJywgbm9kZSlcIlxuICAgICAgICAgICAgICAoZG93bmxvYWRBY3Rpb24pPVwidHJpZ2dlckRvY3VtZW50QWN0aW9uKCdkb3dubG9hZCcsIG5vZGUpXCJcbiAgICAgICAgICAgICAgKHByaW50QWN0aW9uKT1cInRyaWdnZXJEb2N1bWVudEFjdGlvbigncHJpbnQnLCBub2RlKVwiXG4gICAgICAgICAgICAgIFthbGxvd01vdmluZ109XCJhbGxvd01vdmluZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItZG9jdW1lbnQtYWN0aW9ucz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Nkay1uZXN0ZWQtdHJlZS1ub2RlPlxuICAgICAgPCEtLSBmb2xkZXItLT5cbiAgICAgIDxjZGstbmVzdGVkLXRyZWUtbm9kZSBjbGFzcz1cImRvY3VtZW50LXRyZWUtY29udGFpbmVyX19ub2RlIGRvY3VtZW50LXRyZWUtY29udGFpbmVyX19mb2xkZXJcIiAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogbmVzdGVkQ2hpbGRyZW5cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5vZGVcIiBjZGtUcmVlTm9kZVRvZ2dsZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZV9faWNvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3RvZ2dsZSAnICsgbm9kZS5uYW1lXCIgPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm5vZGVfX2ljb25JbWdcIlxuICAgICAgICAgICAgICAgICBbc3JjXT1cIm5lc3RlZFRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnL2Fzc2V0cy9pbWFnZXMvZm9sZGVyLW9wZW4ucG5nJyA6ICcvYXNzZXRzL2ltYWdlcy9mb2xkZXIucG5nJ1wiIGFsdD1cIkZvbGRlciBpY29uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGVfX2NvdW50XCI+e3tub2RlLmNoaWxkRG9jdW1lbnRDb3VudH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9kZV9fbmFtZSBub2RlX19uYW1lLS1mb2xkZXJcIj57e25vZGUubmFtZX19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IFtjbGFzcy5kb2N1bWVudC10cmVlLWludmlzaWJsZV09XCIhbmVzdGVkVHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgY2RrVHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jZGstbmVzdGVkLXRyZWUtbm9kZT5cbiAgICA8L2Nkay10cmVlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QjtrQkFBckMsS0FBSztZQUNVLFdBQVc7a0JBQTFCLEtBQUs7WUFDVyxlQUFlO2tCQUEvQixNQUFNO1lBQ1UsWUFBWTtrQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5lc3RlZFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQge1xuICBDYXNlRmlsZVZpZXdDYXRlZ29yeSxcbiAgQ2FzZUZpbGVWaWV3RG9jdW1lbnQsXG4gIENhdGVnb3JpZXNBbmREb2N1bWVudHMsXG4gIERvY3VtZW50VHJlZU5vZGUsXG4gIERvY3VtZW50VHJlZU5vZGVUeXBlXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLWZpbGUtdmlldyc7XG5pbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vc29ydC1vcmRlci5lbnVtJztcbmltcG9ydCB7IERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UsIFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2Nhc2UtZmlsZS12aWV3LWZvbGRlci1zZWxlY3Rvci9jYXNlLWZpbGUtdmlldy1mb2xkZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCBjb25zdCBNRURJQV9WSUVXRVJfTE9DQUxTVE9SQUdFX0tFWSA9ICdtZWRpYS12aWV3ZXItaW5mbyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEUgPSAnVW5jYXRlZ29yaXNlZCBkb2N1bWVudHMnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUUgPSAnZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1JTklNVU1fU0VBUkNIX0NIQVJBQ1RFUlMgPSAxO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzOiBPYnNlcnZhYmxlPENhdGVnb3JpZXNBbmREb2N1bWVudHM+O1xuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dNb3Zpbmc6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xpY2tlZERvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxEb2N1bWVudFRyZWVOb2RlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIG1vdmVEb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuZXdDYXRlZ29yeTogc3RyaW5nLCBkb2N1bWVudDogRG9jdW1lbnRUcmVlTm9kZSB9PigpO1xuXG4gIHB1YmxpYyBuZXN0ZWRUcmVlQ29udHJvbDogTmVzdGVkVHJlZUNvbnRyb2w8RG9jdW1lbnRUcmVlTm9kZT47XG4gIHB1YmxpYyBuZXN0ZWREYXRhU291cmNlOiBEb2N1bWVudFRyZWVOb2RlW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzOiBDYXNlRmlsZVZpZXdDYXRlZ29yeVtdID0gW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBzZWxlY3RlZE5vZGVJdGVtOiBEb2N1bWVudFRyZWVOb2RlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBkb2N1bWVudEZpbHRlckZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBkb2N1bWVudFRyZWVEYXRhOiBEb2N1bWVudFRyZWVOb2RlW107XG4gIHB1YmxpYyBkb2N1bWVudEZpbHRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgc2VhcmNoVGVybUxlbmd0aDogbnVtYmVyO1xuXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW4gPSAobm9kZTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gb2Yobm9kZS5jaGlsZHJlbik7XG4gIHB1YmxpYyBuZXN0ZWRDaGlsZHJlbiA9IChfOiBudW1iZXIsIG5vZGVEYXRhOiBEb2N1bWVudFRyZWVOb2RlKSA9PiBub2RlRGF0YS5jaGlsZHJlbjtcbiAgcHVibGljIGdldCBkb2N1bWVudENvdW50KCkge1xuICAgIGlmICh0aGlzLm5lc3RlZERhdGFTb3VyY2U/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMubmVzdGVkRGF0YVNvdXJjZS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gYWNjICsgaXRlbS5jaGlsZERvY3VtZW50Q291bnQ7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlOiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnXG4gICkge1xuICAgIHRoaXMubmVzdGVkVHJlZUNvbnRyb2wgPSBuZXcgTmVzdGVkVHJlZUNvbnRyb2w8RG9jdW1lbnRUcmVlTm9kZT4odGhpcy5nZXRDaGlsZHJlbik7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudEZpbHRlckZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgdGhpcy5kb2N1bWVudEZpbHRlckZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudC5ET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUUsIHRoaXMuZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbCk7XG5cbiAgICAvLyBMaXN0ZW4gdG8gc2VhcmNoIGlucHV0IGFuZCBpbml0aWF0ZSBmaWx0ZXIgZG9jdW1lbnRzIGlmIGF0IGxlYXN0IHRocmVlIGNoYXJhY3RlcnMgZW50ZXJlZFxuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YXAoKHNlYXJjaFRlcm06IHN0cmluZykgPT4gdGhpcy5zZWFyY2hUZXJtTGVuZ3RoID0gc2VhcmNoVGVybS5sZW5ndGgpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHRoaXMuZmlsdGVyKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkucGlwZSgpKVxuICAgICkuc3Vic2NyaWJlKGRvY3VtZW50VHJlZURhdGEgPT4ge1xuICAgICAgdGhpcy5uZXN0ZWREYXRhU291cmNlID0gZG9jdW1lbnRUcmVlRGF0YTtcbiAgICAgIHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZGF0YU5vZGVzID0gZG9jdW1lbnRUcmVlRGF0YTtcbiAgICAgIHRoaXMuc2VhcmNoVGVybUxlbmd0aCA+PSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuTUlOSU1VTV9TRUFSQ0hfQ0hBUkFDVEVSU1xuICAgICAgICA/IHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZXhwYW5kQWxsKClcbiAgICAgICAgOiB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIGlucHV0IGNhdGVnb3JpZXMgYW5kIGRvY3VtZW50cywgYW5kIGdlbmVyYXRlIHRyZWUgZGF0YSBhbmQgaW5pdGlhbGlzZSBjZGsgdHJlZVxuICAgIHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbiA9IHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50cy5zdWJzY3JpYmUoY2F0ZWdvcmllc0FuZERvY3VtZW50cyA9PiB7XG4gICAgICBjb25zdCBjYXRlZ29yaWVzID0gY2F0ZWdvcmllc0FuZERvY3VtZW50cy5jYXRlZ29yaWVzO1xuICAgICAgdGhpcy5jYXRlZ29yaWVzID0gY2F0ZWdvcmllcztcbiAgICAgIC8vIEdlbmVyYXRlIGRvY3VtZW50IHRyZWUgZGF0YSBmcm9tIGNhdGVnb3JpZXNcbiAgICAgIHRoaXMuZG9jdW1lbnRUcmVlRGF0YSA9IHRoaXMuZ2VuZXJhdGVUcmVlRGF0YShjYXRlZ29yaWVzKTtcbiAgICAgIC8vIEFwcGVuZCB1bmNhdGVnb3Jpc2VkIGRvY3VtZW50c1xuICAgICAgaWYgKGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMgJiYgY2F0ZWdvcmllc0FuZERvY3VtZW50cy51bmNhdGVnb3Jpc2VkX2RvY3VtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHVuY2F0ZWdvcmlzZWREb2N1bWVudHMgPSB0aGlzLmdldFVuY2F0ZWdvcmlzZWREb2N1bWVudHMoY2F0ZWdvcmllc0FuZERvY3VtZW50cy51bmNhdGVnb3Jpc2VkX2RvY3VtZW50cyk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5wdXNoKHVuY2F0ZWdvcmlzZWREb2N1bWVudHMpO1xuICAgICAgfVxuXG4gICAgICAvLyBJbml0aWFsaXNlIGNkayB0cmVlIHdpdGggZ2VuZXJhdGVkIGRhdGFcbiAgICAgIHRoaXMubmVzdGVkRGF0YVNvdXJjZSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICAgIHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZGF0YU5vZGVzID0gdGhpcy5kb2N1bWVudFRyZWVEYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlVHJlZURhdGEoY2F0ZWdvcmllczogQ2FzZUZpbGVWaWV3Q2F0ZWdvcnlbXSk6IERvY3VtZW50VHJlZU5vZGVbXSB7XG4gICAgcmV0dXJuIGNhdGVnb3JpZXMucmVkdWNlKCh0cmVlLCBub2RlKSA9PiB7XG4gICAgICBjb25zdCBuZXdEb2N1bWVudFRyZWVOb2RlID0gbmV3IERvY3VtZW50VHJlZU5vZGUoKTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUubmFtZSA9IG5vZGUuY2F0ZWdvcnlfbmFtZTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUudHlwZSA9IERvY3VtZW50VHJlZU5vZGVUeXBlLkZPTERFUjtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUuY2hpbGRyZW4gPSBbLi4udGhpcy5nZW5lcmF0ZVRyZWVEYXRhKG5vZGUuc3ViX2NhdGVnb3JpZXMpLCAuLi50aGlzLmdldERvY3VtZW50cyhub2RlLmRvY3VtZW50cyldO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi50cmVlLFxuICAgICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLFxuICAgICAgXTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRzKGRvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGVbXSB7XG4gICAgY29uc3QgZG9jdW1lbnRzVG9SZXR1cm46IERvY3VtZW50VHJlZU5vZGVbXSA9IFtdO1xuICAgIGRvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVknKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHNUb1JldHVybi5wdXNoKGRvY3VtZW50VHJlZU5vZGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRvY3VtZW50c1RvUmV0dXJuO1xuICB9XG5cbiAgcHVibGljIGdldFVuY2F0ZWdvcmlzZWREb2N1bWVudHModW5jYXRlZ29yaXNlZERvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGUge1xuICAgIGNvbnN0IGRvY3VtZW50czogRG9jdW1lbnRUcmVlTm9kZVtdID0gW107XG4gICAgdW5jYXRlZ29yaXNlZERvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVknKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHMucHVzaChkb2N1bWVudFRyZWVOb2RlKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHVuY2F0ZWdvcmlzZWROb2RlID0gbmV3IERvY3VtZW50VHJlZU5vZGUoKTtcbiAgICB1bmNhdGVnb3Jpc2VkTm9kZS5uYW1lID0gQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50LlVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFO1xuICAgIHVuY2F0ZWdvcmlzZWROb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVI7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUuY2hpbGRyZW4gPSBkb2N1bWVudHM7XG5cbiAgICByZXR1cm4gdW5jYXRlZ29yaXNlZE5vZGU7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8RG9jdW1lbnRUcmVlTm9kZVtdPiB7XG4gICAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGRhdGEgc28gd2UgZG8gbm90IG11dGF0ZSB0aGUgb3JpZ2luYWxcbiAgICBmdW5jdGlvbiBjb3B5KG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZG9jdW1lbnRUcmVlTm9kZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICBpZiAoc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+PSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuTUlOSU1VTV9TRUFSQ0hfQ0hBUkFDVEVSUyAmJiB0aGlzLmRvY3VtZW50RmlsdGVyRm9ybUdyb3VwLmNvbnRyb2xzW0Nhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudC5ET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUVdLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5tYXAoY29weSkuZmlsdGVyKGZ1bmN0aW9uIGZpbHRlclRyZWVEYXRhKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUubmFtZSAmJiBub2RlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSAmJiBub2RlLnR5cGUgPT09IERvY3VtZW50VHJlZU5vZGVUeXBlLkRPQ1VNRU5UKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsbCByZWN1cnNpdmVseSBpZiBub2RlIGhhcyBjaGlsZHJlblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybiAobm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ubWFwKGNvcHkpLmZpbHRlcihmaWx0ZXJUcmVlRGF0YSkpLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvZihmaWx0ZXJlZERhdGEpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJEb2N1bWVudEFjdGlvbihcbiAgICBhY3Rpb25UeXBlOiAnY2hhbmdlRm9sZGVyJyB8ICdvcGVuSW5BTmV3VGFiJyB8ICdkb3dubG9hZCcgfCAncHJpbnQnLFxuICAgIGRvY3VtZW50VHJlZU5vZGU6IERvY3VtZW50VHJlZU5vZGVcbiAgKTogdm9pZCB7XG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICgnY2hhbmdlRm9sZGVyJyk6XG4gICAgICAgIHRoaXMub3Blbk1vdmVEaWFsb2coZG9jdW1lbnRUcmVlTm9kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ29wZW5JbkFOZXdUYWInKTpcbiAgICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfTE9DQUxTVE9SQUdFX0tFWSxcbiAgICAgICAgICB0aGlzLmRvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZ2V0TWVkaWFWaWV3ZXJJbmZvKHtcbiAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCxcbiAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBkb2N1bWVudFRyZWVOb2RlLmRvY3VtZW50X2ZpbGVuYW1lXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMud2luZG93U2VydmljZS5vcGVuT25OZXdUYWIoXG4gICAgICAgICAgdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy9tZWRpYS12aWV3ZXInXSk/LnRvU3RyaW5nKClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICgnZG93bmxvYWQnKTpcbiAgICAgICAgLy8gQ3JlYXRlIGEgVVJMIGZyb20gdGhlIGRvY3VtZW50X2JpbmFyeV91cmwgcHJvcGVydHkgKGFic29sdXRlIFVSTCkgYW5kIHVzZSB0aGUgcGF0aCBwb3J0aW9uIChyZWxhdGl2ZSBVUkwpLlxuICAgICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBNYW5hZ2UgQ2FzZXMgYXBwbGljYXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGx5IGEgcHJveHkgdG8gdGhlIHJlcXVlc3QsIHdpdGhcbiAgICAgICAgLy8gdGhlIGNvcnJlY3QgcmVtb3RlIGVuZHBvaW50XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKG5ldyBVUkwoZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9iaW5hcnlfdXJsKS5wYXRobmFtZSwgZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9maWxlbmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ3ByaW50Jyk6XG4gICAgICAgIHRoaXMucHJpbnREb2N1bWVudChuZXcgVVJMKGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCkucGF0aG5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VBc2NlbmRpbmcoY29sdW1uOiBudW1iZXIpIHtcbiAgICBjb25zdCBzb3J0ZWREYXRhID0gdGhpcy5uZXN0ZWREYXRhU291cmNlLm1hcChpdGVtID0+IHtcbiAgICAgIGl0ZW0uc29ydENoaWxkcmVuQXNjZW5kaW5nKGNvbHVtbiwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VEZXNjZW5kaW5nKGNvbHVtbjogbnVtYmVyKSB7XG4gICAgY29uc3Qgc29ydGVkRGF0YSA9IHRoaXMubmVzdGVkRGF0YVNvdXJjZS5tYXAoaXRlbSA9PiB7XG4gICAgICBpdGVtLnNvcnRDaGlsZHJlbkRlc2NlbmRpbmcoY29sdW1uLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTm9kZURhdGEoZGF0YTogRG9jdW1lbnRUcmVlTm9kZVtdKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlNlbGVjdGVkID0gdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5leHBhbnNpb25Nb2RlbC5zZWxlY3RlZC5tYXAoXG4gICAgICAoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbS5uYW1lO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5uZXN0ZWREYXRhU291cmNlID0gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0RvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS50eXBlID0gaXRlbS50eXBlO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5jaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgIHJldHVybiBuZXdEb2N1bWVudFRyZWVOb2RlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkQXJyYXkgPSB0aGlzLm5lc3RlZERhdGFTb3VyY2UubWFwKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5mbGF0dGVuZWRBbGw7XG4gICAgfSkuZmxhdCgpO1xuICAgIGNvbnN0IG5ld09iamVjdHMgPSBmbGF0dGVuZWRBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBwcmV2U2VsZWN0ZWQuaW5jbHVkZXMoaXRlbS5uYW1lKTtcbiAgICB9KTtcbiAgICBuZXdPYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZXhwYW5kKG9iamVjdCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuTW92ZURpYWxvZyhub2RlOiBEb2N1bWVudFRyZWVOb2RlKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMsIGRvY3VtZW50OiBub2RlIH1cbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShuZXdDYXRJZCA9PiB7XG4gICAgICBpZiAobmV3Q2F0SWQpIHtcbiAgICAgICAgdGhpcy5tb3ZlRG9jdW1lbnQuZW1pdCh7IG5ld0NhdGVnb3J5OiBuZXdDYXRJZCwgZG9jdW1lbnQ6IG5vZGUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnREb2N1bWVudCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHByaW50V2luZG93ID0gd2luZG93Lm9wZW4odXJsKTtcbiAgICBwcmludFdpbmRvdy5wcmludCgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkRmlsZSh1cmw6IHN0cmluZywgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBkb3dubG9hZEZpbGVOYW1lO1xuICAgIGEuY2xpY2soKTtcbiAgICBhLnJlbW92ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtZmlsdGVyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBkb2N1bWVudC1maWx0ZXJcIiBbZm9ybUdyb3VwXT1cImRvY3VtZW50RmlsdGVyRm9ybUdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGRvY3VtZW50LXNlYXJjaFwiXG4gICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgIGlkPVwiZG9jdW1lbnQtc2VhcmNoXCJcbiAgICAgIG5hbWU9XCJkb2N1bWVudFNlYXJjaEZvcm1Db250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZG9jdW1lbnQgbmFtZVwiPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZG9jdW1lbnQtZm9sZGVycy1oZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50LWZvbGRlcnMtaGVhZGVyX190aXRsZVwiPkRvY3VtZW50cyAoe3sgZG9jdW1lbnRDb3VudCB9fSk8L2Rpdj5cbiAgPGRpdj5cbiAgICA8Y2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlci1zb3J0XG4gICAgICAoc29ydEFzY2VuZGluZyk9XCJzb3J0RGF0YVNvdXJjZUFzY2VuZGluZygkZXZlbnQpXCJcbiAgICAgIChzb3J0RGVzY2VuZGluZyk9XCJzb3J0RGF0YVNvdXJjZURlc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgPjwvY2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlci1zb3J0PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1jb250YWluZXJcIiAqbmdJZj1cImRvY3VtZW50VHJlZURhdGFcIj5cbiAgPGRpdiAqbmdJZj1cIiFuZXN0ZWREYXRhU291cmNlIHx8IG5lc3RlZERhdGFTb3VyY2UubGVuZ3RoID09PSAwXCI+XG4gICAgTm8gcmVzdWx0cyBmb3VuZFxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8Y2RrLXRyZWUgW2RhdGFTb3VyY2VdPVwibmVzdGVkRGF0YVNvdXJjZVwiIFt0cmVlQ29udHJvbF09XCJuZXN0ZWRUcmVlQ29udHJvbFwiPlxuICAgICAgPCEtLSBkb2N1bWVudCAtLT5cbiAgICAgIDxjZGstbmVzdGVkLXRyZWUtbm9kZSBjbGFzcz1cImRvY3VtZW50LXRyZWUtY29udGFpbmVyX19ub2RlIGRvY3VtZW50LXRyZWUtY29udGFpbmVyX19ub2RlLS1kb2N1bWVudFwiICpjZGtUcmVlTm9kZURlZj1cImxldCBub2RlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJub2RlXCIgKGNsaWNrKT1cInNlbGVjdGVkTm9kZUl0ZW0gPSBub2RlOyBjbGlja2VkRG9jdW1lbnQuZW1pdChub2RlKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLm5vZGUtLXNlbGVjdGVkXT1cInNlbGVjdGVkTm9kZUl0ZW0/Lm5hbWUgPT09IG5vZGUubmFtZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RlX19pY29uXCIgZGlzYWJsZWQ+XG4gICAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL2Nhc2UtZmlsZS12aWV3L2Nhc2UtZmlsZS12aWV3LWRvY3VtZW50LnN2Z1wiIGNsYXNzPVwibm9kZV9faWNvbkltZ1wiIGFsdD1cIkRvY3VtZW50IGljb25cIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGVfX25hbWUgbm9kZS1uYW1lLWRvY3VtZW50XCI+XG4gICAgICAgICAgICB7e25vZGUubmFtZX19XG4gICAgICAgICAgICA8YnI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGVfX2RvY3VtZW50LXVwbG9hZC10aW1lc3RhbXBcIj57e25vZGUudXBsb2FkX3RpbWVzdGFtcH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZV9fZG9jdW1lbnQtb3B0aW9uc1wiPlxuICAgICAgICAgICAgPGNjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItZG9jdW1lbnQtYWN0aW9uc1xuICAgICAgICAgICAgICAoY2hhbmdlRm9sZGVyQWN0aW9uKT1cInRyaWdnZXJEb2N1bWVudEFjdGlvbignY2hhbmdlRm9sZGVyJywgbm9kZSlcIlxuICAgICAgICAgICAgICAob3BlbkluQU5ld1RhYkFjdGlvbik9XCJ0cmlnZ2VyRG9jdW1lbnRBY3Rpb24oJ29wZW5JbkFOZXdUYWInLCBub2RlKVwiXG4gICAgICAgICAgICAgIChkb3dubG9hZEFjdGlvbik9XCJ0cmlnZ2VyRG9jdW1lbnRBY3Rpb24oJ2Rvd25sb2FkJywgbm9kZSlcIlxuICAgICAgICAgICAgICAocHJpbnRBY3Rpb24pPVwidHJpZ2dlckRvY3VtZW50QWN0aW9uKCdwcmludCcsIG5vZGUpXCJcbiAgICAgICAgICAgICAgW2FsbG93TW92aW5nXT1cImFsbG93TW92aW5nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvY2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlci1kb2N1bWVudC1hY3Rpb25zPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gICAgICA8IS0tIGZvbGRlci0tPlxuICAgICAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1jb250YWluZXJfX25vZGUgZG9jdW1lbnQtdHJlZS1jb250YWluZXJfX2ZvbGRlclwiICpjZGtUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBuZXN0ZWRDaGlsZHJlblwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZVwiIGNka1RyZWVOb2RlVG9nZ2xlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RlX19pY29uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLm5hbWVcIiA+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwibm9kZV9faWNvbkltZ1wiXG4gICAgICAgICAgICAgICAgIFtzcmNdPVwibmVzdGVkVHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICcvYXNzZXRzL2ltYWdlcy9mb2xkZXItb3Blbi5wbmcnIDogJy9hc3NldHMvaW1hZ2VzL2ZvbGRlci5wbmcnXCIgYWx0PVwiRm9sZGVyIGljb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9kZV9fY291bnRcIj57e25vZGUuY2hpbGREb2N1bWVudENvdW50fX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19uYW1lIG5vZGVfX25hbWUtLWZvbGRlclwiPnt7bm9kZS5uYW1lfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgW2NsYXNzLmRvY3VtZW50LXRyZWUtaW52aXNpYmxlXT1cIiFuZXN0ZWRUcmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBjZGtUcmVlTm9kZU91dGxldD48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Nkay1uZXN0ZWQtdHJlZS1ub2RlPlxuICAgIDwvY2RrLXRyZWU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -55,7 +55,7 @@ function WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template(rf, c
55
55
  i0.ɵɵadvance(1);
56
56
  i0.ɵɵpropertyInterpolate("for", ctx_r3.createElementId(checkbox_r4.code));
57
57
  i0.ɵɵadvance(1);
58
- i0.ɵɵproperty("content", checkbox_r4.label);
58
+ i0.ɵɵproperty("content", checkbox_r4.label)("renderUrlToTextFeature", false);
59
59
  } }
60
60
  const _c0 = function (a0) { return { "error": a0 }; };
61
61
  export class WriteDynamicMultiSelectListFieldComponent extends AbstractFieldWriteComponent {
@@ -119,13 +119,13 @@ export class WriteDynamicMultiSelectListFieldComponent extends AbstractFieldWrit
119
119
  }
120
120
  }
121
121
  WriteDynamicMultiSelectListFieldComponent.ɵfac = /*@__PURE__*/ function () { let ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory; return function WriteDynamicMultiSelectListFieldComponent_Factory(t) { return (ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory || (ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(WriteDynamicMultiSelectListFieldComponent)))(t || WriteDynamicMultiSelectListFieldComponent); }; }();
122
- WriteDynamicMultiSelectListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDynamicMultiSelectListFieldComponent, selectors: [["ccd-write-dynamic-multi-select-list-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 8, consts: [[1, "form-group", "bottom-30", 3, "ngClass", "id"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "form-label"], [1, "form-hint"], [1, "error-message"], [1, "multiple-choice"], ["type", "checkbox", 1, "form-control", 3, "id", "name", "value", "checked", "change"], [1, "form-label", 3, "for"], [3, "content"]], template: function WriteDynamicMultiSelectListFieldComponent_Template(rf, ctx) { if (rf & 1) {
122
+ WriteDynamicMultiSelectListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDynamicMultiSelectListFieldComponent, selectors: [["ccd-write-dynamic-multi-select-list-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 8, consts: [[1, "form-group", "bottom-30", 3, "ngClass", "id"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "form-label"], [1, "form-hint"], [1, "error-message"], [1, "multiple-choice"], ["type", "checkbox", 1, "form-control", 3, "id", "name", "value", "checked", "change"], [1, "form-label", 3, "for"], [3, "content", "renderUrlToTextFeature"]], template: function WriteDynamicMultiSelectListFieldComponent_Template(rf, ctx) { if (rf & 1) {
123
123
  i0.ɵɵelementStart(0, "div", 0)(1, "fieldset")(2, "legend");
124
124
  i0.ɵɵtemplate(3, WriteDynamicMultiSelectListFieldComponent_span_3_Template, 3, 3, "span", 1);
125
125
  i0.ɵɵtemplate(4, WriteDynamicMultiSelectListFieldComponent_span_4_Template, 2, 1, "span", 2);
126
126
  i0.ɵɵtemplate(5, WriteDynamicMultiSelectListFieldComponent_span_5_Template, 3, 3, "span", 3);
127
127
  i0.ɵɵelementEnd();
128
- i0.ɵɵtemplate(6, WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template, 5, 6, "ng-container", 4);
128
+ i0.ɵɵtemplate(6, WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template, 5, 7, "ng-container", 4);
129
129
  i0.ɵɵelementEnd()();
130
130
  } if (rf & 2) {
131
131
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0, !ctx.checkboxes.valid && ctx.checkboxes.touched))("id", ctx.id());
@@ -140,6 +140,6 @@ WriteDynamicMultiSelectListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineCom
140
140
  } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.MarkdownComponent, i3.FieldLabelPipe, i4.FirstErrorPipe], styles: ["ccd-markdown[_ngcontent-%COMP%]{display:inline-block}"] });
141
141
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDynamicMultiSelectListFieldComponent, [{
142
142
  type: Component,
143
- args: [{ selector: 'ccd-write-dynamic-multi-select-list-field', template: "<div class=\"form-group bottom-30\" [ngClass]=\"{'error': !checkboxes.valid && checkboxes.touched}\" [id]=\"id()\">\n\n <fieldset>\n\n <legend>\n <span *ngIf=\"caseField.label\" class=\"form-label\">{{caseField | ccdFieldLabel}}</span>\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">{{caseField.hint_text}}</span>\n <span *ngIf=\"checkboxes.errors && checkboxes.touched\" class=\"error-message\">{{checkboxes.errors |\n ccdFirstError}}</span>\n </legend>\n\n <ng-container *ngFor=\"let checkbox of caseField.list_items\">\n\n <div class=\"multiple-choice\">\n <input class=\"form-control\" id=\"{{ createElementId(checkbox.code) }}\" name=\"{{ id() }}\" type=\"checkbox\"\n [value]=\"checkbox.code\" [checked]=\"isSelected(checkbox.code)\" (change)=\"onCheckChange($event)\">\n <label class=\"form-label\" for=\"{{ createElementId(checkbox.code) }}\">\n <ccd-markdown [content]=\"checkbox.label\"></ccd-markdown>\n </label>\n </div>\n\n </ng-container>\n\n </fieldset>\n\n</div>\n", styles: ["ccd-markdown{display:inline-block}\n"] }]
143
+ args: [{ selector: 'ccd-write-dynamic-multi-select-list-field', template: "<div class=\"form-group bottom-30\" [ngClass]=\"{'error': !checkboxes.valid && checkboxes.touched}\" [id]=\"id()\">\n\n <fieldset>\n\n <legend>\n <span *ngIf=\"caseField.label\" class=\"form-label\">{{caseField | ccdFieldLabel}}</span>\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">{{caseField.hint_text}}</span>\n <span *ngIf=\"checkboxes.errors && checkboxes.touched\" class=\"error-message\">{{checkboxes.errors |\n ccdFirstError}}</span>\n </legend>\n\n <ng-container *ngFor=\"let checkbox of caseField.list_items\">\n\n <div class=\"multiple-choice\">\n <input class=\"form-control\" id=\"{{ createElementId(checkbox.code) }}\" name=\"{{ id() }}\" type=\"checkbox\"\n [value]=\"checkbox.code\" [checked]=\"isSelected(checkbox.code)\" (change)=\"onCheckChange($event)\">\n <label class=\"form-label\" for=\"{{ createElementId(checkbox.code) }}\">\n <ccd-markdown [content]=\"checkbox.label\" [renderUrlToTextFeature]=\"false\"></ccd-markdown>\n </label>\n </div>\n\n </ng-container>\n\n </fieldset>\n\n</div>\n", styles: ["ccd-markdown{display:inline-block}\n"] }]
144
144
  }], null, null); })();
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZHluYW1pYy1tdWx0aS1zZWxlY3QtbGlzdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9keW5hbWljLW11bHRpLXNlbGVjdC1saXN0L3dyaXRlLWR5bmFtaWMtbXVsdGktc2VsZWN0LWxpc3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZHluYW1pYy1tdWx0aS1zZWxlY3QtbGlzdC93cml0ZS1keW5hbWljLW11bHRpLXNlbGVjdC1saXN0LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztJQ0dyRiwrQkFBaUQ7SUFBQSxZQUE2Qjs7SUFBQSxpQkFBTzs7O0lBQXBDLGVBQTZCO0lBQTdCLDREQUE2Qjs7O0lBQzlFLCtCQUFvRDtJQUFBLFlBQXVCO0lBQUEsaUJBQU87OztJQUE5QixlQUF1QjtJQUF2QixnREFBdUI7OztJQUMzRSwrQkFBNEU7SUFBQSxZQUMzRDs7SUFBQSxpQkFBTzs7O0lBRG9ELGVBQzNEO0lBRDJELG9FQUMzRDs7OztJQUduQiw2QkFBNEQ7SUFFMUQsOEJBQTZCLGVBQUE7SUFFcUMsc01BQVUsZUFBQSw0QkFBcUIsQ0FBQSxJQUFDO0lBRGhHLGlCQUNpRztJQUNqRyxpQ0FBcUU7SUFDbkUsbUNBQXdEO0lBQzFELGlC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Riw0RkFBa0Y7UUFDbEYsNEZBQ3dCO1FBQzFCLGlCQUFTO1FBRVQsNEdBVWU7UUFFakIsaUJBQVcsRUFBQTs7UUF2QnFCLHFHQUE4RCxnQkFBQTtRQUtuRixlQUFxQjtRQUFyQiwwQ0FBcUI7UUFDckIsZUFBeUI7UUFBekIsOENBQXlCO1FBQ3pCLGVBQTZDO1FBQTdDLHNFQUE2QztRQUluQixlQUF1QjtRQUF2QixrREFBdUI7O3VGREZqRCx5Q0FBeUM7Y0FMckQsU0FBUzsyQkFDRSwyQ0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtd3JpdGUtZHluYW1pYy1tdWx0aS1zZWxlY3QtbGlzdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1keW5hbWljLW11bHRpLXNlbGVjdC1saXN0LWZpZWxkLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93cml0ZS1keW5hbWljLW11bHRpLXNlbGVjdC1saXN0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVEeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgY2hlY2tib3hlczogRm9ybUFycmF5O1xuICBwdWJsaWMgZHluYW1pY0xpc3RGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tib3hlcyA9IG5ldyBGb3JtQXJyYXkoW10pO1xuXG4gICAgdGhpcy5zZXRJbml0aWFsQ2FzZUxpc3QoKTtcbiAgICB0aGlzLnNldEluaXRpYWxDYXNlRmllbGRWYWx1ZSgpO1xuXG4gICAgLy8gSW5pdGlhbGlzZSBhcnJheSB3aXRoIGV4aXN0aW5nIHZhbHVlc1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC52YWx1ZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuY2FzZUZpZWxkLnZhbHVlKSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5jYXNlRmllbGQudmFsdWU7XG5cbiAgICAgIHZhbHVlcy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5jaGVja2JveGVzLnB1c2gobmV3IEZvcm1Db250cm9sKHZhbHVlKSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmR5bmFtaWNMaXN0Rm9ybUNvbnRyb2wgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUNvbnRyb2wodGhpcy5jaGVja2JveGVzLnZhbHVlKSkgYXMgRm9ybUNvbnRyb2w7XG4gICAgdGhpcy5keW5hbWljTGlzdEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuY2hlY2tib3hlcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25DaGVja0NoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgIGlmICghdGFyZ2V0IHx8ICF0YXJnZXQudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtOiBvYmplY3QgPSB0aGlzLmdldFZhbHVlTGlzdEl0ZW0odGFyZ2V0LnZhbHVlKTtcblxuICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKHRhcmdldC52YWx1ZSkpIHtcbiAgICAgIC8vIEFkZCBhIG5ldyBjb250cm9sIGluIHRoZSBGb3JtQXJyYXlcbiAgICAgIHRoaXMuY2hlY2tib3hlcy5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3RlZExpc3RJdGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgY29udHJvbCBmcm9tIHRoZSBGb3JtQXJyYXlcbiAgICAgIHRoaXMuY2hlY2tib3hlcy5jb250cm9scy5mb3JFYWNoKChjdHJsOiBGb3JtQ29udHJvbCwgaSkgPT4ge1xuICAgICAgICBpZiAoY3RybC52YWx1ZS5jb2RlID09PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrYm94ZXMucmVtb3ZlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZHluYW1pY0xpc3RGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmNoZWNrYm94ZXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoY29kZTogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBpZiAodGhpcy5jaGVja2JveGVzICYmIHRoaXMuY2hlY2tib3hlcy5jb250cm9scykge1xuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3hlcy5jb250cm9scy5maW5kKGNvbnRyb2wgPT4gY29udHJvbC52YWx1ZS5jb2RlID09PSBjb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFZhbHVlTGlzdEl0ZW0odmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5saXN0X2l0ZW1zLmZpbmQoaSA9PiBpLmNvZGUgPT09IHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbENhc2VMaXN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc0xpc3RJdGVtcyA9IHRoaXMuY2FzZUZpZWxkLmxpc3RfaXRlbXMgJiYgdGhpcy5jYXNlRmllbGQubGlzdF9pdGVtcy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGhhc0Zvcm1hdHRlZExpc3RJdGVtcyA9IHRoaXMuY2FzZUZpZWxkLmZvcm1hdHRlZF92YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC5mb3JtYXR0ZWRfdmFsdWUubGlzdF9pdGVtcy5sZW5ndGggPiAwO1xuXG4gICAgaWYgKCFoYXNMaXN0SXRlbXMgJiYgaGFzRm9ybWF0dGVkTGlzdEl0ZW1zKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC5saXN0X2l0ZW1zID0gdGhpcy5jYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlLmxpc3RfaXRlbXM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbml0aWFsQ2FzZUZpZWxkVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhc2VGaWVsZC52YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC5mb3JtYXR0ZWRfdmFsdWUgJiYgdGhpcy5jYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlLnZhbHVlKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IHRoaXMuY2FzZUZpZWxkLmZvcm1hdHRlZF92YWx1ZS52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBpc051bGwgPSB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuY2FzZUZpZWxkLnZhbHVlID09PSAnJztcblxuICAgIGlmIChpc051bGwgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5jYXNlRmllbGQudmFsdWUpKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IFtdO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgYm90dG9tLTMwXCIgW25nQ2xhc3NdPVwieydlcnJvcic6ICFjaGVja2JveGVzLnZhbGlkICYmIGNoZWNrYm94ZXMudG91Y2hlZH1cIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxmaWVsZHNldD5cblxuICAgIDxsZWdlbmQ+XG4gICAgICA8c3BhbiAqbmdJZj1cImNhc2VGaWVsZC5sYWJlbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7Y2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCIgY2xhc3M9XCJmb3JtLWhpbnRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHR9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2hlY2tib3hlcy5lcnJvcnMgJiYgY2hlY2tib3hlcy50b3VjaGVkXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3tjaGVja2JveGVzLmVycm9ycyB8XG4gICAgICAgIGNjZEZpcnN0RXJyb3J9fTwvc3Bhbj5cbiAgICA8L2xlZ2VuZD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoZWNrYm94IG9mIGNhc2VGaWVsZC5saXN0X2l0ZW1zXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXBsZS1jaG9pY2VcIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJ7eyBjcmVhdGVFbGVtZW50SWQoY2hlY2tib3guY29kZSkgfX1cIiBuYW1lPVwie3sgaWQoKSB9fVwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgW3ZhbHVlXT1cImNoZWNrYm94LmNvZGVcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKGNoZWNrYm94LmNvZGUpXCIgKGNoYW5nZSk9XCJvbkNoZWNrQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInt7IGNyZWF0ZUVsZW1lbnRJZChjaGVja2JveC5jb2RlKSB9fVwiPlxuICAgICAgICAgIDxjY2QtbWFya2Rvd24gW2NvbnRlbnRdPVwiY2hlY2tib3gubGFiZWxcIj48L2NjZC1tYXJrZG93bj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9maWVsZHNldD5cblxuPC9kaXY+XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZHluYW1pYy1tdWx0aS1zZWxlY3QtbGlzdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9keW5hbWljLW11bHRpLXNlbGVjdC1saXN0L3dyaXRlLWR5bmFtaWMtbXVsdGktc2VsZWN0LWxpc3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZHluYW1pYy1tdWx0aS1zZWxlY3QtbGlzdC93cml0ZS1keW5hbWljLW11bHRpLXNlbGVjdC1saXN0LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztJQ0dyRiwrQkFBaUQ7SUFBQSxZQUE2Qjs7SUFBQSxpQkFBTzs7O0lBQXBDLGVBQTZCO0lBQTdCLDREQUE2Qjs7O0lBQzlFLCtCQUFvRDtJQUFBLFlBQXVCO0lBQUEsaUJBQU87OztJQUE5QixlQUF1QjtJQUF2QixnREFBdUI7OztJQUMzRSwrQkFBNEU7SUFBQSxZQUMzRDs7SUFBQSxpQkFBTzs7O0lBRG9ELGVBQzNEO0lBRDJELG9FQUMzRDs7OztJQUduQiw2QkFBNEQ7SUFFMUQsOEJBQTZCLGVBQUE7SUFFcUMsc01BQVUsZUFBQSw0QkFBcUIsQ0FBQSxJQUFDO0lBRGhHLGlCQUNpRztJQUNqRyxpQ0FBcUU7SUFDbkUsbUNBQXlGO0lBQzNGLGlC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RjtRQUNyRiw0RkFBa0Y7UUFDbEYsNEZBQ3dCO1FBQzFCLGlCQUFTO1FBRVQsNEdBVWU7UUFFakIsaUJBQVcsRUFBQTs7UUF2QnFCLHFHQUE4RCxnQkFBQTtRQUtuRixlQUFxQjtRQUFyQiwwQ0FBcUI7UUFDckIsZUFBeUI7UUFBekIsOENBQXlCO1FBQ3pCLGVBQTZDO1FBQTdDLHNFQUE2QztRQUluQixlQUF1QjtRQUF2QixrREFBdUI7O3VGREZqRCx5Q0FBeUM7Y0FMckQsU0FBUzsyQkFDRSwyQ0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtd3JpdGUtZHluYW1pYy1tdWx0aS1zZWxlY3QtbGlzdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1keW5hbWljLW11bHRpLXNlbGVjdC1saXN0LWZpZWxkLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93cml0ZS1keW5hbWljLW11bHRpLXNlbGVjdC1saXN0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVEeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgY2hlY2tib3hlczogRm9ybUFycmF5O1xuICBwdWJsaWMgZHluYW1pY0xpc3RGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tib3hlcyA9IG5ldyBGb3JtQXJyYXkoW10pO1xuXG4gICAgdGhpcy5zZXRJbml0aWFsQ2FzZUxpc3QoKTtcbiAgICB0aGlzLnNldEluaXRpYWxDYXNlRmllbGRWYWx1ZSgpO1xuXG4gICAgLy8gSW5pdGlhbGlzZSBhcnJheSB3aXRoIGV4aXN0aW5nIHZhbHVlc1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC52YWx1ZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuY2FzZUZpZWxkLnZhbHVlKSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5jYXNlRmllbGQudmFsdWU7XG5cbiAgICAgIHZhbHVlcy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5jaGVja2JveGVzLnB1c2gobmV3IEZvcm1Db250cm9sKHZhbHVlKSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmR5bmFtaWNMaXN0Rm9ybUNvbnRyb2wgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUNvbnRyb2wodGhpcy5jaGVja2JveGVzLnZhbHVlKSkgYXMgRm9ybUNvbnRyb2w7XG4gICAgdGhpcy5keW5hbWljTGlzdEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuY2hlY2tib3hlcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25DaGVja0NoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgIGlmICghdGFyZ2V0IHx8ICF0YXJnZXQudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtOiBvYmplY3QgPSB0aGlzLmdldFZhbHVlTGlzdEl0ZW0odGFyZ2V0LnZhbHVlKTtcblxuICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKHRhcmdldC52YWx1ZSkpIHtcbiAgICAgIC8vIEFkZCBhIG5ldyBjb250cm9sIGluIHRoZSBGb3JtQXJyYXlcbiAgICAgIHRoaXMuY2hlY2tib3hlcy5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3RlZExpc3RJdGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgY29udHJvbCBmcm9tIHRoZSBGb3JtQXJyYXlcbiAgICAgIHRoaXMuY2hlY2tib3hlcy5jb250cm9scy5mb3JFYWNoKChjdHJsOiBGb3JtQ29udHJvbCwgaSkgPT4ge1xuICAgICAgICBpZiAoY3RybC52YWx1ZS5jb2RlID09PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrYm94ZXMucmVtb3ZlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZHluYW1pY0xpc3RGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmNoZWNrYm94ZXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoY29kZTogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBpZiAodGhpcy5jaGVja2JveGVzICYmIHRoaXMuY2hlY2tib3hlcy5jb250cm9scykge1xuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3hlcy5jb250cm9scy5maW5kKGNvbnRyb2wgPT4gY29udHJvbC52YWx1ZS5jb2RlID09PSBjb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFZhbHVlTGlzdEl0ZW0odmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5saXN0X2l0ZW1zLmZpbmQoaSA9PiBpLmNvZGUgPT09IHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbENhc2VMaXN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc0xpc3RJdGVtcyA9IHRoaXMuY2FzZUZpZWxkLmxpc3RfaXRlbXMgJiYgdGhpcy5jYXNlRmllbGQubGlzdF9pdGVtcy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGhhc0Zvcm1hdHRlZExpc3RJdGVtcyA9IHRoaXMuY2FzZUZpZWxkLmZvcm1hdHRlZF92YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC5mb3JtYXR0ZWRfdmFsdWUubGlzdF9pdGVtcy5sZW5ndGggPiAwO1xuXG4gICAgaWYgKCFoYXNMaXN0SXRlbXMgJiYgaGFzRm9ybWF0dGVkTGlzdEl0ZW1zKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC5saXN0X2l0ZW1zID0gdGhpcy5jYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlLmxpc3RfaXRlbXM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbml0aWFsQ2FzZUZpZWxkVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhc2VGaWVsZC52YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC5mb3JtYXR0ZWRfdmFsdWUgJiYgdGhpcy5jYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlLnZhbHVlKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IHRoaXMuY2FzZUZpZWxkLmZvcm1hdHRlZF92YWx1ZS52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBpc051bGwgPSB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuY2FzZUZpZWxkLnZhbHVlID09PSAnJztcblxuICAgIGlmIChpc051bGwgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5jYXNlRmllbGQudmFsdWUpKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IFtdO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgYm90dG9tLTMwXCIgW25nQ2xhc3NdPVwieydlcnJvcic6ICFjaGVja2JveGVzLnZhbGlkICYmIGNoZWNrYm94ZXMudG91Y2hlZH1cIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxmaWVsZHNldD5cblxuICAgIDxsZWdlbmQ+XG4gICAgICA8c3BhbiAqbmdJZj1cImNhc2VGaWVsZC5sYWJlbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7Y2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCIgY2xhc3M9XCJmb3JtLWhpbnRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHR9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2hlY2tib3hlcy5lcnJvcnMgJiYgY2hlY2tib3hlcy50b3VjaGVkXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3tjaGVja2JveGVzLmVycm9ycyB8XG4gICAgICAgIGNjZEZpcnN0RXJyb3J9fTwvc3Bhbj5cbiAgICA8L2xlZ2VuZD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoZWNrYm94IG9mIGNhc2VGaWVsZC5saXN0X2l0ZW1zXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXBsZS1jaG9pY2VcIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJ7eyBjcmVhdGVFbGVtZW50SWQoY2hlY2tib3guY29kZSkgfX1cIiBuYW1lPVwie3sgaWQoKSB9fVwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgW3ZhbHVlXT1cImNoZWNrYm94LmNvZGVcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKGNoZWNrYm94LmNvZGUpXCIgKGNoYW5nZSk9XCJvbkNoZWNrQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInt7IGNyZWF0ZUVsZW1lbnRJZChjaGVja2JveC5jb2RlKSB9fVwiPlxuICAgICAgICAgIDxjY2QtbWFya2Rvd24gW2NvbnRlbnRdPVwiY2hlY2tib3gubGFiZWxcIiBbcmVuZGVyVXJsVG9UZXh0RmVhdHVyZV09XCJmYWxzZVwiPjwvY2NkLW1hcmtkb3duPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L2ZpZWxkc2V0PlxuXG48L2Rpdj5cbiJdfQ==
@@ -1,12 +1,18 @@
1
1
  import { Component, HostListener, Input } from '@angular/core';
2
+ import * as marked from 'marked';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "ngx-md";
4
5
  import * as i2 from "rpx-xui-translation";
5
6
  import * as i3 from "../../../pipes/case-reference/case-reference.pipe";
6
7
  export class MarkdownComponent {
7
- constructor() { }
8
+ constructor() {
9
+ this.renderUrlToTextFeature = true;
10
+ }
8
11
  ngOnInit() {
9
12
  this.content = this.content.replace(/ \n/g, '<br>');
13
+ if (this.renderUrlToTextFeature) {
14
+ this.renderUrlToText();
15
+ }
10
16
  }
11
17
  onMarkdownClick(event) {
12
18
  // If we don't have an anchor tag, we don't need to do anything.
@@ -15,11 +21,20 @@ export class MarkdownComponent {
15
21
  }
16
22
  return true;
17
23
  }
24
+ renderUrlToText() {
25
+ const renderer = new marked.Renderer();
26
+ renderer.link = (href, title, text) => {
27
+ return text; // Return the text without turning it into a link
28
+ };
29
+ marked.setOptions({
30
+ renderer: renderer
31
+ });
32
+ }
18
33
  }
19
34
  MarkdownComponent.ɵfac = function MarkdownComponent_Factory(t) { return new (t || MarkdownComponent)(); };
20
35
  MarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MarkdownComponent, selectors: [["ccd-markdown"]], hostBindings: function MarkdownComponent_HostBindings(rf, ctx) { if (rf & 1) {
21
36
  i0.ɵɵlistener("click", function MarkdownComponent_click_HostBindingHandler($event) { return ctx.onMarkdownClick($event); });
22
- } }, inputs: { content: "content", markdownUseHrefAsRouterLink: "markdownUseHrefAsRouterLink" }, decls: 4, vars: 5, consts: [[1, "markdown", 3, "data"]], template: function MarkdownComponent_Template(rf, ctx) { if (rf & 1) {
37
+ } }, inputs: { content: "content", markdownUseHrefAsRouterLink: "markdownUseHrefAsRouterLink", renderUrlToTextFeature: "renderUrlToTextFeature" }, decls: 4, vars: 5, consts: [[1, "markdown", 3, "data"]], template: function MarkdownComponent_Template(rf, ctx) { if (rf & 1) {
23
38
  i0.ɵɵelementStart(0, "div");
24
39
  i0.ɵɵelement(1, "markdown", 0);
25
40
  i0.ɵɵpipe(2, "rpxTranslate");
@@ -36,8 +51,10 @@ MarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MarkdownC
36
51
  type: Input
37
52
  }], markdownUseHrefAsRouterLink: [{
38
53
  type: Input
54
+ }], renderUrlToTextFeature: [{
55
+ type: Input
39
56
  }], onMarkdownClick: [{
40
57
  type: HostListener,
41
58
  args: ['click', ['$event']]
42
59
  }] }); })();
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTXZFLE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsZ0JBQWUsQ0FBQztJQUVULFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBR00sZUFBZSxDQUFDLEtBQWlCO1FBQ3RDLGdFQUFnRTtRQUNoRSxJQUFJLEtBQUssQ0FBQyxNQUFNLFlBQVksaUJBQWlCLEtBQUssS0FBSyxFQUFFO1lBQ3ZELE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7a0ZBbkJVLGlCQUFpQjtvRUFBakIsaUJBQWlCO29HQUFqQiwyQkFBdUI7O1FDTnBDLDJCQUFLO1FBQUEsOEJBQXlGOzs7UUFBQSxpQkFBTTs7UUFBcEUsZUFBa0Q7UUFBbEQsOEVBQWtEOzt1RkRNckUsaUJBQWlCO2NBSjdCLFNBQVM7MkJBQ0UsY0FBYztzQ0FLakIsT0FBTztrQkFEYixLQUFLO1lBR0MsMkJBQTJCO2tCQURqQyxLQUFLO1lBVUMsZUFBZTtrQkFEckIsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbWFya2Rvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24uaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTWFya2Rvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29udGVudDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFya2Rvd25Vc2VIcmVmQXNSb3V0ZXJMaW5rITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuY29udGVudC5yZXBsYWNlKC8gIFxcbi9nLCAnPGJyPicpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25NYXJrZG93bkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiBhbmNob3IgdGFnLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nLlxuICAgIGlmIChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIjxkaXY+PG1hcmtkb3duIGNsYXNzPVwibWFya2Rvd25cIiBbZGF0YV09XCJjb250ZW50IHwgY2NkQ2FzZVJlZmVyZW5jZSB8IHJweFRyYW5zbGF0ZVwiPjwvbWFya2Rvd24+PC9kaXY+XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7O0FBTWpDLE1BQU0sT0FBTyxpQkFBaUI7SUFRNUI7UUFGTywyQkFBc0IsR0FBYSxJQUFJLENBQUM7SUFFaEMsQ0FBQztJQUVULFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBR00sZUFBZSxDQUFDLEtBQWlCO1FBQ3RDLGdFQUFnRTtRQUNoRSxJQUFJLEtBQUssQ0FBQyxNQUFNLFlBQVksaUJBQWlCLEtBQUssS0FBSyxFQUFFO1lBQ3ZELE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdkMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUMsQ0FBRSxpREFBaUQ7UUFDakUsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNoQixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDOztrRkFwQ1UsaUJBQWlCO29FQUFqQixpQkFBaUI7b0dBQWpCLDJCQUF1Qjs7UUNQcEMsMkJBQUs7UUFBQSw4QkFBeUY7OztRQUFBLGlCQUFNOztRQUFwRSxlQUFrRDtRQUFsRCw4RUFBa0Q7O3VGRE9yRSxpQkFBaUI7Y0FKN0IsU0FBUzsyQkFDRSxjQUFjO3NDQUtqQixPQUFPO2tCQURiLEtBQUs7WUFHQywyQkFBMkI7a0JBRGpDLEtBQUs7WUFHQyxzQkFBc0I7a0JBRDVCLEtBQUs7WUFhQyxlQUFlO2tCQURyQixZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBtYXJrZWQgZnJvbSAnbWFya2VkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLW1hcmtkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1hcmtkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgcHVibGljIG1hcmtkb3duVXNlSHJlZkFzUm91dGVyTGluayE6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZW5kZXJVcmxUb1RleHRGZWF0dXJlPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQucmVwbGFjZSgvICBcXG4vZywgJzxicj4nKTtcbiAgICBpZiAodGhpcy5yZW5kZXJVcmxUb1RleHRGZWF0dXJlKSB7XG4gICAgICB0aGlzLnJlbmRlclVybFRvVGV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uTWFya2Rvd25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW4gYW5jaG9yIHRhZywgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZy5cbiAgICBpZiAoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJVcmxUb1RleHQoKSA6IHZvaWQge1xuICAgIGNvbnN0IHJlbmRlcmVyID0gbmV3IG1hcmtlZC5SZW5kZXJlcigpO1xuXG4gICAgcmVuZGVyZXIubGluayA9IChocmVmLCB0aXRsZSwgdGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHRleHQ7ICAvLyBSZXR1cm4gdGhlIHRleHQgd2l0aG91dCB0dXJuaW5nIGl0IGludG8gYSBsaW5rXG4gICAgfTtcblxuICAgIG1hcmtlZC5zZXRPcHRpb25zKHtcbiAgICAgIHJlbmRlcmVyOiByZW5kZXJlclxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2PjxtYXJrZG93biBjbGFzcz1cIm1hcmtkb3duXCIgW2RhdGFdPVwiY29udGVudCB8IGNjZENhc2VSZWZlcmVuY2UgfCBycHhUcmFuc2xhdGVcIj48L21hcmtkb3duPjwvZGl2PlxuIl19
@@ -74,4 +74,4 @@ WriteTextFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Wri
74
74
  type: Component,
75
75
  args: [{ selector: 'ccd-write-text-field', template: "<div class=\"form-group\" [ngClass]=\"{'form-group-error': !!textControl && !textControl.valid && (textControl.dirty || textControl.touched)}\">\n <label [for]=\"id()\">\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n </label>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"textControl?.errors && (textControl.dirty || textControl.touched)\">\n {{textControl.errors | ccdFirstError:caseField.label}}\n </span>\n <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': textControl?.errors && (textControl.dirty || textControl.touched)}\"\n [id]=\"id()\" type=\"text\" [formControl]=\"textControl\" (blur)=\"onBlur($event)\">\n</div>\n" }]
76
76
  }], null, null); })();
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtdGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS90ZXh0L3dyaXRlLXRleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvdGV4dC93cml0ZS10ZXh0LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7O0lDQXZGLCtCQUFpRDtJQUFBLFlBQTZCOztJQUFBLGlCQUFPOzs7SUFBcEMsZUFBNkI7SUFBN0IsNERBQTZCOzs7SUFFaEYsK0JBQW9EO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU87OztJQUE3QyxlQUFzQztJQUF0QyxzRUFBc0M7OztJQUMxRiwrQkFBc0c7SUFDcEcsWUFDRjs7SUFBQSxpQkFBTzs7O0lBREwsZUFDRjtJQURFLHdHQUNGOzs7O0FEQ0YsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDJCQUEyQjtJQUkvRCxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQWdCLENBQUM7SUFDaEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BELENBQUM7OzJRQVZVLHVCQUF1QixTQUF2Qix1QkFBdUI7MEVBQXZCLHVCQUF1QjtRQ1JwQyw4QkFBNEksZUFBQTtRQUV4SSwwRUFBcUY7UUFDdkYsaUJBQVE7UUFDUiwwRUFBaUc7UUFDakcsMEVBRU87UUFDUCxnQ0FDNEU7UUFBeEIsdUdBQVEsa0JBQWMsSUFBQztRQUQzRSxpQkFDNEUsRUFBQTs7UUFUdEQsdUpBQW1IO1FBQ2xJLGVBQVk7UUFBWiw4QkFBWTtRQUNTLGVBQXFCO1FBQXJCLDBDQUFxQjtRQUV4QixlQUF5QjtRQUF6Qiw4Q0FBeUI7UUFDckIsZUFBdUU7UUFBdkUsc0lBQXVFO1FBRzlELGVBQXFHO1FBQXJHLHNLQUFxRyxnQkFBQSxnQ0FBQTs7dUZEQWhJLHVCQUF1QjtjQUpuQyxTQUFTOzJCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLXRleHQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JpdGUtdGV4dC1maWVsZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXcml0ZVRleHRGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHRleHRDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50ZXh0Q29udHJvbCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtQ29udHJvbCh0aGlzLmNhc2VGaWVsZC52YWx1ZSkpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cigkZXZlbnQpIHtcbiAgICAgJGV2ZW50LnRhcmdldC52YWx1ZSA9ICRldmVudC50YXJnZXQudmFsdWUudHJpbSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6ICEhdGV4dENvbnRyb2wgJiYgIXRleHRDb250cm9sLnZhbGlkICYmICh0ZXh0Q29udHJvbC5kaXJ0eSB8fCB0ZXh0Q29udHJvbC50b3VjaGVkKX1cIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWQoKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiY2FzZUZpZWxkLmxhYmVsXCI+e3tjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsfX08L3NwYW4+XG4gIDwvbGFiZWw+XG4gIDxzcGFuIGNsYXNzPVwiZm9ybS1oaW50XCIgKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCI+e3tjYXNlRmllbGQuaGludF90ZXh0IHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwidGV4dENvbnRyb2w/LmVycm9ycyAmJiAodGV4dENvbnRyb2wuZGlydHkgfHwgdGV4dENvbnRyb2wudG91Y2hlZClcIj5cbiAgICB7e3RleHRDb250cm9sLmVycm9ycyB8IGNjZEZpcnN0RXJyb3I6Y2FzZUZpZWxkLmxhYmVsfX1cbiAgPC9zcGFuPlxuICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwXCIgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiB0ZXh0Q29udHJvbD8uZXJyb3JzICYmICh0ZXh0Q29udHJvbC5kaXJ0eSB8fCB0ZXh0Q29udHJvbC50b3VjaGVkKX1cIlxuICBbaWRdPVwiaWQoKVwiIHR5cGU9XCJ0ZXh0XCIgW2Zvcm1Db250cm9sXT1cInRleHRDb250cm9sXCIgKGJsdXIpPVwib25CbHVyKCRldmVudClcIj5cbjwvZGl2PlxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtdGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS90ZXh0L3dyaXRlLXRleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvdGV4dC93cml0ZS10ZXh0LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7O0lDQXZGLCtCQUFpRDtJQUFBLFlBQTZCOztJQUFBLGlCQUFPOzs7SUFBcEMsZUFBNkI7SUFBN0IsNERBQTZCOzs7SUFFaEYsK0JBQW9EO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU87OztJQUE3QyxlQUFzQztJQUF0QyxzRUFBc0M7OztJQUMxRiwrQkFBc0c7SUFDcEcsWUFDRjs7SUFBQSxpQkFBTzs7O0lBREwsZUFDRjtJQURFLHdHQUNGOzs7O0FEQ0YsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDJCQUEyQjtJQUkvRCxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQWdCLENBQUM7SUFDaEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25ELENBQUM7OzJRQVZVLHVCQUF1QixTQUF2Qix1QkFBdUI7MEVBQXZCLHVCQUF1QjtRQ1JwQyw4QkFBNEksZUFBQTtRQUV4SSwwRUFBcUY7UUFDdkYsaUJBQVE7UUFDUiwwRUFBaUc7UUFDakcsMEVBRU87UUFDUCxnQ0FDNEU7UUFBeEIsdUdBQVEsa0JBQWMsSUFBQztRQUQzRSxpQkFDNEUsRUFBQTs7UUFUdEQsdUpBQW1IO1FBQ2xJLGVBQVk7UUFBWiw4QkFBWTtRQUNTLGVBQXFCO1FBQXJCLDBDQUFxQjtRQUV4QixlQUF5QjtRQUF6Qiw4Q0FBeUI7UUFDckIsZUFBdUU7UUFBdkUsc0lBQXVFO1FBRzlELGVBQXFHO1FBQXJHLHNLQUFxRyxnQkFBQSxnQ0FBQTs7dUZEQWhJLHVCQUF1QjtjQUpuQyxTQUFTOzJCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLXRleHQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JpdGUtdGV4dC1maWVsZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXcml0ZVRleHRGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHRleHRDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50ZXh0Q29udHJvbCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtQ29udHJvbCh0aGlzLmNhc2VGaWVsZC52YWx1ZSkpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cigkZXZlbnQpIHtcbiAgICAkZXZlbnQudGFyZ2V0LnZhbHVlID0gJGV2ZW50LnRhcmdldC52YWx1ZS50cmltKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogISF0ZXh0Q29udHJvbCAmJiAhdGV4dENvbnRyb2wudmFsaWQgJiYgKHRleHRDb250cm9sLmRpcnR5IHx8IHRleHRDb250cm9sLnRvdWNoZWQpfVwiPlxuICA8bGFiZWwgW2Zvcl09XCJpZCgpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgKm5nSWY9XCJjYXNlRmllbGQubGFiZWxcIj57e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbiAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJ0ZXh0Q29udHJvbD8uZXJyb3JzICYmICh0ZXh0Q29udHJvbC5kaXJ0eSB8fCB0ZXh0Q29udHJvbC50b3VjaGVkKVwiPlxuICAgIHt7dGV4dENvbnRyb2wuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWx9fVxuICA8L3NwYW4+XG4gIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBib3R0b20tMzBcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IHRleHRDb250cm9sPy5lcnJvcnMgJiYgKHRleHRDb250cm9sLmRpcnR5IHx8IHRleHRDb250cm9sLnRvdWNoZWQpfVwiXG4gIFtpZF09XCJpZCgpXCIgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwidGV4dENvbnRyb2xcIiAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiPlxuPC9kaXY+XG4iXX0=
@@ -28,6 +28,9 @@ export class FirstErrorPipe {
28
28
  else if (keys[0] === 'pattern') {
29
29
  errorMessage = 'The data entered is not valid for %FIELDLABEL%';
30
30
  }
31
+ else if (keys[0] === 'markDownPattern') {
32
+ errorMessage = 'The data entered is not valid for %FIELDLABEL%. Link mark up characters are not allowed in this field';
33
+ }
31
34
  else if (keys[0] === 'minlength') {
32
35
  errorMessage = '%FIELDLABEL% is below the minimum length';
33
36
  }
@@ -56,4 +59,4 @@ FirstErrorPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ccdFirstError",
56
59
  pure: false
57
60
  }]
58
61
  }], function () { return [{ type: i1.RpxTranslationService }, { type: i0.Injector }]; }, null); })();
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3QtZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3V0aWxzL2ZpcnN0LWVycm9yLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQWEsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUNtQixxQkFBNEMsRUFDNUMsUUFBa0I7UUFEbEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRW5DLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBdUIsRUFBRSxJQUFhO1FBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULElBQUksR0FBRyxPQUFPLENBQUM7U0FDaEI7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLFlBQW9CLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQzFCLFlBQVksR0FBRywwQkFBMEIsQ0FBQztTQUMzQzthQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNoQyxZQUFZLEdBQUcsZ0RBQWdELENBQUM7U0FDakU7YUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEMsWUFBWSxHQUFHLDBDQUEwQyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxFQUFFO1lBQ2xDLFlBQVksR0FBRyx5Q0FBeUMsQ0FBQztTQUMxRDthQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1lBQ3pELFlBQVksR0FBRyw0REFBNEQsQ0FBQztTQUM3RTthQUFNO1lBQ0wsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQjtRQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUM3RCxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsK0JBQStCLENBQUMsWUFBWSxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FDOUgsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDOzs0RUFqRFUsY0FBYztvRkFBZCxjQUFjO3VGQUFkLGNBQWM7Y0FKMUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsS0FBSzthQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NjZEZpcnN0RXJyb3InLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBGaXJzdEVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgYXN5bmNQaXBlOiBBc3luY1BpcGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBycHhUcmFuc2xhdGlvblNlcnZpY2U6IFJweFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICB0aGlzLmFzeW5jUGlwZSA9IG5ldyBBc3luY1BpcGUodGhpcy5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IFZhbGlkYXRpb25FcnJvcnMsIGFyZ3M/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoIWFyZ3MpIHtcbiAgICAgIGFyZ3MgPSAnRmllbGQnO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSk7XG5cbiAgICBpZiAoIWtleXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIGlmIChrZXlzWzBdID09PSAncmVxdWlyZWQnKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnJUZJRUxETEFCRUwlIGlzIHJlcXVpcmVkJztcbiAgICB9IGVsc2UgaWYgKGtleXNbMF0gPT09ICdwYXR0ZXJuJykge1xuICAgICAgZXJyb3JNZXNzYWdlID0gJ1RoZSBkYXRhIGVudGVyZWQgaXMgbm90IHZhbGlkIGZvciAlRklFTERMQUJFTCUnO1xuICAgIH0gZWxzZSBpZiAoa2V5c1swXSA9PT0gJ21pbmxlbmd0aCcpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICclRklFTERMQUJFTCUgaXMgYmVsb3cgdGhlIG1pbmltdW0gbGVuZ3RoJztcbiAgICB9IGVsc2UgaWYgKGtleXNbMF0gPT09ICdtYXhsZW5ndGgnKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnJUZJRUxETEFCRUwlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoJztcbiAgICB9IGVsc2UgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdtYXREYXRldGltZVBpY2tlclBhcnNlJykpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICdUaGUgZGF0ZSBlbnRlcmVkIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBkYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3JNZXNzYWdlID0gdmFsdWVba2V5c1swXV07XG4gICAgfVxuXG4gICAgY29uc3QgbyA9IHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmdldFRyYW5zbGF0aW9uJChhcmdzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGZpZWxkTGFiZWwgPT4gdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UuZ2V0VHJhbnNsYXRpb25XaXRoUmVwbGFjZW1lbnRzJChlcnJvck1lc3NhZ2UsIHsgRklFTERMQUJFTDogZmllbGRMYWJlbCB9KSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQaXBlLnRyYW5zZm9ybShvKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFzeW5jUGlwZS5uZ09uRGVzdHJveSgpO1xuICB9XG59XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3QtZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3V0aWxzL2ZpcnN0LWVycm9yLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQWEsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUNtQixxQkFBNEMsRUFDNUMsUUFBa0I7UUFEbEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRW5DLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBdUIsRUFBRSxJQUFhO1FBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULElBQUksR0FBRyxPQUFPLENBQUM7U0FDaEI7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLFlBQW9CLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQzFCLFlBQVksR0FBRywwQkFBMEIsQ0FBQztTQUMzQzthQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNoQyxZQUFZLEdBQUcsZ0RBQWdELENBQUM7U0FDakU7YUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsRUFBRTtZQUN4QyxZQUFZLEdBQUcsdUdBQXVHLENBQUM7U0FDeEg7YUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEMsWUFBWSxHQUFHLDBDQUEwQyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxFQUFFO1lBQ2xDLFlBQVksR0FBRyx5Q0FBeUMsQ0FBQztTQUMxRDthQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1lBQ3pELFlBQVksR0FBRyw0REFBNEQsQ0FBQztTQUM3RTthQUFNO1lBQ0wsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQjtRQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUM3RCxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsK0JBQStCLENBQUMsWUFBWSxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FDOUgsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDOzs0RUFuRFUsY0FBYztvRkFBZCxjQUFjO3VGQUFkLGNBQWM7Y0FKMUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsS0FBSzthQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NjZEZpcnN0RXJyb3InLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBGaXJzdEVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgYXN5bmNQaXBlOiBBc3luY1BpcGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBycHhUcmFuc2xhdGlvblNlcnZpY2U6IFJweFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICB0aGlzLmFzeW5jUGlwZSA9IG5ldyBBc3luY1BpcGUodGhpcy5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IFZhbGlkYXRpb25FcnJvcnMsIGFyZ3M/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoIWFyZ3MpIHtcbiAgICAgIGFyZ3MgPSAnRmllbGQnO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSk7XG5cbiAgICBpZiAoIWtleXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIGlmIChrZXlzWzBdID09PSAncmVxdWlyZWQnKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnJUZJRUxETEFCRUwlIGlzIHJlcXVpcmVkJztcbiAgICB9IGVsc2UgaWYgKGtleXNbMF0gPT09ICdwYXR0ZXJuJykge1xuICAgICAgZXJyb3JNZXNzYWdlID0gJ1RoZSBkYXRhIGVudGVyZWQgaXMgbm90IHZhbGlkIGZvciAlRklFTERMQUJFTCUnO1xuICAgIH0gZWxzZSBpZiAoa2V5c1swXSA9PT0gJ21hcmtEb3duUGF0dGVybicpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICdUaGUgZGF0YSBlbnRlcmVkIGlzIG5vdCB2YWxpZCBmb3IgJUZJRUxETEFCRUwlLiBMaW5rIG1hcmsgdXAgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQgaW4gdGhpcyBmaWVsZCc7XG4gICAgfSBlbHNlIGlmIChrZXlzWzBdID09PSAnbWlubGVuZ3RoJykge1xuICAgICAgZXJyb3JNZXNzYWdlID0gJyVGSUVMRExBQkVMJSBpcyBiZWxvdyB0aGUgbWluaW11bSBsZW5ndGgnO1xuICAgIH0gZWxzZSBpZiAoa2V5c1swXSA9PT0gJ21heGxlbmd0aCcpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICclRklFTERMQUJFTCUgZXhjZWVkcyB0aGUgbWF4aW11bSBsZW5ndGgnO1xuICAgIH0gZWxzZSBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoJ21hdERhdGV0aW1lUGlja2VyUGFyc2UnKSkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gJ1RoZSBkYXRlIGVudGVyZWQgaXMgbm90IHZhbGlkLiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGRhdGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSB2YWx1ZVtrZXlzWzBdXTtcbiAgICB9XG5cbiAgICBjb25zdCBvID0gdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UuZ2V0VHJhbnNsYXRpb24kKGFyZ3MpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZmllbGRMYWJlbCA9PiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5nZXRUcmFuc2xhdGlvbldpdGhSZXBsYWNlbWVudHMkKGVycm9yTWVzc2FnZSwgeyBGSUVMRExBQkVMOiBmaWVsZExhYmVsIH0pKVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5hc3luY1BpcGUudHJhbnNmb3JtKG8pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYXN5bmNQaXBlLm5nT25EZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
@@ -8,6 +8,7 @@ export class FormValidatorsService {
8
8
  FormValidatorsService.CUSTOM_VALIDATED_TYPES.indexOf(caseField.field_type.type) === -1) {
9
9
  const validators = [Validators.required];
10
10
  if (caseField.field_type.type === 'Text') {
11
+ validators.push(this.markDownPatternValidator());
11
12
  if (caseField.field_type.regular_expression) {
12
13
  validators.push(Validators.pattern(caseField.field_type.regular_expression));
13
14
  }
@@ -21,22 +22,36 @@ export class FormValidatorsService {
21
22
  validators.push(Validators.maxLength(caseField.field_type.max));
22
23
  }
23
24
  }
25
+ if (caseField.field_type.type === 'TextArea') {
26
+ validators.push(this.emptyValidator());
27
+ validators.push(this.markDownPatternValidator());
28
+ }
24
29
  if (control.validator) {
25
30
  validators.push(control.validator);
26
31
  }
27
32
  control.setValidators(validators);
28
33
  }
34
+ else if (caseField.display_context === 'OPTIONAL' && (caseField.field_type.type === 'Text' || caseField.field_type.type === 'TextArea')) {
35
+ control.setValidators(this.markDownPatternValidator());
36
+ }
29
37
  return control;
30
38
  }
31
39
  static emptyValidator() {
32
40
  const validator = (control) => {
33
- if (control && control.value && control.value.toString().trim().length === 0) {
41
+ if (control?.value?.toString().trim().length === 0) {
34
42
  return { required: {} };
35
43
  }
36
44
  return null;
37
45
  };
38
46
  return validator;
39
47
  }
48
+ static markDownPatternValidator() {
49
+ const pattern = /(\[[^\]]{0,500}\]\([^)]{0,500}\)|!\[[^\]]{0,500}\]\([^)]{0,500}\)|<img[^>]{0,500}>|<a[^>]{0,500}>.*?<\/a>)/;
50
+ return (control) => {
51
+ const value = control?.value?.toString().trim();
52
+ return (value && pattern.test(value)) ? { markDownPattern: {} } : null;
53
+ };
54
+ }
40
55
  // TODO: Strip this out as it's only here for the moment because
41
56
  // the service is being injected all over the place but it doesn't
42
57
  // need to be as FormValidatorsService.addValidators is perfectly
@@ -44,13 +59,23 @@ export class FormValidatorsService {
44
59
  addValidators(caseField, control) {
45
60
  return FormValidatorsService.addValidators(caseField, control);
46
61
  }
62
+ addMarkDownValidators(formGroup, controlPath) {
63
+ const control = formGroup.get(controlPath);
64
+ if (control) {
65
+ control.setValidators(FormValidatorsService.markDownPatternValidator());
66
+ control.updateValueAndValidity();
67
+ }
68
+ return control;
69
+ }
47
70
  }
48
71
  FormValidatorsService.CUSTOM_VALIDATED_TYPES = [
49
72
  'Date', 'MoneyGBP', 'Label', 'JudicialUser'
50
73
  ];
74
+ FormValidatorsService.DEFAULT_INPUT_TEXT = 'text';
75
+ FormValidatorsService.DEFAULT_INPUT_TEXTAREA = 'textAreas';
51
76
  FormValidatorsService.ɵfac = function FormValidatorsService_Factory(t) { return new (t || FormValidatorsService)(); };
52
77
  FormValidatorsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FormValidatorsService, factory: FormValidatorsService.ɵfac });
53
78
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormValidatorsService, [{
54
79
  type: Injectable
55
80
  }], null, null); })();
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUt6QixNQUFNLENBQUMsYUFBYSxDQUFDLFNBQW9CLEVBQUUsT0FBd0I7UUFDeEUsSUFDRSxTQUFTLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxTQUFTO1lBQ2pELHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNwRjtZQUNGLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUU7b0JBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztpQkFDOUU7cUJBQU07b0JBQ0wsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUU7b0JBQzlFLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ2pFO2dCQUNELElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxFQUFFO29CQUM5RSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNqRTthQUNGO1lBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUNyQixVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNwQztZQUNELE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWM7UUFDMUIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQ3RFLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMzRSxPQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLGtFQUFrRTtJQUNsRSxpRUFBaUU7SUFDakUsc0JBQXNCO0lBQ2YsYUFBYSxDQUFDLFNBQW9CLEVBQUUsT0FBd0I7UUFDakUsT0FBTyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O0FBOUN1Qiw0Q0FBc0IsR0FBb0I7SUFDaEUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsY0FBYztDQUM1QyxDQUFDOzBGQUpTLHFCQUFxQjsyRUFBckIscUJBQXFCLFdBQXJCLHFCQUFxQjt1RkFBckIscUJBQXFCO2NBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb21tb25zL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDVVNUT01fVkFMSURBVEVEX1RZUEVTOiBGaWVsZFR5cGVFbnVtW10gPSBbXG4gICAgJ0RhdGUnLCAnTW9uZXlHQlAnLCAnTGFiZWwnLCAnSnVkaWNpYWxVc2VyJ1xuICBdO1xuICBwdWJsaWMgc3RhdGljIGFkZFZhbGlkYXRvcnMoY2FzZUZpZWxkOiBDYXNlRmllbGQsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgaWYgKFxuICAgICAgY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dCA9PT0gQ29uc3RhbnRzLk1BTkRBVE9SWSAmJlxuICAgICAgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLkNVU1RPTV9WQUxJREFURURfVFlQRVMuaW5kZXhPZihjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlKSA9PT0gLTFcbiAgICAgICkge1xuICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnVGV4dCcpIHtcbiAgICAgICAgaWYgKGNhc2VGaWVsZC5maWVsZF90eXBlLnJlZ3VsYXJfZXhwcmVzc2lvbikge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oY2FzZUZpZWxkLmZpZWxkX3R5cGUucmVndWxhcl9leHByZXNzaW9uKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHRoaXMuZW1wdHlWYWxpZGF0b3IoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VGaWVsZC5maWVsZF90eXBlLm1pbiAmJiAodHlwZW9mIGNhc2VGaWVsZC5maWVsZF90eXBlLm1pbiA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGNhc2VGaWVsZC5maWVsZF90eXBlLm1pbikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS5tYXggJiYgKHR5cGVvZiBjYXNlRmllbGQuZmllbGRfdHlwZS5tYXggPT09ICdudW1iZXInKSkge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChjYXNlRmllbGQuZmllbGRfdHlwZS5tYXgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNvbnRyb2wudmFsaWRhdG9yKSB7XG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChjb250cm9sLnZhbGlkYXRvcik7XG4gICAgICB9XG4gICAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbXB0eVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6VmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4gIHtcbiAgICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnZhbHVlLnRvU3RyaW5nKCkudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gIHsgcmVxdWlyZWQ6IHt9IH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiB2YWxpZGF0b3I7XG4gIH1cblxuICAvLyBUT0RPOiBTdHJpcCB0aGlzIG91dCBhcyBpdCdzIG9ubHkgaGVyZSBmb3IgdGhlIG1vbWVudCBiZWNhdXNlXG4gIC8vIHRoZSBzZXJ2aWNlIGlzIGJlaW5nIGluamVjdGVkIGFsbCBvdmVyIHRoZSBwbGFjZSBidXQgaXQgZG9lc24ndFxuICAvLyBuZWVkIHRvIGJlIGFzIEZvcm1WYWxpZGF0b3JzU2VydmljZS5hZGRWYWxpZGF0b3JzIGlzIHBlcmZlY3RseVxuICAvLyBoYXBweSBiZWluZyBzdGF0aWMuXG4gIHB1YmxpYyBhZGRWYWxpZGF0b3JzKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuYWRkVmFsaWRhdG9ycyhjYXNlRmllbGQsIGNvbnRyb2wpO1xuICB9XG59XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLHFCQUFxQjtJQU96QixNQUFNLENBQUMsYUFBYSxDQUFDLFNBQW9CLEVBQUUsT0FBd0I7UUFDeEUsSUFDRSxTQUFTLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxTQUFTO1lBQ2pELHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUN0RjtZQUNBLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUM7Z0JBQ2pELElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRTtvQkFDM0MsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2lCQUM5RTtxQkFBTTtvQkFDTCxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFD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RUFBRSxDQUFDLENBQUM7WUFDeEUsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDbEM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOztBQTVFdUIsNENBQXNCLEdBQW9CO0lBQ2hFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGNBQWM7Q0FDNUMsQ0FBQztBQUNzQix3Q0FBa0IsR0FBRyxNQUFNLENBQUM7QUFDNUIsNENBQXNCLEdBQUcsV0FBVyxDQUFDOzBGQUxsRCxxQkFBcUI7MkVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUI7dUZBQXJCLHFCQUFxQjtjQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29tbW9ucy9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS1lbnVtLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvcm1WYWxpZGF0b3JzU2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENVU1RPTV9WQUxJREFURURfVFlQRVM6IEZpZWxkVHlwZUVudW1bXSA9IFtcbiAgICAnRGF0ZScsICdNb25leUdCUCcsICdMYWJlbCcsICdKdWRpY2lhbFVzZXInXG4gIF07XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSU5QVVRfVEVYVCA9ICd0ZXh0JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9JTlBVVF9URVhUQVJFQSA9ICd0ZXh0QXJlYXMnO1xuXG4gIHB1YmxpYyBzdGF0aWMgYWRkVmFsaWRhdG9ycyhjYXNlRmllbGQ6IENhc2VGaWVsZCwgY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBpZiAoXG4gICAgICBjYXNlRmllbGQuZGlzcGxheV9jb250ZXh0ID09PSBDb25zdGFudHMuTUFOREFUT1JZICYmXG4gICAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuQ1VTVE9NX1ZBTElEQVRFRF9UWVBFUy5pbmRleE9mKGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUpID09PSAtMVxuICAgICkge1xuICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnVGV4dCcpIHtcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHRoaXMubWFya0Rvd25QYXR0ZXJuVmFsaWRhdG9yKCkpO1xuICAgICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUucmVndWxhcl9leHByZXNzaW9uKSB7XG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihjYXNlRmllbGQuZmllbGRfdHlwZS5yZWd1bGFyX2V4cHJlc3Npb24pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2godGhpcy5lbXB0eVZhbGlkYXRvcigpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUubWluICYmICh0eXBlb2YgY2FzZUZpZWxkLmZpZWxkX3R5cGUubWluID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoY2FzZUZpZWxkLmZpZWxkX3R5cGUubWluKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VGaWVsZC5maWVsZF90eXBlLm1heCAmJiAodHlwZW9mIGNhc2VGaWVsZC5maWVsZF90eXBlLm1heCA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGNhc2VGaWVsZC5maWVsZF90eXBlLm1heCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnVGV4dEFyZWEnKSB7XG4gICAgICAgIHZhbGlkYXRvcnMucHVzaCh0aGlzLmVtcHR5VmFsaWRhdG9yKCkpO1xuICAgICAgICB2YWxpZGF0b3JzLnB1c2godGhpcy5tYXJrRG93blBhdHRlcm5WYWxpZGF0b3IoKSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cm9sLnZhbGlkYXRvcikge1xuICAgICAgICB2YWxpZGF0b3JzLnB1c2goY29udHJvbC52YWxpZGF0b3IpO1xuICAgICAgfVxuICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIH0gZWxzZSBpZiAoY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dCA9PT0gJ09QVElPTkFMJyAmJiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ1RleHQnIHx8IGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdUZXh0QXJlYScpKSB7XG4gICAgICBjb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5tYXJrRG93blBhdHRlcm5WYWxpZGF0b3IoKSk7XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbXB0eVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6VmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgaWYgKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHt9IH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiB2YWxpZGF0b3I7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG1hcmtEb3duUGF0dGVyblZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgcGF0dGVybiA9IC8oXFxbW15cXF1dezAsNTAwfVxcXVxcKFteKV17MCw1MDB9XFwpfCFcXFtbXlxcXV17MCw1MDB9XFxdXFwoW14pXXswLDUwMH1cXCl8PGltZ1tePl17MCw1MDB9Pnw8YVtePl17MCw1MDB9Pi4qPzxcXC9hPikvO1xuXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgIHJldHVybiAodmFsdWUgJiYgcGF0dGVybi50ZXN0KHZhbHVlKSkgPyB7IG1hcmtEb3duUGF0dGVybjoge30gfSA6IG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8vIFRPRE86IFN0cmlwIHRoaXMgb3V0IGFzIGl0J3Mgb25seSBoZXJlIGZvciB0aGUgbW9tZW50IGJlY2F1c2VcbiAgLy8gdGhlIHNlcnZpY2UgaXMgYmVpbmcgaW5qZWN0ZWQgYWxsIG92ZXIgdGhlIHBsYWNlIGJ1dCBpdCBkb2Vzbid0XG4gIC8vIG5lZWQgdG8gYmUgYXMgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLmFkZFZhbGlkYXRvcnMgaXMgcGVyZmVjdGx5XG4gIC8vIGhhcHB5IGJlaW5nIHN0YXRpYy5cbiAgcHVibGljIGFkZFZhbGlkYXRvcnMoY2FzZUZpZWxkOiBDYXNlRmllbGQsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIEZvcm1WYWxpZGF0b3JzU2VydmljZS5hZGRWYWxpZGF0b3JzKGNhc2VGaWVsZCwgY29udHJvbCk7XG4gIH1cblxuICBwdWJsaWMgYWRkTWFya0Rvd25WYWxpZGF0b3JzKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sLCBjb250cm9sUGF0aDogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sUGF0aCk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhGb3JtVmFsaWRhdG9yc1NlcnZpY2UubWFya0Rvd25QYXR0ZXJuVmFsaWRhdG9yKCkpO1xuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sO1xuICB9XG59XG4iXX0=