@tilde-nlp/ngx-translate 2.0.1 → 2.0.3
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.
- package/esm2020/lib/components/shared/extension-dialog/extension-dialog.component.mjs +3 -3
- package/esm2020/lib/modules/tld-document/services/tld-translate-file.service.mjs +6 -2
- package/fesm2015/tilde-nlp-ngx-translate.mjs +76 -73
- package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/fesm2020/tilde-nlp-ngx-translate.mjs +76 -73
- package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/package.json +1 -1
- package/src/assets/webcomponent/tld-translate.js +1 -1
- package/tilde-nlp-ngx-translate-2.0.3.tgz +0 -0
- package/tilde-nlp-ngx-translate-2.0.1.tgz +0 -0
|
@@ -122,12 +122,12 @@ export class ExtensionDialogComponent {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
ExtensionDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExtensionDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
-
ExtensionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ExtensionDialogComponent, selector: "app-extension-dialog", ngImport: i0, template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n
|
|
125
|
+
ExtensionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ExtensionDialogComponent, selector: "app-extension-dialog", ngImport: i0, template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n <ng-container *ngFor=\"let category of config.elements\">\r\n <div *ngIf=\"category.anyVisible\" class=\"category\">\r\n <h2 class=\"category-title\">\r\n {{ 'EXTENSION_POPUP.' + category.category | translate }}\r\n </h2>\r\n <div fxLayout=\"row\">\r\n <div *ngFor=\"let column of category.columns\" class=\"extension-column\">\r\n <ul *ngIf=\"column.anyVisible\">\r\n <ng-container *ngFor=\"let extension of column.extensions\">\r\n <li *ngIf=\"extension.visible\" fxLayoutAlign=\"start center\">\r\n <mat-icon svgIcon=\"{{ extension.icon }}\" aria-hidden=\"false\"[attr.aria-label]=\"extension.extension\"></mat-icon>\r\n <span>{{ extension.extension }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["[mat-dialog-content]{position:relative}[mat-dialog-content] tld-close-button{position:absolute;right:1em;top:0}[mat-dialog-content] header{margin-bottom:1.5em;text-align:center}[mat-dialog-content] header h1{font-size:20px;font-weight:500;margin:0 0 .5em}[mat-dialog-content] header p{margin:0}[mat-dialog-content] ul{list-style-type:none;margin:0;padding:0}[mat-dialog-content] ul li+li{margin-top:.5em}[mat-dialog-content] .category-title{border-bottom:1px solid var(--base-70);font-size:.875em;font-weight:500;text-align:center;padding-bottom:.5em;line-height:1.25em}[mat-dialog-content] .extension-column{font-size:.875em;line-height:1.25em}[mat-dialog-content] .extension-column+.extension-column{margin-left:1em}[mat-dialog-content] :not(.small-screen) .category+.category{margin-left:3em}[mat-dialog-content] mat-icon{width:20px;height:20px}[mat-dialog-content] .description{font-size:.875em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
126
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExtensionDialogComponent, decorators: [{
|
|
127
127
|
type: Component,
|
|
128
|
-
args: [{ selector: 'app-extension-dialog', template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n
|
|
128
|
+
args: [{ selector: 'app-extension-dialog', template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n <ng-container *ngFor=\"let category of config.elements\">\r\n <div *ngIf=\"category.anyVisible\" class=\"category\">\r\n <h2 class=\"category-title\">\r\n {{ 'EXTENSION_POPUP.' + category.category | translate }}\r\n </h2>\r\n <div fxLayout=\"row\">\r\n <div *ngFor=\"let column of category.columns\" class=\"extension-column\">\r\n <ul *ngIf=\"column.anyVisible\">\r\n <ng-container *ngFor=\"let extension of column.extensions\">\r\n <li *ngIf=\"extension.visible\" fxLayoutAlign=\"start center\">\r\n <mat-icon svgIcon=\"{{ extension.icon }}\" aria-hidden=\"false\"[attr.aria-label]=\"extension.extension\"></mat-icon>\r\n <span>{{ extension.extension }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["[mat-dialog-content]{position:relative}[mat-dialog-content] tld-close-button{position:absolute;right:1em;top:0}[mat-dialog-content] header{margin-bottom:1.5em;text-align:center}[mat-dialog-content] header h1{font-size:20px;font-weight:500;margin:0 0 .5em}[mat-dialog-content] header p{margin:0}[mat-dialog-content] ul{list-style-type:none;margin:0;padding:0}[mat-dialog-content] ul li+li{margin-top:.5em}[mat-dialog-content] .category-title{border-bottom:1px solid var(--base-70);font-size:.875em;font-weight:500;text-align:center;padding-bottom:.5em;line-height:1.25em}[mat-dialog-content] .extension-column{font-size:.875em;line-height:1.25em}[mat-dialog-content] .extension-column+.extension-column{margin-left:1em}[mat-dialog-content] :not(.small-screen) .category+.category{margin-left:3em}[mat-dialog-content] mat-icon{width:20px;height:20px}[mat-dialog-content] .description{font-size:.875em}\n"] }]
|
|
129
129
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
130
130
|
type: Inject,
|
|
131
131
|
args: [MAT_DIALOG_DATA]
|
|
132
132
|
}] }]; } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvZXh0ZW5zaW9uLWRpYWxvZy9leHRlbnNpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9leHRlbnNpb24tZGlhbG9nL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7O0FBU3pFLE1BQU0sT0FBTyx3QkFBd0I7SUFnR25DLFlBQTZDLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUE5RnBELFdBQU0sR0FBVztZQUN4QixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsUUFBUSxFQUFFLGNBQWMsQ0FBQyxNQUFNO29CQUMvQixPQUFPLEVBQUU7d0JBQ1A7NEJBQ0UsVUFBVSxFQUNSO2dDQUNFLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0NBQzNELEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0NBQzVELEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0NB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RUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2xDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ3BDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7d0JBQ2xCLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNoQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFDdkIsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQzNCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3FCQUMxQjtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDO0lBQzFDLENBQUM7O3FIQXRIVSx3QkFBd0Isa0JBZ0dmLGVBQWU7eUdBaEd4Qix3QkFBd0IsNERDWHJDLDRrREErQkE7MkZEcEJhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7OzBCQW9HbkIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGaWxlQ2F0ZWdvcmllcywgRmlsZUV4dGVuc2lvbnMsIEZpbGVUeXBlSWNvbnMgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vbW9kZWxzL2ludGVyZmFjZXMvY29uZmlnJztcclxuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4vbW9kZWxzL2ludGVyZmFjZXMvZGlhbG9nLWRhdGEubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZXh0ZW5zaW9uLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcmVhZG9ubHkgY29uZmlnOiBDb25maWcgPSB7XHJcbiAgICBlbGVtZW50czogW1xyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcnk6IEZpbGVDYXRlZ29yaWVzLk9GRklDRSxcclxuICAgICAgICBjb2x1bW5zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGV4dGVuc2lvbnM6XHJcbiAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLkRPQywgaWNvbjogRmlsZVR5cGVJY29ucy5XT1JEIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuRE9DWCwgaWNvbjogRmlsZVR5cGVJY29ucy5XT1JEIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuWExTWCwgaWNvbjogRmlsZVR5cGVJY29ucy5FWENFTCB9LFxyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlBQVFgsIGljb246IEZpbGVUeXBlSWNvbnMuUE9XRVJQT0lOVCB9LFxyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlBERiwgaWNvbjogRmlsZVR5cGVJY29ucy5QREYgfVxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGV4dGVuc2lvbnM6IFtcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuT0RULCBpY29uOiBGaWxlVHlwZUljb25zLk9GRklDRV9PVEhFUiB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5PRFAsIGljb246IEZpbGVUeXBlSWNvbnMuT0ZGSUNFX09USEVSIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLk9EUywgaWNvbjogRmlsZVR5cGVJY29ucy5PRkZJQ0VfT1RIRVIgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuVFhULCBpY29uOiBGaWxlVHlwZUljb25zLk9GRklDRV9PVEhFUiB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5SVEYsIGljb246IEZpbGVUeXBlSWNvbnMuT0ZGSUNFX09USEVSIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlBBR0VTLCBpY29uOiBGaWxlVHlwZUljb25zLk9GRklDRV9PVEhFUiB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5TWFcsIGljb246IEZpbGVUeXBlSWNvbnMuT0ZGSUNFX09USEVSIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNhdGVnb3J5OiBGaWxlQ2F0ZWdvcmllcy5TQ0FOTkVELFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczpcclxuICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuSlBHLCBpY29uOiBGaWxlVHlwZUljb25zLlNDQU5ORUQgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5KUEVHLCBpY29uOiBGaWxlVHlwZUljb25zLlNDQU5ORUQgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5QTkcsIGljb246IEZpbGVUeXBlSWNvbnMuU0NBTk5FRCB9LFxyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLkJNUCwgaWNvbjogRmlsZVR5cGVJY29ucy5TQ0FOTkVEIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuQk1QLCBpY29uOiBGaWxlVHlwZUljb25zLlNDQU5ORUQgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5QREYsIGljb246IEZpbGVUeXBlSWNvbnMuUERGIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcnk6IEZpbGVDYXRlZ29yaWVzLklOVEVSQ0hBTkdFLFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczogW1xyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5TRExYTElGRiwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5TRExYTEYsIGljb246IEZpbGVUeXBlSWNvbnMuSU5URVJDSEFOR0UgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuVFRYLCBpY29uOiBGaWxlVHlwZUljb25zLklOVEVSQ0hBTkdFIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlRNWCwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YTEYsIGljb246IEZpbGVUeXBlSWNvbnMuSU5URVJDSEFOR0UgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuWExJRiwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YTElGRiwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBjYXRlZ29yeTogRmlsZUNhdGVnb3JpZXMuV0VCLFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczpcclxuICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuSFRNTCwgaWNvbjogRmlsZVR5cGVJY29ucy5XRUIgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5IVE0sIGljb246IEZpbGVUeXBlSWNvbnMuV0VCIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuSlNPTiwgaWNvbjogRmlsZVR5cGVJY29ucy5XRUIgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YSFRNTCwgaWNvbjogRmlsZVR5cGVJY29ucy5XRUIgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YSFQsIGljb246IEZpbGVUeXBlSWNvbnMuV0VCIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcnk6IEZpbGVDYXRlZ29yaWVzLk9USEVSLFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczogW1xyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5URVgsIGljb246IEZpbGVUeXBlSWNvbnMuT1RIRVIgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuVFRMLCBpY29uOiBGaWxlVHlwZUljb25zLk9USEVSIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlNSVCwgaWNvbjogRmlsZVR5cGVJY29ucy5PVEhFUiB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9O1xyXG5cclxuICBleHRlbnNpb25zOiBzdHJpbmdbXTtcclxuICB1bmRlc2NyaWJlZEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBEaWFsb2dEYXRhKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlnKCkge1xyXG4gICAgbGV0IGV4dGVuc2lvbnMgPSBbLi4udGhpcy5kYXRhLmV4dGVuc2lvbnNdO1xyXG4gICAgdGhpcy5jb25maWcuZWxlbWVudHMuZm9yRWFjaChjYXRlZ29yeSA9PiB7XHJcbiAgICAgIGNhdGVnb3J5LmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgY29sdW1uLmV4dGVuc2lvbnMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudEl4ID0gZXh0ZW5zaW9ucy5pbmRleE9mKGVsZW1lbnQuZXh0ZW5zaW9uKTtcclxuICAgICAgICAgIGlmIChlbGVtZW50SXggPj0gMCkge1xyXG4gICAgICAgICAgICBleHRlbnNpb25zLnNwbGljZShlbGVtZW50SXgsIDEpO1xyXG4gICAgICAgICAgICBlbGVtZW50LnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5hbnlWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29sdW1uLmFueVZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICAgIHRoaXMudW5kZXNjcmliZWRFeHRlbnNpb25zID0gZXh0ZW5zaW9ucztcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPHRsZC1jbG9zZS1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT48L3RsZC1jbG9zZS1idXR0b24+XHJcblxyXG4gICAgPGhlYWRlcj5cclxuICAgICAgICA8aDE+e3snRVhURU5TSU9OX1BPUFVQLlRJVExFJyB8IHRyYW5zbGF0ZX19PC9oMT5cclxuICAgICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3snRVhURU5TSU9OX1BPUFVQLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgPC9oZWFkZXI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXQubHQtbWQ9XCJjb2x1bW5cIiAgW25nQ2xhc3MubHQtbWRdPVwiJ3NtYWxsLXNjcmVlbidcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjb25maWcuZWxlbWVudHNcIiBjbGFzcz1cImNhdGVnb3J5XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXRlZ29yeS5hbnlWaXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJjYXRlZ29yeS10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J0VYVEVOU0lPTl9QT1BVUC4nK2NhdGVnb3J5LmNhdGVnb3J5IHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNhdGVnb3J5LmNvbHVtbnNcIiBjbGFzcz1cImV4dGVuc2lvbi1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwiY29sdW1uLmFueVZpc2libGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGV4dGVuc2lvbiBvZiBjb2x1bW4uZXh0ZW5zaW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImV4dGVuc2lvbi52aXNpYmxlXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7ZXh0ZW5zaW9uLmljb259fVwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJleHRlbnNpb24uZXh0ZW5zaW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZXh0ZW5zaW9uLmV4dGVuc2lvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvZXh0ZW5zaW9uLWRpYWxvZy9leHRlbnNpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9leHRlbnNpb24tZGlhbG9nL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7O0FBU3pFLE1BQU0sT0FBTyx3QkFBd0I7SUFnR25DLFlBQTZDLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUE5RnBELFdBQU0sR0FBVztZQUN4QixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsUUFBUSxFQUFFLGNBQWMsQ0FBQyxNQUFNO29CQUMvQixPQUFPLEVBQUU7d0JBQ1A7NEJBQ0UsVUFBVSxFQUNSO2dDQUNFLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0NBQzNELEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0NBQzVELEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0NB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RUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2xDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ3BDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7d0JBQ2xCLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNoQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFDdkIsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQzNCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3FCQUMxQjtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDO0lBQzFDLENBQUM7O3FIQXRIVSx3QkFBd0Isa0JBZ0dmLGVBQWU7eUdBaEd4Qix3QkFBd0IsNERDWHJDLDQxQ0E2QkE7MkZEbEJhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7OzBCQW9HbkIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGaWxlQ2F0ZWdvcmllcywgRmlsZUV4dGVuc2lvbnMsIEZpbGVUeXBlSWNvbnMgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vbW9kZWxzL2ludGVyZmFjZXMvY29uZmlnJztcclxuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4vbW9kZWxzL2ludGVyZmFjZXMvZGlhbG9nLWRhdGEubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZXh0ZW5zaW9uLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcmVhZG9ubHkgY29uZmlnOiBDb25maWcgPSB7XHJcbiAgICBlbGVtZW50czogW1xyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcnk6IEZpbGVDYXRlZ29yaWVzLk9GRklDRSxcclxuICAgICAgICBjb2x1bW5zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGV4dGVuc2lvbnM6XHJcbiAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLkRPQywgaWNvbjogRmlsZVR5cGVJY29ucy5XT1JEIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuRE9DWCwgaWNvbjogRmlsZVR5cGVJY29ucy5XT1JEIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuWExTWCwgaWNvbjogRmlsZVR5cGVJY29ucy5FWENFTCB9LFxyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlBQVFgsIGljb246IEZpbGVUeXBlSWNvbnMuUE9XRVJQT0lOVCB9LFxyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlBERiwgaWNvbjogRmlsZVR5cGVJY29ucy5QREYgfVxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGV4dGVuc2lvbnM6IFtcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuT0RULCBpY29uOiBGaWxlVHlwZUljb25zLk9GRklDRV9PVEhFUiB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5PRFAsIGljb246IEZpbGVUeXBlSWNvbnMuT0ZGSUNFX09USEVSIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLk9EUywgaWNvbjogRmlsZVR5cGVJY29ucy5PRkZJQ0VfT1RIRVIgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuVFhULCBpY29uOiBGaWxlVHlwZUljb25zLk9GRklDRV9PVEhFUiB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5SVEYsIGljb246IEZpbGVUeXBlSWNvbnMuT0ZGSUNFX09USEVSIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlBBR0VTLCBpY29uOiBGaWxlVHlwZUljb25zLk9GRklDRV9PVEhFUiB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5TWFcsIGljb246IEZpbGVUeXBlSWNvbnMuT0ZGSUNFX09USEVSIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNhdGVnb3J5OiBGaWxlQ2F0ZWdvcmllcy5TQ0FOTkVELFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczpcclxuICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuSlBHLCBpY29uOiBGaWxlVHlwZUljb25zLlNDQU5ORUQgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5KUEVHLCBpY29uOiBGaWxlVHlwZUljb25zLlNDQU5ORUQgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5QTkcsIGljb246IEZpbGVUeXBlSWNvbnMuU0NBTk5FRCB9LFxyXG4gICAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLkJNUCwgaWNvbjogRmlsZVR5cGVJY29ucy5TQ0FOTkVEIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuQk1QLCBpY29uOiBGaWxlVHlwZUljb25zLlNDQU5ORUQgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5QREYsIGljb246IEZpbGVUeXBlSWNvbnMuUERGIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcnk6IEZpbGVDYXRlZ29yaWVzLklOVEVSQ0hBTkdFLFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczogW1xyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5TRExYTElGRiwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5TRExYTEYsIGljb246IEZpbGVUeXBlSWNvbnMuSU5URVJDSEFOR0UgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuVFRYLCBpY29uOiBGaWxlVHlwZUljb25zLklOVEVSQ0hBTkdFIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlRNWCwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YTEYsIGljb246IEZpbGVUeXBlSWNvbnMuSU5URVJDSEFOR0UgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuWExJRiwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9LFxyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YTElGRiwgaWNvbjogRmlsZVR5cGVJY29ucy5JTlRFUkNIQU5HRSB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBjYXRlZ29yeTogRmlsZUNhdGVnb3JpZXMuV0VCLFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczpcclxuICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuSFRNTCwgaWNvbjogRmlsZVR5cGVJY29ucy5XRUIgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5IVE0sIGljb246IEZpbGVUeXBlSWNvbnMuV0VCIH0sXHJcbiAgICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuSlNPTiwgaWNvbjogRmlsZVR5cGVJY29ucy5XRUIgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YSFRNTCwgaWNvbjogRmlsZVR5cGVJY29ucy5XRUIgfSxcclxuICAgICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5YSFQsIGljb246IEZpbGVUeXBlSWNvbnMuV0VCIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcnk6IEZpbGVDYXRlZ29yaWVzLk9USEVSLFxyXG4gICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZXh0ZW5zaW9uczogW1xyXG4gICAgICAgICAgICAgIHsgZXh0ZW5zaW9uOiBGaWxlRXh0ZW5zaW9ucy5URVgsIGljb246IEZpbGVUeXBlSWNvbnMuT1RIRVIgfSxcclxuICAgICAgICAgICAgICB7IGV4dGVuc2lvbjogRmlsZUV4dGVuc2lvbnMuVFRMLCBpY29uOiBGaWxlVHlwZUljb25zLk9USEVSIH0sXHJcbiAgICAgICAgICAgICAgeyBleHRlbnNpb246IEZpbGVFeHRlbnNpb25zLlNSVCwgaWNvbjogRmlsZVR5cGVJY29ucy5PVEhFUiB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9O1xyXG5cclxuICBleHRlbnNpb25zOiBzdHJpbmdbXTtcclxuICB1bmRlc2NyaWJlZEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBEaWFsb2dEYXRhKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlnKCkge1xyXG4gICAgbGV0IGV4dGVuc2lvbnMgPSBbLi4udGhpcy5kYXRhLmV4dGVuc2lvbnNdO1xyXG4gICAgdGhpcy5jb25maWcuZWxlbWVudHMuZm9yRWFjaChjYXRlZ29yeSA9PiB7XHJcbiAgICAgIGNhdGVnb3J5LmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgY29sdW1uLmV4dGVuc2lvbnMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudEl4ID0gZXh0ZW5zaW9ucy5pbmRleE9mKGVsZW1lbnQuZXh0ZW5zaW9uKTtcclxuICAgICAgICAgIGlmIChlbGVtZW50SXggPj0gMCkge1xyXG4gICAgICAgICAgICBleHRlbnNpb25zLnNwbGljZShlbGVtZW50SXgsIDEpO1xyXG4gICAgICAgICAgICBlbGVtZW50LnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5hbnlWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29sdW1uLmFueVZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICAgIHRoaXMudW5kZXNjcmliZWRFeHRlbnNpb25zID0gZXh0ZW5zaW9ucztcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPHRsZC1jbG9zZS1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT48L3RsZC1jbG9zZS1idXR0b24+XHJcblxyXG4gICAgPGhlYWRlcj5cclxuICAgICAgICA8aDE+e3snRVhURU5TSU9OX1BPUFVQLlRJVExFJyB8IHRyYW5zbGF0ZX19PC9oMT5cclxuICAgICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3snRVhURU5TSU9OX1BPUFVQLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgPC9oZWFkZXI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXQubHQtbWQ9XCJjb2x1bW5cIiAgW25nQ2xhc3MubHQtbWRdPVwiJ3NtYWxsLXNjcmVlbidcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY29uZmlnLmVsZW1lbnRzXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImNhdGVnb3J5LmFueVZpc2libGVcIiBjbGFzcz1cImNhdGVnb3J5XCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJjYXRlZ29yeS10aXRsZVwiPlxyXG4gICAgICAgICAgICB7eyAnRVhURU5TSU9OX1BPUFVQLicgKyBjYXRlZ29yeS5jYXRlZ29yeSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNhdGVnb3J5LmNvbHVtbnNcIiBjbGFzcz1cImV4dGVuc2lvbi1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8dWwgKm5nSWY9XCJjb2x1bW4uYW55VmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXh0ZW5zaW9uIG9mIGNvbHVtbi5leHRlbnNpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImV4dGVuc2lvbi52aXNpYmxlXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3sgZXh0ZW5zaW9uLmljb24gfX1cIiBhcmlhLWhpZGRlbj1cImZhbHNlXCJbYXR0ci5hcmlhLWxhYmVsXT1cImV4dGVuc2lvbi5leHRlbnNpb25cIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGV4dGVuc2lvbi5leHRlbnNpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -7,6 +7,7 @@ import { FILE_API_SERVICE_TOKEN } from '../../../injection-tokens';
|
|
|
7
7
|
import { Common, ErrorCode } from '../../tld-common/models';
|
|
8
8
|
import { TranslationStatuss } from '../models';
|
|
9
9
|
import { FileConversionTypes } from '../models/file-conversion-types.model';
|
|
10
|
+
import { FileExtensions } from '../../../components/shared/extension-dialog/models/enums';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "../../tld-common/services";
|
|
12
13
|
import * as i2 from "@angular/platform-browser";
|
|
@@ -298,8 +299,11 @@ export class TldTranslateFileService {
|
|
|
298
299
|
translationFile.filePreviewProgress = data.percentDone;
|
|
299
300
|
}
|
|
300
301
|
translatedDocPreview(translationFile) {
|
|
302
|
+
// show preview for original extension if exists, if not, then preview for docx, if not then try with original filename.
|
|
303
|
+
const fileName = translationFile.availableExtensions.find(ext => ext.extension === FileExtensions.DOCX)?.fileName
|
|
304
|
+
?? translationFile.originalFileName;
|
|
301
305
|
const params = {
|
|
302
|
-
fileName:
|
|
306
|
+
fileName: fileName,
|
|
303
307
|
translationDocId: translationFile.id
|
|
304
308
|
};
|
|
305
309
|
this.fileApi.translatedDocumentPreview(params)
|
|
@@ -407,4 +411,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
407
411
|
type: Inject,
|
|
408
412
|
args: [FILE_API_SERVICE_TOKEN]
|
|
409
413
|
}] }, { type: i1.TldAlertService }, { type: i2.DomSanitizer }, { type: i1.TldTranslateConfigService }, { type: i3.TldSystemService }]; } });
|
|
410
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBQzFGLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQXFPLE1BQU0seUJBQXlCLENBQUM7QUFLL1IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7OztBQU01RSxNQUFNLE9BQU8sdUJBQXVCO0lBZ0NsQyxZQUNtRCxPQUF3QixFQUN4RCxNQUF1QixFQUNoQyxTQUF1QixFQUN2QixNQUFpQyxFQUN4QixTQUEyQjtRQUpLLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hELFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FB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LElBQUksQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxlQUFpQyxFQUFFLEtBQVU7UUFDMUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBa0I7WUFDbkMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsS0FBSztZQUM3QixrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO1NBQ2pGLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDdEYsT0FBTztTQUNSO1FBRUQsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7b0hBM2JVLHVCQUF1QixrQkFpQ3hCLHNCQUFzQjt3SEFqQ3JCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWtDSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IElubGluZU1lc3NhZ2UsIElubGluZU1lc3NhZ2VUeXBlLCBGaWxlVXBsb2FkRXJyb3IgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAsIHJldHJ5V2hlbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRklMRV9BUElfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBDb21tb24sIEVycm9yQ29kZSwgSURvd25sb2FkRmlsZVBhcmFtcywgSUZpbGVBcGlTZXJ2aWNlLCBJRmlsZU1ldGEsIElHZXRGaWxlU3RhdHVzUGFyYW1zLCBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UsIElSZW1vdmVGaWxlUGFyYW1zLCBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zLCBJVGxkRXJyb3IsIElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTeXN0ZW0gfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9zeXN0ZW0vc3lzdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvbW9kZWxzJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TdGF0dXNzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlsZUNvbnZlcnNpb25UeXBlcyB9IGZyb20gJy4uL21vZGVscy9maWxlLWNvbnZlcnNpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRpb25GaWxlIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zbGF0ZS1maWxlLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZUZpbGVTZXJ2aWNlIHtcclxuXHJcbiAgdHJhbnNsYXRpb25TdGFydGVkOiBib29sZWFuO1xyXG4gIC8qKiBWYWx1ZSB0byBiZSBzZXQgdG8gdHJ1ZSB3aGlsZSBsb2FkaW5nIHNvdXJjZSBwcmV2aWV3LiBBdCB0aGF0IHRpbWUsIHRyYW5zbGF0ZSBidXR0b24gc2hvdWxkIGJlIGRpc2FibGVkLiAqL1xyXG4gIGdldCBpc1VwbG9hZGluZ0ZpbGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmZpbGVzVXBsb2FkaW5nLmxlbmd0aCA+IDA7IH07XHJcbiAgdHJhbnNsYXRpb25GaWxlczogSVRyYW5zbGF0aW9uRmlsZVtdID0gW107XHJcbiAgZmlsZU5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGZpbGVzQWRkZWQ6IG51bWJlcjtcclxuICBhbnlQZGZGaWxlTG9hZGVkOiBib29sZWFuO1xyXG4gIGFueUltYWdlRmlsZUxvYWRlZDogYm9vbGVhbjtcclxuICAvL2ZvciBtdWx0aXBsZSBmaWxlIGNvbXBvbmVudFxyXG4gIHRyYW5zbGF0ZWRDb3VudDogbnVtYmVyID0gMDtcclxuICBtdWx0aXBsZUZpbGVVcGxvYWRBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGRpc2FibGVUcmFuc2xhdGVCdXR0b24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblN0YXJ0ZWQgfHwgdGhpcy5pc1VwbG9hZGluZ0ZpbGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9vbkZpbGVzVXBsb2FkZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSBhY3RpdmVTeXN0ZW06IFN5c3RlbTtcclxuICAvLyBUT0RPLiBDb25maWd1cmFibGU/XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dCA9IDEwMDA7XHJcbiAgLy8gMCBpcyBuZXR3b3JrIGVycm9yLCBzaG91bGQgdHJ5IGFnYWluXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmV0cnlFcnJvckNvZGVzID0gWzBdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25ldHdvcmtFcnJvck1heFJldHJpZXMgPSAyO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXR1c1RpbWVvdXRzID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfb25DbGVhciA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zdXBwb3J0ZWRJbWFnZUV4dGVuc2lvbnMgPSBbXCJwbmdcIiwgXCJqcGdcIiwgXCJqcGVnXCIsIFwiYm1wXCJdO1xyXG4gIHByaXZhdGUgZmlsZXNVcGxvYWRpbmc6IHN0cmluZ1tdID0gW107XHJcbiAgcHJpdmF0ZSBub3RGb3VuZEVycm9yQ29kZSA9IFwiRV80MDRcIjtcclxuICBwcml2YXRlIG5vdEZvdW5kUmVtb3ZlRXJyb3JDb2RlID0gXCJFXzQwNF9SRU1PVkVcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgZmlsZUFwaTogSUZpbGVBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuRVhUUkFDVElOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLkVYVFJBQ1RJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5JTklUSUFMSVpJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5RVUVVSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuU0FWSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuVFJBTlNMQVRJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5XQUlUSU5HXSA9IDEwMDAwO1xyXG4gIH1cclxuXHJcbiAgLy8gY2xlYXJzIGFsbCBsb2FkZWQgZGF0YVxyXG4gIGNsZWFyKCkge1xyXG4gICAgY29uc3QgZmlsZUFyciA9IHRoaXMudHJhbnNsYXRpb25GaWxlcztcclxuICAgIGZpbGVBcnIuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICBmaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucmVtb3ZlKGZpbGUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jbGVhclBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29uQ2xlYXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzVXBsb2FkZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkZpbGVzVXBsb2FkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoZmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgLy8gZmlsZS50cmFuc2xhdGluZyBuZWVkcyB0byBiZSBzZXQsIHNvIG5vIG90aGVyIGdldCBzdGF0dXMgcmVxdWVzdHMgYXJlIHNlbnQgdG8gc2VydmVyLlxyXG4gICAgZmlsZS50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgY29uc3QgaXggPSB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuaW5kZXhPZihmaWxlKTtcclxuICAgIGlmIChpeCA8IDApIHtcclxuICAgICAgdGhyb3cgXCJDYW4ndCByZW1vdmUgZmlsZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtczogSVJlbW92ZUZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IGZpbGVcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5maWxlQXBpLnJlbW92ZShwYXJhbXMpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcih7IEVycm9yQ29kZTogdGhpcy5ub3RGb3VuZFJlbW92ZUVycm9yQ29kZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKCk7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRpb25GaWxlcy5zcGxpY2UoaXgsIDEpO1xyXG4gICAgdGhpcy5maWxlTmFtZXMuc3BsaWNlKGl4LCAxKTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGlvbkZpbGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmhhc0FueUltYWdlT3JQZGYoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZG93bmxvYWRUYXJnZXQodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlLCBmaWxlTWV0YTogSUZpbGVNZXRhKSB7XHJcbiAgICBpZiAodHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRvd25sb2FkUGFyYW1zOiBJRG93bmxvYWRGaWxlUGFyYW1zID0ge1xyXG4gICAgICBpZDogdHJhbnNsYXRpb25GaWxlLmlkLFxyXG4gICAgICBmaWxlTWV0YTogZmlsZU1ldGFcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZG93bmxvYWQoZG93bmxvYWRQYXJhbXMpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgc2F2ZUFzKHJlc3BvbnNlLCBmaWxlTWV0YSA/IGZpbGVNZXRhLmZpbGVOYW1lIDogdHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMub25FcnJvcihlcnJvciwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRTb3VyY2UodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcblxyXG4gICAgaWYgKCF0cmFuc2xhdGlvbkZpbGUuc291cmNlRG93bmxvYWRBdmFpbGFibGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIlNvdXJjZSBkb3dubG9hZCB1bmF2YWlsYWJsZS5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbnZlcnRlZEZpbGVOYW1lID0gdGhpcy5jb252ZXJ0ZWRTb3VyY2VGaWxlTmFtZSh0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSk7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZ1NvdXJjZSA9IHRydWU7XHJcbiAgICBjb25zdCBkb3dubG9hZFBhcmFtczogSURvd25sb2FkRmlsZVBhcmFtcyA9IHtcclxuICAgICAgaWQ6IHRyYW5zbGF0aW9uRmlsZS5pZCxcclxuICAgICAgZmlsZU1ldGE6IHsgZmlsZU5hbWU6IGNvbnZlcnRlZEZpbGVOYW1lIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZG93bmxvYWQoZG93bmxvYWRQYXJhbXMpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmdTb3VyY2UgPSBmYWxzZTtcclxuICAgICAgc2F2ZUFzKHJlc3BvbnNlLCBjb252ZXJ0ZWRGaWxlTmFtZSk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5vbkVycm9yKGVycm9yLCB0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZEZpbGVQcmV2aWV3KGZpbGU6IEZpbGUpOiBJVHJhbnNsYXRpb25GaWxlIHtcclxuICAgIGNvbnN0IGZpbGVzQWxsb3dlZCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcubnVtYmVyT2ZGaWxlc0FsbG93ZWQ7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGUubmFtZTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGlvbkZpbGVzLmxlbmd0aCA+PSBmaWxlc0FsbG93ZWQpIHtcclxuICAgICAgY29uc3QgZXJyb3JDb2RlID0gXCJFUlJPUlMuXCIgKyAoZmlsZXNBbGxvd2VkID4gMSA/IFwiTUFYX05VTUJFUl9PRl9GSUxFU1wiIDogXCJJTkNSRUFTRV9NQVhfTlVNQkVSX09GX0ZJTEVTXCIpO1xyXG4gICAgICB0aGlzLmFsZXJ0cy5lcnJvcihlcnJvckNvZGUsIG51bGwsIHsgbGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmssIGxpbWl0OiBmaWxlc0FsbG93ZWQgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZpbGVOYW1lcy5pbmNsdWRlcyhmaWxlTmFtZSkpIHtcclxuICAgICAgdGhpcy5hbGVydHMuZXJyb3IoXCJFUlJPUlMuRklMRV9BTFJFQURZX0FEREVEXCIsIG51bGwsIHsgZmlsZU5hbWU6IGZpbGUubmFtZSB9KTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlc1VwbG9hZGluZy5wdXNoKGZpbGVOYW1lKTtcclxuICAgIGNvbnN0IHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSA9IHtcclxuICAgICAgb3JpZ2luYWxGaWxlTmFtZTogZmlsZU5hbWUsXHJcbiAgICAgIC8vIG5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICBvcmlnaW5hbEV4dGVuc2lvbjogQ29tbW9uLmdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWUpLFxyXG4gICAgICB0cmFuc2xhdGlvblN0YXR1c3M6IFRyYW5zbGF0aW9uU3RhdHVzcy5VUExPQURJTkcsXHJcbiAgICAgIGZpbGUsXHJcbiAgICAgIG1lc3NhZ2VzOiBbXVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRpb25GaWxlcy5wdXNoKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB0aGlzLmZpbGVOYW1lcy5wdXNoKGZpbGVOYW1lKTtcclxuICAgIGNvbnN0IGlzSW1hZ2UgPSB0aGlzLl9zdXBwb3J0ZWRJbWFnZUV4dGVuc2lvbnMuaW5jbHVkZXMoQ29tbW9uLmdldEZpbGVFeHRlbnNpb24odHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpKTtcclxuICAgIGlmIChpc0ltYWdlKSB7XHJcbiAgICAgIHRoaXMuYW55SW1hZ2VGaWxlTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmZpbGVUeXBlID0gRmlsZUNvbnZlcnNpb25UeXBlcy5JTUFHRTtcclxuICAgIH1cclxuICAgIGNvbnN0IGlzUGRmID0gXCJwZGZcIiA9PT0gQ29tbW9uLmdldEZpbGVFeHRlbnNpb24odHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpO1xyXG4gICAgaWYgKGlzUGRmKSB7XHJcbiAgICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5maWxlVHlwZSA9IEZpbGVDb252ZXJzaW9uVHlwZXMuUERGO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWxlQXBpLnNvdXJjZUZpbGVQcmV2aWV3KHRyYW5zbGF0aW9uRmlsZSkuc3Vic2NyaWJlKChyZXNwKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwLmlzRmlsZVByZXZpZXdMb2FkZWQpIHtcclxuICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID0gVHJhbnNsYXRpb25TdGF0dXNzLlVQTE9BREVEO1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZGVkKGZpbGVOYW1lKTtcclxuICAgICAgICB0aGlzLmZpbGVQcmV2aWV3QWxlcnRzKGlzUGRmLCByZXNwLndvcmRDb3VudCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkZpbGVQcmV2aWV3TG9hZChyZXNwLCB0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMucmVtb3ZlKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25GaWxlO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlQnV0dG9uQ2xpY2soYWN0aXZlOiBJQWN0aXZlRGF0YSkge1xyXG4gICAgdGhpcy50cmFuc2xhdGlvblN0YXJ0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcclxuICAgICAgdGhpcy5zdGFydEZpbGVUcmFuc2xhdGlvbihhY3RpdmUsIGZpbGUpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHN0YXJ0RmlsZVRyYW5zbGF0aW9uKGFjdGl2ZVN5c3RlbTogSUFjdGl2ZURhdGEsIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgaWYgKCF0aGlzLmNhblN0YXJ0VHJhbnNsYXRpb24odHJhbnNsYXRpb25GaWxlKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiQ291bGQgbm90IHN0YXJ0IGZpbGUgdHJhbnNsYXRpb24hXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZVN5c3RlbSA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhcnRlZCA9IHRydWU7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSB0cnVlO1xyXG4gICAgLy8gcXVpdGUgd2VpcmQuIFJlc3BvbnNlIGNhbiBiZSBzdHJ1Y3R1cmUgd2l0aCBzdWNjZXNzIGFuZCBlcnJvciBwYXJhbXMgYW5kIGl0IGNhbiBhbHNvIGJlIHBsYWluIHN0cmluZyBpbiBzdWNjZXNzLlxyXG4gICAgY29uc3QgcGFyYW1zOiBJU3RhcnRGaWxlVHJhbnNsYXRpb25QYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IHRyYW5zbGF0aW9uRmlsZSxcclxuICAgICAgc3lzdGVtOiBhY3RpdmVTeXN0ZW0uc3lzdGVtXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLnN0YXJ0VHJhbnNsYXRpb24ocGFyYW1zKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsZUFwaUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3IpO1xyXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICAvLyB0aHJvdyBlcnJvcjtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKChyZXNwb25zZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIC8vIHNvbWV0aGluZyBnb25lIHdyb25nXHJcbiAgICAgIGlmICghcmVzcG9uc2UpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pZCA9IHJlc3BvbnNlO1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGFydGVkT25TZXJ2ZXIgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5jaGVja1RyYW5zbGF0aW9uUHJvZ3Jlc3ModHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29udmVydGVkU291cmNlRmlsZU5hbWUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwb3N0Rml4ID0gXCJfY29udmVydGVkLmRvY3hcIjtcclxuICAgIGZpbGVOYW1lID0gZmlsZU5hbWUuc2xpY2UoMCwgZmlsZU5hbWUubGFzdEluZGV4T2YoXCIuXCIpKTtcclxuICAgIGNvbnN0IGNvbnZlcnRlZEZpbGVOYW1lID0gZmlsZU5hbWUgKyBwb3N0Rml4O1xyXG4gICAgcmV0dXJuIGNvbnZlcnRlZEZpbGVOYW1lO1xyXG4gIH1cclxuXHJcbiAgZmlsZVVwbG9hZEVycm9yKGVycm9yOiBGaWxlVXBsb2FkRXJyb3IpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IGVycm9yLmZpbGVOYW1lLFxyXG4gICAgICBtYXhTaXplTUI6IENvbW1vbi5ieXRlc1RvTWIodGhpcy5jb25maWcuZmlsZUNvbmZpZy5tYXhTaXplKSxcclxuICAgICAgZm9ybWF0czogdGhpcy5jb25maWcuZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzLmpvaW4oXCIsIFwiKSxcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGlua1xyXG4gICAgfVxyXG4gICAgdGhpcy5hbGVydHMuZXJyb3IoYEVSUk9SUy5GSUxFX1VQTE9BRC4ke2Vycm9yLmNvZGV9YCwgbnVsbCwgcGFyYW1zKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2tzIGFsbCBuZWNlc3NhcnkgcGFyYW1zIHRoYXQgYXJlIHJlc3BvbnNpYmxlIHdoZXRlciBpdCBpcyBhbGxvd2VkIHRvIHN0YXJ0IG5ldyB0cmFuc2xhdGlvbi5cclxuICBwcml2YXRlIGNhblN0YXJ0VHJhbnNsYXRpb24odHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25GaWxlLnRtcE5hbWUgJiYgIXRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgY29uc3QgZmluaXNoZWRTdGF0dXMgPSBUcmFuc2xhdGlvblN0YXR1c3MuQ09NUExFVEVEO1xyXG4gICAgY29uc3QgcGFyYW1zOiBJR2V0RmlsZVN0YXR1c1BhcmFtcyA9IHtcclxuICAgICAgZmlsZTogdHJhbnNsYXRpb25GaWxlLFxyXG4gICAgICBzcmNMYW5nOiB0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSxcclxuICAgICAgdHJnTGFuZzogdGhpcy5hY3RpdmVTeXN0ZW0udGFyZ2V0TGFuZ3VhZ2VcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZ2V0U3RhdHVzKHBhcmFtcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gSWYgbmV0d29yayBlcnJvciwgY2hlY2sgYWdhaW4gYmVjYXVzZSBmaWxlIGhhcyBub3QgZmFpbGVkLlxyXG4gICAgICAgIC8vIHRoaXMgY29kZSBuZWVkcyB0byBiZSB0ZXN0ZWQsIGJlY2F1c2UgY2FudCByZXBlYXQgaXRcclxuICAgICAgICByZXRyeVdoZW4oKG9ic2VydmFibGVzKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZXMucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKGVycm9yLCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGkgPCB0aGlzLl9uZXR3b3JrRXJyb3JNYXhSZXRyaWVzICYmIHRoaXMuX3JldHJ5RXJyb3JDb2Rlcy5pbmNsdWRlcyhlcnJvci5zdGF0dXMpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGltZXIodGhpcy5fZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5zeXN0ZW1JZCAmJiByZXNwb25zZS5zeXN0ZW1JZCAhPT0gdGhpcy5hY3RpdmVTeXN0ZW0uaWQpIHtcclxuICAgICAgICAgICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlU3lzdGVtKHJlc3BvbnNlLnN5c3RlbUlkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlU3lzdGVtID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IHJlc3BvbnNlLnRyYW5zbGF0aW9uU3RhdHVzcztcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZSA9IHJlc3BvbnNlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlO1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnByb2dyZXNzID0gcmVzcG9uc2UucHJvZ3Jlc3M7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUuYXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHJlc3BvbnNlLmV4dGVuc2lvbnM7XHJcbiAgICAgICAgICBpZiAodHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9PSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1IpIHtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3I6IElUbGRFcnJvciA9IHtcclxuICAgICAgICAgICAgICBFcnJvckNvZGU6XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZS5zdWJzdGF0dXMgPz8gRXJyb3JDb2RlLkVfRkFJTEVEX0lOX1RSQU5TTEFUSU9OLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICAgICAgLy90aHJvdyBlcnJvcjtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9PT0gZmluaXNoZWRTdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVkQ291bnQgKz0gMTtcclxuICAgICAgICAgICAgLy90cmFuc2xhdGlvbkZpbGUubmFtZSA9IHJlc3BvbnNlLm5hbWU7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5kb3dubG9hZEF2YWlsYWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVkRG9jUHJldmlldyh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vdHJhbnNsYXRpb25GaWxlLmF2YWlsYWJsZUV4dGVuc2lvbnMgPSB0aGlzLmdldEV4dGVuc2lvbkFycmF5KHJlc3BvbnNlLnRyYW5zbGF0aW9ucywgdHJhbnNsYXRpb25GaWxlLm5hbWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHRpbWVvdXQgPSB0aGlzLl9kZWZhdWx0U3RhdHVzQ2hlY2tUaW1lb3V0O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0cyAmJiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdKSB7XHJcbiAgICAgICAgICAgICAgdGltZW91dCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc3RhdHVzVGltZW91dHMgJiYgdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc10pIHtcclxuICAgICAgICAgICAgICB0aW1lb3V0ID0gdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICAgICAgICAgIH0sIHRpbWVvdXQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IFRyYW5zbGF0aW9uU3RhdHVzcy5FUlJPUjtcclxuICAgICAgICAgIHRoaXMub25UcmFuc2xhdGlvbkZpbGVFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25GaWxlUHJldmlld0xvYWQoZGF0YTogSVNvdXJjZUZpbGVQcmV2aWV3UmVzcG9uc2UsIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRmlsZVByZXZpZXdMb2FkZWQgPSBkYXRhLmlzRmlsZVByZXZpZXdMb2FkZWQ7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudG1wTmFtZSA9IGRhdGEudG1wTmFtZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VQcmV2aWV3SGFzSHRtbCA9IGRhdGEuc291cmNlUHJldmlld0hhc0h0bWw7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuc291cmNlUHJldmlldyA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGRhdGEuc291cmNlUHJldmlldyk7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVByZXZpZXdQcm9ncmVzcyA9IGRhdGEucGVyY2VudERvbmU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVkRG9jUHJldmlldyh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGNvbnN0IHBhcmFtczogSVRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXdQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGVOYW1lOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSxcclxuICAgICAgdHJhbnNsYXRpb25Eb2NJZDogdHJhbnNsYXRpb25GaWxlLmlkXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLnRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXcocGFyYW1zKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogeyBzdWNjZXNzOiBib29sZWFuLCBlcnJvcj86IHN0cmluZywgc3RhdHVzOiBzdHJpbmcsIHByZXZpZXc6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzcG9uc2UucHJldmlldykge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0ZWRQcmV2aWV3ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocmVzcG9uc2UucHJldmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0ZWRQcmV2aWV3ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUsIGVycm9yOiBhbnkpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID0gVHJhbnNsYXRpb25TdGF0dXNzLkVSUk9SO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxlUHJldmlld0FsZXJ0cyhpc1BkZjogYm9vbGVhbiwgd29yZENvdW50OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IG1heFdvcmRDb3VudCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcud29yZExpbWl0O1xyXG4gICAgY29uc3QgYWxlcnRQYXJhbXMgPSB7XHJcbiAgICAgIHJlZ2lzdGVyTGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmssXHJcbiAgICAgIHdvcmRDb3VudDogbWF4V29yZENvdW50LFxyXG4gICAgICBhcHBOYW1lOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmFwcE5hbWVcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5jb25maWcuZmlsZUNvbmZpZy5zaG93VHJhbnNsYXRpb25MaW1pdHMpIHtcclxuICAgICAgaWYgKGlzUGRmICYmIHRoaXMuY29uZmlnLmZpbGVDb25maWcub2NyUGFnZUxpbWl0KSB7XHJcbiAgICAgICAgdGhpcy5hbGVydHMud2FybmluZyhcIlRMRF9UUkFOU0xBVEUuUERGX1BBR0VfTElNSVRfTVNHXCIsIGFsZXJ0UGFyYW1zKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAod29yZENvdW50ICYmIG1heFdvcmRDb3VudCAmJiB3b3JkQ291bnQgPiBtYXhXb3JkQ291bnQpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiVExEX1RSQU5TTEFURS5ET0NfV09SRF9DTlRfTElNSVRfTVNHXCIsIGFsZXJ0UGFyYW1zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkVycm9yKGVycm9yOiBhbnksIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgaWYgKHRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVycm9yRm9yTWVzc2FnZSA9IGVycm9yLnN0YXR1cyA9PT0gNDA0ID8geyBFcnJvckNvZGU6IHRoaXMubm90Rm91bmRFcnJvckNvZGUgfSA6IGVycm9yO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3JGb3JNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZVVwbG9hZGVkKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZpbGVJeCA9IHRoaXMuZmlsZXNVcGxvYWRpbmcuaW5kZXhPZihmaWxlTmFtZSk7XHJcbiAgICBpZiAoZmlsZUl4ID49IDApIHtcclxuICAgICAgdGhpcy5maWxlc1VwbG9hZGluZy5zcGxpY2UoZmlsZUl4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkaW5nLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLl9vbkZpbGVzVXBsb2FkZWQubmV4dChudWxsKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBbnlJbWFnZU9yUGRmKCkge1xyXG4gICAgbGV0IGFueUltYWdlID0gZmFsc2U7XHJcbiAgICBsZXQgYW55UGRmID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggJiYgIShhbnlQZGYgJiYgYW55SW1hZ2UpOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IHRoaXMudHJhbnNsYXRpb25GaWxlc1tpXTtcclxuICAgICAgaWYgKGZpbGUuZmlsZVR5cGUgPT09IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0UpIHtcclxuICAgICAgICBhbnlJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZmlsZS5maWxlVHlwZSA9PT0gRmlsZUNvbnZlcnNpb25UeXBlcy5QREYpIHtcclxuICAgICAgICBhbnlQZGYgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSBhbnlJbWFnZTtcclxuICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IGFueVBkZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzID0gW107XHJcbiAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYW55SW1hZ2VGaWxlTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpbGVOYW1lcyA9IFtdO1xyXG4gICAgdGhpcy50cmFuc2xhdGVkQ291bnQgPSAwO1xyXG4gICAgdGhpcy5maWxlc1VwbG9hZGluZyA9IFtdO1xyXG4gICAgdGhpcy5fb25DbGVhci5uZXh0KG51bGwpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlLCBlcnJvcjogYW55KSB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5hbGVydHMuZmluZEVycm9yVGl0bGVBbmRMb2NhbGl6YXRpb25LZXkoZXJyb3IpO1xyXG4gICAgY29uc3Qgb3JpZ2luYWxGaWxlTmFtZSA9IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lO1xyXG4gICAgY29uc3QgaW5saW5lTWVzc2FnZTogSW5saW5lTWVzc2FnZSA9IHtcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UudGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXNzYWdlLmRlc2NyaXB0aW9uLFxyXG4gICAgICB0eXBlOiBJbmxpbmVNZXNzYWdlVHlwZS5FUlJPUixcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7IGZpbGVOYW1lOiBvcmlnaW5hbEZpbGVOYW1lLCAuLi50aGlzLmFsZXJ0cy5kZWZhdWx0UGFyYW1zIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmFsZXJ0cy5lcnJvcihtZXNzYWdlLmRlc2NyaXB0aW9uLCBtZXNzYWdlLnRpdGxlLCB7IGZpbGVOYW1lOiBvcmlnaW5hbEZpbGVOYW1lIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNsYXRpb25GaWxlLm1lc3NhZ2VzLnB1c2goaW5saW5lTWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBQzFGLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQXFPLE1BQU0seUJBQXlCLENBQUM7QUFLL1IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7QUFLMUYsTUFBTSxPQUFPLHVCQUF1QjtJQWdDbEMsWUFDbUQsT0FBd0IsRUFDeEQsTUFBdUIsRUFDaEMsU0FBdUIsRUFDdkIsTUFBaUMsRUFDeEIsU0FBMkI7UUFKSyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4RCxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLFdB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LEVBQUUsTUFBTTtpQkFDbkI7OzBCQWtDSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IElubGluZU1lc3NhZ2UsIElubGluZU1lc3NhZ2VUeXBlLCBGaWxlVXBsb2FkRXJyb3IgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAsIHJldHJ5V2hlbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRklMRV9BUElfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBDb21tb24sIEVycm9yQ29kZSwgSURvd25sb2FkRmlsZVBhcmFtcywgSUZpbGVBcGlTZXJ2aWNlLCBJRmlsZU1ldGEsIElHZXRGaWxlU3RhdHVzUGFyYW1zLCBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UsIElSZW1vdmVGaWxlUGFyYW1zLCBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zLCBJVGxkRXJyb3IsIElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTeXN0ZW0gfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9zeXN0ZW0vc3lzdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvbW9kZWxzJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TdGF0dXNzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlsZUNvbnZlcnNpb25UeXBlcyB9IGZyb20gJy4uL21vZGVscy9maWxlLWNvbnZlcnNpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRpb25GaWxlIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zbGF0ZS1maWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZUV4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3NoYXJlZC9leHRlbnNpb24tZGlhbG9nL21vZGVscy9lbnVtcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSB7XHJcblxyXG4gIHRyYW5zbGF0aW9uU3RhcnRlZDogYm9vbGVhbjtcclxuICAvKiogVmFsdWUgdG8gYmUgc2V0IHRvIHRydWUgd2hpbGUgbG9hZGluZyBzb3VyY2UgcHJldmlldy4gQXQgdGhhdCB0aW1lLCB0cmFuc2xhdGUgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZC4gKi9cclxuICBnZXQgaXNVcGxvYWRpbmdGaWxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5maWxlc1VwbG9hZGluZy5sZW5ndGggPiAwOyB9O1xyXG4gIHRyYW5zbGF0aW9uRmlsZXM6IElUcmFuc2xhdGlvbkZpbGVbXSA9IFtdO1xyXG4gIGZpbGVOYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBmaWxlc0FkZGVkOiBudW1iZXI7XHJcbiAgYW55UGRmRmlsZUxvYWRlZDogYm9vbGVhbjtcclxuICBhbnlJbWFnZUZpbGVMb2FkZWQ6IGJvb2xlYW47XHJcbiAgLy9mb3IgbXVsdGlwbGUgZmlsZSBjb21wb25lbnRcclxuICB0cmFuc2xhdGVkQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgbXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBkaXNhYmxlVHJhbnNsYXRlQnV0dG9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TdGFydGVkIHx8IHRoaXMuaXNVcGxvYWRpbmdGaWxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfb25GaWxlc1VwbG9hZGVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgYWN0aXZlU3lzdGVtOiBTeXN0ZW07XHJcbiAgLy8gVE9ETy4gQ29uZmlndXJhYmxlP1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRTdGF0dXNDaGVja1RpbWVvdXQgPSAxMDAwO1xyXG4gIC8vIDAgaXMgbmV0d29yayBlcnJvciwgc2hvdWxkIHRyeSBhZ2FpblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JldHJ5RXJyb3JDb2RlcyA9IFswXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9uZXR3b3JrRXJyb3JNYXhSZXRyaWVzID0gMjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXNUaW1lb3V0cyA9IHt9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uQ2xlYXIgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkSW1hZ2VFeHRlbnNpb25zID0gW1wicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICBwcml2YXRlIGZpbGVzVXBsb2FkaW5nOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgbm90Rm91bmRFcnJvckNvZGUgPSBcIkVfNDA0XCI7XHJcbiAgcHJpdmF0ZSBub3RGb3VuZFJlbW92ZUVycm9yQ29kZSA9IFwiRV80MDRfUkVNT1ZFXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChGSUxFX0FQSV9TRVJWSUNFX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGZpbGVBcGk6IElGaWxlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSkge1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLkVYVFJBQ1RJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5FWFRSQUNUSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuSU5JVElBTElaSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuUVVFVUlOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLlNBVklOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLlRSQU5TTEFUSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuV0FJVElOR10gPSAxMDAwMDtcclxuICB9XHJcblxyXG4gIC8vIGNsZWFycyBhbGwgbG9hZGVkIGRhdGFcclxuICBjbGVhcigpIHtcclxuICAgIGNvbnN0IGZpbGVBcnIgPSB0aGlzLnRyYW5zbGF0aW9uRmlsZXM7XHJcbiAgICBmaWxlQXJyLmZvckVhY2goKGZpbGUpID0+IHtcclxuICAgICAgZmlsZS50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbW92ZShmaWxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkNsZWFyLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlc1VwbG9hZGVkKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb25GaWxlc1VwbG9hZGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIC8vIGZpbGUudHJhbnNsYXRpbmcgbmVlZHMgdG8gYmUgc2V0LCBzbyBubyBvdGhlciBnZXQgc3RhdHVzIHJlcXVlc3RzIGFyZSBzZW50IHRvIHNlcnZlci5cclxuICAgIGZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgIGNvbnN0IGl4ID0gdGhpcy50cmFuc2xhdGlvbkZpbGVzLmluZGV4T2YoZmlsZSk7XHJcbiAgICBpZiAoaXggPCAwKSB7XHJcbiAgICAgIHRocm93IFwiQ2FuJ3QgcmVtb3ZlIGZpbGVcIjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJhbXM6IElSZW1vdmVGaWxlUGFyYW1zID0ge1xyXG4gICAgICBmaWxlOiBmaWxlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuZmlsZUFwaS5yZW1vdmUocGFyYW1zKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0cy51bmhhbmRlbGVkRXJyb3IoeyBFcnJvckNvZGU6IHRoaXMubm90Rm91bmRSZW1vdmVFcnJvckNvZGUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZigpO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuc3BsaWNlKGl4LCAxKTtcclxuICAgIHRoaXMuZmlsZU5hbWVzLnNwbGljZShpeCwgMSk7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5oYXNBbnlJbWFnZU9yUGRmKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGRvd25sb2FkVGFyZ2V0KHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSwgZmlsZU1ldGE6IElGaWxlTWV0YSkge1xyXG4gICAgaWYgKHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBkb3dubG9hZFBhcmFtczogSURvd25sb2FkRmlsZVBhcmFtcyA9IHtcclxuICAgICAgaWQ6IHRyYW5zbGF0aW9uRmlsZS5pZCxcclxuICAgICAgZmlsZU1ldGE6IGZpbGVNZXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmRvd25sb2FkKGRvd25sb2FkUGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHNhdmVBcyhyZXNwb25zZSwgZmlsZU1ldGEgPyBmaWxlTWV0YS5maWxlTmFtZSA6IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLm9uRXJyb3IoZXJyb3IsIHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkU291cmNlKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG5cclxuICAgIGlmICghdHJhbnNsYXRpb25GaWxlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJTb3VyY2UgZG93bmxvYWQgdW5hdmFpbGFibGUuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb252ZXJ0ZWRGaWxlTmFtZSA9IHRoaXMuY29udmVydGVkU291cmNlRmlsZU5hbWUodHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmdTb3VyY2UgPSB0cnVlO1xyXG4gICAgY29uc3QgZG93bmxvYWRQYXJhbXM6IElEb3dubG9hZEZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0cmFuc2xhdGlvbkZpbGUuaWQsXHJcbiAgICAgIGZpbGVNZXRhOiB7IGZpbGVOYW1lOiBjb252ZXJ0ZWRGaWxlTmFtZSB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmRvd25sb2FkKGRvd25sb2FkUGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nU291cmNlID0gZmFsc2U7XHJcbiAgICAgIHNhdmVBcyhyZXNwb25zZSwgY29udmVydGVkRmlsZU5hbWUpO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMub25FcnJvcihlcnJvciwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGxvYWRGaWxlUHJldmlldyhmaWxlOiBGaWxlKTogSVRyYW5zbGF0aW9uRmlsZSB7XHJcbiAgICBjb25zdCBmaWxlc0FsbG93ZWQgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkO1xyXG4gICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWU7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggPj0gZmlsZXNBbGxvd2VkKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yQ29kZSA9IFwiRVJST1JTLlwiICsgKGZpbGVzQWxsb3dlZCA+IDEgPyBcIk1BWF9OVU1CRVJfT0ZfRklMRVNcIiA6IFwiSU5DUkVBU0VfTUFYX05VTUJFUl9PRl9GSUxFU1wiKTtcclxuICAgICAgdGhpcy5hbGVydHMuZXJyb3IoZXJyb3JDb2RlLCBudWxsLCB7IGxpbms6IHRoaXMuY29uZmlnLmNvcmVDb25maWcucmVnaXN0ZXJMaW5rLCBsaW1pdDogZmlsZXNBbGxvd2VkIH0pO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5maWxlTmFtZXMuaW5jbHVkZXMoZmlsZU5hbWUpKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRzLmVycm9yKFwiRVJST1JTLkZJTEVfQUxSRUFEWV9BRERFRFwiLCBudWxsLCB7IGZpbGVOYW1lOiBmaWxlLm5hbWUgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsZXNVcGxvYWRpbmcucHVzaChmaWxlTmFtZSk7XHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUgPSB7XHJcbiAgICAgIG9yaWdpbmFsRmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICAvLyBuYW1lOiBmaWxlTmFtZSxcclxuICAgICAgb3JpZ2luYWxFeHRlbnNpb246IENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKSxcclxuICAgICAgdHJhbnNsYXRpb25TdGF0dXNzOiBUcmFuc2xhdGlvblN0YXR1c3MuVVBMT0FESU5HLFxyXG4gICAgICBmaWxlLFxyXG4gICAgICBtZXNzYWdlczogW11cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMucHVzaCh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgdGhpcy5maWxlTmFtZXMucHVzaChmaWxlTmFtZSk7XHJcbiAgICBjb25zdCBpc0ltYWdlID0gdGhpcy5fc3VwcG9ydGVkSW1hZ2VFeHRlbnNpb25zLmluY2x1ZGVzKENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKSk7XHJcbiAgICBpZiAoaXNJbWFnZSkge1xyXG4gICAgICB0aGlzLmFueUltYWdlRmlsZUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5maWxlVHlwZSA9IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpc1BkZiA9IFwicGRmXCIgPT09IENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIGlmIChpc1BkZikge1xyXG4gICAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVR5cGUgPSBGaWxlQ29udmVyc2lvblR5cGVzLlBERjtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsZUFwaS5zb3VyY2VGaWxlUHJldmlldyh0cmFuc2xhdGlvbkZpbGUpLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICBpZiAocmVzcC5pc0ZpbGVQcmV2aWV3TG9hZGVkKSB7XHJcbiAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IFRyYW5zbGF0aW9uU3RhdHVzcy5VUExPQURFRDtcclxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRlZChmaWxlTmFtZSk7XHJcbiAgICAgICAgdGhpcy5maWxlUHJldmlld0FsZXJ0cyhpc1BkZiwgcmVzcC53b3JkQ291bnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub25GaWxlUHJldmlld0xvYWQocmVzcCwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLnJlbW92ZSh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICB0aGlzLmFsZXJ0cy51bmhhbmRlbGVkRXJyb3IoZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uRmlsZTtcclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZUJ1dHRvbkNsaWNrKGFjdGl2ZTogSUFjdGl2ZURhdGEpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb25TdGFydGVkID0gdHJ1ZTtcclxuICAgIHRoaXMudHJhbnNsYXRpb25GaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RhcnRGaWxlVHJhbnNsYXRpb24oYWN0aXZlLCBmaWxlKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzdGFydEZpbGVUcmFuc2xhdGlvbihhY3RpdmVTeXN0ZW06IElBY3RpdmVEYXRhLCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGlmICghdGhpcy5jYW5TdGFydFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uRmlsZSkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkNvdWxkIG5vdCBzdGFydCBmaWxlIHRyYW5zbGF0aW9uIVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVTeXN0ZW0gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXJ0ZWQgPSB0cnVlO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gdHJ1ZTtcclxuICAgIC8vIHF1aXRlIHdlaXJkLiBSZXNwb25zZSBjYW4gYmUgc3RydWN0dXJlIHdpdGggc3VjY2VzcyBhbmQgZXJyb3IgcGFyYW1zIGFuZCBpdCBjYW4gYWxzbyBiZSBwbGFpbiBzdHJpbmcgaW4gc3VjY2Vzcy5cclxuICAgIGNvbnN0IHBhcmFtczogSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zID0ge1xyXG4gICAgICBmaWxlOiB0cmFuc2xhdGlvbkZpbGUsXHJcbiAgICAgIHN5c3RlbTogYWN0aXZlU3lzdGVtLnN5c3RlbVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsZUFwaS5zdGFydFRyYW5zbGF0aW9uKHBhcmFtcykucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgLy8gdGhyb3cgZXJyb3I7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgocmVzcG9uc2U6IHN0cmluZykgPT4ge1xyXG4gICAgICAvLyBzb21ldGhpbmcgZ29uZSB3cm9uZ1xyXG4gICAgICBpZiAoIXJlc3BvbnNlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaWQgPSByZXNwb25zZTtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhcnRlZE9uU2VydmVyID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRlZFNvdXJjZUZpbGVOYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcG9zdEZpeCA9IFwiX2NvbnZlcnRlZC5kb2N4XCI7XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnNsaWNlKDAsIGZpbGVOYW1lLmxhc3RJbmRleE9mKFwiLlwiKSk7XHJcbiAgICBjb25zdCBjb252ZXJ0ZWRGaWxlTmFtZSA9IGZpbGVOYW1lICsgcG9zdEZpeDtcclxuICAgIHJldHVybiBjb252ZXJ0ZWRGaWxlTmFtZTtcclxuICB9XHJcblxyXG4gIGZpbGVVcGxvYWRFcnJvcihlcnJvcjogRmlsZVVwbG9hZEVycm9yKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGZpbGVOYW1lOiBlcnJvci5maWxlTmFtZSxcclxuICAgICAgbWF4U2l6ZU1COiBDb21tb24uYnl0ZXNUb01iKHRoaXMuY29uZmlnLmZpbGVDb25maWcubWF4U2l6ZSksXHJcbiAgICAgIGZvcm1hdHM6IHRoaXMuY29uZmlnLmZpbGVDb25maWcuYWxsb3dlZEZpbGVUeXBlcy5qb2luKFwiLCBcIiksXHJcbiAgICAgIHJlZ2lzdGVyTGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmtcclxuICAgIH1cclxuICAgIHRoaXMuYWxlcnRzLmVycm9yKGBFUlJPUlMuRklMRV9VUExPQUQuJHtlcnJvci5jb2RlfWAsIG51bGwsIHBhcmFtcyk7XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrcyBhbGwgbmVjZXNzYXJ5IHBhcmFtcyB0aGF0IGFyZSByZXNwb25zaWJsZSB3aGV0ZXIgaXQgaXMgYWxsb3dlZCB0byBzdGFydCBuZXcgdHJhbnNsYXRpb24uXHJcbiAgcHJpdmF0ZSBjYW5TdGFydFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uRmlsZS50bXBOYW1lICYmICF0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGNvbnN0IGZpbmlzaGVkU3RhdHVzID0gVHJhbnNsYXRpb25TdGF0dXNzLkNPTVBMRVRFRDtcclxuICAgIGNvbnN0IHBhcmFtczogSUdldEZpbGVTdGF0dXNQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IHRyYW5zbGF0aW9uRmlsZSxcclxuICAgICAgc3JjTGFuZzogdGhpcy5hY3RpdmVTeXN0ZW0uc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgIHRyZ0xhbmc6IHRoaXMuYWN0aXZlU3lzdGVtLnRhcmdldExhbmd1YWdlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmdldFN0YXR1cyhwYXJhbXMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIElmIG5ldHdvcmsgZXJyb3IsIGNoZWNrIGFnYWluIGJlY2F1c2UgZmlsZSBoYXMgbm90IGZhaWxlZC5cclxuICAgICAgICAvLyB0aGlzIGNvZGUgbmVlZHMgdG8gYmUgdGVzdGVkLCBiZWNhdXNlIGNhbnQgcmVwZWF0IGl0XHJcbiAgICAgICAgcmV0cnlXaGVuKChvYnNlcnZhYmxlcykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVzLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKChlcnJvciwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5fbmV0d29ya0Vycm9yTWF4UmV0cmllcyAmJiB0aGlzLl9yZXRyeUVycm9yQ29kZXMuaW5jbHVkZXMoZXJyb3Iuc3RhdHVzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVyKHRoaXMuX2RlZmF1bHRTdGF0dXNDaGVja1RpbWVvdXQpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogSUdldEZpbGVUcmFuc2xhdGlvblN0YXR1c1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3lzdGVtSWQgJiYgcmVzcG9uc2Uuc3lzdGVtSWQgIT09IHRoaXMuYWN0aXZlU3lzdGVtLmlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZVN5c3RlbShyZXNwb25zZS5zeXN0ZW1JZCwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVN5c3RlbSA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSByZXNwb25zZS50cmFuc2xhdGlvblN0YXR1c3M7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUuc291cmNlRG93bmxvYWRBdmFpbGFibGUgPSByZXNwb25zZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZTtcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5wcm9ncmVzcyA9IHJlc3BvbnNlLnByb2dyZXNzO1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLmF2YWlsYWJsZUV4dGVuc2lvbnMgPSByZXNwb25zZS5leHRlbnNpb25zO1xyXG4gICAgICAgICAgaWYgKHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPT0gVHJhbnNsYXRpb25TdGF0dXNzLkVSUk9SKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yOiBJVGxkRXJyb3IgPSB7XHJcbiAgICAgICAgICAgICAgRXJyb3JDb2RlOlxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3Vic3RhdHVzID8/IEVycm9yQ29kZS5FX0ZBSUxFRF9JTl9UUkFOU0xBVElPTixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy5maWxlQXBpRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgICAgIC8vdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPT09IGZpbmlzaGVkU3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlZENvdW50ICs9IDE7XHJcbiAgICAgICAgICAgIC8vdHJhbnNsYXRpb25GaWxlLm5hbWUgPSByZXNwb25zZS5uYW1lO1xyXG4gICAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUuZG93bmxvYWRBdmFpbGFibGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlZERvY1ByZXZpZXcodHJhbnNsYXRpb25GaWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL3RyYW5zbGF0aW9uRmlsZS5hdmFpbGFibGVFeHRlbnNpb25zID0gdGhpcy5nZXRFeHRlbnNpb25BcnJheShyZXNwb25zZS50cmFuc2xhdGlvbnMsIHRyYW5zbGF0aW9uRmlsZS5uYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dDtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHMgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0c1t0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzXSkge1xyXG4gICAgICAgICAgICAgIHRpbWVvdXQgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXR1c1RpbWVvdXRzICYmIHRoaXMuX3N0YXR1c1RpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdKSB7XHJcbiAgICAgICAgICAgICAgdGltZW91dCA9IHRoaXMuX3N0YXR1c1RpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIXRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICAgICAgICB9LCB0aW1lb3V0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1I7XHJcbiAgICAgICAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRmlsZVByZXZpZXdMb2FkKGRhdGE6IElTb3VyY2VGaWxlUHJldmlld1Jlc3BvbnNlLCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5pc0ZpbGVQcmV2aWV3TG9hZGVkID0gZGF0YS5pc0ZpbGVQcmV2aWV3TG9hZGVkO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRtcE5hbWUgPSBkYXRhLnRtcE5hbWU7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuc291cmNlUHJldmlld0hhc0h0bWwgPSBkYXRhLnNvdXJjZVByZXZpZXdIYXNIdG1sO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnNvdXJjZVByZXZpZXcgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChkYXRhLnNvdXJjZVByZXZpZXcpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmZpbGVQcmV2aWV3UHJvZ3Jlc3MgPSBkYXRhLnBlcmNlbnREb25lO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlZERvY1ByZXZpZXcodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICAvLyBzaG93IHByZXZpZXcgZm9yIG9yaWdpbmFsIGV4dGVuc2lvbiBpZiBleGlzdHMsIGlmIG5vdCwgdGhlbiBwcmV2aWV3IGZvciBkb2N4LCBpZiBub3QgdGhlbiB0cnkgd2l0aCBvcmlnaW5hbCBmaWxlbmFtZS5cclxuICAgIGNvbnN0IGZpbGVOYW1lID0gdHJhbnNsYXRpb25GaWxlLmF2YWlsYWJsZUV4dGVuc2lvbnMuZmluZChleHQgPT4gZXh0LmV4dGVuc2lvbiA9PT0gRmlsZUV4dGVuc2lvbnMuRE9DWCk/LmZpbGVOYW1lXHJcbiAgICAgID8/IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lO1xyXG4gICAgY29uc3QgcGFyYW1zOiBJVHJhbnNsYXRlZERvY3VtZW50UHJldmlld1BhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICB0cmFuc2xhdGlvbkRvY0lkOiB0cmFuc2xhdGlvbkZpbGUuaWRcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkudHJhbnNsYXRlZERvY3VtZW50UHJldmlldyhwYXJhbXMpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiB7IHN1Y2Nlc3M6IGJvb2xlYW4sIGVycm9yPzogc3RyaW5nLCBzdGF0dXM6IHN0cmluZywgcHJldmlldzogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UuZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXNwb25zZS5wcmV2aWV3KSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChyZXNwb25zZS5wcmV2aWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZUFwaUVycm9yKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSwgZXJyb3I6IGFueSkge1xyXG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1I7XHJcbiAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVQcmV2aWV3QWxlcnRzKGlzUGRmOiBib29sZWFuLCB3b3JkQ291bnQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgbWF4V29yZENvdW50ID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy53b3JkTGltaXQ7XHJcbiAgICBjb25zdCBhbGVydFBhcmFtcyA9IHtcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGluayxcclxuICAgICAgd29yZENvdW50OiBtYXhXb3JkQ291bnQsXHJcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmNvcmVDb25maWcuYXBwTmFtZVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cykge1xyXG4gICAgICBpZiAoaXNQZGYgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5vY3JQYWdlTGltaXQpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiVExEX1RSQU5TTEFURS5QREZfUEFHRV9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh3b3JkQ291bnQgJiYgbWF4V29yZENvdW50ICYmIHdvcmRDb3VudCA+IG1heFdvcmRDb3VudCkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoXCJUTERfVFJBTlNMQVRFLkRPQ19XT1JEX0NOVF9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICBpZiAodHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JGb3JNZXNzYWdlID0gZXJyb3Iuc3RhdHVzID09PSA0MDQgPyB7IEVycm9yQ29kZTogdGhpcy5ub3RGb3VuZEVycm9yQ29kZSB9IDogZXJyb3I7XHJcbiAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvckZvck1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxlVXBsb2FkZWQoZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZmlsZUl4ID0gdGhpcy5maWxlc1VwbG9hZGluZy5pbmRleE9mKGZpbGVOYW1lKTtcclxuICAgIGlmIChmaWxlSXggPj0gMCkge1xyXG4gICAgICB0aGlzLmZpbGVzVXBsb2FkaW5nLnNwbGljZShmaWxlSXgsIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZXNVcGxvYWRpbmcubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuX29uRmlsZXNVcGxvYWRlZC5uZXh0KG51bGwpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0FueUltYWdlT3JQZGYoKSB7XHJcbiAgICBsZXQgYW55SW1hZ2UgPSBmYWxzZTtcclxuICAgIGxldCBhbnlQZGYgPSBmYWxzZTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmFuc2xhdGlvbkZpbGVzLmxlbmd0aCAmJiAhKGFueVBkZiAmJiBhbnlJbWFnZSk7IGkrKykge1xyXG4gICAgICBjb25zdCBmaWxlID0gdGhpcy50cmFuc2xhdGlvbkZpbGVzW2ldO1xyXG4gICAgICBpZiAoZmlsZS5maWxlVHlwZSA9PT0gRmlsZUNvbnZlcnNpb25UeXBlcy5JTUFHRSkge1xyXG4gICAgICAgIGFueUltYWdlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChmaWxlLmZpbGVUeXBlID09PSBGaWxlQ29udmVyc2lvblR5cGVzLlBERikge1xyXG4gICAgICAgIGFueVBkZiA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFueUltYWdlRmlsZUxvYWRlZCA9IGFueUltYWdlO1xyXG4gICAgdGhpcy5hbnlQZGZGaWxlTG9hZGVkID0gYW55UGRmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclBhcmFtcygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb25TdGFydGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMgPSBbXTtcclxuICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZmlsZU5hbWVzID0gW107XHJcbiAgICB0aGlzLnRyYW5zbGF0ZWRDb3VudCA9IDA7XHJcbiAgICB0aGlzLmZpbGVzVXBsb2FkaW5nID0gW107XHJcbiAgICB0aGlzLl9vbkNsZWFyLm5leHQobnVsbClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25UcmFuc2xhdGlvbkZpbGVFcnJvcih0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUsIGVycm9yOiBhbnkpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmFsZXJ0cy5maW5kRXJyb3JUaXRsZUFuZExvY2FsaXphdGlvbktleShlcnJvcik7XHJcbiAgICBjb25zdCBvcmlnaW5hbEZpbGVOYW1lID0gdHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWU7XHJcbiAgICBjb25zdCBpbmxpbmVNZXNzYWdlOiBJbmxpbmVNZXNzYWdlID0ge1xyXG4gICAgICB0aXRsZTogbWVzc2FnZS50aXRsZSxcclxuICAgICAgZGVzY3JpcHRpb246IG1lc3NhZ2UuZGVzY3JpcHRpb24sXHJcbiAgICAgIHR5cGU6IElubGluZU1lc3NhZ2VUeXBlLkVSUk9SLFxyXG4gICAgICBsb2NhbGl6YXRpb25QYXJhbXM6IHsgZmlsZU5hbWU6IG9yaWdpbmFsRmlsZU5hbWUsIC4uLnRoaXMuYWxlcnRzLmRlZmF1bHRQYXJhbXMgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRzLmVycm9yKG1lc3NhZ2UuZGVzY3JpcHRpb24sIG1lc3NhZ2UudGl0bGUsIHsgZmlsZU5hbWU6IG9yaWdpbmFsRmlsZU5hbWUgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2xhdGlvbkZpbGUubWVzc2FnZXMucHVzaChpbmxpbmVNZXNzYWdlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -4874,6 +4874,76 @@ var FileConversionTypes;
|
|
|
4874
4874
|
FileConversionTypes["IMAGE"] = "IMAGE";
|
|
4875
4875
|
})(FileConversionTypes || (FileConversionTypes = {}));
|
|
4876
4876
|
|
|
4877
|
+
var FileTypeIcons;
|
|
4878
|
+
(function (FileTypeIcons) {
|
|
4879
|
+
FileTypeIcons["WORD"] = "file_type_word";
|
|
4880
|
+
FileTypeIcons["WEB"] = "file_type_web";
|
|
4881
|
+
FileTypeIcons["OTHER"] = "file_type_other";
|
|
4882
|
+
FileTypeIcons["POWERPOINT"] = "file_type_powerpoint";
|
|
4883
|
+
FileTypeIcons["EXCEL"] = "file_type_excel";
|
|
4884
|
+
FileTypeIcons["OFFICE_OTHER"] = "file_type_office_other";
|
|
4885
|
+
FileTypeIcons["PDF"] = "file_type_pdf";
|
|
4886
|
+
FileTypeIcons["SCANNED"] = "file_type_scanned";
|
|
4887
|
+
FileTypeIcons["INTERCHANGE"] = "file_type_interchange";
|
|
4888
|
+
})(FileTypeIcons || (FileTypeIcons = {}));
|
|
4889
|
+
|
|
4890
|
+
var FileCategories;
|
|
4891
|
+
(function (FileCategories) {
|
|
4892
|
+
FileCategories["OFFICE"] = "OFFICE";
|
|
4893
|
+
FileCategories["SCANNED"] = "SCANNED";
|
|
4894
|
+
FileCategories["INTERCHANGE"] = "INTERCHANGE";
|
|
4895
|
+
FileCategories["WEB"] = "WEB";
|
|
4896
|
+
FileCategories["OTHER"] = "OTHER";
|
|
4897
|
+
})(FileCategories || (FileCategories = {}));
|
|
4898
|
+
|
|
4899
|
+
var FileTypes;
|
|
4900
|
+
(function (FileTypes) {
|
|
4901
|
+
FileTypes["WORD"] = "WORD";
|
|
4902
|
+
FileTypes["WEB"] = "WEB";
|
|
4903
|
+
FileTypes["OTHER"] = "OTHER";
|
|
4904
|
+
FileTypes["POWERPOINT"] = "POWERPOINT";
|
|
4905
|
+
FileTypes["EXCEL"] = "EXCEL";
|
|
4906
|
+
FileTypes["OFFICE_OTHER"] = "OFFICE_OTHER";
|
|
4907
|
+
FileTypes["PDF"] = "PDF";
|
|
4908
|
+
FileTypes["SCANNED"] = "SCANNED";
|
|
4909
|
+
FileTypes["INTERCHANGE"] = "INTERCHANGE";
|
|
4910
|
+
})(FileTypes || (FileTypes = {}));
|
|
4911
|
+
|
|
4912
|
+
var FileExtensions;
|
|
4913
|
+
(function (FileExtensions) {
|
|
4914
|
+
FileExtensions["DOC"] = "doc";
|
|
4915
|
+
FileExtensions["DOCX"] = "docx";
|
|
4916
|
+
FileExtensions["XLSX"] = "xlsx";
|
|
4917
|
+
FileExtensions["PPTX"] = "pptx";
|
|
4918
|
+
FileExtensions["ODT"] = "odt";
|
|
4919
|
+
FileExtensions["ODP"] = "odp";
|
|
4920
|
+
FileExtensions["ODS"] = "ods";
|
|
4921
|
+
FileExtensions["TXT"] = "txt";
|
|
4922
|
+
FileExtensions["RTF"] = "rtf";
|
|
4923
|
+
FileExtensions["PAGES"] = "pages";
|
|
4924
|
+
FileExtensions["SXW"] = "sxw";
|
|
4925
|
+
FileExtensions["JPG"] = "jpg";
|
|
4926
|
+
FileExtensions["JPEG"] = "jpeg";
|
|
4927
|
+
FileExtensions["PNG"] = "png";
|
|
4928
|
+
FileExtensions["BMP"] = "bmp";
|
|
4929
|
+
FileExtensions["PDF"] = "pdf";
|
|
4930
|
+
FileExtensions["SDLXLIFF"] = "sdlxliff";
|
|
4931
|
+
FileExtensions["SDLXLF"] = "sdlxlf";
|
|
4932
|
+
FileExtensions["TTX"] = "ttx";
|
|
4933
|
+
FileExtensions["TMX"] = "tmx";
|
|
4934
|
+
FileExtensions["XLF"] = "xlf";
|
|
4935
|
+
FileExtensions["XLIF"] = "xlif";
|
|
4936
|
+
FileExtensions["HTML"] = "html";
|
|
4937
|
+
FileExtensions["HTM"] = "htm";
|
|
4938
|
+
FileExtensions["JSON"] = "json";
|
|
4939
|
+
FileExtensions["XHTML"] = "xhtml";
|
|
4940
|
+
FileExtensions["XHT"] = "xht";
|
|
4941
|
+
FileExtensions["XLIFF"] = "xliff";
|
|
4942
|
+
FileExtensions["TEX"] = "tex";
|
|
4943
|
+
FileExtensions["TTL"] = "ttl";
|
|
4944
|
+
FileExtensions["SRT"] = "srt";
|
|
4945
|
+
})(FileExtensions || (FileExtensions = {}));
|
|
4946
|
+
|
|
4877
4947
|
class TldTranslateFileService {
|
|
4878
4948
|
constructor(fileApi, alerts, sanitizer, config, tldSystem) {
|
|
4879
4949
|
this.fileApi = fileApi;
|
|
@@ -5162,8 +5232,11 @@ class TldTranslateFileService {
|
|
|
5162
5232
|
translationFile.filePreviewProgress = data.percentDone;
|
|
5163
5233
|
}
|
|
5164
5234
|
translatedDocPreview(translationFile) {
|
|
5235
|
+
var _a, _b;
|
|
5236
|
+
// show preview for original extension if exists, if not, then preview for docx, if not then try with original filename.
|
|
5237
|
+
const fileName = (_b = (_a = translationFile.availableExtensions.find(ext => ext.extension === FileExtensions.DOCX)) === null || _a === void 0 ? void 0 : _a.fileName) !== null && _b !== void 0 ? _b : translationFile.originalFileName;
|
|
5165
5238
|
const params = {
|
|
5166
|
-
fileName:
|
|
5239
|
+
fileName: fileName,
|
|
5167
5240
|
translationDocId: translationFile.id
|
|
5168
5241
|
};
|
|
5169
5242
|
this.fileApi.translatedDocumentPreview(params)
|
|
@@ -6494,76 +6567,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
6494
6567
|
}]
|
|
6495
6568
|
}] });
|
|
6496
6569
|
|
|
6497
|
-
var FileTypeIcons;
|
|
6498
|
-
(function (FileTypeIcons) {
|
|
6499
|
-
FileTypeIcons["WORD"] = "file_type_word";
|
|
6500
|
-
FileTypeIcons["WEB"] = "file_type_web";
|
|
6501
|
-
FileTypeIcons["OTHER"] = "file_type_other";
|
|
6502
|
-
FileTypeIcons["POWERPOINT"] = "file_type_powerpoint";
|
|
6503
|
-
FileTypeIcons["EXCEL"] = "file_type_excel";
|
|
6504
|
-
FileTypeIcons["OFFICE_OTHER"] = "file_type_office_other";
|
|
6505
|
-
FileTypeIcons["PDF"] = "file_type_pdf";
|
|
6506
|
-
FileTypeIcons["SCANNED"] = "file_type_scanned";
|
|
6507
|
-
FileTypeIcons["INTERCHANGE"] = "file_type_interchange";
|
|
6508
|
-
})(FileTypeIcons || (FileTypeIcons = {}));
|
|
6509
|
-
|
|
6510
|
-
var FileCategories;
|
|
6511
|
-
(function (FileCategories) {
|
|
6512
|
-
FileCategories["OFFICE"] = "OFFICE";
|
|
6513
|
-
FileCategories["SCANNED"] = "SCANNED";
|
|
6514
|
-
FileCategories["INTERCHANGE"] = "INTERCHANGE";
|
|
6515
|
-
FileCategories["WEB"] = "WEB";
|
|
6516
|
-
FileCategories["OTHER"] = "OTHER";
|
|
6517
|
-
})(FileCategories || (FileCategories = {}));
|
|
6518
|
-
|
|
6519
|
-
var FileTypes;
|
|
6520
|
-
(function (FileTypes) {
|
|
6521
|
-
FileTypes["WORD"] = "WORD";
|
|
6522
|
-
FileTypes["WEB"] = "WEB";
|
|
6523
|
-
FileTypes["OTHER"] = "OTHER";
|
|
6524
|
-
FileTypes["POWERPOINT"] = "POWERPOINT";
|
|
6525
|
-
FileTypes["EXCEL"] = "EXCEL";
|
|
6526
|
-
FileTypes["OFFICE_OTHER"] = "OFFICE_OTHER";
|
|
6527
|
-
FileTypes["PDF"] = "PDF";
|
|
6528
|
-
FileTypes["SCANNED"] = "SCANNED";
|
|
6529
|
-
FileTypes["INTERCHANGE"] = "INTERCHANGE";
|
|
6530
|
-
})(FileTypes || (FileTypes = {}));
|
|
6531
|
-
|
|
6532
|
-
var FileExtensions;
|
|
6533
|
-
(function (FileExtensions) {
|
|
6534
|
-
FileExtensions["DOC"] = "doc";
|
|
6535
|
-
FileExtensions["DOCX"] = "docx";
|
|
6536
|
-
FileExtensions["XLSX"] = "xlsx";
|
|
6537
|
-
FileExtensions["PPTX"] = "pptx";
|
|
6538
|
-
FileExtensions["ODT"] = "odt";
|
|
6539
|
-
FileExtensions["ODP"] = "odp";
|
|
6540
|
-
FileExtensions["ODS"] = "ods";
|
|
6541
|
-
FileExtensions["TXT"] = "txt";
|
|
6542
|
-
FileExtensions["RTF"] = "rtf";
|
|
6543
|
-
FileExtensions["PAGES"] = "pages";
|
|
6544
|
-
FileExtensions["SXW"] = "sxw";
|
|
6545
|
-
FileExtensions["JPG"] = "jpg";
|
|
6546
|
-
FileExtensions["JPEG"] = "jpeg";
|
|
6547
|
-
FileExtensions["PNG"] = "png";
|
|
6548
|
-
FileExtensions["BMP"] = "bmp";
|
|
6549
|
-
FileExtensions["PDF"] = "pdf";
|
|
6550
|
-
FileExtensions["SDLXLIFF"] = "sdlxliff";
|
|
6551
|
-
FileExtensions["SDLXLF"] = "sdlxlf";
|
|
6552
|
-
FileExtensions["TTX"] = "ttx";
|
|
6553
|
-
FileExtensions["TMX"] = "tmx";
|
|
6554
|
-
FileExtensions["XLF"] = "xlf";
|
|
6555
|
-
FileExtensions["XLIF"] = "xlif";
|
|
6556
|
-
FileExtensions["HTML"] = "html";
|
|
6557
|
-
FileExtensions["HTM"] = "htm";
|
|
6558
|
-
FileExtensions["JSON"] = "json";
|
|
6559
|
-
FileExtensions["XHTML"] = "xhtml";
|
|
6560
|
-
FileExtensions["XHT"] = "xht";
|
|
6561
|
-
FileExtensions["XLIFF"] = "xliff";
|
|
6562
|
-
FileExtensions["TEX"] = "tex";
|
|
6563
|
-
FileExtensions["TTL"] = "ttl";
|
|
6564
|
-
FileExtensions["SRT"] = "srt";
|
|
6565
|
-
})(FileExtensions || (FileExtensions = {}));
|
|
6566
|
-
|
|
6567
6570
|
class ExtensionDialogComponent {
|
|
6568
6571
|
constructor(data) {
|
|
6569
6572
|
this.data = data;
|
|
@@ -6677,10 +6680,10 @@ class ExtensionDialogComponent {
|
|
|
6677
6680
|
}
|
|
6678
6681
|
}
|
|
6679
6682
|
ExtensionDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExtensionDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
6680
|
-
ExtensionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ExtensionDialogComponent, selector: "app-extension-dialog", ngImport: i0, template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n
|
|
6683
|
+
ExtensionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ExtensionDialogComponent, selector: "app-extension-dialog", ngImport: i0, template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n <ng-container *ngFor=\"let category of config.elements\">\r\n <div *ngIf=\"category.anyVisible\" class=\"category\">\r\n <h2 class=\"category-title\">\r\n {{ 'EXTENSION_POPUP.' + category.category | translate }}\r\n </h2>\r\n <div fxLayout=\"row\">\r\n <div *ngFor=\"let column of category.columns\" class=\"extension-column\">\r\n <ul *ngIf=\"column.anyVisible\">\r\n <ng-container *ngFor=\"let extension of column.extensions\">\r\n <li *ngIf=\"extension.visible\" fxLayoutAlign=\"start center\">\r\n <mat-icon svgIcon=\"{{ extension.icon }}\" aria-hidden=\"false\"[attr.aria-label]=\"extension.extension\"></mat-icon>\r\n <span>{{ extension.extension }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["[mat-dialog-content]{position:relative}[mat-dialog-content] tld-close-button{position:absolute;right:1em;top:0}[mat-dialog-content] header{margin-bottom:1.5em;text-align:center}[mat-dialog-content] header h1{font-size:20px;font-weight:500;margin:0 0 .5em}[mat-dialog-content] header p{margin:0}[mat-dialog-content] ul{list-style-type:none;margin:0;padding:0}[mat-dialog-content] ul li+li{margin-top:.5em}[mat-dialog-content] .category-title{border-bottom:1px solid var(--base-70);font-size:.875em;font-weight:500;text-align:center;padding-bottom:.5em;line-height:1.25em}[mat-dialog-content] .extension-column{font-size:.875em;line-height:1.25em}[mat-dialog-content] .extension-column+.extension-column{margin-left:1em}[mat-dialog-content] :not(.small-screen) .category+.category{margin-left:3em}[mat-dialog-content] mat-icon{width:20px;height:20px}[mat-dialog-content] .description{font-size:.875em}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
|
|
6681
6684
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExtensionDialogComponent, decorators: [{
|
|
6682
6685
|
type: Component,
|
|
6683
|
-
args: [{ selector: 'app-extension-dialog', template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n
|
|
6686
|
+
args: [{ selector: 'app-extension-dialog', template: "<div mat-dialog-content>\r\n <tld-close-button mat-dialog-close></tld-close-button>\r\n\r\n <header>\r\n <h1>{{'EXTENSION_POPUP.TITLE' | translate}}</h1>\r\n <p class=\"description\">{{'EXTENSION_POPUP.DESCRIPTION' | translate}}</p>\r\n </header>\r\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" [ngClass.lt-md]=\"'small-screen'\">\r\n <ng-container *ngFor=\"let category of config.elements\">\r\n <div *ngIf=\"category.anyVisible\" class=\"category\">\r\n <h2 class=\"category-title\">\r\n {{ 'EXTENSION_POPUP.' + category.category | translate }}\r\n </h2>\r\n <div fxLayout=\"row\">\r\n <div *ngFor=\"let column of category.columns\" class=\"extension-column\">\r\n <ul *ngIf=\"column.anyVisible\">\r\n <ng-container *ngFor=\"let extension of column.extensions\">\r\n <li *ngIf=\"extension.visible\" fxLayoutAlign=\"start center\">\r\n <mat-icon svgIcon=\"{{ extension.icon }}\" aria-hidden=\"false\"[attr.aria-label]=\"extension.extension\"></mat-icon>\r\n <span>{{ extension.extension }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["[mat-dialog-content]{position:relative}[mat-dialog-content] tld-close-button{position:absolute;right:1em;top:0}[mat-dialog-content] header{margin-bottom:1.5em;text-align:center}[mat-dialog-content] header h1{font-size:20px;font-weight:500;margin:0 0 .5em}[mat-dialog-content] header p{margin:0}[mat-dialog-content] ul{list-style-type:none;margin:0;padding:0}[mat-dialog-content] ul li+li{margin-top:.5em}[mat-dialog-content] .category-title{border-bottom:1px solid var(--base-70);font-size:.875em;font-weight:500;text-align:center;padding-bottom:.5em;line-height:1.25em}[mat-dialog-content] .extension-column{font-size:.875em;line-height:1.25em}[mat-dialog-content] .extension-column+.extension-column{margin-left:1em}[mat-dialog-content] :not(.small-screen) .category+.category{margin-left:3em}[mat-dialog-content] mat-icon{width:20px;height:20px}[mat-dialog-content] .description{font-size:.875em}\n"] }]
|
|
6684
6687
|
}], ctorParameters: function () {
|
|
6685
6688
|
return [{ type: undefined, decorators: [{
|
|
6686
6689
|
type: Inject,
|