myrta-ui 17.1.19 → 17.1.20

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.
@@ -4,16 +4,18 @@ import { TooltipService } from '../tooltip/services/tooltip.service';
4
4
  import { FindState, NgxExtendedPdfViewerComponent } from 'ngx-extended-pdf-viewer';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "ngx-extended-pdf-viewer";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "../icon-button/icon-button.component";
9
- import * as i4 from "../form/input-select/input-select.component";
10
- import * as i5 from "../form/input-number/input-number.component";
11
- import * as i6 from "../form/input-text/input-text.component";
12
- import * as i7 from "@angular/forms";
7
+ import * as i2 from "@angular/common/http";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "../icon-button/icon-button.component";
10
+ import * as i5 from "../form/input-select/input-select.component";
11
+ import * as i6 from "../form/input-number/input-number.component";
12
+ import * as i7 from "../form/input-text/input-text.component";
13
+ import * as i8 from "@angular/forms";
13
14
  export class PdfViewerComponent {
14
15
  _pdfViewerService;
15
16
  _renderer;
16
17
  _ref;
18
+ _http;
17
19
  searchQuery = '';
18
20
  findState = FindState.PENDING;
19
21
  totalFound = 0;
@@ -68,10 +70,11 @@ export class PdfViewerComponent {
68
70
  }
69
71
  return ignoredKeys;
70
72
  }
71
- constructor(_pdfViewerService, _renderer, _ref) {
73
+ constructor(_pdfViewerService, _renderer, _ref, _http) {
72
74
  this._pdfViewerService = _pdfViewerService;
73
75
  this._renderer = _renderer;
74
76
  this._ref = _ref;
77
+ this._http = _http;
75
78
  }
76
79
  ngOnChanges(changes) {
77
80
  if (changes['defaultZoom'] && changes['defaultZoom'].currentValue != changes['defaultZoom'].previousValue) {
@@ -186,17 +189,6 @@ export class PdfViewerComponent {
186
189
  }
187
190
  }, 1);
188
191
  }
189
- async onDownloadClick() {
190
- const blob = await this._pdfViewerService.getCurrentDocumentAsBlob();
191
- const objectUrl = URL.createObjectURL(blob);
192
- const a = document.createElement('a');
193
- a.href = objectUrl;
194
- a.download = this.downloadFileName || this.src;
195
- document.body.appendChild(a);
196
- a.click();
197
- document.body.removeChild(a);
198
- URL.revokeObjectURL(objectUrl);
199
- }
200
192
  onSidebarViewClick() {
201
193
  this.sidebarVisible = !this.sidebarVisible;
202
194
  }
@@ -235,8 +227,42 @@ export class PdfViewerComponent {
235
227
  onHandToolClick() {
236
228
  this.handTool = !this.handTool;
237
229
  }
238
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i1.NgxExtendedPdfViewerService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
239
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PdfViewerComponent, selector: "mrx-pdf-viewer", inputs: { showSidebarButton: "showSidebarButton", showHandToolButton: "showHandToolButton", handTool: "handTool", showFindbarButton: "showFindbarButton", showRotateButton: "showRotateButton", showPrintButton: "showPrintButton", showDownloadButton: "showDownloadButton", showExpandButton: "showExpandButton", defaultZoom: "defaultZoom", downloadFileName: "downloadFileName", src: "src" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, providers: [TooltipService], viewQueries: [{ propertyName: "pdfViewer", first: true, predicate: NgxExtendedPdfViewerComponent, descendants: true }, { propertyName: "findMenu", first: true, predicate: ["findMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #customToolbar>\r\n <div class=\"mrx-pdf-viewer__toolbar\" id=\"toolbarViewer\">\r\n <div class=\"d-flex g-2\">\r\n <div class=\"d-flex g-1\">\r\n @if (showSidebarButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-burger'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSidebarViewClick()\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': sidebarVisible}\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C/\u0441\u043A\u0440\u044B\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showFindbarButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-search'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSearchClick()\"\r\n [customClasses]=\"'py-1 px-2 mrx-pdf-viewer__find-button'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': isSearchPanelVisible}\"\r\n [tooltip]=\"'\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n </div>\r\n\r\n @if (isSearchPanelVisible) {\r\n <div class=\"mrx-pdf-viewer__findbar g-1\" #findMenu>\r\n <mrx-input-text\r\n [customClasses]=\"findState === 1 ? 'mrx-input-error' :''+'searchText'\"\r\n placeholder=\"\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435...\"\r\n [ngModel]=\"searchQuery\"\r\n (ngModelChange)=\"onSearch($event)\">\r\n </mrx-input-text>\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findPrevious()\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findNext()\"\r\n ></mrx-icon-button>\r\n </div>\r\n @if (findState === 0 || findState === 2) {\r\n <div class=\"mrx-pdf-viewer__findbar-result\">\r\n {{ currentFind }} \u0438\u0437 {{ totalFound }} \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439\r\n </div>\r\n }\r\n @if (findState === 1) {\r\n <div class=\"color-negative d-flex align-items-center nowrap\">\u0424\u0440\u0430\u0437\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430</div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"mrx-pdf-viewer__toolbar--nav\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0435\u0440\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPageChange(1)\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPageChange(page - 1 || 1)\"\r\n ></mrx-icon-button>\r\n <mrx-input-number\r\n [size]=\"'small'\"\r\n [customClasses]=\"'wpx-56'\"\r\n [ngModel]=\"page\"\r\n [numberType]=\"'int'\"\r\n [minValue]=\"1\"\r\n [maxValue]=\"pageCount\"\r\n [isAutoCorrectingValue]=\"true\"\r\n (ngModelChange)=\"onPageChange($event)\"\r\n ></mrx-input-number>\r\n <span class=\"mx-1\">\u0438\u0437 {{ pageCount }}</span>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onNextPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onLastPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(false)\"\r\n [iconClass]=\"'icon-minus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(true)\"\r\n [iconClass]=\"'icon-plus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-input-select\r\n [size]=\"'medium'\"\r\n [customClasses]=\"'wpx-156'\"\r\n [items]=\"zoomOptions\"\r\n (ngModelChange)=\"onZoomLevelSelect($event)\"\r\n [ngModel]=\"selectedZoom\"\r\n [clearable]=\"false\">\r\n </mrx-input-select>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n @if (showHandToolButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-fc-text'\"\r\n [size]=\"'medium'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': !handTool}\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onHandToolClick()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showRotateButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-reload'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0435'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showRotateButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-return'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(-1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u0440\u043E\u0442\u0438\u0432 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0438'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showExpandButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-arrow-expand'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onExpandModeClick()\"\r\n [tooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430 \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showPrintButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-print'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0435\u0447\u0430\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPrintClick()\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showDownloadButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-download'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0421\u043A\u0430\u0447\u0430\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onDownloadClick()\"\r\n ></mrx-icon-button>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ngx-extended-pdf-viewer\r\n #pdfViewer\r\n class=\"mrx-pdf-viewer\"\r\n [src]=\"src\"\r\n [page]=\"page\"\r\n [sidebarVisible]=\"showSidebarButton && sidebarVisible\"\r\n [customToolbar]=\"customToolbar\"\r\n [showSidebarButton]=\"true\"\r\n [showRotateButton]=\"showRotateButton\"\r\n [showDownloadButton]=\"showDownloadButton\"\r\n [ignoreKeys]=\"ignoreKeys\"\r\n [zoom]=\"selectedZoom.value\"\r\n [textLayer]=\"true\"\r\n [handTool]=\"handTool\"\r\n [rotation]=\"rotation\"\r\n (zoomChange)=\"onZoomChange($event)\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pagesLoaded)=\"onPagesLoaded($event)\"\r\n (updateFindState)=\"onFindStateChanged($event)\"\r\n (sidebarVisibleChange)=\"onSidebarVisibleChange($event)\"\r\n (updateFindMatchesCount)=\"onUpdateMatchCase($event)\"\r\n></ngx-extended-pdf-viewer>\r\n", styles: [".mrx-pdf-viewer__toolbar{display:flex;padding:var(--spacing-1, 4px);justify-content:space-between;align-items:center;background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3b43571a;font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-style:normal;font-weight:var(--body-extra-sm-font-weight, 400);line-height:var(--body-lg-bold-font-size, 16px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container{min-height:28px!important;min-width:var(--sizing-10);padding:2px;padding-left:var(--spacing-1);padding-right:var(--spacing-2);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-input{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{min-height:var(--sizing-5);padding:calc(var(--spacing-1) / 2) var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option span{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected:before{content:url(\"data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.3336 4.6665L6.00032 11.9998L2.66699 8.66649' stroke='%23000' stroke-width='0.999998' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");right:var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:var(--spacing-1, 4px) var(--spacing-2, 8px)!important;min-height:28px;border:var(--border-width-default, 1px) solid var(--neutral-bg-stroke-default, #BFC5CC);text-align:right;font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon{color:var(--neutral-icon-default)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-20{font-size:20px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-24{font-size:24px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button{position:relative;max-width:36px;max-height:28px;box-sizing:border-box}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:after{content:\"\";position:absolute;left:0;top:0;width:100%;height:100%;border-radius:var(--border-radius-1, 4px);border:1px solid transparent;transition:.2s}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button{background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button:after{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active{background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active:after{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button.icon-search.mrx-pdf-viewer__find-button{position:relative}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar .mrx-input-text.mrx-input-text-lg input{font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-input-text{width:100%}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-input-text .mrx-input-text{box-shadow:0 1px 4px #3a3a3a4d;border-radius:var(--border-radius-1)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-icon-button .mrx-icon-button{max-width:unset;max-height:unset}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar-result{display:flex;padding:6px var(--spacing-2, 8px);justify-content:center;align-items:center;gap:10px;border-radius:var(--sizing-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF);white-space:nowrap}.mrx-pdf-viewer__toolbar--nav{display:flex;align-items:center}.mrx-pdf-viewer__toolbar--nav span{color:var(--neutral-text-tertiary, #71767E)}.mrx-pdf-viewer__toolbar__find-button{position:relative}.mrx-pdf-viewer__findbar{position:absolute;top:47px;left:35px;z-index:100;background:#fff;width:auto;display:flex;padding:var(--spacing-2, 8px);border-radius:var(--sizing-1, 4px);box-shadow:0 1px 4px #3a3a3a4d;max-height:44px;box-sizing:border-box}.mrx-pdf-viewer__findbar:before{position:absolute;content:\"\";background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2012%22%20fill%3D%22none%22%3E%0A%3Cpath%20d%3D%22M24%2012H0L12%200L24%2012Z%22%20fill%3D%22white%22/%3E%0A%3C/svg%3E);background-repeat:no-repeat;top:-12px;left:12px;width:24px;height:12px}.mrx-pdf-viewer__findbar .searchText{position:absolute;top:20px}.mrx-pdf-viewer__findbar ::ng-deep .mrx-input-text.mrx-input-text{max-width:279px;min-width:279px}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar{background-color:var(--neutral-bg-island-default, #F8F9FA);padding:var(--spacing-1, 4px);height:28px!important;box-sizing:border-box;width:100%}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton{margin-top:0;margin-bottom:0;width:var(--sizing-6, 24px);max-width:var(--sizing-6, 24px);height:20px;padding:0;font-family:mrx-icon-font!important;color:var(--neutral-icon-default, #33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;border-radius:var(--sizing-1, 4px);outline:none;border:1px solid transparent}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:focus{border:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:hover{background:var(--brand-bg-tertiary-hover, #edf5ff)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton.toggled{border:1px solid var(--brand-bg-primary-default, #2A6AB8);background:var(--brand-bg-secondary-default, #EDF5FF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton svg{display:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewThumbnail:after{content:\"\\e968\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewOutline:after{content:\"\\ea1b\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewLayers:after{content:\"\\e935\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-content #sidebarContent{top:28px!important;background-color:var(--neutral-bg-island-default, #F8F9FA)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar{width:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView{padding:var(--spacing-3, 16px) var(--sizing-10, 40px);width:calc(100% - var(--sizing-20, 80px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail{margin:0;border:var(--spacing-1) solid rgba(0,0,0,0);border-radius:0}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail.selected{border:var(--spacing-1, 4px) solid var(--brand-bg-secondary-selected, #BED6F1)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView{padding:var(--spacing-3, 16px);width:calc(100% - var(--spacing-6, 64px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:hover{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a{color:var(--neutral-text-primary, #262626);font-size:var(--body-sm-font-size, 12px);line-height:var(--body-lg-bold-font-size, 16px);outline:none;border:none;padding:calc(var(--spacing-1, 4px) / 2) var(--spacing-1, 4px);min-width:calc(100% - var(--sizing-3, 12px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a:focus{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem.selected>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem.selected>a{border-radius:var(--spacing-1, 4px);border:1px solid var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem input[type=checkbox]:checked,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem input[type=checkbox]:checked{accent-color:var(--brand-bg-primary-default, #2A6AB8)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler{font-family:mrx-icon-font!important;color:var(--neutral-icon-default, 33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;cursor:pointer}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler:before{content:\"\\e926\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler.treeItemsHidden:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler.treeItemsHidden:before{content:\"\\e925\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar{width:var(--sizing-2, 8px);height:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer.grab-to-pan-grab{cursor:default!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .pdfViewer .page{border:none;box-shadow:0 1px 4px #3b43571a;margin-bottom:var(--spacing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight{background-color:var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight.selected{background-color:var(--system-text-positive, #004A1A)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer ::selection{background:var(--brand-bg-secondary-hover, #bed6f1)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .dialogButton{color:var(--neutral-text-primary, #262626);font-size:var(--body-md-font-size, 14px);line-height:20px;background-color:var(--brand-bg-tertiary-default, #FFF);border:var(--brand-bg-tertiary-default, #FFF)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog{box-shadow:0 1px 4px #3a3a3a4d;border:none;padding:var(--spacing-3, 16px);background:var(--brand-bg-tertiary-default, #FFF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog::backdrop{background:var(--neutral-bg-modal, rgba(38, 38, 38, .25))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress{border-radius:var(--sizing-1, 4px);width:120px;height:var(--sizing-1, 4px);vertical-align:middle}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-bar{background-color:var(--neutral-bg-island-default, #F8F9FA);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-value{background-color:var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "delayFirstView", "showTextEditor", "showStampEditor", "showDrawEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "useBrowserLocale", "forceUsingLegacyES5", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindCurrentPageOnly", "showFindPageRange", "showFindEntireWord", "showFindEntirePhrase", "showFindMatchDiacritics", "showFindFuzzySearch", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showZoomButtons", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "handTool", "showHandToolButton", "showScrollingButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }, { kind: "component", type: i3.IconButtonComponent, selector: "mrx-icon-button", inputs: ["size", "state", "type", "iconClass", "disabled", "tooltip", "tooltipPosition", "tooltipMaxWidth", "isActive", "customClasses"], outputs: ["mrxClick"] }, { kind: "component", type: i4.InputSelectComponent, selector: "mrx-input-select", inputs: ["fields", "size", "selected", "bindValue", "bindLabel", "customClasses", "wrapperCustomClasses", "multiple", "loading", "addTag", "clearable", "items", "groupBy", "emptyValue", "virtualScroll", "trackByFn", "displayValue", "disabledFromDisplay", "maxLength", "customSearchFn", "isBottomLabel", "search", "required", "disabled", "readonly", "showEmptyFields", "placeholder", "searchable", "loadLabel", "notFoundText", "closeOnSelect", "multiCollapseCount", "dropdownPosition", "invalid", "invalidMessage", "checkInvalid", "label", "labelRequiredHidden", "labelExtraClass", "tooltip", "tooltipHidden", "tooltipVisible", "maxSelectedItems"], outputs: ["changed", "modelChange", "searched"] }, { kind: "component", type: i5.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "decimals", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["modelChange"] }, { kind: "component", type: i6.InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "invalid", "invalidMessage", "checkInvalid", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "modelChange"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
230
+ onDownloadClick() {
231
+ if (this.downloadFileName) {
232
+ this._downloadFile(this.downloadFileName);
233
+ }
234
+ else {
235
+ this._http.get(this.src, { responseType: 'blob', observe: 'response', })
236
+ .subscribe((response) => {
237
+ const contentDisposition = response.headers.get('Content-Disposition');
238
+ if (contentDisposition) {
239
+ const matches = /filename="([^"]+)"/.exec(contentDisposition);
240
+ if (matches && matches[1]) {
241
+ this._downloadFile(matches[1]);
242
+ }
243
+ else {
244
+ this._downloadFile('document.pdf');
245
+ }
246
+ }
247
+ else {
248
+ this._downloadFile('document.pdf');
249
+ }
250
+ });
251
+ }
252
+ }
253
+ async _downloadFile(fileName) {
254
+ const blob = await this._pdfViewerService.getCurrentDocumentAsBlob();
255
+ const objectUrl = URL.createObjectURL(blob);
256
+ const a = document.createElement('a');
257
+ a.href = objectUrl;
258
+ a.download = fileName;
259
+ document.body.appendChild(a);
260
+ a.click();
261
+ document.body.removeChild(a);
262
+ URL.revokeObjectURL(objectUrl);
263
+ }
264
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i1.NgxExtendedPdfViewerService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
265
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PdfViewerComponent, selector: "mrx-pdf-viewer", inputs: { showSidebarButton: "showSidebarButton", showHandToolButton: "showHandToolButton", handTool: "handTool", showFindbarButton: "showFindbarButton", showRotateButton: "showRotateButton", showPrintButton: "showPrintButton", showDownloadButton: "showDownloadButton", showExpandButton: "showExpandButton", defaultZoom: "defaultZoom", downloadFileName: "downloadFileName", src: "src" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, providers: [TooltipService], viewQueries: [{ propertyName: "pdfViewer", first: true, predicate: NgxExtendedPdfViewerComponent, descendants: true }, { propertyName: "findMenu", first: true, predicate: ["findMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #customToolbar>\r\n <div class=\"mrx-pdf-viewer__toolbar\" id=\"toolbarViewer\">\r\n <div class=\"d-flex g-2\">\r\n <div class=\"d-flex g-1\">\r\n @if (showSidebarButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-burger'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSidebarViewClick()\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': sidebarVisible}\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C/\u0441\u043A\u0440\u044B\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showFindbarButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-search'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSearchClick()\"\r\n [customClasses]=\"'py-1 px-2 mrx-pdf-viewer__find-button'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': isSearchPanelVisible}\"\r\n [tooltip]=\"'\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n </div>\r\n\r\n @if (isSearchPanelVisible) {\r\n <div class=\"mrx-pdf-viewer__findbar g-1\" #findMenu>\r\n <mrx-input-text\r\n [customClasses]=\"findState === 1 ? 'mrx-input-error' :''+'searchText'\"\r\n placeholder=\"\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435...\"\r\n [ngModel]=\"searchQuery\"\r\n (ngModelChange)=\"onSearch($event)\">\r\n </mrx-input-text>\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findPrevious()\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findNext()\"\r\n ></mrx-icon-button>\r\n </div>\r\n @if (findState === 0 || findState === 2) {\r\n <div class=\"mrx-pdf-viewer__findbar-result\">\r\n {{ currentFind }} \u0438\u0437 {{ totalFound }} \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439\r\n </div>\r\n }\r\n @if (findState === 1) {\r\n <div class=\"color-negative d-flex align-items-center nowrap\">\u0424\u0440\u0430\u0437\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430</div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"mrx-pdf-viewer__toolbar--nav\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0435\u0440\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPageChange(1)\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPageChange(page - 1 || 1)\"\r\n ></mrx-icon-button>\r\n <mrx-input-number\r\n [size]=\"'small'\"\r\n [customClasses]=\"'wpx-56'\"\r\n [ngModel]=\"page\"\r\n [numberType]=\"'int'\"\r\n [minValue]=\"1\"\r\n [maxValue]=\"pageCount\"\r\n [isAutoCorrectingValue]=\"true\"\r\n (ngModelChange)=\"onPageChange($event)\"\r\n ></mrx-input-number>\r\n <span class=\"mx-1\">\u0438\u0437 {{ pageCount }}</span>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onNextPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onLastPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(false)\"\r\n [iconClass]=\"'icon-minus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(true)\"\r\n [iconClass]=\"'icon-plus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-input-select\r\n [size]=\"'medium'\"\r\n [customClasses]=\"'wpx-156'\"\r\n [items]=\"zoomOptions\"\r\n (ngModelChange)=\"onZoomLevelSelect($event)\"\r\n [ngModel]=\"selectedZoom\"\r\n [clearable]=\"false\">\r\n </mrx-input-select>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n @if (showHandToolButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-fc-text'\"\r\n [size]=\"'medium'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': !handTool}\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onHandToolClick()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showRotateButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-reload'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0435'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showRotateButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-return'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(-1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u0440\u043E\u0442\u0438\u0432 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0438'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showExpandButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-arrow-expand'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onExpandModeClick()\"\r\n [tooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430 \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showPrintButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-print'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0435\u0447\u0430\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPrintClick()\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showDownloadButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-download'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0421\u043A\u0430\u0447\u0430\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onDownloadClick()\"\r\n ></mrx-icon-button>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ngx-extended-pdf-viewer\r\n #pdfViewer\r\n class=\"mrx-pdf-viewer\"\r\n [src]=\"src\"\r\n [page]=\"page\"\r\n [sidebarVisible]=\"showSidebarButton && sidebarVisible\"\r\n [customToolbar]=\"customToolbar\"\r\n [showSidebarButton]=\"true\"\r\n [showRotateButton]=\"showRotateButton\"\r\n [showDownloadButton]=\"showDownloadButton\"\r\n [ignoreKeys]=\"ignoreKeys\"\r\n [zoom]=\"selectedZoom.value\"\r\n [textLayer]=\"true\"\r\n [handTool]=\"handTool\"\r\n [rotation]=\"rotation\"\r\n (zoomChange)=\"onZoomChange($event)\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pagesLoaded)=\"onPagesLoaded($event)\"\r\n (updateFindState)=\"onFindStateChanged($event)\"\r\n (sidebarVisibleChange)=\"onSidebarVisibleChange($event)\"\r\n (updateFindMatchesCount)=\"onUpdateMatchCase($event)\"\r\n></ngx-extended-pdf-viewer>\r\n", styles: [".mrx-pdf-viewer__toolbar{display:flex;padding:var(--spacing-1, 4px);justify-content:space-between;align-items:center;background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3b43571a;font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-style:normal;font-weight:var(--body-extra-sm-font-weight, 400);line-height:var(--body-lg-bold-font-size, 16px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container{min-height:28px!important;min-width:var(--sizing-10);padding:2px;padding-left:var(--spacing-1);padding-right:var(--spacing-2);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-input{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{min-height:var(--sizing-5);padding:calc(var(--spacing-1) / 2) var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option span{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected:before{content:url(\"data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.3336 4.6665L6.00032 11.9998L2.66699 8.66649' stroke='%23000' stroke-width='0.999998' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");right:var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:var(--spacing-1, 4px) var(--spacing-2, 8px)!important;min-height:28px;border:var(--border-width-default, 1px) solid var(--neutral-bg-stroke-default, #BFC5CC);text-align:right;font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon{color:var(--neutral-icon-default)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-20{font-size:20px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-24{font-size:24px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button{position:relative;max-width:36px;max-height:28px;box-sizing:border-box}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:after{content:\"\";position:absolute;left:0;top:0;width:100%;height:100%;border-radius:var(--border-radius-1, 4px);border:1px solid transparent;transition:.2s}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button{background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button:after{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active{background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active:after{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button.icon-search.mrx-pdf-viewer__find-button{position:relative}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar .mrx-input-text.mrx-input-text-lg input{font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-input-text{width:100%}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-input-text .mrx-input-text{box-shadow:0 1px 4px #3a3a3a4d;border-radius:var(--border-radius-1)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-icon-button .mrx-icon-button{max-width:unset;max-height:unset}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar-result{display:flex;padding:6px var(--spacing-2, 8px);justify-content:center;align-items:center;gap:10px;border-radius:var(--sizing-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF);white-space:nowrap}.mrx-pdf-viewer__toolbar--nav{display:flex;align-items:center}.mrx-pdf-viewer__toolbar--nav span{color:var(--neutral-text-tertiary, #71767E)}.mrx-pdf-viewer__toolbar__find-button{position:relative}.mrx-pdf-viewer__findbar{position:absolute;top:47px;left:35px;z-index:100;background:#fff;width:auto;display:flex;padding:var(--spacing-2, 8px);border-radius:var(--sizing-1, 4px);box-shadow:0 1px 4px #3a3a3a4d;max-height:44px;box-sizing:border-box}.mrx-pdf-viewer__findbar:before{position:absolute;content:\"\";background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2012%22%20fill%3D%22none%22%3E%0A%3Cpath%20d%3D%22M24%2012H0L12%200L24%2012Z%22%20fill%3D%22white%22/%3E%0A%3C/svg%3E);background-repeat:no-repeat;top:-12px;left:12px;width:24px;height:12px}.mrx-pdf-viewer__findbar .searchText{position:absolute;top:20px}.mrx-pdf-viewer__findbar ::ng-deep .mrx-input-text.mrx-input-text{max-width:279px;min-width:279px}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar{background-color:var(--neutral-bg-island-default, #F8F9FA);padding:var(--spacing-1, 4px);height:28px!important;box-sizing:border-box;width:100%}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton{margin-top:0;margin-bottom:0;width:var(--sizing-6, 24px);max-width:var(--sizing-6, 24px);height:20px;padding:0;font-family:mrx-icon-font!important;color:var(--neutral-icon-default, #33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;border-radius:var(--sizing-1, 4px);outline:none;border:1px solid transparent}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:focus{border:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:hover{background:var(--brand-bg-tertiary-hover, #edf5ff)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton.toggled{border:1px solid var(--brand-bg-primary-default, #2A6AB8);background:var(--brand-bg-secondary-default, #EDF5FF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton svg{display:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewThumbnail:after{content:\"\\e968\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewOutline:after{content:\"\\ea1b\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewLayers:after{content:\"\\e935\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-content #sidebarContent{top:28px!important;background-color:var(--neutral-bg-island-default, #F8F9FA)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar{width:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView{padding:var(--spacing-3, 16px) var(--sizing-10, 40px);width:calc(100% - var(--sizing-20, 80px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail{margin:0;border:var(--spacing-1) solid rgba(0,0,0,0);border-radius:0}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail.selected{border:var(--spacing-1, 4px) solid var(--brand-bg-secondary-selected, #BED6F1)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView{padding:var(--spacing-3, 16px);width:calc(100% - var(--spacing-6, 64px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:hover{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a{color:var(--neutral-text-primary, #262626);font-size:var(--body-sm-font-size, 12px);line-height:var(--body-lg-bold-font-size, 16px);outline:none;border:none;padding:calc(var(--spacing-1, 4px) / 2) var(--spacing-1, 4px);min-width:calc(100% - var(--sizing-3, 12px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a:focus{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem.selected>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem.selected>a{border-radius:var(--spacing-1, 4px);border:1px solid var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem input[type=checkbox]:checked,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem input[type=checkbox]:checked{accent-color:var(--brand-bg-primary-default, #2A6AB8)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler{font-family:mrx-icon-font!important;color:var(--neutral-icon-default, 33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;cursor:pointer}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler:before{content:\"\\e926\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler.treeItemsHidden:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler.treeItemsHidden:before{content:\"\\e925\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar{width:var(--sizing-2, 8px);height:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer.grab-to-pan-grab{cursor:default!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .pdfViewer .page{border:none;box-shadow:0 1px 4px #3b43571a;margin-bottom:var(--spacing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight{background-color:var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight.selected{background-color:var(--system-text-positive, #004A1A)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer ::selection{background:var(--brand-bg-secondary-hover, #bed6f1)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .dialogButton{color:var(--neutral-text-primary, #262626);font-size:var(--body-md-font-size, 14px);line-height:20px;background-color:var(--brand-bg-tertiary-default, #FFF);border:var(--brand-bg-tertiary-default, #FFF)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog{box-shadow:0 1px 4px #3a3a3a4d;border:none;padding:var(--spacing-3, 16px);background:var(--brand-bg-tertiary-default, #FFF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog::backdrop{background:var(--neutral-bg-modal, rgba(38, 38, 38, .25))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress{border-radius:var(--sizing-1, 4px);width:120px;height:var(--sizing-1, 4px);vertical-align:middle}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-bar{background-color:var(--neutral-bg-island-default, #F8F9FA);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-value{background-color:var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "delayFirstView", "showTextEditor", "showStampEditor", "showDrawEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "useBrowserLocale", "forceUsingLegacyES5", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindCurrentPageOnly", "showFindPageRange", "showFindEntireWord", "showFindEntirePhrase", "showFindMatchDiacritics", "showFindFuzzySearch", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showZoomButtons", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "handTool", "showHandToolButton", "showScrollingButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }, { kind: "component", type: i4.IconButtonComponent, selector: "mrx-icon-button", inputs: ["size", "state", "type", "iconClass", "disabled", "tooltip", "tooltipPosition", "tooltipMaxWidth", "isActive", "customClasses"], outputs: ["mrxClick"] }, { kind: "component", type: i5.InputSelectComponent, selector: "mrx-input-select", inputs: ["fields", "size", "selected", "bindValue", "bindLabel", "customClasses", "wrapperCustomClasses", "multiple", "loading", "addTag", "clearable", "items", "groupBy", "emptyValue", "virtualScroll", "trackByFn", "displayValue", "disabledFromDisplay", "maxLength", "customSearchFn", "isBottomLabel", "search", "required", "disabled", "readonly", "showEmptyFields", "placeholder", "searchable", "loadLabel", "notFoundText", "closeOnSelect", "multiCollapseCount", "dropdownPosition", "invalid", "invalidMessage", "checkInvalid", "label", "labelRequiredHidden", "labelExtraClass", "tooltip", "tooltipHidden", "tooltipVisible", "maxSelectedItems"], outputs: ["changed", "modelChange", "searched"] }, { kind: "component", type: i6.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "decimals", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["modelChange"] }, { kind: "component", type: i7.InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "invalid", "invalidMessage", "checkInvalid", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "modelChange"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
240
266
  trigger('openClose', [
241
267
  state('open', style({ height: '*', padding: '*', 'margin-bottom': '8px' })),
242
268
  state('closed', style({ height: 0, padding: 0, 'margin-bottom': 0 })),
@@ -255,7 +281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
255
281
  transition('closed => open', [animate('0.5s ease')]),
256
282
  ]),
257
283
  ], providers: [TooltipService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #customToolbar>\r\n <div class=\"mrx-pdf-viewer__toolbar\" id=\"toolbarViewer\">\r\n <div class=\"d-flex g-2\">\r\n <div class=\"d-flex g-1\">\r\n @if (showSidebarButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-burger'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSidebarViewClick()\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': sidebarVisible}\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C/\u0441\u043A\u0440\u044B\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showFindbarButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-search'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSearchClick()\"\r\n [customClasses]=\"'py-1 px-2 mrx-pdf-viewer__find-button'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': isSearchPanelVisible}\"\r\n [tooltip]=\"'\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n </div>\r\n\r\n @if (isSearchPanelVisible) {\r\n <div class=\"mrx-pdf-viewer__findbar g-1\" #findMenu>\r\n <mrx-input-text\r\n [customClasses]=\"findState === 1 ? 'mrx-input-error' :''+'searchText'\"\r\n placeholder=\"\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435...\"\r\n [ngModel]=\"searchQuery\"\r\n (ngModelChange)=\"onSearch($event)\">\r\n </mrx-input-text>\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findPrevious()\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findNext()\"\r\n ></mrx-icon-button>\r\n </div>\r\n @if (findState === 0 || findState === 2) {\r\n <div class=\"mrx-pdf-viewer__findbar-result\">\r\n {{ currentFind }} \u0438\u0437 {{ totalFound }} \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439\r\n </div>\r\n }\r\n @if (findState === 1) {\r\n <div class=\"color-negative d-flex align-items-center nowrap\">\u0424\u0440\u0430\u0437\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430</div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"mrx-pdf-viewer__toolbar--nav\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0435\u0440\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPageChange(1)\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPageChange(page - 1 || 1)\"\r\n ></mrx-icon-button>\r\n <mrx-input-number\r\n [size]=\"'small'\"\r\n [customClasses]=\"'wpx-56'\"\r\n [ngModel]=\"page\"\r\n [numberType]=\"'int'\"\r\n [minValue]=\"1\"\r\n [maxValue]=\"pageCount\"\r\n [isAutoCorrectingValue]=\"true\"\r\n (ngModelChange)=\"onPageChange($event)\"\r\n ></mrx-input-number>\r\n <span class=\"mx-1\">\u0438\u0437 {{ pageCount }}</span>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onNextPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onLastPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(false)\"\r\n [iconClass]=\"'icon-minus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(true)\"\r\n [iconClass]=\"'icon-plus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n <mrx-input-select\r\n [size]=\"'medium'\"\r\n [customClasses]=\"'wpx-156'\"\r\n [items]=\"zoomOptions\"\r\n (ngModelChange)=\"onZoomLevelSelect($event)\"\r\n [ngModel]=\"selectedZoom\"\r\n [clearable]=\"false\">\r\n </mrx-input-select>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n @if (showHandToolButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-fc-text'\"\r\n [size]=\"'medium'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': !handTool}\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onHandToolClick()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showRotateButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-reload'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0435'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showRotateButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-return'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(-1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u0440\u043E\u0442\u0438\u0432 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0438'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showExpandButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-arrow-expand'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onExpandModeClick()\"\r\n [tooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430 \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showPrintButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-print'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u041F\u0435\u0447\u0430\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onPrintClick()\"\r\n ></mrx-icon-button>\r\n }\r\n @if (showDownloadButton) {\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-download'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [tooltip]=\"'\u0421\u043A\u0430\u0447\u0430\u0442\u044C'\"\r\n [tooltipPosition]=\"'bottom-start'\"\r\n (mrxClick)=\"onDownloadClick()\"\r\n ></mrx-icon-button>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ngx-extended-pdf-viewer\r\n #pdfViewer\r\n class=\"mrx-pdf-viewer\"\r\n [src]=\"src\"\r\n [page]=\"page\"\r\n [sidebarVisible]=\"showSidebarButton && sidebarVisible\"\r\n [customToolbar]=\"customToolbar\"\r\n [showSidebarButton]=\"true\"\r\n [showRotateButton]=\"showRotateButton\"\r\n [showDownloadButton]=\"showDownloadButton\"\r\n [ignoreKeys]=\"ignoreKeys\"\r\n [zoom]=\"selectedZoom.value\"\r\n [textLayer]=\"true\"\r\n [handTool]=\"handTool\"\r\n [rotation]=\"rotation\"\r\n (zoomChange)=\"onZoomChange($event)\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pagesLoaded)=\"onPagesLoaded($event)\"\r\n (updateFindState)=\"onFindStateChanged($event)\"\r\n (sidebarVisibleChange)=\"onSidebarVisibleChange($event)\"\r\n (updateFindMatchesCount)=\"onUpdateMatchCase($event)\"\r\n></ngx-extended-pdf-viewer>\r\n", styles: [".mrx-pdf-viewer__toolbar{display:flex;padding:var(--spacing-1, 4px);justify-content:space-between;align-items:center;background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3b43571a;font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-style:normal;font-weight:var(--body-extra-sm-font-weight, 400);line-height:var(--body-lg-bold-font-size, 16px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container{min-height:28px!important;min-width:var(--sizing-10);padding:2px;padding-left:var(--spacing-1);padding-right:var(--spacing-2);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-input{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{min-height:var(--sizing-5);padding:calc(var(--spacing-1) / 2) var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option span{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected:before{content:url(\"data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.3336 4.6665L6.00032 11.9998L2.66699 8.66649' stroke='%23000' stroke-width='0.999998' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");right:var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:var(--spacing-1, 4px) var(--spacing-2, 8px)!important;min-height:28px;border:var(--border-width-default, 1px) solid var(--neutral-bg-stroke-default, #BFC5CC);text-align:right;font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon{color:var(--neutral-icon-default)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-20{font-size:20px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-24{font-size:24px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button{position:relative;max-width:36px;max-height:28px;box-sizing:border-box}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:after{content:\"\";position:absolute;left:0;top:0;width:100%;height:100%;border-radius:var(--border-radius-1, 4px);border:1px solid transparent;transition:.2s}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button{background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button:after{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active{background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active:after{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button.icon-search.mrx-pdf-viewer__find-button{position:relative}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar .mrx-input-text.mrx-input-text-lg input{font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-input-text{width:100%}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-input-text .mrx-input-text{box-shadow:0 1px 4px #3a3a3a4d;border-radius:var(--border-radius-1)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar mrx-icon-button .mrx-icon-button{max-width:unset;max-height:unset}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar-result{display:flex;padding:6px var(--spacing-2, 8px);justify-content:center;align-items:center;gap:10px;border-radius:var(--sizing-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF);white-space:nowrap}.mrx-pdf-viewer__toolbar--nav{display:flex;align-items:center}.mrx-pdf-viewer__toolbar--nav span{color:var(--neutral-text-tertiary, #71767E)}.mrx-pdf-viewer__toolbar__find-button{position:relative}.mrx-pdf-viewer__findbar{position:absolute;top:47px;left:35px;z-index:100;background:#fff;width:auto;display:flex;padding:var(--spacing-2, 8px);border-radius:var(--sizing-1, 4px);box-shadow:0 1px 4px #3a3a3a4d;max-height:44px;box-sizing:border-box}.mrx-pdf-viewer__findbar:before{position:absolute;content:\"\";background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2012%22%20fill%3D%22none%22%3E%0A%3Cpath%20d%3D%22M24%2012H0L12%200L24%2012Z%22%20fill%3D%22white%22/%3E%0A%3C/svg%3E);background-repeat:no-repeat;top:-12px;left:12px;width:24px;height:12px}.mrx-pdf-viewer__findbar .searchText{position:absolute;top:20px}.mrx-pdf-viewer__findbar ::ng-deep .mrx-input-text.mrx-input-text{max-width:279px;min-width:279px}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar{background-color:var(--neutral-bg-island-default, #F8F9FA);padding:var(--spacing-1, 4px);height:28px!important;box-sizing:border-box;width:100%}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton{margin-top:0;margin-bottom:0;width:var(--sizing-6, 24px);max-width:var(--sizing-6, 24px);height:20px;padding:0;font-family:mrx-icon-font!important;color:var(--neutral-icon-default, #33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;border-radius:var(--sizing-1, 4px);outline:none;border:1px solid transparent}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:focus{border:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:hover{background:var(--brand-bg-tertiary-hover, #edf5ff)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton.toggled{border:1px solid var(--brand-bg-primary-default, #2A6AB8);background:var(--brand-bg-secondary-default, #EDF5FF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton svg{display:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewThumbnail:after{content:\"\\e968\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewOutline:after{content:\"\\ea1b\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewLayers:after{content:\"\\e935\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-content #sidebarContent{top:28px!important;background-color:var(--neutral-bg-island-default, #F8F9FA)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar{width:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView{padding:var(--spacing-3, 16px) var(--sizing-10, 40px);width:calc(100% - var(--sizing-20, 80px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail{margin:0;border:var(--spacing-1) solid rgba(0,0,0,0);border-radius:0}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail.selected{border:var(--spacing-1, 4px) solid var(--brand-bg-secondary-selected, #BED6F1)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView{padding:var(--spacing-3, 16px);width:calc(100% - var(--spacing-6, 64px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:hover{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a{color:var(--neutral-text-primary, #262626);font-size:var(--body-sm-font-size, 12px);line-height:var(--body-lg-bold-font-size, 16px);outline:none;border:none;padding:calc(var(--spacing-1, 4px) / 2) var(--spacing-1, 4px);min-width:calc(100% - var(--sizing-3, 12px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a:focus{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem.selected>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem.selected>a{border-radius:var(--spacing-1, 4px);border:1px solid var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem input[type=checkbox]:checked,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem input[type=checkbox]:checked{accent-color:var(--brand-bg-primary-default, #2A6AB8)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler{font-family:mrx-icon-font!important;color:var(--neutral-icon-default, 33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;cursor:pointer}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler:before{content:\"\\e926\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler.treeItemsHidden:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler.treeItemsHidden:before{content:\"\\e925\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar{width:var(--sizing-2, 8px);height:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer.grab-to-pan-grab{cursor:default!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .pdfViewer .page{border:none;box-shadow:0 1px 4px #3b43571a;margin-bottom:var(--spacing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight{background-color:var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight.selected{background-color:var(--system-text-positive, #004A1A)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer ::selection{background:var(--brand-bg-secondary-hover, #bed6f1)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .dialogButton{color:var(--neutral-text-primary, #262626);font-size:var(--body-md-font-size, 14px);line-height:20px;background-color:var(--brand-bg-tertiary-default, #FFF);border:var(--brand-bg-tertiary-default, #FFF)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog{box-shadow:0 1px 4px #3a3a3a4d;border:none;padding:var(--spacing-3, 16px);background:var(--brand-bg-tertiary-default, #FFF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog::backdrop{background:var(--neutral-bg-modal, rgba(38, 38, 38, .25))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress{border-radius:var(--sizing-1, 4px);width:120px;height:var(--sizing-1, 4px);vertical-align:middle}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-bar{background-color:var(--neutral-bg-island-default, #F8F9FA);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-value{background-color:var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}\n"] }]
258
- }], ctorParameters: () => [{ type: i1.NgxExtendedPdfViewerService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { showSidebarButton: [{
284
+ }], ctorParameters: () => [{ type: i1.NgxExtendedPdfViewerService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i2.HttpClient }], propDecorators: { showSidebarButton: [{
259
285
  type: Input
260
286
  }], showHandToolButton: [{
261
287
  type: Input
@@ -287,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
287
313
  type: HostListener,
288
314
  args: ['document:keydown', ['$event']]
289
315
  }] } });
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFLTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCw2QkFBNkIsRUFHOUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7O0FBc0JqQyxNQUFNLE9BQU8sa0JBQWtCO0lBaUVuQjtJQUNBO0lBQ0E7SUFsRUgsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixTQUFTLEdBQWMsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUN6QyxVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFDeEIsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUM3QixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDZCxZQUFZLEdBQThDLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFDLENBQUM7SUFDbEcsV0FBVyxHQUFHO1FB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RyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFFb0MsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyw2QkFBNkI7Z0JBQ2pCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFHckIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbHRpcC9zZXJ2aWNlcy90b29sdGlwLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEZpbmRSZXN1bHRNYXRjaGVzQ291bnQsXHJcbiAgRmluZFN0YXRlLFxyXG4gIE5neEV4dGVuZGVkUGRmVmlld2VyQ29tcG9uZW50LFxyXG4gIE5neEV4dGVuZGVkUGRmVmlld2VyU2VydmljZSxcclxuICBQYWdlc0xvYWRlZEV2ZW50XHJcbn0gZnJvbSAnbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXInO1xyXG5cclxudHlwZSBSb3RhdGlvblR5cGUgPSAwIHwgOTAgfCAxODAgfCAyNzA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1wZGYtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGRmLXZpZXdlci5jb21wb25lbnQubGVzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ29wZW5DbG9zZScsIFtcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJ29wZW4nLFxyXG4gICAgICAgIHN0eWxlKHtoZWlnaHQ6ICcqJywgcGFkZGluZzogJyonLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnfSlcclxuICAgICAgKSxcclxuICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHtoZWlnaHQ6IDAsIHBhZGRpbmc6IDAsICdtYXJnaW4tYm90dG9tJzogMH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVG9vbHRpcFNlcnZpY2VdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGRmVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIHB1YmxpYyBzZWFyY2hRdWVyeSA9ICcnO1xyXG4gIHB1YmxpYyBmaW5kU3RhdGU6IEZpbmRTdGF0ZSA9IEZpbmRTdGF0ZS5QRU5ESU5HO1xyXG4gIHB1YmxpYyB0b3RhbEZvdW5kOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBjdXJyZW50RmluZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcGFnZSA9IDE7XHJcbiAgcHVibGljIGlzU2VhcmNoUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgcHVibGljIHNpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgcGFnZUNvdW50ID0gMTtcclxuICBwdWJsaWMgc2VsZWN0ZWRab29tOiB7IHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfSA9IHt2YWx1ZTogJ2F1dG8nLCBsYWJlbDogJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4J307XHJcbiAgcHVibGljIHpvb21PcHRpb25zID0gW1xyXG4gICAge3ZhbHVlOiAnYXV0bycsIGxhYmVsOiAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LgnfSxcclxuICAgIHt2YWx1ZTogJ3BhZ2UtYWN0dWFsJywgbGFiZWw6ICfQoNC10LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCd9LFxyXG4gICAge3ZhbHVlOiAncGdlLWZpdCcsIGxhYmVsOiAn0J/QviDRgNCw0LfQvNC10YDRgyDRgdGC0YDQsNC90LjRhtGLJ30sXHJcbiAgICB7dmFsdWU6ICdwYWdlLXdpZHRoJywgbGFiZWw6ICfQn9C+INGI0LjRgNC40L3QtSDRgdGC0YDQsNC90LjRhtGLJ30sXHJcbiAgICB7dmFsdWU6IDUwLCBsYWJlbDogJzUwJSd9LFxyXG4gICAge3ZhbHVlOiAxMDAsIGxhYmVsOiAnMTAwJSd9LFxyXG4gICAge3ZhbHVlOiAxMjUsIGxhYmVsOiAnMTI1JSd9LFxyXG4gICAge3ZhbHVlOiAxNTAsIGxhYmVsOiAnMTUwJSd9LFxyXG4gICAge3ZhbHVlOiAyMDAsIGxhYmVsOiAnMjAwJSd9LFxyXG4gICAge3ZhbHVlOiAzMDAsIGxhYmVsOiAnMzAwJSd9LFxyXG4gICAge3ZhbHVlOiA0MDAsIGxhYmVsOiAnNDAwJSd9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyByb3RhdGlvbjogUm90YXRpb25UeXBlID0gMDtcclxuXHJcbiAgQElucHV0KCkgc2hvd1NpZGViYXJCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dIYW5kVG9vbEJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhhbmRUb29sID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RmluZGJhckJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1JvdGF0ZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1ByaW50QnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RG93bmxvYWRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dFeHBhbmRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRab29tOiBudW1iZXIgfCAnYXV0bycgfCAncGFnZS1hY3R1YWwnIHwgJ3BnZS1maXQnIHwgJ3BhZ2Utd2lkdGgnID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZU5hbWUgPSAnJztcclxuICBASW5wdXQoKSBzcmMgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZChOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudCkgcGRmVmlld2VyITogTmd4RXh0ZW5kZWRQZGZWaWV3ZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZmluZE1lbnUnKSBmaW5kTWVudTogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkgJiYgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdwJyAmJiAhdGhpcy5zaG93UHJpbnRCdXR0b24pIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpZ25vcmVLZXlzKCk6c3RyaW5nW10ge1xyXG4gICAgY29uc3QgaWdub3JlZEtleXMgPSBbXTtcclxuICAgIFxyXG4gICAgaWYoIXRoaXMuc2hvd1JvdGF0ZUJ1dHRvbikge1xyXG4gICAgICBpZ25vcmVkS2V5cy5wdXNoKCdSJywgJ1NoaWZ0K1InKTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnNob3dEb3dubG9hZEJ1dHRvbikge1xyXG4gICAgICBpZ25vcmVkS2V5cy5wdXNoKCdDVFJMK1MnKTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnNob3dTaWRlYmFyQnV0dG9uKSB7XHJcbiAgICAgIGlnbm9yZWRLZXlzLnB1c2goJ0Y0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlnbm9yZWRLZXlzO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wZGZWaWV3ZXJTZXJ2aWNlOiBOZ3hFeHRlbmRlZFBkZlZpZXdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2RlZmF1bHRab29tJ10gJiYgY2hhbmdlc1snZGVmYXVsdFpvb20nXS5jdXJyZW50VmFsdWUgIT0gY2hhbmdlc1snZGVmYXVsdFpvb20nXS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5pdFpvb20oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRab29tKCkge1xyXG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IHRoaXMuem9vbU9wdGlvbnMuZmluZCh4ID0+IHgudmFsdWUgPT09IHRoaXMuZGVmYXVsdFpvb20pO1xyXG5cclxuICAgIGlmIChleGlzdGluZ1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab29tID0gey4uLmV4aXN0aW5nVmFsdWV9O1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7dmFsdWU6IHRoaXMuZGVmYXVsdFpvb20sIGxhYmVsOiBgJHt0aGlzLmRlZmF1bHRab29tfSVgfTtcclxuICB9XHJcblxyXG4gIGluaXRTZWFyY2goKSB7XHJcbiAgICBpZiAodGhpcy5zaG93RmluZGJhckJ1dHRvbikge1xyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAnZicgJiYgZXZlbnQuY3RybEtleSkge1xyXG4gICAgICAgICAgdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0U2VhcmNoKCk7XHJcbiAgICB0aGlzLmluaXRab29tKCk7XHJcblxyXG4gICAgdGhpcy5fcmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlKSB7XHJcbiAgICAgICAgY29uc3QgaXNJbk1lbnUgPSB0aGlzLmZpbmRNZW51Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcclxuICAgICAgICAgIHx8IChldmVudC50YXJnZXQgYXMgYW55KS5pZCA9PT0gJ2ZpbmROZXh0J1xyXG4gICAgICAgICAgfHwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmlkID09PSAnZmluZFByZXZpb3VzJztcclxuXHJcbiAgICAgICAgY29uc3QgaXNGaW5kQnV0dG9uID0gKGV2ZW50LnRhcmdldCBhcyBhbnkpLmNsYXNzTGlzdC5jb250YWlucygnbXJ4LXBkZi12aWV3ZXJfX2ZpbmQtYnV0dG9uJyk7XHJcblxyXG4gICAgICAgIGlmICghaXNJbk1lbnUgJiYgIWlzRmluZEJ1dHRvbikge1xyXG4gICAgICAgICAgdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucGFnZSA9ICRldmVudCB8fCAxO1xyXG4gIH1cclxuXHJcbiAgb25OZXh0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2UgPCB0aGlzLnBhZ2VDb3VudCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSB0aGlzLnBhZ2UgKyAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25MYXN0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSA9IHRoaXMucGFnZUNvdW50O1xyXG4gIH1cclxuXHJcbiAgb25QYWdlc0xvYWRlZCgkZXZlbnQ6IFBhZ2VzTG9hZGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHZpZXdPdXRsaW5lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3ZpZXdPdXRsaW5lJyk7XHJcbiAgICBjb25zdCB2aWV3VGh1bWJuYWlsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3ZpZXdUaHVtYm5haWwnKTtcclxuXHJcbiAgICB0aGlzLnBhZ2VDb3VudCA9ICRldmVudC5wYWdlc0NvdW50O1xyXG5cclxuICAgIGlmICh2aWV3T3V0bGluZSkge1xyXG4gICAgICAodmlld091dGxpbmUgYXMgYW55KS50aXRsZSA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHZpZXdUaHVtYm5haWwsICdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgIGlmICh2aWV3VGh1bWJuYWlsKSB7XHJcblxyXG4gICAgICAodmlld1RodW1ibmFpbCBhcyBhbnkpLnRpdGxlID0gJ3Rlc3QnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgem9vbUNsaWNrKGluY3JlYXNlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogMTAwLCBsYWJlbDogJzEwMCUnfTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gaW5jcmVhc2UgPyB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSArPSAyMCA6IHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlIC09IDIwO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0ge3ZhbHVlOiBuZXdWYWx1ZSwgbGFiZWw6IGAke25ld1ZhbHVlfSVgfTtcclxuICB9XHJcblxyXG4gIG9uWm9vbUxldmVsU2VsZWN0KGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSBpdGVtO1xyXG4gIH1cclxuXHJcbiAgb25ab29tQ2hhbmdlKCRldmVudDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBjb25zdCBleGlzdGluZ09wdGlvbiA9IHRoaXMuem9vbU9wdGlvbnMuZmluZCh4ID0+IHgudmFsdWUgPT09ICRldmVudCk7XHJcblxyXG4gICAgaWYgKGV4aXN0aW5nT3B0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab29tID0gey4uLmV4aXN0aW5nT3B0aW9ufTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpeGVkVmFsdWUgPSBNYXRoLnJvdW5kKE51bWJlcigkZXZlbnQpKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogZml4ZWRWYWx1ZSwgbGFiZWw6IGAke2ZpeGVkVmFsdWV9JWB9O1xyXG4gIH1cclxuXHJcbiAgb25Sb3RhdGUoZGlyZWN0aW9uOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRhID0gdGhpcy5yb3RhdGlvbjtcclxuXHJcbiAgICBpZiAoZGlyZWN0aW9uIDwgMCkge1xyXG4gICAgICBkYXRhIC09IDkwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YSArPSA5MDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF0YSA+PSAzNjApIHtcclxuICAgICAgdGhpcy5yb3RhdGlvbiA9IGRhdGEgLSAzNjAgYXMgUm90YXRpb25UeXBlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEgPCAwKSB7XHJcbiAgICAgIHRoaXMucm90YXRpb24gPSAzNjAgKyBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm90YXRpb24gPSBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIG9uUHJpbnRDbGljaygpIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UucHJpbnQoKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgcHJpbnREaWFsb2cgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaWFsb2cjcHJpbnRTZXJ2aWNlRGlhbG9nJyk7XHJcbiAgICAgIGNvbnN0IHByb2dyZXNzVGV4dCA9IHByaW50RGlhbG9nPy5xdWVyeVNlbGVjdG9yKCcucm93IHNwYW4nKTtcclxuICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcHJpbnREaWFsb2c/LnF1ZXJ5U2VsZWN0b3IoJyNwcmludENhbmNlbCBzcGFuJyk7XHJcblxyXG4gICAgICBpZiAocHJvZ3Jlc3NUZXh0KSB7XHJcbiAgICAgICAgcHJvZ3Jlc3NUZXh0LnRleHRDb250ZW50ID0gJ9Cf0L7QtNCz0L7RgtC+0LLQutCwINC00L7QutGD0LzQtdC90YLQsCDQuiDQv9C10YfQsNGC0LguLi4nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY2FuY2VsQnV0dG9uKSB7XHJcbiAgICAgICAgY2FuY2VsQnV0dG9uLnRleHRDb250ZW50ID0gJ9Ce0YLQvNC10L3QsCc7XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25Eb3dubG9hZENsaWNrKCkge1xyXG4gICAgY29uc3QgYmxvYjogQmxvYiA9IGF3YWl0IHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZ2V0Q3VycmVudERvY3VtZW50QXNCbG9iKCk7XHJcbiAgICBjb25zdCBvYmplY3RVcmw6IHN0cmluZyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBjb25zdCBhOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuXHJcbiAgICBhLmhyZWYgPSBvYmplY3RVcmw7XHJcbiAgICBhLmRvd25sb2FkID0gdGhpcy5kb3dubG9hZEZpbGVOYW1lIHx8IHRoaXMuc3JjO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgIGEuY2xpY2soKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xyXG4gIH1cclxuXHJcbiAgb25TaWRlYmFyVmlld0NsaWNrKCkge1xyXG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9ICF0aGlzLnNpZGViYXJWaXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmRNb2RlQ2xpY2soKSB7XHJcbiAgICBjb25zdCBwZGZWaWV3ZXJBcHBsaWNhdGlvbiA9ICh3aW5kb3cgYXMgYW55KS5QREZWaWV3ZXJBcHBsaWNhdGlvbjtcclxuXHJcbiAgICBpZiAocGRmVmlld2VyQXBwbGljYXRpb24/LnBkZlZpZXdlcikge1xyXG4gICAgICBwZGZWaWV3ZXJBcHBsaWNhdGlvbi5yZXF1ZXN0UHJlc2VudGF0aW9uTW9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDbGljaygpIHtcclxuICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSAhdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKCRldmVudDogc3RyaW5nKSB7XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgkZXZlbnQsIHtoaWdobGlnaHRBbGw6IHRydWV9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGRmVmlld2VyU2VydmljZS5maW5kKCcnLCB7fSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTmV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZE5leHQoKTtcclxuICB9XHJcblxyXG4gIGZpbmRQcmV2aW91cygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZFByZXZpb3VzKCk7XHJcbiAgfVxyXG5cclxuICBvblVwZGF0ZU1hdGNoQ2FzZSgkZXZlbnQ6IEZpbmRSZXN1bHRNYXRjaGVzQ291bnQpIHtcclxuICAgIHRoaXMudG90YWxGb3VuZCA9ICRldmVudC50b3RhbDtcclxuICAgIHRoaXMuY3VycmVudEZpbmQgPSAkZXZlbnQuY3VycmVudDtcclxuICB9XHJcblxyXG4gIG9uRmluZFN0YXRlQ2hhbmdlZCgkZXZlbnQ6IEZpbmRTdGF0ZSkge1xyXG4gICAgdGhpcy5maW5kU3RhdGUgPSAkZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvblNpZGViYXJWaXNpYmxlQ2hhbmdlKCRldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9ICRldmVudDtcclxuICB9XHJcblxyXG4gIG9uSGFuZFRvb2xDbGljaygpIHtcclxuICAgIHRoaXMuaGFuZFRvb2wgPSAhdGhpcy5oYW5kVG9vbDtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNjdXN0b21Ub29sYmFyPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fdG9vbGJhclwiIGlkPVwidG9vbGJhclZpZXdlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnLTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnLTFcIj5cclxuICAgICAgICBAaWYgKHNob3dTaWRlYmFyQnV0dG9uKSB7XHJcbiAgICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYnVyZ2VyJ1wiXHJcbiAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgIChtcnhDbGljayk9XCJvblNpZGViYXJWaWV3Q2xpY2soKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbXJ4LWljb24tYnV0dG9uLS10b2dnbGVkJzogc2lkZWJhclZpc2libGV9XCJcclxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QvtC60LDQt9Cw0YLRjC/RgdC60YDRi9GC0Ywg0LHQvtC60L7QstGD0Y4g0L/QsNC90LXQu9GMJ1wiXHJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKHNob3dGaW5kYmFyQnV0dG9uKSB7XHJcbiAgICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tc2VhcmNoJ1wiXHJcbiAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgIChtcnhDbGljayk9XCJvblNlYXJjaENsaWNrKClcIlxyXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yIG1yeC1wZGYtdmlld2VyX19maW5kLWJ1dHRvbidcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J21yeC1pY29uLWJ1dHRvbi0tdG9nZ2xlZCc6IGlzU2VhcmNoUGFuZWxWaXNpYmxlfVwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIifQndCw0LnRgtC4INCyINC00L7QutGD0LzQtdC90YLQtSdcIlxyXG4gICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmIChpc1NlYXJjaFBhbmVsVmlzaWJsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fZmluZGJhciBnLTFcIiAjZmluZE1lbnU+XHJcbiAgICAgICAgICA8bXJ4LWlucHV0LXRleHRcclxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiZmluZFN0YXRlID09PSAxID8gJ21yeC1pbnB1dC1lcnJvcicgOicnKydzZWFyY2hUZXh0J1wiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi0J3QsNC50YLQuCDQsiDQtNC+0LrRg9C80LXQvdGC0LUuLi5cIlxyXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJzZWFyY2hRdWVyeVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoKCRldmVudClcIj5cclxuICAgICAgICAgIDwvbXJ4LWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWNoZXZyb24tbGVmdCdcIlxyXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncC0xJ1wiXHJcbiAgICAgICAgICAgICAgKG1yeENsaWNrKT1cImZpbmRQcmV2aW91cygpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1jaGV2cm9uLXJpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidwLTEnXCJcclxuICAgICAgICAgICAgICAobXJ4Q2xpY2spPVwiZmluZE5leHQoKVwiXHJcbiAgICAgICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgQGlmIChmaW5kU3RhdGUgPT09IDAgfHwgZmluZFN0YXRlID09PSAyKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fZmluZGJhci1yZXN1bHRcIj5cclxuICAgICAgICAgICAgICB7eyBjdXJyZW50RmluZCB9fSDQuNC3IHt7IHRvdGFsRm91bmQgfX0g0YHQvtCy0L/QsNC00LXQvdC40LlcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKGZpbmRTdGF0ZSA9PT0gMSkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItbmVnYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBub3dyYXBcIj7QpNGA0LDQt9CwINC90LUg0L3QsNC50LTQtdC90LA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX190b29sYmFyLS1uYXZcIj5cclxuICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWluLXRoZS1lbmQtbGVmdCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QtdGA0LLQsNGPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUGFnZUNoYW5nZSgxKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9GA0LXQtNGL0LTRg9GJ0LDRjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblBhZ2VDaGFuZ2UocGFnZSAtIDEgfHwgMSlcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgICA8bXJ4LWlucHV0LW51bWJlclxyXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCInd3B4LTU2J1wiXHJcbiAgICAgICAgICBbbmdNb2RlbF09XCJwYWdlXCJcclxuICAgICAgICAgIFtudW1iZXJUeXBlXT1cIidpbnQnXCJcclxuICAgICAgICAgIFttaW5WYWx1ZV09XCIxXCJcclxuICAgICAgICAgIFttYXhWYWx1ZV09XCJwYWdlQ291bnRcIlxyXG4gICAgICAgICAgW2lzQXV0b0NvcnJlY3RpbmdWYWx1ZV09XCJ0cnVlXCJcclxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9tcngtaW5wdXQtbnVtYmVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMVwiPtC40Lcge3sgcGFnZUNvdW50IH19PC9zcGFuPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1yaWdodCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25OZXh0UGFnZSgpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQodC70LXQtNGD0Y7RidCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24taW4tdGhlLWVuZC1yaWdodCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25MYXN0UGFnZSgpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0YHQu9C10LTQvdGP0Y8g0YHRgtGA0LDQvdC40YbQsCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgIChtcnhDbGljayk9XCJ6b29tQ2xpY2soZmFsc2UpXCJcclxuICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLW1pbnVzJ1wiXHJcbiAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICBbdG9vbHRpcF09XCIn0KPQvNC10L3RjNGI0LjRgtGMJ1wiXHJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgIChtcnhDbGljayk9XCJ6b29tQ2xpY2sodHJ1ZSlcIlxyXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tcGx1cydcIlxyXG4gICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cj0LLQtdC70LjRh9C40YLRjCdcIlxyXG4gICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDxtcngtaW5wdXQtc2VsZWN0XHJcbiAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIid3cHgtMTU2J1wiXHJcbiAgICAgICAgW2l0ZW1zXT1cInpvb21PcHRpb25zXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblpvb21MZXZlbFNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFpvb21cIlxyXG4gICAgICAgIFtjbGVhcmFibGVdPVwiZmFsc2VcIj5cclxuICAgICAgPC9tcngtaW5wdXQtc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICBAaWYgKHNob3dIYW5kVG9vbEJ1dHRvbikge1xyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tZmMtdGV4dCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydtcngtaWNvbi1idXR0b24tLXRvZ2dsZWQnOiAhaGFuZFRvb2x9XCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uSGFuZFRvb2xDbGljaygpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93Um90YXRlQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1yZWxvYWQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUm90YXRlKDEpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0LLQtdGA0L3Rg9GC0Ywg0L/QviDRh9Cw0YHQvtCy0L7QuSDRgdGC0YDQtdC70LrQtSdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd1JvdGF0ZUJ1dHRvbikge1xyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tcmV0dXJuJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblJvdGF0ZSgtMSlcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0L7QstC10YDQvdGD0YLRjCDQv9GA0L7RgtC40LIg0YfQsNGB0L7QstC+0Lkg0YHRgtGA0LXQu9C60LgnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dFeHBhbmRCdXR0b24pIHtcclxuICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWFycm93LWV4cGFuZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25FeHBhbmRNb2RlQ2xpY2soKVwiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QvtC60LDQt9Cw0YLRjCDQvdCwINCy0LXRgdGMINGN0LrRgNCw0L0nXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dQcmludEJ1dHRvbikge1xyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tcHJpbnQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0LXRh9Cw0YLRjCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25QcmludENsaWNrKClcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dEb3dubG9hZEJ1dHRvbikge1xyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tZG93bmxvYWQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Ch0LrQsNGH0LDRgtGMJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbkRvd25sb2FkQ2xpY2soKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlclxyXG4gICNwZGZWaWV3ZXJcclxuICBjbGFzcz1cIm1yeC1wZGYtdmlld2VyXCJcclxuICBbc3JjXT1cInNyY1wiXHJcbiAgW3BhZ2VdPVwicGFnZVwiXHJcbiAgW3NpZGViYXJWaXNpYmxlXT1cInNob3dTaWRlYmFyQnV0dG9uICYmIHNpZGViYXJWaXNpYmxlXCJcclxuICBbY3VzdG9tVG9vbGJhcl09XCJjdXN0b21Ub29sYmFyXCJcclxuICBbc2hvd1NpZGViYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgW3Nob3dSb3RhdGVCdXR0b25dPVwic2hvd1JvdGF0ZUJ1dHRvblwiXHJcbiAgW3Nob3dEb3dubG9hZEJ1dHRvbl09XCJzaG93RG93bmxvYWRCdXR0b25cIlxyXG4gIFtpZ25vcmVLZXlzXT1cImlnbm9yZUtleXNcIlxyXG4gIFt6b29tXT1cInNlbGVjdGVkWm9vbS52YWx1ZVwiXHJcbiAgW3RleHRMYXllcl09XCJ0cnVlXCJcclxuICBbaGFuZFRvb2xdPVwiaGFuZFRvb2xcIlxyXG4gIFtyb3RhdGlvbl09XCJyb3RhdGlvblwiXHJcbiAgKHpvb21DaGFuZ2UpPVwib25ab29tQ2hhbmdlKCRldmVudClcIlxyXG4gIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAocGFnZXNMb2FkZWQpPVwib25QYWdlc0xvYWRlZCgkZXZlbnQpXCJcclxuICAodXBkYXRlRmluZFN0YXRlKT1cIm9uRmluZFN0YXRlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAoc2lkZWJhclZpc2libGVDaGFuZ2UpPVwib25TaWRlYmFyVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAodXBkYXRlRmluZE1hdGNoZXNDb3VudCk9XCJvblVwZGF0ZU1hdGNoQ2FzZSgkZXZlbnQpXCJcclxuPjwvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXI+XHJcbiJdfQ==
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFLTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCw2QkFBNkIsRUFHOUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztBQXVCakMsTUFBTSxPQUFPLGtCQUFrQjtJQWlFbkI7SUFDQTtJQUNBO0lBQ0E7SUFuRUgsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixTQUFTLEdBQWMsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUN6QyxVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFDeEIsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUM3QixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDZCxZQUFZLEdBQThDLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFDLENBQUM7SUFDbEcsV0FBVyxH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O2dCQUNqQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBR3JCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUb29sdGlwU2VydmljZSB9IGZyb20gJy4uL3Rvb2x0aXAvc2VydmljZXMvdG9vbHRpcC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGaW5kUmVzdWx0TWF0Y2hlc0NvdW50LFxyXG4gIEZpbmRTdGF0ZSxcclxuICBOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudCxcclxuICBOZ3hFeHRlbmRlZFBkZlZpZXdlclNlcnZpY2UsXHJcbiAgUGFnZXNMb2FkZWRFdmVudFxyXG59IGZyb20gJ25neC1leHRlbmRlZC1wZGYtdmlld2VyJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxudHlwZSBSb3RhdGlvblR5cGUgPSAwIHwgOTAgfCAxODAgfCAyNzA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1wZGYtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGRmLXZpZXdlci5jb21wb25lbnQubGVzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ29wZW5DbG9zZScsIFtcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJ29wZW4nLFxyXG4gICAgICAgIHN0eWxlKHtoZWlnaHQ6ICcqJywgcGFkZGluZzogJyonLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnfSlcclxuICAgICAgKSxcclxuICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHtoZWlnaHQ6IDAsIHBhZGRpbmc6IDAsICdtYXJnaW4tYm90dG9tJzogMH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVG9vbHRpcFNlcnZpY2VdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGRmVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIHB1YmxpYyBzZWFyY2hRdWVyeSA9ICcnO1xyXG4gIHB1YmxpYyBmaW5kU3RhdGU6IEZpbmRTdGF0ZSA9IEZpbmRTdGF0ZS5QRU5ESU5HO1xyXG4gIHB1YmxpYyB0b3RhbEZvdW5kOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBjdXJyZW50RmluZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcGFnZSA9IDE7XHJcbiAgcHVibGljIGlzU2VhcmNoUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgcHVibGljIHNpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgcGFnZUNvdW50ID0gMTtcclxuICBwdWJsaWMgc2VsZWN0ZWRab29tOiB7IHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfSA9IHt2YWx1ZTogJ2F1dG8nLCBsYWJlbDogJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4J307XHJcbiAgcHVibGljIHpvb21PcHRpb25zID0gW1xyXG4gICAge3ZhbHVlOiAnYXV0bycsIGxhYmVsOiAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LgnfSxcclxuICAgIHt2YWx1ZTogJ3BhZ2UtYWN0dWFsJywgbGFiZWw6ICfQoNC10LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCd9LFxyXG4gICAge3ZhbHVlOiAncGdlLWZpdCcsIGxhYmVsOiAn0J/QviDRgNCw0LfQvNC10YDRgyDRgdGC0YDQsNC90LjRhtGLJ30sXHJcbiAgICB7dmFsdWU6ICdwYWdlLXdpZHRoJywgbGFiZWw6ICfQn9C+INGI0LjRgNC40L3QtSDRgdGC0YDQsNC90LjRhtGLJ30sXHJcbiAgICB7dmFsdWU6IDUwLCBsYWJlbDogJzUwJSd9LFxyXG4gICAge3ZhbHVlOiAxMDAsIGxhYmVsOiAnMTAwJSd9LFxyXG4gICAge3ZhbHVlOiAxMjUsIGxhYmVsOiAnMTI1JSd9LFxyXG4gICAge3ZhbHVlOiAxNTAsIGxhYmVsOiAnMTUwJSd9LFxyXG4gICAge3ZhbHVlOiAyMDAsIGxhYmVsOiAnMjAwJSd9LFxyXG4gICAge3ZhbHVlOiAzMDAsIGxhYmVsOiAnMzAwJSd9LFxyXG4gICAge3ZhbHVlOiA0MDAsIGxhYmVsOiAnNDAwJSd9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyByb3RhdGlvbjogUm90YXRpb25UeXBlID0gMDtcclxuXHJcbiAgQElucHV0KCkgc2hvd1NpZGViYXJCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dIYW5kVG9vbEJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhhbmRUb29sID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RmluZGJhckJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1JvdGF0ZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1ByaW50QnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RG93bmxvYWRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dFeHBhbmRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRab29tOiBudW1iZXIgfCAnYXV0bycgfCAncGFnZS1hY3R1YWwnIHwgJ3BnZS1maXQnIHwgJ3BhZ2Utd2lkdGgnID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZU5hbWUgPSAnJztcclxuICBASW5wdXQoKSBzcmMgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZChOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudCkgcGRmVmlld2VyITogTmd4RXh0ZW5kZWRQZGZWaWV3ZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZmluZE1lbnUnKSBmaW5kTWVudTogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkgJiYgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdwJyAmJiAhdGhpcy5zaG93UHJpbnRCdXR0b24pIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpZ25vcmVLZXlzKCk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGlnbm9yZWRLZXlzID0gW107XHJcblxyXG4gICAgaWYgKCF0aGlzLnNob3dSb3RhdGVCdXR0b24pIHtcclxuICAgICAgaWdub3JlZEtleXMucHVzaCgnUicsICdTaGlmdCtSJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2hvd0Rvd25sb2FkQnV0dG9uKSB7XHJcbiAgICAgIGlnbm9yZWRLZXlzLnB1c2goJ0NUUkwrUycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNob3dTaWRlYmFyQnV0dG9uKSB7XHJcbiAgICAgIGlnbm9yZWRLZXlzLnB1c2goJ0Y0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlnbm9yZWRLZXlzO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wZGZWaWV3ZXJTZXJ2aWNlOiBOZ3hFeHRlbmRlZFBkZlZpZXdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnRcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydkZWZhdWx0Wm9vbSddICYmIGNoYW5nZXNbJ2RlZmF1bHRab29tJ10uY3VycmVudFZhbHVlICE9IGNoYW5nZXNbJ2RlZmF1bHRab29tJ10ucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICB0aGlzLmluaXRab29tKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0Wm9vbSgpIHtcclxuICAgIGNvbnN0IGV4aXN0aW5nVmFsdWUgPSB0aGlzLnpvb21PcHRpb25zLmZpbmQoeCA9PiB4LnZhbHVlID09PSB0aGlzLmRlZmF1bHRab29tKTtcclxuXHJcbiAgICBpZiAoZXhpc3RpbmdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHsuLi5leGlzdGluZ1ZhbHVlfTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0ge3ZhbHVlOiB0aGlzLmRlZmF1bHRab29tLCBsYWJlbDogYCR7dGhpcy5kZWZhdWx0Wm9vbX0lYH07XHJcbiAgfVxyXG5cclxuICBpbml0U2VhcmNoKCkge1xyXG4gICAgaWYgKHRoaXMuc2hvd0ZpbmRiYXJCdXR0b24pIHtcclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2YnICYmIGV2ZW50LmN0cmxLZXkpIHtcclxuICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFNlYXJjaCgpO1xyXG4gICAgdGhpcy5pbml0Wm9vbSgpO1xyXG5cclxuICAgIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZSkge1xyXG4gICAgICAgIGNvbnN0IGlzSW5NZW51ID0gdGhpcy5maW5kTWVudT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXHJcbiAgICAgICAgICB8fCAoZXZlbnQudGFyZ2V0IGFzIGFueSkuaWQgPT09ICdmaW5kTmV4dCdcclxuICAgICAgICAgIHx8IChldmVudC50YXJnZXQgYXMgYW55KS5pZCA9PT0gJ2ZpbmRQcmV2aW91cyc7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzRmluZEJ1dHRvbiA9IChldmVudC50YXJnZXQgYXMgYW55KS5jbGFzc0xpc3QuY29udGFpbnMoJ21yeC1wZGYtdmlld2VyX19maW5kLWJ1dHRvbicpO1xyXG5cclxuICAgICAgICBpZiAoIWlzSW5NZW51ICYmICFpc0ZpbmRCdXR0b24pIHtcclxuICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBhZ2UgPSAkZXZlbnQgfHwgMTtcclxuICB9XHJcblxyXG4gIG9uTmV4dFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDwgdGhpcy5wYWdlQ291bnQpIHtcclxuICAgICAgdGhpcy5wYWdlID0gdGhpcy5wYWdlICsgMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTGFzdFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UgPSB0aGlzLnBhZ2VDb3VudDtcclxuICB9XHJcblxyXG4gIG9uUGFnZXNMb2FkZWQoJGV2ZW50OiBQYWdlc0xvYWRlZEV2ZW50KSB7XHJcbiAgICBjb25zdCB2aWV3T3V0bGluZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2aWV3T3V0bGluZScpO1xyXG4gICAgY29uc3Qgdmlld1RodW1ibmFpbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2aWV3VGh1bWJuYWlsJyk7XHJcblxyXG4gICAgdGhpcy5wYWdlQ291bnQgPSAkZXZlbnQucGFnZXNDb3VudDtcclxuXHJcbiAgICBpZiAodmlld091dGxpbmUpIHtcclxuICAgICAgKHZpZXdPdXRsaW5lIGFzIGFueSkudGl0bGUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh2aWV3VGh1bWJuYWlsLCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgICBpZiAodmlld1RodW1ibmFpbCkge1xyXG5cclxuICAgICAgKHZpZXdUaHVtYm5haWwgYXMgYW55KS50aXRsZSA9ICd0ZXN0JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHpvb21DbGljayhpbmNyZWFzZTogYm9vbGVhbikge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7dmFsdWU6IDEwMCwgbGFiZWw6ICcxMDAlJ307XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGluY3JlYXNlID8gdGhpcy5zZWxlY3RlZFpvb20udmFsdWUgKz0gMjAgOiB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSAtPSAyMDtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogbmV3VmFsdWUsIGxhYmVsOiBgJHtuZXdWYWx1ZX0lYH07XHJcbiAgfVxyXG5cclxuICBvblpvb21MZXZlbFNlbGVjdChpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0gaXRlbTtcclxuICB9XHJcblxyXG4gIG9uWm9vbUNoYW5nZSgkZXZlbnQ6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgY29uc3QgZXhpc3RpbmdPcHRpb24gPSB0aGlzLnpvb21PcHRpb25zLmZpbmQoeCA9PiB4LnZhbHVlID09PSAkZXZlbnQpO1xyXG5cclxuICAgIGlmIChleGlzdGluZ09wdGlvbikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHsuLi5leGlzdGluZ09wdGlvbn07XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaXhlZFZhbHVlID0gTWF0aC5yb3VuZChOdW1iZXIoJGV2ZW50KSk7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7dmFsdWU6IGZpeGVkVmFsdWUsIGxhYmVsOiBgJHtmaXhlZFZhbHVlfSVgfTtcclxuICB9XHJcblxyXG4gIG9uUm90YXRlKGRpcmVjdGlvbjogbnVtYmVyKSB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMucm90YXRpb247XHJcblxyXG4gICAgaWYgKGRpcmVjdGlvbiA8IDApIHtcclxuICAgICAgZGF0YSAtPSA5MDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGEgKz0gOTA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEgPj0gMzYwKSB7XHJcbiAgICAgIHRoaXMucm90YXRpb24gPSBkYXRhIC0gMzYwIGFzIFJvdGF0aW9uVHlwZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhIDwgMCkge1xyXG4gICAgICB0aGlzLnJvdGF0aW9uID0gMzYwICsgZGF0YSBhcyBSb3RhdGlvblR5cGU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvdGF0aW9uID0gZGF0YSBhcyBSb3RhdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICBvblByaW50Q2xpY2soKSB7XHJcbiAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLnByaW50KCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHByaW50RGlhbG9nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGlhbG9nI3ByaW50U2VydmljZURpYWxvZycpO1xyXG4gICAgICBjb25zdCBwcm9ncmVzc1RleHQgPSBwcmludERpYWxvZz8ucXVlcnlTZWxlY3RvcignLnJvdyBzcGFuJyk7XHJcbiAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IHByaW50RGlhbG9nPy5xdWVyeVNlbGVjdG9yKCcjcHJpbnRDYW5jZWwgc3BhbicpO1xyXG5cclxuICAgICAgaWYgKHByb2dyZXNzVGV4dCkge1xyXG4gICAgICAgIHByb2dyZXNzVGV4dC50ZXh0Q29udGVudCA9ICfQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNC+0LrRg9C80LXQvdGC0LAg0Log0L/QtdGH0LDRgtC4Li4uJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNhbmNlbEJ1dHRvbikge1xyXG4gICAgICAgIGNhbmNlbEJ1dHRvbi50ZXh0Q29udGVudCA9ICfQntGC0LzQtdC90LAnO1xyXG4gICAgICB9XHJcbiAgICB9LCAxKTtcclxuICB9XHJcblxyXG4gIG9uU2lkZWJhclZpZXdDbGljaygpIHtcclxuICAgIHRoaXMuc2lkZWJhclZpc2libGUgPSAhdGhpcy5zaWRlYmFyVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kTW9kZUNsaWNrKCkge1xyXG4gICAgY29uc3QgcGRmVmlld2VyQXBwbGljYXRpb24gPSAod2luZG93IGFzIGFueSkuUERGVmlld2VyQXBwbGljYXRpb247XHJcblxyXG4gICAgaWYgKHBkZlZpZXdlckFwcGxpY2F0aW9uPy5wZGZWaWV3ZXIpIHtcclxuICAgICAgcGRmVmlld2VyQXBwbGljYXRpb24ucmVxdWVzdFByZXNlbnRhdGlvbk1vZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2xpY2soKSB7XHJcbiAgICB0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlID0gIXRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGU7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCgkZXZlbnQ6IHN0cmluZykge1xyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmZpbmQoJGV2ZW50LCB7aGlnaGxpZ2h0QWxsOiB0cnVlfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgnJywge30pO1xyXG4gIH1cclxuXHJcbiAgZmluZE5leHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmZpbmROZXh0KCk7XHJcbiAgfVxyXG5cclxuICBmaW5kUHJldmlvdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmZpbmRQcmV2aW91cygpO1xyXG4gIH1cclxuXHJcbiAgb25VcGRhdGVNYXRjaENhc2UoJGV2ZW50OiBGaW5kUmVzdWx0TWF0Y2hlc0NvdW50KSB7XHJcbiAgICB0aGlzLnRvdGFsRm91bmQgPSAkZXZlbnQudG90YWw7XHJcbiAgICB0aGlzLmN1cnJlbnRGaW5kID0gJGV2ZW50LmN1cnJlbnQ7XHJcbiAgfVxyXG5cclxuICBvbkZpbmRTdGF0ZUNoYW5nZWQoJGV2ZW50OiBGaW5kU3RhdGUpIHtcclxuICAgIHRoaXMuZmluZFN0YXRlID0gJGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgb25TaWRlYmFyVmlzaWJsZUNoYW5nZSgkZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2lkZWJhclZpc2libGUgPSAkZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvbkhhbmRUb29sQ2xpY2soKSB7XHJcbiAgICB0aGlzLmhhbmRUb29sID0gIXRoaXMuaGFuZFRvb2w7XHJcbiAgfVxyXG5cclxuICBvbkRvd25sb2FkQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kb3dubG9hZEZpbGVOYW1lKSB7XHJcbiAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZSh0aGlzLmRvd25sb2FkRmlsZU5hbWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faHR0cC5nZXQodGhpcy5zcmMsIHtyZXNwb25zZVR5cGU6ICdibG9iJywgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyx9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8QmxvYj4pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbnRlbnREaXNwb3NpdGlvbiA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJyk7XHJcblxyXG4gICAgICAgICAgaWYgKGNvbnRlbnREaXNwb3NpdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gL2ZpbGVuYW1lPVwiKFteXCJdKylcIi8uZXhlYyhjb250ZW50RGlzcG9zaXRpb24pO1xyXG5cclxuICAgICAgICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlc1sxXSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZShtYXRjaGVzWzFdKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGUoJ2RvY3VtZW50LnBkZicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGUoJ2RvY3VtZW50LnBkZicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZG93bmxvYWRGaWxlKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJsb2I6IEJsb2IgPSBhd2FpdCB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmdldEN1cnJlbnREb2N1bWVudEFzQmxvYigpO1xyXG4gICAgY29uc3Qgb2JqZWN0VXJsOiBzdHJpbmcgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJykgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XHJcblxyXG4gICAgYS5ocmVmID0gb2JqZWN0VXJsO1xyXG4gICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcblxyXG4gICAgYS5jbGljaygpO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcblxyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2N1c3RvbVRvb2xiYXI+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX190b29sYmFyXCIgaWQ9XCJ0b29sYmFyVmlld2VyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGctMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGctMVwiPlxyXG4gICAgICAgIEBpZiAoc2hvd1NpZGViYXJCdXR0b24pIHtcclxuICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1idXJnZXInXCJcclxuICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgKG1yeENsaWNrKT1cIm9uU2lkZWJhclZpZXdDbGljaygpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtcngtaWNvbi1idXR0b24tLXRvZ2dsZWQnOiBzaWRlYmFyVmlzaWJsZX1cIlxyXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGML9GB0LrRgNGL0YLRjCDQsdC+0LrQvtCy0YPRjiDQv9Cw0L3QtdC70YwnXCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoc2hvd0ZpbmRiYXJCdXR0b24pIHtcclxuICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1zZWFyY2gnXCJcclxuICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgKG1yeENsaWNrKT1cIm9uU2VhcmNoQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTIgbXJ4LXBkZi12aWV3ZXJfX2ZpbmQtYnV0dG9uJ1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbXJ4LWljb24tYnV0dG9uLS10b2dnbGVkJzogaXNTZWFyY2hQYW5lbFZpc2libGV9XCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cd0LDQudGC0Lgg0LIg0LTQvtC60YPQvNC10L3RgtC1J1wiXHJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBAaWYgKGlzU2VhcmNoUGFuZWxWaXNpYmxlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX19maW5kYmFyIGctMVwiICNmaW5kTWVudT5cclxuICAgICAgICAgIDxtcngtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCJmaW5kU3RhdGUgPT09IDEgPyAnbXJ4LWlucHV0LWVycm9yJyA6JycrJ3NlYXJjaFRleHQnXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQndCw0LnRgtC4INCyINC00L7QutGD0LzQtdC90YLQtS4uLlwiXHJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFF1ZXJ5XCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9tcngtaW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidwLTEnXCJcclxuICAgICAgICAgICAgICAobXJ4Q2xpY2spPVwiZmluZFByZXZpb3VzKClcIlxyXG4gICAgICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWNoZXZyb24tcmlnaHQnXCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3AtMSdcIlxyXG4gICAgICAgICAgICAgIChtcnhDbGljayk9XCJmaW5kTmV4dCgpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBAaWYgKGZpbmRTdGF0ZSA9PT0gMCB8fCBmaW5kU3RhdGUgPT09IDIpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX19maW5kYmFyLXJlc3VsdFwiPlxyXG4gICAgICAgICAgICAgIHt7IGN1cnJlbnRGaW5kIH19INC40Lcge3sgdG90YWxGb3VuZCB9fSDRgdC+0LLQv9Cw0LTQtdC90LjQuVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoZmluZFN0YXRlID09PSAxKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1uZWdhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5vd3JhcFwiPtCk0YDQsNC30LAg0L3QtSDQvdCw0LnQtNC10L3QsDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJfX3Rvb2xiYXItLW5hdlwiPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24taW4tdGhlLWVuZC1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C10YDQstCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25QYWdlQ2hhbmdlKDEpXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1jaGV2cm9uLWxlZnQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0YDQtdC00YvQtNGD0YnQsNGPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUGFnZUNoYW5nZShwYWdlIC0gMSB8fCAxKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaW5wdXQtbnVtYmVyXHJcbiAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIid3cHgtNTYnXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cInBhZ2VcIlxyXG4gICAgICAgICAgW251bWJlclR5cGVdPVwiJ2ludCdcIlxyXG4gICAgICAgICAgW21pblZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgW21heFZhbHVlXT1cInBhZ2VDb3VudFwiXHJcbiAgICAgICAgICBbaXNBdXRvQ29ycmVjdGluZ1ZhbHVlXT1cInRydWVcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+0LjQtyB7eyBwYWdlQ291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1jaGV2cm9uLXJpZ2h0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbk5leHRQYWdlKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Ch0LvQtdC00YPRjtGJ0LDRjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1pbi10aGUtZW5kLXJpZ2h0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbkxhc3RQYWdlKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0L7RgdC70LXQtNC90Y/RjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayhmYWxzZSlcIlxyXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tbWludXMnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgIFt0b29sdGlwXT1cIifQo9C80LXQvdGM0YjQuNGC0YwnXCJcclxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayh0cnVlKVwiXHJcbiAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1wbHVzJ1wiXHJcbiAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICBbdG9vbHRpcF09XCIn0KPQstC10LvQuNGH0LjRgtGMJ1wiXHJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pbnB1dC1zZWxlY3RcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3dweC0xNTYnXCJcclxuICAgICAgICBbaXRlbXNdPVwiem9vbU9wdGlvbnNcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uWm9vbUxldmVsU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkWm9vbVwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICA8L21yeC1pbnB1dC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgIEBpZiAoc2hvd0hhbmRUb29sQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1mYy10ZXh0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J21yeC1pY29uLWJ1dHRvbi0tdG9nZ2xlZCc6ICFoYW5kVG9vbH1cIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25IYW5kVG9vbENsaWNrKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dSb3RhdGVCdXR0b24pIHtcclxuICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLXJlbG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25Sb3RhdGUoMSlcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0L7QstC10YDQvdGD0YLRjCDQv9C+INGH0LDRgdC+0LLQvtC5INGB0YLRgNC10LvQutC1J1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93Um90YXRlQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1yZXR1cm4nXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUm90YXRlKC0xKVwiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QvtCy0LXRgNC90YPRgtGMINC/0YDQvtGC0LjQsiDRh9Cw0YHQvtCy0L7QuSDRgdGC0YDQtdC70LrQuCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0V4cGFuZEJ1dHRvbikge1xyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYXJyb3ctZXhwYW5kJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbkV4cGFuZE1vZGVDbGljaygpXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGMINC90LAg0LLQtdGB0Ywg0Y3QutGA0LDQvSdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd1ByaW50QnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1wcmludCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QtdGH0LDRgtGMJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblByaW50Q2xpY2soKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0Rvd25sb2FkQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1kb3dubG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0KHQutCw0YfQsNGC0YwnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uRG93bmxvYWRDbGljaygpXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5neC1leHRlbmRlZC1wZGYtdmlld2VyXHJcbiAgI3BkZlZpZXdlclxyXG4gIGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJcIlxyXG4gIFtzcmNdPVwic3JjXCJcclxuICBbcGFnZV09XCJwYWdlXCJcclxuICBbc2lkZWJhclZpc2libGVdPVwic2hvd1NpZGViYXJCdXR0b24gJiYgc2lkZWJhclZpc2libGVcIlxyXG4gIFtjdXN0b21Ub29sYmFyXT1cImN1c3RvbVRvb2xiYXJcIlxyXG4gIFtzaG93U2lkZWJhckJ1dHRvbl09XCJ0cnVlXCJcclxuICBbc2hvd1JvdGF0ZUJ1dHRvbl09XCJzaG93Um90YXRlQnV0dG9uXCJcclxuICBbc2hvd0Rvd25sb2FkQnV0dG9uXT1cInNob3dEb3dubG9hZEJ1dHRvblwiXHJcbiAgW2lnbm9yZUtleXNdPVwiaWdub3JlS2V5c1wiXHJcbiAgW3pvb21dPVwic2VsZWN0ZWRab29tLnZhbHVlXCJcclxuICBbdGV4dExheWVyXT1cInRydWVcIlxyXG4gIFtoYW5kVG9vbF09XCJoYW5kVG9vbFwiXHJcbiAgW3JvdGF0aW9uXT1cInJvdGF0aW9uXCJcclxuICAoem9vbUNoYW5nZSk9XCJvblpvb21DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gIChwYWdlc0xvYWRlZCk9XCJvblBhZ2VzTG9hZGVkKCRldmVudClcIlxyXG4gICh1cGRhdGVGaW5kU3RhdGUpPVwib25GaW5kU3RhdGVDaGFuZ2VkKCRldmVudClcIlxyXG4gIChzaWRlYmFyVmlzaWJsZUNoYW5nZSk9XCJvblNpZGViYXJWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxyXG4gICh1cGRhdGVGaW5kTWF0Y2hlc0NvdW50KT1cIm9uVXBkYXRlTWF0Y2hDYXNlKCRldmVudClcIlxyXG4+PC9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcj5cclxuIl19