croco-html 2.27.0 → 2.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2022/lib/components/editor/image-editor/image-editor.component.mjs +19 -2
  2. package/esm2022/lib/components/editor/visual-editor/visual-editor.component.mjs +1 -1
  3. package/esm2022/lib/components/file-id-select/file-id-select.component.mjs +1 -1
  4. package/esm2022/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.mjs +18 -6
  5. package/esm2022/lib/extensions/BodyTagsExtensions.mjs +1 -1
  6. package/esm2022/lib/extensions/HtmlExtractionMethods.mjs +1 -1
  7. package/esm2022/lib/extensions/ImageMethods.mjs +1 -1
  8. package/esm2022/lib/extensions/TableMethods.mjs +1 -1
  9. package/esm2022/lib/options/index.mjs +2 -0
  10. package/esm2022/lib/pipes/ToHtmlBodyTagsPipe.mjs +1 -1
  11. package/esm2022/lib/pipes/ToPreviewHtmlPipe.mjs +1 -1
  12. package/esm2022/lib/pipes/to-preview.pipe.mjs +1 -1
  13. package/esm2022/public-api.mjs +2 -1
  14. package/fesm2022/croco-html.mjs +35 -7
  15. package/fesm2022/croco-html.mjs.map +1 -1
  16. package/lib/components/editor/image-editor/image-editor.component.d.ts +1 -1
  17. package/lib/components/editor/visual-editor/visual-editor.component.d.ts +1 -1
  18. package/lib/components/file-id-select/file-id-select.component.d.ts +1 -1
  19. package/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.d.ts +4 -1
  20. package/lib/extensions/BodyTagsExtensions.d.ts +1 -1
  21. package/lib/extensions/HtmlExtractionMethods.d.ts +1 -3
  22. package/lib/extensions/ImageMethods.d.ts +1 -1
  23. package/lib/extensions/TableMethods.d.ts +1 -1
  24. package/lib/index.d.ts +5 -5
  25. package/lib/options/index.d.ts +5 -0
  26. package/lib/pipes/ToHtmlBodyTagsPipe.d.ts +1 -1
  27. package/lib/pipes/ToPreviewHtmlPipe.d.ts +1 -1
  28. package/lib/pipes/to-preview.pipe.d.ts +1 -1
  29. package/package.json +1 -1
  30. package/public-api.d.ts +1 -0
@@ -77,7 +77,24 @@ export class ImageEditorComponent {
77
77
  }
78
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ImageEditorComponent, decorators: [{
79
79
  type: Component,
80
- args: [{ selector: 'croco-html-image-editor', standalone: true, imports: [MatButtonToggleGroup, FormsModule, MatButtonToggle, MatIcon, FileIdSelectComponent, MatFormField, MatLabel, MatInput, CdkDragHandle, MatCard, MatCardContent, XmlTagExternalVideoComponent, NgStyle, MatButton, MatIconButton, MatSlideToggle], template: "<div>\n <div style=\"height: 10px;\">\n </div>\n\n @if (hasImageError) {\n <div class=\"error-block\">\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n </div>\n }\n\n @if (hasFileId() && !hasImageError) {\n <div>\n <img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\" alt=\"photo\"/>\n </div>\n }\n\n @if (!hasFileId()) {\n <div>\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\n </div>\n }\n\n @if(!tag.presentOrEdit) {\n <mat-slide-toggle style=\"padding: 10px 0\" [(ngModel)]=\"isShowMediaRequest\">\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B</mat-slide-toggle>\n }\n\n @if(isShowMediaRequest) {\n <div style=\"display: flex; flex-direction: column; gap: 20px\">\n <div class=\"media-request__header\">\n <span>\u041C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B:</span>\n @if (!tag.presentOrEdit) {\n <button (click)=\"addNewMediaRequest()\" class=\"w-30\" mat-icon-button color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n }\n </div>\n @for (request of requests; track $index) {\n <div class=\"media-request__container\">\n @if (tag.presentOrEdit) {\n <div style=\"display: flex; flex-direction: column; gap: 5px\">\n <span class=\"w-100\">\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.minScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.maxScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F: {{request.maxImageHeight}}</span>\n </div>\n }\n\n @if (!tag.presentOrEdit) {\n <div style=\"width: 100%\">\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.minScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxImageHeight\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n </div>\n\n <button (click)=\"deleteMediaRequest($index)\" class=\"w-30\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n }\n </div>\n }\n</div>\n\n@if (!tag.presentOrEdit) {\n <div>\n <div style=\"height: 10px;\"></div>\n <div style=\"overflow-x:auto;\">\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\n <mat-button-toggle value=\"search\">\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"edit\">\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <mat-icon>settings</mat-icon>\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <div style=\"height: 10px;\"></div>\n <div [hidden]=\"searchOrEdit !== 'search'\">\n <croco-html-file-id-select\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\n [(fileId)]=\"tag.attributes['file-id']\"\n (onFileIdChanged)=\"onFileIdChanged($event)\">\n </croco-html-file-id-select>\n </div>\n <div [hidden]=\"searchOrEdit !== 'edit'\">\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\n </mat-label>\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\n type=\"number\"\n [(ngModel)]=\"tag.attributes['file-id']\"\n (ngModelChange)=\"removeImageError()\">\n </mat-form-field>\n </div>\n </div>\n </div>\n}\n", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}.media-request__header{align-items:center;display:flex;width:100%;justify-content:space-between}.media-request__container{display:flex;align-items:center;border-bottom:1px solid rgba(128,128,128,.7);padding-bottom:10px}\n"] }]
80
+ args: [{ selector: 'croco-html-image-editor', standalone: true, imports: [
81
+ MatButtonToggleGroup,
82
+ FormsModule,
83
+ MatButtonToggle,
84
+ MatIcon,
85
+ FileIdSelectComponent,
86
+ MatFormField,
87
+ MatLabel,
88
+ MatInput,
89
+ CdkDragHandle,
90
+ MatCard,
91
+ MatCardContent,
92
+ XmlTagExternalVideoComponent,
93
+ NgStyle,
94
+ MatButton,
95
+ MatIconButton,
96
+ MatSlideToggle
97
+ ], template: "<div>\n <div style=\"height: 10px;\">\n </div>\n\n @if (hasImageError) {\n <div class=\"error-block\">\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n </div>\n }\n\n @if (hasFileId() && !hasImageError) {\n <div>\n <img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\" alt=\"photo\"/>\n </div>\n }\n\n @if (!hasFileId()) {\n <div>\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\n </div>\n }\n\n @if(!tag.presentOrEdit) {\n <mat-slide-toggle style=\"padding: 10px 0\" [(ngModel)]=\"isShowMediaRequest\">\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B</mat-slide-toggle>\n }\n\n @if(isShowMediaRequest) {\n <div style=\"display: flex; flex-direction: column; gap: 20px\">\n <div class=\"media-request__header\">\n <span>\u041C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B:</span>\n @if (!tag.presentOrEdit) {\n <button (click)=\"addNewMediaRequest()\" class=\"w-30\" mat-icon-button color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n }\n </div>\n @for (request of requests; track $index) {\n <div class=\"media-request__container\">\n @if (tag.presentOrEdit) {\n <div style=\"display: flex; flex-direction: column; gap: 5px\">\n <span class=\"w-100\">\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.minScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.maxScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F: {{request.maxImageHeight}}</span>\n </div>\n }\n\n @if (!tag.presentOrEdit) {\n <div style=\"width: 100%\">\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.minScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxImageHeight\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n </div>\n\n <button (click)=\"deleteMediaRequest($index)\" class=\"w-30\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n }\n </div>\n }\n</div>\n\n@if (!tag.presentOrEdit) {\n <div>\n <div style=\"height: 10px;\"></div>\n <div style=\"overflow-x:auto;\">\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\n <mat-button-toggle value=\"search\">\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"edit\">\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <mat-icon>settings</mat-icon>\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <div style=\"height: 10px;\"></div>\n <div [hidden]=\"searchOrEdit !== 'search'\">\n <croco-html-file-id-select\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\n [(fileId)]=\"tag.attributes['file-id']\"\n (onFileIdChanged)=\"onFileIdChanged($event)\">\n </croco-html-file-id-select>\n </div>\n <div [hidden]=\"searchOrEdit !== 'edit'\">\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\n </mat-label>\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\n type=\"number\"\n [(ngModel)]=\"tag.attributes['file-id']\"\n (ngModelChange)=\"removeImageError()\">\n </mat-form-field>\n </div>\n </div>\n </div>\n}\n", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}.media-request__header{align-items:center;display:flex;width:100%;justify-content:space-between}.media-request__container{display:flex;align-items:center;border-bottom:1px solid rgba(128,128,128,.7);padding-bottom:10px}\n"] }]
81
98
  }], ctorParameters: () => [{ type: undefined, decorators: [{
82
99
  type: Inject,
83
100
  args: [CrocoHtmlOptionsToken]
@@ -86,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
86
103
  }], onTagUpdated: [{
87
104
  type: Output
88
105
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVMxQyxNQUFNLE9BQU8sb0JBQW9CO0lBWS9CLGNBQWM7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBS0QsWUFDa0QsUUFBMEIsRUFDekQsa0JBQXNDO1FBRFAsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDekQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQW5CekQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsaUJBQVksR0FBRyxRQUFRLENBQUM7UUFDeEIsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVUxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFJYSxDQUFDO0lBRTdELE1BQU07UUFDSixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDekosQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFjO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNwRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBRWxFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUU7YUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsWUFBWSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMvSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGNBQWMsRUFBRSxDQUFDO1NBQ2xCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0F2RVUsb0JBQW9CLGtCQW9CckIscUJBQXFCO2tHQXBCcEIsb0JBQW9CLHNKQzNCakMsK3FOQStIQSwwWER0R1ksb0JBQW9CLDBSQUFFLFdBQVcsaXhCQUFFLGVBQWUsc1BBQUUsT0FBTywySUFBRSxxQkFBcUIsK0lBQUUsWUFBWSw0TEFBRSxRQUFRLHNEQUFFLFFBQVEsaVVBQXdFLE9BQU8sMkVBQWEsYUFBYSw2RkFBRSxjQUFjOzsyRkFFNU8sb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLHlCQUF5QixjQUd2QixJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSw0QkFBNEIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUM7OzBCQXNCclAsTUFBTTsyQkFBQyxxQkFBcUI7MEVBVi9CLEdBQUc7c0JBREYsS0FBSztnQkFRTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRob2RzLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLCBJTWVkaWFSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9uc1Rva2VuIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0h0bWxFeHRyYWN0aW9uTWV0aG9kcyc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpbGVJZFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZpbGUtaWQtc2VsZWN0L2ZpbGUtaWQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUdyb3VwLCBNYXRCdXR0b25Ub2dnbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IENka0RyYWdIYW5kbGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xuaW1wb3J0IHsgTWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHsgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi94bWwtdGFnc1wiO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFNjcmVlbldpZHRoU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4td2lkdGguc2VydmljZVwiO1xuaW1wb3J0IHsgTWF0QnV0dG9uLCBNYXRJY29uQnV0dG9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWltYWdlLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEJ1dHRvblRvZ2dsZUdyb3VwLCBGb3Jtc01vZHVsZSwgTWF0QnV0dG9uVG9nZ2xlLCBNYXRJY29uLCBGaWxlSWRTZWxlY3RDb21wb25lbnQsIE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwsIE1hdElucHV0LCBDZGtEcmFnSGFuZGxlLCBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCwgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCwgTmdTdHlsZSwgTWF0QnV0dG9uLCBNYXRJY29uQnV0dG9uLCBNYXRTbGlkZVRvZ2dsZV1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgaGFzSW1hZ2VFcnJvciA9IGZhbHNlO1xuICBzZWFyY2hPckVkaXQgPSBcInNlYXJjaFwiO1xuICByZXF1ZXN0czogSU1lZGlhUmVxdWVzdFtdID0gW107XG4gIGltYWdlTWF4SGVpZ2h0ID0gbnVsbDtcbiAgaXNTaG93TWVkaWFSZXF1ZXN0ID0gZmFsc2U7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIHRhZzogSHRtbEJvZHlUYWc7XG5cbiAgb25FcnJvckhhbmRsZXIoKSB7XG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ3JvY29IdG1sT3B0aW9uc1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NyZWVuV2lkdGhTZXJ2aWNlOiBTY3JlZW5XaWR0aFNlcnZpY2UpIHt9XG5cbiAgZ2V0U3JjKCkge1xuICAgIHJldHVybiBJbWFnZU1ldGhvZHMuYnVpbGRVcmwodGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSwgXCJNZWRpdW1cIiwgdGhpcy5fb3B0aW9ucyk7XG4gIH1cblxuICBoYXNGaWxlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFnLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZSkgJiYgIWlzTmFOKHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0pO1xuICB9XG5cbiAgb25GaWxlSWRDaGFuZ2VkKGZpbGVJZDogbnVtYmVyKSB7XG4gICAgdGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSA9IGZpbGVJZDtcbiAgICB0aGlzLnJlbW92ZUltYWdlRXJyb3IoKTtcbiAgfVxuXG4gIHJlbW92ZUltYWdlRXJyb3IoKSB7XG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gZmFsc2U7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgYXR0ciA9IHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdO1xuICAgIHRoaXMucmVxdWVzdHMgPSBJbWFnZU1ldGhvZHMubWVkaWFSZXF1ZXN0U3RyaW5nVG9BcnJheVBhcnNlcihhdHRyKVxuXG4gICAgdGhpcy5zY3JlZW5XaWR0aFNlcnZpY2UuZ2V0U2NyZWVuV2lkdGgoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShzY3JlZW5XaWR0aCA9PiB7XG4gICAgICAgIHRoaXMuaW1hZ2VNYXhIZWlnaHQgPSBJbWFnZU1ldGhvZHMuc2NyZWVuU2l6ZUNoYW5nZWQoc2NyZWVuV2lkdGgsIHRoaXMucmVxdWVzdHMpO1xuICAgICAgfSlcbiAgfVxuXG4gIHJlcXVlc3RDaGFuZ2VkKCkge1xuICAgIHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdID0gSW1hZ2VNZXRob2RzLm1lZGlhUmVxdWVzdHNBcnJheVRvU3RyaW5nUGFyc2VyKHRoaXMucmVxdWVzdHMpXG4gIH1cblxuICBhZGROZXdNZWRpYVJlcXVlc3QoKSB7XG4gICAgdGhpcy5yZXF1ZXN0cy5wdXNoKHtcbiAgICAgIG1heFNjcmVlbldpZHRoOiAwLFxuICAgICAgbWluU2NyZWVuV2lkdGg6IDAsXG4gICAgICBtYXhJbWFnZUhlaWdodDogMCxcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlTWVkaWFSZXF1ZXN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnJlcXVlc3RzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yZXF1ZXN0Q2hhbmdlZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxuICA8L2Rpdj5cblxuICBAaWYgKGhhc0ltYWdlRXJyb3IpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItYmxvY2tcIj5cbiAgICAgINCY0LfQvtCx0YDQsNC20LXQvdC40LUg0L3QtSDQvdCw0LnQtNC10L3QviDQv9C+INGD0LrQsNC30LDQvdC90L7QvNGDINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMsINCy0L7Qt9C80L7QttC90L4g0YTQsNC50Lsg0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgiDQuNC70Lgg0L7RgtGB0YPRgtGB0YLQstGD0LXRgiDQvdCwINGB0LXRgNCy0LXRgNC1LlxuICAgIDwvZGl2PlxuICB9XG5cbiAgQGlmIChoYXNGaWxlSWQoKSAmJiAhaGFzSW1hZ2VFcnJvcikge1xuICAgIDxkaXY+XG4gICAgICA8aW1nXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgJ21heC1oZWlnaHQnOiBpbWFnZU1heEhlaWdodCA/IGltYWdlTWF4SGVpZ2h0ICsgJ3B4JyA6ICcxMDAlJ31cIlxuICAgICAgICBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiBbc3JjXT1cImdldFNyYygpXCIgKGVycm9yKT1cIm9uRXJyb3JIYW5kbGVyKClcIiBhbHQ9XCJwaG90b1wiLz5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoIWhhc0ZpbGVJZCgpKSB7XG4gICAgPGRpdj5cbiAgICAgIDxoNT5b0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDQvdC1INCy0YvQsdGA0LDQvdC+XTwvaDU+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYoIXRhZy5wcmVzZW50T3JFZGl0KSB7XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgc3R5bGU9XCJwYWRkaW5nOiAxMHB4IDBcIiBbKG5nTW9kZWwpXT1cImlzU2hvd01lZGlhUmVxdWVzdFwiPtCf0L7QutCw0LfRi9Cy0LDRgtGMINC80LXQtNC40LAg0LfQsNC/0YDQvtGB0Ys8L21hdC1zbGlkZS10b2dnbGU+XG4gIH1cblxuICBAaWYoaXNTaG93TWVkaWFSZXF1ZXN0KSB7XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMjBweFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLXJlcXVlc3RfX2hlYWRlclwiPlxuICAgICAgICA8c3Bhbj7QnNC10LTQuNCwINC30LDQv9GA0L7RgdGLOjwvc3Bhbj5cbiAgICAgICAgQGlmICghdGFnLnByZXNlbnRPckVkaXQpIHtcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGROZXdNZWRpYVJlcXVlc3QoKVwiIGNsYXNzPVwidy0zMFwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIEBmb3IgKHJlcXVlc3Qgb2YgcmVxdWVzdHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtcmVxdWVzdF9fY29udGFpbmVyXCI+XG4gICAgICAgICAgQGlmICh0YWcucHJlc2VudE9yRWRpdCkge1xuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xMDBcIj7QnNC40L3QuNC80LDQu9GM0L3QsNGPINGI0LjRgNC40L3QsDoge3tyZXF1ZXN0Lm1pblNjcmVlbldpZHRofX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xMDBcIj7QnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0YjQuNGA0LjQvdCwOiB7e3JlcXVlc3QubWF4U2NyZWVuV2lkdGh9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTEwMFwiPtCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQstGL0YHQvtGC0LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjzoge3tyZXF1ZXN0Lm1heEltYWdlSGVpZ2h0fX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKCF0YWcucHJlc2VudE9yRWRpdCkge1xuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgINCc0LjQvdC40LzQsNC70YzQvdCw0Y8g0YjQuNGA0LjQvdCwXG4gICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0JzQuNC90LjQvNCw0LvRjNC90LDRjyDQs9GA0LDQvdC40YbQsCDRiNC40YDQuNC90YtcIlxuICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcXVlc3QubWluU2NyZWVuV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZXF1ZXN0Q2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAg0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINGI0LjRgNC40L3QsFxuICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQs9GA0LDQvdC40YbQsCDRiNC40YDQuNC90YtcIlxuICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcXVlc3QubWF4U2NyZWVuV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZXF1ZXN0Q2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAg0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINCy0YvRgdC+0YLQsCDQuNC30L7QsdGA0LDQttC10L3QuNGPXG4gICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINCy0YvRgdC+0YLQsCDQuNC30L7QsdGA0LDQttC10L3QuNGPXCJcbiAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZXF1ZXN0Lm1heEltYWdlSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVxdWVzdENoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZU1lZGlhUmVxdWVzdCgkaW5kZXgpXCIgY2xhc3M9XCJ3LTMwXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKCF0YWcucHJlc2VudE9yRWRpdCkge1xuICA8ZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cIm92ZXJmbG93LXg6YXV0bztcIj5cbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbKG5nTW9kZWwpXT1cInNlYXJjaE9yRWRpdFwiPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJzZWFyY2hcIj5cbiAgICAgICAgICDQmNGB0LrQsNGC0Ywg0YTQsNC50LsgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImVkaXRcIj5cbiAgICAgICAgICDQo9C60LDQt9Cw0YLRjCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMgPG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj48L2Rpdj5cbiAgICA8ZGl2IFtoaWRkZW5dPVwic2VhcmNoT3JFZGl0ICE9PSAnc2VhcmNoJ1wiPlxuICAgICAgPGNyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3RcbiAgICAgICAgW2xhYmVsVGV4dF09XCIn0JLRi9Cx0YDQsNGC0Ywg0YTQsNC50LsnXCJcbiAgICAgICAgWyhmaWxlSWQpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxuICAgICAgICAob25GaWxlSWRDaGFuZ2VkKT1cIm9uRmlsZUlkQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICA8L2Nyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbaGlkZGVuXT1cInNlYXJjaE9yRWRpdCAhPT0gJ2VkaXQnXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRhNCw0LnQu9CwXG4gICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YTQsNC50LvQsFwiIG5ldy1hdXRvY29tcGxldGU9XCJvZmZcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVtb3ZlSW1hZ2VFcnJvcigpXCI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIs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QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBdkVVLG9CQUFvQixrQkFvQnJCLHFCQUFxQjtrR0FwQnBCLG9CQUFvQixzSkM1Q2pDLCtxTkErSEEsMFhEckdJLG9CQUFvQiwwUkFDcEIsV0FBVyxpeEJBQ1gsZUFBZSxzUEFDZixPQUFPLDJJQUNQLHFCQUFxQiwrSUFDckIsWUFBWSw0TEFDWixRQUFRLHNEQUNSLFFBQVEsaVVBS1IsT0FBTywyRUFFUCxhQUFhLDZGQUNiLGNBQWM7OzJGQUdMLG9CQUFvQjtrQkF4QmhDLFNBQVM7K0JBQ0UseUJBQXlCLGNBR3ZCLElBQUksV0FDUDt3QkFDUCxvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixPQUFPO3dCQUNQLHFCQUFxQjt3QkFDckIsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsNEJBQTRCO3dCQUM1QixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixjQUFjO3FCQUNmOzswQkFzQkUsTUFBTTsyQkFBQyxxQkFBcUI7MEVBVi9CLEdBQUc7c0JBREYsS0FBSztnQkFRTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRob2RzLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLCBJTWVkaWFSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9uc1Rva2VuIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRmlsZUlkU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlR3JvdXAsIE1hdEJ1dHRvblRvZ2dsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgQ2RrRHJhZ0hhbmRsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQgeyBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jYXJkXCI7XG5pbXBvcnQgeyBYbWxUYWdFeHRlcm5hbFZpZGVvQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3htbC10YWdzXCI7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgU2NyZWVuV2lkdGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3NjcmVlbi13aWR0aC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBNYXRCdXR0b24sIE1hdEljb25CdXR0b24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtaW1hZ2UtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0QnV0dG9uVG9nZ2xlR3JvdXAsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlLFxuICAgIE1hdEljb24sXG4gICAgRmlsZUlkU2VsZWN0Q29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRMYWJlbCxcbiAgICBNYXRJbnB1dCxcbiAgICBDZGtEcmFnSGFuZGxlLFxuICAgIE1hdENhcmQsXG4gICAgTWF0Q2FyZENvbnRlbnQsXG4gICAgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCxcbiAgICBOZ1N0eWxlLFxuICAgIE1hdEJ1dHRvbixcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIE1hdFNsaWRlVG9nZ2xlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgaGFzSW1hZ2VFcnJvciA9IGZhbHNlO1xuICBzZWFyY2hPckVkaXQgPSBcInNlYXJjaFwiO1xuICByZXF1ZXN0czogSU1lZGlhUmVxdWVzdFtdID0gW107XG4gIGltYWdlTWF4SGVpZ2h0ID0gbnVsbDtcbiAgaXNTaG93TWVkaWFSZXF1ZXN0ID0gZmFsc2U7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIHRhZzogSHRtbEJvZHlUYWc7XG5cbiAgb25FcnJvckhhbmRsZXIoKSB7XG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ3JvY29IdG1sT3B0aW9uc1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NyZWVuV2lkdGhTZXJ2aWNlOiBTY3JlZW5XaWR0aFNlcnZpY2UpIHsgfVxuXG4gIGdldFNyYygpIHtcbiAgICByZXR1cm4gSW1hZ2VNZXRob2RzLmJ1aWxkVXJsKHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0sIFwiTWVkaXVtXCIsIHRoaXMuX29wdGlvbnMpO1xuICB9XG5cbiAgaGFzRmlsZUlkKCkge1xuICAgIHJldHVybiB0aGlzLnRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpICYmICFpc05hTih0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdKTtcbiAgfVxuXG4gIG9uRmlsZUlkQ2hhbmdlZChmaWxlSWQ6IG51bWJlcikge1xuICAgIHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlSWQ7XG4gICAgdGhpcy5yZW1vdmVJbWFnZUVycm9yKCk7XG4gIH1cblxuICByZW1vdmVJbWFnZUVycm9yKCkge1xuICAgIHRoaXMuaGFzSW1hZ2VFcnJvciA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbGV0IGF0dHIgPSB0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuU2NyZWVuTWVkaWFSZXF1ZXN0XTtcbiAgICB0aGlzLnJlcXVlc3RzID0gSW1hZ2VNZXRob2RzLm1lZGlhUmVxdWVzdFN0cmluZ1RvQXJyYXlQYXJzZXIoYXR0cilcblxuICAgIHRoaXMuc2NyZWVuV2lkdGhTZXJ2aWNlLmdldFNjcmVlbldpZHRoKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoc2NyZWVuV2lkdGggPT4ge1xuICAgICAgICB0aGlzLmltYWdlTWF4SGVpZ2h0ID0gSW1hZ2VNZXRob2RzLnNjcmVlblNpemVDaGFuZ2VkKHNjcmVlbldpZHRoLCB0aGlzLnJlcXVlc3RzKTtcbiAgICAgIH0pXG4gIH1cblxuICByZXF1ZXN0Q2hhbmdlZCgpIHtcbiAgICB0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuU2NyZWVuTWVkaWFSZXF1ZXN0XSA9IEltYWdlTWV0aG9kcy5tZWRpYVJlcXVlc3RzQXJyYXlUb1N0cmluZ1BhcnNlcih0aGlzLnJlcXVlc3RzKVxuICB9XG5cbiAgYWRkTmV3TWVkaWFSZXF1ZXN0KCkge1xuICAgIHRoaXMucmVxdWVzdHMucHVzaCh7XG4gICAgICBtYXhTY3JlZW5XaWR0aDogMCxcbiAgICAgIG1pblNjcmVlbldpZHRoOiAwLFxuICAgICAgbWF4SW1hZ2VIZWlnaHQ6IDAsXG4gICAgfSlcbiAgfVxuXG4gIGRlbGV0ZU1lZGlhUmVxdWVzdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5yZXF1ZXN0cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucmVxdWVzdENoYW5nZWQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdj5cbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cbiAgPC9kaXY+XG5cbiAgQGlmIChoYXNJbWFnZUVycm9yKSB7XG4gICAgPGRpdiBjbGFzcz1cImVycm9yLWJsb2NrXCI+XG4gICAgICDQmNC30L7QsdGA0LDQttC10L3QuNC1INC90LUg0L3QsNC50LTQtdC90L4g0L/QviDRg9C60LDQt9Cw0L3QvdC+0LzRgyDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLCDQstC+0LfQvNC+0LbQvdC+INGE0LDQudC7INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIg0LjQu9C4INC+0YLRgdGD0YLRgdGC0LLRg9C10YIg0L3QsCDRgdC10YDQstC10YDQtS5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoaGFzRmlsZUlkKCkgJiYgIWhhc0ltYWdlRXJyb3IpIHtcbiAgICA8ZGl2PlxuICAgICAgPGltZ1xuICAgICAgICBbbmdTdHlsZV09XCJ7ICdtYXgtaGVpZ2h0JzogaW1hZ2VNYXhIZWlnaHQgPyBpbWFnZU1heEhlaWdodCArICdweCcgOiAnMTAwJSd9XCJcbiAgICAgICAgY2xhc3M9XCJteC1hdXRvIGQtYmxvY2sgaW1nLWZsdWlkXCIgW3NyY109XCJnZXRTcmMoKVwiIChlcnJvcik9XCJvbkVycm9ySGFuZGxlcigpXCIgYWx0PVwicGhvdG9cIi8+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKCFoYXNGaWxlSWQoKSkge1xuICAgIDxkaXY+XG4gICAgICA8aDU+W9CY0LfQvtCx0YDQsNC20LXQvdC40LUg0L3QtSDQstGL0LHRgNCw0L3Qvl08L2g1PlxuICAgIDwvZGl2PlxuICB9XG5cbiAgQGlmKCF0YWcucHJlc2VudE9yRWRpdCkge1xuICAgIDxtYXQtc2xpZGUtdG9nZ2xlIHN0eWxlPVwicGFkZGluZzogMTBweCAwXCIgWyhuZ01vZGVsKV09XCJpc1Nob3dNZWRpYVJlcXVlc3RcIj7Qn9C+0LrQsNC30YvQstCw0YLRjCDQvNC10LTQuNCwINC30LDQv9GA0L7RgdGLPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICB9XG5cbiAgQGlmKGlzU2hvd01lZGlhUmVxdWVzdCkge1xuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDIwcHhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZWRpYS1yZXF1ZXN0X19oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4+0JzQtdC00LjQsCDQt9Cw0L/RgNC+0YHRizo8L3NwYW4+XG4gICAgICAgIEBpZiAoIXRhZy5wcmVzZW50T3JFZGl0KSB7XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkTmV3TWVkaWFSZXF1ZXN0KClcIiBjbGFzcz1cInctMzBcIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICBAZm9yIChyZXF1ZXN0IG9mIHJlcXVlc3RzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLXJlcXVlc3RfX2NvbnRhaW5lclwiPlxuICAgICAgICAgIEBpZiAodGFnLnByZXNlbnRPckVkaXQpIHtcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDVweFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTAwXCI+0JzQuNC90LjQvNCw0LvRjNC90LDRjyDRiNC40YDQuNC90LA6IHt7cmVxdWVzdC5taW5TY3JlZW5XaWR0aH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTAwXCI+0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINGI0LjRgNC40L3QsDoge3tyZXF1ZXN0Lm1heFNjcmVlbldpZHRofX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xMDBcIj7QnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LLRi9GB0L7RgtCwINC40LfQvtCx0YDQsNC20LXQvdC40Y86IHt7cmVxdWVzdC5tYXhJbWFnZUhlaWdodH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmICghdGFnLnByZXNlbnRPckVkaXQpIHtcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICDQnNC40L3QuNC80LDQu9GM0L3QsNGPINGI0LjRgNC40L3QsFxuICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCc0LjQvdC40LzQsNC70YzQvdCw0Y8g0LPRgNCw0L3QuNGG0LAg0YjQuNGA0LjQvdGLXCJcbiAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZXF1ZXN0Lm1pblNjcmVlbldpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVxdWVzdENoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgINCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDRiNC40YDQuNC90LBcbiAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCLQnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LPRgNCw0L3QuNGG0LAg0YjQuNGA0LjQvdGLXCJcbiAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZXF1ZXN0Lm1heFNjcmVlbldpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVxdWVzdENoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgINCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQstGL0YHQvtGC0LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRj1xuICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQstGL0YHQvtGC0LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRj1wiXG4gICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVxdWVzdC5tYXhJbWFnZUhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlcXVlc3RDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVNZWRpYVJlcXVlc3QoJGluZGV4KVwiIGNsYXNzPVwidy0zMFwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cIndhcm5cIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuQGlmICghdGFnLnByZXNlbnRPckVkaXQpIHtcbiAgPGRpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJvdmVyZmxvdy14OmF1dG87XCI+XG4gICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgWyhuZ01vZGVsKV09XCJzZWFyY2hPckVkaXRcIj5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwic2VhcmNoXCI+XG4gICAgICAgICAg0JjRgdC60LDRgtGMINGE0LDQudC7IDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJlZGl0XCI+XG4gICAgICAgICAg0KPQutCw0LfQsNGC0Ywg0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDIDxtYXQtaWNvbj5zZXR0aW5nczwvbWF0LWljb24+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XG4gICAgPGRpdiBbaGlkZGVuXT1cInNlYXJjaE9yRWRpdCAhPT0gJ3NlYXJjaCdcIj5cbiAgICAgIDxjcm9jby1odG1sLWZpbGUtaWQtc2VsZWN0XG4gICAgICAgIFtsYWJlbFRleHRdPVwiJ9CS0YvQsdGA0LDRgtGMINGE0LDQudC7J1wiXG4gICAgICAgIFsoZmlsZUlkKV09XCJ0YWcuYXR0cmlidXRlc1snZmlsZS1pZCddXCJcbiAgICAgICAgKG9uRmlsZUlkQ2hhbmdlZCk9XCJvbkZpbGVJZENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgPC9jcm9jby1odG1sLWZpbGUtaWQtc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgW2hpZGRlbl09XCJzZWFyY2hPckVkaXQgIT09ICdlZGl0J1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YTQsNC50LvQsFxuICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGE0LDQudC70LBcIiBuZXctYXV0b2NvbXBsZXRlPVwib2ZmXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWcuYXR0cmlidXRlc1snZmlsZS1pZCddXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlbW92ZUltYWdlRXJyb3IoKVwiPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuIl19
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
205
205
  }], rendered: [{
206
206
  type: Output
207
207
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci92aXN1YWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNHLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixRQUFRLEVBQ1QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNyQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFF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QUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixDQUFDOzswQkF3RC9PLE1BQU07MkJBQUMscUJBQXFCO3lDQXJEUixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBYXJCLFVBQVU7c0JBRFQsS0FBSztnQkFVTixVQUFVO3NCQURULEtBQUs7Z0JBS04sSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxNQUFNO2dCQWtCUCxhQUFhO3NCQURaLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgQ2RrRHJvcExpc3QsIENka0RyYWcsIENka0RyYWdIYW5kbGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJvZHlUYWdzRXh0ZW5zaW9ucyxcbiAgRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLFxuICBUZXh0VGFnc1xufSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7XG4gIEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLFxuICBFeHRlcm5hbFZpZGVvUGxheWVyc1xufSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7IFhtbEV4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7IFRhZ0l0ZW0sIEh0bWxCb2R5VGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XG5pbXBvcnQgeyBGaWxlUG9zdGluZ1N0YXJ0ZWQgfSBmcm9tICcuLi8uLi91cGxvYWQtZmlsZXMtYnRuL3VwbG9hZC1maWxlcy1idG4uY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRUYWdzIH0gZnJvbSAnLi9EZWZhdWx0VGFncyc7XG5pbXBvcnQgeyBBbGlnbm1lbnRzRGF0YSwgRUFsaWdubWVudHMgfSBmcm9tIFwiLi9EZWZhdWx0QWxpZ21lbnRzXCI7XG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zVG9rZW4gfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMvSHRtbEV4dHJhY3Rpb25NZXRob2RzJztcbmltcG9ydCB7RG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzfSBmcm9tIFwiLi4vLi4vLi4vZXh0ZW5zaW9ucy9Eb3dubG9hZEJ1dHRvbk1ldGhvZHNcIjtcbmltcG9ydCB7IE1haW5FZGl0b3JCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL21haW4tZWRpdG9yLWJsb2NrL21haW4tZWRpdG9yLWJsb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRGaWxlc0J0bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FkZC1maWxlcy1idG4vYWRkLWZpbGVzLWJ0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDZGtUZXh0YXJlYUF1dG9zaXplIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdExhYmVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHtCdXR0b25UYWdEYXRhQ29uc3RzfSBmcm9tIFwiLi4vLi4vLi4vZXh0ZW5zaW9ucy9CdXR0b25NZXRob2RzXCI7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TGlua1lvdVR1YmUgPSBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLzRDdFNBbkpEZnNJP3NpPXNjeUJOSmEwSHMydDVhTEVcIjtcbmV4cG9ydCBjb25zdCBkZWZhdWx0TGlua1ZrID0gXCJodHRwczovL3ZrLmNvbS92aWRlb19leHQucGhwP29pZD0tMjI4MjIzMDUmaWQ9NDU2MjQxODY0JmhkPTJcIjtcbmV4cG9ydCBjb25zdCBkZWZhdWx0TGlua0ZvckRvd25sb2FkID0gXCJodHRwczovL3N0b3JhZ2UueWFuZGV4Y2xvdWQubmV0L21lZ2EtYWNhZGVteS9wcmVzZW50YXRpb24ucGRmXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3JvY28tdmlzdWFsLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50LmNzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdFByb2dyZXNzU3Bpbm5lciwgTWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQsIE1hdEJ1dHRvbiwgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCwgTWF0SW5wdXQsIENka1RleHRhcmVhQXV0b3NpemUsIEZvcm1zTW9kdWxlLCBNYXRTZWxlY3QsIE1hdE9wdGlvbiwgQWRkRmlsZXNCdG5Db21wb25lbnQsIENka0Ryb3BMaXN0LCBDZGtEcmFnLCBDZGtEcmFnSGFuZGxlLCBNYWluRWRpdG9yQmxvY2tDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFZpc3VhbEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJykgdGV4dEFyZWE6IEVsZW1lbnRSZWY7XG5cbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIGxvYWRpbmdUZXh0ID0gXCLQmNC00ZHRgiDQt9Cw0LPRgNGD0LfQutCwXCI7XG4gIGlzQWN0aXZlQWRkVGV4dCA9IGZhbHNlO1xuICB0ZXh0ID0gJyc7XG5cbiAgYWxpZ25tZW50ID0gRUFsaWdubWVudHMuTGVmdDtcbiAgdGV4dFRhZyA9IERlZmF1bHRUYWdzLnRleHRUYWdzWzBdLnRhZztcbiAgdGV4dFRhZ09wdGlvbnMgPSBEZWZhdWx0VGFncy50ZXh0VGFnc1xuICBhbGlnbm1lbnRPcHRpb25zID0gQWxpZ25tZW50c0RhdGFcblxuICBASW5wdXQoKVxuICBzaG93TWFya1VwID0gdHJ1ZTtcblxuICB0YWdzOiBUYWdJdGVtW10gPSBbXTtcbiAgdmlkZW9QbGF5ZXJzID0gRXh0ZXJuYWxWaWRlb1BsYXllcnNcbiAgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xuICBzZWxlY3RlZFZpZGVvUGxheWVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyA9IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzO1xuXG4gIEBJbnB1dCgpXG4gIHVzZUh0bWxSYXcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBAT3V0cHV0KClcbiAgaHRtbDogc3RyaW5nID0gXCJcIjtcblxuICBpc0h0bWxTZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHRtbC5zdGFydHNXaXRoKFwiPGJvZHk+XCIpO1xuICB9XG5cbiAgY2xlYXJIdG1sKCkge1xuICAgIHRoaXMuaHRtbCA9IFwiXCI7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUJvZHlUYWdzKCk7XG4gIH1cblxuICBnZXRIdG1sKCkge1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gICAgcmV0dXJuIHRoaXMuaHRtbDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvbkh0bWxDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlbmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdID0gW107XG4gIHNhdmVCb2R5VGFnczogSHRtbEJvZHlUYWdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KENyb2NvSHRtbE9wdGlvbnNUb2tlbikgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jZHJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBhZGRUYWcoKTogdm9pZCB7XG4gICAgbGV0IHRhZ0Rlc2NyaXB0aW9uID0gdGhpcy50YWdzXG4gICAgICAuZmluZCh4ID0+IHgudGFnID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpO1xuXG4gICAgbGV0IGF0dHJzID0ge307XG4gICAgbGV0IGlubmVySHRtbCA9IFwiXCI7XG5cbiAgICBpZiAoVGV4dFRhZ3MuYWxsVGV4dFRhZ3MuaW5jbHVkZXModGFnRGVzY3JpcHRpb24udGFnKSkge1xuICAgICAgYXR0cnNbXCJoLWFsaWduXCJdID0gRUFsaWdubWVudHMuTGVmdDtcbiAgICAgIGlubmVySHRtbCA9IFwi0JLQstC10LTQuNGC0LUg0LLQsNGIINGC0LXQutGB0YJcIjtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlZpZGVvVHlwZUF0dHJOYW1lXSA9IHRoaXMuc2VsZWN0ZWRWaWRlb1BsYXllcjtcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV0gPSB0aGlzLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPT09IEV4dGVybmFsVmlkZW9TdXBwb3J0ZWRUeXBlcy5Wa1ZpZGVvID8gZGVmYXVsdExpbmtWayA6IGRlZmF1bHRMaW5rWW91VHViZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdID0gRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5EZWZhdWx0VmFsdWVGb3JGaWxlSW1hZ2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV0gPSBkZWZhdWx0TGlua0ZvckRvd25sb2FkXG4gICAgICBhdHRyc1tEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGl0bGVBdHRyTmFtZV0gPSAn0KHQutCw0YfQsNGC0YwnXG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0J1dHRvblRhZ0RhdGFDb25zdHMuQ2xpY2tBdHRyTmFtZV0gPSAnJ1xuICAgICAgYXR0cnNbQnV0dG9uVGFnRGF0YUNvbnN0cy5UeXBlQXR0ck5hbWVdID0gJ2J1dHRvbidcbiAgICAgIGF0dHJzW0J1dHRvblRhZ0RhdGFDb25zdHMuVGV4dEF0dHJOYW1lXSA9ICfQmtC90L7Qv9C60LAnXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmJvZHlUYWdzLnB1c2goe1xuICAgICAgdGFnRGVzY3JpcHRpb24sXG4gICAgICBpbm5lckh0bWwsXG4gICAgICBhdHRyaWJ1dGVzOiBhdHRycyxcbiAgICAgIHByZXNlbnRPckVkaXQ6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICBhZGRUZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNBY3RpdmVBZGRUZXh0ID0gIXRoaXMuaXNBY3RpdmVBZGRUZXh0O1xuICAgIHRoaXMuc2F2ZUJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJvZHlUYWdzKSk7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmVBZGRUZXh0KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy50ZXh0QXJlYS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLnJlc2V0VGV4dFN0eWxlKCk7XG4gIH1cblxuICBjbG9zZVRleHQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZUFkZFRleHQgPSAhdGhpcy5pc0FjdGl2ZUFkZFRleHQ7XG4gICAgdGhpcy5ib2R5VGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlQm9keVRhZ3MpKTtcbiAgICB0aGlzLnJlc2V0VGV4dFN0eWxlKCk7XG4gIH1cblxuICByZXNldFRleHRTdHlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHQgPSAnJztcbiAgICB0aGlzLmFsaWdubWVudCA9IEVBbGlnbm1lbnRzLkxlZnQ7XG4gICAgdGhpcy50ZXh0VGFnID0gRGVmYXVsdFRhZ3MudGV4dFRhZ3NbMF0udGFnO1xuICB9XG5cbiAgbW9kZWxDaGFuZ2VkKCkge1xuICAgIGxldCBsaW5lcyA9IHRoaXMudGV4dC5zcGxpdCgnXFxuJyk7XG4gICAgdGhpcy5ib2R5VGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlQm9keVRhZ3MpKTtcbiAgICBsZXQgdGFnRGVzY3JpcHRpb24gPSB0aGlzLnRhZ3NcbiAgICAgIC5maW5kKHggPT4geC50YWcgPT09IHRoaXMudGV4dFRhZyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobGluZXNbaV0ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmJvZHlUYWdzLnB1c2goe1xuICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uLFxuICAgICAgICAgIGlubmVySHRtbDogbGluZXNbaV0sXG4gICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgXCJoLWFsaWduXCI6IGAke3RoaXMuYWxpZ25tZW50fWBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcG9zdEZpbGVzU3RhcnRlZEV2ZW50SGFuZGxlcihtb2RlbDogRmlsZVBvc3RpbmdTdGFydGVkKSB7XG4gICAgdGhpcy5sb2FkaW5nVGV4dCA9IFwi0KTQsNC50LvRiyDQt9Cw0LPRgNGD0LbQsNGO0YLRgdGPINC90LAg0YHQtdGA0LLQtdGAXCI7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICB9XG5cbiAgYWRkVGFnQ3VzdG9tKHRhZzogSHRtbEJvZHlUYWcpIHtcbiAgICB0aGlzLmJvZHlUYWdzLnB1c2godGFnKTtcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICB9XG5cbiAgZmlsZXNUYWdzUmVhZHlIYW5kbGVyKHRhZ3M6IEh0bWxCb2R5VGFnW10pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYm9keVRhZ3MucHVzaCh0YWdzW2ldKTtcbiAgICB9XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8b2JqZWN0W10+KSB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuYm9keVRhZ3MsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgfVxuXG4gIG9uVGFnU2F2ZWRIYW5kbGVyKHRhZzogSHRtbEJvZHlUYWcpIHtcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICB9XG5cbiAgb25UYWdSZW1vdmVkSGFuZGxlcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5ib2R5VGFncy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICByZWNhbGN1bGF0ZUh0bWwoKSB7XG4gICAgbGV0IHJlc3VsdCA9IEJvZHlUYWdzRXh0ZW5zaW9ucy50b0h0bWwodGhpcy5ib2R5VGFncyk7XG4gICAgdGhpcy5odG1sID0gWG1sRXh0ZW5zaW9ucy5mb3JtYXRYbWwoXCI8Ym9keT5cIiArIHJlc3VsdCArIFwiPC9ib2R5PlwiKTtcbiAgICB0aGlzLm9uSHRtbENoYW5nZWQuZW1pdCh0aGlzLmh0bWwpO1xuICB9XG5cbiAgcmVjYWxjdWxhdGVCb2R5VGFncygpIHtcbiAgICB0aGlzLmJvZHlUYWdzID0gQm9keVRhZ3NFeHRlbnNpb25zLmdldEJvZHlUYWdzKHRoaXMuaHRtbCwgdGhpcy5fb3B0aW9ucyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2FsY3VsYXRlQm9keVRhZ3MoKTtcblxuICAgIHRoaXMudGFncyA9IERlZmF1bHRUYWdzLmdldFRhZ3ModGhpcy51c2VIdG1sUmF3KTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLnRhZ3NbMF0udGFnO1xuICAgIHRoaXMuc2VsZWN0ZWRWaWRlb1BsYXllciA9IHRoaXMudmlkZW9QbGF5ZXJzWzBdLnR5cGU7XG4gIH1cbn1cbiIsIkBpZiAoaXNMb2FkaW5nKSB7XG4gIDxkaXY+XG4gICAgPGRpdj5cbiAgICAgIDxtYXQtc3Bpbm5lciBzdHlsZT1cIm1hcmdpbjowIGF1dG87XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+e3tsb2FkaW5nVGV4dH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj48L2Rpdj5cbiAgPC9kaXY+XG59XG48ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCI+XG4gIDxtYXQtY2FyZCBzdHlsZT1cIm1hcmdpbjogMnB4O1wiIGNsYXNzPVwibWF0LWNhcmRcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgQGlmICghaXNBY3RpdmVBZGRUZXh0KSB7XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRUZXh0KClcIiBjbGFzcz1cInctMTAwXCIgbWF0LXN0cm9rZWQtYnV0dG9uPlxuICAgICAgICAgICAgICDQlNC+0LHQsNCy0LjRgtGMINGC0LXQutGB0YJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGlzQWN0aXZlQWRkVGV4dCkge1xuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiA+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+0KLQtdC60YHRgjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCJcbiAgICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCi0LXQutGB0YJcIlxuICAgICAgICAgICAgICAgICN0ZXh0QXJlYVxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibW9kZWxDaGFuZ2VkKClcIlxuICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+0KLQtdCzINC00LvRjyDRgtC10LrRgdGC0LA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJ0ZXh0VGFnXCIgKG5nTW9kZWxDaGFuZ2UpPVwibW9kZWxDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgdGV4dFRhZ09wdGlvbnM7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJ7eyBvcHRpb24udGFnIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5kaXNwbGF5VmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+0JPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90L7QtSDQstGL0YDQsNCy0L3QuNCy0LDQvdC40LU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJhbGlnbm1lbnRcIiAobmdNb2RlbENoYW5nZSk9XCJtb2RlbENoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBhbGlnbm1lbnRPcHRpb25zOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwie3sgb3B0aW9uLnZhbHVlIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi50ZXh0IH19XG4gICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtbm93cmFwIGp1c3RpZnktY29udGVudC1lbmQgdy0xMDBcIj5cbiAgICAgICAgICAgIEBpZiAoaXNBY3RpdmVBZGRUZXh0KSB7XG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRleHQoKVwiIGNsYXNzPVwidy0yMFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4XCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0YxcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGlzQWN0aXZlQWRkVGV4dCkge1xuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZVRleHQoKVwiIGNsYXNzPVwidy0yMFwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiA+XG4gICAgICAgICAgICAgICAg0J7RgtC80LXQvdC40YLRjFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBbaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+0JLRi9Cx0LXRgNC40YLQtSDRgtC10LM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRWYWx1ZVwiPlxuICAgICAgICAgICAgICBAZm9yICh0YWcgb2YgdGFnczsgdHJhY2sgdGFnKSB7XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInRhZy50YWdcIj5cbiAgICAgICAgICAgICAgICAgIHt7dGFnLmRpc3BsYXlWYWx1ZX19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoc2VsZWN0ZWRWYWx1ZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD7QktGL0LHQtdGA0LjRgtC1INCy0LjQtNC10L7Qv9C70LXQtdGAPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRWaWRlb1BsYXllclwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHZpZGVvUGxheWVyIG9mIHZpZGVvUGxheWVyczsgdHJhY2sgdmlkZW9QbGF5ZXIudHlwZSkge1xuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZpZGVvUGxheWVyLnR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3t2aWRlb1BsYXllci5kaXNwbGF5VmFsdWV9fVxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkVGFnKClcIiBjbGFzcz1cInctMTAwXCIgbWF0LXN0cm9rZWQtYnV0dG9uPlxuICAgICAgICAgICAg0JTQvtCx0LDQstC40YLRjCDRgtC10LNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG5cbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cbiAgPG1hdC1jYXJkIHN0eWxlPVwibWFyZ2luOiAycHg7XCIgY2xhc3M9XCJtYXQtY2FyZFwiPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICA8Y3JvY28taHRtbC1hZGQtZmlsZXMtYnRuIChmaWxlc1RhZ3NSZWFkeSk9XCJmaWxlc1RhZ3NSZWFkeUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAocG9zdEZpbGVzU3RhcnRlZCk9XCJwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKCRldmVudClcIiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgPC9jcm9jby1odG1sLWFkZC1maWxlcy1idG4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG4gIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCI+XG4gIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICBAZm9yICh0YWcgb2YgYm9keVRhZ3M7IHRyYWNrIHRhZzsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIDxkaXYgY2RrRHJhZz5cbiAgICAgICAgPG1hdC1jYXJkIHN0eWxlPVwibWFyZ2luOiAycHg7XCIgY2xhc3M9XCJtYXQtY2FyZFwiPlxuICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1oYW5kbGVcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNHB4XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgOWg0VjZoM2wtNS01LTUgNWgzdjN6bS0xIDFINlY3bC01IDUgNSA1di0zaDN2LTR6bTE0IDJsLTUtNXYzaC0zdjRoM3YzbDUtNXptLTkgM2gtNHYzSDdsNSA1IDUtNWgtM3YtM3pcIj5cbiAgICAgICAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIj48L3BhdGg+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZVwiPlxuICAgICAgICAgICAgICAgICAge3t0YWcudGFnRGVzY3JpcHRpb24uZGlzcGxheVZhbHVlfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDE1cHg7XCI+PC9kaXY+XG4gICAgICAgICAgICA8Y3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jayBbdGFnXT1cInRhZ1wiIChvblRhZ1NhdmVkKT1cIm9uVGFnU2F2ZWRIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAob25UYWdSZW1vdmVkKT1cIm9uVGFnUmVtb3ZlZEhhbmRsZXIoaSlcIj5cbiAgICAgICAgICAgIDwvY3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jaz5cbiAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cblxuXG5cbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci92aXN1YWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNHLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixRQUFRLEVBQ1QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNyQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFF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QUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixDQUFDOzswQkF3RC9PLE1BQU07MkJBQUMscUJBQXFCO3lDQXJEUixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBYXJCLFVBQVU7c0JBRFQsS0FBSztnQkFVTixVQUFVO3NCQURULEtBQUs7Z0JBS04sSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxNQUFNO2dCQWtCUCxhQUFhO3NCQURaLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgQ2RrRHJvcExpc3QsIENka0RyYWcsIENka0RyYWdIYW5kbGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJvZHlUYWdzRXh0ZW5zaW9ucyxcbiAgRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLFxuICBUZXh0VGFnc1xufSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7XG4gIEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLFxuICBFeHRlcm5hbFZpZGVvUGxheWVyc1xufSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7IFhtbEV4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7IFRhZ0l0ZW0sIEh0bWxCb2R5VGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XG5pbXBvcnQgeyBGaWxlUG9zdGluZ1N0YXJ0ZWQgfSBmcm9tICcuLi8uLi91cGxvYWQtZmlsZXMtYnRuL3VwbG9hZC1maWxlcy1idG4uY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRUYWdzIH0gZnJvbSAnLi9EZWZhdWx0VGFncyc7XG5pbXBvcnQgeyBBbGlnbm1lbnRzRGF0YSwgRUFsaWdubWVudHMgfSBmcm9tIFwiLi9EZWZhdWx0QWxpZ21lbnRzXCI7XG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zVG9rZW4gfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnO1xuaW1wb3J0IHtEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHN9IGZyb20gXCIuLi8uLi8uLi9leHRlbnNpb25zL0Rvd25sb2FkQnV0dG9uTWV0aG9kc1wiO1xuaW1wb3J0IHsgTWFpbkVkaXRvckJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFpbi1lZGl0b3ItYmxvY2svbWFpbi1lZGl0b3ItYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7IEFkZEZpbGVzQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWRkLWZpbGVzLWJ0bi9hZGQtZmlsZXMtYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENka1RleHRhcmVhQXV0b3NpemUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQge0J1dHRvblRhZ0RhdGFDb25zdHN9IGZyb20gXCIuLi8uLi8uLi9leHRlbnNpb25zL0J1dHRvbk1ldGhvZHNcIjtcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9vcHRpb25zJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rWW91VHViZSA9IFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvNEN0U0FuSkRmc0k/c2k9c2N5Qk5KYTBIczJ0NWFMRVwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rVmsgPSBcImh0dHBzOi8vdmsuY29tL3ZpZGVvX2V4dC5waHA/b2lkPS0yMjgyMjMwNSZpZD00NTYyNDE4NjQmaGQ9MlwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rRm9yRG93bmxvYWQgPSBcImh0dHBzOi8vc3RvcmFnZS55YW5kZXhjbG91ZC5uZXQvbWVnYS1hY2FkZW15L3ByZXNlbnRhdGlvbi5wZGZcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjcm9jby12aXN1YWwtZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTWF0UHJvZ3Jlc3NTcGlubmVyLCBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCwgTWF0QnV0dG9uLCBNYXRGb3JtRmllbGQsIE1hdExhYmVsLCBNYXRJbnB1dCwgQ2RrVGV4dGFyZWFBdXRvc2l6ZSwgRm9ybXNNb2R1bGUsIE1hdFNlbGVjdCwgTWF0T3B0aW9uLCBBZGRGaWxlc0J0bkNvbXBvbmVudCwgQ2RrRHJvcExpc3QsIENka0RyYWcsIENka0RyYWdIYW5kbGUsIE1haW5FZGl0b3JCbG9ja0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVmlzdWFsRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgndGV4dEFyZWEnKSB0ZXh0QXJlYTogRWxlbWVudFJlZjtcblxuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgbG9hZGluZ1RleHQgPSBcItCY0LTRkdGCINC30LDQs9GA0YPQt9C60LBcIjtcbiAgaXNBY3RpdmVBZGRUZXh0ID0gZmFsc2U7XG4gIHRleHQgPSAnJztcblxuICBhbGlnbm1lbnQgPSBFQWxpZ25tZW50cy5MZWZ0O1xuICB0ZXh0VGFnID0gRGVmYXVsdFRhZ3MudGV4dFRhZ3NbMF0udGFnO1xuICB0ZXh0VGFnT3B0aW9ucyA9IERlZmF1bHRUYWdzLnRleHRUYWdzXG4gIGFsaWdubWVudE9wdGlvbnMgPSBBbGlnbm1lbnRzRGF0YVxuXG4gIEBJbnB1dCgpXG4gIHNob3dNYXJrVXAgPSB0cnVlO1xuXG4gIHRhZ3M6IFRhZ0l0ZW1bXSA9IFtdO1xuICB2aWRlb1BsYXllcnMgPSBFeHRlcm5hbFZpZGVvUGxheWVyc1xuICBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XG4gIHNlbGVjdGVkVmlkZW9QbGF5ZXI6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzID0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHM7XG5cbiAgQElucHV0KClcbiAgdXNlSHRtbFJhdyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIEBPdXRwdXQoKVxuICBodG1sOiBzdHJpbmcgPSBcIlwiO1xuXG4gIGlzSHRtbFNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5odG1sLnN0YXJ0c1dpdGgoXCI8Ym9keT5cIik7XG4gIH1cblxuICBjbGVhckh0bWwoKSB7XG4gICAgdGhpcy5odG1sID0gXCJcIjtcbiAgICB0aGlzLnJlY2FsY3VsYXRlQm9keVRhZ3MoKTtcbiAgfVxuXG4gIGdldEh0bWwoKSB7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgICByZXR1cm4gdGhpcy5odG1sO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG9uSHRtbENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVuZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgYm9keVRhZ3M6IEh0bWxCb2R5VGFnW10gPSBbXTtcbiAgc2F2ZUJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2RyZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoQ3JvY29IdG1sT3B0aW9uc1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuX2NkcmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGFkZFRhZygpOiB2b2lkIHtcbiAgICBsZXQgdGFnRGVzY3JpcHRpb24gPSB0aGlzLnRhZ3NcbiAgICAgIC5maW5kKHggPT4geC50YWcgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG5cbiAgICBsZXQgYXR0cnMgPSB7fTtcbiAgICBsZXQgaW5uZXJIdG1sID0gXCJcIjtcblxuICAgIGlmIChUZXh0VGFncy5hbGxUZXh0VGFncy5pbmNsdWRlcyh0YWdEZXNjcmlwdGlvbi50YWcpKSB7XG4gICAgICBhdHRyc1tcImgtYWxpZ25cIl0gPSBFQWxpZ25tZW50cy5MZWZ0O1xuICAgICAgaW5uZXJIdG1sID0gXCLQktCy0LXQtNC40YLQtSDQstCw0Ygg0YLQtdC60YHRglwiO1xuICAgIH1cbiAgICBlbHNlIGlmICh0YWdEZXNjcmlwdGlvbi50YWcgPT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVmlkZW9UeXBlQXR0ck5hbWVdID0gdGhpcy5zZWxlY3RlZFZpZGVvUGxheWVyO1xuICAgICAgYXR0cnNbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuTGlua0F0dHJOYW1lXSA9IHRoaXMuc2VsZWN0ZWRWaWRlb1BsYXllciA9PT0gRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLlZrVmlkZW8gPyBkZWZhdWx0TGlua1ZrIDogZGVmYXVsdExpbmtZb3VUdWJlO1xuICAgIH1cbiAgICBlbHNlIGlmICh0YWdEZXNjcmlwdGlvbi50YWcgPT0gRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lKSB7XG4gICAgICBhdHRyc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlNjcmVlbk1lZGlhUmVxdWVzdF0gPSBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkRlZmF1bHRWYWx1ZUZvckZpbGVJbWFnZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IERvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0cy5UYWdOYW1lKSB7XG4gICAgICBhdHRyc1tEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuTGlua0F0dHJOYW1lXSA9IGRlZmF1bHRMaW5rRm9yRG93bmxvYWRcbiAgICAgIGF0dHJzW0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0cy5UaXRsZUF0dHJOYW1lXSA9ICfQodC60LDRh9Cw0YLRjCdcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbQnV0dG9uVGFnRGF0YUNvbnN0cy5DbGlja0F0dHJOYW1lXSA9ICcnXG4gICAgICBhdHRyc1tCdXR0b25UYWdEYXRhQ29uc3RzLlR5cGVBdHRyTmFtZV0gPSAnYnV0dG9uJ1xuICAgICAgYXR0cnNbQnV0dG9uVGFnRGF0YUNvbnN0cy5UZXh0QXR0ck5hbWVdID0gJ9Ca0L3QvtC/0LrQsCdcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBhdHRyc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuYm9keVRhZ3MucHVzaCh7XG4gICAgICB0YWdEZXNjcmlwdGlvbixcbiAgICAgIGlubmVySHRtbCxcbiAgICAgIGF0dHJpYnV0ZXM6IGF0dHJzLFxuICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgfVxuXG4gIGFkZFRleHQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZUFkZFRleHQgPSAhdGhpcy5pc0FjdGl2ZUFkZFRleHQ7XG4gICAgdGhpcy5zYXZlQm9keVRhZ3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuYm9keVRhZ3MpKTtcbiAgICBpZiAodGhpcy5pc0FjdGl2ZUFkZFRleHQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMucmVzZXRUZXh0U3R5bGUoKTtcbiAgfVxuXG4gIGNsb3NlVGV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzQWN0aXZlQWRkVGV4dCA9ICF0aGlzLmlzQWN0aXZlQWRkVGV4dDtcbiAgICB0aGlzLmJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNhdmVCb2R5VGFncykpO1xuICAgIHRoaXMucmVzZXRUZXh0U3R5bGUoKTtcbiAgfVxuXG4gIHJlc2V0VGV4dFN0eWxlKCk6IHZvaWQge1xuICAgIHRoaXMudGV4dCA9ICcnO1xuICAgIHRoaXMuYWxpZ25tZW50ID0gRUFsaWdubWVudHMuTGVmdDtcbiAgICB0aGlzLnRleHRUYWcgPSBEZWZhdWx0VGFncy50ZXh0VGFnc1swXS50YWc7XG4gIH1cblxuICBtb2RlbENoYW5nZWQoKSB7XG4gICAgbGV0IGxpbmVzID0gdGhpcy50ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICB0aGlzLmJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNhdmVCb2R5VGFncykpO1xuICAgIGxldCB0YWdEZXNjcmlwdGlvbiA9IHRoaXMudGFnc1xuICAgICAgLmZpbmQoeCA9PiB4LnRhZyA9PT0gdGhpcy50ZXh0VGFnKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChsaW5lc1tpXS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuYm9keVRhZ3MucHVzaCh7XG4gICAgICAgICAgdGFnRGVzY3JpcHRpb24sXG4gICAgICAgICAgaW5uZXJIdG1sOiBsaW5lc1tpXSxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBcImgtYWxpZ25cIjogYCR7dGhpcy5hbGlnbm1lbnR9YFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKG1vZGVsOiBGaWxlUG9zdGluZ1N0YXJ0ZWQpIHtcbiAgICB0aGlzLmxvYWRpbmdUZXh0ID0gXCLQpNCw0LnQu9GLINC30LDQs9GA0YPQttCw0Y7RgtGB0Y8g0L3QsCDRgdC10YDQstC10YBcIjtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gIH1cblxuICBhZGRUYWdDdXN0b20odGFnOiBIdG1sQm9keVRhZykge1xuICAgIHRoaXMuYm9keVRhZ3MucHVzaCh0YWcpO1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICBmaWxlc1RhZ3NSZWFkeUhhbmRsZXIodGFnczogSHRtbEJvZHlUYWdbXSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5ib2R5VGFncy5wdXNoKHRhZ3NbaV0pO1xuICAgIH1cbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxvYmplY3RbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5ib2R5VGFncywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICB9XG5cbiAgb25UYWdTYXZlZEhhbmRsZXIodGFnOiBIdG1sQm9keVRhZykge1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICBvblRhZ1JlbW92ZWRIYW5kbGVyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmJvZHlUYWdzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgfVxuXG4gIHJlY2FsY3VsYXRlSHRtbCgpIHtcbiAgICBsZXQgcmVzdWx0ID0gQm9keVRhZ3NFeHRlbnNpb25zLnRvSHRtbCh0aGlzLmJvZHlUYWdzKTtcbiAgICB0aGlzLmh0bWwgPSBYbWxFeHRlbnNpb25zLmZvcm1hdFhtbChcIjxib2R5PlwiICsgcmVzdWx0ICsgXCI8L2JvZHk+XCIpO1xuICAgIHRoaXMub25IdG1sQ2hhbmdlZC5lbWl0KHRoaXMuaHRtbCk7XG4gIH1cblxuICByZWNhbGN1bGF0ZUJvZHlUYWdzKCkge1xuICAgIHRoaXMuYm9keVRhZ3MgPSBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0Qm9keVRhZ3ModGhpcy5odG1sLCB0aGlzLl9vcHRpb25zKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVjYWxjdWxhdGVCb2R5VGFncygpO1xuXG4gICAgdGhpcy50YWdzID0gRGVmYXVsdFRhZ3MuZ2V0VGFncyh0aGlzLnVzZUh0bWxSYXcpO1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMudGFnc1swXS50YWc7XG4gICAgdGhpcy5zZWxlY3RlZFZpZGVvUGxheWVyID0gdGhpcy52aWRlb1BsYXllcnNbMF0udHlwZTtcbiAgfVxufVxuIiwiQGlmIChpc0xvYWRpbmcpIHtcbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgPG1hdC1zcGlubmVyIHN0eWxlPVwibWFyZ2luOjAgYXV0bztcIj48L21hdC1zcGlubmVyPlxuICAgICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj57e2xvYWRpbmdUZXh0fX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxuICA8L2Rpdj5cbn1cbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cbiAgPG1hdC1jYXJkIHN0eWxlPVwibWFyZ2luOiAycHg7XCIgY2xhc3M9XCJtYXQtY2FyZFwiPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICBAaWYgKCFpc0FjdGl2ZUFkZFRleHQpIHtcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRleHQoKVwiIGNsYXNzPVwidy0xMDBcIiBtYXQtc3Ryb2tlZC1idXR0b24+XG4gICAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0Ywg0YLQtdC60YHRglxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaXNBY3RpdmVBZGRUZXh0KSB7XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiID5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD7QotC10LrRgdGCPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICNhdXRvc2l6ZT1cImNka1RleHRhcmVhQXV0b3NpemVcIlxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjFcIlxuICAgICAgICAgICAgICAgIGNka0F1dG9zaXplTWF4Um93cz1cIjVcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi0KLQtdC60YHRglwiXG4gICAgICAgICAgICAgICAgI3RleHRBcmVhXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJtb2RlbENoYW5nZWQoKVwiXG4gICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD7QotC10LMg0LTQu9GPINGC0LXQutGB0YLQsDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInRleHRUYWdcIiAobmdNb2RlbENoYW5nZSk9XCJtb2RlbENoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiB0ZXh0VGFnT3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cInt7IG9wdGlvbi50YWcgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLmRpc3BsYXlWYWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD7Qk9C+0YDQuNC30L7QvdGC0LDQu9GM0L3QvtC1INCy0YvRgNCw0LLQvdC40LLQsNC90LjQtTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cImFsaWdubWVudFwiIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGFsaWdubWVudE9wdGlvbnM7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJ7eyBvcHRpb24udmFsdWUgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLnRleHQgfX1cbiAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ub3dyYXAganVzdGlmeS1jb250ZW50LWVuZCB3LTEwMFwiPlxuICAgICAgICAgICAgQGlmIChpc0FjdGl2ZUFkZFRleHQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkVGV4dCgpXCIgY2xhc3M9XCJ3LTIwXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEwcHhcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAg0JTQvtCx0LDQstC40YLRjFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaXNBY3RpdmVBZGRUZXh0KSB7XG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlVGV4dCgpXCIgY2xhc3M9XCJ3LTIwXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwid2FyblwiID5cbiAgICAgICAgICAgICAgICDQntGC0LzQtdC90LjRgtGMXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG4gIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCI+XG4gIDxtYXQtY2FyZCBzdHlsZT1cIm1hcmdpbjogMnB4O1wiIGNsYXNzPVwibWF0LWNhcmRcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD7QktGL0LHQtdGA0LjRgtC1INGC0LXQszwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlXCI+XG4gICAgICAgICAgICAgIEBmb3IgKHRhZyBvZiB0YWdzOyB0cmFjayB0YWcpIHtcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidGFnLnRhZ1wiPlxuICAgICAgICAgICAgICAgICAge3t0YWcuZGlzcGxheVZhbHVlfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChzZWxlY3RlZFZhbHVlID09PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPtCS0YvQsdC10YDQuNGC0LUg0LLQuNC00LXQvtC/0LvQtdC10YA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZpZGVvUGxheWVyXCI+XG4gICAgICAgICAgICAgICAgQGZvciAodmlkZW9QbGF5ZXIgb2YgdmlkZW9QbGF5ZXJzOyB0cmFjayB2aWRlb1BsYXllci50eXBlKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidmlkZW9QbGF5ZXIudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e3ZpZGVvUGxheWVyLmRpc3BsYXlWYWx1ZX19XG4gICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRUYWcoKVwiIGNsYXNzPVwidy0xMDBcIiBtYXQtc3Ryb2tlZC1idXR0b24+XG4gICAgICAgICAgICDQlNC+0LHQsNCy0LjRgtGMINGC0LXQs1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBbaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxjcm9jby1odG1sLWFkZC1maWxlcy1idG4gKGZpbGVzVGFnc1JlYWR5KT1cImZpbGVzVGFnc1JlYWR5SGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChwb3N0RmlsZXNTdGFydGVkKT1cInBvc3RGaWxlc1N0YXJ0ZWRFdmVudEhhbmRsZXIoJGV2ZW50KVwiIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICA8L2Nyb2NvLWh0bWwtYWRkLWZpbGVzLWJ0bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG5cbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cbiAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgIEBmb3IgKHRhZyBvZiBib2R5VGFnczsgdHJhY2sgdGFnOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgPGRpdiBjZGtEcmFnPlxuICAgICAgICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLWhhbmRsZVwiIGNka0RyYWdIYW5kbGU+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0cHhcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA5aDRWNmgzbC01LTUtNSA1aDN2M3ptLTEgMUg2VjdsLTUgNSA1IDV2LTNoM3YtNHptMTQgMmwtNS01djNoLTN2NGgzdjNsNS01em0tOSAzaC00djNIN2w1IDUgNS01aC0zdi0zelwiPlxuICAgICAgICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlXCI+XG4gICAgICAgICAgICAgICAgICB7e3RhZy50YWdEZXNjcmlwdGlvbi5kaXNwbGF5VmFsdWV9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTVweDtcIj48L2Rpdj5cbiAgICAgICAgICAgIDxjcm9jby1odG1sLW1haW4tZWRpdG9yLWJsb2NrIFt0YWddPVwidGFnXCIgKG9uVGFnU2F2ZWQpPVwib25UYWdTYXZlZEhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblRhZ1JlbW92ZWQpPVwib25UYWdSZW1vdmVkSGFuZGxlcihpKVwiPlxuICAgICAgICAgICAgPC9jcm9jby1odG1sLW1haW4tZWRpdG9yLWJsb2NrPlxuICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuXG5cblxuIl19
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
65
65
  }], onFileIdChanged: [{
66
66
  type: Output
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUF5QyxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFhdEQsTUFBTSxPQUFPLHFCQUFxQjtJQWtCOUIsWUFDcUIsWUFBK0IsRUFDQSxRQUEwQjtRQUR6RCxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDQSxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQWY5RSxjQUFTLEdBQUcsY0FBYyxDQUFBO1FBTTFCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsVUFBSyxHQUF5QixFQUFFLENBQUM7UUFHakMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBTTdDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWM7UUFDakIsT0FBTyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzNCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFvQztRQUNoRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBMURRLHFCQUFxQixtREFvQmxCLHFCQUFxQjtrR0FwQnhCLHFCQUFxQixtT0NuQmxDLDJsREE2Qk0seUREWlEsY0FBYyw0K0JBQUUsV0FBVzs7MkZBRTVCLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDSSwyQkFBMkIsY0FHekIsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQzs7MEJBc0JqQyxNQUFNOzJCQUFDLHFCQUFxQjt5Q0FmakMsU0FBUztzQkFEUixLQUFLO2dCQUtOLE1BQU07c0JBRkwsS0FBSzs7c0JBQ0wsTUFBTTtnQkFRUCxlQUFlO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRob2RzIH0gZnJvbSAnLi4vLi4vZXh0ZW5zaW9ucy9JbWFnZU1ldGhvZHMnO1xuaW1wb3J0IHsgRmlsZU5hbWVBbmRJZE1vZGVsLCBGaWxlc1F1ZXJ5U2VydmljZSwgRmlsZVR5cGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlcy1xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnNUb2tlbiB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zIH0gZnJvbSAnLi4vLi4vZXh0ZW5zaW9ucy9IdG1sRXh0cmFjdGlvbk1ldGhvZHMnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hRdWVzdGlvbnNGb3JtRGF0YSB7XG4gICAgcTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLWlkLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LmNzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU2VsZWN0TW9kdWxlLCBGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZUlkU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgcTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbFRleHQgPSBcItCf0L7QuNGB0Log0YTQsNC50LvQvtCyXCJcblxuICAgIEBJbnB1dCgpXG4gICAgQE91dHB1dCgpXG4gICAgZmlsZUlkOiBudW1iZXI7XG5cbiAgICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBmaWxlczogRmlsZU5hbWVBbmRJZE1vZGVsW10gPSBbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uRmlsZUlkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVTZXJ2aWNlOiBGaWxlc1F1ZXJ5U2VydmljZSxcbiAgICAgICAgQEluamVjdChDcm9jb0h0bWxPcHRpb25zVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnNcbiAgICApIHtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlZChmaWxlSWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLm9uRmlsZUlkQ2hhbmdlZC5lbWl0KGZpbGVJZCk7XG4gICAgfVxuXG4gICAgZ2V0U3JjKGZpbGVJZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBJbWFnZU1ldGhvZHMuYnVpbGRTbWFsbFVybChmaWxlSWQsIHRoaXMuX29wdGlvbnMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkRmlsZXMoKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2ZpbGVTZXJ2aWNlLmdldEZpbGVzKHtcbiAgICAgICAgICAgIGNvdW50OiAxMCxcbiAgICAgICAgICAgIG9mZlNldDogMCxcbiAgICAgICAgICAgIGZpbGVOYW1lOiBudWxsLFxuICAgICAgICAgICAgZmlsZVR5cGVzOiBbRmlsZVR5cGUuSW1hZ2VdLFxuICAgICAgICAgICAgYXBwbGljYXRpb25JZDogbnVsbCxcbiAgICAgICAgICAgIHE6IHRoaXMucVxuICAgICAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gWy4uLmRhdGEubGlzdF07XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TZWFyY2hDaGFuZ2VkKHE6IHsgdGVybTogc3RyaW5nLCBpdGVtczogb2JqZWN0W10gfSkge1xuICAgICAgICB0aGlzLnEgPSBxLnRlcm07XG4gICAgICAgIHRoaXMubG9hZEZpbGVzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xuICAgIH1cbn1cbiIsIjxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImZpbGVOYW1lXCI+e3tsYWJlbFRleHR9fTwvbGFiZWw+XG4gICAgICAgIDxuZy1zZWxlY3QgWyhuZ01vZGVsKV09XCJmaWxlSWRcIiAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlZCgkZXZlbnQpXCIgW2l0ZW1zXT1cImZpbGVzXCIgI3NlbGVjdFxuICAgICAgICAgICAgYmluZExhYmVsPVwiZmlsZU5hbWVcIiAoc2VhcmNoKT1cIm9uU2VhcmNoQ2hhbmdlZCgkZXZlbnQpXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtsb2FkaW5nVGV4dF09XCIn0JfQsNCz0YDRg9C20LDRjiDRhNCw0LnQu9GLJ1wiXG4gICAgICAgICAgICBkcm9wZG93blBvc2l0aW9uPVwiYXV0b1wiIGJpbmRWYWx1ZT1cImZpbGVJZFwiIGxhYmVsRm9ySWQ9XCJmaWxlTmFtZVwiIHBsYWNlaG9sZGVyPVwi0JLRi9Cx0YDQsNGC0Ywg0YTQsNC50LtcIlxuICAgICAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtc2VhcmNoPVwic2VhcmNoVGVybVwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC1hdXRvIGQtYmxvY2sgaW1nLWZsdWlkXCIgW3NyY109XCJnZXRTcmMoaXRlbS5maWxlSWQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImg1XCI+0KTQsNC50Ls6IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoNVwiIFtuZ09wdGlvbkhpZ2hsaWdodF09XCJzZWFyY2hcIj48Yj57e2l0ZW0uZmlsZU5hbWV9fTwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YTQsNC50LvQsDogPGI+e3tpdGVtLmZpbGVJZH19PC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1zZWxlY3Q+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdj5cbiAgICDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRhNCw0LnQu9CwOiB7e2ZpbGVJZH19XG48L2Rpdj4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUF5QyxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFjdEQsTUFBTSxPQUFPLHFCQUFxQjtJQWtCOUIsWUFDcUIsWUFBK0IsRUFDQSxRQUEwQjtRQUR6RCxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDQSxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQWY5RSxjQUFTLEdBQUcsY0FBYyxDQUFBO1FBTTFCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsVUFBSyxHQUF5QixFQUFFLENBQUM7UUFHakMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBTTdDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWM7UUFDakIsT0FBTyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzNCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFvQztRQUNoRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBMURRLHFCQUFxQixtREFvQmxCLHFCQUFxQjtrR0FwQnhCLHFCQUFxQixtT0NuQmxDLDJsREE2Qk0seUREWlEsY0FBYyw0K0JBQUUsV0FBVzs7MkZBRTVCLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDSSwyQkFBMkIsY0FHekIsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQzs7MEJBc0JqQyxNQUFNOzJCQUFDLHFCQUFxQjt5Q0FmakMsU0FBUztzQkFEUixLQUFLO2dCQUtOLE1BQU07c0JBRkwsS0FBSzs7c0JBQ0wsTUFBTTtnQkFRUCxlQUFlO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRob2RzIH0gZnJvbSAnLi4vLi4vZXh0ZW5zaW9ucy9JbWFnZU1ldGhvZHMnO1xuaW1wb3J0IHsgRmlsZU5hbWVBbmRJZE1vZGVsLCBGaWxlc1F1ZXJ5U2VydmljZSwgRmlsZVR5cGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlcy1xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnNUb2tlbiB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gJy4uLy4uL29wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFF1ZXN0aW9uc0Zvcm1EYXRhIHtcbiAgICBxOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3JvY28taHRtbC1maWxlLWlkLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtaWQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLWlkLXNlbGVjdC5jb21wb25lbnQuY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdTZWxlY3RNb2R1bGUsIEZvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlSWRTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICBxOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsVGV4dCA9IFwi0J/QvtC40YHQuiDRhNCw0LnQu9C+0LJcIlxuXG4gICAgQElucHV0KClcbiAgICBAT3V0cHV0KClcbiAgICBmaWxlSWQ6IG51bWJlcjtcblxuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIGZpbGVzOiBGaWxlTmFtZUFuZElkTW9kZWxbXSA9IFtdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgb25GaWxlSWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZmlsZVNlcnZpY2U6IEZpbGVzUXVlcnlTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KENyb2NvSHRtbE9wdGlvbnNUb2tlbikgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogQ3JvY29IdG1sT3B0aW9uc1xuICAgICkge1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2VkKGZpbGVJZDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMub25GaWxlSWRDaGFuZ2VkLmVtaXQoZmlsZUlkKTtcbiAgICB9XG5cbiAgICBnZXRTcmMoZmlsZUlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIEltYWdlTWV0aG9kcy5idWlsZFNtYWxsVXJsKGZpbGVJZCwgdGhpcy5fb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZEZpbGVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRGaWxlcygpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZmlsZVNlcnZpY2UuZ2V0RmlsZXMoe1xuICAgICAgICAgICAgY291bnQ6IDEwLFxuICAgICAgICAgICAgb2ZmU2V0OiAwLFxuICAgICAgICAgICAgZmlsZU5hbWU6IG51bGwsXG4gICAgICAgICAgICBmaWxlVHlwZXM6IFtGaWxlVHlwZS5JbWFnZV0sXG4gICAgICAgICAgICBhcHBsaWNhdGlvbklkOiBudWxsLFxuICAgICAgICAgICAgcTogdGhpcy5xXG4gICAgICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbLi4uZGF0YS5saXN0XTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNlYXJjaENoYW5nZWQocTogeyB0ZXJtOiBzdHJpbmcsIGl0ZW1zOiBvYmplY3RbXSB9KSB7XG4gICAgICAgIHRoaXMucSA9IHEudGVybTtcbiAgICAgICAgdGhpcy5sb2FkRmlsZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMubG9hZEZpbGVzKCk7XG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiZmlsZU5hbWVcIj57e2xhYmVsVGV4dH19PC9sYWJlbD5cbiAgICAgICAgPG5nLXNlbGVjdCBbKG5nTW9kZWwpXT1cImZpbGVJZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2VkKCRldmVudClcIiBbaXRlbXNdPVwiZmlsZXNcIiAjc2VsZWN0XG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJmaWxlTmFtZVwiIChzZWFyY2gpPVwib25TZWFyY2hDaGFuZ2VkKCRldmVudClcIiBbbG9hZGluZ109XCJsb2FkaW5nXCIgW2xvYWRpbmdUZXh0XT1cIifQl9Cw0LPRgNGD0LbQsNGOINGE0LDQudC70YsnXCJcbiAgICAgICAgICAgIGRyb3Bkb3duUG9zaXRpb249XCJhdXRvXCIgYmluZFZhbHVlPVwiZmlsZUlkXCIgbGFiZWxGb3JJZD1cImZpbGVOYW1lXCIgcGxhY2Vob2xkZXI9XCLQktGL0LHRgNCw0YLRjCDRhNCw0LnQu1wiXG4gICAgICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1zZWFyY2g9XCJzZWFyY2hUZXJtXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiBbc3JjXT1cImdldFNyYyhpdGVtLmZpbGVJZClcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaDVcIj7QpNCw0LnQuzogPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImg1XCIgW25nT3B0aW9uSGlnaGxpZ2h0XT1cInNlYXJjaFwiPjxiPnt7aXRlbS5maWxlTmFtZX19PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRhNCw0LnQu9CwOiA8Yj57e2l0ZW0uZmlsZUlkfX08L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLXNlbGVjdD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2PlxuICAgINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGE0LDQudC70LA6IHt7ZmlsZUlkfX1cbjwvZGl2PiJdfQ==
@@ -1,22 +1,31 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Inject, Input } from '@angular/core';
2
2
  import { ImageMethods } from '../../../extensions';
3
3
  import { Subject, takeUntil } from "rxjs";
4
4
  import { NgStyle } from "@angular/common";
5
+ import { CrocoHtmlOptionsToken } from '../../../consts';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../../services/screen-width.service";
7
8
  export class FileImageTagViewComponent {
8
9
  set item(item) {
9
10
  let data = item.data;
10
11
  this.imageSrc = data.src;
11
- this.requests = ImageMethods.mediaRequestStringToArrayParser(data.screenMediaRequest);
12
+ this.requests = this.getMediaRequests(data.screenMediaRequest);
12
13
  }
13
- constructor(screenWidthService) {
14
+ constructor(screenWidthService, _options) {
14
15
  this.screenWidthService = screenWidthService;
16
+ this._options = _options;
15
17
  this.imageSrc = "";
16
18
  this.requests = [];
17
19
  this.unsubscribe = new Subject();
18
20
  this.imageMaxHeight = null;
19
21
  }
22
+ getMediaRequests(screenMediaRequest) {
23
+ let result = ImageMethods.mediaRequestStringToArrayParser(screenMediaRequest);
24
+ if (result.length === 0) {
25
+ return this._options.globalMediaRequests ?? [];
26
+ }
27
+ return result;
28
+ }
20
29
  ngOnInit() {
21
30
  this.screenWidthService.getScreenWidth()
22
31
  .pipe(takeUntil(this.unsubscribe))
@@ -28,7 +37,7 @@ export class FileImageTagViewComponent {
28
37
  this.unsubscribe.next();
29
38
  this.unsubscribe.complete();
30
39
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileImageTagViewComponent, deps: [{ token: i1.ScreenWidthService }], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileImageTagViewComponent, deps: [{ token: i1.ScreenWidthService }, { token: CrocoHtmlOptionsToken }], target: i0.ɵɵFactoryTarget.Component }); }
32
41
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FileImageTagViewComponent, isStandalone: true, selector: "croco-html-file-image-tag-view", inputs: { item: "item" }, ngImport: i0, template: "<img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\"\n [src]=\"imageSrc\"\n alt=\"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E\"\n/>\n", styles: [""], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
33
42
  }
34
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileImageTagViewComponent, decorators: [{
@@ -36,7 +45,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
36
45
  args: [{ selector: 'croco-html-file-image-tag-view', imports: [
37
46
  NgStyle
38
47
  ], standalone: true, template: "<img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\"\n [src]=\"imageSrc\"\n alt=\"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E\"\n/>\n" }]
39
- }], ctorParameters: () => [{ type: i1.ScreenWidthService }], propDecorators: { item: [{
48
+ }], ctorParameters: () => [{ type: i1.ScreenWidthService }, { type: undefined, decorators: [{
49
+ type: Inject,
50
+ args: [CrocoHtmlOptionsToken]
51
+ }] }], propDecorators: { item: [{
40
52
  type: Input
41
53
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbWFnZS10YWctdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy94bWwtdGFncy9maWxlLWltYWdlLXRhZy12aWV3L2ZpbGUtaW1hZ2UtdGFnLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMveG1sLXRhZ3MvZmlsZS1pbWFnZS10YWctdmlldy9maWxlLWltYWdlLXRhZy12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQW1CLFlBQVksRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRixPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQVd4QyxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLElBQWEsSUFBSSxDQUFDLElBQW9CO1FBQ3BDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUF3QixDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUN2RixDQUFDO0lBUUQsWUFBNkIsa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFObkUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGFBQVEsR0FBb0IsRUFBRSxDQUFBO1FBRXRCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLElBQUksQ0FBQztJQUV5QyxDQUFDO0lBRXZFLFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFO2FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2pDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0EzQlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsb0hDaEJ0Qyw2U0FNQSwwRERNSSxPQUFPOzsyRkFJRSx5QkFBeUI7a0JBVHJDLFNBQVM7K0JBQ0UsZ0NBQWdDLFdBR2pDO3dCQUNQLE9BQU87cUJBQ1IsY0FDVyxJQUFJO3VGQUlILElBQUk7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9JbnRlcmZhY2VCbG9jayc7XG5pbXBvcnQge0ZpbGVJbWFnZVRhZ0RhdGEsIEltYWdlTWV0aG9kcywgSU1lZGlhUmVxdWVzdH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucyc7XG5pbXBvcnQge1NjcmVlbldpZHRoU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3NjcmVlbi13aWR0aC5zZXJ2aWNlXCI7XG5pbXBvcnQge1N1YmplY3QsIHRha2VVbnRpbH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7TmdTdHlsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWZpbGUtaW1hZ2UtdGFnLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1pbWFnZS10YWctdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLWltYWdlLXRhZy12aWV3LmNvbXBvbmVudC5jc3MnLFxuICBpbXBvcnRzOiBbXG4gICAgTmdTdHlsZVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVJbWFnZVRhZ1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgc2V0IGl0ZW0oaXRlbTogSW50ZXJmYWNlQmxvY2spIHtcbiAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YSBhcyBGaWxlSW1hZ2VUYWdEYXRhO1xuICAgIHRoaXMuaW1hZ2VTcmMgPSBkYXRhLnNyYztcbiAgICB0aGlzLnJlcXVlc3RzID0gSW1hZ2VNZXRob2RzLm1lZGlhUmVxdWVzdFN0cmluZ1RvQXJyYXlQYXJzZXIoZGF0YS5zY3JlZW5NZWRpYVJlcXVlc3QpXG4gIH1cblxuICBpbWFnZVNyYyA9IFwiXCI7XG4gIHJlcXVlc3RzOiBJTWVkaWFSZXF1ZXN0W10gPSBbXVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgaW1hZ2VNYXhIZWlnaHQgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NyZWVuV2lkdGhTZXJ2aWNlOiBTY3JlZW5XaWR0aFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zY3JlZW5XaWR0aFNlcnZpY2UuZ2V0U2NyZWVuV2lkdGgoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShzY3JlZW5XaWR0aCA9PiB7XG4gICAgICAgIHRoaXMuaW1hZ2VNYXhIZWlnaHQgPSBJbWFnZU1ldGhvZHMuc2NyZWVuU2l6ZUNoYW5nZWQoc2NyZWVuV2lkdGgsIHRoaXMucmVxdWVzdHMpO1xuICAgICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGltZ1xuICBbbmdTdHlsZV09XCJ7ICdtYXgtaGVpZ2h0JzogaW1hZ2VNYXhIZWlnaHQgPyBpbWFnZU1heEhlaWdodCArICdweCcgOiAnMTAwJSd9XCJcbiAgY2xhc3M9XCJteC1hdXRvIGQtYmxvY2sgaW1nLWZsdWlkXCJcbiAgW3NyY109XCJpbWFnZVNyY1wiXG4gIGFsdD1cItCY0LfQvtCx0YDQsNC20LXQvdC40LUg0L3QtSDQt9Cw0LPRgNGD0LbQtdC90L5cIlxuLz5cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbWFnZS10YWctdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy94bWwtdGFncy9maWxlLWltYWdlLXRhZy12aWV3L2ZpbGUtaW1hZ2UtdGFnLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMveG1sLXRhZ3MvZmlsZS1pbWFnZS10YWctdmlldy9maWxlLWltYWdlLXRhZy12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFvQixZQUFZLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFFcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFXeEQsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxJQUFhLElBQUksQ0FBQyxJQUFvQjtRQUNwQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBd0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQVFELFlBQTZCLGtCQUFzQyxFQUNqQixRQUEwQjtRQUQvQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBUDVFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxhQUFRLEdBQW9CLEVBQUUsQ0FBQTtRQUV0QixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLENBQUM7SUFJekIsQ0FBQztJQUVMLGdCQUFnQixDQUFDLGtCQUEwQjtRQUN6QyxJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUMsK0JBQStCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU5RSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFO2FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2pDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0F2Q1UseUJBQXlCLG9EQWUxQixxQkFBcUI7a0dBZnBCLHlCQUF5QixvSENsQnRDLDZTQU1BLDBERFFJLE9BQU87OzJGQUlFLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FHakM7d0JBQ1AsT0FBTztxQkFDUixjQUNXLElBQUk7OzBCQWlCYixNQUFNOzJCQUFDLHFCQUFxQjt5Q0FibEIsSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9JbnRlcmZhY2VCbG9jayc7XG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhLCBJbWFnZU1ldGhvZHMsIElNZWRpYVJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zJztcbmltcG9ydCB7IFNjcmVlbldpZHRoU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4td2lkdGguc2VydmljZVwiO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vb3B0aW9ucyc7XG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zVG9rZW4gfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWZpbGUtaW1hZ2UtdGFnLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1pbWFnZS10YWctdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLWltYWdlLXRhZy12aWV3LmNvbXBvbmVudC5jc3MnLFxuICBpbXBvcnRzOiBbXG4gICAgTmdTdHlsZVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVJbWFnZVRhZ1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgc2V0IGl0ZW0oaXRlbTogSW50ZXJmYWNlQmxvY2spIHtcbiAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YSBhcyBGaWxlSW1hZ2VUYWdEYXRhO1xuICAgIHRoaXMuaW1hZ2VTcmMgPSBkYXRhLnNyYztcbiAgICB0aGlzLnJlcXVlc3RzID0gdGhpcy5nZXRNZWRpYVJlcXVlc3RzKGRhdGEuc2NyZWVuTWVkaWFSZXF1ZXN0KTtcbiAgfVxuXG4gIGltYWdlU3JjID0gXCJcIjtcbiAgcmVxdWVzdHM6IElNZWRpYVJlcXVlc3RbXSA9IFtdXG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBpbWFnZU1heEhlaWdodCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzY3JlZW5XaWR0aFNlcnZpY2U6IFNjcmVlbldpZHRoU2VydmljZSxcbiAgICBASW5qZWN0KENyb2NvSHRtbE9wdGlvbnNUb2tlbikgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogQ3JvY29IdG1sT3B0aW9uc1xuICApIHsgfVxuXG4gIGdldE1lZGlhUmVxdWVzdHMoc2NyZWVuTWVkaWFSZXF1ZXN0OiBzdHJpbmcpIDogSU1lZGlhUmVxdWVzdFtdIHtcbiAgICBsZXQgcmVzdWx0ID0gSW1hZ2VNZXRob2RzLm1lZGlhUmVxdWVzdFN0cmluZ1RvQXJyYXlQYXJzZXIoc2NyZWVuTWVkaWFSZXF1ZXN0KTtcblxuICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5nbG9iYWxNZWRpYVJlcXVlc3RzID8/IFtdO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcmVlbldpZHRoU2VydmljZS5nZXRTY3JlZW5XaWR0aCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHNjcmVlbldpZHRoID0+IHtcbiAgICAgICAgdGhpcy5pbWFnZU1heEhlaWdodCA9IEltYWdlTWV0aG9kcy5zY3JlZW5TaXplQ2hhbmdlZChzY3JlZW5XaWR0aCwgdGhpcy5yZXF1ZXN0cyk7XG4gICAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8aW1nXG4gIFtuZ1N0eWxlXT1cInsgJ21heC1oZWlnaHQnOiBpbWFnZU1heEhlaWdodCA/IGltYWdlTWF4SGVpZ2h0ICsgJ3B4JyA6ICcxMDAlJ31cIlxuICBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIlxuICBbc3JjXT1cImltYWdlU3JjXCJcbiAgYWx0PVwi0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDQvdC1INC30LDQs9GA0YPQttC10L3QvlwiXG4vPlxuIl19
@@ -160,4 +160,4 @@ export class BodyTagsExtensions {
160
160
  };
161
161
  }
162
162
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQW9CLGlCQUFpQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNqQyxJQUFJLFlBQVksR0FBRztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZTtZQUNyRCxDQUFD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QUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUEyQixDQUFDO1lBRWhELE9BQU87Z0JBQ0wsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDZCxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2QsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUMzRDtnQkFDRCxVQUFVLEVBQUUsUUFBUTtnQkFDcEIsU0FBUyxFQUFFLEVBQUU7YUFDZCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUUzQyxPQUFPO2dCQUNILGFBQWEsRUFBRSxJQUFJO2dCQUNuQixjQUFjLEVBQUU7b0JBQ1osR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU87b0JBQ2pDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUUsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPO1lBQ0gsYUFBYSxFQUFFLElBQUk7WUFDbkIsY0FBYyxFQUFFO2dCQUNaLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDeEIsWUFBWSxFQUFFLHNCQUFzQjthQUN2QztZQUNELFVBQVUsRUFBRSxFQUFFO1lBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUM7SUFDUixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gXCIuLi9tb2RlbHMvbW9kZWxzXCI7XG5pbXBvcnQgeyBIdG1sRXh0cmFjdGlvbk1ldGhvZHMsIENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tIFwiLi9IdG1sRXh0cmFjdGlvbk1ldGhvZHNcIjtcbmltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSBcIi4vSW50ZXJmYWNlQmxvY2tcIjtcbmltcG9ydCB7IEh0bWxSYXdUYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vSHRtbFJhd1RhZ0RhdGFDb25zdHNcIjtcbmltcG9ydCB7IEZpbGVJbWFnZVRhZ0RhdGEsIEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9JbWFnZU1ldGhvZHNcIjtcbmltcG9ydCB7IFRleHRUYWdzIH0gZnJvbSBcIi4vVGV4dE1ldGhvZHNcIjtcbmltcG9ydCB7U2ltcGxlVGV4dFRhZ0RhdGEsIFRleHRUYWdEYXRhQ29uc3RzfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xuaW1wb3J0IHsgVGFncyB9IGZyb20gXCIuL1RhZ3NcIjtcbmltcG9ydCB7RXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHN9IGZyb20gXCIuL1ZpZGVvTWV0aG9kc1wiO1xuaW1wb3J0IHtEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHN9IGZyb20gXCIuL0Rvd25sb2FkQnV0dG9uTWV0aG9kc1wiO1xuaW1wb3J0IHtCdXR0b25UYWdEYXRhQ29uc3RzfSBmcm9tIFwiLi9CdXR0b25NZXRob2RzXCI7XG5cbmV4cG9ydCBjbGFzcyBCb2R5VGFnc0V4dGVuc2lvbnMge1xuXG4gICAgc3RhdGljIGdldERlc2NyaXB0aW9uKHRhZ05hbWU6IHN0cmluZykge1xuICAgICAgICB2YXIgZGVzY3JpcHRpb25zID0ge1xuICAgICAgICAgICAgXCJ0ZXh0XCI6IFwi0KLQtdC60YHRglwiLFxuICAgICAgICAgICAgXCJoMVwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAxINGD0YDQvtCy0L3Rj1wiLFxuICAgICAgICAgICAgXCJoMlwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAyINGD0YDQvtCy0L3Rj1wiLFxuICAgICAgICAgICAgXCJoM1wiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAzINGD0YDQvtCy0L3Rj1wiLFxuICAgICAgICAgICAgXCJoNFwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA0INGD0YDQvtCy0L3Rj1wiLFxuICAgICAgICAgICAgXCJoNVwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA1INGD0YDQvtCy0L3Rj1wiLFxuICAgICAgICAgICAgXCJoNlwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA2INGD0YDQvtCy0L3Rj1wiLFxuICAgICAgICAgICAgW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZV06IFwi0JjQt9C+0LHRgNCw0LbQtdC90LjQtVwiLFxuICAgICAgICAgICAgW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcItCS0L3QtdGI0L3QtdC1INCy0LjQtNC10L5cIixcbiAgICAgICAgICAgIFtEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZV06IFwi0JrQvdC+0L/QutCwXCIsXG4gICAgICAgICAgICBbSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZV06IFwiSHRtbCDRgNCw0LfQvNC10YLQutCwXCIsXG4gICAgICAgICAgICBbRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcItCa0L3QvtC/0LrQsCDQtNC70Y8g0YHQutCw0YfQuNCy0LDQvdC40Y9cIixcbiAgICAgICAgICAgIFtCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcItCa0L3QvtC/0LrQsFwiXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uc1t0YWdOYW1lXTtcbiAgICB9XG5cbiAgICBzdGF0aWMgdG9IdG1sKGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGh0bWxzID0gYm9keVRhZ3MubWFwKHggPT4ge1xuICAgICAgICAgICAgaWYgKFRleHRUYWdzLmFsbFRleHRUYWdzLmluY2x1ZGVzKHgudGFnRGVzY3JpcHRpb24udGFnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgPCR7eC50YWdEZXNjcmlwdGlvbi50YWd9IGgtYWxpZ249XCIke3guYXR0cmlidXRlc1tUZXh0VGFnRGF0YUNvbnN0cy5IQWxpZ25dfVwiPiR7eC5pbm5lckh0bWx9PC8ke3gudGFnRGVzY3JpcHRpb24udGFnfT5gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSB0eXBlPVwiJHt4LmF0dHJpYnV0ZXNbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVmlkZW9UeXBlQXR0ck5hbWVdfVwiIGxpbms9XCIke3guYXR0cmlidXRlc1tFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5MaW5rQXR0ck5hbWVdfVwiPiR7eC5pbm5lckh0bWx9PC8ke3gudGFnRGVzY3JpcHRpb24udGFnfT5gXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh4LnRhZ0Rlc2NyaXB0aW9uLnRhZyA9PT0gXCJodG1sLXJhd1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHgudGFnRGVzY3JpcHRpb24udGFnID09PSBEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSB0aXRsZT1cIiR7eC5hdHRyaWJ1dGVzW0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0cy5UaXRsZUF0dHJOYW1lXX1cIiBsaW5rPVwiJHt4LmF0dHJpYnV0ZXNbRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV19XCI+PC8ke3gudGFnRGVzY3JpcHRpb24udGFnfT5gXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh4LnRhZ0Rlc2NyaXB0aW9uLnRhZyA9PT0gQnV0dG9uVGFnRGF0YUNvbnN0cy5UYWdOYW1lKSB7XG4gICAgICAgICAgICAgIHJldHVybiBgPCR7eC50YWdEZXNjcmlwdGlvbi50YWd9IHRleHQ9XCIke3guYXR0cmlidXRlc1tCdXR0b25UYWdEYXRhQ29uc3RzLlRleHRBdHRyTmFtZV19XCIgdHlwZT1cIiR7eC5hdHRyaWJ1dGVzW0J1dHRvblRhZ0RhdGFDb25zdHMuVHlwZUF0dHJOYW1lXX1cIiAgY2xpY2s9XCIke3guYXR0cmlidXRlc1tCdXR0b25UYWdEYXRhQ29uc3RzLkNsaWNrQXR0ck5hbWVdfVwiPjwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIEJvZHlUYWdzRXh0ZW5zaW9ucy5pbWFnZVRhZ1RvSHRtbCh4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGh0bWxzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGh0bWxzW2luZGV4XTtcblxuICAgICAgICAgICAgcmVzdWx0ICs9IGVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHN0YXRpYyBpbWFnZVRhZ1RvSHRtbChpbWFnZVRhZzogSHRtbEJvZHlUYWcpIHtcblxuICAgICAgICBsZXQgZmlsZUlkQXR0ciA9IFwiXCI7XG4gICAgICAgIGxldCBzY3JlZW5NZWRpYVJlcXVlc3RBdHRyID0gXCJcIjtcblxuICAgICAgICBpZiAoaW1hZ2VUYWcuYXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lKSAmJiBpbWFnZVRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdKSB7XG4gICAgICAgICAgICBmaWxlSWRBdHRyID0gYCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZX09XCIke2ltYWdlVGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV19XCJgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGltYWdlVGFnLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3QpICYmIGltYWdlVGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdKSB7XG4gICAgICAgICAgc2NyZWVuTWVkaWFSZXF1ZXN0QXR0ciA9IGAke0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuU2NyZWVuTWVkaWFSZXF1ZXN0fT1cIiR7aW1hZ2VUYWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlNjcmVlbk1lZGlhUmVxdWVzdF19XCJgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGA8JHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWV9ICR7ZmlsZUlkQXR0cn0gJHtzY3JlZW5NZWRpYVJlcXVlc3RBdHRyfT48LyR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfT5gO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRCb2R5VGFncyhodG1sOiBzdHJpbmcsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy50cmFuc2Zvcm1IdG1sU3RyaW5nVG9CbG9ja3MoaHRtbCwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiByZXN1bHQubWFwKHggPT4gQm9keVRhZ3NFeHRlbnNpb25zLnRvQm9keVRhZyh4KSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNhbml0aXplSW5uZXJIdG1sKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBodG1sLnRyaW0oKS5yZXBsYWNlKCdcXG5cXHQnLCAnJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIHRvQm9keVRhZyhkYXRhOiBJbnRlcmZhY2VCbG9jayk6IEh0bWxCb2R5VGFnIHtcbiAgICAgICAgaWYgKFRleHRUYWdzLmFsbFRleHRUYWdzLmluY2x1ZGVzKGRhdGEudHlwZSkpIHtcbiAgICAgICAgICAgIGxldCB0ZXh0VGFnRGF0YSA9IGRhdGEuZGF0YSBhcyBTaW1wbGVUZXh0VGFnRGF0YTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHRhZzogdGV4dFRhZ0RhdGEudGV4dFRhZ05hbWUsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgXCJoLWFsaWduXCI6IHRleHRUYWdEYXRhLmhvcml6b250YWxBbGlnbm1lbnQgfSxcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbCh0ZXh0VGFnRGF0YS5odG1sKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuXG4gICAgICAgICAgICBsZXQgZmlsZURhdGEgPSBkYXRhLmRhdGEgYXMgRmlsZUltYWdlVGFnRGF0YTtcblxuICAgICAgICAgICAgbGV0IGF0dHJzID0ge307XG5cbiAgICAgICAgICAgIGlmIChmaWxlRGF0YS5maWxlSWQpIHtcbiAgICAgICAgICAgICAgICBhdHRyc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSA9IGZpbGVEYXRhLmZpbGVJZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpbGVEYXRhLnNjcmVlbk1lZGlhUmVxdWVzdCkge1xuICAgICAgICAgICAgICBhdHRyc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlNjcmVlbk1lZGlhUmVxdWVzdF0gPSBmaWxlRGF0YS5zY3JlZW5NZWRpYVJlcXVlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0YWc6IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogYXR0cnMsXG4gICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBcIlwiXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgdGFnOiBkYXRhLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZpbGVEYXRhLFxuICAgICAgICAgICAgICAgIGlubmVySHRtbDogXCJcIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBCdXR0b25UYWdEYXRhQ29uc3RzO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXG4gICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICB0YWc6IGRhdGEudHlwZSxcbiAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZpbGVEYXRhLFxuICAgICAgICAgICAgaW5uZXJIdG1sOiBcIlwiXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IERvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0cy5UYWdOYW1lKSB7XG4gICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEJ1dHRvblRhZ0RhdGFDb25zdHM7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcbiAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgIHRhZzogZGF0YS50eXBlLFxuICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXR0cmlidXRlczogZmlsZURhdGEsXG4gICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICB0YWc6IEh0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBCb2R5VGFnc0V4dGVuc2lvbnMuc2FuaXRpemVJbm5lckh0bWwoZGF0YS5kYXRhW1wiaW5uZXJIVE1MXCJdKVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXG4gICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICB0YWc6IFRhZ3MuVW5zdXBwb3J0ZWRUYWcsXG4gICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IFwi0J3QtdC/0L7QtNC00LXRgNC20LjQstCw0LXQvNGL0Lkg0YLQtdCzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICAgICAgICAgIGlubmVySHRtbDogSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBb0Isc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBR3BELE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFlO1FBQ2pDLElBQUksWUFBWSxHQUFHO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWE7WUFDL0MsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsRUFBRSxlQUFlO1lBQ3JELENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUUsUUFBUTtZQUMvQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGVBQWU7WUFDL0MsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsRUFBRSx1QkFBdUI7WUFDOUQsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRO1NBQzFDLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pCLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxPQUFPLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDbkksQ0FBQztZQUVELElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEtBQUssMEJBQTBCLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUE7WUFDbk4sQ0FBQztZQUVELElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUE7WUFDOUUsQ0FBQztZQUVELElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEtBQUssMkJBQTJCLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pFLE9BQU8sSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtZQUNsTSxDQUFDO1lBRUQsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsS0FBSyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUE7WUFDNU8sQ0FBQztZQUVILE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDaEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdCLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFDdEIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQXFCO1FBRXZDLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUVoQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUMxSSxVQUFVLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxjQUFjLEtBQUssUUFBUSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO1FBQzVILENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDcEosc0JBQXNCLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxrQkFBa0IsS0FBSyxRQUFRLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztRQUM5SSxDQUFDO1FBRUQsT0FBTyxJQUFJLHNCQUFzQixDQUFDLE9BQU8sSUFBSSxVQUFVLElBQUksc0JBQXNCLE1BQU0sc0JBQXNCLENBQUMsT0FBTyxHQUFHLENBQUM7SUFDN0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBWSxFQUFFLE9BQXlCO1FBQ3RELElBQUksTUFBTSxHQUFHLHFCQUFxQixDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVk7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFvQjtRQUNqQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUF5QixDQUFDO1lBRWpELE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsV0FBVyxDQUFDLFdBQVc7b0JBQzVCLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRTtnQkFDMUQsU0FBUyxFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7YUFDcEUsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssc0JBQXNCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFL0MsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQXdCLENBQUM7WUFFN0MsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBRWYsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25FLENBQUM7WUFFRCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNoQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUM7WUFDakYsQ0FBQztZQUVELE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsc0JBQXNCLENBQUMsT0FBTztvQkFDbkMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsS0FBSztnQkFDakIsU0FBUyxFQUFFLEVBQUU7YUFDaEIsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssMEJBQTBCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQWtDLENBQUM7WUFFdkQsT0FBTztnQkFDSCxhQUFhLEVBQUUsSUFBSTtnQkFDbkIsY0FBYyxFQUFFO29CQUNaLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZCxZQUFZLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQzdEO2dCQUNELFVBQVUsRUFBRSxRQUFRO2dCQUNwQixTQUFTLEVBQUUsRUFBRTthQUNoQixDQUFDO1FBQ04sQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBMkIsQ0FBQztZQUVoRCxPQUFPO2dCQUNMLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixjQUFjLEVBQUU7b0JBQ2QsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNkLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDM0Q7Z0JBQ0QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRSxFQUFFO2FBQ2QsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssMkJBQTJCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQTJCLENBQUM7WUFFaEQsT0FBTztnQkFDTCxhQUFhLEVBQUUsSUFBSTtnQkFDbkIsY0FBYyxFQUFFO29CQUNkLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZCxZQUFZLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQzNEO2dCQUNELFVBQVUsRUFBRSxRQUFRO2dCQUNwQixTQUFTLEVBQUUsRUFBRTthQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRTNDLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTztvQkFDakMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRSxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUN4QixZQUFZLEVBQUUsc0JBQXNCO2FBQ3ZDO1lBQ0QsVUFBVSxFQUFFLEVBQUU7WUFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDbEMsQ0FBQztJQUNSLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0bWxCb2R5VGFnIH0gZnJvbSBcIi4uL21vZGVscy9tb2RlbHNcIjtcbmltcG9ydCB7IEh0bWxFeHRyYWN0aW9uTWV0aG9kcyB9IGZyb20gXCIuL0h0bWxFeHRyYWN0aW9uTWV0aG9kc1wiO1xuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tIFwiLi9JbnRlcmZhY2VCbG9ja1wiO1xuaW1wb3J0IHsgSHRtbFJhd1RhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9IdG1sUmF3VGFnRGF0YUNvbnN0c1wiO1xuaW1wb3J0IHsgRmlsZUltYWdlVGFnRGF0YSwgRmlsZUltYWdlVGFnRGF0YUNvbnN0cyB9IGZyb20gXCIuL0ltYWdlTWV0aG9kc1wiO1xuaW1wb3J0IHsgVGV4dFRhZ3MgfSBmcm9tIFwiLi9UZXh0TWV0aG9kc1wiO1xuaW1wb3J0IHtTaW1wbGVUZXh0VGFnRGF0YSwgVGV4dFRhZ0RhdGFDb25zdHN9IGZyb20gXCIuL1RleHRTaW1wbGVNZXRob2RzXCI7XG5pbXBvcnQgeyBUYWdzIH0gZnJvbSBcIi4vVGFnc1wiO1xuaW1wb3J0IHtFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0c30gZnJvbSBcIi4vVmlkZW9NZXRob2RzXCI7XG5pbXBvcnQge0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0c30gZnJvbSBcIi4vRG93bmxvYWRCdXR0b25NZXRob2RzXCI7XG5pbXBvcnQge0J1dHRvblRhZ0RhdGFDb25zdHN9IGZyb20gXCIuL0J1dHRvbk1ldGhvZHNcIjtcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tIFwiLi4vb3B0aW9uc1wiO1xuXG5leHBvcnQgY2xhc3MgQm9keVRhZ3NFeHRlbnNpb25zIHtcblxuICAgIHN0YXRpYyBnZXREZXNjcmlwdGlvbih0YWdOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdmFyIGRlc2NyaXB0aW9ucyA9IHtcbiAgICAgICAgICAgIFwidGV4dFwiOiBcItCi0LXQutGB0YJcIixcbiAgICAgICAgICAgIFwiaDFcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMSDRg9GA0L7QstC90Y9cIixcbiAgICAgICAgICAgIFwiaDJcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMiDRg9GA0L7QstC90Y9cIixcbiAgICAgICAgICAgIFwiaDNcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMyDRg9GA0L7QstC90Y9cIixcbiAgICAgICAgICAgIFwiaDRcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNCDRg9GA0L7QstC90Y9cIixcbiAgICAgICAgICAgIFwiaDVcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNSDRg9GA0L7QstC90Y9cIixcbiAgICAgICAgICAgIFwiaDZcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNiDRg9GA0L7QstC90Y9cIixcbiAgICAgICAgICAgIFtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcItCY0LfQvtCx0YDQsNC20LXQvdC40LVcIixcbiAgICAgICAgICAgIFtFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQktC90LXRiNC90LXQtSDQstC40LTQtdC+XCIsXG4gICAgICAgICAgICBbRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcItCa0L3QvtC/0LrQsFwiLFxuICAgICAgICAgICAgW0h0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcIkh0bWwg0YDQsNC30LzQtdGC0LrQsFwiLFxuICAgICAgICAgICAgW0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQmtC90L7Qv9C60LAg0LTQu9GPINGB0LrQsNGH0LjQstCw0L3QuNGPXCIsXG4gICAgICAgICAgICBbQnV0dG9uVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQmtC90L7Qv9C60LBcIlxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnNbdGFnTmFtZV07XG4gICAgfVxuXG4gICAgc3RhdGljIHRvSHRtbChib2R5VGFnczogSHRtbEJvZHlUYWdbXSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBodG1scyA9IGJvZHlUYWdzLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIGlmIChUZXh0VGFncy5hbGxUZXh0VGFncy5pbmNsdWRlcyh4LnRhZ0Rlc2NyaXB0aW9uLnRhZykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSBoLWFsaWduPVwiJHt4LmF0dHJpYnV0ZXNbVGV4dFRhZ0RhdGFDb25zdHMuSEFsaWduXX1cIj4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHgudGFnRGVzY3JpcHRpb24udGFnID09PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gdHlwZT1cIiR7eC5hdHRyaWJ1dGVzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlZpZGVvVHlwZUF0dHJOYW1lXX1cIiBsaW5rPVwiJHt4LmF0dHJpYnV0ZXNbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuTGlua0F0dHJOYW1lXX1cIj4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IFwiaHRtbC1yYXdcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBgPCR7eC50YWdEZXNjcmlwdGlvbi50YWd9PiR7eC5pbm5lckh0bWx9PC8ke3gudGFnRGVzY3JpcHRpb24udGFnfT5gXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh4LnRhZ0Rlc2NyaXB0aW9uLnRhZyA9PT0gRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gdGl0bGU9XCIke3guYXR0cmlidXRlc1tEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGl0bGVBdHRyTmFtZV19XCIgbGluaz1cIiR7eC5hdHRyaWJ1dGVzW0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0cy5MaW5rQXR0ck5hbWVdfVwiPjwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSB0ZXh0PVwiJHt4LmF0dHJpYnV0ZXNbQnV0dG9uVGFnRGF0YUNvbnN0cy5UZXh0QXR0ck5hbWVdfVwiIHR5cGU9XCIke3guYXR0cmlidXRlc1tCdXR0b25UYWdEYXRhQ29uc3RzLlR5cGVBdHRyTmFtZV19XCIgIGNsaWNrPVwiJHt4LmF0dHJpYnV0ZXNbQnV0dG9uVGFnRGF0YUNvbnN0cy5DbGlja0F0dHJOYW1lXX1cIj48LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBCb2R5VGFnc0V4dGVuc2lvbnMuaW1hZ2VUYWdUb0h0bWwoeCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBodG1scy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBodG1sc1tpbmRleF07XG5cbiAgICAgICAgICAgIHJlc3VsdCArPSBlbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBzdGF0aWMgaW1hZ2VUYWdUb0h0bWwoaW1hZ2VUYWc6IEh0bWxCb2R5VGFnKSB7XG5cbiAgICAgICAgbGV0IGZpbGVJZEF0dHIgPSBcIlwiO1xuICAgICAgICBsZXQgc2NyZWVuTWVkaWFSZXF1ZXN0QXR0ciA9IFwiXCI7XG5cbiAgICAgICAgaWYgKGltYWdlVGFnLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZSkgJiYgaW1hZ2VUYWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSkge1xuICAgICAgICAgICAgZmlsZUlkQXR0ciA9IGAke0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWV9PVwiJHtpbWFnZVRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdfVwiYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbWFnZVRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuU2NyZWVuTWVkaWFSZXF1ZXN0KSAmJiBpbWFnZVRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuU2NyZWVuTWVkaWFSZXF1ZXN0XSkge1xuICAgICAgICAgIHNjcmVlbk1lZGlhUmVxdWVzdEF0dHIgPSBgJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlNjcmVlbk1lZGlhUmVxdWVzdH09XCIke2ltYWdlVGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdfVwiYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgPCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfSAke2ZpbGVJZEF0dHJ9ICR7c2NyZWVuTWVkaWFSZXF1ZXN0QXR0cn0+PC8ke0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZX0+YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Qm9keVRhZ3MoaHRtbDogc3RyaW5nLCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSBIdG1sRXh0cmFjdGlvbk1ldGhvZHMudHJhbnNmb3JtSHRtbFN0cmluZ1RvQmxvY2tzKGh0bWwsIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcCh4ID0+IEJvZHlUYWdzRXh0ZW5zaW9ucy50b0JvZHlUYWcoeCkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzYW5pdGl6ZUlubmVySHRtbChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaHRtbC50cmltKCkucmVwbGFjZSgnXFxuXFx0JywgJycpO1xuICAgIH1cblxuICAgIHN0YXRpYyB0b0JvZHlUYWcoZGF0YTogSW50ZXJmYWNlQmxvY2spOiBIdG1sQm9keVRhZyB7XG4gICAgICAgIGlmIChUZXh0VGFncy5hbGxUZXh0VGFncy5pbmNsdWRlcyhkYXRhLnR5cGUpKSB7XG4gICAgICAgICAgICBsZXQgdGV4dFRhZ0RhdGEgPSBkYXRhLmRhdGEgYXMgU2ltcGxlVGV4dFRhZ0RhdGE7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0YWc6IHRleHRUYWdEYXRhLnRleHRUYWdOYW1lLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7IFwiaC1hbGlnblwiOiB0ZXh0VGFnRGF0YS5ob3Jpem9udGFsQWxpZ25tZW50IH0sXG4gICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBCb2R5VGFnc0V4dGVuc2lvbnMuc2FuaXRpemVJbm5lckh0bWwodGV4dFRhZ0RhdGEuaHRtbClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGF0YS50eXBlID09PSBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcblxuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEZpbGVJbWFnZVRhZ0RhdGE7XG5cbiAgICAgICAgICAgIGxldCBhdHRycyA9IHt9O1xuXG4gICAgICAgICAgICBpZiAoZmlsZURhdGEuZmlsZUlkKSB7XG4gICAgICAgICAgICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlRGF0YS5maWxlSWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWxlRGF0YS5zY3JlZW5NZWRpYVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdID0gZmlsZURhdGEuc2NyZWVuTWVkaWFSZXF1ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgdGFnOiBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGF0dHJzLFxuICAgICAgICAgICAgICAgIGlubmVySHRtbDogXCJcIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cztcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHRhZzogZGF0YS50eXBlLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBmaWxlRGF0YSxcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGF0YS50eXBlID09PSBCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgICAgICBsZXQgZmlsZURhdGEgPSBkYXRhLmRhdGEgYXMgQnV0dG9uVGFnRGF0YUNvbnN0cztcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxuICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgdGFnOiBkYXRhLnR5cGUsXG4gICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiBmaWxlRGF0YSxcbiAgICAgICAgICAgIGlubmVySHRtbDogXCJcIlxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGF0YS50eXBlID09PSBEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBCdXR0b25UYWdEYXRhQ29uc3RzO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXG4gICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICB0YWc6IGRhdGEudHlwZSxcbiAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZpbGVEYXRhLFxuICAgICAgICAgICAgaW5uZXJIdG1sOiBcIlwiXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IEh0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGFnOiBIdG1sUmF3VGFnRGF0YUNvbnN0cy5UYWdOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgIGlubmVySHRtbDogQm9keVRhZ3NFeHRlbnNpb25zLnNhbml0aXplSW5uZXJIdG1sKGRhdGEuZGF0YVtcImlubmVySFRNTFwiXSlcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxuICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgICAgdGFnOiBUYWdzLlVuc3VwcG9ydGVkVGFnLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBcItCd0LXQv9C+0LTQtNC10YDQttC40LLQsNC10LzRi9C5INGC0LXQs1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgICAgICAgICBpbm5lckh0bWw6IEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
@@ -64,4 +64,4 @@ export class HtmlExtractionMethods {
64
64
  return this.transformHtmlElementToBlocks(div, options);
65
65
  }
66
66
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHRtbEV4dHJhY3Rpb25NZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvSHRtbEV4dHJhY3Rpb25NZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixZQUFZLEVBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRixPQUFPLEVBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFNbkUsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBaUIsRUFBRSxPQUFlO1FBRXhELElBQUksSUFBSSxHQUFtQixpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFFcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO2FBRU0sZUFBVSxHQUFHO1FBQ2xCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFpQixFQUFFLE9BQXlCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDbEcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLElBQWlCLEVBQUUsT0FBeUIsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFlBQVks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QUksQ0FBQyxTQUFTO3FCQUMxQjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxTQUFTLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxLQUFhLEVBQUUsT0FBeUI7UUFFekUsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxLQUFLLEdBQUcsS0FBSzthQUNWLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckIsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV0QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEltYWdlTWV0aG9kcyB9IGZyb20gXCIuL0ltYWdlTWV0aG9kc1wiO1xuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tIFwiLi9JbnRlcmZhY2VCbG9ja1wiO1xuaW1wb3J0IHsgVGFibGVNZXRob2RzIH0gZnJvbSBcIi4vVGFibGVNZXRob2RzXCI7XG5pbXBvcnQgeyBUZXh0TWV0aG9kcyB9IGZyb20gXCIuL1RleHRNZXRob2RzXCI7XG5pbXBvcnQgeyBHZW5lcmljVGV4dFRhZywgVGV4dFNpbXBsZU1ldGhvZHMgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMsXG4gIFZpZGVvTWV0aG9kc1xufSBmcm9tIFwiLi9WaWRlb01ldGhvZHNcIjtcbmltcG9ydCB7RG93bmxvYWRCdXR0b25NZXRob2RzLCBEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHN9IGZyb20gXCIuL0Rvd25sb2FkQnV0dG9uTWV0aG9kc1wiO1xuaW1wb3J0IHtCdXR0b25NZXRob2RzLCBCdXR0b25UYWdEYXRhQ29uc3RzfSBmcm9tIFwiLi9CdXR0b25NZXRob2RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JvY29IdG1sT3B0aW9ucyB7XG4gIHB1YmxpY0ltYWdlUmVzaXplZFVybEZvcm1hdDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSHRtbEV4dHJhY3Rpb25NZXRob2RzIHtcblxuICBzdGF0aWMgRXh0cmFjdEhlYWRlclRhZyhlbGVtOiBIVE1MRWxlbWVudCwgdGFnTmFtZTogc3RyaW5nKTogR2VuZXJpY1RleHRUYWcge1xuXG4gICAgdmFyIGRhdGE6IEdlbmVyaWNUZXh0VGFnID0gVGV4dFNpbXBsZU1ldGhvZHMuRXh0cmFjdFRleHRUYWcoZWxlbSk7XG4gICAgZGF0YS50eXBlID0gdGFnTmFtZTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdGljIEV4dHJhY3RvcnMgPSB7XG4gICAgW1wiVEVYVFwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBUZXh0U2ltcGxlTWV0aG9kcy5FeHRyYWN0VGV4dFRhZyhlbGVtKSxcbiAgICBbXCJGSUxFLUlNQUdFXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEltYWdlTWV0aG9kcy5FeHRyYWN0SW1hZ2UoZWxlbSwgb3B0aW9ucyksXG4gICAgW1wiVEFCTEVcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gVGFibGVNZXRob2RzLmdldFRhYmxlRnJvbUh0bWxUYWcoZWxlbSBhcyBIVE1MVGFibGVFbGVtZW50LCBvcHRpb25zKSxcbiAgICBbXCJSSUNILVRFWFRcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gVGV4dE1ldGhvZHMuRXh0cmFjdFJpY2hUZXh0RGF0YShlbGVtKSxcbiAgICBbXCJIVE1MLVJBV1wiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiAoe1xuICAgICAgdHlwZTogXCJodG1sLXJhd1wiLFxuICAgICAgZGF0YToge1xuICAgICAgICBpbm5lckhUTUw6IGVsZW0uaW5uZXJIVE1MXG4gICAgICB9XG4gICAgfSksXG4gICAgW1wiSDFcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RIZWFkZXJUYWcoZWxlbSwgXCJoMVwiKSxcbiAgICBbXCJIMlwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImgyXCIpLFxuICAgIFtcIkgzXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0SGVhZGVyVGFnKGVsZW0sIFwiaDNcIiksXG4gICAgW1wiSDRcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RIZWFkZXJUYWcoZWxlbSwgXCJoNFwiKSxcbiAgICBbXCJINVwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImg1XCIpLFxuICAgIFtcIkg2XCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0SGVhZGVyVGFnKGVsZW0sIFwiaDZcIiksXG4gICAgW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUudG9VcHBlckNhc2UoKV06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gVmlkZW9NZXRob2RzLkV4dHJhY3RFeHRlcm5hbFZpZGVvVGFnKGVsZW0pLFxuICAgIFtEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZS50b1VwcGVyQ2FzZSgpXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBEb3dubG9hZEJ1dHRvbk1ldGhvZHMuRXh0cmFjdERvd25sb2FkQnV0dG9uVGFnKGVsZW0pLFxuICAgIFtCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWUudG9VcHBlckNhc2UoKV06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gQnV0dG9uTWV0aG9kcy5FeHRyYWN0QnV0dG9uVGFnKGVsZW0pLFxuICB9O1xuXG4gIHN0YXRpYyB0cmFuc2Zvcm1IdG1sRWxlbWVudFRvQmxvY2tzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKTogSW50ZXJmYWNlQmxvY2tbXSB7XG4gICAgdmFyIGRhdGE6IEludGVyZmFjZUJsb2NrW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsZW0gPSBlbGVtZW50LmNoaWxkcmVuLml0ZW0oaSkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmICghSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RvcnMuaGFzT3duUHJvcGVydHkoZWxlbS50YWdOYW1lKSkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIHR5cGU6IFwidW5zdXBwb3J0ZWQtdGFnXCIsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGFnU3RyaW5nOiBlbGVtLm91dGVySFRNTFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGV4dHJhY3RvciA9IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0b3JzW2VsZW0udGFnTmFtZV07XG4gICAgICAgIHZhciByZXN1bHQgPSBleHRyYWN0b3IoZWxlbSwgb3B0aW9ucyk7XG4gICAgICAgIGRhdGEucHVzaChyZXN1bHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdGljIHRyYW5zZm9ybUh0bWxTdHJpbmdUb0Jsb2Nrcyh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKTogSW50ZXJmYWNlQmxvY2tbXSB7XG5cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWVcbiAgICAgIC5yZXBsYWNlKCdcXG4nLCAnJylcbiAgICAgIC5yZXBsYWNlKCdcXHQnLCAnJyk7XG5cbiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICBkaXYuaW5uZXJIVE1MID0gdmFsdWU7XG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1IdG1sRWxlbWVudFRvQmxvY2tzKGRpdiwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHRtbEV4dHJhY3Rpb25NZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvSHRtbEV4dHJhY3Rpb25NZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixZQUFZLEVBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHckUsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBaUIsRUFBRSxPQUFlO1FBRXhELElBQUksSUFBSSxHQUFtQixpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFFcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO2FBRU0sZUFBVSxHQUFHO1FBQ2xCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFpQixFQUFFLE9BQXlCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDbEcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLElBQWlCLEVBQUUsT0FBeUIsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFlBQVks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QUksQ0FBQyxTQUFTO3FCQUMxQjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxTQUFTLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxLQUFhLEVBQUUsT0FBeUI7UUFFekUsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxLQUFLLEdBQUcsS0FBSzthQUNWLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckIsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV0QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEltYWdlTWV0aG9kcyB9IGZyb20gXCIuL0ltYWdlTWV0aG9kc1wiO1xuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tIFwiLi9JbnRlcmZhY2VCbG9ja1wiO1xuaW1wb3J0IHsgVGFibGVNZXRob2RzIH0gZnJvbSBcIi4vVGFibGVNZXRob2RzXCI7XG5pbXBvcnQgeyBUZXh0TWV0aG9kcyB9IGZyb20gXCIuL1RleHRNZXRob2RzXCI7XG5pbXBvcnQgeyBHZW5lcmljVGV4dFRhZywgVGV4dFNpbXBsZU1ldGhvZHMgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMsXG4gIFZpZGVvTWV0aG9kc1xufSBmcm9tIFwiLi9WaWRlb01ldGhvZHNcIjtcbmltcG9ydCB7IERvd25sb2FkQnV0dG9uTWV0aG9kcywgRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vRG93bmxvYWRCdXR0b25NZXRob2RzXCI7XG5pbXBvcnQgeyBCdXR0b25NZXRob2RzLCBCdXR0b25UYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vQnV0dG9uTWV0aG9kc1wiO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gXCIuLi9vcHRpb25zXCI7XG5cbmV4cG9ydCBjbGFzcyBIdG1sRXh0cmFjdGlvbk1ldGhvZHMge1xuXG4gIHN0YXRpYyBFeHRyYWN0SGVhZGVyVGFnKGVsZW06IEhUTUxFbGVtZW50LCB0YWdOYW1lOiBzdHJpbmcpOiBHZW5lcmljVGV4dFRhZyB7XG5cbiAgICB2YXIgZGF0YTogR2VuZXJpY1RleHRUYWcgPSBUZXh0U2ltcGxlTWV0aG9kcy5FeHRyYWN0VGV4dFRhZyhlbGVtKTtcbiAgICBkYXRhLnR5cGUgPSB0YWdOYW1lO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBzdGF0aWMgRXh0cmFjdG9ycyA9IHtcbiAgICBbXCJURVhUXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IFRleHRTaW1wbGVNZXRob2RzLkV4dHJhY3RUZXh0VGFnKGVsZW0pLFxuICAgIFtcIkZJTEUtSU1BR0VcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gSW1hZ2VNZXRob2RzLkV4dHJhY3RJbWFnZShlbGVtLCBvcHRpb25zKSxcbiAgICBbXCJUQUJMRVwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBUYWJsZU1ldGhvZHMuZ2V0VGFibGVGcm9tSHRtbFRhZyhlbGVtIGFzIEhUTUxUYWJsZUVsZW1lbnQsIG9wdGlvbnMpLFxuICAgIFtcIlJJQ0gtVEVYVFwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBUZXh0TWV0aG9kcy5FeHRyYWN0UmljaFRleHREYXRhKGVsZW0pLFxuICAgIFtcIkhUTUwtUkFXXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+ICh7XG4gICAgICB0eXBlOiBcImh0bWwtcmF3XCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGlubmVySFRNTDogZWxlbS5pbm5lckhUTUxcbiAgICAgIH1cbiAgICB9KSxcbiAgICBbXCJIMVwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImgxXCIpLFxuICAgIFtcIkgyXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0SGVhZGVyVGFnKGVsZW0sIFwiaDJcIiksXG4gICAgW1wiSDNcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RIZWFkZXJUYWcoZWxlbSwgXCJoM1wiKSxcbiAgICBbXCJINFwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImg0XCIpLFxuICAgIFtcIkg1XCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0SGVhZGVyVGFnKGVsZW0sIFwiaDVcIiksXG4gICAgW1wiSDZcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RIZWFkZXJUYWcoZWxlbSwgXCJoNlwiKSxcbiAgICBbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZS50b1VwcGVyQ2FzZSgpXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBWaWRlb01ldGhvZHMuRXh0cmFjdEV4dGVybmFsVmlkZW9UYWcoZWxlbSksXG4gICAgW0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0cy5UYWdOYW1lLnRvVXBwZXJDYXNlKCldOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IERvd25sb2FkQnV0dG9uTWV0aG9kcy5FeHRyYWN0RG93bmxvYWRCdXR0b25UYWcoZWxlbSksXG4gICAgW0J1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZS50b1VwcGVyQ2FzZSgpXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBCdXR0b25NZXRob2RzLkV4dHJhY3RCdXR0b25UYWcoZWxlbSksXG4gIH07XG5cbiAgc3RhdGljIHRyYW5zZm9ybUh0bWxFbGVtZW50VG9CbG9ja3MoZWxlbWVudDogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBJbnRlcmZhY2VCbG9ja1tdIHtcbiAgICB2YXIgZGF0YTogSW50ZXJmYWNlQmxvY2tbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlbSA9IGVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKCFIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdG9ycy5oYXNPd25Qcm9wZXJ0eShlbGVtLnRhZ05hbWUpKSB7XG4gICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgdHlwZTogXCJ1bnN1cHBvcnRlZC10YWdcIixcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0YWdTdHJpbmc6IGVsZW0ub3V0ZXJIVE1MXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgZXh0cmFjdG9yID0gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RvcnNbZWxlbS50YWdOYW1lXTtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGV4dHJhY3RvcihlbGVtLCBvcHRpb25zKTtcbiAgICAgICAgZGF0YS5wdXNoKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBzdGF0aWMgdHJhbnNmb3JtSHRtbFN0cmluZ1RvQmxvY2tzKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBJbnRlcmZhY2VCbG9ja1tdIHtcblxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZVxuICAgICAgLnJlcGxhY2UoJ1xcbicsICcnKVxuICAgICAgLnJlcGxhY2UoJ1xcdCcsICcnKTtcblxuICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRpdi5pbm5lckhUTUwgPSB2YWx1ZTtcblxuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUh0bWxFbGVtZW50VG9CbG9ja3MoZGl2LCBvcHRpb25zKTtcbiAgfVxufVxuIl19
@@ -70,4 +70,4 @@ export class ImageMethods {
70
70
  });
71
71
  }; }
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VNZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvSW1hZ2VNZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxzQkFBc0I7YUFDMUIsWUFBTyxHQUFHLFlBQVksQ0FBQzthQUN2QixtQkFBYyxHQUFHLFNBQVMsQ0FBQzthQUMzQix1QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQzthQUM1Qyw2QkFBd0IsR0FBRyxnSUFBZ0ksQ0FBQzthQUM1SixtQkFBYyxHQUFHLGtCQUFrQixDQUFDO2FBQ3BDLG1CQUFjLEdBQUcsa0JBQWtCLENBQUM7YUFDcEMsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQzs7QUFvQjdDLE1BQU0sT0FBTyxZQUFZO0lBRWhCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBYyxFQUFFLFFBQWdCLEVBQUUsT0FBeUI7UUFFaEYsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQywyQkFBMkI7YUFDdkMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUM7YUFDL0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFjLEVBQUUsT0FBeUI7UUFDbkUsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBYyxFQUFFLE9BQXlCO1FBQ3BFLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWlCLEVBQUUsT0FBeUI7UUFDckUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE9BQU87WUFDTCxJQUFJLEVBQUUsc0JBQXNCLENBQUMsT0FBTztZQUNwQyxJQUFJLEVBQUU7Z0JBQ0osR0FBRztnQkFDSCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDO2FBQ2pGO1NBQ0YsQ0FBQztJQUNKLENBQUM7YUFFYSxvQ0FBK0IsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQXlCLEVBQUUsWUFBb0IsRUFBRSxFQUFFO1lBQ2hGLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1osY0FBYyxFQUFFLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLGNBQWMsQ0FBRTtnQkFDckgsY0FBYyxFQUFFLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQztnQkFDcEgsY0FBYyxFQUFFLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQzthQUNySCxDQUFDLENBQUE7WUFDRixPQUFPLFFBQVEsQ0FBQTtRQUNqQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDUixDQUFDLENBQUE7SUFFTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsR0FBYSxFQUFFLFNBQWlCO1FBQ3BFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQzthQUVhLHFDQUFnQyxHQUFHLENBQUMsSUFBcUIsRUFBRSxFQUFFO1FBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLGNBQWMsSUFBSSxzQkFBc0IsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLGNBQWMsSUFBSSxzQkFBc0IsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzlOLENBQUMsQ0FBQTthQUVhLHNCQUFpQixHQUFHLENBQUMsVUFBa0IsRUFBRSxRQUF5QixFQUFFLEVBQUU7UUFDbEYsUUFBUTthQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQzthQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDVCxJQUFJLFVBQVUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6RSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDM0IsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zIH0gZnJvbSBcIi4vSHRtbEV4dHJhY3Rpb25NZXRob2RzXCI7XG5cbmV4cG9ydCBjbGFzcyBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIHtcbiAgc3RhdGljIFRhZ05hbWUgPSBcImZpbGUtaW1hZ2VcIjtcbiAgc3RhdGljIEZpbGVJZEF0dHJOYW1lID0gXCJmaWxlLWlkXCI7XG4gIHN0YXRpYyBTY3JlZW5NZWRpYVJlcXVlc3QgPSBcInNjcmVlbi1tZWRpYS1yZXF1ZXN0XCI7XG4gIHN0YXRpYyBEZWZhdWx0VmFsdWVGb3JGaWxlSW1hZ2UgPSBcIm1heC1zY3JlZW4td2lkdGg6MTIwMCxtaW4tc2NyZWVuLXdpZHRoOjkwMCxtYXgtaW1hZ2UtaGVpZ2h0OjMwMDttYXgtc2NyZWVuLXdpZHRoOjkwMCxtaW4tc2NyZWVuLXdpZHRoOjYwMCxtYXgtaW1hZ2UtaGVpZ2h0OjIwMFwiO1xuICBzdGF0aWMgTWF4U2NyZWVuV2lkdGggPSAnbWF4LXNjcmVlbi13aWR0aCc7XG4gIHN0YXRpYyBNaW5TY3JlZW5XaWR0aCA9ICdtaW4tc2NyZWVuLXdpZHRoJztcbiAgc3RhdGljIE1heEltYWdlSGVpZ2h0ID0gJ21heC1pbWFnZS1oZWlnaHQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVJbWFnZVRhZyB7XG4gIHR5cGU6IHN0cmluZztcbiAgZGF0YTogRmlsZUltYWdlVGFnRGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlSW1hZ2VUYWdEYXRhIHtcbiAgc3JjOiBzdHJpbmc7XG4gIGZpbGVJZDogbnVtYmVyO1xuICBzY3JlZW5NZWRpYVJlcXVlc3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWVkaWFSZXF1ZXN0IHtcbiAgbWluU2NyZWVuV2lkdGg6IG51bWJlcixcbiAgbWF4U2NyZWVuV2lkdGg6IG51bWJlcixcbiAgbWF4SW1hZ2VIZWlnaHQ6IG51bWJlcixcbn1cblxuZXhwb3J0IGNsYXNzIEltYWdlTWV0aG9kcyB7XG5cbiAgcHVibGljIHN0YXRpYyBidWlsZFVybChmaWxlSWQ6IG51bWJlciwgc2l6ZVR5cGU6IHN0cmluZywgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucyk6IHN0cmluZyB7XG5cbiAgICBpZiAoZmlsZUlkID09PSBudWxsIHx8IGZpbGVJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9ucy5wdWJsaWNJbWFnZVJlc2l6ZWRVcmxGb3JtYXRcbiAgICAgIC5yZXBsYWNlKFwie3NpemVUeXBlfVwiLCBzaXplVHlwZSlcbiAgICAgIC5yZXBsYWNlKFwie2ZpbGVJZH1cIiwgZmlsZUlkLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBidWlsZFNtYWxsVXJsKGZpbGVJZDogbnVtYmVyLCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSW1hZ2VNZXRob2RzLmJ1aWxkVXJsKGZpbGVJZCwgXCJTbWFsbFwiLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYnVpbGRNZWRpdW1VcmwoZmlsZUlkOiBudW1iZXIsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIHJldHVybiBJbWFnZU1ldGhvZHMuYnVpbGRVcmwoZmlsZUlkLCBcIk1lZGl1bVwiLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRXh0cmFjdEltYWdlKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKTogRmlsZUltYWdlVGFnIHtcbiAgICBsZXQgZmlsZUlkID0gK2VsZW0uZ2V0QXR0cmlidXRlKEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpO1xuICAgIGxldCBzcmMgPSBJbWFnZU1ldGhvZHMuYnVpbGRNZWRpdW1VcmwoZmlsZUlkLCBvcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lLFxuICAgICAgZGF0YToge1xuICAgICAgICBzcmMsXG4gICAgICAgIGZpbGVJZDogZmlsZUlkLFxuICAgICAgICBzY3JlZW5NZWRpYVJlcXVlc3Q6IGVsZW0uZ2V0QXR0cmlidXRlKEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuU2NyZWVuTWVkaWFSZXF1ZXN0KVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG1lZGlhUmVxdWVzdFN0cmluZ1RvQXJyYXlQYXJzZXIgPSAoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKCFkYXRhLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGEuc3BsaXQoJzsnKS5yZWR1Y2UoKHJlcXVlc3RzOiBJTWVkaWFSZXF1ZXN0W10sIGN1cnJlbnRWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICByZXF1ZXN0cy5wdXNoKHtcbiAgICAgICAgbWF4U2NyZWVuV2lkdGg6IEltYWdlTWV0aG9kcy5jcmVhdGVNZWRpYVJlcXVlc3RWYWx1ZShjdXJyZW50VmFsdWUuc3BsaXQoJywnKSwgRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5NYXhTY3JlZW5XaWR0aCApLFxuICAgICAgICBtaW5TY3JlZW5XaWR0aDogSW1hZ2VNZXRob2RzLmNyZWF0ZU1lZGlhUmVxdWVzdFZhbHVlKGN1cnJlbnRWYWx1ZS5zcGxpdCgnLCcpLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLk1pblNjcmVlbldpZHRoKSxcbiAgICAgICAgbWF4SW1hZ2VIZWlnaHQ6IEltYWdlTWV0aG9kcy5jcmVhdGVNZWRpYVJlcXVlc3RWYWx1ZShjdXJyZW50VmFsdWUuc3BsaXQoJywnKSwgRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5NYXhJbWFnZUhlaWdodCksXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHJlcXVlc3RzXG4gICAgfSwgW10pXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZU1lZGlhUmVxdWVzdFZhbHVlKGFycjogc3RyaW5nW10sIGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICthcnIuZmluZChlbCA9PiBlbC5pbmNsdWRlcyhhdHRyaWJ1dGUpKS5tYXRjaCgvXFxkKy9nKS5qb2luKCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbWVkaWFSZXF1ZXN0c0FycmF5VG9TdHJpbmdQYXJzZXIgPSAoZGF0YTogSU1lZGlhUmVxdWVzdFtdKSA9PiB7XG4gICAgaWYgKCFkYXRhLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGEubWFwKGVsID0+IGAke0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuTWF4U2NyZWVuV2lkdGh9OiR7ZWwubWF4U2NyZWVuV2lkdGh9LCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5NaW5TY3JlZW5XaWR0aH06JHtlbC5taW5TY3JlZW5XaWR0aH0sJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLk1heEltYWdlSGVpZ2h0fToke2VsLm1heEltYWdlSGVpZ2h0fWApLmpvaW4oJzsnKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzY3JlZW5TaXplQ2hhbmdlZCA9IChzY3JlZW5TaXplOiBudW1iZXIsIHJlcXVlc3RzOiBJTWVkaWFSZXF1ZXN0W10pID0+IHtcbiAgICByZXF1ZXN0c1xuICAgICAgLnNvcnQoKGEsIGIpID0+IGIubWF4U2NyZWVuV2lkdGggLSBhLm1heFNjcmVlbldpZHRoKVxuICAgICAgLmZpbmQoZWwgPT4ge1xuICAgICAgICBpZiAoc2NyZWVuU2l6ZSA8PSArZWwubWF4U2NyZWVuV2lkdGggJiYgc2NyZWVuU2l6ZSA+PSArZWwubWluU2NyZWVuV2lkdGgpIHtcbiAgICAgICAgICByZXR1cm4gZWwubWF4SW1hZ2VIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VNZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvSW1hZ2VNZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxzQkFBc0I7YUFDMUIsWUFBTyxHQUFHLFlBQVksQ0FBQzthQUN2QixtQkFBYyxHQUFHLFNBQVMsQ0FBQzthQUMzQix1QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQzthQUM1Qyw2QkFBd0IsR0FBRyxnSUFBZ0ksQ0FBQzthQUM1SixtQkFBYyxHQUFHLGtCQUFrQixDQUFDO2FBQ3BDLG1CQUFjLEdBQUcsa0JBQWtCLENBQUM7YUFDcEMsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQzs7QUFvQjdDLE1BQU0sT0FBTyxZQUFZO0lBRWhCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBYyxFQUFFLFFBQWdCLEVBQUUsT0FBeUI7UUFFaEYsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQywyQkFBMkI7YUFDdkMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUM7YUFDL0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFjLEVBQUUsT0FBeUI7UUFDbkUsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBYyxFQUFFLE9BQXlCO1FBQ3BFLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFD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LENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6RSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDM0IsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zIH0gZnJvbSBcIi4uL29wdGlvbnNcIjtcblxuZXhwb3J0IGNsYXNzIEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMge1xuICBzdGF0aWMgVGFnTmFtZSA9IFwiZmlsZS1pbWFnZVwiO1xuICBzdGF0aWMgRmlsZUlkQXR0ck5hbWUgPSBcImZpbGUtaWRcIjtcbiAgc3RhdGljIFNjcmVlbk1lZGlhUmVxdWVzdCA9IFwic2NyZWVuLW1lZGlhLXJlcXVlc3RcIjtcbiAgc3RhdGljIERlZmF1bHRWYWx1ZUZvckZpbGVJbWFnZSA9IFwibWF4LXNjcmVlbi13aWR0aDoxMjAwLG1pbi1zY3JlZW4td2lkdGg6OTAwLG1heC1pbWFnZS1oZWlnaHQ6MzAwO21heC1zY3JlZW4td2lkdGg6OTAwLG1pbi1zY3JlZW4td2lkdGg6NjAwLG1heC1pbWFnZS1oZWlnaHQ6MjAwXCI7XG4gIHN0YXRpYyBNYXhTY3JlZW5XaWR0aCA9ICdtYXgtc2NyZWVuLXdpZHRoJztcbiAgc3RhdGljIE1pblNjcmVlbldpZHRoID0gJ21pbi1zY3JlZW4td2lkdGgnO1xuICBzdGF0aWMgTWF4SW1hZ2VIZWlnaHQgPSAnbWF4LWltYWdlLWhlaWdodCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUltYWdlVGFnIHtcbiAgdHlwZTogc3RyaW5nO1xuICBkYXRhOiBGaWxlSW1hZ2VUYWdEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVJbWFnZVRhZ0RhdGEge1xuICBzcmM6IHN0cmluZztcbiAgZmlsZUlkOiBudW1iZXI7XG4gIHNjcmVlbk1lZGlhUmVxdWVzdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNZWRpYVJlcXVlc3Qge1xuICBtaW5TY3JlZW5XaWR0aDogbnVtYmVyLFxuICBtYXhTY3JlZW5XaWR0aDogbnVtYmVyLFxuICBtYXhJbWFnZUhlaWdodDogbnVtYmVyLFxufVxuXG5leHBvcnQgY2xhc3MgSW1hZ2VNZXRob2RzIHtcblxuICBwdWJsaWMgc3RhdGljIGJ1aWxkVXJsKGZpbGVJZDogbnVtYmVyLCBzaXplVHlwZTogc3RyaW5nLCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKTogc3RyaW5nIHtcblxuICAgIGlmIChmaWxlSWQgPT09IG51bGwgfHwgZmlsZUlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zLnB1YmxpY0ltYWdlUmVzaXplZFVybEZvcm1hdFxuICAgICAgLnJlcGxhY2UoXCJ7c2l6ZVR5cGV9XCIsIHNpemVUeXBlKVxuICAgICAgLnJlcGxhY2UoXCJ7ZmlsZUlkfVwiLCBmaWxlSWQudG9TdHJpbmcoKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGJ1aWxkU21hbGxVcmwoZmlsZUlkOiBudW1iZXIsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIHJldHVybiBJbWFnZU1ldGhvZHMuYnVpbGRVcmwoZmlsZUlkLCBcIlNtYWxsXCIsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBidWlsZE1lZGl1bVVybChmaWxlSWQ6IG51bWJlciwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEltYWdlTWV0aG9kcy5idWlsZFVybChmaWxlSWQsIFwiTWVkaXVtXCIsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBFeHRyYWN0SW1hZ2UoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBGaWxlSW1hZ2VUYWcge1xuICAgIGxldCBmaWxlSWQgPSArZWxlbS5nZXRBdHRyaWJ1dGUoRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZSk7XG4gICAgbGV0IHNyYyA9IEltYWdlTWV0aG9kcy5idWlsZE1lZGl1bVVybChmaWxlSWQsIG9wdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHNyYyxcbiAgICAgICAgZmlsZUlkOiBmaWxlSWQsXG4gICAgICAgIHNjcmVlbk1lZGlhUmVxdWVzdDogZWxlbS5nZXRBdHRyaWJ1dGUoRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3QpXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbWVkaWFSZXF1ZXN0U3RyaW5nVG9BcnJheVBhcnNlciA9IChkYXRhOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YS5zcGxpdCgnOycpLnJlZHVjZSgocmVxdWVzdHM6IElNZWRpYVJlcXVlc3RbXSwgY3VycmVudFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICBtYXhTY3JlZW5XaWR0aDogSW1hZ2VNZXRob2RzLmNyZWF0ZU1lZGlhUmVxdWVzdFZhbHVlKGN1cnJlbnRWYWx1ZS5zcGxpdCgnLCcpLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLk1heFNjcmVlbldpZHRoICksXG4gICAgICAgIG1pblNjcmVlbldpZHRoOiBJbWFnZU1ldGhvZHMuY3JlYXRlTWVkaWFSZXF1ZXN0VmFsdWUoY3VycmVudFZhbHVlLnNwbGl0KCcsJyksIEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuTWluU2NyZWVuV2lkdGgpLFxuICAgICAgICBtYXhJbWFnZUhlaWdodDogSW1hZ2VNZXRob2RzLmNyZWF0ZU1lZGlhUmVxdWVzdFZhbHVlKGN1cnJlbnRWYWx1ZS5zcGxpdCgnLCcpLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLk1heEltYWdlSGVpZ2h0KSxcbiAgICAgIH0pXG4gICAgICByZXR1cm4gcmVxdWVzdHNcbiAgICB9LCBbXSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlTWVkaWFSZXF1ZXN0VmFsdWUoYXJyOiBzdHJpbmdbXSwgYXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gK2Fyci5maW5kKGVsID0+IGVsLmluY2x1ZGVzKGF0dHJpYnV0ZSkpLm1hdGNoKC9cXGQrL2cpLmpvaW4oJycpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBtZWRpYVJlcXVlc3RzQXJyYXlUb1N0cmluZ1BhcnNlciA9IChkYXRhOiBJTWVkaWFSZXF1ZXN0W10pID0+IHtcbiAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YS5tYXAoZWwgPT4gYCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5NYXhTY3JlZW5XaWR0aH06JHtlbC5tYXhTY3JlZW5XaWR0aH0sJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLk1pblNjcmVlbldpZHRofToke2VsLm1pblNjcmVlbldpZHRofSwke0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuTWF4SW1hZ2VIZWlnaHR9OiR7ZWwubWF4SW1hZ2VIZWlnaHR9YCkuam9pbignOycpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNjcmVlblNpemVDaGFuZ2VkID0gKHNjcmVlblNpemU6IG51bWJlciwgcmVxdWVzdHM6IElNZWRpYVJlcXVlc3RbXSkgPT4ge1xuICAgIHJlcXVlc3RzXG4gICAgICAuc29ydCgoYSwgYikgPT4gYi5tYXhTY3JlZW5XaWR0aCAtIGEubWF4U2NyZWVuV2lkdGgpXG4gICAgICAuZmluZChlbCA9PiB7XG4gICAgICAgIGlmIChzY3JlZW5TaXplIDw9ICtlbC5tYXhTY3JlZW5XaWR0aCAmJiBzY3JlZW5TaXplID49ICtlbC5taW5TY3JlZW5XaWR0aCkge1xuICAgICAgICAgIHJldHVybiBlbC5tYXhJbWFnZUhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==