vcomply-workflow-engine 6.4.9 → 6.5.0

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.
@@ -131,6 +131,7 @@ export class DocumentSectionComponent {
131
131
  this.isUploading = false;
132
132
  }
133
133
  }, (err) => {
134
+ console.log(err);
134
135
  this.snackBar.show("Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?", 'alert');
135
136
  this.isUploading = false;
136
137
  this.selectedDocumentType = '';
@@ -254,11 +255,11 @@ export class DocumentSectionComponent {
254
255
  this.openTemplate.emit();
255
256
  }
256
257
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DocumentSectionComponent, deps: [{ token: i1.SnackBarService }, { token: i2.PolicyService }, { token: i3.PolicyAPIService }, { token: i4.Router }, { token: i4.ActivatedRoute }, { token: i5.PlatformLocation }, { token: i6.IframeService }], target: i0.ɵɵFactoryTarget.Component }); }
257
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DocumentSectionComponent, selector: "lib-document-section", inputs: { selectedDocumentType: "selectedDocumentType", feature: "feature", templateView: "templateView", policyId: "policyId", policyName: "policyName", organization_id: "organization_id", member_obj_id: "member_obj_id", userInfo: "userInfo", templateUrl: "templateUrl" }, outputs: { disconnectRefresh: "disconnectRefresh", editPolicy: "editPolicy", openTemplate: "openTemplate" }, ngImport: i0, template: "<div class=\"document-section\" [class.grayscale]=\"templateView\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 480.8 480.8\"\n style=\"enable-background: new 0 0 480.8 480.8\"\n xml:space=\"preserve\"\n >\n <path\n style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\"\n />\n <g>\n <path\n style=\"fill: #e5e5e5\"\n d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\"\n />\n <path\n style=\"fill: #e5e5e5\"\n d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\"\n />\n </g>\n <g>\n <path\n style=\"fill: #210b20\"\n d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\"\n />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either draft it from scratch using VComply's online editor{{ ff_policy_ms_word_integration ? ' or Create a Policy Using MS Word' : '' }}{{ showDocxBlock ? ' or Upload an Existing DOCX file' : '' }}{{ showPdfBlock ? ' or Upload an Existing PDF file' : '' }} or Draft Using a Template.\n </p>\n </div>\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'draft'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\"\n />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\"/>\n <path id=\"Path_20403\" data-name=\"Path 20403\" d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n \n <label\n *ngIf=\"ff_policy_ms_word_integration\"\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'word'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\"\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label\n class=\"document-box\"\n *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\"\n [class.error]=\"docxError?.visible\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".docx\"\n id=\"DOCfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #docxUploadButton\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\"\n >Upload a <strong>DOCX</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'docx' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\">&#xe914;</i>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'docx' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label\n class=\"document-box\"\n *ngIf=\"showPdfBlock\"\n [class.active]=\"selectedDocumentType == 'pdf'\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".pdf\"\n id=\"PDFfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #pdfUploadButton\n />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\"/>\n <path id=\"Path_20409\" data-name=\"Path 20409\" d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\"\n >Upload a <strong>PDF</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'pdf' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'pdf' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType === 'template'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\"\n />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\"/>\n <path id=\"Path_20410\" data-name=\"Path 20410\" d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\" transform=\"translate(8 7.999)\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"templateView\">\n <button\n type=\"button\"\n (click)=\"editPolicyEmit()\"\n class=\"back\"\n [class.disabled]=\"templateView\"\n >\n <i class=\"icons\">&#xe91d;</i> Back\n </button>\n <button\n type=\"button\"\n (click)=\"editor(selectedDocumentType)\"\n class=\"next\"\n [class.disabled]=\"isNextButtonDisabled\"\n >\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i8.LoaderInlineComponent, selector: "app-loader-inline" }] }); }
258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DocumentSectionComponent, selector: "lib-document-section", inputs: { selectedDocumentType: "selectedDocumentType", feature: "feature", templateView: "templateView", policyId: "policyId", policyName: "policyName", organization_id: "organization_id", member_obj_id: "member_obj_id", userInfo: "userInfo", templateUrl: "templateUrl" }, outputs: { disconnectRefresh: "disconnectRefresh", editPolicy: "editPolicy", openTemplate: "openTemplate" }, ngImport: i0, template: "<div class=\"document-section\" [class.grayscale]=\"templateView\" [class.no-pointer]=\"isUploading\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\" y=\"0px\" viewBox=\"0 0 480.8 480.8\" style=\"enable-background: new 0 0 480.8 480.8\" xml:space=\"preserve\">\n <path style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\" />\n <g>\n <path style=\"fill: #e5e5e5\" d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\" />\n <path style=\"fill: #e5e5e5\" d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\" />\n </g>\n <g>\n <path style=\"fill: #210b20\" d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\" />\n <path style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\" />\n <path style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\" />\n <path style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\" />\n <path style=\"fill: #210b20\" d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\" />\n <path style=\"fill: #210b20\" d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\" />\n <path style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\" />\n <path style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\" />\n <path style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\" />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either draft it from scratch using VComply's\n online editor{{ ff_policy_ms_word_integration ? ' or Create a Policy Using MS Word' : '' }}{{ showDocxBlock ? '\n or Upload an Existing DOCX file' : '' }}{{ showPdfBlock ? ' or Upload an Existing PDF file' : '' }} or Draft\n Using a Template.\n </p>\n </div>\n <label class=\"document-box\" [class.active]=\"selectedDocumentType == 'draft'\">\n <input type=\"radio\" name=\"selectedDocumentType\" (click)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\" />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\" />\n <path id=\"Path_20403\" data-name=\"Path 20403\"\n d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n </label>\n\n\n <label *ngIf=\"ff_policy_ms_word_integration\" class=\"document-box\" [class.active]=\"selectedDocumentType == 'word'\">\n <input type=\"radio\" name=\"selectedDocumentType\" (click)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\" />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\" />\n <path id=\"Path_20405\" data-name=\"Path 20405\"\n d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label class=\"document-box\" *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\" [class.error]=\"docxError?.visible\"\n (click)=\"resetUploads()\">\n <input type=\"file\" accept=\".docx\" id=\"DOCfile\" (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\" #docxUploadButton />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\" />\n <path id=\"Path_20405\" data-name=\"Path 20405\"\n d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\">Upload a\n <strong>DOCX</strong></ng-container>\n <span *ngIf=\"selectedDocumentType == 'docx' && filename\" [appTooltip]=\"filename\" placement=\"bottom-left\"\n delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n filename\n }}</span>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\">&#xe914;</i>\n </div>\n <div class=\"line-progress\" *ngIf=\"selectedDocumentType == 'docx' && isUploading\">\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label class=\"document-box\" *ngIf=\"showPdfBlock\" [class.active]=\"selectedDocumentType == 'pdf'\"\n (click)=\"resetUploads()\">\n <input type=\"file\" accept=\".pdf\" id=\"PDFfile\" (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\" #pdfUploadButton />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\" />\n <path id=\"Path_20409\" data-name=\"Path 20409\"\n d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\">Upload a\n <strong>PDF</strong></ng-container>\n <span *ngIf=\"selectedDocumentType == 'pdf' && filename\" [appTooltip]=\"filename\" placement=\"bottom-left\"\n delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n filename\n }}</span>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n <div class=\"line-progress\" *ngIf=\"selectedDocumentType == 'pdf' && isUploading\">\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label class=\"document-box\" [class.active]=\"selectedDocumentType === 'template'\">\n <input type=\"radio\" name=\"selectedDocumentType\" (click)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\" />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\" />\n <path id=\"Path_20410\" data-name=\"Path 20410\"\n d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\"\n transform=\"translate(8 7.999)\" fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"templateView\">\n <button type=\"button\" (click)=\"editPolicyEmit()\" class=\"back\" [class.disabled]=\"templateView\">\n <i class=\"icons\">&#xe91d;</i> Back\n </button>\n <button type=\"button\" (click)=\"editor(selectedDocumentType)\" class=\"next\"\n [class.disabled]=\"isNextButtonDisabled || isUploading\">\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}::ng-deep .document-section.no-pointer{pointer-events:none}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i8.LoaderInlineComponent, selector: "app-loader-inline" }] }); }
258
259
  }
259
260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DocumentSectionComponent, decorators: [{
260
261
  type: Component,
261
- args: [{ selector: 'lib-document-section', template: "<div class=\"document-section\" [class.grayscale]=\"templateView\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 480.8 480.8\"\n style=\"enable-background: new 0 0 480.8 480.8\"\n xml:space=\"preserve\"\n >\n <path\n style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\"\n />\n <g>\n <path\n style=\"fill: #e5e5e5\"\n d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\"\n />\n <path\n style=\"fill: #e5e5e5\"\n d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\"\n />\n </g>\n <g>\n <path\n style=\"fill: #210b20\"\n d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\"\n />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either draft it from scratch using VComply's online editor{{ ff_policy_ms_word_integration ? ' or Create a Policy Using MS Word' : '' }}{{ showDocxBlock ? ' or Upload an Existing DOCX file' : '' }}{{ showPdfBlock ? ' or Upload an Existing PDF file' : '' }} or Draft Using a Template.\n </p>\n </div>\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'draft'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\"\n />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\"/>\n <path id=\"Path_20403\" data-name=\"Path 20403\" d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n \n <label\n *ngIf=\"ff_policy_ms_word_integration\"\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'word'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\"\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label\n class=\"document-box\"\n *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\"\n [class.error]=\"docxError?.visible\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".docx\"\n id=\"DOCfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #docxUploadButton\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\"\n >Upload a <strong>DOCX</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'docx' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\">&#xe914;</i>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'docx' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label\n class=\"document-box\"\n *ngIf=\"showPdfBlock\"\n [class.active]=\"selectedDocumentType == 'pdf'\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".pdf\"\n id=\"PDFfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #pdfUploadButton\n />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\"/>\n <path id=\"Path_20409\" data-name=\"Path 20409\" d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\"\n >Upload a <strong>PDF</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'pdf' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'pdf' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType === 'template'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\"\n />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\"/>\n <path id=\"Path_20410\" data-name=\"Path 20410\" d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\" transform=\"translate(8 7.999)\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"templateView\">\n <button\n type=\"button\"\n (click)=\"editPolicyEmit()\"\n class=\"back\"\n [class.disabled]=\"templateView\"\n >\n <i class=\"icons\">&#xe91d;</i> Back\n </button>\n <button\n type=\"button\"\n (click)=\"editor(selectedDocumentType)\"\n class=\"next\"\n [class.disabled]=\"isNextButtonDisabled\"\n >\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"] }]
262
+ args: [{ selector: 'lib-document-section', template: "<div class=\"document-section\" [class.grayscale]=\"templateView\" [class.no-pointer]=\"isUploading\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\" y=\"0px\" viewBox=\"0 0 480.8 480.8\" style=\"enable-background: new 0 0 480.8 480.8\" xml:space=\"preserve\">\n <path style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\" />\n <g>\n <path style=\"fill: #e5e5e5\" d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\" />\n <path style=\"fill: #e5e5e5\" d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\" />\n </g>\n <g>\n <path style=\"fill: #210b20\" d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\" />\n <path style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\" />\n <path style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\" />\n <path style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\" />\n <path style=\"fill: #210b20\" d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\" />\n <path style=\"fill: #210b20\" d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\" />\n <path style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\" />\n <path style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\" />\n <path style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\" />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either draft it from scratch using VComply's\n online editor{{ ff_policy_ms_word_integration ? ' or Create a Policy Using MS Word' : '' }}{{ showDocxBlock ? '\n or Upload an Existing DOCX file' : '' }}{{ showPdfBlock ? ' or Upload an Existing PDF file' : '' }} or Draft\n Using a Template.\n </p>\n </div>\n <label class=\"document-box\" [class.active]=\"selectedDocumentType == 'draft'\">\n <input type=\"radio\" name=\"selectedDocumentType\" (click)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\" />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\" />\n <path id=\"Path_20403\" data-name=\"Path 20403\"\n d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n </label>\n\n\n <label *ngIf=\"ff_policy_ms_word_integration\" class=\"document-box\" [class.active]=\"selectedDocumentType == 'word'\">\n <input type=\"radio\" name=\"selectedDocumentType\" (click)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\" />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\" />\n <path id=\"Path_20405\" data-name=\"Path 20405\"\n d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label class=\"document-box\" *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\" [class.error]=\"docxError?.visible\"\n (click)=\"resetUploads()\">\n <input type=\"file\" accept=\".docx\" id=\"DOCfile\" (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\" #docxUploadButton />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\" />\n <path id=\"Path_20405\" data-name=\"Path 20405\"\n d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\">Upload a\n <strong>DOCX</strong></ng-container>\n <span *ngIf=\"selectedDocumentType == 'docx' && filename\" [appTooltip]=\"filename\" placement=\"bottom-left\"\n delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n filename\n }}</span>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\">&#xe914;</i>\n </div>\n <div class=\"line-progress\" *ngIf=\"selectedDocumentType == 'docx' && isUploading\">\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label class=\"document-box\" *ngIf=\"showPdfBlock\" [class.active]=\"selectedDocumentType == 'pdf'\"\n (click)=\"resetUploads()\">\n <input type=\"file\" accept=\".pdf\" id=\"PDFfile\" (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\" #pdfUploadButton />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\" />\n <path id=\"Path_20409\" data-name=\"Path 20409\"\n d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\"\n fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\">Upload a\n <strong>PDF</strong></ng-container>\n <span *ngIf=\"selectedDocumentType == 'pdf' && filename\" [appTooltip]=\"filename\" placement=\"bottom-left\"\n delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n filename\n }}</span>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n <div class=\"line-progress\" *ngIf=\"selectedDocumentType == 'pdf' && isUploading\">\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label class=\"document-box\" [class.active]=\"selectedDocumentType === 'template'\">\n <input type=\"radio\" name=\"selectedDocumentType\" (click)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\" />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\"\n d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\" />\n <path id=\"Path_20410\" data-name=\"Path 20410\"\n d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\"\n transform=\"translate(8 7.999)\" fill=\"#fff\" />\n </svg>\n\n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n <div class=\"check-circle\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"templateView\">\n <button type=\"button\" (click)=\"editPolicyEmit()\" class=\"back\" [class.disabled]=\"templateView\">\n <i class=\"icons\">&#xe91d;</i> Back\n </button>\n <button type=\"button\" (click)=\"editor(selectedDocumentType)\" class=\"next\"\n [class.disabled]=\"isNextButtonDisabled || isUploading\">\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}::ng-deep .document-section.no-pointer{pointer-events:none}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"] }]
262
263
  }], ctorParameters: function () { return [{ type: i1.SnackBarService }, { type: i2.PolicyService }, { type: i3.PolicyAPIService }, { type: i4.Router }, { type: i4.ActivatedRoute }, { type: i5.PlatformLocation }, { type: i6.IframeService }]; }, propDecorators: { selectedDocumentType: [{
263
264
  type: Input
264
265
  }], feature: [{
@@ -284,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
284
285
  }], openTemplate: [{
285
286
  type: Output
286
287
  }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7OztBQU83RixNQUFNLE9BQU8sd0JBQXdCO0lBZ0NuQyxZQUNVLFFBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2QsS0FBcUIsRUFDN0IsZ0JBQWtDLEVBQzFCLGFBQTRCO1FBTjVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBRXJCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEN0QyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFFBQUcsR0FBRyxLQUFLLENBQUM7UUFDWixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsUUFBRyxHQUFHLEtBQUssQ0FBQztRQUNaLGdCQUFXLEdBQUcs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UUFDL0IsWUFBWSxDQUFDLE9BQU8sQ0FDbEIscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQXhTVSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwyYkN0QnJDLG9zaUJBZ1hBOzs0RkQxVmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHNCQUFzQjs4UUFpQnZCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeUFQSVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3ktYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWZyYW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lmcmFtZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdPUkRfQ09OU1RBTlRTLCBXT1JEX1VSTF9DT05TVEFOVFMgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1wb2xpY3kvbXMtd29yZC5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnQtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveXtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVZpZXdTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBmaWxlVG9VcGxvYWQ6IGFueTtcbiAgZmlsZW5hbWUgPSAnJztcbiAgZmlsZVR5cGUgPSAnJztcbiAgcGRmID0gZmFsc2U7XG4gIGRyYWZ0ID0gZmFsc2U7XG4gIGRvYyA9IGZhbHNlO1xuICBpc1VwbG9hZGluZyA9IGZhbHNlO1xuICBpc0xvYWRlciA9IGZhbHNlO1xuICBmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBjcmVhdGVXb3JkUG9saWN5VGV4dCA9IFdPUkRfQ09OU1RBTlRTLk1TX1dPUkRfT1BUSU9OO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGVWaWV3ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBvbGljeUlkOiBhbnkgPSAnJztcbiAgQElucHV0KCkgcG9saWN5TmFtZTogYW55ID0gJyc7XG4gIEBJbnB1dCgpIG9yZ2FuaXphdGlvbl9pZDogYW55ID0gJyc7XG4gIEBJbnB1dCgpIG1lbWJlcl9vYmpfaWQ6IGFueTtcbiAgQElucHV0KCkgdXNlckluZm86IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGVVcmw6IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlZGl0UG9saWN5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb3BlblRlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGJhc2VVUkwgPSAnJztcbiAgZG9jeEVycm9yID0ge1xuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG1lc3NhZ2U6ICcnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb2xpY3lBUElTZXJ2aWNlOiBQb2xpY3lBUElTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcGxhdGZvcm1Mb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvbixcbiAgICBwcml2YXRlIGlmcmFtZVNlcnZpY2U6IElmcmFtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5iYXNlVVJMID0gbG9jYXRpb24/Lm9yaWdpbjtcbiAgICBpZiAodGhpcy5iYXNlVVJMID09ICdodHRwOi8vbG9jYWxob3N0OjQyMDAnKSB7XG4gICAgICB0aGlzLmJhc2VVUkwgPSAnaHR0cHM6Ly9kZXYudi1jb21wbHkuY29tJztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpc2VGZWF0dXJlRmxhZ3MoKTtcbiAgICB0aGlzLmNoZWNrVGVtcGxhdGVWaWV3KCk7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFzdEZpbGVOYW1lQW5kVHlwZScpID8/ICdcInt9XCInXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBkYXRhLm5hbWUgIT09IG51bGwgJiZcbiAgICAgIGRhdGEubmFtZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBkYXRhLnR5cGUgIT09IG51bGwgJiZcbiAgICAgIGRhdGEudHlwZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBkYXRhLnBvbGljeUlkID09IHRoaXMucG9saWN5SWRcbiAgICApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSBkYXRhLnR5cGU7XG4gICAgICB0aGlzLmZpbGVuYW1lID0gZGF0YS5uYW1lO1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xhc3RGaWxlTmFtZUFuZFR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBjaGVja1RlbXBsYXRlVmlldygpIHtcbiAgICB0aGlzLnRlbXBsYXRlVmlld1N1YnNjcmlwdGlvbiA9IHRoaXMucG9saWN5U2VydmljZS50ZW1wbGF0ZVZpZXcuc3Vic2NyaWJlKChyZXM6Ym9vbGVhbikgPT4ge1xuICAgICAgaWYoIXJlcykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZW1wbGF0ZVZpZXdTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudGVtcGxhdGVWaWV3U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGlzZUZlYXR1cmVGbGFncygpIHtcbiAgICB0aGlzLmZmX3BvbGljeV9tc193b3JkX2ludGVncmF0aW9uID0gIHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbicpO1xuICB9XG5cbnJlZGlyZWN0VXNlclRvV29yZFBvbGljeSgpIHtcbiAgd2luZG93Lm9wZW4oV09SRF9VUkxfQ09OU1RBTlRTLm5ld193b3JkX3BvbGljeV91cmwsICdfYmxhbmsnKTtcbiAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAgdGhpcy5iYXNlVVJMICsgV09SRF9VUkxfQ09OU1RBTlRTLndvcmtyb29tX3VybCArIHRoaXMucG9saWN5SWQ7XG59XG5cbiAgY3JlYXRlV29yZFBvbGljeSgpIHtcbiAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnBvbGljeUFQSVNlcnZpY2UuY3JlYXRlV29yZFBvbGljeSh0aGlzLnBvbGljeUlkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYocmVzKXtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVzZXJUb1dvcmRQb2xpY3koKTtcbiAgICAgIH0gICAgICAgXG4gICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XG4gICAgfSxcbiAgICAoZXJyKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgIFdPUkRfQ09OU1RBTlRTLmNyZWF0ZVdvcmRQb2xpY3lfc25hY2tiYXJfbWVzc2FnZSxcbiAgICAgICAgJ2FsZXJ0J1xuICAgICAgKTtcbiAgICB9XG4gICk7XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgdGhpcy5maWxlVG9VcGxvYWQgPSBmaWxlc1swXTtcbiAgICB0aGlzLmZpbGVuYW1lID0gdGhpcy5maWxlVG9VcGxvYWQubmFtZTtcbiAgICB0aGlzLmZpbGVUeXBlID0gdGhpcy5maWxlVG9VcGxvYWQubmFtZVxuICAgICAgLnNsaWNlKFxuICAgICAgICB0aGlzLmZpbGVUb1VwbG9hZC5uYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxLFxuICAgICAgICB0aGlzLmZpbGVUb1VwbG9hZC5uYW1lLmxlbmd0aFxuICAgICAgKVxuICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMuZmlsZVR5cGUgPT09ICdwZGYnKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGUoeyBmaWxlOiB0aGlzLmZpbGVUb1VwbG9hZCwgZmlsZVR5cGU6IHRoaXMuZmlsZVR5cGUgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUeXBlID09PSAnZG9jeCcpIHtcbiAgICAgIHRoaXMudXBsb2FkRmlsZSh7IGZpbGU6IHRoaXMuZmlsZVRvVXBsb2FkLCBmaWxlVHlwZTogdGhpcy5maWxlVHlwZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZScsICdhbGVydCcpO1xuICAgIH1cbiAgfVxuICBzaG93UGRmQmxvY2sgPSB0cnVlO1xuICBzaG93RG9jeEJsb2NrID0gdHJ1ZTtcblxuICBnZXQgaXNOZXh0QnV0dG9uRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlIHx8IHRoaXMudGVtcGxhdGVWaWV3IHx8IHRoaXMuaXNMb2FkZXIgfHwgdGhpcy5pc1VwbG9hZGluZztcbiAgfVxuXG4gIHVwbG9hZEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlO1xuICAgIGlmIChldmVudC5maWxlVHlwZSA9PT0gJ2RvY3gnKSB7XG4gICAgICB0aGlzLmNoYW5nZURvY1R5cGUoJ2RvY3gnKTtcbiAgICAgIHRoaXMudXBsb2FkRG9jeGZpbGUoZXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuZmlsZVR5cGUgPT09ICdwZGYnKSB7XG4gICAgICB0aGlzLmNoYW5nZURvY1R5cGUoJ3BkZicpO1xuICAgICAgdGhpcy5zaG93UGRmQmxvY2sgPSBmYWxzZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dQZGZCbG9jayA9IHRydWU7XG4gICAgICB9LCAxMCk7XG4gICAgICBjb25zdCB1cGxvYWREYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICB1cGxvYWREYXRhLmFwcGVuZCgnZmlsZScsIGV2ZW50LmZpbGUpO1xuICAgICAgY29uc3QgcGF0aCA9ICdvLycgKyB0aGlzLm9yZ2FuaXphdGlvbl9pZCArICcvcG9saWN5Lyc7XG4gICAgICB0aGlzLnBvbGljeVNlcnZpY2UudXBsb2FkRmlsZSh1cGxvYWREYXRhLCB0aGlzLnBvbGljeUlkLCBwYXRoKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAgICAgXCJPb3BzISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgd2Ugd2VyZSB1bmFibGUgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uIExldCdzIGdpdmUgaXQgYW5vdGhlciB0cnksIHNoYWxsIHdlP1wiLFxuICAgICAgICAgICAgJ2FsZXJ0J1xuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSAnJztcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1cGxvYWREb2N4ZmlsZShldmVudDogYW55KSB7XG4gICAgdGhpcy5yZXNldERvY3NFcnJvcigpO1xuICAgIHRoaXMuc2hvd0RvY3hCbG9jayA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93RG9jeEJsb2NrID0gdHJ1ZTtcbiAgICB9LCAxMCk7XG4gICAgY29uc3QgdXBsb2FkRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIHVwbG9hZERhdGEuYXBwZW5kKCdmaWxlJywgZXZlbnQuZmlsZSk7XG4gICAgY29uc3QgcGF0aCA9ICdvLycgKyB0aGlzLm9yZ2FuaXphdGlvbl9pZCArICcvcG9saWN5Lyc7XG4gICAgdGhpcy5wb2xpY3lTZXJ2aWNlXG4gICAgICAudXBsb2FkRG9jeEZpbGUodXBsb2FkRGF0YSwgdGhpcy5wb2xpY3lJZCwgcGF0aClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChyZXM/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdkb25lJykpIHtcbiAgICAgICAgICAgICAgdGhpcy5yZXNldERvY3NFcnJvcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHJlcy5tZXNzYWdlPy5pbmNsdWRlcygnUmFuZ2VFcnJvcicpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N4RXJyb3IgPSB7XG4gICAgICAgICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1RoZSBmaWxlIHNpemUgaXMgdG9vIGxhcmdlIGFuZCBjYW5ub3QgYmUgdXBsb2FkZWQuJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jeEVycm9yID0ge1xuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdPb3BzISBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB1cGxvYWRpbmcgdGhpcyBmaWxlLicsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgICAgIFwiT29wcyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHdlIHdlcmUgdW5hYmxlIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLiBMZXQncyBnaXZlIGl0IGFub3RoZXIgdHJ5LCBzaGFsbCB3ZT9cIixcbiAgICAgICAgICAgICdhbGVydCdcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICByZXNldFVwbG9hZHMoKXtcbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlPScnO1xuICAgIHRoaXMuZmlsZW5hbWU9Jyc7XG4gICAgdGhpcy5maWxlVHlwZT0nJztcbiAgICB0aGlzLnBkZj1mYWxzZTtcbiAgICB0aGlzLmRvYz1mYWxzZTtcbiAgICB0aGlzLmlzVXBsb2FkaW5nPWZhbHNlO1xuICAgIHRoaXMuaXNMb2FkZXI9ZmFsc2U7XG4gICAgdGhpcy5yZXNldERvY3NFcnJvcigpO1xuICB9XG5cbiAgcmVzZXREb2NzRXJyb3IoKSB7XG4gICAgdGhpcy5kb2N4RXJyb3IgPSB7XG4gICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgIH07XG4gIH1cblxuICBjaGFuZ2VEb2NUeXBlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJlc2V0RG9jc0Vycm9yKCk7XG4gICAgaWYodGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IGV2ZW50O1xuICAgIGlmIChldmVudCA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgdGhpcy5vcGVuVGVtcGxhdGVMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgZWRpdG9yKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xuXG4gICAgaWYgKGV2ZW50ID09PSAnZHJhZnQnKSB7XG4gICAgICAvLyBJZiBpdCBpcyBhIGRyYWZ0IGdvIGRpcmVjdGx5IHRvIHRoZSBlZGl0b3JcbiAgICAgIGNvbnN0IHVuYW1lID0gdGhpcy51c2VySW5mbyA/IHRoaXMudXNlckluZm8ubmFtZSA6ICcnO1xuICAgICAgY29uc3QgdWlkID0gdGhpcy5tZW1iZXJfb2JqX2lkO1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMucG9saWN5TmFtZS50cmltKCk7XG4gICAgICBjb25zdCBpZCA9IHRoaXMucG9saWN5SWQ7XG4gICAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMucG9saWN5U2VydmljZVxuICAgICAgICAuc2F2ZVBvbGljeURldGFpbHModW5hbWUsIHVpZCwgaWQsIG5hbWUsICcnLCAwKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb25zdCB1cmwgPVxuICAgICAgICAgICAgICAgIHRoaXMuYmFzZVVSTCArICcvYWxsL3BvbGljeS9lZGl0LXBvbGljeT9pZD0nICsgdGhpcy5wb2xpY3lJZDtcbiAgICAgICAgICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh1cmwsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAgICAgICBcIk9vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB3ZSB3ZXJlIHVuYWJsZSB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4gTGV0J3MgZ2l2ZSBpdCBhbm90aGVyIHRyeSwgc2hhbGwgd2U/XCIsXG4gICAgICAgICAgICAgICdhbGVydCdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICdkb2N4Jykge1xuICAgICAgY29uc3QgdXJsID1cbiAgICAgICAgdGhpcy5iYXNlVVJMICsgJy9hbGwvcG9saWN5L2VkaXQtcG9saWN5P2lkPScgKyB0aGlzLnBvbGljeUlkO1xuICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh1cmwsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICd3b3JkJykge1xuICAgICAgICB0aGlzLmNyZWF0ZVdvcmRQb2xpY3koKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAncGRmJykge1xuICAgICAgLy8gSWYgaXQgaXMgYSBwZGYgc2VuZCB0byB0aGUgd29ya3Jvb21cbiAgICAgIGNvbnN0IHVybCA9XG4gICAgICAgIHRoaXMuYmFzZVVSTCArICcvYWxsL3BvbGljeS93b3Jrcm9vbT9pZD0nICsgdGhpcy5wb2xpY3lJZDtcbiAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAndGVtcGxhdGUnKSB7XG4gICAgICB0aGlzLmlmcmFtZVNlcnZpY2UucmVkaXJlY3RJZkluSWZyYW1lKHRoaXMudGVtcGxhdGVVcmwsIHRydWUpO1xuICAgIH1cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnX2RJZCcsIHRoaXMucG9saWN5SWQpO1xuICB9XG4gIGVkaXRQb2xpY3lFbWl0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSAnJztcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICdsYXN0RmlsZU5hbWVBbmRUeXBlJyxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSxcbiAgICAgICAgbmFtZTogdGhpcy5maWxlbmFtZSxcbiAgICAgICAgcG9saWN5SWQ6IHRoaXMucG9saWN5SWQsXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5lZGl0UG9saWN5LmVtaXQoKTtcbiAgfVxuXG4gIG9wZW5UZW1wbGF0ZUxpc3QoKSB7XG4gICAgdGhpcy5vcGVuVGVtcGxhdGUuZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtc2VjdGlvblwiIFtjbGFzcy5ncmF5c2NhbGVdPVwidGVtcGxhdGVWaWV3XCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudC1zZWN0aW9uLWlubmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtYm94XCI+XG4gICAgICA8c3ZnXG4gICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICBpZD1cIkNhcGFfMVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICB4PVwiMHB4XCJcbiAgICAgICAgeT1cIjBweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNDgwLjggNDgwLjhcIlxuICAgICAgICBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOiBuZXcgMCAwIDQ4MC44IDQ4MC44XCJcbiAgICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIHN0eWxlPVwiZmlsbDogI2ZmZDUxN1wiXG4gICAgICAgICAgZD1cIk0zMTcuMTEyLDMxNC40Yy0yMi40LDIyLjQtMTkuNiw2Ny42LTE5LjYsNjcuNmgtMTEzLjZjMCwwLDIuNC00NS4yLTE5LjYtNjcuNlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtMjQuNC0yMS42LTQwLTUyLjgtNDAtODcuNmMwLTY0LDUyLTExNiwxMTYtMTE2czExNiw1MiwxMTYsMTE2QzM1Ni4zMTIsMjYxLjYsMzQxLjExMiwyOTIuOCwzMTcuMTEyLDMxNC40TDMxNy4xMTIsMzE0LjR6XCJcbiAgICAgICAgLz5cbiAgICAgICAgPGc+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogI2U1ZTVlNVwiXG4gICAgICAgICAgICBkPVwiTTMwMC43MTIsNDE3LjZjMCw2LTQuOCwxMC44LTEwLjgsMTAuOGgtOTguOGMtNiwwLTEwLjgtNC44LTEwLjgtMTAuOGwwLDBjMC02LDQuOC0xMC44LDEwLjgtMTAuOFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoOTguNEMyOTUuNTEyLDQwNi44LDMwMC43MTIsNDExLjYsMzAwLjcxMiw0MTcuNkwzMDAuNzEyLDQxNy42elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjZTVlNWU1XCJcbiAgICAgICAgICAgIGQ9XCJNMjg1LjkxMiw0NjIuNGMwLDYtNC44LDEwLjgtMTAuOCwxMC44aC02OS4yYy02LDAtMTAuOC00LjgtMTAuOC0xMC44bDAsMGMwLTYsNC44LTEwLjgsMTAuOC0xMC44XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg2OS4yQzI4MS4xMTIsNDUxLjYsMjg1LjkxMiw0NTYuNCwyODUuOTEyLDQ2Mi40TDI4NS45MTIsNDYyLjR6XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2c+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0zMjMuMTEyLDMxOC40YzI2LTIzLjYsNDAuOC01Ni44LDQwLjgtOTEuNmMwLTY4LTU1LjYtMTIzLjYtMTIzLjYtMTIzLjZzLTEyMy42LDU1LjYtMTIzLjYsMTIzLjZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzAsMzUuNiwxNS42LDY5LjYsNDIsOTIuOGMxOS42LDE5LjYsMTcuNiw2MS4yLDE3LjYsNjEuNmMwLDIsMC44LDQsMiw1LjZjMS42LDEuNiwzLjYsMi40LDUuNiwyLjRoMTEzLjJjMiwwLDQtMC44LDUuNi0yLjRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczItMy42LDItNS42YzAtMC40LTItNDIsMTcuNi02MS42QzMyMi43MTIsMzE5LjIsMzIzLjExMiwzMTguOCwzMjMuMTEyLDMxOC40eiBNMzExLjkxMiwzMDguNGMtMC44LDAuNC0xLjIsMS4yLTEuNiwyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtMTcuNiwxOC44LTIwLjQsNDkuNi0yMC44LDY0aC05OGMtMC40LTE0LjgtMy42LTQ2LjgtMjIuNC02NS42Yy0yMy42LTIwLjgtMzcuMi01MC40LTM3LjItODEuNmMwLTYwLDQ4LjgtMTA4LjQsMTA4LjQtMTA4LjRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzYwLDAsMTA4LjQsNDguOCwxMDguNCwxMDguNEMzNDguNzEyLDI1OCwzMzUuNTEyLDI4OCwzMTEuOTEyLDMwOC40elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMjQwLjMxMiwxMzUuMmMtNCwwLTcuNiwzLjItNy42LDcuNmMwLDQsMy4yLDcuNiw3LjYsNy42YzQ0LjgsMCw4MS4yLDM2LjQsODEuMiw4MS4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLDQsMy4yLDcuNiw3LjYsNy42YzQsMCw3LjYtMy4yLDcuNi03LjZDMzM2LjcxMiwxNzguNCwyOTMuNTEyLDEzNS4yLDI0MC4zMTIsMTM1LjJ6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0zMDguMzEyLDQxNy42YzAtMTAuNC04LjQtMTguNC0xOC40LTE4LjRoLTk4LjhjLTEwLjQsMC0xOC40LDguNC0xOC40LDE4LjRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzAsMTAuNCw4LjQsMTguNCwxOC40LDE4LjRoOTguNEMyOTkuOTEyLDQzNiwzMDguMzEyLDQyOCwzMDguMzEyLDQxNy42eiBNMjg5LjUxMiw0MjAuOGgtOTguNGMtMiwwLTMuMi0xLjYtMy4yLTMuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMC0yLDEuNi0zLjIsMy4yLTMuMmg5OC40YzIsMCwzLjIsMS42LDMuMiwzLjJDMjkzLjExMiw0MTkuNiwyOTEuNTEyLDQyMC44LDI4OS41MTIsNDIwLjh6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0yNzUuMTEyLDQ0NGgtNjkuMmMtMTAuNCwwLTE4LjQsOC40LTE4LjQsMTguNGMwLDEwLjQsOC40LDE4LjQsMTguNCwxOC40aDY5LjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzEwLjQsMCwxOC40LTguNCwxOC40LTE4LjRDMjkzLjUxMiw0NTIuNCwyODUuMTEyLDQ0NCwyNzUuMTEyLDQ0NHogTTI3NS4xMTIsNDY1LjZoLTY5LjJjLTIsMC0zLjItMS42LTMuMi0zLjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzAtMiwxLjYtMy4yLDMuMi0zLjJoNjkuMmMyLDAsMy4yLDEuNiwzLjIsMy4yQzI3OC4zMTIsNDY0LjQsMjc3LjExMiw0NjUuNiwyNzUuMTEyLDQ2NS42elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMjQ3LjkxMiw1OC44VjcuNmMwLTQtMy4yLTcuNi03LjYtNy42Yy00LDAtNy42LDMuMi03LjYsNy42djUxLjZjMCw0LDMuMiw3LjYsNy42LDcuNlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDMjQ0LjcxMiw2Ni40LDI0Ny45MTIsNjMuMiwyNDcuOTEyLDU4Ljh6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0zNjYuMzEyLDM4Yy0zLjYtMi40LTgtMS4yLTEwLjQsMmwtMjguNCw0Mi44Yy0yLjQsMy42LTEuMiw4LDIsMTAuNGMxLjIsMC44LDIuOCwxLjIsNCwxLjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzIuNCwwLDQuOC0xLjIsNi40LTMuMmwyOC40LTQyLjhDMzcwLjcxMiw0NS4yLDM2OS41MTIsNDAuNCwzNjYuMzEyLDM4elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMTQ5LjkxMiw5Mi44YzEuMiwwLDIuOC0wLjQsNC0xLjJjMy42LTIuNCw0LjQtNi44LDIuNC0xMC40bC0yNy42LTQzLjJjLTIuNC0zLjYtNi44LTQuNC0xMC40LTIuNFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLTMuNiwyLjQtNC40LDYuOC0yLjQsMTAuNGwyNy42LDQzLjJDMTQ1LjExMiw5MS42LDE0Ny41MTIsOTIuOCwxNDkuOTEyLDkyLjh6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk00My45MTIsMTI4LjhsNDUuMiwyNC40YzEuMiwwLjgsMi40LDAuOCwzLjYsMC44YzIuOCwwLDUuMi0xLjYsNi44LTRjMi0zLjYsMC44LTguNC0zLjItMTAuNFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLTQ1LjItMjQuNGMtMy42LTItOC40LTAuOC0xMC40LDMuMkMzOS4xMTIsMTIyLjQsNDAuMzEyLDEyNi44LDQzLjkxMiwxMjguOHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTM4Ny45MTIsMTU0LjRjMS4yLDAsMi40LTAuNCwzLjYtMC44bDQ1LjItMjQuNGMzLjYtMiw1LjItNi40LDMuMi0xMC40Yy0yLTMuNi02LjQtNS4yLTEwLjQtMy4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwtNDUuMiwyNC40Yy0zLjYsMi01LjIsNi40LTMuMiwxMC40QzM4Mi4zMTIsMTUyLjgsMzg1LjExMiwxNTQuNCwzODcuOTEyLDE1NC40elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgICA8cD5cbiAgICAgICAgVGhlcmUgYXJlIG11bHRpcGxlIHdheXMgdG8gY3JlYXRlIGEgcG9saWN5IG9uIFZDb21wbHkuIFlvdSBjYW4gZWl0aGVyIGRyYWZ0IGl0IGZyb20gc2NyYXRjaCB1c2luZyBWQ29tcGx5J3Mgb25saW5lIGVkaXRvcnt7IGZmX3BvbGljeV9tc193b3JkX2ludGVncmF0aW9uID8gJyBvciBDcmVhdGUgYSBQb2xpY3kgVXNpbmcgTVMgV29yZCcgOiAnJyB9fXt7IHNob3dEb2N4QmxvY2sgPyAnIG9yIFVwbG9hZCBhbiBFeGlzdGluZyBET0NYIGZpbGUnIDogJycgfX17eyBzaG93UGRmQmxvY2sgPyAnIG9yIFVwbG9hZCBhbiBFeGlzdGluZyBQREYgZmlsZScgOiAnJyB9fSBvciBEcmFmdCBVc2luZyBhIFRlbXBsYXRlLlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJkb2N1bWVudC1ib3hcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAnZHJhZnQnXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgbmFtZT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZURvY1R5cGUoJ2RyYWZ0JylcIlxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gJ2RyYWZ0J1wiXG4gICAgICAvPlxuICAgICAgPHN2ZyBpZD1cIkRyYWZ0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDAyXCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwMlwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiIzU2NWE2ZlwiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDAzXCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwM1wiIGQ9XCJNMjEuODg0LDguNTEsMTAuNTQ5LDEwLjM4NCwxMi40MjYsMjEuMDZsNC4zOC0uNjFhLjMzMy4zMzMsMCwwLDEsLjMyNi40MzVjLS4wNTEuMjE5LS4zMzguMjM1LS41MTQuMjY3LTEuNDc0LjI2Ni0zLjAwOS4zODgtNC40OTEuNjMxLS40MTYtLjAzMi0uMzIxLS43MTgtLjQ0MS0xbC0zLS4zNjVjLS4yMTMtLjEyLS4yLS4yNzMtLjItLjQ5Mi4wMTktLjYyMi4wOTItMS4yNTEuMTI1LTEuODcyLjE2LTMsLjMxNi02LC41LTguOTkzQTkuNDU3LDkuNDU3LDAsMCwxLDkuMTUyLDguMWEuMzY5LjM2OSwwLDAsMSwuMjY1LS4zbDguNTE5LjY4MUwyMi4yLDcuOGMuMjI1LjA2OC4yNDYuMTkuMy4zOTMuNTUzLDIuMjg4Ljc1OCw0Ljc3NSwxLjI4NSw3LjA4My4xNDMuNTMxLS41MDcuNzMxLS42NDIuMlpNMTcuMjExLDIxLjkzMmEuNTYzLjU2MywwLDAsMC0uMDcyLjI0LDguNTQ5LDguNTQ5LDAsMCwwLDAsMS4xODdjLjAxOS4yMTcuMDg4LjM5My4zMjguNDIxYTkuMTM4LDkuMTM4LDAsMCwwLDEuNDQ4LS4wMjEuNTMuNTMsMCwwLDAsLjEyMi0uMDY1bDMuNzU2LTMuNzcxTDIxLDE4LjEzWm01LjMyOS01LjM1Yy0uMzY1LjI4Ni0uNy43NTctMS4wNjEsMS4wNjJMMjMuMywxOS40MzdjLjMtLjM1Ljc3Ny0uNjg3LDEuMDUtMS4wNDQuMTUtLjIuMTc0LS4zMTIuMDE3LS41MTZhMTMuODUxLDEzLjg1MSwwLDAsMC0xLjMyNy0xLjMyNy4zOTMuMzkzLDAsMCwwLS4yMy0uMS40NzYuNDc2LDAsMCwwLS4yNzEuMTNcIiBmaWxsPVwiI2ZmZlwiLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtcmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+PHN0cm9uZz5DcmVhdGU8L3N0cm9uZz4gYSBQb2xpY3k8L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE0Njs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICBjeT1cIjI2XCJcbiAgICAgICAgICAgICAgcj1cIjI1XCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuXG4gICAgXG4gICAgPGxhYmVsXG4gICAgICAqbmdJZj1cImZmX3BvbGljeV9tc193b3JkX2ludGVncmF0aW9uXCJcbiAgICAgIGNsYXNzPVwiZG9jdW1lbnQtYm94XCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ3dvcmQnXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgbmFtZT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZURvY1R5cGUoJ3dvcmQnKVwiXG4gICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09PSAnd29yZCdcIlxuICAgICAgLz5cbiAgICAgIDxzdmcgaWQ9XCJXb3JkLUljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDRcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA0XCIgZD1cIk0yOCwzMkg0YTQsNCwwLDAsMS00LTRWNEE0LDQsMCwwLDEsNCwwSDI4YTQsNCwwLDAsMSw0LDRWMjhhNCw0LDAsMCwxLTQsNFwiIGZpbGw9XCIjMWU1ZGQzXCIvPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDVcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA1XCIgZD1cIk0xMC40MTksOS43MThsMS44ODksOS4xMjFMMTIuNDQsMjBsLjEzMi0uODg1LDIuMTUyLTkuNCwyLjYyNi4wMTgsMi4xODcsOS4xMDYuMTc0LDEuMTMyYTEzLjQsMTMuNCwwLDAsMSwuMTc0LTEuMzUyYy41LTIuOTU0LDEuMTg4LTUuODgsMS43LTguODMybC4wNC0uMDdIMjRMMjEuMDg1LDIyLjI4MWwtMi44MTgtLjAyNkwxNS45MzEsMTIuMjJsLS4xNiwxLjA3Ny0yLjAxNSw4Ljk4Ni0yLjgyOS0uMDI4TDgsOS43MThaXCIgZmlsbD1cIiNmZmZcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7Y3JlYXRlV29yZFBvbGljeVRleHR9fTwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGRvY3VtZW50LWJveC1pY29uIHZ4LWZzLTE2IHZ4LW1yLTJcIj4mI3hlYTQ2OzwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWNpcmNsZVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCJcbiAgICAgICAgICAgICAgY3g9XCIyNlwiXG4gICAgICAgICAgICAgIGN5PVwiMjZcIlxuICAgICAgICAgICAgICByPVwiMjVcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGFiZWw+XG5cblxuXG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cImRvY3VtZW50LWJveFwiXG4gICAgICAqbmdJZj1cInNob3dEb2N4QmxvY2tcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAnZG9jeCcgJiYgIWRvY3hFcnJvcj8udmlzaWJsZVwiXG4gICAgICBbY2xhc3MuZXJyb3JdPVwiZG9jeEVycm9yPy52aXNpYmxlXCJcbiAgICAgIChjbGljayk9XCJyZXNldFVwbG9hZHMoKVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgYWNjZXB0PVwiLmRvY3hcIlxuICAgICAgICBpZD1cIkRPQ2ZpbGVcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgIG9uY2xpY2s9XCJldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxuICAgICAgICAjZG9jeFVwbG9hZEJ1dHRvblxuICAgICAgLz5cbiAgICAgIDxzdmcgaWQ9XCJXb3JkLUljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDRcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA0XCIgZD1cIk0yOCwzMkg0YTQsNCwwLDAsMS00LTRWNEE0LDQsMCwwLDEsNCwwSDI4YTQsNCwwLDAsMSw0LDRWMjhhNCw0LDAsMCwxLTQsNFwiIGZpbGw9XCIjMWU1ZGQzXCIvPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDVcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA1XCIgZD1cIk0xMC40MTksOS43MThsMS44ODksOS4xMjFMMTIuNDQsMjBsLjEzMi0uODg1LDIuMTUyLTkuNCwyLjYyNi4wMTgsMi4xODcsOS4xMDYuMTc0LDEuMTMyYTEzLjQsMTMuNCwwLDAsMSwuMTc0LTEuMzUyYy41LTIuOTU0LDEuMTg4LTUuODgsMS43LTguODMybC4wNC0uMDdIMjRMMjEuMDg1LDIyLjI4MWwtMi44MTgtLjAyNkwxNS45MzEsMTIuMjJsLS4xNiwxLjA3Ny0yLjAxNSw4Ljk4Ni0yLjgyOS0uMDI4TDgsOS43MThaXCIgZmlsbD1cIiNmZmZcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKHNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdkb2N4JyAmJiBmaWxlbmFtZSlcIlxuICAgICAgICAgICAgPlVwbG9hZCBhIDxzdHJvbmc+RE9DWDwvc3Ryb25nPjwvbmctY29udGFpbmVyXG4gICAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RvY3gnICYmIGZpbGVuYW1lXCJcbiAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZmlsZW5hbWVcIlxuICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICA+e3tcbiAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItbXNnLXRleHRcIiAqbmdJZj1cImRvY3hFcnJvcj8udmlzaWJsZVwiPlxuICAgICAgICAgIHt7IGRvY3hFcnJvcj8ubWVzc2FnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE5Nzs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIiAqbmdJZj1cIiFkb2N4RXJyb3I/LnZpc2libGVcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICBjeT1cIjI2XCJcbiAgICAgICAgICAgICAgcj1cIjI1XCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZXJyb3ItaWNvblwiICpuZ0lmPVwiZG9jeEVycm9yPy52aXNpYmxlXCI+JiN4ZTkxNDs8L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsaW5lLXByb2dyZXNzXCJcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAnZG9jeCcgJiYgaXNVcGxvYWRpbmdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1wcm9ncmVzcy1iYXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cImRvY3VtZW50LWJveFwiXG4gICAgICAqbmdJZj1cInNob3dQZGZCbG9ja1wiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdwZGYnXCJcbiAgICAgIChjbGljayk9XCJyZXNldFVwbG9hZHMoKVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgYWNjZXB0PVwiLnBkZlwiXG4gICAgICAgIGlkPVwiUERGZmlsZVwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZUlucHV0KCRldmVudC50YXJnZXQuZmlsZXMpXCJcbiAgICAgICAgb25jbGljaz1cImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiXG4gICAgICAgICNwZGZVcGxvYWRCdXR0b25cbiAgICAgIC8+XG4gICAgICA8c3ZnIGlkPVwiUERGLUljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDhcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA4XCIgZD1cIk0yOCwzMkg0YTQsNCwwLDAsMS00LTRWNEE0LDQsMCwwLDEsNCwwSDI4YTQsNCwwLDAsMSw0LDRWMjhhNCw0LDAsMCwxLTQsNFwiIGZpbGw9XCIjYTgyYTFkXCIvPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDlcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA5XCIgZD1cIk0xNi4xMjUsMTMuNzc4QTEuMzksMS4zOSwwLDAsMCwxNi4yODUsMTVhMTYuMTA2LDE2LjEwNiwwLDAsMCwyLjEwNiwyLjU1NGMuMzEyLS4wNDUuNi0uMDQ3LDEuMi0uMDkyYTYuOTY0LDYuOTY0LDAsMCwxLDMuNjE2LjIzOSwxLjMxLDEuMzEsMCwwLDEsLjc4NCwxLjM2MSwxLjE3NiwxLjE3NiwwLDAsMS0xLjA3NS45ODFjLTIuMjI0LjMzNi0zLjMwNS0uOS00LjU3OS0xLjc0NmEyLjA5NCwyLjA5NCwwLDAsMC0uODEyLjAyMSwyNS43ODIsMjUuNzgyLDAsMCwwLTMuNDEyLjkxNmMtLjI1My4wODktLjMzOC4zLS41MzMuNjA5YTExLjA2MiwxMS4wNjIsMCwwLDEtMi44MiwzLjQyNywyLjE0NSwyLjE0NSwwLDAsMS0xLjg2MS40NDVjLTEtLjIyMi0xLjE3OC0xLjE4Mi0uNS0xLjk0MkE5LjQ1Miw5LjQ1MiwwLDAsMSwxMCwyMC40NjJhMTQuNzE0LDE0LjcxNCwwLDAsMSwyLjQxOC0xLjEwOWMuNDkxLS40NjEuNTU2LS42ODYuOTY2LTEuNzY0LjQzMS0xLjEzNi45MjItMi4yNSwxLjMyNC0zLjRhMS42NzksMS42NzksMCwwLDAtLjAzNS0xLjA2Miw3LjcsNy43LDAsMCwxLS42MzgtMy40NzYsMS40LDEuNCwwLDAsMSwuOTU5LTEuMzkzLDEuMjc5LDEuMjc5LDAsMCwxLDEuNDY0LjhjLjIuNDc5LjU1MiwxLjc1LS4zMzEsNC43MjhtLS4zNzcsMS4zNzctMS40MTgsMy40MjIsMy4zNTMtLjg4My0xLjkzNS0yLjUzOW0zLjIyMiwyLjg4MkE0LjUsNC41LDAsMCwwLDIxLjkyLDE5LjM3Yy4zNzcsMCwuNzE0LS4xMzEuNzMzLS42LjA1MS0xLjI1MS0yLjY1Ni0uODY0LTMuNjgyLS43M20tNi45NiwyLjAzN2E5Ljc4OCw5Ljc4OCwwLDAsMC0yLjk3NSwxLjhjLS4yMTguMTcxLS40NDYuNzE4LS4yODIuOTg0cy44MS4wNjcsMS0uMTJhOS4yOSw5LjI5LDAsMCwwLDIuMjUzLTIuNjY0bTMuMjQ2LTcuMjQzYy0uMDQ1LS44NzguNDYxLTIuMTcyLjQzNy0zLjIyNC0uMDA4LS4zNTUtLjA1MS0uNzQ3LS41LS43NzItLjM2NC0uMDItLjUzNC40NzYtLjU2OS43NjJhNS44LDUuOCwwLDAsMCwuNjM2LDMuMjM0XCIgZmlsbD1cIiNmZmZcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKHNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdwZGYnICYmIGZpbGVuYW1lKVwiXG4gICAgICAgICAgICA+VXBsb2FkIGEgPHN0cm9uZz5QREY8L3N0cm9uZz48L25nLWNvbnRhaW5lclxuICAgICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdwZGYnICYmIGZpbGVuYW1lXCJcbiAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZmlsZW5hbWVcIlxuICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICA+e3tcbiAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGRvY3VtZW50LWJveC1pY29uIHZ4LWZzLTE2IHZ4LW1yLTJcIj4mI3hlYTk3OzwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWNpcmNsZVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCJcbiAgICAgICAgICAgICAgY3g9XCIyNlwiXG4gICAgICAgICAgICAgIGN5PVwiMjZcIlxuICAgICAgICAgICAgICByPVwiMjVcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxpbmUtcHJvZ3Jlc3NcIlxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdwZGYnICYmIGlzVXBsb2FkaW5nXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUtcHJvZ3Jlc3MtYmFyXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuICAgIDwhLS0gU2VsZWN0IGEgdGVtcGxhdGUgLS0+XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cImRvY3VtZW50LWJveFwiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09PSAndGVtcGxhdGUnXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgbmFtZT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZURvY1R5cGUoJ3RlbXBsYXRlJylcIlxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gJ3RlbXBsYXRlJ1wiXG4gICAgICAvPlxuICAgICAgPHN2ZyBpZD1cIlRNUC1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA2XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNlwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiIzM0YWE0NFwiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDEwXCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQxMFwiIGQ9XCJNMTYsMS43NzhWMy41NTVIMFYxLjc3OEExLjc4MywxLjc4MywwLDAsMSwxLjc3OCwwSDE0LjIyM0ExLjc4MywxLjc4MywwLDAsMSwxNiwxLjc3OE0wLDQuNDQ0SDE2djguODg5YTEuNzc4LDEuNzc4LDAsMCwxLTEuNzc3LDEuNzc4SDEuNzc4QTEuNzc4LDEuNzc4LDAsMCwxLDAsMTMuMzMzWk02Ljk5LDkuOTI4QS44OTEuODkxLDAsMCwwLDYuMSw5LjAzOUgzLjY0MmEuODkxLjg5MSwwLDAsMC0uODg4Ljg4OXYyLjQ1NmEuODkxLjg5MSwwLDAsMCwuODg4Ljg4OUg2LjFhLjg5MS44OTEsMCwwLDAsLjg4OC0uODg5Wm02LjMwNiwwYS44OTIuODkyLDAsMCwwLS44ODktLjg4OUg5Ljk0OGEuODkxLjg5MSwwLDAsMC0uODg4Ljg4OXYyLjQ1NmEuODkxLjg5MSwwLDAsMCwuODg4Ljg4OWgyLjQ1OWEuODkyLjg5MiwwLDAsMCwuODg5LS44ODlaTTIuNjY3LDcuMTExQS44ODkuODg5LDAsMCwwLDMuNTU2LDhoOC44ODlhLjg4OS44ODksMCwwLDAsMC0xLjc3OEgzLjU1NmEuODg5Ljg4OSwwLDAsMC0uODg5Ljg4OVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg4IDcuOTk5KVwiIGZpbGw9XCIjZmZmXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5EcmFmdCBVc2luZyBhIDxzdHJvbmc+VGVtcGxhdGU8L3N0cm9uZz48L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE0Njs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICBjeT1cIjI2XCJcbiAgICAgICAgICAgICAgcj1cIjI1XCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuICAgIDwhLS0gRW5kIFNlbGVjdCBhIHRlbXBsYXRlIC0tPlxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImlzTG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJib3R0b20tYnV0dG9uXCIgW2NsYXNzLmdyYXlzY2FsZV09XCJ0ZW1wbGF0ZVZpZXdcIj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJlZGl0UG9saWN5RW1pdCgpXCJcbiAgICBjbGFzcz1cImJhY2tcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJ0ZW1wbGF0ZVZpZXdcIlxuICA+XG4gICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWQ7PC9pPiBCYWNrXG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImVkaXRvcihzZWxlY3RlZERvY3VtZW50VHlwZSlcIlxuICAgIGNsYXNzPVwibmV4dFwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImlzTmV4dEJ1dHRvbkRpc2FibGVkXCJcbiAgPlxuICAgIE5leHQgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWU7PC9pPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7OztBQU83RixNQUFNLE9BQU8sd0JBQXdCO0lBZ0NuQyxZQUNVLFFBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2QsS0FBcUIsRUFDN0IsZ0JBQWtDLEVBQzFCLGFBQTRCO1FBTjVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBRXJCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEN0QyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFFBQUcsR0FBRyxLQUFLLENBQUM7UUFDWixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsUUFBRyxHQUFHLEtBQUssQ0FBQztRQUNaLGdCQUFXLEdBQUcs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RCxjQUFjO1FBQ1osSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixZQUFZLENBQUMsT0FBTyxDQUNsQixxQkFBcUIsRUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBelNVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDJiQ3RCckMsaytlQWdOTTs7NEZEMUxPLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7OFFBaUJ2QixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGxhdGZvcm1Mb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XG5pbXBvcnQgeyBQb2xpY3lBUElTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcG9saWN5LWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IElmcmFtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pZnJhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBXT1JEX0NPTlNUQU5UUywgV09SRF9VUkxfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctcG9saWN5L21zLXdvcmQuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWRvY3VtZW50LXNlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50LXNlY3Rpb24uY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRTZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHRlbXBsYXRlVmlld1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGZpbGVUb1VwbG9hZDogYW55O1xuICBmaWxlbmFtZSA9ICcnO1xuICBmaWxlVHlwZSA9ICcnO1xuICBwZGYgPSBmYWxzZTtcbiAgZHJhZnQgPSBmYWxzZTtcbiAgZG9jID0gZmFsc2U7XG4gIGlzVXBsb2FkaW5nID0gZmFsc2U7XG4gIGlzTG9hZGVyID0gZmFsc2U7XG4gIGZmX3BvbGljeV9tc193b3JkX2ludGVncmF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIGNyZWF0ZVdvcmRQb2xpY3lUZXh0ID0gV09SRF9DT05TVEFOVFMuTVNfV09SRF9PUFRJT047XG5cbiAgQElucHV0KCkgc2VsZWN0ZWREb2N1bWVudFR5cGUgPSAnJztcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBASW5wdXQoKSB0ZW1wbGF0ZVZpZXcgPSBmYWxzZTtcbiAgQElucHV0KCkgcG9saWN5SWQ6IGFueSA9ICcnO1xuICBASW5wdXQoKSBwb2xpY3lOYW1lOiBhbnkgPSAnJztcbiAgQElucHV0KCkgb3JnYW5pemF0aW9uX2lkOiBhbnkgPSAnJztcbiAgQElucHV0KCkgbWVtYmVyX29ial9pZDogYW55O1xuICBASW5wdXQoKSB1c2VySW5mbzogYW55O1xuICBASW5wdXQoKSB0ZW1wbGF0ZVVybDogc3RyaW5nID0gJyc7XG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVkaXRQb2xpY3kgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvcGVuVGVtcGxhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgYmFzZVVSTCA9ICcnO1xuICBkb2N4RXJyb3IgPSB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgbWVzc2FnZTogJycsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9saWN5U2VydmljZTogUG9saWN5U2VydmljZSxcbiAgICBwcml2YXRlIHBvbGljeUFQSVNlcnZpY2U6IFBvbGljeUFQSVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uLFxuICAgIHByaXZhdGUgaWZyYW1lU2VydmljZTogSWZyYW1lU2VydmljZVxuICApIHtcbiAgICB0aGlzLmJhc2VVUkwgPSBsb2NhdGlvbj8ub3JpZ2luO1xuICAgIGlmICh0aGlzLmJhc2VVUkwgPT0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMCcpIHtcbiAgICAgIHRoaXMuYmFzZVVSTCA9ICdodHRwczovL2Rldi52LWNvbXBseS5jb20nO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGlzZUZlYXR1cmVGbGFncygpO1xuICAgIHRoaXMuY2hlY2tUZW1wbGF0ZVZpZXcoKTtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYXN0RmlsZU5hbWVBbmRUeXBlJykgPz8gJ1wie31cIidcbiAgICApO1xuICAgIGlmIChcbiAgICAgIGRhdGEubmFtZSAhPT0gbnVsbCAmJlxuICAgICAgZGF0YS5uYW1lICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGRhdGEudHlwZSAhPT0gbnVsbCAmJlxuICAgICAgZGF0YS50eXBlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGRhdGEucG9saWN5SWQgPT0gdGhpcy5wb2xpY3lJZFxuICAgICkge1xuICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IGRhdGEudHlwZTtcbiAgICAgIHRoaXMuZmlsZW5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbGFzdEZpbGVOYW1lQW5kVHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrVGVtcGxhdGVWaWV3KCkge1xuICAgIHRoaXMudGVtcGxhdGVWaWV3U3Vic2NyaXB0aW9uID0gdGhpcy5wb2xpY3lTZXJ2aWNlLnRlbXBsYXRlVmlldy5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xuICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9ICcnO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGVWaWV3U3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnRlbXBsYXRlVmlld1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpc2VGZWF0dXJlRmxhZ3MoKSB7XG4gICAgdGhpcy5mZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbiA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbicpO1xuICB9XG5cbiAgcmVkaXJlY3RVc2VyVG9Xb3JkUG9saWN5KCkge1xuICAgIHdpbmRvdy5vcGVuKFdPUkRfVVJMX0NPTlNUQU5UUy5uZXdfd29yZF9wb2xpY3lfdXJsLCAnX2JsYW5rJyk7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmJhc2VVUkwgKyBXT1JEX1VSTF9DT05TVEFOVFMud29ya3Jvb21fdXJsICsgdGhpcy5wb2xpY3lJZDtcbiAgfVxuXG4gIGNyZWF0ZVdvcmRQb2xpY3koKSB7XG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5wb2xpY3lBUElTZXJ2aWNlLmNyZWF0ZVdvcmRQb2xpY3kodGhpcy5wb2xpY3lJZCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVzZXJUb1dvcmRQb2xpY3koKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICB9LFxuICAgICAgKGVycikgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgICBXT1JEX0NPTlNUQU5UUy5jcmVhdGVXb3JkUG9saWN5X3NuYWNrYmFyX21lc3NhZ2UsXG4gICAgICAgICAgJ2FsZXJ0J1xuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgdGhpcy5maWxlVG9VcGxvYWQgPSBmaWxlc1swXTtcbiAgICB0aGlzLmZpbGVuYW1lID0gdGhpcy5maWxlVG9VcGxvYWQubmFtZTtcbiAgICB0aGlzLmZpbGVUeXBlID0gdGhpcy5maWxlVG9VcGxvYWQubmFtZVxuICAgICAgLnNsaWNlKFxuICAgICAgICB0aGlzLmZpbGVUb1VwbG9hZC5uYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxLFxuICAgICAgICB0aGlzLmZpbGVUb1VwbG9hZC5uYW1lLmxlbmd0aFxuICAgICAgKVxuICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMuZmlsZVR5cGUgPT09ICdwZGYnKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGUoeyBmaWxlOiB0aGlzLmZpbGVUb1VwbG9hZCwgZmlsZVR5cGU6IHRoaXMuZmlsZVR5cGUgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUeXBlID09PSAnZG9jeCcpIHtcbiAgICAgIHRoaXMudXBsb2FkRmlsZSh7IGZpbGU6IHRoaXMuZmlsZVRvVXBsb2FkLCBmaWxlVHlwZTogdGhpcy5maWxlVHlwZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZScsICdhbGVydCcpO1xuICAgIH1cbiAgfVxuICBzaG93UGRmQmxvY2sgPSB0cnVlO1xuICBzaG93RG9jeEJsb2NrID0gdHJ1ZTtcblxuICBnZXQgaXNOZXh0QnV0dG9uRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlIHx8IHRoaXMudGVtcGxhdGVWaWV3IHx8IHRoaXMuaXNMb2FkZXIgfHwgdGhpcy5pc1VwbG9hZGluZztcbiAgfVxuXG4gIHVwbG9hZEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlO1xuICAgIGlmIChldmVudC5maWxlVHlwZSA9PT0gJ2RvY3gnKSB7XG4gICAgICB0aGlzLmNoYW5nZURvY1R5cGUoJ2RvY3gnKTtcbiAgICAgIHRoaXMudXBsb2FkRG9jeGZpbGUoZXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuZmlsZVR5cGUgPT09ICdwZGYnKSB7XG4gICAgICB0aGlzLmNoYW5nZURvY1R5cGUoJ3BkZicpO1xuICAgICAgdGhpcy5zaG93UGRmQmxvY2sgPSBmYWxzZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dQZGZCbG9jayA9IHRydWU7XG4gICAgICB9LCAxMCk7XG4gICAgICBjb25zdCB1cGxvYWREYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICB1cGxvYWREYXRhLmFwcGVuZCgnZmlsZScsIGV2ZW50LmZpbGUpO1xuICAgICAgY29uc3QgcGF0aCA9ICdvLycgKyB0aGlzLm9yZ2FuaXphdGlvbl9pZCArICcvcG9saWN5Lyc7XG4gICAgICB0aGlzLnBvbGljeVNlcnZpY2UudXBsb2FkRmlsZSh1cGxvYWREYXRhLCB0aGlzLnBvbGljeUlkLCBwYXRoKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgICAgICBcIk9vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB3ZSB3ZXJlIHVuYWJsZSB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4gTGV0J3MgZ2l2ZSBpdCBhbm90aGVyIHRyeSwgc2hhbGwgd2U/XCIsXG4gICAgICAgICAgICAnYWxlcnQnXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9ICcnO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZERvY3hmaWxlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJlc2V0RG9jc0Vycm9yKCk7XG4gICAgdGhpcy5zaG93RG9jeEJsb2NrID0gZmFsc2U7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dEb2N4QmxvY2sgPSB0cnVlO1xuICAgIH0sIDEwKTtcbiAgICBjb25zdCB1cGxvYWREYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgdXBsb2FkRGF0YS5hcHBlbmQoJ2ZpbGUnLCBldmVudC5maWxlKTtcbiAgICBjb25zdCBwYXRoID0gJ28vJyArIHRoaXMub3JnYW5pemF0aW9uX2lkICsgJy9wb2xpY3kvJztcbiAgICB0aGlzLnBvbGljeVNlcnZpY2VcbiAgICAgIC51cGxvYWREb2N4RmlsZSh1cGxvYWREYXRhLCB0aGlzLnBvbGljeUlkLCBwYXRoKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHJlcz8ubWVzc2FnZT8uaW5jbHVkZXMoJ2RvbmUnKSkge1xuICAgICAgICAgICAgICB0aGlzLnJlc2V0RG9jc0Vycm9yKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAocmVzLm1lc3NhZ2U/LmluY2x1ZGVzKCdSYW5nZUVycm9yJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3hFcnJvciA9IHtcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnVGhlIGZpbGUgc2l6ZSBpcyB0b28gbGFyZ2UgYW5kIGNhbm5vdCBiZSB1cGxvYWRlZC4nLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N4RXJyb3IgPSB7XG4gICAgICAgICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ09vcHMhIEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHVwbG9hZGluZyB0aGlzIGZpbGUuJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAgICAgXCJPb3BzISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgd2Ugd2VyZSB1bmFibGUgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uIExldCdzIGdpdmUgaXQgYW5vdGhlciB0cnksIHNoYWxsIHdlP1wiLFxuICAgICAgICAgICAgJ2FsZXJ0J1xuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSAnJztcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHJlc2V0VXBsb2FkcygpIHtcbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgdGhpcy5maWxlbmFtZSA9ICcnO1xuICAgIHRoaXMuZmlsZVR5cGUgPSAnJztcbiAgICB0aGlzLnBkZiA9IGZhbHNlO1xuICAgIHRoaXMuZG9jID0gZmFsc2U7XG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLnJlc2V0RG9jc0Vycm9yKCk7XG4gIH1cblxuICByZXNldERvY3NFcnJvcigpIHtcbiAgICB0aGlzLmRvY3hFcnJvciA9IHtcbiAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgfTtcbiAgfVxuXG4gIGNoYW5nZURvY1R5cGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVzZXREb2NzRXJyb3IoKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IGV2ZW50O1xuICAgIGlmIChldmVudCA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgdGhpcy5vcGVuVGVtcGxhdGVMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgZWRpdG9yKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xuXG4gICAgaWYgKGV2ZW50ID09PSAnZHJhZnQnKSB7XG4gICAgICAvLyBJZiBpdCBpcyBhIGRyYWZ0IGdvIGRpcmVjdGx5IHRvIHRoZSBlZGl0b3JcbiAgICAgIGNvbnN0IHVuYW1lID0gdGhpcy51c2VySW5mbyA/IHRoaXMudXNlckluZm8ubmFtZSA6ICcnO1xuICAgICAgY29uc3QgdWlkID0gdGhpcy5tZW1iZXJfb2JqX2lkO1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMucG9saWN5TmFtZS50cmltKCk7XG4gICAgICBjb25zdCBpZCA9IHRoaXMucG9saWN5SWQ7XG4gICAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMucG9saWN5U2VydmljZVxuICAgICAgICAuc2F2ZVBvbGljeURldGFpbHModW5hbWUsIHVpZCwgaWQsIG5hbWUsICcnLCAwKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb25zdCB1cmwgPVxuICAgICAgICAgICAgICAgIHRoaXMuYmFzZVVSTCArICcvYWxsL3BvbGljeS9lZGl0LXBvbGljeT9pZD0nICsgdGhpcy5wb2xpY3lJZDtcbiAgICAgICAgICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh1cmwsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAgICAgICBcIk9vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB3ZSB3ZXJlIHVuYWJsZSB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4gTGV0J3MgZ2l2ZSBpdCBhbm90aGVyIHRyeSwgc2hhbGwgd2U/XCIsXG4gICAgICAgICAgICAgICdhbGVydCdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICdkb2N4Jykge1xuICAgICAgY29uc3QgdXJsID1cbiAgICAgICAgdGhpcy5iYXNlVVJMICsgJy9hbGwvcG9saWN5L2VkaXQtcG9saWN5P2lkPScgKyB0aGlzLnBvbGljeUlkO1xuICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh1cmwsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICd3b3JkJykge1xuICAgICAgdGhpcy5jcmVhdGVXb3JkUG9saWN5KCk7XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ3BkZicpIHtcbiAgICAgIC8vIElmIGl0IGlzIGEgcGRmIHNlbmQgdG8gdGhlIHdvcmtyb29tXG4gICAgICBjb25zdCB1cmwgPVxuICAgICAgICB0aGlzLmJhc2VVUkwgKyAnL2FsbC9wb2xpY3kvd29ya3Jvb20/aWQ9JyArIHRoaXMucG9saWN5SWQ7XG4gICAgICB0aGlzLmlmcmFtZVNlcnZpY2UucmVkaXJlY3RJZkluSWZyYW1lKHVybCwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh0aGlzLnRlbXBsYXRlVXJsLCB0cnVlKTtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ19kSWQnLCB0aGlzLnBvbGljeUlkKTtcbiAgfVxuICBlZGl0UG9saWN5RW1pdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAnbGFzdEZpbGVOYW1lQW5kVHlwZScsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUsXG4gICAgICAgIG5hbWU6IHRoaXMuZmlsZW5hbWUsXG4gICAgICAgIHBvbGljeUlkOiB0aGlzLnBvbGljeUlkLFxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZWRpdFBvbGljeS5lbWl0KCk7XG4gIH1cblxuICBvcGVuVGVtcGxhdGVMaXN0KCkge1xuICAgIHRoaXMub3BlblRlbXBsYXRlLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvY3VtZW50LXNlY3Rpb25cIiBbY2xhc3MuZ3JheXNjYWxlXT1cInRlbXBsYXRlVmlld1wiIFtjbGFzcy5uby1wb2ludGVyXT1cImlzVXBsb2FkaW5nXCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudC1zZWN0aW9uLWlubmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtYm94XCI+XG4gICAgICA8c3ZnIHZlcnNpb249XCIxLjFcIiBpZD1cIkNhcGFfMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICB4PVwiMHB4XCIgeT1cIjBweFwiIHZpZXdCb3g9XCIwIDAgNDgwLjggNDgwLjhcIiBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOiBuZXcgMCAwIDQ4MC44IDQ4MC44XCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIj5cbiAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjZmZkNTE3XCJcbiAgICAgICAgICBkPVwiTTMxNy4xMTIsMzE0LjRjLTIyLjQsMjIuNC0xOS42LDY3LjYtMTkuNiw2Ny42aC0xMTMuNmMwLDAsMi40LTQ1LjItMTkuNi02Ny42XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0yNC40LTIxLjYtNDAtNTIuOC00MC04Ny42YzAtNjQsNTItMTE2LDExNi0xMTZzMTE2LDUyLDExNiwxMTZDMzU2LjMxMiwyNjEuNiwzNDEuMTEyLDI5Mi44LDMxNy4xMTIsMzE0LjRMMzE3LjExMiwzMTQuNHpcIiAvPlxuICAgICAgICA8Zz5cbiAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICNlNWU1ZTVcIiBkPVwiTTMwMC43MTIsNDE3LjZjMCw2LTQuOCwxMC44LTEwLjgsMTAuOGgtOTguOGMtNiwwLTEwLjgtNC44LTEwLjgtMTAuOGwwLDBjMC02LDQuOC0xMC44LDEwLjgtMTAuOFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoOTguNEMyOTUuNTEyLDQwNi44LDMwMC43MTIsNDExLjYsMzAwLjcxMiw0MTcuNkwzMDAuNzEyLDQxNy42elwiIC8+XG4gICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjZTVlNWU1XCIgZD1cIk0yODUuOTEyLDQ2Mi40YzAsNi00LjgsMTAuOC0xMC44LDEwLjhoLTY5LjJjLTYsMC0xMC44LTQuOC0xMC44LTEwLjhsMCwwYzAtNiw0LjgtMTAuOCwxMC44LTEwLjhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaDY5LjJDMjgxLjExMiw0NTEuNiwyODUuOTEyLDQ1Ni40LDI4NS45MTIsNDYyLjRMMjg1LjkxMiw0NjIuNHpcIiAvPlxuICAgICAgICA8L2c+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiIGQ9XCJNMzIzLjExMiwzMTguNGMyNi0yMy42LDQwLjgtNTYuOCw0MC44LTkxLjZjMC02OC01NS42LTEyMy42LTEyMy42LTEyMy42cy0xMjMuNiw1NS42LTEyMy42LDEyMy42XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLDM1LjYsMTUuNiw2OS42LDQyLDkyLjhjMTkuNiwxOS42LDE3LjYsNjEuMiwxNy42LDYxLjZjMCwyLDAuOCw0LDIsNS42YzEuNiwxLjYsMy42LDIuNCw1LjYsMi40aDExMy4yYzIsMCw0LTAuOCw1LjYtMi40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMyLTMuNiwyLTUuNmMwLTAuNC0yLTQyLDE3LjYtNjEuNkMzMjIuNzEyLDMxOS4yLDMyMy4xMTIsMzE4LjgsMzIzLjExMiwzMTguNHogTTMxMS45MTIsMzA4LjRjLTAuOCwwLjQtMS4yLDEuMi0xLjYsMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLTE3LjYsMTguOC0yMC40LDQ5LjYtMjAuOCw2NGgtOThjLTAuNC0xNC44LTMuNi00Ni44LTIyLjQtNjUuNmMtMjMuNi0yMC44LTM3LjItNTAuNC0zNy4yLTgxLjZjMC02MCw0OC44LTEwOC40LDEwOC40LTEwOC40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM2MCwwLDEwOC40LDQ4LjgsMTA4LjQsMTA4LjRDMzQ4LjcxMiwyNTgsMzM1LjUxMiwyODgsMzExLjkxMiwzMDguNHpcIiAvPlxuICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTI0MC4zMTIsMTM1LjJjLTQsMC03LjYsMy4yLTcuNiw3LjZjMCw0LDMuMiw3LjYsNy42LDcuNmM0NC44LDAsODEuMiwzNi40LDgxLjIsODEuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMCw0LDMuMiw3LjYsNy42LDcuNmM0LDAsNy42LTMuMiw3LjYtNy42QzMzNi43MTIsMTc4LjQsMjkzLjUxMiwxMzUuMiwyNDAuMzEyLDEzNS4yelwiIC8+XG4gICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMzA4LjMxMiw0MTcuNmMwLTEwLjQtOC40LTE4LjQtMTguNC0xOC40aC05OC44Yy0xMC40LDAtMTguNCw4LjQtMTguNCwxOC40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLDEwLjQsOC40LDE4LjQsMTguNCwxOC40aDk4LjRDMjk5LjkxMiw0MzYsMzA4LjMxMiw0MjgsMzA4LjMxMiw0MTcuNnogTTI4OS41MTIsNDIwLjhoLTk4LjRjLTIsMC0zLjItMS42LTMuMi0zLjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzAtMiwxLjYtMy4yLDMuMi0zLjJoOTguNGMyLDAsMy4yLDEuNiwzLjIsMy4yQzI5My4xMTIsNDE5LjYsMjkxLjUxMiw0MjAuOCwyODkuNTEyLDQyMC44elwiIC8+XG4gICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMjc1LjExMiw0NDRoLTY5LjJjLTEwLjQsMC0xOC40LDguNC0xOC40LDE4LjRjMCwxMC40LDguNCwxOC40LDE4LjQsMTguNGg2OS4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMxMC40LDAsMTguNC04LjQsMTguNC0xOC40QzI5My41MTIsNDUyLjQsMjg1LjExMiw0NDQsMjc1LjExMiw0NDR6IE0yNzUuMTEyLDQ2NS42aC02OS4yYy0yLDAtMy4yLTEuNi0zLjItMy4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLTIsMS42LTMuMiwzLjItMy4yaDY5LjJjMiwwLDMuMiwxLjYsMy4yLDMuMkMyNzguMzEyLDQ2NC40LDI3Ny4xMTIsNDY1LjYsMjc1LjExMiw0NjUuNnpcIiAvPlxuICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiIGQ9XCJNMjQ3LjkxMiw1OC44VjcuNmMwLTQtMy4yLTcuNi03LjYtNy42Yy00LDAtNy42LDMuMi03LjYsNy42djUxLjZjMCw0LDMuMiw3LjYsNy42LDcuNlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDMjQ0LjcxMiw2Ni40LDI0Ny45MTIsNjMuMiwyNDcuOTEyLDU4Ljh6XCIgLz5cbiAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIiBkPVwiTTM2Ni4zMTIsMzhjLTMuNi0yLjQtOC0xLjItMTAuNCwybC0yOC40LDQyLjhjLTIuNCwzLjYtMS4yLDgsMiwxMC40YzEuMiwwLjgsMi44LDEuMiw0LDEuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMi40LDAsNC44LTEuMiw2LjQtMy4ybDI4LjQtNDIuOEMzNzAuNzEyLDQ1LjIsMzY5LjUxMiw0MC40LDM2Ni4zMTIsMzh6XCIgLz5cbiAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0xNDkuOTEyLDkyLjhjMS4yLDAsMi44LTAuNCw0LTEuMmMzLjYtMi40LDQuNC02LjgsMi40LTEwLjRsLTI3LjYtNDMuMmMtMi40LTMuNi02LjgtNC40LTEwLjQtMi40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtMy42LDIuNC00LjQsNi44LTIuNCwxMC40bDI3LjYsNDMuMkMxNDUuMTEyLDkxLjYsMTQ3LjUxMiw5Mi44LDE0OS45MTIsOTIuOHpcIiAvPlxuICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTQzLjkxMiwxMjguOGw0NS4yLDI0LjRjMS4yLDAuOCwyLjQsMC44LDMuNiwwLjhjMi44LDAsNS4yLTEuNiw2LjgtNGMyLTMuNiwwLjgtOC40LTMuMi0xMC40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwtNDUuMi0yNC40Yy0zLjYtMi04LjQtMC44LTEwLjQsMy4yQzM5LjExMiwxMjIuNCw0MC4zMTIsMTI2LjgsNDMuOTEyLDEyOC44elwiIC8+XG4gICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMzg3LjkxMiwxNTQuNGMxLjIsMCwyLjQtMC40LDMuNi0wLjhsNDUuMi0yNC40YzMuNi0yLDUuMi02LjQsMy4yLTEwLjRjLTItMy42LTYuNC01LjItMTAuNC0zLjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbC00NS4yLDI0LjRjLTMuNiwyLTUuMiw2LjQtMy4yLDEwLjRDMzgyLjMxMiwxNTIuOCwzODUuMTEyLDE1NC40LDM4Ny45MTIsMTU0LjR6XCIgLz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgICA8cD5cbiAgICAgICAgVGhlcmUgYXJlIG11bHRpcGxlIHdheXMgdG8gY3JlYXRlIGEgcG9saWN5IG9uIFZDb21wbHkuIFlvdSBjYW4gZWl0aGVyIGRyYWZ0IGl0IGZyb20gc2NyYXRjaCB1c2luZyBWQ29tcGx5J3NcbiAgICAgICAgb25saW5lIGVkaXRvcnt7IGZmX3BvbGljeV9tc193b3JkX2ludGVncmF0aW9uID8gJyBvciBDcmVhdGUgYSBQb2xpY3kgVXNpbmcgTVMgV29yZCcgOiAnJyB9fXt7IHNob3dEb2N4QmxvY2sgPyAnXG4gICAgICAgIG9yIFVwbG9hZCBhbiBFeGlzdGluZyBET0NYIGZpbGUnIDogJycgfX17eyBzaG93UGRmQmxvY2sgPyAnIG9yIFVwbG9hZCBhbiBFeGlzdGluZyBQREYgZmlsZScgOiAnJyB9fSBvciBEcmFmdFxuICAgICAgICBVc2luZyBhIFRlbXBsYXRlLlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxsYWJlbCBjbGFzcz1cImRvY3VtZW50LWJveFwiIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RyYWZ0J1wiPlxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJzZWxlY3RlZERvY3VtZW50VHlwZVwiIChjbGljayk9XCJjaGFuZ2VEb2NUeXBlKCdkcmFmdCcpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICdkcmFmdCdcIiAvPlxuICAgICAgPHN2ZyBpZD1cIkRyYWZ0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDAyXCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwMlwiXG4gICAgICAgICAgZD1cIk0yOCwzMkg0YTQsNCwwLDAsMS00LTRWNEE0LDQsMCwwLDEsNCwwSDI4YTQsNCwwLDAsMSw0LDRWMjhhNCw0LDAsMCwxLTQsNFwiIGZpbGw9XCIjNTY1YTZmXCIgLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDAzXCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwM1wiXG4gICAgICAgICAgZD1cIk0yMS44ODQsOC41MSwxMC41NDksMTAuMzg0LDEyLjQyNiwyMS4wNmw0LjM4LS42MWEuMzMzLjMzMywwLDAsMSwuMzI2LjQzNWMtLjA1MS4yMTktLjMzOC4yMzUtLjUxNC4yNjctMS40NzQuMjY2LTMuMDA5LjM4OC00LjQ5MS42MzEtLjQxNi0uMDMyLS4zMjEtLjcxOC0uNDQxLTFsLTMtLjM2NWMtLjIxMy0uMTItLjItLjI3My0uMi0uNDkyLjAxOS0uNjIyLjA5Mi0xLjI1MS4xMjUtMS44NzIuMTYtMywuMzE2LTYsLjUtOC45OTNBOS40NTcsOS40NTcsMCwwLDEsOS4xNTIsOC4xYS4zNjkuMzY5LDAsMCwxLC4yNjUtLjNsOC41MTkuNjgxTDIyLjIsNy44Yy4yMjUuMDY4LjI0Ni4xOS4zLjM5My41NTMsMi4yODguNzU4LDQuNzc1LDEuMjg1LDcuMDgzLjE0My41MzEtLjUwNy43MzEtLjY0Mi4yWk0xNy4yMTEsMjEuOTMyYS41NjMuNTYzLDAsMCwwLS4wNzIuMjQsOC41NDksOC41NDksMCwwLDAsMCwxLjE4N2MuMDE5LjIxNy4wODguMzkzLjMyOC40MjFhOS4xMzgsOS4xMzgsMCwwLDAsMS40NDgtLjAyMS41My41MywwLDAsMCwuMTIyLS4wNjVsMy43NTYtMy43NzFMMjEsMTguMTNabTUuMzI5LTUuMzVjLS4zNjUuMjg2LS43Ljc1Ny0xLjA2MSwxLjA2MkwyMy4zLDE5LjQzN2MuMy0uMzUuNzc3LS42ODcsMS4wNS0xLjA0NC4xNS0uMi4xNzQtLjMxMi4wMTctLjUxNmExMy44NTEsMTMuODUxLDAsMCwwLTEuMzI3LTEuMzI3LjM5My4zOTMsMCwwLDAtLjIzLS4xLjQ3Ni40NzYsMCwwLDAtLjI3MS4xM1wiXG4gICAgICAgICAgZmlsbD1cIiNmZmZcIiAvPlxuICAgICAgPC9zdmc+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj48c3Ryb25nPkNyZWF0ZTwvc3Ryb25nPiBhIFBvbGljeTwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGRvY3VtZW50LWJveC1pY29uIHZ4LWZzLTE2IHZ4LW1yLTJcIj4mI3hlYTQ2OzwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWNpcmNsZVwiPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuXG5cbiAgICA8bGFiZWwgKm5nSWY9XCJmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvblwiIGNsYXNzPVwiZG9jdW1lbnQtYm94XCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAnd29yZCdcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwic2VsZWN0ZWREb2N1bWVudFR5cGVcIiAoY2xpY2spPVwiY2hhbmdlRG9jVHlwZSgnd29yZCcpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICd3b3JkJ1wiIC8+XG4gICAgICA8c3ZnIGlkPVwiV29yZC1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA0XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNFwiXG4gICAgICAgICAgZD1cIk0yOCwzMkg0YTQsNCwwLDAsMS00LTRWNEE0LDQsMCwwLDEsNCwwSDI4YTQsNCwwLDAsMSw0LDRWMjhhNCw0LDAsMCwxLTQsNFwiIGZpbGw9XCIjMWU1ZGQzXCIgLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA1XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNVwiXG4gICAgICAgICAgZD1cIk0xMC40MTksOS43MThsMS44ODksOS4xMjFMMTIuNDQsMjBsLjEzMi0uODg1LDIuMTUyLTkuNCwyLjYyNi4wMTgsMi4xODcsOS4xMDYuMTc0LDEuMTMyYTEzLjQsMTMuNCwwLDAsMSwuMTc0LTEuMzUyYy41LTIuOTU0LDEuMTg4LTUuODgsMS43LTguODMybC4wNC0uMDdIMjRMMjEuMDg1LDIyLjI4MWwtMi44MTgtLjAyNkwxNS45MzEsMTIuMjJsLS4xNiwxLjA3Ny0yLjAxNSw4Ljk4Ni0yLjgyOS0uMDI4TDgsOS43MThaXCJcbiAgICAgICAgICBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgICA8L3N2Zz5cblxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7Y3JlYXRlV29yZFBvbGljeVRleHR9fTwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGRvY3VtZW50LWJveC1pY29uIHZ4LWZzLTE2IHZ4LW1yLTJcIj4mI3hlYTQ2OzwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWNpcmNsZVwiPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuXG5cblxuICAgIDxsYWJlbCBjbGFzcz1cImRvY3VtZW50LWJveFwiICpuZ0lmPVwic2hvd0RvY3hCbG9ja1wiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdkb2N4JyAmJiAhZG9jeEVycm9yPy52aXNpYmxlXCIgW2NsYXNzLmVycm9yXT1cImRvY3hFcnJvcj8udmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwicmVzZXRVcGxvYWRzKClcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi5kb2N4XCIgaWQ9XCJET0NmaWxlXCIgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICBvbmNsaWNrPVwiZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgI2RvY3hVcGxvYWRCdXR0b24gLz5cbiAgICAgIDxzdmcgaWQ9XCJXb3JkLUljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDRcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA0XCJcbiAgICAgICAgICBkPVwiTTI4LDMySDRhNCw0LDAsMCwxLTQtNFY0QTQsNCwwLDAsMSw0LDBIMjhhNCw0LDAsMCwxLDQsNFYyOGE0LDQsMCwwLDEtNCw0XCIgZmlsbD1cIiMxZTVkZDNcIiAvPlxuICAgICAgICA8cGF0aCBpZD1cIlBhdGhfMjA0MDVcIiBkYXRhLW5hbWU9XCJQYXRoIDIwNDA1XCJcbiAgICAgICAgICBkPVwiTTEwLjQxOSw5LjcxOGwxLjg4OSw5LjEyMUwxMi40NCwyMGwuMTMyLS44ODUsMi4xNTItOS40LDIuNjI2LjAxOCwyLjE4Nyw5LjEwNi4xNzQsMS4xMzJhMTMuNCwxMy40LDAsMCwxLC4xNzQtMS4zNTJjLjUtMi45NTQsMS4xODgtNS44OCwxLjctOC44MzJsLjA0LS4wN0gyNEwyMS4wODUsMjIuMjgxbC0yLjgxOC0uMDI2TDE1LjkzMSwxMi4yMmwtLjE2LDEuMDc3LTIuMDE1LDguOTg2LTIuODI5LS4wMjhMOCw5LjcxOFpcIlxuICAgICAgICAgIGZpbGw9XCIjZmZmXCIgLz5cbiAgICAgIDwvc3ZnPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtcmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoc2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RvY3gnICYmIGZpbGVuYW1lKVwiPlVwbG9hZCBhXG4gICAgICAgICAgICA8c3Ryb25nPkRPQ1g8L3N0cm9uZz48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdkb2N4JyAmJiBmaWxlbmFtZVwiIFthcHBUb29sdGlwXT1cImZpbGVuYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7XG4gICAgICAgICAgICBmaWxlbmFtZVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItbXNnLXRleHRcIiAqbmdJZj1cImRvY3hFcnJvcj8udmlzaWJsZVwiPlxuICAgICAgICAgIHt7IGRvY3hFcnJvcj8ubWVzc2FnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE5Nzs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIiAqbmdJZj1cIiFkb2N4RXJyb3I/LnZpc2libGVcIj5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGVycm9yLWljb25cIiAqbmdJZj1cImRvY3hFcnJvcj8udmlzaWJsZVwiPiYjeGU5MTQ7PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGluZS1wcm9ncmVzc1wiICpuZ0lmPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RvY3gnICYmIGlzVXBsb2FkaW5nXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLXByb2dyZXNzLWJhclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbiAgICA8bGFiZWwgY2xhc3M9XCJkb2N1bWVudC1ib3hcIiAqbmdJZj1cInNob3dQZGZCbG9ja1wiIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ3BkZidcIlxuICAgICAgKGNsaWNrKT1cInJlc2V0VXBsb2FkcygpXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIucGRmXCIgaWQ9XCJQREZmaWxlXCIgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICBvbmNsaWNrPVwiZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgI3BkZlVwbG9hZEJ1dHRvbiAvPlxuICAgICAgPHN2ZyBpZD1cIlBERi1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA4XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwOFwiXG4gICAgICAgICAgZD1cIk0yOCwzMkg0YTQsNCwwLDAsMS00LTRWNEE0LDQsMCwwLDEsNCwwSDI4YTQsNCwwLDAsMSw0LDRWMjhhNCw0LDAsMCwxLTQsNFwiIGZpbGw9XCIjYTgyYTFkXCIgLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA5XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwOVwiXG4gICAgICAgICAgZD1cIk0xNi4xMjUsMTMuNzc4QTEuMzksMS4zOSwwLDAsMCwxNi4yODUsMTVhMTYuMTA2LDE2LjEwNiwwLDAsMCwyLjEwNiwyLjU1NGMuMzEyLS4wNDUuNi0uMDQ3LDEuMi0uMDkyYTYuOTY0LDYuOTY0LDAsMCwxLDMuNjE2LjIzOSwxLjMxLDEuMzEsMCwwLDEsLjc4NCwxLjM2MSwxLjE3NiwxLjE3NiwwLDAsMS0xLjA3NS45ODFjLTIuMjI0LjMzNi0zLjMwNS0uOS00LjU3OS0xLjc0NmEyLjA5NCwyLjA5NCwwLDAsMC0uODEyLjAyMSwyNS43ODIsMjUuNzgyLDAsMCwwLTMuNDEyLjkxNmMtLjI1My4wODktLjMzOC4zLS41MzMuNjA5YTExLjA2MiwxMS4wNjIsMCwwLDEtMi44MiwzLjQyNywyLjE0NSwyLjE0NSwwLDAsMS0xLjg2MS40NDVjLTEtLjIyMi0xLjE3OC0xLjE4Mi0uNS0xLjk0MkE5LjQ1Miw5LjQ1MiwwLDAsMSwxMCwyMC40NjJhMTQuNzE0LDE0LjcxNCwwLDAsMSwyLjQxOC0xLjEwOWMuNDkxLS40NjEuNTU2LS42ODYuOTY2LTEuNzY0LjQzMS0xLjEzNi45MjItMi4yNSwxLjMyNC0zLjRhMS42NzksMS42NzksMCwwLDAtLjAzNS0xLjA2Miw3LjcsNy43LDAsMCwxLS42MzgtMy40NzYsMS40LDEuNCwwLDAsMSwuOTU5LTEuMzkzLDEuMjc5LDEuMjc5LDAsMCwxLDEuNDY0LjhjLjIuNDc5LjU1MiwxLjc1LS4zMzEsNC43MjhtLS4zNzcsMS4zNzctMS40MTgsMy40MjIsMy4zNTMtLjg4My0xLjkzNS0yLjUzOW0zLjIyMiwyLjg4MkE0LjUsNC41LDAsMCwwLDIxLjkyLDE5LjM3Yy4zNzcsMCwuNzE0LS4xMzEuNzMzLS42LjA1MS0xLjI1MS0yLjY1Ni0uODY0LTMuNjgyLS43M20tNi45NiwyLjAzN2E5Ljc4OCw5Ljc4OCwwLDAsMC0yLjk3NSwxLjhjLS4yMTguMTcxLS40NDYuNzE4LS4yODIuOTg0cy44MS4wNjcsMS0uMTJhOS4yOSw5LjI5LDAsMCwwLDIuMjUzLTIuNjY0bTMuMjQ2LTcuMjQzYy0uMDQ1LS44NzguNDYxLTIuMTcyLjQzNy0zLjIyNC0uMDA4LS4zNTUtLjA1MS0uNzQ3LS41LS43NzItLjM2NC0uMDItLjUzNC40NzYtLjU2OS43NjJhNS44LDUuOCwwLDAsMCwuNjM2LDMuMjM0XCJcbiAgICAgICAgICBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgICA8L3N2Zz5cblxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKHNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdwZGYnICYmIGZpbGVuYW1lKVwiPlVwbG9hZCBhXG4gICAgICAgICAgICA8c3Ryb25nPlBERjwvc3Ryb25nPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ3BkZicgJiYgZmlsZW5hbWVcIiBbYXBwVG9vbHRpcF09XCJmaWxlbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e1xuICAgICAgICAgICAgZmlsZW5hbWVcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE5Nzs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIj5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGluZS1wcm9ncmVzc1wiICpuZ0lmPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ3BkZicgJiYgaXNVcGxvYWRpbmdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUtcHJvZ3Jlc3MtYmFyXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuICAgIDwhLS0gU2VsZWN0IGEgdGVtcGxhdGUgLS0+XG4gICAgPGxhYmVsIGNsYXNzPVwiZG9jdW1lbnQtYm94XCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gJ3RlbXBsYXRlJ1wiPlxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJzZWxlY3RlZERvY3VtZW50VHlwZVwiIChjbGljayk9XCJjaGFuZ2VEb2NUeXBlKCd0ZW1wbGF0ZScpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICd0ZW1wbGF0ZSdcIiAvPlxuICAgICAgPHN2ZyBpZD1cIlRNUC1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA2XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNlwiXG4gICAgICAgICAgZD1cIk0yOCwzMkg0YTQsNCwwLDAsMS00LTRWNEE0LDQsMCwwLDEsNCwwSDI4YTQsNCwwLDAsMSw0LDRWMjhhNCw0LDAsMCwxLTQsNFwiIGZpbGw9XCIjMzRhYTQ0XCIgLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDEwXCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQxMFwiXG4gICAgICAgICAgZD1cIk0xNiwxLjc3OFYzLjU1NUgwVjEuNzc4QTEuNzgzLDEuNzgzLDAsMCwxLDEuNzc4LDBIMTQuMjIzQTEuNzgzLDEuNzgzLDAsMCwxLDE2LDEuNzc4TTAsNC40NDRIMTZ2OC44ODlhMS43NzgsMS43NzgsMCwwLDEtMS43NzcsMS43NzhIMS43NzhBMS43NzgsMS43NzgsMCwwLDEsMCwxMy4zMzNaTTYuOTksOS45MjhBLjg5MS44OTEsMCwwLDAsNi4xLDkuMDM5SDMuNjQyYS44OTEuODkxLDAsMCwwLS44ODguODg5djIuNDU2YS44OTEuODkxLDAsMCwwLC44ODguODg5SDYuMWEuODkxLjg5MSwwLDAsMCwuODg4LS44ODlabTYuMzA2LDBhLjg5Mi44OTIsMCwwLDAtLjg4OS0uODg5SDkuOTQ4YS44OTEuODkxLDAsMCwwLS44ODguODg5djIuNDU2YS44OTEuODkxLDAsMCwwLC44ODguODg5aDIuNDU5YS44OTIuODkyLDAsMCwwLC44ODktLjg4OVpNMi42NjcsNy4xMTFBLjg4OS44ODksMCwwLDAsMy41NTYsOGg4Ljg4OWEuODg5Ljg4OSwwLDAsMCwwLTEuNzc4SDMuNTU2YS44ODkuODg5LDAsMCwwLS44ODkuODg5XCJcbiAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOCA3Ljk5OSlcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgICA8L3N2Zz5cblxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPkRyYWZ0IFVzaW5nIGEgPHN0cm9uZz5UZW1wbGF0ZTwvc3Ryb25nPjwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGRvY3VtZW50LWJveC1pY29uIHZ4LWZzLTE2IHZ4LW1yLTJcIj4mI3hlYTQ2OzwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWNpcmNsZVwiPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuICAgIDwhLS0gRW5kIFNlbGVjdCBhIHRlbXBsYXRlIC0tPlxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImlzTG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJib3R0b20tYnV0dG9uXCIgW2NsYXNzLmdyYXlzY2FsZV09XCJ0ZW1wbGF0ZVZpZXdcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImVkaXRQb2xpY3lFbWl0KClcIiBjbGFzcz1cImJhY2tcIiBbY2xhc3MuZGlzYWJsZWRdPVwidGVtcGxhdGVWaWV3XCI+XG4gICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWQ7PC9pPiBCYWNrXG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZWRpdG9yKHNlbGVjdGVkRG9jdW1lbnRUeXBlKVwiIGNsYXNzPVwibmV4dFwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImlzTmV4dEJ1dHRvbkRpc2FibGVkIHx8IGlzVXBsb2FkaW5nXCI+XG4gICAgTmV4dCA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZTs8L2k+XG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19