@tilde-nlp/ngx-translate 2.0.1 → 2.0.3-deepl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2020/lib/components/shared/extension-dialog/extension-dialog.component.mjs +3 -3
  2. package/esm2020/lib/i18n/en.mjs +4 -2
  3. package/esm2020/lib/i18n/lv.mjs +4 -2
  4. package/esm2020/lib/modules/tld-common/components/tld-list-menu/tld-list-menu.component.mjs +4 -3
  5. package/esm2020/lib/modules/tld-common/index.mjs +1 -1
  6. package/esm2020/lib/modules/tld-common/models/configs/tld-translate-text-config.model.mjs +1 -1
  7. package/esm2020/lib/modules/tld-common/pipes/capitalize.pipe.mjs +16 -0
  8. package/esm2020/lib/modules/tld-common/pipes/index.mjs +2 -1
  9. package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +2 -1
  10. package/esm2020/lib/modules/tld-common/tld-common.module.mjs +9 -4
  11. package/esm2020/lib/modules/tld-document/services/tld-translate-file.service.mjs +6 -2
  12. package/esm2020/lib/modules/tld-text/components/textarea-with-background/textarea-with-background.component.mjs +2 -2
  13. package/esm2020/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.mjs +6 -5
  14. package/esm2020/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.mjs +5 -4
  15. package/esm2020/lib/tld-translate.component.mjs +6 -2
  16. package/fesm2015/tilde-nlp-ngx-translate.mjs +150 -119
  17. package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
  18. package/fesm2020/tilde-nlp-ngx-translate.mjs +121 -90
  19. package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
  20. package/lib/i18n/en.d.ts +2 -0
  21. package/lib/i18n/lv.d.ts +2 -0
  22. package/lib/modules/tld-common/models/configs/tld-translate-text-config.model.d.ts +2 -0
  23. package/lib/modules/tld-common/pipes/capitalize.pipe.d.ts +7 -0
  24. package/lib/modules/tld-common/pipes/index.d.ts +1 -0
  25. package/lib/modules/tld-common/tld-common.module.d.ts +8 -7
  26. package/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.d.ts +1 -1
  27. package/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.d.ts +1 -1
  28. package/lib/tld-translate.component.d.ts +2 -1
  29. package/package.json +1 -1
  30. package/src/assets/webcomponent/tld-translate.js +1 -1
  31. package/tilde-nlp-ngx-translate-2.0.3-deepl.tgz +0 -0
  32. package/tilde-nlp-ngx-translate-2.0.1.tgz +0 -0
@@ -14,6 +14,7 @@ import { TldMessageComponent } from './components/tld-message/tld-message.compon
14
14
  import { TldTranslateAchievementComponent } from './components/tld-translate-achievement/tld-translate-achievement.component';
15
15
  import { TldTranslateButtonComponent } from './components/translate-button/translate-button.component';
16
16
  import { TranslateDomainPipe } from './pipes/translate-domain.pipe';
17
+ import { CapitalizePipe } from './pipes/capitalize.pipe';
17
18
  import * as i0 from "@angular/core";
18
19
  export class TldCommonModule {
19
20
  }
@@ -26,7 +27,8 @@ TldCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
26
27
  TldOpenCloseButtonComponent,
27
28
  TranslateDomainPipe,
28
29
  TldListMenuComponent,
29
- SourceAndTargetWrapperComponent], imports: [FormsModule,
30
+ SourceAndTargetWrapperComponent,
31
+ CapitalizePipe], imports: [FormsModule,
30
32
  CommonModule,
31
33
  MaterialModule,
32
34
  TranslateModule,
@@ -40,7 +42,8 @@ TldCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
40
42
  TldOpenCloseButtonComponent,
41
43
  TranslateDomainPipe,
42
44
  TldListMenuComponent,
43
- SourceAndTargetWrapperComponent] });
45
+ SourceAndTargetWrapperComponent,
46
+ CapitalizePipe] });
44
47
  TldCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldCommonModule, imports: [FormsModule,
45
48
  CommonModule,
46
49
  MaterialModule,
@@ -60,7 +63,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
60
63
  TldOpenCloseButtonComponent,
61
64
  TranslateDomainPipe,
62
65
  TldListMenuComponent,
63
- SourceAndTargetWrapperComponent
66
+ SourceAndTargetWrapperComponent,
67
+ CapitalizePipe
64
68
  ],
65
69
  imports: [
66
70
  FormsModule,
@@ -81,7 +85,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
81
85
  TranslateDomainPipe,
82
86
  TldListMenuComponent,
83
87
  SourceAndTargetWrapperComponent,
88
+ CapitalizePipe
84
89
  ]
85
90
  }]
86
91
  }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWNvbW1vbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL3RsZC1jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzdILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQW9DcEUsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkEvQnhCLGdDQUFnQztRQUNoQyxvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsK0JBQStCLGFBRy9CLFdBQVc7UUFDWCxZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsc0JBQXNCO1FBQ3RCLGtCQUFrQixhQUdsQixnQ0FBZ0M7UUFDaEMsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLCtCQUErQjs2R0FHdEIsZUFBZSxZQXBCeEIsV0FBVztRQUNYLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsa0JBQWtCOzJGQWNULGVBQWU7a0JBakMzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsK0JBQStCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0NBQWdDO3dCQUNoQyxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLCtCQUErQjtxQkFDaEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENsb3NlQnV0dG9uTW9kdWxlLCBTb3J0VHJhbnNsYXRpb25zTW9kdWxlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgVGV4dFRvU3BlZWNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvdGV4dC10by1zcGVlY2gvdGV4dC10by1zcGVlY2gubW9kdWxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUbGRPcGVuQ2xvc2VCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3Blbi1jbG9zZS1idXR0b24vb3Blbi1jbG9zZS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU291cmNlQW5kVGFyZ2V0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyL3NvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkTGFuZ0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLWxhbmctbGlzdC90bGQtbGFuZy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZExpc3RNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RsZC1saXN0LW1lbnUvdGxkLWxpc3QtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLWxvYWRlci90bGQtbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLW1lc3NhZ2UvdGxkLW1lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQWNoaWV2ZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLXRyYW5zbGF0ZS1hY2hpZXZlbWVudC90bGQtdHJhbnNsYXRlLWFjaGlldmVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmFuc2xhdGUtYnV0dG9uL3RyYW5zbGF0ZS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlRG9tYWluUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJhbnNsYXRlLWRvbWFpbi5waXBlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVGxkVHJhbnNsYXRlQWNoaWV2ZW1lbnRDb21wb25lbnQsXHJcbiAgICBUbGRMYW5nTGlzdENvbXBvbmVudCxcclxuICAgIFRsZExvYWRlckNvbXBvbmVudCxcclxuICAgIFRsZE1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBUbGRPcGVuQ2xvc2VCdXR0b25Db21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVEb21haW5QaXBlLFxyXG4gICAgVGxkTGlzdE1lbnVDb21wb25lbnQsXHJcbiAgICBTb3VyY2VBbmRUYXJnZXRXcmFwcGVyQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgQ2xvc2VCdXR0b25Nb2R1bGUsXHJcbiAgICBTb3J0VHJhbnNsYXRpb25zTW9kdWxlLFxyXG4gICAgVGV4dFRvU3BlZWNoTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUbGRUcmFuc2xhdGVBY2hpZXZlbWVudENvbXBvbmVudCxcclxuICAgIFRsZExhbmdMaXN0Q29tcG9uZW50LFxyXG4gICAgVGxkTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgVGxkTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRsZE9wZW5DbG9zZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZURvbWFpblBpcGUsXHJcbiAgICBUbGRMaXN0TWVudUNvbXBvbmVudCxcclxuICAgIFNvdXJjZUFuZFRhcmdldFdyYXBwZXJDb21wb25lbnQsXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkQ29tbW9uTW9kdWxlIHsgfVxyXG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWNvbW1vbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL3RsZC1jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzdILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFzQ3pELE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBakN4QixnQ0FBZ0M7UUFDaEMsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLCtCQUErQjtRQUMvQixjQUFjLGFBR2QsV0FBVztRQUNYLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsa0JBQWtCLGFBR2xCLGdDQUFnQztRQUNoQyxvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsK0JBQStCO1FBQy9CLGNBQWM7NkdBR0wsZUFBZSxZQXJCeEIsV0FBVztRQUNYLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsa0JBQWtCOzJGQWVULGVBQWU7a0JBbkMzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsK0JBQStCO3dCQUMvQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsK0JBQStCO3dCQUMvQixjQUFjO3FCQUNmO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDbG9zZUJ1dHRvbk1vZHVsZSwgU29ydFRyYW5zbGF0aW9uc01vZHVsZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IFRleHRUb1NwZWVjaE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2hhcmVkL3RleHQtdG8tc3BlZWNoL3RleHQtdG8tc3BlZWNoLm1vZHVsZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcclxuaW1wb3J0IHsgVGxkT3BlbkNsb3NlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29wZW4tY2xvc2UtYnV0dG9uL29wZW4tY2xvc2UtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNvdXJjZUFuZFRhcmdldFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc291cmNlLWFuZC10YXJnZXQtd3JhcHBlci9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZExhbmdMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RsZC1sYW5nLWxpc3QvdGxkLWxhbmctbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRMaXN0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90bGQtbGlzdC1tZW51L3RsZC1saXN0LW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RsZC1sb2FkZXIvdGxkLWxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RsZC1tZXNzYWdlL3RsZC1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUFjaGlldmVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RsZC10cmFuc2xhdGUtYWNoaWV2ZW1lbnQvdGxkLXRyYW5zbGF0ZS1hY2hpZXZlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdHJhbnNsYXRlLWJ1dHRvbi90cmFuc2xhdGUtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZURvbWFpblBpcGUgfSBmcm9tICcuL3BpcGVzL3RyYW5zbGF0ZS1kb21haW4ucGlwZSc7XHJcbmltcG9ydCB7IENhcGl0YWxpemVQaXBlIH0gZnJvbSAnLi9waXBlcy9jYXBpdGFsaXplLnBpcGUnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUbGRUcmFuc2xhdGVBY2hpZXZlbWVudENvbXBvbmVudCxcclxuICAgIFRsZExhbmdMaXN0Q29tcG9uZW50LFxyXG4gICAgVGxkTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgVGxkTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRsZE9wZW5DbG9zZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZURvbWFpblBpcGUsXHJcbiAgICBUbGRMaXN0TWVudUNvbXBvbmVudCxcclxuICAgIFNvdXJjZUFuZFRhcmdldFdyYXBwZXJDb21wb25lbnQsXHJcbiAgICBDYXBpdGFsaXplUGlwZVxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIENsb3NlQnV0dG9uTW9kdWxlLFxyXG4gICAgU29ydFRyYW5zbGF0aW9uc01vZHVsZSxcclxuICAgIFRleHRUb1NwZWVjaE1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVGxkVHJhbnNsYXRlQWNoaWV2ZW1lbnRDb21wb25lbnQsXHJcbiAgICBUbGRMYW5nTGlzdENvbXBvbmVudCxcclxuICAgIFRsZExvYWRlckNvbXBvbmVudCxcclxuICAgIFRsZE1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBUbGRPcGVuQ2xvc2VCdXR0b25Db21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVEb21haW5QaXBlLFxyXG4gICAgVGxkTGlzdE1lbnVDb21wb25lbnQsXHJcbiAgICBTb3VyY2VBbmRUYXJnZXRXcmFwcGVyQ29tcG9uZW50LFxyXG4gICAgQ2FwaXRhbGl6ZVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRDb21tb25Nb2R1bGUgeyB9XHJcbiJdfQ==
@@ -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: translationFile.originalFileName,
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
@@ -127,10 +127,10 @@ export class TextareaWithBackgroundComponent {
127
127
  }
128
128
  }
129
129
  TextareaWithBackgroundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextareaWithBackgroundComponent, deps: [{ token: i1.TldAlertService }, { token: i2.TldTranslateTextService }], target: i0.ɵɵFactoryTarget.Component });
130
- TextareaWithBackgroundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextareaWithBackgroundComponent, selector: "tld-textarea-with-background", inputs: { maxCharLength: "maxCharLength", autoFocuss: "autoFocuss", highlightTree: "highlightTree", highlight: "highlight", gramCheck: "gramCheck", textareaDisabled: "textareaDisabled" }, viewQueries: [{ propertyName: "sourceInput", first: true, predicate: ["sourceInput"], descendants: true }, { propertyName: "treeWrapper", first: true, predicate: ["treeWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"textarea-with-background\">\r\n <textarea [disabled]=\"textareaDisabled\" cdkScrollable (paste)=\"onPaste($event)\" matInput [(ngModel)]=\"sourceText\" #sourceInput fxFlex\r\n spellcheck=\"false\" (mousemove)=\"onTextAreaMouseMove($event)\" [attr.maxLength]=\"maxCharLength? maxCharLength: null\"\r\n [attr.aria-label]=\"'TLD_TRANSLATE.SOURCE_TOOLTIP' | translate\" (click)=\"textareaClick($event)\"></textarea>\r\n <div class=\"{{wrapperClass}}\" *ngIf=\"gramCheck || highlight\" cdkScrollable #treeWrapper>\r\n <div class=\"textarea-highlight-backround-inner\" cdkScrollable>\r\n <div *ngFor=\"let paragraph of highlightTree\">\r\n <tld-highlight-tree [isSource]=\"true\" [tree]=\"paragraph\" [highlight]=\"highlight\" [gramCheck]=\"gramCheck\"\r\n (onReplace)=\"replace($event)\"></tld-highlight-tree>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".textarea-with-background{position:relative}.textarea-with-background .textarea-highlight-background{position:absolute;color:transparent}.textarea-with-background textarea{resize:none!important;z-index:1;caret-color:#000!important}.textarea-with-background textarea,.textarea-with-background .textarea-highlight-backround-inner{padding:1em!important}.textarea-with-background .textarea-highlight-backround-inner{max-width:calc(100% - 2em);width:calc(100% - 2em);min-width:calc(100% - 2em);min-height:calc(100% - 2em);max-height:calc(100% - 2em);height:calc(100% - 2em);overflow-y:auto}.textarea-with-background,.textarea-highlight-background{width:100%;max-width:100%;min-width:100%;min-height:100%;max-height:100%;height:100%}\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: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.HighlightTreeComponent, selector: "tld-highlight-tree", inputs: ["tree", "isSource", "correctionsEnabled", "highlight", "gramCheck", "selectSentence"], outputs: ["onReplace"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
130
+ TextareaWithBackgroundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextareaWithBackgroundComponent, selector: "tld-textarea-with-background", inputs: { maxCharLength: "maxCharLength", autoFocuss: "autoFocuss", highlightTree: "highlightTree", highlight: "highlight", gramCheck: "gramCheck", textareaDisabled: "textareaDisabled" }, viewQueries: [{ propertyName: "sourceInput", first: true, predicate: ["sourceInput"], descendants: true }, { propertyName: "treeWrapper", first: true, predicate: ["treeWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"textarea-with-background\">\r\n <textarea [disabled]=\"textareaDisabled\" cdkScrollable (paste)=\"onPaste($event)\" matInput [(ngModel)]=\"sourceText\" #sourceInput fxFlex\r\n spellcheck=\"false\" (mousemove)=\"onTextAreaMouseMove($event)\" [attr.maxLength]=\"maxCharLength? maxCharLength: null\"\r\n [attr.aria-label]=\"'TLD_TRANSLATE.SOURCE_TOOLTIP' | translate\" (click)=\"textareaClick($event)\"></textarea>\r\n <div class=\"{{wrapperClass}}\" *ngIf=\"gramCheck || highlight\" cdkScrollable #treeWrapper>\r\n <div class=\"textarea-highlight-backround-inner\" cdkScrollable>\r\n <div *ngFor=\"let paragraph of highlightTree\">\r\n <tld-highlight-tree [isSource]=\"true\" [tree]=\"paragraph\" [highlight]=\"highlight\" [gramCheck]=\"gramCheck\"\r\n (onReplace)=\"replace($event)\"></tld-highlight-tree>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".textarea-with-background{position:relative}.textarea-with-background .textarea-highlight-background{position:absolute;color:transparent}.textarea-with-background textarea{resize:none!important;z-index:1;caret-color:#000!important}.textarea-with-background textarea,.textarea-with-background .textarea-highlight-backround-inner{padding:1em 3em 1em 1em!important}.textarea-with-background .textarea-highlight-backround-inner{max-width:calc(100% - 2em);width:calc(100% - 2em);min-width:calc(100% - 2em);min-height:calc(100% - 2em);max-height:calc(100% - 2em);height:calc(100% - 2em);overflow-y:auto}.textarea-with-background,.textarea-highlight-background{width:100%;max-width:100%;min-width:100%;min-height:100%;max-height:100%;height:100%}\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: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.HighlightTreeComponent, selector: "tld-highlight-tree", inputs: ["tree", "isSource", "correctionsEnabled", "highlight", "gramCheck", "selectSentence"], outputs: ["onReplace"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
131
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextareaWithBackgroundComponent, decorators: [{
132
132
  type: Component,
133
- args: [{ selector: 'tld-textarea-with-background', template: "<div class=\"textarea-with-background\">\r\n <textarea [disabled]=\"textareaDisabled\" cdkScrollable (paste)=\"onPaste($event)\" matInput [(ngModel)]=\"sourceText\" #sourceInput fxFlex\r\n spellcheck=\"false\" (mousemove)=\"onTextAreaMouseMove($event)\" [attr.maxLength]=\"maxCharLength? maxCharLength: null\"\r\n [attr.aria-label]=\"'TLD_TRANSLATE.SOURCE_TOOLTIP' | translate\" (click)=\"textareaClick($event)\"></textarea>\r\n <div class=\"{{wrapperClass}}\" *ngIf=\"gramCheck || highlight\" cdkScrollable #treeWrapper>\r\n <div class=\"textarea-highlight-backround-inner\" cdkScrollable>\r\n <div *ngFor=\"let paragraph of highlightTree\">\r\n <tld-highlight-tree [isSource]=\"true\" [tree]=\"paragraph\" [highlight]=\"highlight\" [gramCheck]=\"gramCheck\"\r\n (onReplace)=\"replace($event)\"></tld-highlight-tree>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".textarea-with-background{position:relative}.textarea-with-background .textarea-highlight-background{position:absolute;color:transparent}.textarea-with-background textarea{resize:none!important;z-index:1;caret-color:#000!important}.textarea-with-background textarea,.textarea-with-background .textarea-highlight-backround-inner{padding:1em!important}.textarea-with-background .textarea-highlight-backround-inner{max-width:calc(100% - 2em);width:calc(100% - 2em);min-width:calc(100% - 2em);min-height:calc(100% - 2em);max-height:calc(100% - 2em);height:calc(100% - 2em);overflow-y:auto}.textarea-with-background,.textarea-highlight-background{width:100%;max-width:100%;min-width:100%;min-height:100%;max-height:100%;height:100%}\n"] }]
133
+ args: [{ selector: 'tld-textarea-with-background', template: "<div class=\"textarea-with-background\">\r\n <textarea [disabled]=\"textareaDisabled\" cdkScrollable (paste)=\"onPaste($event)\" matInput [(ngModel)]=\"sourceText\" #sourceInput fxFlex\r\n spellcheck=\"false\" (mousemove)=\"onTextAreaMouseMove($event)\" [attr.maxLength]=\"maxCharLength? maxCharLength: null\"\r\n [attr.aria-label]=\"'TLD_TRANSLATE.SOURCE_TOOLTIP' | translate\" (click)=\"textareaClick($event)\"></textarea>\r\n <div class=\"{{wrapperClass}}\" *ngIf=\"gramCheck || highlight\" cdkScrollable #treeWrapper>\r\n <div class=\"textarea-highlight-backround-inner\" cdkScrollable>\r\n <div *ngFor=\"let paragraph of highlightTree\">\r\n <tld-highlight-tree [isSource]=\"true\" [tree]=\"paragraph\" [highlight]=\"highlight\" [gramCheck]=\"gramCheck\"\r\n (onReplace)=\"replace($event)\"></tld-highlight-tree>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".textarea-with-background{position:relative}.textarea-with-background .textarea-highlight-background{position:absolute;color:transparent}.textarea-with-background textarea{resize:none!important;z-index:1;caret-color:#000!important}.textarea-with-background textarea,.textarea-with-background .textarea-highlight-backround-inner{padding:1em 3em 1em 1em!important}.textarea-with-background .textarea-highlight-backround-inner{max-width:calc(100% - 2em);width:calc(100% - 2em);min-width:calc(100% - 2em);min-height:calc(100% - 2em);max-height:calc(100% - 2em);height:calc(100% - 2em);overflow-y:auto}.textarea-with-background,.textarea-highlight-background{width:100%;max-width:100%;min-width:100%;min-height:100%;max-height:100%;height:100%}\n"] }]
134
134
  }], ctorParameters: function () { return [{ type: i1.TldAlertService }, { type: i2.TldTranslateTextService }]; }, propDecorators: { sourceInput: [{
135
135
  type: ViewChild,
136
136
  args: ["sourceInput"]
@@ -7,7 +7,8 @@ import * as i3 from "../../tld-common/pipes/translate-domain.pipe";
7
7
  import * as i4 from "@angular/common";
8
8
  import * as i5 from "@angular/flex-layout/extended";
9
9
  import * as i6 from "../../tld-common/components/tld-list-menu/tld-list-menu.component";
10
- import * as i7 from "@tilde-nlp/ngx-common";
10
+ import * as i7 from "../../tld-common/pipes/capitalize.pipe";
11
+ import * as i8 from "@tilde-nlp/ngx-common";
11
12
  export class TldDomainListComponent {
12
13
  constructor(translate, config, translateDomainPipe) {
13
14
  this.translate = translate;
@@ -16,6 +17,7 @@ export class TldDomainListComponent {
16
17
  this.selectionChange = new EventEmitter();
17
18
  this.titleKey = "title";
18
19
  this.valueKey = "domain";
20
+ this.showTitle = this.config.coreConfig.showDomainTitle;
19
21
  }
20
22
  get list() { return this._list; }
21
23
  set list(value) {
@@ -29,7 +31,6 @@ export class TldDomainListComponent {
29
31
  this.selectedDomainName = this.translateDomainName(value?.title);
30
32
  }
31
33
  ;
32
- get showTitle() { return this.config.coreConfig.showDomainTitle; }
33
34
  ngOnInit() {
34
35
  this.translate.stream("DOMAINS").subscribe((translations) => {
35
36
  this.translations = translations;
@@ -53,10 +54,10 @@ export class TldDomainListComponent {
53
54
  }
54
55
  }
55
56
  TldDomainListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldDomainListComponent, deps: [{ token: i1.TranslateService }, { token: i2.TldTranslateConfigService }, { token: i3.TranslateDomainPipe }], target: i0.ɵɵFactoryTarget.Component });
56
- TldDomainListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldDomainListComponent, selector: "tld-domain-list", inputs: { list: "list", selected: "selected", disabled: "disabled" }, outputs: { selectionChange: "selectionChange" }, providers: [TranslateDomainPipe], ngImport: i0, template: "<span fxHide.lt-md class=\"domain-title\" *ngIf=\"showTitle\">{{'DOMAINS.TITLE' | translate}}</span>\r\n<tld-list-menu (selectionChange)=\"select($event)\" [list]=\"translatedList | sortTranslations: null: 'title': currentLanguage | async\" [titleKey]=\"titleKey\" \r\n[valueKey]=\"valueKey\" testId=\"tld-domain-list\" [disabled]=\"disabled\" [ariaLabel]=\"'DOMAINS.OPEN_LIST_ARIA_LABEL' | translate\">\r\n {{selectedDomainName | titlecase}}\r\n</tld-list-menu>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: i6.TldListMenuComponent, selector: "tld-list-menu", inputs: ["titleKey", "list", "showContent", "selectedValue", "disabled", "ariaLabel", "valueKey", "testId"], outputs: ["selectionChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.SortTranslationsPipe, name: "sortTranslations" }] });
57
+ TldDomainListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldDomainListComponent, selector: "tld-domain-list", inputs: { list: "list", selected: "selected", disabled: "disabled" }, outputs: { selectionChange: "selectionChange" }, providers: [TranslateDomainPipe], ngImport: i0, template: "<span fxHide.lt-md class=\"domain-title\" *ngIf=\"showTitle\">{{'DOMAINS.TITLE' | translate}}</span>\r\n<tld-list-menu (selectionChange)=\"select($event)\" [list]=\"translatedList | sortTranslations: null: 'title': currentLanguage | async\" [titleKey]=\"titleKey\" \r\n[valueKey]=\"valueKey\" testId=\"tld-domain-list\" [disabled]=\"disabled\" [ariaLabel]=\"'DOMAINS.OPEN_LIST_ARIA_LABEL' | translate\">\r\n <span [ngClass.lt-sm]=\"'selected-domain'\">{{ selectedDomainName | capitalize }}</span> \r\n</tld-list-menu>", styles: [".selected-domain{max-width:60px;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i5.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: i6.TldListMenuComponent, selector: "tld-list-menu", inputs: ["titleKey", "list", "showContent", "selectedValue", "disabled", "ariaLabel", "valueKey", "testId"], outputs: ["selectionChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.CapitalizePipe, name: "capitalize" }, { kind: "pipe", type: i8.SortTranslationsPipe, name: "sortTranslations" }] });
57
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldDomainListComponent, decorators: [{
58
59
  type: Component,
59
- args: [{ selector: 'tld-domain-list', providers: [TranslateDomainPipe], template: "<span fxHide.lt-md class=\"domain-title\" *ngIf=\"showTitle\">{{'DOMAINS.TITLE' | translate}}</span>\r\n<tld-list-menu (selectionChange)=\"select($event)\" [list]=\"translatedList | sortTranslations: null: 'title': currentLanguage | async\" [titleKey]=\"titleKey\" \r\n[valueKey]=\"valueKey\" testId=\"tld-domain-list\" [disabled]=\"disabled\" [ariaLabel]=\"'DOMAINS.OPEN_LIST_ARIA_LABEL' | translate\">\r\n {{selectedDomainName | titlecase}}\r\n</tld-list-menu>" }]
60
+ args: [{ selector: 'tld-domain-list', providers: [TranslateDomainPipe], template: "<span fxHide.lt-md class=\"domain-title\" *ngIf=\"showTitle\">{{'DOMAINS.TITLE' | translate}}</span>\r\n<tld-list-menu (selectionChange)=\"select($event)\" [list]=\"translatedList | sortTranslations: null: 'title': currentLanguage | async\" [titleKey]=\"titleKey\" \r\n[valueKey]=\"valueKey\" testId=\"tld-domain-list\" [disabled]=\"disabled\" [ariaLabel]=\"'DOMAINS.OPEN_LIST_ARIA_LABEL' | translate\">\r\n <span [ngClass.lt-sm]=\"'selected-domain'\">{{ selectedDomainName | capitalize }}</span> \r\n</tld-list-menu>", styles: [".selected-domain{max-width:60px;overflow:hidden;text-overflow:ellipsis}\n"] }]
60
61
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.TldTranslateConfigService }, { type: i3.TranslateDomainPipe }]; }, propDecorators: { list: [{
61
62
  type: Input
62
63
  }], selected: [{
@@ -66,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
66
67
  }], selectionChange: [{
67
68
  type: Output
68
69
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWRvbWFpbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10b29sdGlwL3RsZC1kb21haW4tbGlzdC90bGQtZG9tYWluLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdGxkLWRvbWFpbi1saXN0L3RsZC1kb21haW4tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7QUFVbkYsTUFBTSxPQUFPLHNCQUFzQjtJQThCakMsWUFBNkIsU0FBMkIsRUFDckMsTUFBaUMsRUFDakMsbUJBQXdDO1FBRjlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ3JDLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQ2pDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFkakQsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVN6RCxhQUFRLEdBQVcsT0FBTyxDQUFDO1FBQzNCLGFBQVEsR0FBRyxRQUFRLENBQUM7SUFJa0MsQ0FBQztJQTdCaEUsSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqQyxJQUFhLElBQUksQ0FBQyxLQUFnQjtRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUFBLENBQUM7SUFHRixJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLElBQWEsUUFBUSxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUFBLENBQUM7SUFNRixJQUFJLFNBQVMsS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFjbEUsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV6RSxNQUFNLGNBQWMsR0FBYyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQy9GLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFVBQWtCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDOzttSEExRFUsc0JBQXNCO3VHQUF0QixzQkFBc0IsaUtBRnRCLENBQUMsbUJBQW1CLENBQUMsMEJDVmxDLG1kQUlnQjsyRkRRSCxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUMsbUJBQW1CLENBQUM7aUxBTW5CLElBQUk7c0JBQWhCLEtBQUs7Z0JBT08sUUFBUTtzQkFBcEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlRG9tYWluUGlwZSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vcGlwZXMvdHJhbnNsYXRlLWRvbWFpbi5waXBlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IElEb21haW4gfSBmcm9tICcuLi9tb2RlbHMvZG9tYWluLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLWRvbWFpbi1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLWRvbWFpbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtZG9tYWluLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtUcmFuc2xhdGVEb21haW5QaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkRG9tYWluTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHByaXZhdGUgX2xpc3Q6IElEb21haW5bXTtcclxuICBnZXQgbGlzdCgpIHsgcmV0dXJuIHRoaXMuX2xpc3Q7IH1cclxuICBASW5wdXQoKSBzZXQgbGlzdCh2YWx1ZTogSURvbWFpbltdKSB7XHJcbiAgICB0aGlzLl9saXN0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnJldHJhbnNsYXRlKCk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IElEb21haW47XHJcbiAgZ2V0IHNlbGVjdGVkKCkgeyByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7IH1cclxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWQodmFsdWU6IElEb21haW4pIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkID0gdmFsdWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkRG9tYWluTmFtZSA9IHRoaXMudHJhbnNsYXRlRG9tYWluTmFtZSh2YWx1ZT8udGl0bGUpO1xyXG4gIH07XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZ2V0IHNob3dUaXRsZSgpIHsgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuc2hvd0RvbWFpblRpdGxlOyB9XHJcblxyXG4gIHRyYW5zbGF0aW9uczogYW55O1xyXG4gIHRyYW5zbGF0ZWRMaXN0OiBJRG9tYWluW107XHJcbiAgc2VsZWN0ZWREb21haW5OYW1lOiBzdHJpbmc7XHJcbiAgY3VycmVudExhbmd1YWdlOiBzdHJpbmc7XHJcblxyXG4gIHJlYWRvbmx5IHRpdGxlS2V5OiBzdHJpbmcgPSBcInRpdGxlXCI7XHJcbiAgcmVhZG9ubHkgdmFsdWVLZXkgPSBcImRvbWFpblwiO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVEb21haW5QaXBlOiBUcmFuc2xhdGVEb21haW5QaXBlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5zdHJlYW0oXCJET01BSU5TXCIpLnN1YnNjcmliZSgodHJhbnNsYXRpb25zKSA9PiB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25zID0gdHJhbnNsYXRpb25zO1xyXG4gICAgICB0aGlzLnJldHJhbnNsYXRlKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmc7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0KGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UubmV4dChlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmV0cmFuc2xhdGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRG9tYWluTmFtZSA9IHRoaXMudHJhbnNsYXRlRG9tYWluTmFtZSh0aGlzLnNlbGVjdGVkPy50aXRsZSk7XHJcblxyXG4gICAgY29uc3QgdHJhbnNsYXRlZExpc3Q6IElEb21haW5bXSA9IFtdO1xyXG4gICAgdGhpcy5saXN0LmZvckVhY2goKGRvbWFpbikgPT4ge1xyXG4gICAgICB0cmFuc2xhdGVkTGlzdC5wdXNoKHsgdGl0bGU6IHRoaXMudHJhbnNsYXRlRG9tYWluTmFtZShkb21haW4udGl0bGUpLCBkb21haW46IGRvbWFpbi5kb21haW4gfSlcclxuICAgIH0pXHJcbiAgICB0aGlzLnRyYW5zbGF0ZWRMaXN0ID0gdHJhbnNsYXRlZExpc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyYW5zbGF0ZURvbWFpbk5hbWUoZG9tYWluTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZURvbWFpblBpcGUudHJhbnNmb3JtKGRvbWFpbk5hbWUpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHNwYW4gZnhIaWRlLmx0LW1kIGNsYXNzPVwiZG9tYWluLXRpdGxlXCIgKm5nSWY9XCJzaG93VGl0bGVcIj57eydET01BSU5TLlRJVExFJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG48dGxkLWxpc3QtbWVudSAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdCgkZXZlbnQpXCIgW2xpc3RdPVwidHJhbnNsYXRlZExpc3QgfCBzb3J0VHJhbnNsYXRpb25zOiBudWxsOiAndGl0bGUnOiBjdXJyZW50TGFuZ3VhZ2UgfCBhc3luY1wiIFt0aXRsZUtleV09XCJ0aXRsZUtleVwiIFxyXG5bdmFsdWVLZXldPVwidmFsdWVLZXlcIiB0ZXN0SWQ9XCJ0bGQtZG9tYWluLWxpc3RcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXJpYUxhYmVsXT1cIidET01BSU5TLk9QRU5fTElTVF9BUklBX0xBQkVMJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAge3tzZWxlY3RlZERvbWFpbk5hbWUgfCB0aXRsZWNhc2V9fVxyXG48L3RsZC1saXN0LW1lbnU+Il19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWRvbWFpbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10b29sdGlwL3RsZC1kb21haW4tbGlzdC90bGQtZG9tYWluLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdGxkLWRvbWFpbi1saXN0L3RsZC1kb21haW4tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7O0FBVW5GLE1BQU0sT0FBTyxzQkFBc0I7SUE4QmpDLFlBQ21CLFNBQTJCLEVBQzNCLE1BQWlDLEVBQ2pDLG1CQUF3QztRQUZ4QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNqQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBZmpELG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFTekQsYUFBUSxHQUFXLE9BQU8sQ0FBQztRQUMzQixhQUFRLEdBQUcsUUFBUSxDQUFDO1FBTzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDO0lBQzFELENBQUM7SUFqQ0QsSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqQyxJQUFhLElBQUksQ0FBQyxLQUFnQjtRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUFBLENBQUM7SUFHRixJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLElBQWEsUUFBUSxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUFBLENBQUM7SUF3QkYsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV6RSxNQUFNLGNBQWMsR0FBYyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQy9GLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFVBQWtCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDOzttSEE5RFUsc0JBQXNCO3VHQUF0QixzQkFBc0IsaUtBRnRCLENBQUMsbUJBQW1CLENBQUMsMEJDVmxDLDZnQkFJZ0I7MkZEUUgsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLGlCQUFpQixhQUdoQixDQUFDLG1CQUFtQixDQUFDO2lMQU1uQixJQUFJO3NCQUFoQixLQUFLO2dCQU9PLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZURvbWFpblBpcGUgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3BpcGVzL3RyYW5zbGF0ZS1kb21haW4ucGlwZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzL3RsZC10cmFuc2xhdGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRG9tYWluIH0gZnJvbSAnLi4vbW9kZWxzL2RvbWFpbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC1kb21haW4tbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC1kb21haW4tbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLWRvbWFpbi1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbVHJhbnNsYXRlRG9tYWluUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZERvbWFpbkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwcml2YXRlIF9saXN0OiBJRG9tYWluW107XHJcbiAgZ2V0IGxpc3QoKSB7IHJldHVybiB0aGlzLl9saXN0OyB9XHJcbiAgQElucHV0KCkgc2V0IGxpc3QodmFsdWU6IElEb21haW5bXSkge1xyXG4gICAgdGhpcy5fbGlzdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZXRyYW5zbGF0ZSgpO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX3NlbGVjdGVkOiBJRG9tYWluO1xyXG4gIGdldCBzZWxlY3RlZCgpIHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkOyB9XHJcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkKHZhbHVlOiBJRG9tYWluKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZERvbWFpbk5hbWUgPSB0aGlzLnRyYW5zbGF0ZURvbWFpbk5hbWUodmFsdWU/LnRpdGxlKTtcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHRyYW5zbGF0aW9uczogYW55O1xyXG4gIHRyYW5zbGF0ZWRMaXN0OiBJRG9tYWluW107XHJcbiAgc2VsZWN0ZWREb21haW5OYW1lOiBzdHJpbmc7XHJcbiAgY3VycmVudExhbmd1YWdlOiBzdHJpbmc7XHJcblxyXG4gIHNob3dUaXRsZTogYm9vbGVhbjtcclxuXHJcbiAgcmVhZG9ubHkgdGl0bGVLZXk6IHN0cmluZyA9IFwidGl0bGVcIjtcclxuICByZWFkb25seSB2YWx1ZUtleSA9IFwiZG9tYWluXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZURvbWFpblBpcGU6IFRyYW5zbGF0ZURvbWFpblBpcGVcclxuICApIHtcclxuICAgIHRoaXMuc2hvd1RpdGxlID0gdGhpcy5jb25maWcuY29yZUNvbmZpZy5zaG93RG9tYWluVGl0bGU7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLnN0cmVhbShcIkRPTUFJTlNcIikuc3Vic2NyaWJlKCh0cmFuc2xhdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy50cmFuc2xhdGlvbnMgPSB0cmFuc2xhdGlvbnM7XHJcbiAgICAgIHRoaXMucmV0cmFuc2xhdGUoKTtcclxuICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZWxlY3QoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5uZXh0KGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXRyYW5zbGF0ZSgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREb21haW5OYW1lID0gdGhpcy50cmFuc2xhdGVEb21haW5OYW1lKHRoaXMuc2VsZWN0ZWQ/LnRpdGxlKTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2xhdGVkTGlzdDogSURvbWFpbltdID0gW107XHJcbiAgICB0aGlzLmxpc3QuZm9yRWFjaCgoZG9tYWluKSA9PiB7XHJcbiAgICAgIHRyYW5zbGF0ZWRMaXN0LnB1c2goeyB0aXRsZTogdGhpcy50cmFuc2xhdGVEb21haW5OYW1lKGRvbWFpbi50aXRsZSksIGRvbWFpbjogZG9tYWluLmRvbWFpbiB9KVxyXG4gICAgfSlcclxuICAgIHRoaXMudHJhbnNsYXRlZExpc3QgPSB0cmFuc2xhdGVkTGlzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlRG9tYWluTmFtZShkb21haW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlRG9tYWluUGlwZS50cmFuc2Zvcm0oZG9tYWluTmFtZSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c3BhbiBmeEhpZGUubHQtbWQgY2xhc3M9XCJkb21haW4tdGl0bGVcIiAqbmdJZj1cInNob3dUaXRsZVwiPnt7J0RPTUFJTlMuVElUTEUnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbjx0bGQtbGlzdC1tZW51IChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0KCRldmVudClcIiBbbGlzdF09XCJ0cmFuc2xhdGVkTGlzdCB8IHNvcnRUcmFuc2xhdGlvbnM6IG51bGw6ICd0aXRsZSc6IGN1cnJlbnRMYW5ndWFnZSB8IGFzeW5jXCIgW3RpdGxlS2V5XT1cInRpdGxlS2V5XCIgXHJcblt2YWx1ZUtleV09XCJ2YWx1ZUtleVwiIHRlc3RJZD1cInRsZC1kb21haW4tbGlzdFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFthcmlhTGFiZWxdPVwiJ0RPTUFJTlMuT1BFTl9MSVNUX0FSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICA8c3BhbiBbbmdDbGFzcy5sdC1zbV09XCInc2VsZWN0ZWQtZG9tYWluJ1wiPnt7IHNlbGVjdGVkRG9tYWluTmFtZSB8IGNhcGl0YWxpemUgfX08L3NwYW4+ICAgIFxyXG48L3RsZC1saXN0LW1lbnU+Il19
@@ -66,10 +66,11 @@ export class TldTranslateSwitcherComponent {
66
66
  return this.config?.coreConfig.showVendors && this.settings.vendors?.length > 0;
67
67
  }
68
68
  get showDomains() {
69
- return this.config?.coreConfig.showDomains &&
69
+ const singleDomainAvailable = this.config?.textConfig.displaySingleAvailableDomain && this.settings?.domains?.domains?.length >= 1;
70
+ return (this.config?.coreConfig.showDomains &&
70
71
  !this.showDomainsWithLanguageName &&
71
- this.settings?.domains?.domains?.length > 1 &&
72
- this.settings?.source;
72
+ ((this.settings?.domains?.domains?.length > 1 && this.settings?.source) ||
73
+ singleDomainAvailable));
73
74
  }
74
75
  get isSwapLanguagesDisabled() {
75
76
  return this.disabled || !this.settings.swapActive;
@@ -185,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
185
186
  }], onVendorChange: [{
186
187
  type: Output
187
188
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC90bGQtdHJhbnNsYXRlLXN3aXRjaGVyL3RsZC10cmFuc2xhdGUtc3dpdGNoZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci90bGQtdHJhbnNsYXRlLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBVTNDLE1BQU0sT0FBTyw2QkFBNkI7SUEyRnhDLFlBQ21CLE1BQWlDLEVBQ2pDLFNBQTJCLEVBQ3BDLEtBQWlCO1FBRlIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWpFbEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFZMUIsbUJBQWMsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFD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QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJU3dpdGNoZXJUcmFuc2xhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvc3dpdGNoZXItb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90bGQtc3lzdGVtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdHJhbnNsYXRlLXN3aXRjaGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVTd2l0Y2hlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZnJvbUxhYmVsXCIpIGZyb21MYWJlbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwic291cmNlQXNpZGVcIikgc291cmNlQXNpZGU6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcInRvTGFiZWxcIikgdG9MYWJlbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZG9tYWluV3JhcHBlclwiKSBkb21haW5XcmFwcGVyOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoXCJ2ZW5kb3JXcmFwcGVyXCIpIHZlbmRvcldyYXBwZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImNvbGxlY3Rpb25XcmFwcGVyXCIpIGNvbGxlY3Rpb25XcmFwcGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGNvbnN0IHB4UGVyTGFuZ3VhZ2UgPSAxMTA7XHJcbiAgICBjb25zdCBjb21wb25lbnRXaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMud3JhcHBlcik7XHJcbiAgICBjb25zdCBwYXJlbnRXaWR0aCA9IHRoaXMuZWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMDtcclxuICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMudXNlUGFyZW50V2lkdGggPyBwYXJlbnRXaWR0aCA6IGNvbXBvbmVudFdpZHRoO1xyXG4gICAgY29uc3QgZnJvbVdpZHRoID0gdGhpcy5nZXRFbGVtZW50UmVmV2lkdGgodGhpcy5mcm9tTGFiZWwpO1xyXG4gICAgY29uc3Qgc291cmNlQXNpZGVXaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMuc291cmNlQXNpZGUpO1xyXG4gICAgY29uc3QgdG9XaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMudG9MYWJlbCk7XHJcbiAgICBjb25zdCBkb21haW5zV2lkdGggPSB0aGlzLmdldEVsZW1lbnRSZWZXaWR0aCh0aGlzLmRvbWFpbldyYXBwZXIpO1xyXG4gICAgY29uc3QgdmVuZG9yc1dpZHRoID0gdGhpcy5nZXRFbGVtZW50UmVmV2lkdGgodGhpcy52ZW5kb3JXcmFwcGVyKTtcclxuICAgIGNvbnN0IGNvbGxlY3Rpb25zV2lkdGggPSB0aGlzLmdldEVsZW1lbnRSZWZXaWR0aCh0aGlzLmNvbGxlY3Rpb25XcmFwcGVyKTtcclxuICAgIC8vIGFkZGl0aW9uYWwgcHggdG8gZGlzdHJhY3QgYmVjYXVzZSBzd2FwIGxhbmcgYnV0dG9uIGFuZCBkcm9wZG93biBpY29ucy5cclxuICAgIGNvbnN0IGV4dHJhID0gMTAwO1xyXG4gICAgY29uc3QgZnJlZVdpZHRoID0gd3JhcHBlcldpZHRoIC0gZnJvbVdpZHRoIC0gc291cmNlQXNpZGVXaWR0aCAtIHRvV2lkdGggLSBkb21haW5zV2lkdGggLSB2ZW5kb3JzV2lkdGggLSBjb2xsZWN0aW9uc1dpZHRoIC0gZXh0cmE7XHJcbiAgICBjb25zdCBsYW5ndWFnZUNvdW50ID0gTWF0aC5mbG9vcihmcmVlV2lkdGggLyAyIC8gcHhQZXJMYW5ndWFnZSk7XHJcbiAgICB0aGlzLmxhbmd1YWdlQ291bnRCeVNjcmVlblNpemUgPSBsYW5ndWFnZUNvdW50ID4gMCA/IGxhbmd1YWdlQ291bnQgOiAxO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93VHJhbnNsYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBoaWRlT25TbWFsbFNjcmVlbnMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVMYW5nTWVudUxhYmVscyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heERpc3BsYXllZExhbmd1YWdlczogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGNvbGxlY3Rpb25zOiBhbnlbXTtcclxuICBASW5wdXQoKSBzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDogYm9vbGVhbjtcclxuICAvKiogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgY29tcG9uZW50IHBhcmVudCBpcyBjaGVja2VkIGZvciBkaXNwbGF5ZWQgbGFuZ3VhZ2UgY291bnQuICovXHJcbiAgQElucHV0KCkgdXNlUGFyZW50V2lkdGg6IGJvb2xlYW47XHJcbiAgLyoqIFNob3cgbG9hZGVyIGluc3RlYWQgb2YgdHJhbnNsYXRlIGJ1dHRvbiAqL1xyXG4gIEBJbnB1dCgpIGxvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucztcclxuXHJcbiAgQE91dHB1dCgpIG9uRG9tYWluQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU291cmNlTGFuZ3VhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblRhcmdldExhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25MYW5ndWFnZVN3YXA6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblZlbmRvckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGxhbmd1YWdlQ291bnRCeVNjcmVlblNpemU6IG51bWJlcjtcclxuXHJcbiAgZ2V0IHZpc2libGVMYW5ndWFnZUNvdW50KCkge1xyXG4gICAgaWYgKHRoaXMubGFuZ3VhZ2VDb3VudEJ5U2NyZWVuU2l6ZSAmJiB0aGlzLmxhbmd1YWdlQ291bnRCeVNjcmVlblNpemUgPCB0aGlzLm1heERpc3BsYXllZExhbmd1YWdlcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZUNvdW50QnlTY3JlZW5TaXplO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWF4RGlzcGxheWVkTGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbGxlY3Rpb25zVmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWRcclxuICAgICAgJiYgdGhpcy5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkXHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1ZlbmRvcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LmNvcmVDb25maWcuc2hvd1ZlbmRvcnMgJiYgdGhpcy5zZXR0aW5ncy52ZW5kb3JzPy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dEb21haW5zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5jb3JlQ29uZmlnLnNob3dEb21haW5zICYmXHJcbiAgICAgICF0aGlzLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSAmJlxyXG4gICAgICB0aGlzLnNldHRpbmdzPy5kb21haW5zPy5kb21haW5zPy5sZW5ndGggPiAxICYmXHJcbiAgICAgIHRoaXMuc2V0dGluZ3M/LnNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1N3YXBMYW5ndWFnZXNEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLnNldHRpbmdzLnN3YXBBY3RpdmU7XHJcbiAgfVxyXG5cclxuICBnZXQgZG9tYWluU2lkZSgpIHsgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuZG9tYWluU2lkZTsgfVxyXG4gIGdldCBzd2FwSWNvblBvc2l0aW9uKCkgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5zd2FwSWNvblBvc2l0aW9uOyB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICByZWFkb25seSBzcmNMYW5nVGVzdElkID0gXCJzcmMtbGFuZy1tZW51XCI7XHJcbiAgcmVhZG9ubHkgdHJnTGFuZ1Rlc3RJZCA9IFwidHJnLWxhbmctbWVudVwiO1xyXG5cclxuICBwcml2YXRlIGlzVGVybWlub2xvZ3lTdXBwb3J0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHtcclxuICB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9BY3RpdmVEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLm9uUmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dChudWxsKVxyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uQ2xpY2soKSB7XHJcbiAgICB0aGlzLm9uQWN0aW9uQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZG9tYWluQ2hhbmdlKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25Eb21haW5DaGFuZ2UuZW1pdChzeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBzb3VyY2VMYW5nQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25Tb3VyY2VMYW5ndWFnZUNoYW5nZS5lbWl0KGxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIHN3YXBTb3VyY2VBbmRUYXJnZXQoKSB7XHJcbiAgICB0aGlzLm9uTGFuZ3VhZ2VTd2FwLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHRhcmdldExhbmdDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy5vblRhcmdldExhbmd1YWdlQ2hhbmdlLmVtaXQobGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgdmVuZG9yQ2hhbmdlKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25WZW5kb3JDaGFuZ2UuZW1pdChzeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVsZW1lbnRSZWZXaWR0aChlbGVtZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICByZXR1cm4gZWxlbWVudD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCB8fCAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0FjdGl2ZURhdGEoKXtcclxuICAgIHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnN1YnNjcmliZSgoYWN0aXZlKSA9PiB7XHJcbiAgICAgIGlmICghYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzVGVybWlub2xvZ3lTdXBwb3J0ZWQgPSB0aGlzLnRsZFN5c3RlbS5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkKGFjdGl2ZS5zeXN0ZW0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwidGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci1jb250YWluZXJcIiAjd3JhcHBlclxyXG4gIFtuZ0NsYXNzLmx0LW1kXT1cIid0bGQtdHJhbnNsYXRlLXN3aXRjaGVyLWNvbnRhaW5lci10YWJsZXQnXCJcclxuICBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci1jb250YWluZXItbW9iaWxlJ1wiXHJcbiAgW2NsYXNzLnRsZC1zd2l0Y2hlci13aXRoLWNvbGxlY3Rpb25zXT0nY29sbGVjdGlvbnNWaXNpYmxlJz5cclxuXHJcbiAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICA8ZGl2IGZ4SGlkZS5sdC1tZCAqbmdJZj1cIiFoaWRlTGFuZ01lbnVMYWJlbHNcIiAjZnJvbUxhYmVsPnt7J1RMRF9UUkFOU0xBVEUuRlJPTScgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgIDx0bGQtbGFuZy1saXN0IGlkPVwidGxkLXNvdXJjZS1sYW5ndWFnZS1saXN0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3Rlc3RJZF09XCJzcmNMYW5nVGVzdElkXCJcclxuICAgICAgICBbbGFuZ3VhZ2VzXT1cInNldHRpbmdzLnNvdXJjZUxhbmd1YWdlTGlzdFwiIChvbkxhbmd1YWdlQ2hhbmdlKT1cInNvdXJjZUxhbmdDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW3NlbGVjdGVkXT1cInNldHRpbmdzLnNvdXJjZVwiIFttYXhEaXNwbGF5ZWRMYW5ndWFnZXNdPVwidmlzaWJsZUxhbmd1YWdlQ291bnRcIj48L3RsZC1sYW5nLWxpc3Q+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb21haW5TaWRlPT09J3NyYydcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZG9tYWluVGVtcGxhdGU7XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICNzb3VyY2VBc2lkZSAqbmdJZj1cInN3YXBJY29uUG9zaXRpb249PT0nc3JjJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3dhcEJ1dHRvblRlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInN3YXBJY29uUG9zaXRpb249PT0nY2VudGVyJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN3YXBCdXR0b25UZW1wbGF0ZTtcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEFsaWduLmx0LXNtPVwiZW5kIGNlbnRlclwiPlxyXG4gICAgPGRpdiBmeEhpZGUubHQtbWQgKm5nSWY9XCIhaGlkZUxhbmdNZW51TGFiZWxzXCIgI3RvTGFiZWw+e3snVExEX1RSQU5TTEFURS5UTycgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgIDx0bGQtbGFuZy1saXN0IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGlkPVwidGxkLXRhcmdldC1sYW5ndWFnZS1saXN0XCIgW2xhbmd1YWdlc109XCJzZXR0aW5ncy50YXJnZXRMYW5ndWFnZUxpc3RcIlxyXG4gICAgICAgIChvbkxhbmd1YWdlQ2hhbmdlKT1cInRhcmdldExhbmdDaGFuZ2UoJGV2ZW50KVwiIFtzZWxlY3RlZF09XCJzZXR0aW5ncy50YXJnZXRcIlxyXG4gICAgICAgIFttYXhEaXNwbGF5ZWRMYW5ndWFnZXNdPVwidmlzaWJsZUxhbmd1YWdlQ291bnRcIiBbdGVzdElkXT1cInRyZ0xhbmdUZXN0SWRcIiAob25Eb21haW5DaGFuZ2UpPVwiZG9tYWluQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVdPVwic2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvbWFpblNpZGU9PT0ndHJnJ1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRvbWFpblRlbXBsYXRlO1wiPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtdmVuZG9yLXNlbGVjdGlvblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgKm5nSWY9XCJzaG93VmVuZG9yc1wiICN2ZW5kb3JXcmFwcGVyPlxyXG4gICAgICAgICAgPHRsZC1saXN0LW1lbnUgKHNlbGVjdGlvbkNoYW5nZSk9XCJkb21haW5DaGFuZ2UoJGV2ZW50KVwiIFtsaXN0XT1cInNldHRpbmdzLnZlbmRvcnNcIiBbdGl0bGVLZXldPVwiJ3RpdGxlJ1wiXHJcbiAgICAgICAgICAgIFt2YWx1ZUtleV09XCInc3lzdGVtSWQnXCIgdGVzdElkPVwidGxkLXZlbmRvci1saXN0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3Nob3dDb250ZW50XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInVExEX1RSQU5TTEFURS5WRU5ET1JTX0FSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCIgW3NlbGVjdGVkVmFsdWVdPVwic2V0dGluZ3Muc3lzdGVtSWRcIj5cclxuICAgICAgICAgIDwvdGxkLWxpc3QtbWVudT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90bGQtbGFuZy1saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXAuZ3QteHM9XCIxNnB4XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb2xsZWN0aW9uc1Zpc2libGVcIiAjY29sbGVjdGlvbldyYXBwZXI+XHJcbiAgICAgICAgPHRsZC10ZXJtLW1lbnU+PC90bGQtdGVybS1tZW51PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHRsZC1sb2FkZXIgKm5nSWY9XCJsb2FkZXJcIiBmeEhpZGUubHQtc20+PC90bGQtbG9hZGVyPlxyXG4gICAgICA8dGxkLXRyYW5zbGF0ZS1idXR0b24gW2VuYWJsZVB1bHNlQW5pbWF0aW9uXT1cInRydWVcIiAqbmdJZj1cInNob3dUcmFuc2xhdGVCdXR0b24gJiYgIWxvYWRlclwiIGNsYXNzPVwic3dpdGNoZXItdHJhbnNsYXRlLWJ1dHRvblwiXHJcbiAgICAgICAgW2Z4SGlkZS5sdC1zbV09XCJoaWRlT25TbWFsbFNjcmVlbnNcIiBbZGlzYWJsZWRdPVwiYnV0dG9uRGlzYWJsZWRcIj48L3RsZC10cmFuc2xhdGUtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzd2FwQnV0dG9uVGVtcGxhdGU+XHJcbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNTd2FwTGFuZ3VhZ2VzRGlzYWJsZWRcIiBjbGFzcz1cInN3YXAtbGFuZ3VhZ2VzLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgKGNsaWNrKT1cInN3YXBTb3VyY2VBbmRUYXJnZXQoKVwiIGFyaWEtbGFiZWw9XCJzd2FwIGxhbmd1YWdlc1wiIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICBtYXRUb29sdGlwPVwie3snVE9PTFRJUFMuU1dBUF9MQU5HVUFHRVMnIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVJJQV9MQUJFTFMuU1dBUF9MQU5HVUFHRVMnIHwgdHJhbnNsYXRlXCI+c3dhcF9ob3Jpejwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZG9tYWluVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtZG9tYWluLXNlbGVjdGlvblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgKm5nSWY9XCJzaG93RG9tYWluc1wiICNkb21haW5XcmFwcGVyPlxyXG4gICAgPHRsZC1kb21haW4tbGlzdCBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiZG9tYWluQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbbGlzdF09XCJzZXR0aW5ncy5kb21haW5zLmRvbWFpbnNcIiBbc2VsZWN0ZWRdPVwic2V0dGluZ3MuZG9tYWlucy5hY3RpdmVcIiBbc2VsZWN0ZWRdPVwic2V0dGluZ3MuZG9tYWlucy5hY3RpdmVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48L3RsZC1kb21haW4tbGlzdD5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC90bGQtdHJhbnNsYXRlLXN3aXRjaGVyL3RsZC10cmFuc2xhdGUtc3dpdGNoZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci90bGQtdHJhbnNsYXRlLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBVTNDLE1BQU0sT0FBTyw2QkFBNkI7SUFpR3hDLFlBQ21CLE1BQWlDLEVBQ2pDLFNBQTJCLEVBQ3BDLEtBQWlCO1FBRlIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQXZFbEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFZMUIsbUJBQWMsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFD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eEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNFLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDTSxpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUc5QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZTtnQkFtQnBCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJU3dpdGNoZXJUcmFuc2xhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvc3dpdGNoZXItb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90bGQtc3lzdGVtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdHJhbnNsYXRlLXN3aXRjaGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVTd2l0Y2hlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZnJvbUxhYmVsXCIpIGZyb21MYWJlbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwic291cmNlQXNpZGVcIikgc291cmNlQXNpZGU6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcInRvTGFiZWxcIikgdG9MYWJlbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZG9tYWluV3JhcHBlclwiKSBkb21haW5XcmFwcGVyOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoXCJ2ZW5kb3JXcmFwcGVyXCIpIHZlbmRvcldyYXBwZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImNvbGxlY3Rpb25XcmFwcGVyXCIpIGNvbGxlY3Rpb25XcmFwcGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGNvbnN0IHB4UGVyTGFuZ3VhZ2UgPSAxMTA7XHJcbiAgICBjb25zdCBjb21wb25lbnRXaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMud3JhcHBlcik7XHJcbiAgICBjb25zdCBwYXJlbnRXaWR0aCA9IHRoaXMuZWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMDtcclxuICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMudXNlUGFyZW50V2lkdGggPyBwYXJlbnRXaWR0aCA6IGNvbXBvbmVudFdpZHRoO1xyXG4gICAgY29uc3QgZnJvbVdpZHRoID0gdGhpcy5nZXRFbGVtZW50UmVmV2lkdGgodGhpcy5mcm9tTGFiZWwpO1xyXG4gICAgY29uc3Qgc291cmNlQXNpZGVXaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMuc291cmNlQXNpZGUpO1xyXG4gICAgY29uc3QgdG9XaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMudG9MYWJlbCk7XHJcbiAgICBjb25zdCBkb21haW5zV2lkdGggPSB0aGlzLmdldEVsZW1lbnRSZWZXaWR0aCh0aGlzLmRvbWFpbldyYXBwZXIpO1xyXG4gICAgY29uc3QgdmVuZG9yc1dpZHRoID0gdGhpcy5nZXRFbGVtZW50UmVmV2lkdGgodGhpcy52ZW5kb3JXcmFwcGVyKTtcclxuICAgIGNvbnN0IGNvbGxlY3Rpb25zV2lkdGggPSB0aGlzLmdldEVsZW1lbnRSZWZXaWR0aCh0aGlzLmNvbGxlY3Rpb25XcmFwcGVyKTtcclxuICAgIC8vIGFkZGl0aW9uYWwgcHggdG8gZGlzdHJhY3QgYmVjYXVzZSBzd2FwIGxhbmcgYnV0dG9uIGFuZCBkcm9wZG93biBpY29ucy5cclxuICAgIGNvbnN0IGV4dHJhID0gMTAwO1xyXG4gICAgY29uc3QgZnJlZVdpZHRoID0gd3JhcHBlcldpZHRoIC0gZnJvbVdpZHRoIC0gc291cmNlQXNpZGVXaWR0aCAtIHRvV2lkdGggLSBkb21haW5zV2lkdGggLSB2ZW5kb3JzV2lkdGggLSBjb2xsZWN0aW9uc1dpZHRoIC0gZXh0cmE7XHJcbiAgICBjb25zdCBsYW5ndWFnZUNvdW50ID0gTWF0aC5mbG9vcihmcmVlV2lkdGggLyAyIC8gcHhQZXJMYW5ndWFnZSk7XHJcbiAgICB0aGlzLmxhbmd1YWdlQ291bnRCeVNjcmVlblNpemUgPSBsYW5ndWFnZUNvdW50ID4gMCA/IGxhbmd1YWdlQ291bnQgOiAxO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93VHJhbnNsYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBoaWRlT25TbWFsbFNjcmVlbnMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVMYW5nTWVudUxhYmVscyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heERpc3BsYXllZExhbmd1YWdlczogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGNvbGxlY3Rpb25zOiBhbnlbXTtcclxuICBASW5wdXQoKSBzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDogYm9vbGVhbjtcclxuICAvKiogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgY29tcG9uZW50IHBhcmVudCBpcyBjaGVja2VkIGZvciBkaXNwbGF5ZWQgbGFuZ3VhZ2UgY291bnQuICovXHJcbiAgQElucHV0KCkgdXNlUGFyZW50V2lkdGg6IGJvb2xlYW47XHJcbiAgLyoqIFNob3cgbG9hZGVyIGluc3RlYWQgb2YgdHJhbnNsYXRlIGJ1dHRvbiAqL1xyXG4gIEBJbnB1dCgpIGxvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucztcclxuXHJcbiAgQE91dHB1dCgpIG9uRG9tYWluQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU291cmNlTGFuZ3VhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblRhcmdldExhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25MYW5ndWFnZVN3YXA6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblZlbmRvckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGxhbmd1YWdlQ291bnRCeVNjcmVlblNpemU6IG51bWJlcjtcclxuXHJcbiAgZ2V0IHZpc2libGVMYW5ndWFnZUNvdW50KCkge1xyXG4gICAgaWYgKHRoaXMubGFuZ3VhZ2VDb3VudEJ5U2NyZWVuU2l6ZSAmJiB0aGlzLmxhbmd1YWdlQ291bnRCeVNjcmVlblNpemUgPCB0aGlzLm1heERpc3BsYXllZExhbmd1YWdlcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZUNvdW50QnlTY3JlZW5TaXplO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWF4RGlzcGxheWVkTGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbGxlY3Rpb25zVmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWRcclxuICAgICAgJiYgdGhpcy5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkXHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1ZlbmRvcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LmNvcmVDb25maWcuc2hvd1ZlbmRvcnMgJiYgdGhpcy5zZXR0aW5ncy52ZW5kb3JzPy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dEb21haW5zKCkge1xyXG4gICAgY29uc3Qgc2luZ2xlRG9tYWluQXZhaWxhYmxlID0gdGhpcy5jb25maWc/LnRleHRDb25maWcuZGlzcGxheVNpbmdsZUF2YWlsYWJsZURvbWFpbiAmJiB0aGlzLnNldHRpbmdzPy5kb21haW5zPy5kb21haW5zPy5sZW5ndGggPj0gMTtcclxuICBcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuY29uZmlnPy5jb3JlQ29uZmlnLnNob3dEb21haW5zICYmXHJcbiAgICAgICF0aGlzLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSAmJlxyXG4gICAgICAoXHJcbiAgICAgICAgKHRoaXMuc2V0dGluZ3M/LmRvbWFpbnM/LmRvbWFpbnM/Lmxlbmd0aCA+IDEgJiYgdGhpcy5zZXR0aW5ncz8uc291cmNlKSB8fFxyXG4gICAgICAgIHNpbmdsZURvbWFpbkF2YWlsYWJsZVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU3dhcExhbmd1YWdlc0Rpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuc2V0dGluZ3Muc3dhcEFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldCBkb21haW5TaWRlKCkgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5kb21haW5TaWRlOyB9XHJcbiAgZ2V0IHN3YXBJY29uUG9zaXRpb24oKSB7IHJldHVybiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnN3YXBJY29uUG9zaXRpb247IH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHJlYWRvbmx5IHNyY0xhbmdUZXN0SWQgPSBcInNyYy1sYW5nLW1lbnVcIjtcclxuICByZWFkb25seSB0cmdMYW5nVGVzdElkID0gXCJ0cmctbGFuZy1tZW51XCI7XHJcblxyXG4gIHByaXZhdGUgaXNUZXJtaW5vbG9neVN1cHBvcnRlZDogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0FjdGl2ZURhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMub25SZXNpemUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpXHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBhY3Rpb25DbGljaygpIHtcclxuICAgIHRoaXMub25BY3Rpb25DbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBkb21haW5DaGFuZ2Uoc3lzdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vbkRvbWFpbkNoYW5nZS5lbWl0KHN5c3RlbUlkKTtcclxuICB9XHJcblxyXG4gIHNvdXJjZUxhbmdDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy5vblNvdXJjZUxhbmd1YWdlQ2hhbmdlLmVtaXQobGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgc3dhcFNvdXJjZUFuZFRhcmdldCgpIHtcclxuICAgIHRoaXMub25MYW5ndWFnZVN3YXAuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgdGFyZ2V0TGFuZ0NoYW5nZShsYW5ndWFnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9uVGFyZ2V0TGFuZ3VhZ2VDaGFuZ2UuZW1pdChsYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICB2ZW5kb3JDaGFuZ2Uoc3lzdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vblZlbmRvckNoYW5nZS5lbWl0KHN5c3RlbUlkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RWxlbWVudFJlZldpZHRoKGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcclxuICAgIHJldHVybiBlbGVtZW50Py5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIHx8IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvQWN0aXZlRGF0YSgpe1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlRGF0YSgpXHJcbiAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAuc3Vic2NyaWJlKChhY3RpdmUpID0+IHtcclxuICAgICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgICB0aGlzLmlzVGVybWlub2xvZ3lTdXBwb3J0ZWQgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNUZXJtaW5vbG9neVN1cHBvcnRlZCA9IHRoaXMudGxkU3lzdGVtLmlzVGVybWlub2xvZ3lTdXBwb3J0ZWQoYWN0aXZlLnN5c3RlbSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJ0bGQtdHJhbnNsYXRlLXN3aXRjaGVyLWNvbnRhaW5lclwiICN3cmFwcGVyXHJcbiAgW25nQ2xhc3MubHQtbWRdPVwiJ3RsZC10cmFuc2xhdGUtc3dpdGNoZXItY29udGFpbmVyLXRhYmxldCdcIlxyXG4gIFtuZ0NsYXNzLmx0LXNtXT1cIid0bGQtdHJhbnNsYXRlLXN3aXRjaGVyLWNvbnRhaW5lci1tb2JpbGUnXCJcclxuICBbY2xhc3MudGxkLXN3aXRjaGVyLXdpdGgtY29sbGVjdGlvbnNdPSdjb2xsZWN0aW9uc1Zpc2libGUnPlxyXG5cclxuICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cclxuICAgIDxkaXYgZnhIaWRlLmx0LW1kICpuZ0lmPVwiIWhpZGVMYW5nTWVudUxhYmVsc1wiICNmcm9tTGFiZWw+e3snVExEX1RSQU5TTEFURS5GUk9NJyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cclxuICAgICAgPHRsZC1sYW5nLWxpc3QgaWQ9XCJ0bGQtc291cmNlLWxhbmd1YWdlLWxpc3RcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGVzdElkXT1cInNyY0xhbmdUZXN0SWRcIlxyXG4gICAgICAgIFtsYW5ndWFnZXNdPVwic2V0dGluZ3Muc291cmNlTGFuZ3VhZ2VMaXN0XCIgKG9uTGFuZ3VhZ2VDaGFuZ2UpPVwic291cmNlTGFuZ0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbc2VsZWN0ZWRdPVwic2V0dGluZ3Muc291cmNlXCIgW21heERpc3BsYXllZExhbmd1YWdlc109XCJ2aXNpYmxlTGFuZ3VhZ2VDb3VudFwiPjwvdGxkLWxhbmctbGlzdD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvbWFpblNpZGU9PT0nc3JjJ1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkb21haW5UZW1wbGF0ZTtcIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgI3NvdXJjZUFzaWRlICpuZ0lmPVwic3dhcEljb25Qb3NpdGlvbj09PSdzcmMnXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzd2FwQnV0dG9uVGVtcGxhdGU7XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwic3dhcEljb25Qb3NpdGlvbj09PSdjZW50ZXInXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3dhcEJ1dHRvblRlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0QWxpZ24ubHQtc209XCJlbmQgY2VudGVyXCI+XHJcbiAgICA8ZGl2IGZ4SGlkZS5sdC1tZCAqbmdJZj1cIiFoaWRlTGFuZ01lbnVMYWJlbHNcIiAjdG9MYWJlbD57eydUTERfVFJBTlNMQVRFLlRPJyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cclxuICAgICAgPHRsZC1sYW5nLWxpc3QgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaWQ9XCJ0bGQtdGFyZ2V0LWxhbmd1YWdlLWxpc3RcIiBbbGFuZ3VhZ2VzXT1cInNldHRpbmdzLnRhcmdldExhbmd1YWdlTGlzdFwiXHJcbiAgICAgICAgKG9uTGFuZ3VhZ2VDaGFuZ2UpPVwidGFyZ2V0TGFuZ0NoYW5nZSgkZXZlbnQpXCIgW3NlbGVjdGVkXT1cInNldHRpbmdzLnRhcmdldFwiXHJcbiAgICAgICAgW21heERpc3BsYXllZExhbmd1YWdlc109XCJ2aXNpYmxlTGFuZ3VhZ2VDb3VudFwiIFt0ZXN0SWRdPVwidHJnTGFuZ1Rlc3RJZFwiIChvbkRvbWFpbkNoYW5nZSk9XCJkb21haW5DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW3Nob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZV09XCJzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG9tYWluU2lkZT09PSd0cmcnXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZG9tYWluVGVtcGxhdGU7XCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGxkLXRyYW5zbGF0ZS12ZW5kb3Itc2VsZWN0aW9uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiAqbmdJZj1cInNob3dWZW5kb3JzXCIgI3ZlbmRvcldyYXBwZXI+XHJcbiAgICAgICAgICA8dGxkLWxpc3QtbWVudSAoc2VsZWN0aW9uQ2hhbmdlKT1cImRvbWFpbkNoYW5nZSgkZXZlbnQpXCIgW2xpc3RdPVwic2V0dGluZ3MudmVuZG9yc1wiIFt0aXRsZUtleV09XCIndGl0bGUnXCJcclxuICAgICAgICAgICAgW3ZhbHVlS2V5XT1cIidzeXN0ZW1JZCdcIiB0ZXN0SWQ9XCJ0bGQtdmVuZG9yLWxpc3RcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc2hvd0NvbnRlbnRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidUTERfVFJBTlNMQVRFLlZFTkRPUlNfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIiBbc2VsZWN0ZWRWYWx1ZV09XCJzZXR0aW5ncy5zeXN0ZW1JZFwiPlxyXG4gICAgICAgICAgPC90bGQtbGlzdC1tZW51PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RsZC1sYW5nLWxpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcC5ndC14cz1cIjE2cHhcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImNvbGxlY3Rpb25zVmlzaWJsZVwiICNjb2xsZWN0aW9uV3JhcHBlcj5cclxuICAgICAgICA8dGxkLXRlcm0tbWVudT48L3RsZC10ZXJtLW1lbnU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8dGxkLWxvYWRlciAqbmdJZj1cImxvYWRlclwiIGZ4SGlkZS5sdC1zbT48L3RsZC1sb2FkZXI+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRlLWJ1dHRvbiBbZW5hYmxlUHVsc2VBbmltYXRpb25dPVwidHJ1ZVwiICpuZ0lmPVwic2hvd1RyYW5zbGF0ZUJ1dHRvbiAmJiAhbG9hZGVyXCIgY2xhc3M9XCJzd2l0Y2hlci10cmFuc2xhdGUtYnV0dG9uXCJcclxuICAgICAgICBbZnhIaWRlLmx0LXNtXT1cImhpZGVPblNtYWxsU2NyZWVuc1wiIFtkaXNhYmxlZF09XCJidXR0b25EaXNhYmxlZFwiPjwvdGxkLXRyYW5zbGF0ZS1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3N3YXBCdXR0b25UZW1wbGF0ZT5cclxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1N3YXBMYW5ndWFnZXNEaXNhYmxlZFwiIGNsYXNzPVwic3dhcC1sYW5ndWFnZXMtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uXHJcbiAgICAoY2xpY2spPVwic3dhcFNvdXJjZUFuZFRhcmdldCgpXCIgYXJpYS1sYWJlbD1cInN3YXAgbGFuZ3VhZ2VzXCIgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgIG1hdFRvb2x0aXA9XCJ7eydUT09MVElQUy5TV0FQX0xBTkdVQUdFUycgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUklBX0xBQkVMUy5TV0FQX0xBTkdVQUdFUycgfCB0cmFuc2xhdGVcIj5zd2FwX2hvcml6PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkb21haW5UZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwidGxkLXRyYW5zbGF0ZS1kb21haW4tc2VsZWN0aW9uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiAqbmdJZj1cInNob3dEb21haW5zXCIgI2RvbWFpbldyYXBwZXI+XHJcbiAgICA8dGxkLWRvbWFpbi1saXN0IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJkb21haW5DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtsaXN0XT1cInNldHRpbmdzLmRvbWFpbnMuZG9tYWluc1wiIFtzZWxlY3RlZF09XCJzZXR0aW5ncy5kb21haW5zLmFjdGl2ZVwiIFtzZWxlY3RlZF09XCJzZXR0aW5ncy5kb21haW5zLmFjdGl2ZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvdGxkLWRvbWFpbi1saXN0PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=