@alauda-fe/common 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/a-chart/base-chart.d.ts +4 -3
  2. package/a-chart/types.d.ts +5 -0
  3. package/a-chart/utils.d.ts +1 -1
  4. package/a-metric-chart/a-metric-chart.component.d.ts +5 -1
  5. package/a-metric-chart/stat-chart/stat-chart.component.d.ts +5 -1
  6. package/a-metric-chart/types.d.ts +15 -0
  7. package/a-metric-chart/utils/util.d.ts +6 -1
  8. package/array-form-table/string-array-form/component.d.ts +2 -1
  9. package/core/constants/tokens.d.ts +1 -1
  10. package/core/pipes/cron-human-readable.pipe.d.ts +1 -6
  11. package/core/pipes/k8s-util.pipe.d.ts +1 -9
  12. package/core/pipes/k8s-util.pipe.module.d.ts +3 -3
  13. package/core/pipes/parse-json-translate.pipe.d.ts +4 -4
  14. package/core/services/aui-paginator-intl.service.d.ts +1 -1
  15. package/core/services/k8s-util.service.d.ts +3 -1
  16. package/core/types/k8s/crd.d.ts +1 -4
  17. package/esm2022/a-chart/base-chart.mjs +47 -33
  18. package/esm2022/a-chart/chart.component.mjs +9 -5
  19. package/esm2022/a-chart/types.mjs +1 -1
  20. package/esm2022/a-chart/utils.mjs +3 -3
  21. package/esm2022/a-metric-chart/a-metric-chart.component.mjs +53 -19
  22. package/esm2022/a-metric-chart/a-metric-chart.module.mjs +1 -1
  23. package/esm2022/a-metric-chart/stat-chart/stat-chart.component.mjs +63 -25
  24. package/esm2022/a-metric-chart/table-chart/table-chart.component.mjs +2 -2
  25. package/esm2022/a-metric-chart/types.mjs +9 -1
  26. package/esm2022/a-metric-chart/utils/util.mjs +20 -2
  27. package/esm2022/array-form-table/string-array-form/component.mjs +32 -22
  28. package/esm2022/business/resource-select/internals/data-grid/component.mjs +2 -2
  29. package/esm2022/business/resource-select/internals/namespace-list/component.mjs +5 -5
  30. package/esm2022/core/constants/tokens.mjs +15 -16
  31. package/esm2022/core/pipes/cron-human-readable.pipe.mjs +3 -6
  32. package/esm2022/core/pipes/k8s-util.pipe.mjs +2 -24
  33. package/esm2022/core/pipes/k8s-util.pipe.module.mjs +2 -5
  34. package/esm2022/core/pipes/parse-json-translate.pipe.mjs +1 -1
  35. package/esm2022/core/services/k8s-util.service.mjs +4 -5
  36. package/esm2022/core/services/time.service.mjs +3 -5
  37. package/esm2022/core/types/k8s/crd.mjs +1 -1
  38. package/esm2022/core/utils/common.mjs +7 -1
  39. package/esm2022/metric-chart/types.mjs +1 -1
  40. package/esm2022/notification/notification-util.service.mjs +2 -3
  41. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +2 -2
  42. package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +78 -81
  43. package/esm2022/page-scaffold/page-header/account-menu/module.mjs +1 -1
  44. package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +2 -2
  45. package/esm2022/table/component.mjs +12 -5
  46. package/esm2022/translate/constants.mjs +2 -6
  47. package/esm2022/translate/helpers.mjs +4 -18
  48. package/esm2022/translate/i18n-assets-loader.mjs +58 -0
  49. package/esm2022/translate/i18n-config.mjs +25 -0
  50. package/esm2022/translate/public-api.mjs +3 -1
  51. package/esm2022/translate/tokens.mjs +3 -8
  52. package/esm2022/translate/translate.module.mjs +1 -52
  53. package/esm2022/translate/translate.pipe.mjs +4 -6
  54. package/esm2022/translate/translate.service.mjs +44 -76
  55. package/esm2022/translate/types.mjs +1 -1
  56. package/esm2022/view-zchart/units.mjs +3 -3
  57. package/esm2022/widget/date-range-picker/component.mjs +14 -23
  58. package/esm2022/widget/foldable-item-in-table/component.mjs +3 -3
  59. package/esm2022/widget/password-input/component.mjs +5 -3
  60. package/esm2022/widget/search-panel/component.mjs +2 -2
  61. package/esm2022/widget/tags-label/component.mjs +8 -6
  62. package/esm2022/xterm/xterm.component.mjs +2 -2
  63. package/metric-chart/types.d.ts +1 -1
  64. package/package.json +2 -1
  65. package/page-scaffold/page-header/account-menu/component/component.d.ts +6 -2
  66. package/page-scaffold/page-header/component.d.ts +1 -1
  67. package/styles/global.scss +3 -3
  68. package/styles/mixins.scss +13 -3
  69. package/styles/tailwind-preset.scss +1 -1
  70. package/table/component.d.ts +3 -1
  71. package/translate/constants.d.ts +1 -7
  72. package/translate/helpers.d.ts +1 -10
  73. package/translate/i18n-assets-loader.d.ts +19 -0
  74. package/translate/i18n-config.d.ts +12 -0
  75. package/translate/public-api.d.ts +2 -0
  76. package/translate/tokens.d.ts +3 -7
  77. package/translate/translate.module.d.ts +0 -1214
  78. package/translate/translate.pipe.d.ts +4 -4
  79. package/translate/translate.service.d.ts +15 -21
  80. package/translate/types.d.ts +8 -8
  81. package/widget/date-range-picker/component.d.ts +3 -7
  82. package/widget/foldable-item-in-table/component.d.ts +1 -2
  83. package/widget/tags-label/component.d.ts +6 -1
  84. package/assets/icons/bicolor-icons.js +0 -1
  85. package/assets/icons/navigation-icons.js +0 -1
  86. package/assets/icons/prod-icons.js +0 -1
  87. package/esm2022/graphql/graphql.module.mjs +0 -62
  88. package/esm2022/graphql/graphql.service.mjs +0 -45
  89. package/esm2022/graphql/public-api.mjs +0 -4
  90. package/esm2022/graphql/queries.mjs +0 -29
  91. package/esm2022/graphql/types.mjs +0 -6
  92. package/esm2022/translate/en.json +0 -602
  93. package/esm2022/translate/zh.json +0 -600
  94. package/graphql/graphql.module.d.ts +0 -12
  95. package/graphql/graphql.service.d.ts +0 -14
  96. package/graphql/public-api.d.ts +0 -3
  97. package/graphql/queries.d.ts +0 -5
  98. package/graphql/types.d.ts +0 -46
@@ -3,18 +3,9 @@
3
3
  * @module translate
4
4
  */
5
5
  import { NgModule } from '@angular/core';
6
- import { Locale } from './constants';
7
- import en from './en.json';
8
- import { getBrowserLang, getLang } from './helpers';
9
- import { TOKEN_DEFAULT_LOCALE, TOKEN_LOCALE, TOKEN_LOCALES, TOKEN_LOOSE, TOKEN_REMOTE_TRANSLATIONS, TOKEN_REMOTE_URL, TOKEN_TRANSLATIONS, } from './tokens';
10
6
  import { TranslateDirective, TranslateMatchDirective, TranslateTextDirective, } from './translate.directive';
11
7
  import { TranslatePipe } from './translate.pipe';
12
- import zh from './zh.json';
13
8
  import * as i0 from "@angular/core";
14
- export const DEFAULT_LOCALES = Object.values(Locale);
15
- export const DEFAULT_LOCALE = getLang();
16
- export const FALLBACK_LOCALE = getBrowserLang();
17
- export const CORE_TRANSLATIONS = Object.freeze({ zh, en });
18
9
  export const TRANSLATE_MODULE = [
19
10
  TranslatePipe,
20
11
  TranslateDirective,
@@ -25,48 +16,6 @@ export const TRANSLATE_MODULE = [
25
16
  * @deprecated use `TranslatePipe` or `TRANSLATE_MODULE` except `.forRoot`
26
17
  */
27
18
  export class TranslateModule {
28
- static forRoot(options = {}) {
29
- return {
30
- ngModule: TranslateModule,
31
- providers: [
32
- {
33
- provide: TOKEN_LOCALES,
34
- useValue: options.locales || DEFAULT_LOCALES,
35
- },
36
- {
37
- provide: TOKEN_LOCALE,
38
- useValue: options.locale || DEFAULT_LOCALE,
39
- },
40
- {
41
- provide: TOKEN_DEFAULT_LOCALE,
42
- useValue: options.defaultLocale || FALLBACK_LOCALE,
43
- },
44
- {
45
- provide: TOKEN_TRANSLATIONS,
46
- useValue: CORE_TRANSLATIONS,
47
- multi: true,
48
- },
49
- {
50
- provide: TOKEN_LOOSE,
51
- useValue: options.loose,
52
- },
53
- {
54
- provide: TOKEN_REMOTE_TRANSLATIONS,
55
- useValue: options.remoteTranslations,
56
- multi: true,
57
- },
58
- {
59
- provide: TOKEN_TRANSLATIONS,
60
- useValue: options.translations,
61
- multi: true,
62
- },
63
- {
64
- provide: TOKEN_REMOTE_URL,
65
- useValue: options.remoteUrl,
66
- },
67
- ],
68
- };
69
- }
70
19
  static { this.ɵfac = function TranslateModule_Factory(t) { return new (t || TranslateModule)(); }; }
71
20
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TranslateModule }); }
72
21
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({}); }
@@ -85,4 +34,4 @@ export class TranslateModule {
85
34
  TranslateDirective,
86
35
  TranslateMatchDirective,
87
36
  TranslateTextDirective] }); })();
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy90cmFuc2xhdGUvdHJhbnNsYXRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQixPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsa0JBQWtCLEdBQ25CLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRTNCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxPQUFPLEVBQUUsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsY0FBYyxFQUFFLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtDQUNkLENBQUM7QUFFWDs7R0FFRztBQUtILE1BQU0sT0FBTyxlQUFlO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQ1osVUFBK0IsRUFBRTtRQUVqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sSUFBSSxlQUFlO2lCQUM3QztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksY0FBYztpQkFDM0M7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksZUFBZTtpQkFDbkQ7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGtCQUFrQjtvQkFDM0IsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFdBQVc7b0JBQ3BCLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSztpQkFDeEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHlCQUF5QjtvQkFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7b0JBQ3BDLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLFFBQVEsRUFBRSxPQUFPLENBQUMsWUFBWTtvQkFDOUIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxTQUFTO2lCQUM1QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Z0ZBNUNVLGVBQWU7bUVBQWYsZUFBZTs7O3VGQUFmLGVBQWU7Y0FKM0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7YUFDL0I7O3dGQUNZLGVBQWUsY0FiMUIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsc0JBQXNCLGFBSHRCLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHRyYW5zbGF0ZVxuICovXG5cbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExvY2FsZSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCBlbiBmcm9tICcuL2VuLmpzb24nO1xuaW1wb3J0IHsgZ2V0QnJvd3NlckxhbmcsIGdldExhbmcgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtcbiAgVE9LRU5fREVGQVVMVF9MT0NBTEUsXG4gIFRPS0VOX0xPQ0FMRSxcbiAgVE9LRU5fTE9DQUxFUyxcbiAgVE9LRU5fTE9PU0UsXG4gIFRPS0VOX1JFTU9URV9UUkFOU0xBVElPTlMsXG4gIFRPS0VOX1JFTU9URV9VUkwsXG4gIFRPS0VOX1RSQU5TTEFUSU9OUyxcbn0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVNYXRjaERpcmVjdGl2ZSxcbiAgVHJhbnNsYXRlVGV4dERpcmVjdGl2ZSxcbn0gZnJvbSAnLi90cmFuc2xhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB6aCBmcm9tICcuL3poLmpzb24nO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MT0NBTEVTID0gT2JqZWN0LnZhbHVlcyhMb2NhbGUpO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTE9DQUxFID0gZ2V0TGFuZygpO1xuZXhwb3J0IGNvbnN0IEZBTExCQUNLX0xPQ0FMRSA9IGdldEJyb3dzZXJMYW5nKCk7XG5leHBvcnQgY29uc3QgQ09SRV9UUkFOU0xBVElPTlMgPSBPYmplY3QuZnJlZXplKHsgemgsIGVuIH0pO1xuXG5leHBvcnQgY29uc3QgVFJBTlNMQVRFX01PRFVMRSA9IFtcbiAgVHJhbnNsYXRlUGlwZSxcbiAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVNYXRjaERpcmVjdGl2ZSxcbiAgVHJhbnNsYXRlVGV4dERpcmVjdGl2ZSxcbl0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIGBUcmFuc2xhdGVQaXBlYCBvciBgVFJBTlNMQVRFX01PRFVMRWAgZXhjZXB0IGAuZm9yUm9vdGBcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogWy4uLlRSQU5TTEFURV9NT0RVTEVdLFxuICBleHBvcnRzOiBbLi4uVFJBTlNMQVRFX01PRFVMRV0sXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290PFQgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIG9wdGlvbnM6IFRyYW5zbGF0ZU9wdGlvbnM8VD4gPSB7fSxcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUcmFuc2xhdGVNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVE9LRU5fTE9DQUxFUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5sb2NhbGVzIHx8IERFRkFVTFRfTE9DQUxFUyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFRPS0VOX0xPQ0FMRSxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5sb2NhbGUgfHwgREVGQVVMVF9MT0NBTEUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBUT0tFTl9ERUZBVUxUX0xPQ0FMRSxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5kZWZhdWx0TG9jYWxlIHx8IEZBTExCQUNLX0xPQ0FMRSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFRPS0VOX1RSQU5TTEFUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogQ09SRV9UUkFOU0xBVElPTlMsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBUT0tFTl9MT09TRSxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5sb29zZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFRPS0VOX1JFTU9URV9UUkFOU0xBVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMucmVtb3RlVHJhbnNsYXRpb25zLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVE9LRU5fVFJBTlNMQVRJT05TLFxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLnRyYW5zbGF0aW9ucyxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFRPS0VOX1JFTU9URV9VUkwsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMucmVtb3RlVXJsLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy90cmFuc2xhdGUvdHJhbnNsYXRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFakQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFDdkIsc0JBQXNCO0NBQ2QsQ0FBQztBQUVYOztHQUVHO0FBS0gsTUFBTSxPQUFPLGVBQWU7Z0ZBQWYsZUFBZTttRUFBZixlQUFlOzs7dUZBQWYsZUFBZTtjQUozQixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQzthQUMvQjs7d0ZBQ1ksZUFBZSxjQWIxQixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0IsYUFIdEIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHJhbnNsYXRlXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVNYXRjaERpcmVjdGl2ZSxcbiAgVHJhbnNsYXRlVGV4dERpcmVjdGl2ZSxcbn0gZnJvbSAnLi90cmFuc2xhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3RyYW5zbGF0ZS5waXBlJztcblxuZXhwb3J0IGNvbnN0IFRSQU5TTEFURV9NT0RVTEUgPSBbXG4gIFRyYW5zbGF0ZVBpcGUsXG4gIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgVHJhbnNsYXRlTWF0Y2hEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVRleHREaXJlY3RpdmUsXG5dIGFzIGNvbnN0O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBgVHJhbnNsYXRlUGlwZWAgb3IgYFRSQU5TTEFURV9NT0RVTEVgIGV4Y2VwdCBgLmZvclJvb3RgXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5UUkFOU0xBVEVfTU9EVUxFXSxcbiAgZXhwb3J0czogWy4uLlRSQU5TTEFURV9NT0RVTEVdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVNb2R1bGUge31cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  * @module translate
4
4
  */
5
5
  import { ChangeDetectorRef, Injector, Pipe, } from '@angular/core';
6
- import { Subject, merge, filter, takeUntil } from 'rxjs';
6
+ import { Subject, filter, takeUntil } from 'rxjs';
7
7
  import { isEqual } from '../core/public-api';
8
8
  import { TranslateService } from './translate.service';
9
9
  import * as i0 from "@angular/core";
@@ -19,7 +19,7 @@ export class TranslatePipe {
19
19
  .subscribe(() => this.cdr.markForCheck());
20
20
  }
21
21
  transform(key, data, ignoreNonExist = false) {
22
- const { remoteLoaded, locale$, defaultLocale$ } = this.translate;
22
+ const { remoteLoaded, locale$ } = this.translate;
23
23
  const isLoading = remoteLoaded === false;
24
24
  if (isEqual(key, this.lastKey) &&
25
25
  isEqual(data, this.lastData) &&
@@ -30,9 +30,7 @@ export class TranslatePipe {
30
30
  this.lastRemoteLoaded = remoteLoaded;
31
31
  this.updateValue(key, data, ignoreNonExist, isLoading);
32
32
  this.dispose();
33
- this.onChange = merge(locale$, defaultLocale$)
34
- .pipe(takeUntil(this.destroy$$))
35
- .subscribe(() => {
33
+ this.onChange = locale$.pipe(takeUntil(this.destroy$$)).subscribe(() => {
36
34
  if (this.lastKey) {
37
35
  this.lastKey = null;
38
36
  this.updateValue(key, data, ignoreNonExist, isLoading);
@@ -70,4 +68,4 @@ export class TranslatePipe {
70
68
  standalone: true,
71
69
  }]
72
70
  }], function () { return [{ type: i0.Injector }]; }, null); })();
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsUUFBUSxFQUVSLElBQUksR0FFTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBUXZELE1BQU0sT0FBTyxhQUFhO0lBY3hCLFlBQStCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFYaEMsUUFBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0MsY0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFLekQscUJBQWdCLEdBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFHdkMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhO2FBQ3pCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDZCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFvQixFQUFFLElBQWMsRUFBRSxjQUFjLEdBQUcsS0FBSztRQUNwRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pFLE1BQU0sU0FBUyxHQUFHLFlBQVksS0FBSyxLQUFLLENBQUM7UUFDekMsSUFDRSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDMUIsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzVCLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUMvRDtZQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDO2FBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ3hEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVPLFdBQVcsQ0FDakIsR0FBb0IsRUFDcEIsSUFBYyxFQUNkLGNBQWMsR0FBRyxLQUFLLEVBQ3RCLFNBQVMsR0FBRyxLQUFLO1FBRWpCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhFQTVFVSxhQUFhO21GQUFiLGFBQWE7O3VGQUFiLGFBQWE7Y0FMekIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsS0FBSztnQkFDWCxVQUFVLEVBQUUsSUFBSTthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHRyYW5zbGF0ZVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgbWVyZ2UsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVLZXkgfSBmcm9tICcuL3R5cGVzJztcblxuQFBpcGUoe1xuICBuYW1lOiAndHJhbnNsYXRlJyxcbiAgcHVyZTogZmFsc2UsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVBpcGU8VCBleHRlbmRzIHN0cmluZz5cbiAgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGxhc3RLZXk/OiBUcmFuc2xhdGVLZXk8VD47XG4gIHByaXZhdGUgbGFzdERhdGE/OiB1bmtub3duO1xuICBwcml2YXRlIGxhc3RSZW1vdGVMb2FkZWQ/ID0gdGhpcy50cmFuc2xhdGUucmVtb3RlTG9hZGVkO1xuICBwcml2YXRlIG9uQ2hhbmdlOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy50cmFuc2xhdGUucmVtb3RlTG9hZGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihfID0+IF8pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSk7XG4gIH1cblxuICB0cmFuc2Zvcm0oa2V5OiBUcmFuc2xhdGVLZXk8VD4sIGRhdGE/OiB1bmtub3duLCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgY29uc3QgeyByZW1vdGVMb2FkZWQsIGxvY2FsZSQsIGRlZmF1bHRMb2NhbGUkIH0gPSB0aGlzLnRyYW5zbGF0ZTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSByZW1vdGVMb2FkZWQgPT09IGZhbHNlO1xuICAgIGlmIChcbiAgICAgIGlzRXF1YWwoa2V5LCB0aGlzLmxhc3RLZXkpICYmXG4gICAgICBpc0VxdWFsKGRhdGEsIHRoaXMubGFzdERhdGEpICYmXG4gICAgICAoaXNFcXVhbChyZW1vdGVMb2FkZWQsIHRoaXMubGFzdFJlbW90ZUxvYWRlZCkgfHwgIXJlbW90ZUxvYWRlZClcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMubGFzdERhdGEgPSBkYXRhO1xuICAgIHRoaXMubGFzdFJlbW90ZUxvYWRlZCA9IHJlbW90ZUxvYWRlZDtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKGtleSwgZGF0YSwgaWdub3JlTm9uRXhpc3QsIGlzTG9hZGluZyk7XG4gICAgdGhpcy5kaXNwb3NlKCk7XG5cbiAgICB0aGlzLm9uQ2hhbmdlID0gbWVyZ2UobG9jYWxlJCwgZGVmYXVsdExvY2FsZSQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmxhc3RLZXkpIHtcbiAgICAgICAgICB0aGlzLmxhc3RLZXkgPSBudWxsO1xuICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoa2V5LCBkYXRhLCBpZ25vcmVOb25FeGlzdCwgaXNMb2FkaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUoXG4gICAga2V5OiBUcmFuc2xhdGVLZXk8VD4sXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSxcbiAgICBpc0xvYWRpbmcgPSBmYWxzZSxcbiAgKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyYW5zbGF0ZS5nZXQoa2V5LCBkYXRhLCBpZ25vcmVOb25FeGlzdCB8fCBpc0xvYWRpbmcpO1xuICAgIC8vIGF2b2lkIHRleHQgc2xhc2hpbmcgb24gcmVtb3RlIGxvYWRpbmdcbiAgICBpZiAoIWlzTG9hZGluZyB8fCBrZXkgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmxhc3RLZXkgPSBrZXk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRpc3Bvc2UoKSB7XG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMub25DaGFuZ2UgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsUUFBUSxFQUVSLElBQUksR0FFTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFRdkQsTUFBTSxPQUFPLGFBQWE7SUFZeEIsWUFBK0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVhoQyxRQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUt6RCxxQkFBZ0IsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUd2QyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUcvQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7YUFDekIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNkLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXVCLEVBQUUsSUFBYyxFQUFFLGNBQWMsR0FBRyxLQUFLO1FBQ3ZFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqRCxNQUFNLFNBQVMsR0FBRyxZQUFZLEtBQUssS0FBSyxDQUFDO1FBQ3pDLElBQ0UsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM1QixDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDL0Q7WUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sV0FBVyxDQUNqQixHQUFpQixFQUNqQixJQUFjLEVBQ2QsY0FBYyxHQUFHLEtBQUssRUFDdEIsU0FBUyxHQUFHLEtBQUs7UUFFakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxjQUFjLElBQUksU0FBUyxDQUFDLENBQUM7UUFDekUsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEVBeEVVLGFBQWE7bUZBQWIsYUFBYTs7dUZBQWIsYUFBYTtjQUx6QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxLQUFLO2dCQUNYLFVBQVUsRUFBRSxJQUFJO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHJhbnNsYXRlXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlS2V5IH0gZnJvbSAnLi90eXBlcyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RyYW5zbGF0ZScsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGxhc3RLZXk/OiBUcmFuc2xhdGVLZXk7XG4gIHByaXZhdGUgbGFzdERhdGE/OiB1bmtub3duO1xuICBwcml2YXRlIGxhc3RSZW1vdGVMb2FkZWQ/ID0gdGhpcy50cmFuc2xhdGUucmVtb3RlTG9hZGVkO1xuICBwcml2YXRlIG9uQ2hhbmdlOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy50cmFuc2xhdGUucmVtb3RlTG9hZGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihfID0+IF8pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSk7XG4gIH1cblxuICB0cmFuc2Zvcm0oa2V5OiBUcmFuc2xhdGVLZXkgfCBhbnksIGRhdGE/OiB1bmtub3duLCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgY29uc3QgeyByZW1vdGVMb2FkZWQsIGxvY2FsZSQgfSA9IHRoaXMudHJhbnNsYXRlO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IHJlbW90ZUxvYWRlZCA9PT0gZmFsc2U7XG4gICAgaWYgKFxuICAgICAgaXNFcXVhbChrZXksIHRoaXMubGFzdEtleSkgJiZcbiAgICAgIGlzRXF1YWwoZGF0YSwgdGhpcy5sYXN0RGF0YSkgJiZcbiAgICAgIChpc0VxdWFsKHJlbW90ZUxvYWRlZCwgdGhpcy5sYXN0UmVtb3RlTG9hZGVkKSB8fCAhcmVtb3RlTG9hZGVkKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0RGF0YSA9IGRhdGE7XG4gICAgdGhpcy5sYXN0UmVtb3RlTG9hZGVkID0gcmVtb3RlTG9hZGVkO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoa2V5LCBkYXRhLCBpZ25vcmVOb25FeGlzdCwgaXNMb2FkaW5nKTtcbiAgICB0aGlzLmRpc3Bvc2UoKTtcblxuICAgIHRoaXMub25DaGFuZ2UgPSBsb2NhbGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmxhc3RLZXkpIHtcbiAgICAgICAgdGhpcy5sYXN0S2V5ID0gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShrZXksIGRhdGEsIGlnbm9yZU5vbkV4aXN0LCBpc0xvYWRpbmcpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlKFxuICAgIGtleTogVHJhbnNsYXRlS2V5LFxuICAgIGRhdGE/OiB1bmtub3duLFxuICAgIGlnbm9yZU5vbkV4aXN0ID0gZmFsc2UsXG4gICAgaXNMb2FkaW5nID0gZmFsc2UsXG4gICkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cmFuc2xhdGUuZ2V0KGtleSwgZGF0YSwgaWdub3JlTm9uRXhpc3QgfHwgaXNMb2FkaW5nKTtcbiAgICAvLyBhdm9pZCB0ZXh0IHNsYXNoaW5nIG9uIHJlbW90ZSBsb2FkaW5nXG4gICAgaWYgKCFpc0xvYWRpbmcgfHwga2V5ICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5sYXN0S2V5ID0ga2V5O1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwb3NlKCkge1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm9uQ2hhbmdlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -4,44 +4,45 @@ import { __decorate, __metadata } from "tslib";
4
4
  * @module translate
5
5
  */
6
6
  import { HttpClient } from '@angular/common/http';
7
- import { Inject, Injectable, isDevMode } from '@angular/core';
7
+ import { Inject, Injectable, Optional, isDevMode, } from '@angular/core';
8
8
  import { get, head, isPlainObject, template } from 'lodash-es';
9
9
  import { EMPTY, Observable, Subject, forkJoin, throwError, catchError, filter, finalize, map, takeUntil, } from 'rxjs';
10
10
  import { ajax } from 'rxjs/ajax';
11
11
  import { API_GATEWAY, TEMPLATE_OPTIONS } from '../core/constants/constants';
12
- import { TOKEN_BASE_HREF } from '../core/constants/tokens';
12
+ import { TOKEN_BASE_HREF } from '../core/public-api';
13
13
  import { isAbsoluteUrl } from '../core/utils/common';
14
14
  import { ObservableInput } from '../core/utils/decorators';
15
15
  import { parse } from '../core/utils/yaml';
16
- import { LOCALE_PLACEHOLDER_REGEX, LOCALE_STORAGE } from './constants';
17
- import { getLonelyTranslation } from './helpers';
18
- import { TOKEN_DEFAULT_LOCALE, TOKEN_LOCALE, TOKEN_LOCALES, TOKEN_LOOSE, TOKEN_REMOTE_TRANSLATIONS, TOKEN_REMOTE_URL, TOKEN_TRANSLATIONS, } from './tokens';
16
+ import { FALLBACK_LANGUAGE, LOCALE_PLACEHOLDER_REGEX, LOCALE_STORAGE, } from './constants';
17
+ import { TRANSLATE_OPTIONS, TRANSLATIONS } from './tokens';
19
18
  import * as i0 from "@angular/core";
20
19
  import * as i1 from "@angular/common/http";
21
20
  export class TranslateService {
22
21
  get remoteLoaded() {
23
22
  return this._remoteLoaded;
24
23
  }
25
- constructor(locales, locale, defaultLocale, translationsList, loose, baseHref, remoteTranslationsList, remoteUrl, http) {
26
- this.locales = locales;
27
- this.locale = locale;
28
- this.defaultLocale = defaultLocale;
29
- this.loose = loose;
30
- this.baseHref = baseHref;
31
- this.remoteTranslationsList = remoteTranslationsList;
32
- this.remoteUrl = remoteUrl;
24
+ constructor(http, baseHref, options, translationList) {
33
25
  this.http = http;
26
+ this.baseHref = baseHref;
34
27
  this.destroy$$ = new Subject();
35
- this.translationsList = translationsList.filter(Boolean);
36
- if (this.remoteUrl) {
37
- if (Array.isArray(this.remoteUrl)) {
38
- this.remoteUrl.forEach(url => this.addRemoteTranslations(url));
28
+ this.locale = options?.locale || navigator.language;
29
+ this.options = {
30
+ locales: [this.locale],
31
+ fallbackLocale: FALLBACK_LANGUAGE,
32
+ ...options,
33
+ };
34
+ this.translationsList = [
35
+ options.translations,
36
+ ...(translationList || []),
37
+ ].filter(Boolean);
38
+ if (options.remoteUrl) {
39
+ if (Array.isArray(options.remoteUrl)) {
40
+ options.remoteUrl.forEach(url => this.addRemoteTranslations(url));
39
41
  }
40
42
  else {
41
- this.addRemoteTranslations(this.remoteUrl);
43
+ this.addRemoteTranslations(options.remoteUrl);
42
44
  }
43
45
  }
44
- this._compareTranslationKeys();
45
46
  }
46
47
  ngOnDestroy() {
47
48
  this.destroy$$.next();
@@ -79,14 +80,14 @@ export class TranslateService {
79
80
  * 根据 `locales` 循环切换当前区域设置
80
81
  */
81
82
  toggleLocale() {
82
- const index = this.locales.indexOf(this.locale);
83
+ const index = this.options.locales.indexOf(this.locale);
83
84
  if (index === -1) {
84
85
  if (isDevMode()) {
85
86
  throw new TypeError('`locales` has not been initialized correctly');
86
87
  }
87
88
  return;
88
89
  }
89
- const nextLocale = this.locales[index === this.locales.length - 1 ? 0 : index + 1];
90
+ const nextLocale = this.options.locales[index === this.options.locales.length - 1 ? 0 : index + 1];
90
91
  if (!nextLocale || this.locale === nextLocale) {
91
92
  return;
92
93
  }
@@ -133,11 +134,11 @@ export class TranslateService {
133
134
  remoteUrl;
134
135
  }
135
136
  (LOCALE_PLACEHOLDER_REGEX.test(remoteUrl)
136
- ? forkJoin(this.locales.map(locale => this.fetchTranslation(remoteUrl, locale).pipe(catchError(error => {
137
- if (this.loose) {
137
+ ? forkJoin(this.options.locales.map(locale => this.fetchTranslation(remoteUrl, locale).pipe(catchError(error => {
138
+ if (this.options.loose) {
138
139
  const looseLocale = this._getLooseLocale(locale);
139
140
  if (locale !== looseLocale &&
140
- !this.locales.includes(looseLocale)) {
141
+ !this.options.locales.includes(looseLocale)) {
141
142
  return this.fetchTranslation(remoteUrl, looseLocale);
142
143
  }
143
144
  }
@@ -185,15 +186,15 @@ export class TranslateService {
185
186
  return;
186
187
  }
187
188
  let value = source[locale];
188
- if (value == null && this.loose) {
189
+ if (value == null && this.options.loose) {
189
190
  const looseLocale = this._getLooseLocale(locale);
190
191
  value =
191
192
  locale === looseLocale
192
193
  ? Object.entries(source).find(([key]) => locale === this._getLooseLocale(key))?.[1]
193
194
  : source[looseLocale];
194
195
  }
195
- if (value == null && locale !== this.defaultLocale) {
196
- return this._getValue(source, this.defaultLocale);
196
+ if (value == null && locale !== this.options.fallbackLocale) {
197
+ return this._getValue(source, this.options.fallbackLocale);
197
198
  }
198
199
  return value;
199
200
  }
@@ -207,8 +208,8 @@ export class TranslateService {
207
208
  }
208
209
  return String(value);
209
210
  }
210
- if (locale !== this.defaultLocale) {
211
- return this._getWithFallback(key, this.defaultLocale, translations);
211
+ if (locale !== this.options.fallbackLocale) {
212
+ return this._getWithFallback(key, this.options.fallbackLocale, translations);
212
213
  }
213
214
  }
214
215
  _getBase(key, locale = this.locale, translationsList) {
@@ -237,24 +238,6 @@ export class TranslateService {
237
238
  }
238
239
  return key;
239
240
  }
240
- _compareTranslationKeys() {
241
- if (!isDevMode() || !this.translationsList) {
242
- return;
243
- }
244
- for (let i = this.translationsList.length - 1; i >= 0; i--) {
245
- // 只有单文件存在翻译检查
246
- const diffs = getLonelyTranslation(this.translationsList[i]);
247
- if (diffs.length > 0) {
248
- console.warn(`The following keys are not presented in all translations: ${diffs.join(',')}.`);
249
- }
250
- for (let j = i - 1; j >= 0; j--) {
251
- // 避免 key 重名
252
- for (const locale of Object.keys(this.translationsList[i])) {
253
- this._compareKeys(locale, this.translationsList[i][locale], this.translationsList[j][locale]);
254
- }
255
- }
256
- }
257
- }
258
241
  _compareKeys(locale, translation, prevTranslation, path = []) {
259
242
  if (translation == null || prevTranslation == null) {
260
243
  return;
@@ -281,47 +264,32 @@ export class TranslateService {
281
264
  }
282
265
  });
283
266
  }
284
- static { this.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOKEN_LOCALES), i0.ɵɵinject(TOKEN_LOCALE), i0.ɵɵinject(TOKEN_DEFAULT_LOCALE), i0.ɵɵinject(TOKEN_TRANSLATIONS), i0.ɵɵinject(TOKEN_LOOSE), i0.ɵɵinject(TOKEN_BASE_HREF), i0.ɵɵinject(TOKEN_REMOTE_TRANSLATIONS), i0.ɵɵinject(TOKEN_REMOTE_URL), i0.ɵɵinject(i1.HttpClient)); }; }
267
+ static { this.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(TOKEN_BASE_HREF), i0.ɵɵinject(TRANSLATE_OPTIONS, 8), i0.ɵɵinject(TRANSLATIONS, 8)); }; }
285
268
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TranslateService, factory: TranslateService.ɵfac, providedIn: 'root' }); }
286
269
  }
287
270
  __decorate([
288
- ObservableInput(),
271
+ ObservableInput('_remoteLoaded'),
289
272
  __metadata("design:type", Observable)
290
- ], TranslateService.prototype, "locale$", void 0);
273
+ ], TranslateService.prototype, "remoteLoaded$", void 0);
291
274
  __decorate([
292
275
  ObservableInput(),
293
276
  __metadata("design:type", Observable)
294
- ], TranslateService.prototype, "defaultLocale$", void 0);
295
- __decorate([
296
- ObservableInput('_remoteLoaded'),
297
- __metadata("design:type", Observable)
298
- ], TranslateService.prototype, "remoteLoaded$", void 0);
277
+ ], TranslateService.prototype, "locale$", void 0);
299
278
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslateService, [{
300
279
  type: Injectable,
301
280
  args: [{ providedIn: 'root' }]
302
- }], function () { return [{ type: undefined, decorators: [{
303
- type: Inject,
304
- args: [TOKEN_LOCALES]
305
- }] }, { type: undefined, decorators: [{
306
- type: Inject,
307
- args: [TOKEN_LOCALE]
308
- }] }, { type: undefined, decorators: [{
309
- type: Inject,
310
- args: [TOKEN_DEFAULT_LOCALE]
311
- }] }, { type: Array, decorators: [{
312
- type: Inject,
313
- args: [TOKEN_TRANSLATIONS]
314
- }] }, { type: undefined, decorators: [{
315
- type: Inject,
316
- args: [TOKEN_LOOSE]
317
- }] }, { type: undefined, decorators: [{
281
+ }], function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
318
282
  type: Inject,
319
283
  args: [TOKEN_BASE_HREF]
320
- }] }, { type: Array, decorators: [{
284
+ }] }, { type: undefined, decorators: [{
285
+ type: Optional
286
+ }, {
321
287
  type: Inject,
322
- args: [TOKEN_REMOTE_TRANSLATIONS]
288
+ args: [TRANSLATE_OPTIONS]
323
289
  }] }, { type: undefined, decorators: [{
290
+ type: Optional
291
+ }, {
324
292
  type: Inject,
325
- args: [TOKEN_REMOTE_URL]
326
- }] }, { type: i1.HttpClient }]; }, { locale$: [], defaultLocale$: [], remoteLoaded$: [] }); })();
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLHlC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QUFNO3VCQUFDLGVBQWU7O3NCQUV0QixNQUFNO3VCQUFDLHlCQUF5Qjs7c0JBRWhDLE1BQU07dUJBQUMsZ0JBQWdCO2lEQWpDakIsT0FBTyxNQUdQLGNBQWMsTUFTZCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHJhbnNsYXRlXG4gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCwgaGVhZCwgaXNQbGFpbk9iamVjdCwgdGVtcGxhdGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGZvcmtKb2luLFxuICB0aHJvd0Vycm9yLFxuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhamF4IH0gZnJvbSAncnhqcy9hamF4JztcblxuaW1wb3J0IHsgQVBJX0dBVEVXQVksIFRFTVBMQVRFX09QVElPTlMgfSBmcm9tICcuLi9jb3JlL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgVE9LRU5fQkFTRV9IUkVGIH0gZnJvbSAnLi4vY29yZS9jb25zdGFudHMvdG9rZW5zJztcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICcuLi9jb3JlL3V0aWxzL3lhbWwnO1xuXG5pbXBvcnQgeyBMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsIExPQ0FMRV9TVE9SQUdFLCBMb2NhbGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRMb25lbHlUcmFuc2xhdGlvbiB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge1xuICBUT0tFTl9ERUZBVUxUX0xPQ0FMRSxcbiAgVE9LRU5fTE9DQUxFLFxuICBUT0tFTl9MT0NBTEVTLFxuICBUT0tFTl9MT09TRSxcbiAgVE9LRU5fUkVNT1RFX1RSQU5TTEFUSU9OUyxcbiAgVE9LRU5fUkVNT1RFX1VSTCxcbiAgVE9LRU5fVFJBTlNMQVRJT05TLFxufSBmcm9tICcuL3Rva2Vucyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVLZXksIFRyYW5zbGF0aW9uLCBUcmFuc2xhdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlPEwgZXh0ZW5kcyBzdHJpbmcgPSBMb2NhbGU+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJlYWRvbmx5IGxvY2FsZSQ6IE9ic2VydmFibGU8TD47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJlYWRvbmx5IGRlZmF1bHRMb2NhbGUkOiBPYnNlcnZhYmxlPEw+O1xuXG4gIF9yZW1vdGVMb2FkZWQ/OiBib29sZWFuO1xuXG4gIGdldCByZW1vdGVMb2FkZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW90ZUxvYWRlZDtcbiAgfVxuXG4gIEBPYnNlcnZhYmxlSW5wdXQoJ19yZW1vdGVMb2FkZWQnKVxuICByZWFkb25seSByZW1vdGVMb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFJlYWRvbmx5PFRyYW5zbGF0aW9uczxMPj4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVE9LRU5fTE9DQUxFUylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZXM6IExbXSxcbiAgICBASW5qZWN0KFRPS0VOX0xPQ0FMRSlcbiAgICBwdWJsaWMgbG9jYWxlOiBMLFxuICAgIEBJbmplY3QoVE9LRU5fREVGQVVMVF9MT0NBTEUpXG4gICAgcHVibGljIGRlZmF1bHRMb2NhbGU6IEwsXG4gICAgQEluamVjdChUT0tFTl9UUkFOU0xBVElPTlMpXG4gICAgdHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPEw+Pj4sXG4gICAgQEluamVjdChUT0tFTl9MT09TRSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvb3NlOiBib29sZWFuLFxuICAgIEBJbmplY3QoVE9LRU5fQkFTRV9IUkVGKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFzZUhyZWY6IHN0cmluZyxcbiAgICBASW5qZWN0KFRPS0VOX1JFTU9URV9UUkFOU0xBVElPTlMpXG4gICAgcHJpdmF0ZSByZW1vdGVUcmFuc2xhdGlvbnNMaXN0OiBBcnJheTxSZWFkb25seTxUcmFuc2xhdGlvbnM8TD4+PixcbiAgICBASW5qZWN0KFRPS0VOX1JFTU9URV9VUkwpXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW1vdGVVcmw6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGlvbnNMaXN0ID0gdHJhbnNsYXRpb25zTGlzdC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5yZW1vdGVVcmwpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucmVtb3RlVXJsKSkge1xuICAgICAgICB0aGlzLnJlbW90ZVVybC5mb3JFYWNoKHVybCA9PiB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyh1cmwpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVtb3RlVHJhbnNsYXRpb25zKHRoaXMucmVtb3RlVXJsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jb21wYXJlVHJhbnNsYXRpb25LZXlzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ga2V5IC0g57+76K+Ra2V5XG4gICAqIEBwYXJhbSBkYXRhIC0g5qC55o2u57+76K+R5LiK5LiL5paH5pWw5o2u6I635Y+W57+76K+R5YaF5a6577yM57+76K+R6aG55LiN5a2Y5Zyo55u05o6l6L+U5ZueIGtleSDmlofmnKxcbiAgICogQHBhcmFtIGlnbm9yZU5vbkV4aXN0IC0g5byA5Y+R546v5aKD5piv5ZCm5b+96KeG5LiN5a2Y5Zyo55qE57+76K+R6aG5XG4gICAqL1xuICBnZXQoa2V5OiBUcmFuc2xhdGVLZXk8TD4sIGRhdGE/OiB1bmtub3duLCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmdldFJhdyhrZXksIGlnbm9yZU5vbkV4aXN0KTtcbiAgICBpZiAoZGF0YSAhPSBudWxsICYmIHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgICAgZGF0YSA9IFtkYXRhXTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZSh0cmFuc2xhdGlvbiwgVEVNUExBVEVfT1BUSU9OUykoZGF0YSBhcyBvYmplY3QpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGVbaXNEZXZNb2RlKCkgPyAnZXJyb3InIDogJ3dhcm4nXShcbiAgICAgICAgYFRoZSB0cmFuc2xhdGlvbiBrZXkgJyR7a2V5fScgaXMgbWlzc2luZyB0aGUgbmVjZXNzYXJ5IHBhcmFtZXRlcnMuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOebtOaOpei/lOWbnue/u+ivkeaWh+acrOaooeadv1xuICAgKiBAcGFyYW0ga2V5IC0g57+76K+Ra2V5XG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0UmF3KGtleTogVHJhbnNsYXRlS2V5PEw+LCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnXG4gICAgICA/IHRoaXMuX2dldChrZXksIGlnbm9yZU5vbkV4aXN0KVxuICAgICAgOiB0aGlzLl9nZXRWYWx1ZShrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOagueaNriBgbG9jYWxlc2Ag5b6q546v5YiH5o2i5b2T5YmN5Yy65Z+f6K6+572uXG4gICAqL1xuICB0b2dnbGVMb2NhbGUoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmxvY2FsZXMuaW5kZXhPZih0aGlzLmxvY2FsZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Bsb2NhbGVzYCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgY29ycmVjdGx5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRMb2NhbGUgPVxuICAgICAgdGhpcy5sb2NhbGVzW2luZGV4ID09PSB0aGlzLmxvY2FsZXMubGVuZ3RoIC0gMSA/IDAgOiBpbmRleCArIDFdO1xuXG4gICAgaWYgKCFuZXh0TG9jYWxlIHx8IHRoaXMubG9jYWxlID09PSBuZXh0TG9jYWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRMb2NhbGUobmV4dExvY2FsZSk7XG4gIH1cblxuICBzZXRMb2NhbGUobG9jYWxlOiBMKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTE9DQUxFX1NUT1JBR0UsIGxvY2FsZSk7XG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICBhZGRUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnM8TD4pIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QudW5zaGlmdChPYmplY3QuZnJlZXplKHRyYW5zbGF0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaJi+WKqOa3u+WKoOivreiogOWMhVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgYWRkUmVtb3RlVHJhbnNsYXRpb25zKHJlbW90ZVVybDogc3RyaW5nKSB7XG4gICAgaWYgKCFyZW1vdGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVtb3RlTG9hZGVkID0gZmFsc2U7XG4gICAgcmVtb3RlVXJsID0gaGVhZChyZW1vdGVVcmwuc3BsaXQoLyMvKSk7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgICAgaWYgKCFpc0Fic29sdXRlICYmICghdGhpcy5iYXNlSHJlZiB8fCAhaXNBYnNvbHV0ZVVybCh0aGlzLmJhc2VIcmVmKSkpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJ2Fic29sdXRlIGJhc2UgaHJlZiBpcyByZXF1aXJlZCBmb3IgcmVsYXRpdmUgcmVtb3RlIHVybCc7XG4gICAgICB9IGVsc2UgaWYgKHJlbW90ZVVybC5zcGxpdCgnPycpWzBdLmluY2x1ZGVzKCcuLycpKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgJ2RvIG5vdCB1c2UgYW55IGRvdCB3aXRoIHNsYXNoIGZvciByZWxhdGl2ZSB1cmwgd2hpY2ggc2hvdWxkIGFsd2F5cyBiYXNlIGZyb20gYmFzZSBocmVmJztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWlzQWJzb2x1dGUgJiYgIWlzQXBpR2F0ZVdheVJlcXVlc3QpIHtcbiAgICAgIHJlbW90ZVVybCA9XG4gICAgICAgICh0aGlzLmJhc2VIcmVmLmVuZHNXaXRoKCcvJykgPyB0aGlzLmJhc2VIcmVmIDogdGhpcy5iYXNlSHJlZiArICcvJykgK1xuICAgICAgICByZW1vdGVVcmw7XG4gICAgfVxuICAgIChMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgudGVzdChyZW1vdGVVcmwpXG4gICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgIHRoaXMubG9jYWxlcy5tYXAobG9jYWxlID0+XG4gICAgICAgICAgICB0aGlzLmZldGNoVHJhbnNsYXRpb24ocmVtb3RlVXJsLCBsb2NhbGUpLnBpcGUoXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvb3NlKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZSAhPT0gbG9vc2VMb2NhbGUgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMubG9jYWxlcy5pbmNsdWRlcyhsb29zZUxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9vc2VMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEZXZNb2RlKCkgPyB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSA6IEVNUFRZO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsdGVyKGlzUGxhaW5PYmplY3QpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdOiB0cmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgICAgIH0gYXMgVHJhbnNsYXRpb25zPEw+KSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5waXBlKG1hcChfID0+IF8ucmVkdWNlKE9iamVjdC5hc3NpZ24pKSlcbiAgICAgIDogdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IChpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFkpKSxcbiAgICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5fcmVtb3RlTG9hZGVkID0gdHJ1ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZW1vdGVUcmFuc2xhdGlvbnMgPT4ge1xuICAgICAgICBpZiAoIXJlbW90ZVRyYW5zbGF0aW9ucykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCkge1xuICAgICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUocmVtb3RlVHJhbnNsYXRpb25zKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDku47ov5znqIsgdXJsIOaooeadv+WSjOWMuuWfn+iOt+WPlue/u+ivkeWMhVxuICAgKi9cbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb25zPEw+PjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybCkgJiYgIWxvY2FsZSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ2Bsb2NhbGVgIGlzIHJlcXVpcmVkIHNpbmUgdGhlIHByb3ZpZGVkIHJlbW90ZSB1cmwgY29udGFpbnMgbG9jYWxlIHBsYWNlaG9sZGVyJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGlzSlNPTiA9IHJlbW90ZVVybC5lbmRzV2l0aCgnLmpzb24nKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGNvbnN0IHVybCA9IGxvY2FsZVxuICAgICAgPyByZW1vdGVVcmwucmVwbGFjZShMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsIGxvY2FsZSlcbiAgICAgIDogcmVtb3RlVXJsO1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IGlzSlNPTiA/ICdqc29uJyA6ICd0ZXh0JztcbiAgICBpZiAoaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucmVxdWVzdCgnR0VUJywgdXJsLCB7IHJlc3BvbnNlVHlwZSB9KVxuICAgICAgICAucGlwZShtYXAoYm9keSA9PiAoaXNKU09OID8gYm9keSA6IHBhcnNlKGJvZHkpKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWpheCh7XG4gICAgICB1cmwsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNwb25zZSB9KSA9PiAoaXNKU09OID8gcmVzcG9uc2UgOiBwYXJzZShyZXNwb25zZSBhcyBzdHJpbmcpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvb3NlTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhlYWQobG9jYWxlLnNwbGl0KC9bXy1dLykpIGFzIEw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZTxUPihzb3VyY2U6IFBhcnRpYWw8UmVjb3JkPEwsIFQ+PiwgbG9jYWxlID0gdGhpcy5sb2NhbGUpOiBUIHtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSBzb3VyY2VbbG9jYWxlXTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiB0aGlzLmxvb3NlKSB7XG4gICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICB2YWx1ZSA9XG4gICAgICAgIGxvY2FsZSA9PT0gbG9vc2VMb2NhbGVcbiAgICAgICAgICA/IE9iamVjdC5lbnRyaWVzPFQ+KHNvdXJjZSkuZmluZChcbiAgICAgICAgICAgICAgKFtrZXldKSA9PiBsb2NhbGUgPT09IHRoaXMuX2dldExvb3NlTG9jYWxlKGtleSksXG4gICAgICAgICAgICApPy5bMV1cbiAgICAgICAgICA6IHNvdXJjZVtsb29zZUxvY2FsZV07XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGxvY2FsZSAhPT0gdGhpcy5kZWZhdWx0TG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoc291cmNlLCB0aGlzLmRlZmF1bHRMb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaXRoRmFsbGJhY2soXG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9jYWxlID0gdGhpcy5sb2NhbGUsXG4gICAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnM8TD4sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fZ2V0VmFsdWUodHJhbnNsYXRpb25zLCBsb2NhbGUpLCBrZXkpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICAgdHlwZW9mIGdldCh2YWx1ZSwgU3ltYm9sLnRvUHJpbWl0aXZlKSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OlxcYCR7a2V5fVxcYCBpcyBhbiBvYmplY3QsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChsb2NhbGUgIT09IHRoaXMuZGVmYXVsdExvY2FsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldFdpdGhGYWxsYmFjayhrZXksIHRoaXMuZGVmYXVsdExvY2FsZSwgdHJhbnNsYXRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRCYXNlKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlLFxuICAgIHRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFRyYW5zbGF0aW9uczxMPj4sXG4gICkge1xuICAgIGlmICghdHJhbnNsYXRpb25zTGlzdCB8fCB0cmFuc2xhdGlvbnNMaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gdHJhbnNsYXRpb25zTGlzdC5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fZ2V0V2l0aEZhbGxiYWNrKGtleSwgbG9jYWxlLCB0cmFuc2xhdGlvbnNMaXN0W2kgLSAxXSk7XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0KGtleTogc3RyaW5nLCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlLCBsb2NhbGUgPSB0aGlzLmxvY2FsZSkge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuX2dldEJhc2Uoa2V5LCBsb2NhbGUsIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCk7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5fZ2V0QmFzZShrZXksIGxvY2FsZSwgdGhpcy50cmFuc2xhdGlvbnNMaXN0KTtcbiAgICB9XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICFpZ25vcmVOb25FeGlzdCAmJlxuICAgICAgdHlwZW9mIGdldCh2YWx1ZSwgU3ltYm9sLnRvUHJpbWl0aXZlKSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGxvY2FsZTogXFxgJHtsb2NhbGV9XFxgIGFuZCBrZXk6IFxcYCR7a2V5fVxcYCwgd2hpY2ggY291bGQgYmUgdW5leHBlY3RlZGAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGFyZVRyYW5zbGF0aW9uS2V5cygpIHtcbiAgICBpZiAoIWlzRGV2TW9kZSgpIHx8ICF0aGlzLnRyYW5zbGF0aW9uc0xpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gdGhpcy50cmFuc2xhdGlvbnNMaXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAvLyDlj6rmnInljZXmlofku7blrZjlnKjnv7vor5Hmo4Dmn6VcbiAgICAgIGNvbnN0IGRpZmZzID0gZ2V0TG9uZWx5VHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGlvbnNMaXN0W2ldKTtcblxuICAgICAgaWYgKGRpZmZzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBUaGUgZm9sbG93aW5nIGtleXMgYXJlIG5vdCBwcmVzZW50ZWQgaW4gYWxsIHRyYW5zbGF0aW9uczogJHtkaWZmcy5qb2luKFxuICAgICAgICAgICAgJywnLFxuICAgICAgICAgICl9LmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGZvciAobGV0IGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgLy8g6YG/5YWNIGtleSDph43lkI1cbiAgICAgICAgZm9yIChjb25zdCBsb2NhbGUgb2YgT2JqZWN0LmtleXModGhpcy50cmFuc2xhdGlvbnNMaXN0W2ldKSBhcyBMW10pIHtcbiAgICAgICAgICB0aGlzLl9jb21wYXJlS2V5cyhcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zTGlzdFtpXVtsb2NhbGVdLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNMaXN0W2pdW2xvY2FsZV0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBhcmVLZXlzKFxuICAgIGxvY2FsZTogTCxcbiAgICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb24sXG4gICAgcHJldlRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdLFxuICApIHtcbiAgICBpZiAodHJhbnNsYXRpb24gPT0gbnVsbCB8fCBwcmV2VHJhbnNsYXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9uKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByZXZUcmFuc2xhdGlvbiwga2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZUcmFuc2xhdGlvbltrZXldO1xuICAgICAgY29uc3QgdmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2VmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdChwcmV2VmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWVJc1BsYWluT2JqZWN0ICYmIHByZXZWYWx1ZUlzUGxhaW5PYmplY3QpIHtcbiAgICAgICAgdGhpcy5fY29tcGFyZUtleXMoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIHByZXZWYWx1ZSBhcyBUcmFuc2xhdGlvbixcbiAgICAgICAgICBbLi4ucGF0aCwga2V5XSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbHVlSXNQbGFpbk9iamVjdCAmJiAhcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICBjb25zdCBvdXRwdXRQYXRoID0gWy4uLnBhdGgsIGtleV0uam9pbignIC0+ICcpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHByZXZWYWx1ZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY3VzdG9taXplZCB0cmFuc2xhdGlvbiBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIHBhdGg6IFxcYCR7b3V0cHV0UGF0aH1cXGAgaXMgZHVwbGljYXRlZCB3aXRoIHRoZSBvdGhlciB0cmFuc2xhdGlvbiwgcGxlYXNlIHJlbW92ZSBpdCBpbiB5b3VyIHRyYW5zbGF0aW9uIGZpbGUuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUd28ga2V5cyB0aGF0IHRoZSBsb2NhbGUgaXMgXFxgJHtsb2NhbGV9XFxgIGFuZCB0aGUgcGF0aCBpcyBcXGAke291dHB1dFBhdGh9XFxgIGFyZSBzYW1lLCAgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbm90IGVxdWFsICwgcGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlbSBvciBjaGFuZ2Ugb25lIG9mIHRoZSBrZXlzLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
293
+ args: [TRANSLATIONS]
294
+ }] }]; }, { remoteLoaded$: [], locale$: [] }); })();
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lB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Qjs7c0JBRXhCLFFBQVE7O3NCQUFJLE1BQU07dUJBQUMsWUFBWTt3QkFwQnpCLGFBQWEsTUFXYixPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHJhbnNsYXRlXG4gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgaXNEZXZNb2RlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCwgaGVhZCwgaXNQbGFpbk9iamVjdCwgdGVtcGxhdGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGZvcmtKb2luLFxuICB0aHJvd0Vycm9yLFxuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhamF4IH0gZnJvbSAncnhqcy9hamF4JztcblxuaW1wb3J0IHsgQVBJX0dBVEVXQVksIFRFTVBMQVRFX09QVElPTlMgfSBmcm9tICcuLi9jb3JlL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgVE9LRU5fQkFTRV9IUkVGIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICcuLi9jb3JlL3V0aWxzL3lhbWwnO1xuXG5pbXBvcnQge1xuICBGQUxMQkFDS19MQU5HVUFHRSxcbiAgTE9DQUxFX1BMQUNFSE9MREVSX1JFR0VYLFxuICBMT0NBTEVfU1RPUkFHRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVFJBTlNMQVRFX09QVElPTlMsIFRSQU5TTEFUSU9OUyB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZUtleSxcbiAgVHJhbnNsYXRlT3B0aW9ucyxcbiAgVHJhbnNsYXRpb24sXG4gIFRyYW5zbGF0aW9uVmFsdWUsXG4gIFRyYW5zbGF0aW9ucyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIF9yZW1vdGVMb2FkZWQ/OiBib29sZWFuO1xuXG4gIGdldCByZW1vdGVMb2FkZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW90ZUxvYWRlZDtcbiAgfVxuXG4gIEBPYnNlcnZhYmxlSW5wdXQoJ19yZW1vdGVMb2FkZWQnKVxuICByZWFkb25seSByZW1vdGVMb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFJlYWRvbmx5PFRyYW5zbGF0aW9ucz4+O1xuICBwcml2YXRlIHJlbW90ZVRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFJlYWRvbmx5PFRyYW5zbGF0aW9ucz4+O1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFRyYW5zbGF0ZU9wdGlvbnM7XG5cbiAgbG9jYWxlOiBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJlYWRvbmx5IGxvY2FsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdChUT0tFTl9CQVNFX0hSRUYpXG4gICAgcHJpdmF0ZSByZWFkb25seSBiYXNlSHJlZjogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xBVEVfT1BUSU9OUylcbiAgICBvcHRpb25zOiBUcmFuc2xhdGVPcHRpb25zLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVFJBTlNMQVRJT05TKSB0cmFuc2xhdGlvbkxpc3Q6IFRyYW5zbGF0aW9uc1tdLFxuICApIHtcbiAgICB0aGlzLmxvY2FsZSA9IG9wdGlvbnM/LmxvY2FsZSB8fCBuYXZpZ2F0b3IubGFuZ3VhZ2U7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgbG9jYWxlczogW3RoaXMubG9jYWxlXSxcbiAgICAgIGZhbGxiYWNrTG9jYWxlOiBGQUxMQkFDS19MQU5HVUFHRSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIHRoaXMudHJhbnNsYXRpb25zTGlzdCA9IFtcbiAgICAgIG9wdGlvbnMudHJhbnNsYXRpb25zLFxuICAgICAgLi4uKHRyYW5zbGF0aW9uTGlzdCB8fCBbXSksXG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAob3B0aW9ucy5yZW1vdGVVcmwpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMucmVtb3RlVXJsKSkge1xuICAgICAgICBvcHRpb25zLnJlbW90ZVVybC5mb3JFYWNoKHVybCA9PiB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyh1cmwpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVtb3RlVHJhbnNsYXRpb25zKG9wdGlvbnMucmVtb3RlVXJsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ga2V5IC0g57+76K+Ra2V5XG4gICAqIEBwYXJhbSBkYXRhIC0g5qC55o2u57+76K+R5LiK5LiL5paH5pWw5o2u6I635Y+W57+76K+R5YaF5a6577yM57+76K+R6aG55LiN5a2Y5Zyo55u05o6l6L+U5ZueIGtleSDmlofmnKxcbiAgICogQHBhcmFtIGlnbm9yZU5vbkV4aXN0IC0g5byA5Y+R546v5aKD5piv5ZCm5b+96KeG5LiN5a2Y5Zyo55qE57+76K+R6aG5XG4gICAqL1xuICBnZXQoa2V5OiBUcmFuc2xhdGVLZXksIGRhdGE/OiB1bmtub3duLCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmdldFJhdyhrZXksIGlnbm9yZU5vbkV4aXN0KTtcbiAgICBpZiAoZGF0YSAhPSBudWxsICYmIHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgICAgZGF0YSA9IFtkYXRhXTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZSh0cmFuc2xhdGlvbiwgVEVNUExBVEVfT1BUSU9OUykoZGF0YSBhcyBvYmplY3QpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGVbaXNEZXZNb2RlKCkgPyAnZXJyb3InIDogJ3dhcm4nXShcbiAgICAgICAgYFRoZSB0cmFuc2xhdGlvbiBrZXkgJyR7a2V5fScgaXMgbWlzc2luZyB0aGUgbmVjZXNzYXJ5IHBhcmFtZXRlcnMuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOebtOaOpei/lOWbnue/u+ivkeaWh+acrOaooeadv1xuICAgKiBAcGFyYW0ga2V5IC0g57+76K+Ra2V5XG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0UmF3KGtleTogVHJhbnNsYXRlS2V5LCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnXG4gICAgICA/IHRoaXMuX2dldChrZXksIGlnbm9yZU5vbkV4aXN0KVxuICAgICAgOiAodGhpcy5fZ2V0VmFsdWUoa2V5KSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIOagueaNriBgbG9jYWxlc2Ag5b6q546v5YiH5o2i5b2T5YmN5Yy65Z+f6K6+572uXG4gICAqL1xuICB0b2dnbGVMb2NhbGUoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm9wdGlvbnMubG9jYWxlcy5pbmRleE9mKHRoaXMubG9jYWxlKTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYGxvY2FsZXNgIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCBjb3JyZWN0bHknKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV4dExvY2FsZSA9XG4gICAgICB0aGlzLm9wdGlvbnMubG9jYWxlc1tcbiAgICAgICAgaW5kZXggPT09IHRoaXMub3B0aW9ucy5sb2NhbGVzLmxlbmd0aCAtIDEgPyAwIDogaW5kZXggKyAxXG4gICAgICBdO1xuXG4gICAgaWYgKCFuZXh0TG9jYWxlIHx8IHRoaXMubG9jYWxlID09PSBuZXh0TG9jYWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRMb2NhbGUobmV4dExvY2FsZSk7XG4gIH1cblxuICBzZXRMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMT0NBTEVfU1RPUkFHRSwgbG9jYWxlKTtcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmiYvliqjmt7vliqDor63oqIDljIVcbiAgICovXG4gIGFkZFRyYW5zbGF0aW9ucyh0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9ucykge1xuICAgIHRoaXMudHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUodHJhbnNsYXRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eVxuICBhZGRSZW1vdGVUcmFuc2xhdGlvbnMocmVtb3RlVXJsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXJlbW90ZVVybCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZW1vdGVMb2FkZWQgPSBmYWxzZTtcbiAgICByZW1vdGVVcmwgPSBoZWFkKHJlbW90ZVVybC5zcGxpdCgvIy8pKTtcbiAgICBjb25zdCBpc0Fic29sdXRlID0gaXNBYnNvbHV0ZVVybChyZW1vdGVVcmwpO1xuICAgIGNvbnN0IGlzQXBpR2F0ZVdheVJlcXVlc3QgPSByZW1vdGVVcmwuc3RhcnRzV2l0aChBUElfR0FURVdBWSk7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gICAgICBpZiAoIWlzQWJzb2x1dGUgJiYgKCF0aGlzLmJhc2VIcmVmIHx8ICFpc0Fic29sdXRlVXJsKHRoaXMuYmFzZUhyZWYpKSkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSAnYWJzb2x1dGUgYmFzZSBocmVmIGlzIHJlcXVpcmVkIGZvciByZWxhdGl2ZSByZW1vdGUgdXJsJztcbiAgICAgIH0gZWxzZSBpZiAocmVtb3RlVXJsLnNwbGl0KCc/JylbMF0uaW5jbHVkZXMoJy4vJykpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICAnZG8gbm90IHVzZSBhbnkgZG90IHdpdGggc2xhc2ggZm9yIHJlbGF0aXZlIHVybCB3aGljaCBzaG91bGQgYWx3YXlzIGJhc2UgZnJvbSBiYXNlIGhyZWYnO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9yTWVzc2FnZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghaXNBYnNvbHV0ZSAmJiAhaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmVtb3RlVXJsID1cbiAgICAgICAgKHRoaXMuYmFzZUhyZWYuZW5kc1dpdGgoJy8nKSA/IHRoaXMuYmFzZUhyZWYgOiB0aGlzLmJhc2VIcmVmICsgJy8nKSArXG4gICAgICAgIHJlbW90ZVVybDtcbiAgICB9XG4gICAgKExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybClcbiAgICAgID8gZm9ya0pvaW4oXG4gICAgICAgICAgdGhpcy5vcHRpb25zLmxvY2FsZXMubWFwKGxvY2FsZSA9PlxuICAgICAgICAgICAgdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9jYWxlKS5waXBlKFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvb3NlKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZSAhPT0gbG9vc2VMb2NhbGUgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5sb2NhbGVzLmluY2x1ZGVzKGxvb3NlTG9jYWxlKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoVHJhbnNsYXRpb24ocmVtb3RlVXJsLCBsb29zZUxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmaWx0ZXIoaXNQbGFpbk9iamVjdCksXG4gICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAodHJhbnNsYXRpb246IFRyYW5zbGF0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV06IHRyYW5zbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgfSBhcyBUcmFuc2xhdGlvbnMpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApLnBpcGUobWFwKF8gPT4gXy5yZWR1Y2UoT2JqZWN0LmFzc2lnbikpKVxuICAgICAgOiB0aGlzLmZldGNoVHJhbnNsYXRpb24ocmVtb3RlVXJsKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gKGlzRGV2TW9kZSgpID8gdGhyb3dFcnJvcigoKSA9PiBlcnJvcikgOiBFTVBUWSkpLFxuICAgICAgICApXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLl9yZW1vdGVMb2FkZWQgPSB0cnVlKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlbW90ZVRyYW5zbGF0aW9ucyA9PiB7XG4gICAgICAgIGlmICghcmVtb3RlVHJhbnNsYXRpb25zKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0KSB7XG4gICAgICAgICAgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0ID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0LnVuc2hpZnQoT2JqZWN0LmZyZWV6ZShyZW1vdGVUcmFuc2xhdGlvbnMpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOS7jui/nOeoiyB1cmwg5qih5p2/5ZKM5Yy65Z+f6I635Y+W57+76K+R5YyFXG4gICAqL1xuICBmZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbnM+O1xuICBmZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybDogc3RyaW5nLCBsb2NhbGU6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb24+O1xuICBmZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybDogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpIHtcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgTE9DQUxFX1BMQUNFSE9MREVSX1JFR0VYLnRlc3QocmVtb3RlVXJsKSAmJiAhbG9jYWxlKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAnYGxvY2FsZWAgaXMgcmVxdWlyZWQgc2luZSB0aGUgcHJvdmlkZWQgcmVtb3RlIHVybCBjb250YWlucyBsb2NhbGUgcGxhY2Vob2xkZXInLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgaXNKU09OID0gcmVtb3RlVXJsLmVuZHNXaXRoKCcuanNvbicpO1xuICAgIGNvbnN0IGlzQXBpR2F0ZVdheVJlcXVlc3QgPSByZW1vdGVVcmwuc3RhcnRzV2l0aChBUElfR0FURVdBWSk7XG4gICAgY29uc3QgdXJsID0gbG9jYWxlXG4gICAgICA/IHJlbW90ZVVybC5yZXBsYWNlKExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWCwgbG9jYWxlKVxuICAgICAgOiByZW1vdGVVcmw7XG4gICAgY29uc3QgcmVzcG9uc2VUeXBlID0gaXNKU09OID8gJ2pzb24nIDogJ3RleHQnO1xuICAgIGlmIChpc0FwaUdhdGVXYXlSZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5yZXF1ZXN0KCdHRVQnLCB1cmwsIHsgcmVzcG9uc2VUeXBlIH0pXG4gICAgICAgIC5waXBlKG1hcChib2R5ID0+IChpc0pTT04gPyBib2R5IDogcGFyc2UoYm9keSkpKSk7XG4gICAgfVxuICAgIHJldHVybiBhamF4KHtcbiAgICAgIHVybCxcbiAgICAgIHJlc3BvbnNlVHlwZSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKCh7IHJlc3BvbnNlIH0pID0+IChpc0pTT04gPyByZXNwb25zZSA6IHBhcnNlKHJlc3BvbnNlIGFzIHN0cmluZykpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TG9vc2VMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaGVhZChsb2NhbGUuc3BsaXQoL1tfLV0vKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZShcbiAgICBzb3VyY2U6IFRyYW5zbGF0aW9uLFxuICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlLFxuICApOiBUcmFuc2xhdGlvblZhbHVlIHtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSBzb3VyY2VbbG9jYWxlXTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMubG9vc2UpIHtcbiAgICAgIGNvbnN0IGxvb3NlTG9jYWxlID0gdGhpcy5fZ2V0TG9vc2VMb2NhbGUobG9jYWxlKTtcbiAgICAgIHZhbHVlID1cbiAgICAgICAgbG9jYWxlID09PSBsb29zZUxvY2FsZVxuICAgICAgICAgID8gT2JqZWN0LmVudHJpZXMoc291cmNlKS5maW5kKFxuICAgICAgICAgICAgICAoW2tleV0pID0+IGxvY2FsZSA9PT0gdGhpcy5fZ2V0TG9vc2VMb2NhbGUoa2V5KSxcbiAgICAgICAgICAgICk/LlsxXVxuICAgICAgICAgIDogc291cmNlW2xvb3NlTG9jYWxlXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgbG9jYWxlICE9PSB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZShzb3VyY2UsIHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFdpdGhGYWxsYmFjayhcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9ucyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IGdldCh0aGlzLl9nZXRWYWx1ZSh0cmFuc2xhdGlvbnMsIGxvY2FsZSksIGtleSk7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBpc0Rldk1vZGUoKSAmJlxuICAgICAgICB0eXBlb2YgZ2V0KHZhbHVlLCBTeW1ib2wudG9QcmltaXRpdmUpICE9PSAnZnVuY3Rpb24nXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBUaGUgdHJhbnNsYXRpb24gZm9yIGxvY2FsZTogXFxgJHtsb2NhbGV9XFxgIGFuZCBrZXk6XFxgJHtrZXl9XFxgIGlzIGFuIG9iamVjdCwgd2hpY2ggY291bGQgYmUgdW5leHBlY3RlZGAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGxvY2FsZSAhPT0gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0V2l0aEZhbGxiYWNrKFxuICAgICAgICBrZXksXG4gICAgICAgIHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSxcbiAgICAgICAgdHJhbnNsYXRpb25zLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRCYXNlKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlLFxuICAgIHRyYW5zbGF0aW9uc0xpc3Q6IFRyYW5zbGF0aW9uc1tdLFxuICApIHtcbiAgICBpZiAoIXRyYW5zbGF0aW9uc0xpc3QgfHwgdHJhbnNsYXRpb25zTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHRyYW5zbGF0aW9uc0xpc3QubGVuZ3RoOyBpID4gMDsgaS0tKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2dldFdpdGhGYWxsYmFjayhrZXksIGxvY2FsZSwgdHJhbnNsYXRpb25zTGlzdFtpIC0gMV0pO1xuICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldChrZXk6IHN0cmluZywgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLl9nZXRCYXNlKGtleSwgbG9jYWxlLCB0aGlzLnJlbW90ZVRyYW5zbGF0aW9uc0xpc3QpO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuX2dldEJhc2Uoa2V5LCBsb2NhbGUsIHRoaXMudHJhbnNsYXRpb25zTGlzdCk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGlzRGV2TW9kZSgpICYmXG4gICAgICAhaWdub3JlTm9uRXhpc3QgJiZcbiAgICAgIHR5cGVvZiBnZXQodmFsdWUsIFN5bWJvbC50b1ByaW1pdGl2ZSkgIT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYE5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OiBcXGAke2tleX1cXGAsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBhcmVLZXlzKFxuICAgIGxvY2FsZTogc3RyaW5nLFxuICAgIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwcmV2VHJhbnNsYXRpb246IFRyYW5zbGF0aW9uLFxuICAgIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gICkge1xuICAgIGlmICh0cmFuc2xhdGlvbiA9PSBudWxsIHx8IHByZXZUcmFuc2xhdGlvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgT2JqZWN0LmVudHJpZXModHJhbnNsYXRpb24pLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJldlRyYW5zbGF0aW9uLCBrZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJldlZhbHVlID0gcHJldlRyYW5zbGF0aW9uW2tleV07XG4gICAgICBjb25zdCB2YWx1ZUlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0KHZhbHVlKTtcbiAgICAgIGNvbnN0IHByZXZWYWx1ZUlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0KHByZXZWYWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZUlzUGxhaW5PYmplY3QgJiYgcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICB0aGlzLl9jb21wYXJlS2V5cyhcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgdmFsdWUgYXMgVHJhbnNsYXRpb24sXG4gICAgICAgICAgcHJldlZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIFsuLi5wYXRoLCBrZXldLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghdmFsdWVJc1BsYWluT2JqZWN0ICYmICFwcmV2VmFsdWVJc1BsYWluT2JqZWN0KSB7XG4gICAgICAgIGNvbnN0IG91dHB1dFBhdGggPSBbLi4ucGF0aCwga2V5XS5qb2luKCcgLT4gJyk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gcHJldlZhbHVlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFRoZSBjdXN0b21pemVkIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQgcGF0aDogXFxgJHtvdXRwdXRQYXRofVxcYCBpcyBkdXBsaWNhdGVkIHdpdGggdGhlIG90aGVyIHRyYW5zbGF0aW9uLCBwbGVhc2UgcmVtb3ZlIGl0IGluIHlvdXIgdHJhbnNsYXRpb24gZmlsZS5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFR3byBrZXlzIHRoYXQgdGhlIGxvY2FsZSBpcyBcXGAke2xvY2FsZX1cXGAgYW5kIHRoZSBwYXRoIGlzIFxcYCR7b3V0cHV0UGF0aH1cXGAgYXJlIHNhbWUsICBidXQgdGhlaXIgdmFsdWVzIGFyZSBub3QgZXF1YWwgLCBwbGVhc2UgcmVtb3ZlIG9uZSBvZiB0aGVtIG9yIGNoYW5nZSBvbmUgb2YgdGhlIGtleXMuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -3,4 +3,4 @@
3
3
  * @module translate
4
4
  */
5
5
  export {};
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHRyYW5zbGF0ZVxuICovXG5cbmltcG9ydCB7IEFycmF5YWJsZSB9IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0aW9uVmFsdWUgPSBBcnJheWFibGU8XG4gIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBUcmFuc2xhdGlvblxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2xhdGlvbiB7XG4gIFtrZXk6IHN0cmluZ106IFRyYW5zbGF0aW9uVmFsdWU7XG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0aW9uczxUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiA9IFBhcnRpYWw8XG4gIFJlY29yZDxULCBUcmFuc2xhdGlvbj5cbj47XG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0ZUtleTxUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiA9XG4gIHwgc3RyaW5nXG4gIHwgUGFydGlhbDxSZWNvcmQ8VCwgc3RyaW5nPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRlT3B0aW9uczxUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIGxvY2FsZT86IFQ7XG4gIGRlZmF1bHRMb2NhbGU/OiBUO1xuICBsb2NhbGVzPzogVFtdO1xuICB0cmFuc2xhdGlvbnM/OiBUcmFuc2xhdGlvbnM8VD47XG4gIGxvb3NlPzogYm9vbGVhbjtcbiAgcmVtb3RlVHJhbnNsYXRpb25zPzogVHJhbnNsYXRpb25zPFQ+O1xuICByZW1vdGVVcmw/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHRyYW5zbGF0ZVxuICovXG5cbmltcG9ydCB7IEFycmF5YWJsZSB9IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0aW9uVmFsdWUgPSBBcnJheWFibGU8XG4gIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBUcmFuc2xhdGlvblxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2xhdGlvbiB7XG4gIFtrZXk6IHN0cmluZ106IFRyYW5zbGF0aW9uVmFsdWU7XG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0aW9ucyA9IFJlY29yZDxzdHJpbmcsIFRyYW5zbGF0aW9uPjtcblxuZXhwb3J0IHR5cGUgVHJhbnNsYXRlS2V5ID0gc3RyaW5nIHwgVHJhbnNsYXRpb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRlT3B0aW9ucyB7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmc7XG4gIGxvY2FsZXM/OiBzdHJpbmdbXTtcbiAgdHJhbnNsYXRpb25zPzogVHJhbnNsYXRpb25zO1xuICBsb29zZT86IGJvb2xlYW47XG4gIHJlbW90ZVRyYW5zbGF0aW9ucz86IFRyYW5zbGF0aW9ucztcbiAgcmVtb3RlVXJsPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG4iXX0=
@@ -3,9 +3,9 @@ export function getMethodValue(methods, items, defaultKey) {
3
3
  const obj = {};
4
4
  const curr = defaultKey || key;
5
5
  if (key === 'latest') {
6
- obj[curr] = items.at(-1).y;
6
+ obj[curr] = items?.at(-1)?.y;
7
7
  }
8
- const values = items.map(d => d.y);
8
+ const values = items?.map(d => d.y);
9
9
  if (key === 'max') {
10
10
  obj[curr] = Math.max(...values);
11
11
  }
@@ -25,4 +25,4 @@ export function getMethodValue(methods, items, defaultKey) {
25
25
  };
26
26
  }, {});
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy16Y2hhcnQvdW5pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsT0FBaUIsRUFDakIsS0FBeUIsRUFDekIsVUFBbUI7SUFFbkIsT0FBTyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ25DLE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsVUFBVSxJQUFJLEdBQUcsQ0FBQztRQUMvQixJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7UUFDRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUNqQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7U0FDakM7UUFDRCxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDL0Q7UUFDRCxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU87WUFDTCxHQUFHLElBQUk7WUFDUCxHQUFHLEdBQUc7U0FDUCxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGF0YUl0ZW0gfSBmcm9tICd6ei1jaGFydCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRob2RWYWx1ZShcbiAgbWV0aG9kczogc3RyaW5nW10sXG4gIGl0ZW1zOiBEYXRhSXRlbVsndmFsdWVzJ10sXG4gIGRlZmF1bHRLZXk/OiBzdHJpbmcsXG4pOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHtcbiAgcmV0dXJuIG1ldGhvZHM/LnJlZHVjZSgocHJldiwga2V5KSA9PiB7XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gICAgY29uc3QgY3VyciA9IGRlZmF1bHRLZXkgfHwga2V5O1xuICAgIGlmIChrZXkgPT09ICdsYXRlc3QnKSB7XG4gICAgICBvYmpbY3Vycl0gPSBpdGVtcy5hdCgtMSkueTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWVzID0gaXRlbXMubWFwKGQgPT4gZC55KTtcbiAgICBpZiAoa2V5ID09PSAnbWF4Jykge1xuICAgICAgb2JqW2N1cnJdID0gTWF0aC5tYXgoLi4udmFsdWVzKTtcbiAgICB9XG4gICAgaWYgKGtleSA9PT0gJ21pbicpIHtcbiAgICAgIG9ialtjdXJyXSA9IE1hdGgubWluKC4uLnZhbHVlcyk7XG4gICAgfVxuICAgIGlmIChrZXkgPT09ICdhdmcnKSB7XG4gICAgICBvYmpbY3Vycl0gPSB2YWx1ZXMucmVkdWNlKChwLCBjKSA9PiBwICsgYywgMCkgLyB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoa2V5ID09PSAnc3VtJykge1xuICAgICAgb2JqW2N1cnJdID0gdmFsdWVzLnJlZHVjZSgocCwgYykgPT4gcCArIGMsIDApO1xuICAgIH1cbiAgICBvYmpbY3Vycl0gPSArb2JqW2N1cnJdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcmV2LFxuICAgICAgLi4ub2JqLFxuICAgIH07XG4gIH0sIHt9KTtcbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy16Y2hhcnQvdW5pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsT0FBaUIsRUFDakIsS0FBeUIsRUFDekIsVUFBbUI7SUFFbkIsT0FBTyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ25DLE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsVUFBVSxJQUFJLEdBQUcsQ0FBQztRQUMvQixJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDOUI7UUFDRCxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUNqQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7U0FDakM7UUFDRCxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDL0Q7UUFDRCxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU87WUFDTCxHQUFHLElBQUk7WUFDUCxHQUFHLEdBQUc7U0FDUCxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGF0YUl0ZW0gfSBmcm9tICd6ei1jaGFydCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRob2RWYWx1ZShcbiAgbWV0aG9kczogc3RyaW5nW10sXG4gIGl0ZW1zOiBEYXRhSXRlbVsndmFsdWVzJ10sXG4gIGRlZmF1bHRLZXk/OiBzdHJpbmcsXG4pOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHtcbiAgcmV0dXJuIG1ldGhvZHM/LnJlZHVjZSgocHJldiwga2V5KSA9PiB7XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gICAgY29uc3QgY3VyciA9IGRlZmF1bHRLZXkgfHwga2V5O1xuICAgIGlmIChrZXkgPT09ICdsYXRlc3QnKSB7XG4gICAgICBvYmpbY3Vycl0gPSBpdGVtcz8uYXQoLTEpPy55O1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZXMgPSBpdGVtcz8ubWFwKGQgPT4gZC55KTtcbiAgICBpZiAoa2V5ID09PSAnbWF4Jykge1xuICAgICAgb2JqW2N1cnJdID0gTWF0aC5tYXgoLi4udmFsdWVzKTtcbiAgICB9XG4gICAgaWYgKGtleSA9PT0gJ21pbicpIHtcbiAgICAgIG9ialtjdXJyXSA9IE1hdGgubWluKC4uLnZhbHVlcyk7XG4gICAgfVxuICAgIGlmIChrZXkgPT09ICdhdmcnKSB7XG4gICAgICBvYmpbY3Vycl0gPSB2YWx1ZXMucmVkdWNlKChwLCBjKSA9PiBwICsgYywgMCkgLyB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoa2V5ID09PSAnc3VtJykge1xuICAgICAgb2JqW2N1cnJdID0gdmFsdWVzLnJlZHVjZSgocCwgYykgPT4gcCArIGMsIDApO1xuICAgIH1cbiAgICBvYmpbY3Vycl0gPSArb2JqW2N1cnJdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcmV2LFxuICAgICAgLi4ub2JqLFxuICAgIH07XG4gIH0sIHt9KTtcbn1cbiJdfQ==