@libs-ui/services-config-project 0.2.315-0 → 0.2.316-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.
@@ -1,41 +1,13 @@
1
- import { IColorButtonTab, ILibsUiConfigButtonStatus, ILibsUiConfigButtonTab, ILibsUiConfigFontHeading } from './config-project.interface';
1
+ import { IColorButtonTab, ILibsUiConfigButtonSize, ILibsUiConfigButtonStatus, ILibsUiConfigButtonTab, ILibsUiConfigFontHeading, ILibsUiConfigFontWeight } from './config-project.interface';
2
2
  export declare const fontConfig: {
3
3
  name: string;
4
4
  uri_regular: string;
5
5
  uri_medium: string;
6
6
  uri_semibold: string;
7
7
  };
8
- export declare const weights: {
9
- uri_regular: string;
10
- uri_medium: string;
11
- uri_semibold: string;
12
- uri_bold: string;
13
- };
8
+ export declare const weights: ILibsUiConfigFontWeight;
14
9
  export declare const configHeading: ILibsUiConfigFontHeading;
15
- export declare const sizeButtonConfig: () => {
16
- icon: {
17
- large: string;
18
- medium: string;
19
- small: string;
20
- smaller: string;
21
- };
22
- large: {
23
- font_size: string;
24
- line_height: string;
25
- };
26
- medium: {
27
- font_size: string;
28
- line_height: string;
29
- };
30
- small: {
31
- font_size: string;
32
- line_height: string;
33
- };
34
- smaller: {
35
- font_size: string;
36
- line_height: string;
37
- };
38
- };
10
+ export declare const sizeButtonConfig: () => ILibsUiConfigButtonSize;
39
11
  export declare const configButtonColor: (rootColorInTheme: string) => {
40
12
  'button-primary': {
41
13
  configStepColor: {
@@ -5,6 +5,12 @@ export interface ILibsUiConfigFontFamily {
5
5
  uri_semibold: string;
6
6
  uri_bold?: string;
7
7
  }
8
+ export interface ILibsUiConfigFontWeight {
9
+ uri_regular: string;
10
+ uri_medium: string;
11
+ uri_semibold: string;
12
+ uri_bold: string;
13
+ }
8
14
  export interface ILibsUiConfigFontHeading {
9
15
  h1r: ILibsUiConfigFontHeadingStyle;
10
16
  h1m: ILibsUiConfigFontHeadingStyle;
@@ -72,3 +78,27 @@ export interface IColorButton {
72
78
  };
73
79
  rootColor: string;
74
80
  }
81
+ export interface ILibsUiConfigButtonSize {
82
+ icon: {
83
+ large: string;
84
+ medium: string;
85
+ small: string;
86
+ smaller: string;
87
+ };
88
+ large: {
89
+ font_size: string;
90
+ line_height: string;
91
+ };
92
+ medium: {
93
+ font_size: string;
94
+ line_height: string;
95
+ };
96
+ small: {
97
+ font_size: string;
98
+ line_height: string;
99
+ };
100
+ smaller: {
101
+ font_size: string;
102
+ line_height: string;
103
+ };
104
+ }
@@ -618,4 +618,4 @@ export const styleButtonTab = (type, config) => {
618
618
  background-color: ${backgroundBadge} !important;
619
619
  }`;
620
620
  };
621
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXByb2plY3QtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvY29uZmlnLXByb2plY3Qvc3JjL2NvbmZpZy1wcm9qZWN0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxhQUFhO0lBQ25CLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsVUFBVSxFQUFFLHdCQUF3QjtJQUNwQyxZQUFZLEVBQUUsMEJBQTBCO0NBQ3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsVUFBVSxFQUFFLEtBQUs7SUFDakIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBNkI7SUFDckQsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7UUFDcEIsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0tBQzdDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckMsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLE1BQU07UUFDYixNQUFNLEVBQUUsTUFBTTtRQUNkLEtBQUssRUFBRSxNQUFNO1FBQ2IsT0FBTyxFQUFFLE1BQU07S0FDaEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsTUFBTTtRQUNqQixXQUFXLEVBQUUsTUFBTTtLQUNwQjtJQUNELE1BQU0sRUFBRTtRQUNOLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFdBQVcsRUFBRSxNQUFNO0tBQ3BCO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLE1BQU07UUFDakIsV0FBVyxFQUFFLE1BQU07S0FDcEI7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsTUFBTTtRQUNqQixXQUFXLEVBQUUsTUFBTTtLQUNwQjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsZ0JBQXdCLEVBQUUsRUFBRTtJQUM1RCxPQUFPO1FBQ0wsZ0JBQWdCLEVBQUU7WUFDaEIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxPQUFPO2dCQUNiLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixXQUFXLEVBQUUsT0FBTztnQkFDcEIsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLFVBQVUsRUFBRSxDQUFDO2dCQUNiLGdCQUFnQixFQUFFLEVBQUU7Z0JBQ3BCLGlCQUFpQixFQUFFLENBQUMsRUFBRTtnQkFDdEIsa0JBQWtCLEVBQUUsU0FBUztnQkFDN0IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGFBQWEsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xCLGNBQWMsRUFBRSxTQUFTO2FBQzFCO1lBQ0QsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QjtRQUNELHVCQUF1QixFQUFFO1lBQ3ZCLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsQ0FBQztnQkFDUCxVQUFVLEVBQUUsT0FBTztnQkFDbkIsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixVQUFVLEVBQUUsT0FBTztnQkFDbkIsZ0JBQWdCLEVBQUUsRUFBRTtnQkFDcEIsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QixrQkFBa0IsRUFBRSxTQUFTO2dCQUM3QixNQUFNLEVBQUUsQ0FBQztnQkFDVCxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLENBQUMsRUFBRTtnQkFDbEIsY0FBYyxFQUFFLFNBQVM7YUFDMUI7WUFDRCxTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCO1FBQ0Qsa0JBQWtCLEVBQUU7WUFDbEIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxFQUFFO2dCQUNkLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixrQkFBa0IsRUFBRSxTQUFTO2dCQUM3QixNQUFNLEVBQUUsRUFBRTtnQkFDVixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLGNBQWMsRUFBRSxTQUFTO2FBQzFCO1lBQ0QsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QjtRQUNELGNBQWMsRUFBRTtZQUNkLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsU0FBUztnQkFDZixVQUFVLEVBQUUsRUFBRTtnQkFDZCxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUNoQixZQUFZLEVBQUUsU0FBUztnQkFDdkIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLGdCQUFnQixFQUFFLEVBQUU7Z0JBQ3BCLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3JCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLGNBQWMsRUFBRSxTQUFTO2FBQzFCO1lBQ0QsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QjtRQUNELHNCQUFzQixFQUFFO1lBQ3RCLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsQ0FBQztnQkFDUCxVQUFVLEVBQUUsQ0FBQyxFQUFFO2dCQUNmLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixrQkFBa0IsRUFBRSxTQUFTO2dCQUM3QixNQUFNLEVBQUUsRUFBRTtnQkFDVixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLGNBQWMsRUFBRSxTQUFTO2FBQzFCO1lBQ0QsU0FBUyxFQUFFLFNBQVM7U0FDckI7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLENBQUMsRUFBRTtnQkFDaEIsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixnQkFBZ0IsRUFBRSxPQUFPO2dCQUN6QixpQkFBaUIsRUFBRSxPQUFPO2dCQUMxQixrQkFBa0IsRUFBRSxTQUFTO2dCQUM3QixNQUFNLEVBQUUsU0FBUztnQkFDakIsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGFBQWEsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xCLGNBQWMsRUFBRSxTQUFTO2FBQzFCO1lBQ0QsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QjtRQUNELG9CQUFvQixFQUFFO1lBQ3BCLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUUsT0FBTztnQkFDbkIsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixVQUFVLEVBQUUsQ0FBQztnQkFDYixnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixpQkFBaUIsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLE1BQU0sRUFBRSxDQUFDO2dCQUNULFlBQVksRUFBRSxFQUFFO2dCQUNoQixhQUFhLEVBQUUsQ0FBQyxFQUFFO2dCQUNsQixjQUFjLEVBQUUsU0FBUzthQUMxQjtZQUNELFNBQVMsRUFBRSxTQUFTO1NBQ3JCO1FBQ0QsbUJBQW1CLEVBQUU7WUFDbkIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxPQUFPO2dCQUNiLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixXQUFXLEVBQUUsT0FBTztnQkFDcEIsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLFVBQVUsRUFBRSxDQUFDO2dCQUNiLGdCQUFnQixFQUFFLEVBQUU7Z0JBQ3BCLGlCQUFpQixFQUFFLENBQUMsRUFBRTtnQkFDdEIsa0JBQWtCLEVBQUUsU0FBUztnQkFDN0IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGFBQWEsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xCLGNBQWMsRUFBRSxTQUFTO2FBQzFCO1lBQ0QsU0FBUyxFQUFFLFNBQVM7U0FDckI7UUFDRCxjQUFjLEVBQUU7WUFDZCxlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsVUFBVSxFQUFFLE9BQU87Z0JBQ25CLFdBQVcsRUFBRSxPQUFPO2dCQUNwQixZQUFZLEVBQUUsU0FBUztnQkFDdkIsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsZ0JBQWdCLEVBQUUsRUFBRTtnQkFDcEIsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QixrQkFBa0IsRUFBRSxTQUFTO2dCQUM3QixNQUFNLEVBQUUsQ0FBQztnQkFDVCxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLENBQUMsRUFBRTtnQkFDbEIsY0FBYyxFQUFFLFNBQVM7YUFDMUI7WUFDRCxTQUFTLEVBQUUsU0FBUztTQUNyQjtRQUNELGVBQWUsRUFBRTtZQUNmLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUUsT0FBTztnQkFDbkIsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixVQUFVLEVBQUUsQ0FBQztnQkFDYixnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixpQkFBaUIsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLE1BQU0sRUFBRSxDQUFDO2dCQUNULFlBQVksRUFBRSxFQUFFO2dCQUNoQixhQUFhLEVBQUUsQ0FBQyxFQUFFO2dCQUNsQixjQUFjLEVBQUUsU0FBUzthQUMxQjtZQUNELFNBQVMsRUFBRSxTQUFTO1NBQ3JCO1FBQ0Qsc0JBQXNCLEVBQUU7WUFDdEIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxTQUFTO2dCQUNmLFVBQVUsRUFBRSxFQUFFO2dCQUNkLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixVQUFVLEVBQUUsT0FBTztnQkFDbkIsZ0JBQWdCLEVBQUUsT0FBTztnQkFDekIsaUJBQWlCLEVBQUUsT0FBTztnQkFDMUIsa0JBQWtCLEVBQUUsU0FBUztnQkFDN0IsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFlBQVksRUFBRSxFQUFFO2dCQUNoQixhQUFhLEVBQUUsQ0FBQyxFQUFFO2dCQUNsQixjQUFjLEVBQUUsU0FBUzthQUMxQjtZQUNELFNBQVMsRUFBRSxTQUFTO1NBQ3JCO1FBQ0Qsd0JBQXdCLEVBQUU7WUFDeEIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixXQUFXLEVBQUUsT0FBTztnQkFDcEIsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLFVBQVUsRUFBRSxFQUFFO2dCQUNkLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLE1BQU0sRUFBRSxDQUFDO2dCQUNULFlBQVksRUFBRSxDQUFDO2dCQUNmLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixjQUFjLEVBQUUsU0FBUzthQUMxQjtZQUNELFNBQVMsRUFBRSxTQUFTO1NBQ3JCO1FBQ0QsMEJBQTBCLEVBQUU7WUFDMUIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixXQUFXLEVBQUUsT0FBTztnQkFDcEIsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLFVBQVUsRUFBRSxFQUFFO2dCQUNkLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLE1BQU0sRUFBRSxDQUFDO2dCQUNULFlBQVksRUFBRSxDQUFDO2dCQUNmLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixjQUFjLEVBQUUsU0FBUzthQUMxQjtZQUNELFNBQVMsRUFBRSxnQkFBZ0I7U0FDNUI7UUFDRCw2QkFBNkIsRUFBRTtZQUM3QixlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsV0FBVyxFQUFFLENBQUMsRUFBRTtnQkFDaEIsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixnQkFBZ0IsRUFBRSxPQUFPO2dCQUN6QixpQkFBaUIsRUFBRSxPQUFPO2dCQUMxQixrQkFBa0IsRUFBRSxTQUFTO2dCQUM3QixNQUFNLEVBQUUsU0FBUztnQkFDakIsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsYUFBYSxFQUFFLENBQUMsRUFBRTtnQkFDbEIsY0FBYyxFQUFFLFNBQVM7YUFDMUI7WUFDRCxTQUFTLEVBQUUsU0FBUztTQUNyQjtRQUNELDJCQUEyQixFQUFFO1lBQzNCLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsU0FBUztnQkFDZixVQUFVLEVBQUUsRUFBRTtnQkFDZCxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUNoQixZQUFZLEVBQUUsU0FBUztnQkFDdkIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLGdCQUFnQixFQUFFLEVBQUU7Z0JBQ3BCLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3JCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLGNBQWMsRUFBRSxTQUFTO2FBQzFCO1lBQ0QsU0FBUyxFQUFFLFNBQVM7U0FDckI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxnQkFBd0IsRUFBRSxFQUFFO0lBQzNELE9BQU87UUFDTCxxQkFBcUIsRUFBRTtZQUNyQixlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLENBQUMsRUFBRTtnQkFDaEIsWUFBWSxFQUFFLFNBQVM7YUFDeEI7WUFDRCxTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCO1FBQ0QsbUJBQW1CLEVBQUU7WUFDbkIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxTQUFTO2dCQUNmLFVBQVUsRUFBRSxFQUFFO2dCQUNkLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hCLFlBQVksRUFBRSxTQUFTO2FBQ3hCO1lBQ0QsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QjtRQUNELHlCQUF5QixFQUFFO1lBQ3pCLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsQ0FBQztnQkFDUCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUNoQixZQUFZLEVBQUUsU0FBUzthQUN4QjtZQUNELFNBQVMsRUFBRSxTQUFTO1NBQ3JCO1FBQ0Qsd0JBQXdCLEVBQUU7WUFDeEIsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxFQUFFO2dCQUNkLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hCLFlBQVksRUFBRSxTQUFTO2FBQ3hCO1lBQ0QsU0FBUyxFQUFFLFNBQVM7U0FDckI7UUFDRCxtQkFBbUIsRUFBRTtZQUNuQixlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLENBQUMsRUFBRTtnQkFDaEIsWUFBWSxFQUFFLFNBQVM7YUFDeEI7WUFDRCxTQUFTLEVBQUUsU0FBUztTQUNyQjtRQUNELG9CQUFvQixFQUFFO1lBQ3BCLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsQ0FBQztnQkFDUCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUNoQixZQUFZLEVBQUUsU0FBUzthQUN4QjtZQUNELFNBQVMsRUFBRSxTQUFTO1NBQ3JCO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQThCLEVBQUU7SUFDaEUsT0FBTztRQUNMLElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1NBQ3RCO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFNBQVM7U0FDdEI7UUFDRCxHQUFHLEVBQUU7WUFDSCxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsU0FBUztTQUN0QjtRQUNELE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1NBQ3RCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFNBQVM7U0FDdEI7UUFDRCxJQUFJLEVBQUU7WUFDSixLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsU0FBUztTQUN0QjtRQUNELE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1NBQ3RCO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFNBQVM7U0FDdEI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQTJCLEVBQUU7SUFDMUQsT0FBTztRQUNMLElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGdCQUFnQixFQUFFLFNBQVM7U0FDNUI7UUFDRCxLQUFLLEVBQUU7WUFDTCxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsU0FBUztZQUNyQixnQkFBZ0IsRUFBRSxTQUFTO1NBQzVCO1FBQ0QsR0FBRyxFQUFFO1lBQ0gsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFNBQVM7WUFDckIsZ0JBQWdCLEVBQUUsU0FBUztTQUM1QjtRQUNELE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGdCQUFnQixFQUFFLFNBQVM7U0FDNUI7UUFDRCxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsU0FBUztZQUNyQixnQkFBZ0IsRUFBRSxTQUFTO1NBQzVCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFNBQVM7WUFDckIsZ0JBQWdCLEVBQUUsU0FBUztTQUM1QjtRQUNELE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGdCQUFnQixFQUFFLFNBQVM7U0FDNUI7UUFDRCxLQUFLLEVBQUU7WUFDTCxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsU0FBUztZQUNyQixnQkFBZ0IsRUFBRSxTQUFTO1NBQzVCO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxNQUF1QixFQUFFLEVBQUU7SUFDdEUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSwyQkFBMkIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUM3RixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksMkJBQTJCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUM7SUFFeEcsT0FBTyx1QkFBdUIsSUFBSTt3QkFDWixVQUFVOzs7d0JBR1YsSUFBSTthQUNmLE1BQU0sQ0FBQyxLQUFLOzs7d0JBR0QsSUFBSTthQUNmLE1BQU0sQ0FBQyxLQUFLO3dCQUNELGVBQWU7SUFDbkMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbiB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IElDb2xvckJ1dHRvblRhYiwgSUxpYnNVaUNvbmZpZ0J1dHRvblN0YXR1cywgSUxpYnNVaUNvbmZpZ0J1dHRvblRhYiwgSUxpYnNVaUNvbmZpZ0ZvbnRIZWFkaW5nIH0gZnJvbSAnLi9jb25maWctcHJvamVjdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgZm9udENvbmZpZyA9IHtcbiAgbmFtZTogJ1NWTi1Qb3BwaW5zJyxcbiAgdXJpX3JlZ3VsYXI6ICdTVk4tUG9wcGlucy1SZWd1bGFyLnR0ZicsXG4gIHVyaV9tZWRpdW06ICdTVk4tUG9wcGlucy1NZWRpdW0udHRmJyxcbiAgdXJpX3NlbWlib2xkOiAnU1ZOLVBvcHBpbnMtU2VtaUJvbGQudHRmJyxcbn07XG5cbmV4cG9ydCBjb25zdCB3ZWlnaHRzID0ge1xuICB1cmlfcmVndWxhcjogJzQwMCcsXG4gIHVyaV9tZWRpdW06ICc1MDAnLFxuICB1cmlfc2VtaWJvbGQ6ICc2MDAnLFxuICB1cmlfYm9sZDogJzcwMCcsXG59O1xuXG5leHBvcnQgY29uc3QgY29uZmlnSGVhZGluZzogSUxpYnNVaUNvbmZpZ0ZvbnRIZWFkaW5nID0ge1xuICBoMXI6IHtcbiAgICAnZm9udC1zaXplJzogJzMwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc0MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICc0MnB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygzMHB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDFtOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICczMHB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNTAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnNDJweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMzBweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGgxczoge1xuICAgICdmb250LXNpemUnOiAnMzBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzYwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzQycHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDMwcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoMWI6IHtcbiAgICAnZm9udC1zaXplJzogJzMwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc3MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICc0MnB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygzMHB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDJyOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcyMHB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNDAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjhweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMjBweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGgybToge1xuICAgICdmb250LXNpemUnOiAnMjBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzUwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzI4cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDIwcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoMnM6IHtcbiAgICAnZm9udC1zaXplJzogJzIwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc2MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyOHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygyMHB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDJiOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcyMHB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNDAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjhweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMjBweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGgzcjoge1xuICAgICdmb250LXNpemUnOiAnMTZweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzQwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzI0cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDE2cHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoM206IHtcbiAgICAnZm9udC1zaXplJzogJzE2cHgnLFxuICAgICdmb250LXdlaWdodCc6ICc1MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyNHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxNnB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDNzOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxNnB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNjAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjRweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTZweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGgzYjoge1xuICAgICdmb250LXNpemUnOiAnMTZweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzcwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzI0cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDE2cHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNHI6IHtcbiAgICAnZm9udC1zaXplJzogJzEzcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc0MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyMHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxM3B4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDRtOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxM3B4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNTAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjBweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTNweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg0czoge1xuICAgICdmb250LXNpemUnOiAnMTNweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzYwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzIwcHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDEzcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNGI6IHtcbiAgICAnZm9udC1zaXplJzogJzEzcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc3MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyMHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxM3B4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDVyOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMnB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNDAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMThweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTJweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg1bToge1xuICAgICdmb250LXNpemUnOiAnMTJweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzUwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE4cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDEycHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNXM6IHtcbiAgICAnZm9udC1zaXplJzogJzEycHgnLFxuICAgICdmb250LXdlaWdodCc6ICc2MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxOHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMnB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDViOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMnB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNzAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMThweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTJweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg2cjoge1xuICAgICdmb250LXNpemUnOiAnMTFweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzQwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE2cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDExcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNm06IHtcbiAgICAnZm9udC1zaXplJzogJzExcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc1MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxNnB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMXB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDZzOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMXB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNjAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMTZweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTFweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg2Yjoge1xuICAgICdmb250LXNpemUnOiAnMTFweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzcwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE2cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDExcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoN3I6IHtcbiAgICAnZm9udC1zaXplJzogJzEwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc0MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxNHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMXB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDdtOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMHB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNTAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMTRweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTFweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg3czoge1xuICAgICdmb250LXNpemUnOiAnMTBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzYwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE0cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDExcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoN2I6IHtcbiAgICAnZm9udC1zaXplJzogJzEwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc3MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxNHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMXB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBzaXplQnV0dG9uQ29uZmlnID0gKCkgPT4gKHtcbiAgaWNvbjoge1xuICAgIGxhcmdlOiAnMjBweCcsXG4gICAgbWVkaXVtOiAnMTZweCcsXG4gICAgc21hbGw6ICcxNnB4JyxcbiAgICBzbWFsbGVyOiAnMTZweCcsXG4gIH0sXG4gIGxhcmdlOiB7XG4gICAgZm9udF9zaXplOiAnMTZweCcsXG4gICAgbGluZV9oZWlnaHQ6ICcyNHB4JyxcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZm9udF9zaXplOiAnMTJweCcsXG4gICAgbGluZV9oZWlnaHQ6ICcxOHB4JyxcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBmb250X3NpemU6ICcxMnB4JyxcbiAgICBsaW5lX2hlaWdodDogJzE4cHgnLFxuICB9LFxuICBzbWFsbGVyOiB7XG4gICAgZm9udF9zaXplOiAnMTFweCcsXG4gICAgbGluZV9oZWlnaHQ6ICcxNnB4JyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgY29uZmlnQnV0dG9uQ29sb3IgPSAocm9vdENvbG9ySW5UaGVtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiB7XG4gICAgJ2J1dHRvbi1wcmltYXJ5Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYmFja2dyb3VuZF9ob3ZlcjogMjAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJhY2tncm91bmRfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogMjAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6IHJvb3RDb2xvckluVGhlbWUsXG4gICAgfSxcbiAgICAnYnV0dG9uLXByaW1hcnktcmV2ZXJ0Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcbiAgICAgICAgYmFja2dyb3VuZF9ob3ZlcjogMjAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJhY2tncm91bmRfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogMjAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6IHJvb3RDb2xvckluVGhlbWUsXG4gICAgfSxcbiAgICAnYnV0dG9uLXNlY29uZGFyeSc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAwLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9hY3RpdmU6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiA5MCxcbiAgICAgICAgYm9yZGVyX2hvdmVyOiA5MCxcbiAgICAgICAgYm9yZGVyX2FjdGl2ZTogOTAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi10aGlyZCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnIzZBNzM4MycsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogJyNGOEY5RkEnLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9hY3RpdmU6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogOTAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDkwLFxuICAgICAgICBib3JkZXJfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgfSxcbiAgICAgIHJvb3RDb2xvcjogcm9vdENvbG9ySW5UaGVtZSxcbiAgICB9LFxuICAgICdidXR0b24tc2Vjb25kYXJ5LXJlZCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAwLFxuICAgICAgICB0ZXh0X2hvdmVyOiAtMjAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9ob3ZlcjogOTAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogOTAsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogOTAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDkwLFxuICAgICAgICBib3JkZXJfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgfSxcbiAgICAgIHJvb3RDb2xvcjogJyNFRTJENDEnLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1vdXRsaW5lJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6ICcjNkE3MzgzJyxcbiAgICAgICAgdGV4dF9ob3ZlcjogMjAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogJyNlNmU3ZWEnLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0U2RTdFQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1kYW5nZXItaGlnaCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogLTIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnI2VlMmQ0MScsXG4gICAgfSxcbiAgICAnYnV0dG9uLWRhbmdlci1sb3cnOiB7XG4gICAgICBjb25maWdTdGVwQ29sb3I6IHtcbiAgICAgICAgdGV4dDogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9ob3ZlcjogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9hY3RpdmU6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiAyMCxcbiAgICAgICAgYmFja2dyb3VuZF9hY3RpdmU6IC0yMCxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgYm9yZGVyX2hvdmVyOiAyMCxcbiAgICAgICAgYm9yZGVyX2FjdGl2ZTogLTIwLFxuICAgICAgICBib3JkZXJfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgfSxcbiAgICAgIHJvb3RDb2xvcjogJyNmZmE2MjEnLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1ncmVlbic6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogLTIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzAwZDE2ZCcsXG4gICAgfSxcbiAgICAnYnV0dG9uLXZpb2xldCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogLTIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzcyMzllYScsXG4gICAgfSxcbiAgICAnYnV0dG9uLW91dGxpbmUtZ3JlZW4nOiB7XG4gICAgICBjb25maWdTdGVwQ29sb3I6IHtcbiAgICAgICAgdGV4dDogJyM2QTczODMnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAnI2U2ZTdlYScsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogMjAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjRTZFN0VBJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjMDBkMTZkJyxcbiAgICB9LFxuICAgICdidXR0b24tc2Vjb25kYXJ5LWdyZWVuJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogOTAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzAwZDE2ZCcsXG4gICAgfSxcbiAgICAnYnV0dG9uLW91dGxpbmUtc2Vjb25kYXJ5Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogOTAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0U2RTdFQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1vdXRsaW5lLWhvdmVyLWRhbmdlcic6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnIzZBNzM4MycsXG4gICAgICAgIHRleHRfaG92ZXI6IDAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogJyNlNmU3ZWEnLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjZTZlN2VhJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjZjE1NzY3JyxcbiAgICB9LFxuICAgICdidXR0b24tdGhpcmQtaG92ZXItZGFuZ2VyJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6ICcjNkE3MzgzJyxcbiAgICAgICAgdGV4dF9ob3ZlcjogMjAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnI0Y4RjlGQScsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogOTAsXG4gICAgICAgIGJhY2tncm91bmRfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgICBib3JkZXI6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyX2hvdmVyOiA5MCxcbiAgICAgICAgYm9yZGVyX2FjdGl2ZTogOTAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnI0VFMkQ0MScsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25maWdMaW5rQnV0dG9uID0gKHJvb3RDb2xvckluVGhlbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4ge1xuICAgICdidXR0b24tbGluay1wcmltYXJ5Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6IHJvb3RDb2xvckluVGhlbWUsXG4gICAgfSxcbiAgICAnYnV0dG9uLWxpbmstdGhpcmQnOiB7XG4gICAgICBjb25maWdTdGVwQ29sb3I6IHtcbiAgICAgICAgdGV4dDogJyM2QTczODMnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1saW5rLWRhbmdlci1oaWdoJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjZWUyZDQxJyxcbiAgICB9LFxuICAgICdidXR0b24tbGluay1kYW5nZXItbG93Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjZmZhNjIxJyxcbiAgICB9LFxuICAgICdidXR0b24tbGluay1ncmVlbic6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAwLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzAwZDE2ZCcsXG4gICAgfSxcbiAgICAnYnV0dG9uLWxpbmstdmlvbGV0Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjNzIzOWVhJyxcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbmZpZ0J1dHRvblN0YXR1cyA9ICgpOiBJTGlic1VpQ29uZmlnQnV0dG9uU3RhdHVzID0+IHtcbiAgcmV0dXJuIHtcbiAgICBibHVlOiB7XG4gICAgICBjb2xvcjogJyMyMjZGRjUnLFxuICAgICAgYmFja2dyb3VuZDogJyNFOUYxRkUnLFxuICAgIH0sXG4gICAgZ3JlZW46IHtcbiAgICAgIGNvbG9yOiAnIzAwRDE2RCcsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0U2RkFGMCcsXG4gICAgfSxcbiAgICByZWQ6IHtcbiAgICAgIGNvbG9yOiAnI0VFMkQ0MScsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0ZERUFFQycsXG4gICAgfSxcbiAgICBvcmFuZ2U6IHtcbiAgICAgIGNvbG9yOiAnI0YwNTgwMCcsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0ZFRUVFNicsXG4gICAgfSxcbiAgICB5ZWxsb3c6IHtcbiAgICAgIGNvbG9yOiAnI0ZGQTYyMScsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0ZGRjZFOScsXG4gICAgfSxcbiAgICBjeWFuOiB7XG4gICAgICBjb2xvcjogJyMwNEM4QzgnLFxuICAgICAgYmFja2dyb3VuZDogJyNFNkZBRkEnLFxuICAgIH0sXG4gICAgcHVycGxlOiB7XG4gICAgICBjb2xvcjogJyM3MjM5RUEnLFxuICAgICAgYmFja2dyb3VuZDogJyNGMUVCRkQnLFxuICAgIH0sXG4gICAgYnJvd246IHtcbiAgICAgIGNvbG9yOiAnIzY2MzI1OScsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0YwRUJFRScsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25maWdCdXR0b25UYWIgPSAoKTogSUxpYnNVaUNvbmZpZ0J1dHRvblRhYiA9PiB7XG4gIHJldHVybiB7XG4gICAgYmx1ZToge1xuICAgICAgY29sb3I6ICcjMjI2RkY1JyxcbiAgICAgIGJhY2tncm91bmQ6ICcjRjRGOEZGJyxcbiAgICAgIGJhY2tncm91bmRfYmFkZ2U6ICcjRTlGMUZFJyxcbiAgICB9LFxuICAgIGdyZWVuOiB7XG4gICAgICBjb2xvcjogJyMwMEQxNkQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGMkZDRjcnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNFNkZBRjAnLFxuICAgIH0sXG4gICAgcmVkOiB7XG4gICAgICBjb2xvcjogJyNFRTJENDEnLFxuICAgICAgYmFja2dyb3VuZDogJyNGREVBRUMnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGRUU5RjEnLFxuICAgIH0sXG4gICAgb3JhbmdlOiB7XG4gICAgICBjb2xvcjogJyNGMDU4MDAnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRUY3RjInLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGRUVFRTYnLFxuICAgIH0sXG4gICAgeWVsbG93OiB7XG4gICAgICBjb2xvcjogJyNGRkE2MjEnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZCRjQnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGRkY2RTknLFxuICAgIH0sXG4gICAgY3lhbjoge1xuICAgICAgY29sb3I6ICcjMDRDOEM4JyxcbiAgICAgIGJhY2tncm91bmQ6ICcjRjJGQ0ZDJyxcbiAgICAgIGJhY2tncm91bmRfYmFkZ2U6ICcjRTZGQUZBJyxcbiAgICB9LFxuICAgIHB1cnBsZToge1xuICAgICAgY29sb3I6ICcjNzIzOUVBJyxcbiAgICAgIGJhY2tncm91bmQ6ICcjRjhGNUZFJyxcbiAgICAgIGJhY2tncm91bmRfYmFkZ2U6ICcjRjFFQkZEJyxcbiAgICB9LFxuICAgIGJyb3duOiB7XG4gICAgICBjb2xvcjogJyM2NjMyNTknLFxuICAgICAgYmFja2dyb3VuZDogJyNGN0Y1RjcnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGMEVCRUUnLFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc3R5bGVCdXR0b25UYWIgPSAodHlwZTogc3RyaW5nLCBjb25maWc6IElDb2xvckJ1dHRvblRhYikgPT4ge1xuICBjb25zdCBiYWNrZ3JvdW5kID0gY29uZmlnLmJhY2tncm91bmQgfHwgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKGNvbmZpZy5jb2xvciwgOTUpPy5saWdodDtcbiAgY29uc3QgYmFja2dyb3VuZEJhZGdlID0gY29uZmlnLmJhY2tncm91bmRfYmFkZ2UgfHwgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKGNvbmZpZy5jb2xvciwgOTApPy5saWdodDtcblxuICByZXR1cm4gYC5saWJzLXVpLWJ1dHRvbi10YWItJHt0eXBlfVthY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2JhY2tncm91bmR9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubGlicy11aS1idXR0b24tdGFiLSR7dHlwZX1bYWN0aXZlPVwidHJ1ZVwiXSA+IC5saWJzLXVpLWJ1dHRvbi10YWItbGFiZWwge1xuICAgIGNvbG9yOiAke2NvbmZpZy5jb2xvcn0gIWltcG9ydGFudDtcbiAgfVxuXG4gIC5saWJzLXVpLWJ1dHRvbi10YWItJHt0eXBlfVthY3RpdmU9XCJ0cnVlXCJdID4gLmxpYnMtdWktYnV0dG9uLXRhYi1iYWRnZSA+IC5saWJzLXVpLWJ1dHRvbi10YWItYmFkZ2UtY2lyY2xlIHtcbiAgICBjb2xvcjogJHtjb25maWcuY29sb3J9ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtiYWNrZ3JvdW5kQmFkZ2V9ICFpbXBvcnRhbnQ7XG4gIH1gO1xufTtcbiJdfQ==
621
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXByb2plY3QtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvY29uZmlnLXByb2plY3Qvc3JjL2NvbmZpZy1wcm9qZWN0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxhQUFhO0lBQ25CLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsVUFBVSxFQUFFLHdCQUF3QjtJQUNwQyxZQUFZLEVBQUUsMEJBQTBCO0NBQ3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQTRCO0lBQzlDLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFlBQVksRUFBRSxLQUFLO0lBQ25CLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTZCO0lBQ3JELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLGdCQUFnQixFQUFFLDBCQUEwQjtLQUM3QztDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUE0QixFQUFFLENBQUMsQ0FBQztJQUM5RCxJ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QyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUV4RyxPQUFPLHVCQUF1QixJQUFJO3dCQUNaLFVBQVU7Ozt3QkFHVixJQUFJO2FBQ2YsTUFBTSxDQUFDLEtBQUs7Ozt3QkFHRCxJQUFJO2FBQ2YsTUFBTSxDQUFDLEtBQUs7d0JBQ0QsZUFBZTtJQUNuQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgSUNvbG9yQnV0dG9uVGFiLCBJTGlic1VpQ29uZmlnQnV0dG9uU2l6ZSwgSUxpYnNVaUNvbmZpZ0J1dHRvblN0YXR1cywgSUxpYnNVaUNvbmZpZ0J1dHRvblRhYiwgSUxpYnNVaUNvbmZpZ0ZvbnRIZWFkaW5nLCBJTGlic1VpQ29uZmlnRm9udFdlaWdodCB9IGZyb20gJy4vY29uZmlnLXByb2plY3QuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IGZvbnRDb25maWcgPSB7XG4gIG5hbWU6ICdTVk4tUG9wcGlucycsXG4gIHVyaV9yZWd1bGFyOiAnU1ZOLVBvcHBpbnMtUmVndWxhci50dGYnLFxuICB1cmlfbWVkaXVtOiAnU1ZOLVBvcHBpbnMtTWVkaXVtLnR0ZicsXG4gIHVyaV9zZW1pYm9sZDogJ1NWTi1Qb3BwaW5zLVNlbWlCb2xkLnR0ZicsXG59O1xuXG5leHBvcnQgY29uc3Qgd2VpZ2h0czogSUxpYnNVaUNvbmZpZ0ZvbnRXZWlnaHQgPSB7XG4gIHVyaV9yZWd1bGFyOiAnNDAwJyxcbiAgdXJpX21lZGl1bTogJzUwMCcsXG4gIHVyaV9zZW1pYm9sZDogJzYwMCcsXG4gIHVyaV9ib2xkOiAnNzAwJyxcbn07XG5cbmV4cG9ydCBjb25zdCBjb25maWdIZWFkaW5nOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmcgPSB7XG4gIGgxcjoge1xuICAgICdmb250LXNpemUnOiAnMzBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzQwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzQycHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDMwcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoMW06IHtcbiAgICAnZm9udC1zaXplJzogJzMwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc1MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICc0MnB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygzMHB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDFzOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICczMHB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNjAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnNDJweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMzBweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGgxYjoge1xuICAgICdmb250LXNpemUnOiAnMzBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzcwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzQycHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDMwcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoMnI6IHtcbiAgICAnZm9udC1zaXplJzogJzIwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc0MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyOHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygyMHB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDJtOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcyMHB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNTAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjhweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMjBweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGgyczoge1xuICAgICdmb250LXNpemUnOiAnMjBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzYwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzI4cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDIwcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoMmI6IHtcbiAgICAnZm9udC1zaXplJzogJzIwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc0MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyOHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygyMHB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDNyOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxNnB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNDAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjRweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTZweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGgzbToge1xuICAgICdmb250LXNpemUnOiAnMTZweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzUwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzI0cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDE2cHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoM3M6IHtcbiAgICAnZm9udC1zaXplJzogJzE2cHgnLFxuICAgICdmb250LXdlaWdodCc6ICc2MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyNHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxNnB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDNiOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxNnB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNzAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjRweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTZweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg0cjoge1xuICAgICdmb250LXNpemUnOiAnMTNweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzQwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzIwcHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDEzcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNG06IHtcbiAgICAnZm9udC1zaXplJzogJzEzcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc1MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcyMHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxM3B4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDRzOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxM3B4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNjAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMjBweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTNweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg0Yjoge1xuICAgICdmb250LXNpemUnOiAnMTNweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzcwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzIwcHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDEzcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNXI6IHtcbiAgICAnZm9udC1zaXplJzogJzEycHgnLFxuICAgICdmb250LXdlaWdodCc6ICc0MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxOHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMnB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDVtOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMnB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNTAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMThweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTJweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg1czoge1xuICAgICdmb250LXNpemUnOiAnMTJweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzYwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE4cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDEycHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNWI6IHtcbiAgICAnZm9udC1zaXplJzogJzEycHgnLFxuICAgICdmb250LXdlaWdodCc6ICc3MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxOHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMnB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDZyOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMXB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNDAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMTZweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTFweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg2bToge1xuICAgICdmb250LXNpemUnOiAnMTFweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzUwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE2cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDExcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoNnM6IHtcbiAgICAnZm9udC1zaXplJzogJzExcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc2MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxNnB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMXB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDZiOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMXB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNzAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMTZweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTFweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg3cjoge1xuICAgICdmb250LXNpemUnOiAnMTBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzQwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE0cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDExcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxuICBoN206IHtcbiAgICAnZm9udC1zaXplJzogJzEwcHgnLFxuICAgICdmb250LXdlaWdodCc6ICc1MDAnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxNHB4JyxcbiAgICAnbGV0dGVyLXNwYWNpbmcnOiAnY2FsYygxMXB4ICogKDAuNSAvIDEwMCkpJyxcbiAgfSxcbiAgaDdzOiB7XG4gICAgJ2ZvbnQtc2l6ZSc6ICcxMHB4JyxcbiAgICAnZm9udC13ZWlnaHQnOiAnNjAwJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMTRweCcsXG4gICAgJ2xldHRlci1zcGFjaW5nJzogJ2NhbGMoMTFweCAqICgwLjUgLyAxMDApKScsXG4gIH0sXG4gIGg3Yjoge1xuICAgICdmb250LXNpemUnOiAnMTBweCcsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogJzcwMCcsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJzE0cHgnLFxuICAgICdsZXR0ZXItc3BhY2luZyc6ICdjYWxjKDExcHggKiAoMC41IC8gMTAwKSknLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHNpemVCdXR0b25Db25maWcgPSAoKTogSUxpYnNVaUNvbmZpZ0J1dHRvblNpemUgPT4gKHtcbiAgaWNvbjoge1xuICAgIGxhcmdlOiAnMjBweCcsXG4gICAgbWVkaXVtOiAnMTZweCcsXG4gICAgc21hbGw6ICcxNnB4JyxcbiAgICBzbWFsbGVyOiAnMTZweCcsXG4gIH0sXG4gIGxhcmdlOiB7XG4gICAgZm9udF9zaXplOiAnMTZweCcsXG4gICAgbGluZV9oZWlnaHQ6ICcyNHB4JyxcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZm9udF9zaXplOiAnMTJweCcsXG4gICAgbGluZV9oZWlnaHQ6ICcxOHB4JyxcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBmb250X3NpemU6ICcxMnB4JyxcbiAgICBsaW5lX2hlaWdodDogJzE4cHgnLFxuICB9LFxuICBzbWFsbGVyOiB7XG4gICAgZm9udF9zaXplOiAnMTFweCcsXG4gICAgbGluZV9oZWlnaHQ6ICcxNnB4JyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgY29uZmlnQnV0dG9uQ29sb3IgPSAocm9vdENvbG9ySW5UaGVtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiB7XG4gICAgJ2J1dHRvbi1wcmltYXJ5Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYmFja2dyb3VuZF9ob3ZlcjogMjAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJhY2tncm91bmRfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogMjAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6IHJvb3RDb2xvckluVGhlbWUsXG4gICAgfSxcbiAgICAnYnV0dG9uLXByaW1hcnktcmV2ZXJ0Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcbiAgICAgICAgYmFja2dyb3VuZF9ob3ZlcjogMjAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJhY2tncm91bmRfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogMjAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6IHJvb3RDb2xvckluVGhlbWUsXG4gICAgfSxcbiAgICAnYnV0dG9uLXNlY29uZGFyeSc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAwLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9hY3RpdmU6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiA5MCxcbiAgICAgICAgYm9yZGVyX2hvdmVyOiA5MCxcbiAgICAgICAgYm9yZGVyX2FjdGl2ZTogOTAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi10aGlyZCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnIzZBNzM4MycsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogJyNGOEY5RkEnLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9hY3RpdmU6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogOTAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDkwLFxuICAgICAgICBib3JkZXJfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgfSxcbiAgICAgIHJvb3RDb2xvcjogcm9vdENvbG9ySW5UaGVtZSxcbiAgICB9LFxuICAgICdidXR0b24tc2Vjb25kYXJ5LXJlZCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAwLFxuICAgICAgICB0ZXh0X2hvdmVyOiAtMjAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9ob3ZlcjogOTAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiA5MCxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogOTAsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogOTAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDkwLFxuICAgICAgICBib3JkZXJfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgfSxcbiAgICAgIHJvb3RDb2xvcjogJyNFRTJENDEnLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1vdXRsaW5lJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6ICcjNkE3MzgzJyxcbiAgICAgICAgdGV4dF9ob3ZlcjogMjAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogJyNlNmU3ZWEnLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0U2RTdFQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1kYW5nZXItaGlnaCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogLTIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnI2VlMmQ0MScsXG4gICAgfSxcbiAgICAnYnV0dG9uLWRhbmdlci1sb3cnOiB7XG4gICAgICBjb25maWdTdGVwQ29sb3I6IHtcbiAgICAgICAgdGV4dDogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9ob3ZlcjogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9hY3RpdmU6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiAyMCxcbiAgICAgICAgYmFja2dyb3VuZF9hY3RpdmU6IC0yMCxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgYm9yZGVyX2hvdmVyOiAyMCxcbiAgICAgICAgYm9yZGVyX2FjdGl2ZTogLTIwLFxuICAgICAgICBib3JkZXJfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgfSxcbiAgICAgIHJvb3RDb2xvcjogJyNmZmE2MjEnLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1ncmVlbic6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogLTIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzAwZDE2ZCcsXG4gICAgfSxcbiAgICAnYnV0dG9uLXZpb2xldCc6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogLTIwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDIwLFxuICAgICAgICBib3JkZXJfYWN0aXZlOiAtMjAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzcyMzllYScsXG4gICAgfSxcbiAgICAnYnV0dG9uLW91dGxpbmUtZ3JlZW4nOiB7XG4gICAgICBjb25maWdTdGVwQ29sb3I6IHtcbiAgICAgICAgdGV4dDogJyM2QTczODMnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAnI2U2ZTdlYScsXG4gICAgICAgIGJvcmRlcl9ob3ZlcjogMjAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjRTZFN0VBJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjMDBkMTZkJyxcbiAgICB9LFxuICAgICdidXR0b24tc2Vjb25kYXJ5LWdyZWVuJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogOTAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzAwZDE2ZCcsXG4gICAgfSxcbiAgICAnYnV0dG9uLW91dGxpbmUtc2Vjb25kYXJ5Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6ICd3aGl0ZScsXG4gICAgICAgIHRleHRfYWN0aXZlOiAnd2hpdGUnLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgICAgYmFja2dyb3VuZDogOTAsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDAsXG4gICAgICAgIGJhY2tncm91bmRfYWN0aXZlOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IDAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0U2RTdFQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1vdXRsaW5lLWhvdmVyLWRhbmdlcic6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAnIzZBNzM4MycsXG4gICAgICAgIHRleHRfaG92ZXI6IDAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2hvdmVyOiAnd2hpdGUnLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogJ3doaXRlJyxcbiAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICAgIGJvcmRlcjogJyNlNmU3ZWEnLFxuICAgICAgICBib3JkZXJfaG92ZXI6IDAsXG4gICAgICAgIGJvcmRlcl9hY3RpdmU6IC0yMCxcbiAgICAgICAgYm9yZGVyX2Rpc2FibGU6ICcjZTZlN2VhJyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjZjE1NzY3JyxcbiAgICB9LFxuICAgICdidXR0b24tdGhpcmQtaG92ZXItZGFuZ2VyJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6ICcjNkE3MzgzJyxcbiAgICAgICAgdGV4dF9ob3ZlcjogMjAsXG4gICAgICAgIHRleHRfYWN0aXZlOiAtMjAsXG4gICAgICAgIHRleHRfZGlzYWJsZTogJyNDREQwRDYnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnI0Y4RjlGQScsXG4gICAgICAgIGJhY2tncm91bmRfaG92ZXI6IDkwLFxuICAgICAgICBiYWNrZ3JvdW5kX2FjdGl2ZTogOTAsXG4gICAgICAgIGJhY2tncm91bmRfZGlzYWJsZTogJyNGOEY5RkEnLFxuICAgICAgICBib3JkZXI6ICcjRjhGOUZBJyxcbiAgICAgICAgYm9yZGVyX2hvdmVyOiA5MCxcbiAgICAgICAgYm9yZGVyX2FjdGl2ZTogOTAsXG4gICAgICAgIGJvcmRlcl9kaXNhYmxlOiAnI0Y4RjlGQScsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnI0VFMkQ0MScsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25maWdMaW5rQnV0dG9uID0gKHJvb3RDb2xvckluVGhlbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4ge1xuICAgICdidXR0b24tbGluay1wcmltYXJ5Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6IHJvb3RDb2xvckluVGhlbWUsXG4gICAgfSxcbiAgICAnYnV0dG9uLWxpbmstdGhpcmQnOiB7XG4gICAgICBjb25maWdTdGVwQ29sb3I6IHtcbiAgICAgICAgdGV4dDogJyM2QTczODMnLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiByb290Q29sb3JJblRoZW1lLFxuICAgIH0sXG4gICAgJ2J1dHRvbi1saW5rLWRhbmdlci1oaWdoJzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjZWUyZDQxJyxcbiAgICB9LFxuICAgICdidXR0b24tbGluay1kYW5nZXItbG93Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjZmZhNjIxJyxcbiAgICB9LFxuICAgICdidXR0b24tbGluay1ncmVlbic6IHtcbiAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICB0ZXh0OiAwLFxuICAgICAgICB0ZXh0X2hvdmVyOiAyMCxcbiAgICAgICAgdGV4dF9hY3RpdmU6IC0yMCxcbiAgICAgICAgdGV4dF9kaXNhYmxlOiAnI0NERDBENicsXG4gICAgICB9LFxuICAgICAgcm9vdENvbG9yOiAnIzAwZDE2ZCcsXG4gICAgfSxcbiAgICAnYnV0dG9uLWxpbmstdmlvbGV0Jzoge1xuICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgIHRleHQ6IDAsXG4gICAgICAgIHRleHRfaG92ZXI6IDIwLFxuICAgICAgICB0ZXh0X2FjdGl2ZTogLTIwLFxuICAgICAgICB0ZXh0X2Rpc2FibGU6ICcjQ0REMEQ2JyxcbiAgICAgIH0sXG4gICAgICByb290Q29sb3I6ICcjNzIzOWVhJyxcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbmZpZ0J1dHRvblN0YXR1cyA9ICgpOiBJTGlic1VpQ29uZmlnQnV0dG9uU3RhdHVzID0+IHtcbiAgcmV0dXJuIHtcbiAgICBibHVlOiB7XG4gICAgICBjb2xvcjogJyMyMjZGRjUnLFxuICAgICAgYmFja2dyb3VuZDogJyNFOUYxRkUnLFxuICAgIH0sXG4gICAgZ3JlZW46IHtcbiAgICAgIGNvbG9yOiAnIzAwRDE2RCcsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0U2RkFGMCcsXG4gICAgfSxcbiAgICByZWQ6IHtcbiAgICAgIGNvbG9yOiAnI0VFMkQ0MScsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0ZERUFFQycsXG4gICAgfSxcbiAgICBvcmFuZ2U6IHtcbiAgICAgIGNvbG9yOiAnI0YwNTgwMCcsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0ZFRUVFNicsXG4gICAgfSxcbiAgICB5ZWxsb3c6IHtcbiAgICAgIGNvbG9yOiAnI0ZGQTYyMScsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0ZGRjZFOScsXG4gICAgfSxcbiAgICBjeWFuOiB7XG4gICAgICBjb2xvcjogJyMwNEM4QzgnLFxuICAgICAgYmFja2dyb3VuZDogJyNFNkZBRkEnLFxuICAgIH0sXG4gICAgcHVycGxlOiB7XG4gICAgICBjb2xvcjogJyM3MjM5RUEnLFxuICAgICAgYmFja2dyb3VuZDogJyNGMUVCRkQnLFxuICAgIH0sXG4gICAgYnJvd246IHtcbiAgICAgIGNvbG9yOiAnIzY2MzI1OScsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0YwRUJFRScsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25maWdCdXR0b25UYWIgPSAoKTogSUxpYnNVaUNvbmZpZ0J1dHRvblRhYiA9PiB7XG4gIHJldHVybiB7XG4gICAgYmx1ZToge1xuICAgICAgY29sb3I6ICcjMjI2RkY1JyxcbiAgICAgIGJhY2tncm91bmQ6ICcjRjRGOEZGJyxcbiAgICAgIGJhY2tncm91bmRfYmFkZ2U6ICcjRTlGMUZFJyxcbiAgICB9LFxuICAgIGdyZWVuOiB7XG4gICAgICBjb2xvcjogJyMwMEQxNkQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGMkZDRjcnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNFNkZBRjAnLFxuICAgIH0sXG4gICAgcmVkOiB7XG4gICAgICBjb2xvcjogJyNFRTJENDEnLFxuICAgICAgYmFja2dyb3VuZDogJyNGREVBRUMnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGRUU5RjEnLFxuICAgIH0sXG4gICAgb3JhbmdlOiB7XG4gICAgICBjb2xvcjogJyNGMDU4MDAnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRUY3RjInLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGRUVFRTYnLFxuICAgIH0sXG4gICAgeWVsbG93OiB7XG4gICAgICBjb2xvcjogJyNGRkE2MjEnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZCRjQnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGRkY2RTknLFxuICAgIH0sXG4gICAgY3lhbjoge1xuICAgICAgY29sb3I6ICcjMDRDOEM4JyxcbiAgICAgIGJhY2tncm91bmQ6ICcjRjJGQ0ZDJyxcbiAgICAgIGJhY2tncm91bmRfYmFkZ2U6ICcjRTZGQUZBJyxcbiAgICB9LFxuICAgIHB1cnBsZToge1xuICAgICAgY29sb3I6ICcjNzIzOUVBJyxcbiAgICAgIGJhY2tncm91bmQ6ICcjRjhGNUZFJyxcbiAgICAgIGJhY2tncm91bmRfYmFkZ2U6ICcjRjFFQkZEJyxcbiAgICB9LFxuICAgIGJyb3duOiB7XG4gICAgICBjb2xvcjogJyM2NjMyNTknLFxuICAgICAgYmFja2dyb3VuZDogJyNGN0Y1RjcnLFxuICAgICAgYmFja2dyb3VuZF9iYWRnZTogJyNGMEVCRUUnLFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc3R5bGVCdXR0b25UYWIgPSAodHlwZTogc3RyaW5nLCBjb25maWc6IElDb2xvckJ1dHRvblRhYikgPT4ge1xuICBjb25zdCBiYWNrZ3JvdW5kID0gY29uZmlnLmJhY2tncm91bmQgfHwgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKGNvbmZpZy5jb2xvciwgOTUpPy5saWdodDtcbiAgY29uc3QgYmFja2dyb3VuZEJhZGdlID0gY29uZmlnLmJhY2tncm91bmRfYmFkZ2UgfHwgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKGNvbmZpZy5jb2xvciwgOTApPy5saWdodDtcblxuICByZXR1cm4gYC5saWJzLXVpLWJ1dHRvbi10YWItJHt0eXBlfVthY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2JhY2tncm91bmR9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubGlicy11aS1idXR0b24tdGFiLSR7dHlwZX1bYWN0aXZlPVwidHJ1ZVwiXSA+IC5saWJzLXVpLWJ1dHRvbi10YWItbGFiZWwge1xuICAgIGNvbG9yOiAke2NvbmZpZy5jb2xvcn0gIWltcG9ydGFudDtcbiAgfVxuXG4gIC5saWJzLXVpLWJ1dHRvbi10YWItJHt0eXBlfVthY3RpdmU9XCJ0cnVlXCJdID4gLmxpYnMtdWktYnV0dG9uLXRhYi1iYWRnZSA+IC5saWJzLXVpLWJ1dHRvbi10YWItYmFkZ2UtY2lyY2xlIHtcbiAgICBjb2xvcjogJHtjb25maWcuY29sb3J9ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtiYWNrZ3JvdW5kQmFkZ2V9ICFpbXBvcnRhbnQ7XG4gIH1gO1xufTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXByb2plY3QuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9jb25maWctcHJvamVjdC9zcmMvY29uZmlnLXByb2plY3QuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElMaWJzVWlDb25maWdGb250RmFtaWx5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB1cmlfcmVndWxhcjogc3RyaW5nO1xuICB1cmlfbWVkaXVtOiBzdHJpbmc7XG4gIHVyaV9zZW1pYm9sZDogc3RyaW5nO1xuICB1cmlfYm9sZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmcge1xuICBoMXI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoMW06IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoMXM6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoMWI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoMnI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoMm06IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoMnM6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoMmI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoM3I6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoM206IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoM3M6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoM2I6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNHI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNG06IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNHM6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNGI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNXI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNW06IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNXM6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNWI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNnI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNm06IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNnM6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoNmI6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoN3I6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoN206IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoN3M6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xuICBoN2I6IElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaWJzVWlDb25maWdGb250SGVhZGluZ1N0eWxlIHtcbiAgJ2ZvbnQtc2l6ZSc6IHN0cmluZztcbiAgJ2ZvbnQtd2VpZ2h0Jzogc3RyaW5nO1xuICAnbGluZS1oZWlnaHQnOiBzdHJpbmc7XG4gICdsZXR0ZXItc3BhY2luZyc6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlic1VpQ29uZmlnQnV0dG9uU3RhdHVzIHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIGNvbG9yOiBzdHJpbmc7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlic1VpQ29uZmlnQnV0dG9uVGFiIHtcbiAgW2tleTogc3RyaW5nXTogSUNvbG9yQnV0dG9uVGFiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2xvckJ1dHRvblRhYiB7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIGJhY2tncm91bmRfYmFkZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbG9yQnV0dG9uIHtcbiAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgdGV4dDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHRleHRfaG92ZXI6IHN0cmluZyB8IG51bWJlcjtcbiAgICB0ZXh0X2FjdGl2ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHRleHRfZGlzYWJsZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgYmFja2dyb3VuZF9ob3Zlcj86IHN0cmluZyB8IG51bWJlcjtcbiAgICBiYWNrZ3JvdW5kX2FjdGl2ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgICBiYWNrZ3JvdW5kX2Rpc2FibGU/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgYm9yZGVyPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGJvcmRlcl9ob3Zlcj86IHN0cmluZyB8IG51bWJlcjtcbiAgICBib3JkZXJfYWN0aXZlPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGJvcmRlcl9kaXNhYmxlPzogc3RyaW5nIHwgbnVtYmVyO1xuICB9O1xuICByb290Q29sb3I6IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXByb2plY3QuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9jb25maWctcHJvamVjdC9zcmMvY29uZmlnLXByb2plY3QuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElMaWJzVWlDb25maWdGb250RmFtaWx5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB1cmlfcmVndWxhcjogc3RyaW5nO1xuICB1cmlfbWVkaXVtOiBzdHJpbmc7XG4gIHVyaV9zZW1pYm9sZDogc3RyaW5nO1xuICB1cmlfYm9sZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlic1VpQ29uZmlnRm9udFdlaWdodCB7XG4gIHVyaV9yZWd1bGFyOiBzdHJpbmc7XG4gIHVyaV9tZWRpdW06IHN0cmluZztcbiAgdXJpX3NlbWlib2xkOiBzdHJpbmc7XG4gIHVyaV9ib2xkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpYnNVaUNvbmZpZ0ZvbnRIZWFkaW5nIHtcbiAgaDFyOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDFtOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDFzOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDFiOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDJyOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDJtOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDJzOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDJiOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDNyOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDNtOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDNzOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDNiOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDRyOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDRtOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDRzOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDRiOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDVyOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDVtOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDVzOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDViOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDZyOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDZtOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDZzOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDZiOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDdyOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDdtOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDdzOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbiAgaDdiOiBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlic1VpQ29uZmlnRm9udEhlYWRpbmdTdHlsZSB7XG4gICdmb250LXNpemUnOiBzdHJpbmc7XG4gICdmb250LXdlaWdodCc6IHN0cmluZztcbiAgJ2xpbmUtaGVpZ2h0Jzogc3RyaW5nO1xuICAnbGV0dGVyLXNwYWNpbmcnOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpYnNVaUNvbmZpZ0J1dHRvblN0YXR1cyB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBjb2xvcjogc3RyaW5nO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpYnNVaUNvbmZpZ0J1dHRvblRhYiB7XG4gIFtrZXk6IHN0cmluZ106IElDb2xvckJ1dHRvblRhYjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29sb3JCdXR0b25UYWIge1xuICBjb2xvcjogc3RyaW5nO1xuICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kX2JhZGdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2xvckJ1dHRvbiB7XG4gIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgIHRleHQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICB0ZXh0X2hvdmVyOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgdGV4dF9hY3RpdmU6IHN0cmluZyB8IG51bWJlcjtcbiAgICB0ZXh0X2Rpc2FibGU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGJhY2tncm91bmRfaG92ZXI/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgYmFja2dyb3VuZF9hY3RpdmU/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgYmFja2dyb3VuZF9kaXNhYmxlPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGJvcmRlcj86IHN0cmluZyB8IG51bWJlcjtcbiAgICBib3JkZXJfaG92ZXI/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgYm9yZGVyX2FjdGl2ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgICBib3JkZXJfZGlzYWJsZT86IHN0cmluZyB8IG51bWJlcjtcbiAgfTtcbiAgcm9vdENvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpYnNVaUNvbmZpZ0J1dHRvblNpemUge1xuICBpY29uOiB7XG4gICAgbGFyZ2U6IHN0cmluZztcbiAgICBtZWRpdW06IHN0cmluZztcbiAgICBzbWFsbDogc3RyaW5nO1xuICAgIHNtYWxsZXI6IHN0cmluZztcbiAgfTtcbiAgbGFyZ2U6IHtcbiAgICBmb250X3NpemU6IHN0cmluZztcbiAgICBsaW5lX2hlaWdodDogc3RyaW5nO1xuICB9O1xuICBtZWRpdW06IHtcbiAgICBmb250X3NpemU6IHN0cmluZztcbiAgICBsaW5lX2hlaWdodDogc3RyaW5nO1xuICB9O1xuICBzbWFsbDoge1xuICAgIGZvbnRfc2l6ZTogc3RyaW5nO1xuICAgIGxpbmVfaGVpZ2h0OiBzdHJpbmc7XG4gIH07XG4gIHNtYWxsZXI6IHtcbiAgICBmb250X3NpemU6IHN0cmluZztcbiAgICBsaW5lX2hlaWdodDogc3RyaW5nO1xuICB9O1xufVxuIl19
@@ -328,4 +328,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
328
328
  providedIn: 'root',
329
329
  }]
330
330
  }], ctorParameters: () => [] });
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXByb2plY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvY29uZmlnLXByb2plY3Qvc3JjL2NvbmZpZy1wcm9qZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBS3ZMLE1BQU0sT0FBTywwQkFBMEI7SUFDcEIsVUFBVSxHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUN2QyxXQUFXLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLGNBQWMsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDM0Msb0JBQW9CLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELGdCQUFnQixHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUM3QyxzQkFBc0IsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDbkQsaUJBQWlCLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLGdCQUFnQixHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUM3Qyx1QkFBdUIsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDcEQsdUJBQXVCLEdBQUcsTUFBTSxDQUFTLFdBQVcsQ0FBQyxDQUFDO0lBQ3RE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QUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM5RSxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLElBQUksTUFBTSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ2hELE1BQU07b0JBQ1IsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBRUQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt3R0EvV1UsMEJBQTBCOzRHQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luLCBnZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBjb25maWdCdXR0b25Db2xvciwgY29uZmlnQnV0dG9uU3RhdHVzLCBjb25maWdCdXR0b25UYWIsIGNvbmZpZ0hlYWRpbmcsIGNvbmZpZ0xpbmtCdXR0b24sIGZvbnRDb25maWcsIHNpemVCdXR0b25Db25maWcsIHN0eWxlQnV0dG9uVGFiLCB3ZWlnaHRzIH0gZnJvbSAnLi9jb25maWctcHJvamVjdC1kYXRhJztcbmltcG9ydCB7IElDb2xvckJ1dHRvbiwgSUxpYnNVaUNvbmZpZ0J1dHRvblN0YXR1cywgSUxpYnNVaUNvbmZpZ0J1dHRvblRhYiwgSUxpYnNVaUNvbmZpZ0ZvbnRGYW1pbHksIElMaWJzVWlDb25maWdGb250SGVhZGluZyB9IGZyb20gJy4vY29uZmlnLXByb2plY3QuaW50ZXJmYWNlJztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb25maWdQcm9qZWN0U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGhlbWVDb2xvciA9IHNpZ25hbDxzdHJpbmc+KCcjMjI2ZmY1Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYm9yZGVyQ29sb3IgPSBzaWduYWw8c3RyaW5nPignI2U2ZTdlYScpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRleHRFcnJvckNvbG9yID0gc2lnbmFsPHN0cmluZz4oJyNmZjU0NTQnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpY29uSG92ZXJEYW5nZXJDb2xvciA9IHNpZ25hbDxzdHJpbmc+KCcjZjE1NzY3Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYm9yZGVyRXJyb3JDb2xvciA9IHNpZ25hbDxzdHJpbmc+KCcjZWUyZDQxJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFja2dyb3VuZERpc2FibGVDb2xvciA9IHNpZ25hbDxzdHJpbmc+KCcjZjhmOWZhJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dFJlYWRvbmx5Q29sb3IgPSBzaWduYWw8c3RyaW5nPignIzA3MTYzMScpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRleHREaXNhYmxlQ29sb3IgPSBzaWduYWw8c3RyaW5nPignIzljYTJhZCcpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhY2tncm91bmRSZWFkb25seUNvbG9yID0gc2lnbmFsPHN0cmluZz4oJyNmOGY5ZmEnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYWNrZ3JvdW5kVXNlclNlbGVjdGlvbiA9IHNpZ25hbDxzdHJpbmc+KCcjMDAwMDAwNDAnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYWNrZ3JvdW5kTGlzdCA9IHNpZ25hbDxzdHJpbmc+KCcjZjhmOWZhJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFja2dyb3VuZExpc3RIb3ZlciA9IHNpZ25hbDxzdHJpbmc+KCcjZjhmOWZhJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFja2dyb3VuZExpc3RIb3ZlckRhbmdlciA9IHNpZ25hbDxzdHJpbmc+KCcjZmVmNWY2Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnRm9udCA9IHNpZ25hbDxJTGlic1VpQ29uZmlnRm9udEZhbWlseT4oZm9udENvbmZpZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnSGVhZCA9IHNpZ25hbDxJTGlic1VpQ29uZmlnRm9udEhlYWRpbmc+KGNvbmZpZ0hlYWRpbmcpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZ1bmN0aW9uR2V0Q29uZmlnQnV0dG9uSW5jbHVkZXMgPSBzaWduYWw8KHJvb3RDb2xvcjogc3RyaW5nKSA9PiB7IFtrZXk6IHN0cmluZ106IElDb2xvckJ1dHRvbiB9PigoKSA9PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdCdXR0b24gPSBjb21wdXRlZDx7IFtrZXk6IHN0cmluZ106IElDb2xvckJ1dHRvbiB9PigoKSA9PiB7XG4gICAgcmV0dXJuIHsgLi4uY29uZmlnQnV0dG9uQ29sb3IodGhpcy50aGVtZUNvbG9yKCkpLCAuLi5jb25maWdMaW5rQnV0dG9uKHRoaXMudGhlbWVDb2xvcigpKSwgLi4udGhpcy5mdW5jdGlvbkdldENvbmZpZ0J1dHRvbkluY2x1ZGVzKCkodGhpcy50aGVtZUNvbG9yKCkpIH07XG4gIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ0J1dHRvblNpemUgPSBzaWduYWwoc2l6ZUJ1dHRvbkNvbmZpZygpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdCdXR0b25TdGF0dXMgPSBzaWduYWw8SUxpYnNVaUNvbmZpZ0J1dHRvblN0YXR1cz4oY29uZmlnQnV0dG9uU3RhdHVzKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ0J1dHRvblRhYiA9IHNpZ25hbDxJTGlic1VpQ29uZmlnQnV0dG9uVGFiPihjb25maWdCdXR0b25UYWIoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3R5bGVDbGFzc0dsb2JhbEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdHlsZUNsYXNzSGVhZEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdHlsZUNsYXNzQnV0dG9uVGFiRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRUaGVtZUNvbG9yKCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5zZXR1cEZvbnRGYW1pbHkoKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNldHVwRm9udEhlYWQoKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNldHVwQnV0dG9uVGFiKCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5zZXR1cEJ1dHRvblNpemUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlnU3RyaW5nKCk7XG4gICAgdGhpcy5zZXRDbGFzc0dsb2JhbCgpO1xuICB9XG5cbiAgcHVibGljIHNldCBUaGVtZUNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRoZW1lQ29sb3Iuc2V0KGNvbG9yIHx8ICcjMjI2ZmY1Jyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IEJvcmRlckNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJvcmRlckNvbG9yLnNldChjb2xvciB8fCAnI2U2ZTdlYScpO1xuICB9XG5cbiAgcHVibGljIHNldCBCb3JkZXJFcnJvckNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJvcmRlckVycm9yQ29sb3Iuc2V0KGNvbG9yIHx8ICcjZWUyZDQxJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IFRleHRFcnJvckNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRleHRFcnJvckNvbG9yLnNldChjb2xvciB8fCAnI2ZmNTQ1NCcpO1xuICB9XG5cbiAgcHVibGljIHNldCBJY29uSG92ZXJEYW5nZXJDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5pY29uSG92ZXJEYW5nZXJDb2xvci5zZXQoY29sb3IgfHwgJyNmZjU0NTQnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgQmFja2dyb3VuZFJlYWRvbmx5Q29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMuYmFja2dyb3VuZFJlYWRvbmx5Q29sb3Iuc2V0KGNvbG9yIHx8ICcjZjE1NzY3Jyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IFRleHRSZWFkb25seUNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRleHRSZWFkb25seUNvbG9yLnNldChjb2xvciB8fCAnIzA3MTYzMScpO1xuICB9XG5cbiAgcHVibGljIHNldCBCYWNrZ3JvdW5kVXNlclNlbGVjdGlvbihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5iYWNrZ3JvdW5kVXNlclNlbGVjdGlvbi5zZXQoY29sb3IgfHwgJyMwMDAwMDA0MCcpO1xuICB9XG5cbiAgcHVibGljIHNldCBCYWNrZ3JvdW5kTGlzdChjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5iYWNrZ3JvdW5kTGlzdC5zZXQoY29sb3IgfHwgJyNmOGY5ZmEnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgQmFja2dyb3VuZExpc3RIb3Zlcihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5iYWNrZ3JvdW5kTGlzdEhvdmVyLnNldChjb2xvciB8fCAnI2Y4ZjlmYScpO1xuICB9XG5cbiAgcHVibGljIHNldCBCYWNrZ3JvdW5kTGlzdEhvdmVyRGFuZ2VyKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhY2tncm91bmRMaXN0SG92ZXIuc2V0KGNvbG9yIHx8ICcjZmVmNWY2Jyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IEJhY2tncm91bmREaXNhYmxlQ29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMuYmFja2dyb3VuZERpc2FibGVDb2xvci5zZXQoY29sb3IgfHwgJyNmOGY5ZmEnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgVGV4dERpc2FibGVDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy50ZXh0RGlzYWJsZUNvbG9yLnNldChjb2xvciB8fCAnIzljYTJhZCcpO1xuICB9XG5cbiAgcHVibGljIHNldCBDb25maWdGb250KGNvbmZpZ0ZvbnQ6IElMaWJzVWlDb25maWdGb250RmFtaWx5KSB7XG4gICAgdGhpcy5jb25maWdGb250LnNldCh7IC4uLmNvbmZpZ0ZvbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0IENvbmZpZ0ZvbnRIZWFkKGNvbmZpZ0hlYWQ6IElMaWJzVWlDb25maWdGb250SGVhZGluZykge1xuICAgIHRoaXMuY29uZmlnSGVhZC5zZXQoeyAuLi5jb25maWdIZWFkIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBDb25maWdCdXR0b24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnQnV0dG9uO1xuICB9XG5cbiAgcHVibGljIHNldCBGdW5jdGlvbkdldENvbmZpZ0J1dHRvbkluY2x1ZGVzKGZ1bmN0aW9uR2V0Q29uZmlnQnV0dG9uSW5jbHVkZXM6IChyb290Q29sb3I6IHN0cmluZykgPT4geyBba2V5OiBzdHJpbmddOiBJQ29sb3JCdXR0b24gfSkge1xuICAgIHRoaXMuZnVuY3Rpb25HZXRDb25maWdCdXR0b25JbmNsdWRlcy5zZXQoZnVuY3Rpb25HZXRDb25maWdCdXR0b25JbmNsdWRlcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IENvbmZpZ0J1dHRvblN0YXR1cygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWdCdXR0b25TdGF0dXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgQ29uZmlnQnV0dG9uU3RhdHVzKGNvbmZpZzogSUxpYnNVaUNvbmZpZ0J1dHRvblN0YXR1cykge1xuICAgIHRoaXMuY29uZmlnQnV0dG9uU3RhdHVzLnNldChjb25maWcpO1xuICB9XG5cbiAgcHVibGljIHNldCBDb25maWdCdXR0b25UYWIoY29uZmlnOiBJTGlic1VpQ29uZmlnQnV0dG9uVGFiKSB7XG4gICAgdGhpcy5jb25maWdCdXR0b25UYWIuc2V0KGNvbmZpZyk7XG4gIH1cblxuICAvLyBwdWJsaWMgaMOgbSDEkeG7gyBz4butIGThu6VuZyBjaG8gY29tcG9uZW50IGlucHV0IHPhu60gZOG7pW5nIHRhZ0lucHV0ID0gZnJhbWVBcmVhO1xuICBwdWJsaWMgc2V0dXBGb250RmFtaWx5KGN1cnJlbnREb2M/OiBEb2N1bWVudCkge1xuICAgIHRyeSB7XG4gICAgICBjdXJyZW50RG9jID0gY3VycmVudERvYyB8fCBkb2N1bWVudDtcbiAgICAgIGNvbnN0IGRvYyA9IGN1cnJlbnREb2MuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgICBkb2Muc3R5bGUuc2V0UHJvcGVydHkoJy0tbGlicy11aS1mb250LWZhbWlseS1uYW1lJywgYCR7dGhpcy5jb25maWdGb250KCkubmFtZX0sQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZmApO1xuICAgICAgT2JqZWN0LmtleXMod2VpZ2h0cykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICghZ2V0KHRoaXMuY29uZmlnRm9udCgpLCBrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvbnRGYWNlID0gbmV3IEZvbnRGYWNlKHRoaXMuY29uZmlnRm9udCgpLm5hbWUsIGB1cmwoJHtnZXQodGhpcy5jb25maWdGb250KCksIGtleSl9KWAsIHsgd2VpZ2h0OiBnZXQod2VpZ2h0cywga2V5KSB9KTtcbiAgICAgICAgZm9udEZhY2UubG9hZCgpLnRoZW4oKGxvYWRlZEZvbnQpID0+IHtcbiAgICAgICAgICBpZiAoY3VycmVudERvYyAmJiAnYWRkJyBpbiBjdXJyZW50RG9jLmZvbnRzKSB7XG4gICAgICAgICAgICAoY3VycmVudERvYy5mb250cyBhcyBhbnkpLmFkZChsb2FkZWRGb250KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwRm9udEhlYWQoKSB7XG4gICAgY29uc3QgY29uZmlnSGVhZHNEYXRhID0gdGhpcy5jb25maWdIZWFkKCk7XG4gICAgbGV0IHN0eWxlcyA9ICcnO1xuICAgIE9iamVjdC5rZXlzKGNvbmZpZ0hlYWRzRGF0YSkuZm9yRWFjaCgoa2V5Q29uZmlnKSA9PiB7XG4gICAgICBsZXQgc3R5bGUgPSBgZm9udC1mYW1pbHk6dmFyKC0tbGlicy11aS1mb250LWZhbWlseS1uYW1lLCdBcmlhbCcpO2A7XG4gICAgICBjb25zdCBjb25maWcgPSBnZXQoY29uZmlnSGVhZHNEYXRhLCBrZXlDb25maWcpO1xuICAgICAgT2JqZWN0LmtleXMoY29uZmlnKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgc3R5bGUgPSBgJHtzdHlsZX0ke2tleX06JHtnZXQoY29uZmlnLCBrZXkpfTtgO1xuICAgICAgfSk7XG4gICAgICBzdHlsZXMgPSBgJHtzdHlsZXN9IC5saWJzLXVpLWZvbnQtJHtrZXlDb25maWd9eyR7c3R5bGV9fS5saWJzLXVpLWZvbnQtJHtrZXlDb25maWd9aXske3N0eWxlLnJlcGxhY2UoLzsvZywgJyAhaW1wb3J0YW50OycpfX1gO1xuICAgIH0pO1xuXG4gICAgc3R5bGVzID0gYCp7Ym94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O30ke3N0eWxlc31gO1xuXG4gICAgdGhpcy5zdHlsZUNsYXNzSGVhZEVsLmlubmVySFRNTCA9IHN0eWxlcztcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZCh0aGlzLnN0eWxlQ2xhc3NIZWFkRWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEJ1dHRvblNpemUoKSB7XG4gICAgY29uc3QgY29uZmlnQnV0dG9uU2l6ZSA9IHRoaXMuY29uZmlnQnV0dG9uU2l6ZSgpO1xuICAgIGNvbnN0IGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICBPYmplY3Qua2V5cyhjb25maWdCdXR0b25TaXplKS5mb3JFYWNoKChrZXlTaXplKSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSBnZXQoY29uZmlnQnV0dG9uU2l6ZSwga2V5U2l6ZSk7XG4gICAgICBPYmplY3Qua2V5cyhjb25maWcpLmZvckVhY2goKGtleVR5cGUpID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGAtLWxpYnMtdWktYnV0dG9uLXNpemUtJHtrZXlTaXplfS0ke2tleVR5cGUucmVwbGFjZSgvW19dL2csICctJyl9YDtcbiAgICAgICAgZG9jLnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIGdldChjb25maWcsIGtleVR5cGUpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEJ1dHRvblRhYigpIHtcbiAgICBjb25zdCBjb25maWdCdXR0b25UYWIgPSB0aGlzLmNvbmZpZ0J1dHRvblRhYigpO1xuICAgIGxldCBzdHlsZXMgPSAnJztcblxuICAgIE9iamVjdC5rZXlzKGNvbmZpZ0J1dHRvblRhYikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSBnZXQoY29uZmlnQnV0dG9uVGFiLCBrZXkpO1xuICAgICAgY29uc3Qgc3R5bGUgPSBjb25maWcgPyBzdHlsZUJ1dHRvblRhYihrZXksIGNvbmZpZykgOiAnJztcblxuICAgICAgc3R5bGVzID0gYCR7c3R5bGVzfSR7c3R5bGV9YDtcbiAgICB9KTtcbiAgICB0aGlzLnN0eWxlQ2xhc3NCdXR0b25UYWJFbC5pbm5lckhUTUwgPSBzdHlsZXM7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmQodGhpcy5zdHlsZUNsYXNzQnV0dG9uVGFiRWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUaGVtZUNvbG9yKCkge1xuICAgIGNvbnN0IGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGdyb3VwOiAnbGlicy11aScsXG4gICAgICAgIHR5cGU6ICdjb2xvcicsXG4gICAgICAgIHByb3BlcnR5OiB7XG4gICAgICAgICAgZGVmYXVsdDogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCAwKT8ubGlnaHQsXG4gICAgICAgICAgbGlnaHRfMTogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCAyMCk/LmxpZ2h0LFxuICAgICAgICAgIGxpZ2h0XzI6IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgOTApPy5saWdodCxcbiAgICAgICAgICBsaWdodF8zOiBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4odGhpcy50aGVtZUNvbG9yKCksIDk1KT8ubGlnaHQsXG4gICAgICAgICAgbGlnaHRfNDogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCA1MCk/LmxpZ2h0LFxuICAgICAgICAgIGxpZ2h0XzU6IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgNzApPy5saWdodCxcbiAgICAgICAgICBsaWdodF82OiBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4odGhpcy50aGVtZUNvbG9yKCksIDgwKT8ubGlnaHQsXG4gICAgICAgICAgZGFyazogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCAyMCk/LmRhcmssXG4gICAgICAgICAgYmFja2dyb3VuZF9saXN0OiB0aGlzLmJhY2tncm91bmRMaXN0KCksXG4gICAgICAgICAgYmFja2dyb3VuZF9saXN0X2hvdmVyOiB0aGlzLmJhY2tncm91bmRMaXN0SG92ZXIoKSxcbiAgICAgICAgICBiYWNrZ3JvdW5kX2xpc3RfaG92ZXJfZGFuZ2VyOiB0aGlzLmJhY2tncm91bmRMaXN0SG92ZXJEYW5nZXIoKSxcbiAgICAgICAgICBiYWNrZ3JvdW5kX3NlbGVjdGlvbjogdGhpcy5iYWNrZ3JvdW5kVXNlclNlbGVjdGlvbigpLFxuICAgICAgICAgIGJvcmRlcjogdGhpcy5ib3JkZXJDb2xvcigpLFxuICAgICAgICAgIGJvcmRlcl9lcnJvcjogdGhpcy5ib3JkZXJFcnJvckNvbG9yKCksXG4gICAgICAgICAgdGV4dF9lcnJvcjogdGhpcy50ZXh0RXJyb3JDb2xvcigpLFxuICAgICAgICAgIGljb25faG92ZXJfZGFuZ2VyOiB0aGlzLmljb25Ib3ZlckRhbmdlckNvbG9yKCksXG4gICAgICAgICAgYmFja2dyb3VuZF9yZWFkb25seTogdGhpcy5iYWNrZ3JvdW5kUmVhZG9ubHlDb2xvcigpLFxuICAgICAgICAgIHRleHRfcmVhZG9ubHk6IHRoaXMudGV4dFJlYWRvbmx5Q29sb3IoKSxcbiAgICAgICAgICBiYWNrZ3JvdW5kX2Rpc2FibGU6IHRoaXMuYmFja2dyb3VuZERpc2FibGVDb2xvcigpLFxuICAgICAgICAgIHRleHRfZGlzYWJsZTogdGhpcy50ZXh0RGlzYWJsZUNvbG9yKCksXG4gICAgICAgICAgZ3JhZGllbnRfZnJvbTogdGhpcy50aGVtZUNvbG9yKCkudG9Mb2NhbGVVcHBlckNhc2UoKSA9PT0gJyMyMjZGRjUnID8gY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCAxMCk/LmxpZ2h0IDogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCAwKT8ubGlnaHQsXG4gICAgICAgICAgZ3JhZGllbnRfdG86IHRoaXMudGhlbWVDb2xvcigpLnRvTG9jYWxlVXBwZXJDYXNlKCkgPT09ICcjMjI2RkY1JyA/IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbignIzVCMkVCQicsIDEwKT8ubGlnaHQgOiBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4odGhpcy50aGVtZUNvbG9yKCksIDIwKT8uZGFyayxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gYC0tJHtpdGVtLmdyb3VwLnJlcGxhY2UoL1tfXS9nLCAnLScpfS0ke2l0ZW0udHlwZS5yZXBsYWNlKC9bX10vZywgJy0nKX1gO1xuICAgICAgT2JqZWN0LmtleXMoaXRlbS5wcm9wZXJ0eSkuZm9yRWFjaCgoa2V5KSA9PiBkb2Muc3R5bGUuc2V0UHJvcGVydHkoYCR7bmFtZX0tJHtrZXkucmVwbGFjZSgvW19dL2csICctJyl9YCwgKGl0ZW0ucHJvcGVydHkgYXMgYW55KVtrZXldKSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHN0ZXA6IG51bWJlciwgY29sb3I/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKGNvbG9yIHx8IHRoaXMudGhlbWVDb2xvcigpLCBzdGVwIHx8IDApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDbGFzc0dsb2JhbCgpIHtcbiAgICB0aGlzLnN0eWxlQ2xhc3NHbG9iYWxFbC5pbm5lckhUTUwgPSBgXG4gICAgLmxpYnMtdWktYm9yZGVyLXByaW1hcnktZ2VuZXJhbHtib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWRlZmF1bHQsICMyMjZGRjUpO31cbiAgICAubGlicy11aS1ib3JkZXItcHJpbWFyeS1mb2N1cy1nZW5lcmFse2JvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItbGlnaHQtMSwgIzRlOGNmNyk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1wcmltYXJ5LWhvdmVyLWdlbmVyYWx7Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0zLCAjZjRmOGZmKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLWdlbmVyYWx7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLXRvcC1nZW5lcmFse2JvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1yaWdodC1nZW5lcmFse2JvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLWJvdHRvbS1nZW5lcmFse2JvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1kYXNoZWQtZ2VuZXJhbHtib3JkZXI6IGRhc2hlZCAxcHggdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItdG9wLWRhc2hlZC1nZW5lcmFse2JvcmRlci10b3A6IGRhc2hlZCAxcHggdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItbGVmdC1kYXNoZWQtZ2VuZXJhbHtib3JkZXItbGVmdDogZGFzaGVkIDFweCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1yaWdodC1kYXNoZWQtZ2VuZXJhbHtib3JkZXItcmlnaHQ6IGRhc2hlZCAxcHggdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItYm90dG9tLWRhc2hlZC1nZW5lcmFse2JvcmRlci1ib3R0b206IGRhc2hlZCAxcHggdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItbGVmdC1nZW5lcmFse2JvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXIteC1nZW5lcmFse2JvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpOyAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXIteS1nZW5lcmFse2JvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7ICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItbGVmdC10b3AtZ2VuZXJhbHtib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTsgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1sZWZ0LWJvdHRvbS1nZW5lcmFse2JvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpOyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLXJpZ2h0LXRvcC1nZW5lcmFse2JvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTsgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1yaWdodC1ib3R0b20tZ2VuZXJhbHtib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7ICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItZXJyb3ItZ2VuZXJhbHtib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlci1lcnJvciwgI2VlMmQ0MSkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktYmctbGlzdCB7YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlicy11aS1iYWNrZ3JvdW5kLWxpc3QsICNmOGY5ZmEpO31cbiAgICAubGlicy11aS1iZy1saXN0LWhvdmVyOmhvdmVyIHtiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWJzLXVpLWJhY2tncm91bmQtbGlzdC1ob3ZlciwgI2Y4ZjlmYSk7fVxuICAgIC5saWJzLXVpLWJnLWxpc3QtYWN0aXZlIHtiYWNrZ3JvdW5kLWNvbG9yOiAgdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0zLCAjZjRmOGZmKTt9XG4gICAgLmxpYnMtdWktYmctbGlzdC1ob3Zlci1hY3RpdmU6aG92ZXIge2JhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7fVxuICAgIC5saWJzLXVpLWJnLWxpc3QtaG92ZXItYWN0aXZlOmFjdGl2ZSB7YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0zLCAjZjRmOGZmKTt9XG4gICAgLmxpYnMtdWktYmctbGlzdC1ob3Zlci1kYW5nZXI6aG92ZXIge2JhY2tncm91bmQtY29sb3I6IHZhcigtLWxpYnMtdWktYmFja2dyb3VuZC1saXN0LWhvdmVyLWRhbmdlciwgI2ZlZjVmNik7IGNvbG9yOiB2YXIoLS1saWJzLXVpLWNvbG9yLWljb24taG92ZXItZGFuZ2VyLCAjZjE1NzY3KSAhaW1wb3J0YW50OyBbY2xhc3MqPVwibGlicy11aS1pY29uLVwiXSxbY2xhc3MqPVwiaWNvbi1mb250LTNyZFwiXXsmOmJlZm9yZSwmOmFmdGVye2NvbG9yOiB2YXIoLS1saWJzLXVpLWNvbG9yLWljb24taG92ZXItZGFuZ2VyLCAjZjE1NzY3KSAhaW1wb3J0YW50O319fVxuICAgIC5saWJzLXVpLXRleHQtZXJyb3Ige2NvbG9yOiB2YXIoLS1saWJzLXVpLWNvbG9yLXRleHQtZXJyb3IsICNmZjU0NTQpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLXRleHQtZXJyb3I6OmJlZm9yZSB7Y29sb3I6IHZhcigtLWxpYnMtdWktY29sb3ItdGV4dC1lcnJvciwgI2ZmNTQ1NCkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktZGlzYWJsZSB7Y3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjogbm9uZTtjb2xvcjp2YXIoLS1saWJzLXVpLWNvbG9yLXRleHQtZGlzYWJsZSwgI2NkZDBkNikgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktZGlzYWJsZTo6YmVmb3JlIHtjb2xvcjp2YXIoLS1saWJzLXVpLWNvbG9yLXRleHQtZGlzYWJsZSwgIzljYTJhZCkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktZGlzYWJsZS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IHZhcigtLWxpYnMtdWktY29sb3ItYmFja2dyb3VuZC1kaXNhYmxlLCAjZjhmOWZhKSAhaW1wb3J0YW50O31cbiAgICAubGlicy11aS1kaXNhYmxlLWFjdGl2ZSB7Y29sb3I6dmFyKC0tbGlicy11aS1jb2xvci1saWdodC00LCM5MWI3ZmEpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLWRpc2FibGUtYWN0aXZlOjpiZWZvcmUge2NvbG9yOnZhcigtLWxpYnMtdWktY29sb3ItbGlnaHQtNCwjOTFiN2ZhKSAhaW1wb3J0YW50O31cbiAgICAubGlicy11aS1kaXNhYmxlLWFjdGl2ZS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IHZhcigtLWxpYnMtdWktY29sb3ItbGlnaHQtNCwjOTFiN2ZhKSAhaW1wb3J0YW50O31cbiAgICAubGlicy11aS1yZWFkb25seSB7Y3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O2NvbG9yOnZhcigtLWxpYnMtdWktY29sb3ItdGV4dC1yZWFkb25seSwgIzA3MTYzMSkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktcmVhZG9ubHk6OmJlZm9yZSB7Y29sb3I6dmFyKC0tbGlicy11aS1jb2xvci10ZXh0LXJlYWRvbmx5LCAjMDcxNjMxKSAhaW1wb3J0YW50O31cbiAgICAubGlicy11aS1yZWFkb25seS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IHZhcigtLWxpYnMtdWktY29sb3ItYmFja2dyb3VuZC1yZWFkb25seSwgI2Y4ZjlmYSkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktaWNvbi1ob3Zlci1kYW5nZXI6aG92ZXIge2NvbG9yOiB2YXIoLS1saWJzLXVpLWNvbG9yLWljb24taG92ZXItZGFuZ2VyLCAjZjE1NzY3KSAhaW1wb3J0YW50OyBbY2xhc3MqPVwibGlicy11aS1pY29uLVwiXSxbY2xhc3MqPVwiaWNvbi1mb250LTNyZFwiXXsmOmJlZm9yZSwmOmFmdGVye2NvbG9yOiB2YXIoLS1saWJzLXVpLWNvbG9yLWljb24taG92ZXItZGFuZ2VyLCAjZjE1NzY3KSAhaW1wb3J0YW50O319fVxuICAgIC5icmVhay13b3Jke3dvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktc2hhZG93IHtib3gtc2hhZG93OiAwIDJweCAxMHB4IDFweCByZ2JhKDUxLCA1MSwgNTEsIDAuMSk7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1tZCB7Ym94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSg1MSwgNTEsIDUxLCAwLjEpO31cbiAgICAubGlicy11aS1zaGFkb3ctbGcge2JveC1zaGFkb3c6IDAgMTVweCAzMHB4IDAgcmdiYSg1MSwgNTEsIDUxLCAwLjEpO31cbiAgICAubGlicy11aS1zaGFkb3ctdG9wIHtib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHggcmdiYSg1MSwgNTEsIDUxLCAwLjEpO31cbiAgICAubGlicy11aS1zaGFkb3ctcmlnaHQge2JveC1zaGFkb3c6IC01cHggMCA1cHggLTVweCByZ2JhKDUxLCA1MSwgNTEsIDAuMSk7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1ib3R0b20ge2JveC1zaGFkb3c6IDAgNXB4IDVweCAtNXB4IHJnYmEoNTEsIDUxLCA1MSwgMC4xKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LWxlZnQge2JveC1zaGFkb3c6IDVweCAwIDVweCAtNXB4IHJnYmEoNTEsIDUxLCA1MSwgMC4xKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LXNtIHtib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDUxLCA1MSwgNTEsIDAuMSk7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1wb3B1cCB7Ym94LXNoYWRvdzogLTJweCAwIDRweCAwIHJnYmEoNTEsIDUxLCA1MSwgMC4xKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LW5vbmUge2JveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktc2hhZG93LXNtYWxsIHtib3gtc2hhZG93OiAwcHggMXB4IDJweCAwcHggcmdiYSgwLDIwLDUxLC4wNCksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsMjAsNTEsLjAyKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LW1lZGl1bSB7Ym94LXNoYWRvdzogMHB4IDRweCA4cHggMHB4IHJnYmEoMCwgMjAsIDUxLCAwLjA0KSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMjAsIDUxLCAwLjAyKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LWxhcmdlIHtib3gtc2hhZG93OiAwcHggNHB4IDE2cHggMHB4IHJnYmEoMCwyMCw1MSwuMSksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsMjAsNTEsLjAyKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LWV4dHJhLWxhcmdlIHtib3gtc2hhZG93OiAwcHggOHB4IDU2cHggMHB4IHJnYmEoMCwyMCw1MSwuMDUpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLDIwLDUxLC4wMik7fVxuICAgIDo6LW1vei1zZWxlY3Rpb24ge2JhY2tncm91bmQ6IHZhcigtLWxpYnMtdWktY29sb3ItYmFja2dyb3VuZC1zZWxlY3Rpb24sICMwMDAwMDA0MCkgIWltcG9ydGFudDt9XG4gICAgOjpzZWxlY3Rpb24ge2JhY2tncm91bmQ6IHZhcigtLWxpYnMtdWktY29sb3ItYmFja2dyb3VuZC1zZWxlY3Rpb24sICMwMDAwMDA0MCkgIWltcG9ydGFudDt9XG4gICAgYC5yZXBsYWNlKC9cXG4rL2csICcnKTtcblxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kKHRoaXMuc3R5bGVDbGFzc0dsb2JhbEVsKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnU3RyaW5nKCkge1xuICAgIGNvbnN0IHByb3RvdHlwZSA9IFN0cmluZy5wcm90b3R5cGUgYXMgYW55O1xuICAgIHByb3RvdHlwZS5yZXBsYWNlQXQgPSBmdW5jdGlvbiAoaW5kZXg6IG51bWJlciwgcmVwbGFjZW1lbnQ6IHN0cmluZykge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5zcGxpdCgnJyk7XG5cbiAgICAgIHZhbHVlc1tpbmRleF0gPSByZXBsYWNlbWVudDtcblxuICAgICAgcmV0dXJuIHZhbHVlcy5qb2luKCcnKTtcbiAgICB9O1xuXG4gICAgcHJvdG90eXBlLnJlcGxhY2VBbGwgPSBmdW5jdGlvbiAoaW5kZXg6IG51bWJlciwgc2VwYXJhdG9yOiBzdHJpbmcsIHJlcGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChzZXBhcmF0b3IsICdnJyk7XG5cbiAgICAgIHJldHVybiBgJHt0aGlzLnN1YnN0cigwLCBpbmRleCl9JHt0aGlzLnN1YnN0cihpbmRleCArIDEgKyAocmVwbGFjZW1lbnQ/Lmxlbmd0aCB8fCAwKSkucmVwbGFjZShyZWdleCwgcmVwbGFjZW1lbnQpfWA7XG4gICAgfTtcblxuICAgIHByb3RvdHlwZS5vY2N1cnJlbmNlc0J5Q2hhcmFjdGVyID0gZnVuY3Rpb24gKGNoYXJhY3Rlcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuc3BsaXQoJycpO1xuXG4gICAgICBpZiAoIXZhbHVlcyB8fCAhdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIoKGNoYXI6IHN0cmluZykgPT4gY2hhciA9PT0gY2hhcmFjdGVyKS5sZW5ndGg7XG4gICAgfTtcblxuICAgIHByb3RvdHlwZS5pbmRleGVzT2ZDaGFyYWN0ZXIgPSBmdW5jdGlvbiAoY2hhcmFjdGVyOiBzdHJpbmcpOiBBcnJheTxudW1iZXI+IHtcbiAgICAgIGNvbnN0IHZhbHVlczogQXJyYXk8c3RyaW5nPiA9IHRoaXMuc3BsaXQoJycpO1xuICAgICAgY29uc3QgaW5kZXhlczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuXG4gICAgICBpZiAoIXZhbHVlcyB8fCAhdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gaW5kZXhlcztcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgaW5kZXhWYWx1ZSBpbiB2YWx1ZXMpIHtcbiAgICAgICAgaWYgKHZhbHVlc1tpbmRleFZhbHVlXSA9PT0gY2hhcmFjdGVyKSB7XG4gICAgICAgICAgaW5kZXhlcy5wdXNoKCtpbmRleFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5kZXhlcztcbiAgICB9O1xuXG4gICAgcHJvdG90eXBlLmluZGV4ZXNCeVN0cmluZyA9IGZ1bmN0aW9uIChzdHI6IHN0cmluZyk6IEFycmF5PG51bWJlcj4ge1xuICAgICAgY29uc3QgdmFsdWVzOiBBcnJheTxzdHJpbmc+ID0gdGhpcyBhcyBhbnk7XG4gICAgICBjb25zdCBpbmRleGVzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgICAgIGlmICghdmFsdWVzIHx8ICF2YWx1ZXMubGVuZ3RoIHx8ICFzdHIgfHwgIXN0ci5sZW5ndGggfHwgdmFsdWVzLmxlbmd0aCA8IHN0ci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4ZXM7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGluZGV4VmFsdWUgaW4gdmFsdWVzKSB7XG4gICAgICAgIGlmICh2YWx1ZXNbaW5kZXhWYWx1ZV0gIT09IHN0clswXSB8fCAraW5kZXhWYWx1ZSArIHN0ci5sZW5ndGggPiB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGluZGV4IGluIHN0ci5zcGxpdCgnJykpIHtcbiAgICAgICAgICBpZiAodmFsdWVzWytpbmRleFZhbHVlICsgK2luZGV4XSAhPT0gc3RyW2luZGV4XSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluZGV4ZXMucHVzaCgraW5kZXhWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmRleGVzO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXByb2plY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvY29uZmlnLXByb2plY3Qvc3JjL2NvbmZpZy1wcm9qZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBS3ZMLE1BQU0sT0FBTywwQkFBMEI7SUFDcEIsVUFBVSxHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUN2QyxXQUFXLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLGNBQWMsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDM0Msb0JBQW9CLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELGdCQUFnQixHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUM3QyxzQkFBc0IsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDbkQsaUJBQWlCLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLGdCQUFnQixHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUM3Qyx1QkFBdUIsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDcEQsdUJBQXVCLEdBQUcsTUFBTSxDQUFTLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELGNBQWMsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDM0MsbUJBQW1CLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELHlCQUF5QixHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUN0RCxVQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztJQUN6RCxVQUFVLEdBQUcsTUFBTSxDQUEyQixhQUFhLENBQUMsQ0FBQztJQUM3RCwrQkFBK0IsR0FBRyxNQUFNLENBQXlELEdBQUcsRUFBRTtRQUNySCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ2MsWUFBWSxHQUFHLFFBQVEsQ0FBa0MsR0FBRyxFQUFFO1FBQzdFLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzNKLENBQUMsQ0FBQyxDQUFDO0lBQ2MsZ0JBQWdCLEdBQUcsTUFBTSxDQUEwQixnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDdkUsa0JBQWtCLEdBQUcsTUFBTSxDQUE0QixrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDN0UsZUFBZSxHQUFHLE1BQU0sQ0FBeUIsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUNwRSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQscUJBQXFCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RTtRQUNFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsS0FBYTtRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFXLGdCQUFnQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsY0FBYyxDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLG9CQUFvQixDQUFDLEtBQWE7UUFDM0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsdUJBQXVCLENBQUMsS0FBYTtRQUM5QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBVyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLHVCQUF1QixDQUFDLEtBQWE7UUFDOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQVcsY0FBYyxDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLG1CQUFtQixDQUFDLEtBQWE7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQVcseUJBQXlCLENBQUMsS0FBYTtRQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBVyxzQkFBc0IsQ0FBQyxLQUFhO1FBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFXLGdCQUFnQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsVUFBVSxDQUFDLFVBQW1DO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFXLGNBQWMsQ0FBQyxVQUFvQztRQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVywrQkFBK0IsQ0FBQywrQkFBdUY7UUFDaEksSUFBSSxDQUFDLCtCQUErQixDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGtCQUFrQixDQUFDLE1BQWlDO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsZUFBZSxDQUFDLE1BQThCO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCwwRUFBMEU7SUFDbkUsZUFBZSxDQUFDLFVBQXFCO1FBQzFDLElBQUksQ0FBQztZQUNILFVBQVUsR0FBRyxVQUFVLElBQUksUUFBUSxDQUFDO1lBQ3BDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUM7WUFFdkMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQXNDLENBQUMsRUFBRSxDQUFDO29CQUNwRSxPQUFPO2dCQUNULENBQUM7Z0JBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBc0MsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFzQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQ2xDLElBQUksVUFBVSxJQUFJLEtBQUssSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQzNDLFVBQVUsQ0FBQyxLQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUM1QyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNqRCxJQUFJLEtBQUssR0FBRyxzREFBc0QsQ0FBQztZQUNuRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQTZDLENBQUMsQ0FBQztZQUNuRixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNsQyxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLE1BQU0sa0JBQWtCLFNBQVMsSUFBSSxLQUFLLGtCQUFrQixTQUFTLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQztRQUMvSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyx3Q0FBd0MsTUFBTSxFQUFFLENBQUM7UUFFMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDekMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsT0FBMEMsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RDLE1BQU0sSUFBSSxHQUFHLHlCQUF5QixPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEYsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVoQixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzNDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDOUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNyQztZQUNFO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixJQUFJLEVBQUUsT0FBTztnQkFDYixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLDJCQUEyQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLO29CQUNqRSxPQUFPLEVBQUUsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUs7b0JBQ2xFLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSztvQkFDbEUsT0FBTyxFQUFFLDJCQUEyQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLO29CQUNsRSxPQUFPLEVBQUUsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUs7b0JBQ2xFLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSztvQkFDbEUsT0FBTyxFQUFFLDJCQUEyQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLO29CQUNsRSxJQUFJLEVBQUUsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUk7b0JBQzlELGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUN0QyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7b0JBQ2pELDRCQUE0QixFQUFFLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtvQkFDOUQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFO29CQUNwRCxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDMUIsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDckMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ2pDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDOUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFO29CQUNuRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO29CQUN2QyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7b0JBQ2pELFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLO29CQUN6TCxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSTtpQkFDaEw7YUFDRjtTQUNGLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakIsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEYsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLElBQUksQ0FBQyxRQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6SSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSwyQkFBMkIsQ0FBQyxJQUFZLEVBQUUsS0FBYztRQUM3RCxPQUFPLDJCQUEyQixDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBd0RuQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdEIsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQWdCLENBQUM7UUFDMUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxVQUFVLEtBQWEsRUFBRSxXQUFtQjtZQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRTlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxXQUFXLENBQUM7WUFFNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQztRQUVGLFNBQVMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxLQUFhLEVBQUUsU0FBaUIsRUFBRSxXQUFtQjtZQUNwRixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFekMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEgsQ0FBQyxDQUFDO1FBRUYsU0FBUyxDQUFDLHNCQUFzQixHQUFHLFVBQVUsU0FBaUI7WUFDNUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsQ0FBQyxDQUFDO1FBRUYsU0FBUyxDQUFDLGtCQUFrQixHQUFHLFVBQVUsU0FBaUI7WUFDeEQsTUFBTSxNQUFNLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0MsTUFBTSxPQUFPLEdBQWtCLEVBQUUsQ0FBQztZQUVsQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1lBQ0QsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUM7UUFFRixTQUFTLENBQUMsZUFBZSxHQUFHLFVBQVUsR0FBVztZQUMvQyxNQUFNLE1BQU0sR0FBa0IsSUFBVyxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7WUFFbEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuRixPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1lBQ0QsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM5RSxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLElBQUksTUFBTSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ2hELE1BQU07b0JBQ1IsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBRUQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt3R0EvV1UsMEJBQTBCOzRHQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGF0aE9mIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4sIGdldCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IGNvbmZpZ0J1dHRvbkNvbG9yLCBjb25maWdCdXR0b25TdGF0dXMsIGNvbmZpZ0J1dHRvblRhYiwgY29uZmlnSGVhZGluZywgY29uZmlnTGlua0J1dHRvbiwgZm9udENvbmZpZywgc2l6ZUJ1dHRvbkNvbmZpZywgc3R5bGVCdXR0b25UYWIsIHdlaWdodHMgfSBmcm9tICcuL2NvbmZpZy1wcm9qZWN0LWRhdGEnO1xuaW1wb3J0IHsgSUNvbG9yQnV0dG9uLCBJTGlic1VpQ29uZmlnQnV0dG9uU2l6ZSwgSUxpYnNVaUNvbmZpZ0J1dHRvblN0YXR1cywgSUxpYnNVaUNvbmZpZ0J1dHRvblRhYiwgSUxpYnNVaUNvbmZpZ0ZvbnRGYW1pbHksIElMaWJzVWlDb25maWdGb250SGVhZGluZywgSUxpYnNVaUNvbmZpZ0ZvbnRXZWlnaHQgfSBmcm9tICcuL2NvbmZpZy1wcm9qZWN0LmludGVyZmFjZSc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29uZmlnUHJvamVjdFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHRoZW1lQ29sb3IgPSBzaWduYWw8c3RyaW5nPignIzIyNmZmNScpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvcmRlckNvbG9yID0gc2lnbmFsPHN0cmluZz4oJyNlNmU3ZWEnKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0RXJyb3JDb2xvciA9IHNpZ25hbDxzdHJpbmc+KCcjZmY1NDU0Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaWNvbkhvdmVyRGFuZ2VyQ29sb3IgPSBzaWduYWw8c3RyaW5nPignI2YxNTc2NycpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvcmRlckVycm9yQ29sb3IgPSBzaWduYWw8c3RyaW5nPignI2VlMmQ0MScpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhY2tncm91bmREaXNhYmxlQ29sb3IgPSBzaWduYWw8c3RyaW5nPignI2Y4ZjlmYScpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRleHRSZWFkb25seUNvbG9yID0gc2lnbmFsPHN0cmluZz4oJyMwNzE2MzEnKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0RGlzYWJsZUNvbG9yID0gc2lnbmFsPHN0cmluZz4oJyM5Y2EyYWQnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYWNrZ3JvdW5kUmVhZG9ubHlDb2xvciA9IHNpZ25hbDxzdHJpbmc+KCcjZjhmOWZhJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFja2dyb3VuZFVzZXJTZWxlY3Rpb24gPSBzaWduYWw8c3RyaW5nPignIzAwMDAwMDQwJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFja2dyb3VuZExpc3QgPSBzaWduYWw8c3RyaW5nPignI2Y4ZjlmYScpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhY2tncm91bmRMaXN0SG92ZXIgPSBzaWduYWw8c3RyaW5nPignI2Y4ZjlmYScpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhY2tncm91bmRMaXN0SG92ZXJEYW5nZXIgPSBzaWduYWw8c3RyaW5nPignI2ZlZjVmNicpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ0ZvbnQgPSBzaWduYWw8SUxpYnNVaUNvbmZpZ0ZvbnRGYW1pbHk+KGZvbnRDb25maWcpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ0hlYWQgPSBzaWduYWw8SUxpYnNVaUNvbmZpZ0ZvbnRIZWFkaW5nPihjb25maWdIZWFkaW5nKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmdW5jdGlvbkdldENvbmZpZ0J1dHRvbkluY2x1ZGVzID0gc2lnbmFsPChyb290Q29sb3I6IHN0cmluZykgPT4geyBba2V5OiBzdHJpbmddOiBJQ29sb3JCdXR0b24gfT4oKCkgPT4ge1xuICAgIHJldHVybiB7fTtcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnQnV0dG9uID0gY29tcHV0ZWQ8eyBba2V5OiBzdHJpbmddOiBJQ29sb3JCdXR0b24gfT4oKCkgPT4ge1xuICAgIHJldHVybiB7IC4uLmNvbmZpZ0J1dHRvbkNvbG9yKHRoaXMudGhlbWVDb2xvcigpKSwgLi4uY29uZmlnTGlua0J1dHRvbih0aGlzLnRoZW1lQ29sb3IoKSksIC4uLnRoaXMuZnVuY3Rpb25HZXRDb25maWdCdXR0b25JbmNsdWRlcygpKHRoaXMudGhlbWVDb2xvcigpKSB9O1xuICB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdCdXR0b25TaXplID0gc2lnbmFsPElMaWJzVWlDb25maWdCdXR0b25TaXplPihzaXplQnV0dG9uQ29uZmlnKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ0J1dHRvblN0YXR1cyA9IHNpZ25hbDxJTGlic1VpQ29uZmlnQnV0dG9uU3RhdHVzPihjb25maWdCdXR0b25TdGF0dXMoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnQnV0dG9uVGFiID0gc2lnbmFsPElMaWJzVWlDb25maWdCdXR0b25UYWI+KGNvbmZpZ0J1dHRvblRhYigpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdHlsZUNsYXNzR2xvYmFsRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0eWxlQ2xhc3NIZWFkRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0eWxlQ2xhc3NCdXR0b25UYWJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNldFRoZW1lQ29sb3IoKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNldHVwRm9udEZhbWlseSgpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0dXBGb250SGVhZCgpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0dXBCdXR0b25UYWIoKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNldHVwQnV0dG9uU2l6ZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWdTdHJpbmcoKTtcbiAgICB0aGlzLnNldENsYXNzR2xvYmFsKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IFRoZW1lQ29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWVDb2xvci5zZXQoY29sb3IgfHwgJyMyMjZmZjUnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgQm9yZGVyQ29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMuYm9yZGVyQ29sb3Iuc2V0KGNvbG9yIHx8ICcjZTZlN2VhJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IEJvcmRlckVycm9yQ29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMuYm9yZGVyRXJyb3JDb2xvci5zZXQoY29sb3IgfHwgJyNlZTJkNDEnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgVGV4dEVycm9yQ29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMudGV4dEVycm9yQ29sb3Iuc2V0KGNvbG9yIHx8ICcjZmY1NDU0Jyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IEljb25Ib3ZlckRhbmdlckNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmljb25Ib3ZlckRhbmdlckNvbG9yLnNldChjb2xvciB8fCAnI2ZmNTQ1NCcpO1xuICB9XG5cbiAgcHVibGljIHNldCBCYWNrZ3JvdW5kUmVhZG9ubHlDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5iYWNrZ3JvdW5kUmVhZG9ubHlDb2xvci5zZXQoY29sb3IgfHwgJyNmMTU3NjcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgVGV4dFJlYWRvbmx5Q29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMudGV4dFJlYWRvbmx5Q29sb3Iuc2V0KGNvbG9yIHx8ICcjMDcxNjMxJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IEJhY2tncm91bmRVc2VyU2VsZWN0aW9uKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhY2tncm91bmRVc2VyU2VsZWN0aW9uLnNldChjb2xvciB8fCAnIzAwMDAwMDQwJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IEJhY2tncm91bmRMaXN0KGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhY2tncm91bmRMaXN0LnNldChjb2xvciB8fCAnI2Y4ZjlmYScpO1xuICB9XG5cbiAgcHVibGljIHNldCBCYWNrZ3JvdW5kTGlzdEhvdmVyKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhY2tncm91bmRMaXN0SG92ZXIuc2V0KGNvbG9yIHx8ICcjZjhmOWZhJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IEJhY2tncm91bmRMaXN0SG92ZXJEYW5nZXIoY29sb3I6IHN0cmluZykge1xuICAgIHRoaXMuYmFja2dyb3VuZExpc3RIb3Zlci5zZXQoY29sb3IgfHwgJyNmZWY1ZjYnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgQmFja2dyb3VuZERpc2FibGVDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5iYWNrZ3JvdW5kRGlzYWJsZUNvbG9yLnNldChjb2xvciB8fCAnI2Y4ZjlmYScpO1xuICB9XG5cbiAgcHVibGljIHNldCBUZXh0RGlzYWJsZUNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRleHREaXNhYmxlQ29sb3Iuc2V0KGNvbG9yIHx8ICcjOWNhMmFkJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IENvbmZpZ0ZvbnQoY29uZmlnRm9udDogSUxpYnNVaUNvbmZpZ0ZvbnRGYW1pbHkpIHtcbiAgICB0aGlzLmNvbmZpZ0ZvbnQuc2V0KHsgLi4uY29uZmlnRm9udCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgQ29uZmlnRm9udEhlYWQoY29uZmlnSGVhZDogSUxpYnNVaUNvbmZpZ0ZvbnRIZWFkaW5nKSB7XG4gICAgdGhpcy5jb25maWdIZWFkLnNldCh7IC4uLmNvbmZpZ0hlYWQgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IENvbmZpZ0J1dHRvbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWdCdXR0b247XG4gIH1cblxuICBwdWJsaWMgc2V0IEZ1bmN0aW9uR2V0Q29uZmlnQnV0dG9uSW5jbHVkZXMoZnVuY3Rpb25HZXRDb25maWdCdXR0b25JbmNsdWRlczogKHJvb3RDb2xvcjogc3RyaW5nKSA9PiB7IFtrZXk6IHN0cmluZ106IElDb2xvckJ1dHRvbiB9KSB7XG4gICAgdGhpcy5mdW5jdGlvbkdldENvbmZpZ0J1dHRvbkluY2x1ZGVzLnNldChmdW5jdGlvbkdldENvbmZpZ0J1dHRvbkluY2x1ZGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgQ29uZmlnQnV0dG9uU3RhdHVzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ0J1dHRvblN0YXR1cygpO1xuICB9XG5cbiAgcHVibGljIHNldCBDb25maWdCdXR0b25TdGF0dXMoY29uZmlnOiBJTGlic1VpQ29uZmlnQnV0dG9uU3RhdHVzKSB7XG4gICAgdGhpcy5jb25maWdCdXR0b25TdGF0dXMuc2V0KGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IENvbmZpZ0J1dHRvblRhYihjb25maWc6IElMaWJzVWlDb25maWdCdXR0b25UYWIpIHtcbiAgICB0aGlzLmNvbmZpZ0J1dHRvblRhYi5zZXQoY29uZmlnKTtcbiAgfVxuXG4gIC8vIHB1YmxpYyBow6BtIMSR4buDIHPhu60gZOG7pW5nIGNobyBjb21wb25lbnQgaW5wdXQgc+G7rSBk4bulbmcgdGFnSW5wdXQgPSBmcmFtZUFyZWE7XG4gIHB1YmxpYyBzZXR1cEZvbnRGYW1pbHkoY3VycmVudERvYz86IERvY3VtZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIGN1cnJlbnREb2MgPSBjdXJyZW50RG9jIHx8IGRvY3VtZW50O1xuICAgICAgY29uc3QgZG9jID0gY3VycmVudERvYy5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICAgIGRvYy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1saWJzLXVpLWZvbnQtZmFtaWx5LW5hbWUnLCBgJHt0aGlzLmNvbmZpZ0ZvbnQoKS5uYW1lfSxBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmYCk7XG4gICAgICBPYmplY3Qua2V5cyh3ZWlnaHRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKCFnZXQodGhpcy5jb25maWdGb250KCksIGtleSBhcyBQYXRoT2Y8SUxpYnNVaUNvbmZpZ0ZvbnRGYW1pbHk+KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb250RmFjZSA9IG5ldyBGb250RmFjZSh0aGlzLmNvbmZpZ0ZvbnQoKS5uYW1lLCBgdXJsKCR7Z2V0KHRoaXMuY29uZmlnRm9udCgpLCBrZXkgYXMgUGF0aE9mPElMaWJzVWlDb25maWdGb250RmFtaWx5Pil9KWAsIHsgd2VpZ2h0OiBnZXQod2VpZ2h0cywga2V5IGFzIFBhdGhPZjxJTGlic1VpQ29uZmlnRm9udFdlaWdodD4pIH0pO1xuICAgICAgICBmb250RmFjZS5sb2FkKCkudGhlbigobG9hZGVkRm9udCkgPT4ge1xuICAgICAgICAgIGlmIChjdXJyZW50RG9jICYmICdhZGQnIGluIGN1cnJlbnREb2MuZm9udHMpIHtcbiAgICAgICAgICAgIChjdXJyZW50RG9jLmZvbnRzIGFzIGFueSkuYWRkKGxvYWRlZEZvbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBGb250SGVhZCgpIHtcbiAgICBjb25zdCBjb25maWdIZWFkc0RhdGEgPSB0aGlzLmNvbmZpZ0hlYWQoKTtcbiAgICBsZXQgc3R5bGVzID0gJyc7XG4gICAgT2JqZWN0LmtleXMoY29uZmlnSGVhZHNEYXRhKS5mb3JFYWNoKChrZXlDb25maWcpID0+IHtcbiAgICAgIGxldCBzdHlsZSA9IGBmb250LWZhbWlseTp2YXIoLS1saWJzLXVpLWZvbnQtZmFtaWx5LW5hbWUsJ0FyaWFsJyk7YDtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGdldChjb25maWdIZWFkc0RhdGEsIGtleUNvbmZpZyBhcyBQYXRoT2Y8SUxpYnNVaUNvbmZpZ0ZvbnRIZWFkaW5nPik7XG4gICAgICBPYmplY3Qua2V5cyhjb25maWcpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBzdHlsZSA9IGAke3N0eWxlfSR7a2V5fToke2dldChjb25maWcsIGtleSl9O2A7XG4gICAgICB9KTtcbiAgICAgIHN0eWxlcyA9IGAke3N0eWxlc30gLmxpYnMtdWktZm9udC0ke2tleUNvbmZpZ317JHtzdHlsZX19LmxpYnMtdWktZm9udC0ke2tleUNvbmZpZ31peyR7c3R5bGUucmVwbGFjZSgvOy9nLCAnICFpbXBvcnRhbnQ7Jyl9fWA7XG4gICAgfSk7XG5cbiAgICBzdHlsZXMgPSBgKntib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7fSR7c3R5bGVzfWA7XG5cbiAgICB0aGlzLnN0eWxlQ2xhc3NIZWFkRWwuaW5uZXJIVE1MID0gc3R5bGVzO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kKHRoaXMuc3R5bGVDbGFzc0hlYWRFbCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQnV0dG9uU2l6ZSgpIHtcbiAgICBjb25zdCBjb25maWdCdXR0b25TaXplID0gdGhpcy5jb25maWdCdXR0b25TaXplKCk7XG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIE9iamVjdC5rZXlzKGNvbmZpZ0J1dHRvblNpemUpLmZvckVhY2goKGtleVNpemUpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGdldChjb25maWdCdXR0b25TaXplLCBrZXlTaXplIGFzIFBhdGhPZjxJTGlic1VpQ29uZmlnQnV0dG9uU2l6ZT4pO1xuICAgICAgT2JqZWN0LmtleXMoY29uZmlnKS5mb3JFYWNoKChrZXlUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBgLS1saWJzLXVpLWJ1dHRvbi1zaXplLSR7a2V5U2l6ZX0tJHtrZXlUeXBlLnJlcGxhY2UoL1tfXS9nLCAnLScpfWA7XG4gICAgICAgIGRvYy5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCBnZXQoY29uZmlnLCBrZXlUeXBlKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBCdXR0b25UYWIoKSB7XG4gICAgY29uc3QgY29uZmlnQnV0dG9uVGFiID0gdGhpcy5jb25maWdCdXR0b25UYWIoKTtcbiAgICBsZXQgc3R5bGVzID0gJyc7XG5cbiAgICBPYmplY3Qua2V5cyhjb25maWdCdXR0b25UYWIpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gZ2V0KGNvbmZpZ0J1dHRvblRhYiwga2V5KTtcbiAgICAgIGNvbnN0IHN0eWxlID0gY29uZmlnID8gc3R5bGVCdXR0b25UYWIoa2V5LCBjb25maWcpIDogJyc7XG5cbiAgICAgIHN0eWxlcyA9IGAke3N0eWxlc30ke3N0eWxlfWA7XG4gICAgfSk7XG4gICAgdGhpcy5zdHlsZUNsYXNzQnV0dG9uVGFiRWwuaW5uZXJIVE1MID0gc3R5bGVzO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kKHRoaXMuc3R5bGVDbGFzc0J1dHRvblRhYkVsKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGhlbWVDb2xvcigpIHtcbiAgICBjb25zdCBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgW1xuICAgICAge1xuICAgICAgICBncm91cDogJ2xpYnMtdWknLFxuICAgICAgICB0eXBlOiAnY29sb3InLFxuICAgICAgICBwcm9wZXJ0eToge1xuICAgICAgICAgIGRlZmF1bHQ6IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgMCk/LmxpZ2h0LFxuICAgICAgICAgIGxpZ2h0XzE6IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgMjApPy5saWdodCxcbiAgICAgICAgICBsaWdodF8yOiBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4odGhpcy50aGVtZUNvbG9yKCksIDkwKT8ubGlnaHQsXG4gICAgICAgICAgbGlnaHRfMzogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCA5NSk/LmxpZ2h0LFxuICAgICAgICAgIGxpZ2h0XzQ6IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgNTApPy5saWdodCxcbiAgICAgICAgICBsaWdodF81OiBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4odGhpcy50aGVtZUNvbG9yKCksIDcwKT8ubGlnaHQsXG4gICAgICAgICAgbGlnaHRfNjogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCA4MCk/LmxpZ2h0LFxuICAgICAgICAgIGRhcms6IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgMjApPy5kYXJrLFxuICAgICAgICAgIGJhY2tncm91bmRfbGlzdDogdGhpcy5iYWNrZ3JvdW5kTGlzdCgpLFxuICAgICAgICAgIGJhY2tncm91bmRfbGlzdF9ob3ZlcjogdGhpcy5iYWNrZ3JvdW5kTGlzdEhvdmVyKCksXG4gICAgICAgICAgYmFja2dyb3VuZF9saXN0X2hvdmVyX2RhbmdlcjogdGhpcy5iYWNrZ3JvdW5kTGlzdEhvdmVyRGFuZ2VyKCksXG4gICAgICAgICAgYmFja2dyb3VuZF9zZWxlY3Rpb246IHRoaXMuYmFja2dyb3VuZFVzZXJTZWxlY3Rpb24oKSxcbiAgICAgICAgICBib3JkZXI6IHRoaXMuYm9yZGVyQ29sb3IoKSxcbiAgICAgICAgICBib3JkZXJfZXJyb3I6IHRoaXMuYm9yZGVyRXJyb3JDb2xvcigpLFxuICAgICAgICAgIHRleHRfZXJyb3I6IHRoaXMudGV4dEVycm9yQ29sb3IoKSxcbiAgICAgICAgICBpY29uX2hvdmVyX2RhbmdlcjogdGhpcy5pY29uSG92ZXJEYW5nZXJDb2xvcigpLFxuICAgICAgICAgIGJhY2tncm91bmRfcmVhZG9ubHk6IHRoaXMuYmFja2dyb3VuZFJlYWRvbmx5Q29sb3IoKSxcbiAgICAgICAgICB0ZXh0X3JlYWRvbmx5OiB0aGlzLnRleHRSZWFkb25seUNvbG9yKCksXG4gICAgICAgICAgYmFja2dyb3VuZF9kaXNhYmxlOiB0aGlzLmJhY2tncm91bmREaXNhYmxlQ29sb3IoKSxcbiAgICAgICAgICB0ZXh0X2Rpc2FibGU6IHRoaXMudGV4dERpc2FibGVDb2xvcigpLFxuICAgICAgICAgIGdyYWRpZW50X2Zyb206IHRoaXMudGhlbWVDb2xvcigpLnRvTG9jYWxlVXBwZXJDYXNlKCkgPT09ICcjMjI2RkY1JyA/IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgMTApPy5saWdodCA6IGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbih0aGlzLnRoZW1lQ29sb3IoKSwgMCk/LmxpZ2h0LFxuICAgICAgICAgIGdyYWRpZW50X3RvOiB0aGlzLnRoZW1lQ29sb3IoKS50b0xvY2FsZVVwcGVyQ2FzZSgpID09PSAnIzIyNkZGNScgPyBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4oJyM1QjJFQkInLCAxMCk/LmxpZ2h0IDogY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luKHRoaXMudGhlbWVDb2xvcigpLCAyMCk/LmRhcmssXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGAtLSR7aXRlbS5ncm91cC5yZXBsYWNlKC9bX10vZywgJy0nKX0tJHtpdGVtLnR5cGUucmVwbGFjZSgvW19dL2csICctJyl9YDtcbiAgICAgIE9iamVjdC5rZXlzKGl0ZW0ucHJvcGVydHkpLmZvckVhY2goKGtleSkgPT4gZG9jLnN0eWxlLnNldFByb3BlcnR5KGAke25hbWV9LSR7a2V5LnJlcGxhY2UoL1tfXS9nLCAnLScpfWAsIChpdGVtLnByb3BlcnR5IGFzIGFueSlba2V5XSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbihzdGVwOiBudW1iZXIsIGNvbG9yPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNvbG9yU3RlcENvbnRyYXN0RnJvbU9yaWdpbihjb2xvciB8fCB0aGlzLnRoZW1lQ29sb3IoKSwgc3RlcCB8fCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2xhc3NHbG9iYWwoKSB7XG4gICAgdGhpcy5zdHlsZUNsYXNzR2xvYmFsRWwuaW5uZXJIVE1MID0gYFxuICAgIC5saWJzLXVpLWJvcmRlci1wcmltYXJ5LWdlbmVyYWx7Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0LCAjMjI2RkY1KTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLXByaW1hcnktZm9jdXMtZ2VuZXJhbHtib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTEsICM0ZThjZjcpO31cbiAgICAubGlicy11aS1ib3JkZXItcHJpbWFyeS1ob3Zlci1nZW5lcmFse2JvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItbGlnaHQtMywgI2Y0ZjhmZik7fVxuICAgIC5saWJzLXVpLWJvcmRlci1nZW5lcmFseyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci10b3AtZ2VuZXJhbHtib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItcmlnaHQtZ2VuZXJhbHtib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1ib3R0b20tZ2VuZXJhbHtib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItZGFzaGVkLWdlbmVyYWx7Ym9yZGVyOiBkYXNoZWQgMXB4IHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLXRvcC1kYXNoZWQtZ2VuZXJhbHtib3JkZXItdG9wOiBkYXNoZWQgMXB4IHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLWxlZnQtZGFzaGVkLWdlbmVyYWx7Ym9yZGVyLWxlZnQ6IGRhc2hlZCAxcHggdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItcmlnaHQtZGFzaGVkLWdlbmVyYWx7Ym9yZGVyLXJpZ2h0OiBkYXNoZWQgMXB4IHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLWJvdHRvbS1kYXNoZWQtZ2VuZXJhbHtib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLWxlZnQtZ2VuZXJhbHtib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLXgtZ2VuZXJhbHtib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTsgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLXktZ2VuZXJhbHtib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpOyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLWxlZnQtdG9wLWdlbmVyYWx7Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7ICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItbGVmdC1ib3R0b20tZ2VuZXJhbHtib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTsgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7fVxuICAgIC5saWJzLXVpLWJvcmRlci1yaWdodC10b3AtZ2VuZXJhbHtib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1saWJzLXVpLWNvbG9yLWJvcmRlciwgI2U2ZTdlYSk7ICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpO31cbiAgICAubGlicy11aS1ib3JkZXItcmlnaHQtYm90dG9tLWdlbmVyYWx7Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXIsICNlNmU3ZWEpOyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpYnMtdWktY29sb3ItYm9yZGVyLCAjZTZlN2VhKTt9XG4gICAgLmxpYnMtdWktYm9yZGVyLWVycm9yLWdlbmVyYWx7Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlicy11aS1jb2xvci1ib3JkZXItZXJyb3IsICNlZTJkNDEpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLWJnLWxpc3Qge2JhY2tncm91bmQtY29sb3I6IHZhcigtLWxpYnMtdWktYmFja2dyb3VuZC1saXN0LCAjZjhmOWZhKTt9XG4gICAgLmxpYnMtdWktYmctbGlzdC1ob3Zlcjpob3ZlciB7YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlicy11aS1iYWNrZ3JvdW5kLWxpc3QtaG92ZXIsICNmOGY5ZmEpO31cbiAgICAubGlicy11aS1iZy1saXN0LWFjdGl2ZSB7YmFja2dyb3VuZC1jb2xvcjogIHZhcigtLWxpYnMtdWktY29sb3ItbGlnaHQtMywgI2Y0ZjhmZik7fVxuICAgIC5saWJzLXVpLWJnLWxpc3QtaG92ZXItYWN0aXZlOmhvdmVyIHtiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO31cbiAgICAubGlicy11aS1iZy1saXN0LWhvdmVyLWFjdGl2ZTphY3RpdmUge2JhY2tncm91bmQtY29sb3I6IHZhcigtLWxpYnMtdWktY29sb3ItbGlnaHQtMywgI2Y0ZjhmZik7fVxuICAgIC5saWJzLXVpLWJnLWxpc3QtaG92ZXItZGFuZ2VyOmhvdmVyIHtiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWJzLXVpLWJhY2tncm91bmQtbGlzdC1ob3Zlci1kYW5nZXIsICNmZWY1ZjYpOyBjb2xvcjogdmFyKC0tbGlicy11aS1jb2xvci1pY29uLWhvdmVyLWRhbmdlciwgI2YxNTc2NykgIWltcG9ydGFudDsgW2NsYXNzKj1cImxpYnMtdWktaWNvbi1cIl0sW2NsYXNzKj1cImljb24tZm9udC0zcmRcIl17JjpiZWZvcmUsJjphZnRlcntjb2xvcjogdmFyKC0tbGlicy11aS1jb2xvci1pY29uLWhvdmVyLWRhbmdlciwgI2YxNTc2NykgIWltcG9ydGFudDt9fX1cbiAgICAubGlicy11aS10ZXh0LWVycm9yIHtjb2xvcjogdmFyKC0tbGlicy11aS1jb2xvci10ZXh0LWVycm9yLCAjZmY1NDU0KSAhaW1wb3J0YW50O31cbiAgICAubGlicy11aS10ZXh0LWVycm9yOjpiZWZvcmUge2NvbG9yOiB2YXIoLS1saWJzLXVpLWNvbG9yLXRleHQtZXJyb3IsICNmZjU0NTQpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLWRpc2FibGUge2N1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246IG5vbmU7Y29sb3I6dmFyKC0tbGlicy11aS1jb2xvci10ZXh0LWRpc2FibGUsICNjZGQwZDYpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLWRpc2FibGU6OmJlZm9yZSB7Y29sb3I6dmFyKC0tbGlicy11aS1jb2xvci10ZXh0LWRpc2FibGUsICM5Y2EyYWQpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLWRpc2FibGUtYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiB2YXIoLS1saWJzLXVpLWNvbG9yLWJhY2tncm91bmQtZGlzYWJsZSwgI2Y4ZjlmYSkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktZGlzYWJsZS1hY3RpdmUge2NvbG9yOnZhcigtLWxpYnMtdWktY29sb3ItbGlnaHQtNCwjOTFiN2ZhKSAhaW1wb3J0YW50O31cbiAgICAubGlicy11aS1kaXNhYmxlLWFjdGl2ZTo6YmVmb3JlIHtjb2xvcjp2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTQsIzkxYjdmYSkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktZGlzYWJsZS1hY3RpdmUtYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiB2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTQsIzkxYjdmYSkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktcmVhZG9ubHkge2N1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtjb2xvcjp2YXIoLS1saWJzLXVpLWNvbG9yLXRleHQtcmVhZG9ubHksICMwNzE2MzEpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLXJlYWRvbmx5OjpiZWZvcmUge2NvbG9yOnZhcigtLWxpYnMtdWktY29sb3ItdGV4dC1yZWFkb25seSwgIzA3MTYzMSkgIWltcG9ydGFudDt9XG4gICAgLmxpYnMtdWktcmVhZG9ubHktYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiB2YXIoLS1saWJzLXVpLWNvbG9yLWJhY2tncm91bmQtcmVhZG9ubHksICNmOGY5ZmEpICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLWljb24taG92ZXItZGFuZ2VyOmhvdmVyIHtjb2xvcjogdmFyKC0tbGlicy11aS1jb2xvci1pY29uLWhvdmVyLWRhbmdlciwgI2YxNTc2NykgIWltcG9ydGFudDsgW2NsYXNzKj1cImxpYnMtdWktaWNvbi1cIl0sW2NsYXNzKj1cImljb24tZm9udC0zcmRcIl17JjpiZWZvcmUsJjphZnRlcntjb2xvcjogdmFyKC0tbGlicy11aS1jb2xvci1pY29uLWhvdmVyLWRhbmdlciwgI2YxNTc2NykgIWltcG9ydGFudDt9fX1cbiAgICAuYnJlYWstd29yZHt3b3JkLWJyZWFrOiBicmVhay13b3JkICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLXNoYWRvdyB7Ym94LXNoYWRvdzogMCAycHggMTBweCAxcHggcmdiYSg1MSwgNTEsIDUxLCAwLjEpO31cbiAgICAubGlicy11aS1zaGFkb3ctbWQge2JveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoNTEsIDUxLCA1MSwgMC4xKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LWxnIHtib3gtc2hhZG93OiAwIDE1cHggMzBweCAwIHJnYmEoNTEsIDUxLCA1MSwgMC4xKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LXRvcCB7Ym94LXNoYWRvdzogMCAtNXB4IDVweCAtNXB4IHJnYmEoNTEsIDUxLCA1MSwgMC4xKTt9XG4gICAgLmxpYnMtdWktc2hhZG93LXJpZ2h0IHtib3gtc2hhZG93OiAtNXB4IDAgNXB4IC01cHggcmdiYSg1MSwgNTEsIDUxLCAwLjEpO31cbiAgICAubGlicy11aS1zaGFkb3ctYm90dG9tIHtib3gtc2hhZG93OiAwIDVweCA1cHggLTVweCByZ2JhKDUxLCA1MSwgNTEsIDAuMSk7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1sZWZ0IHtib3gtc2hhZG93OiA1cHggMCA1cHggLTVweCByZ2JhKDUxLCA1MSwgNTEsIDAuMSk7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1zbSB7Ym94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSg1MSwgNTEsIDUxLCAwLjEpO31cbiAgICAubGlicy11aS1zaGFkb3ctcG9wdXAge2JveC1zaGFkb3c6IC0ycHggMCA0cHggMCByZ2JhKDUxLCA1MSwgNTEsIDAuMSk7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1ub25lIHtib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1zbWFsbCB7Ym94LXNoYWRvdzogMHB4IDFweCAycHggMHB4IHJnYmEoMCwyMCw1MSwuMDQpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLDIwLDUxLC4wMik7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1tZWRpdW0ge2JveC1zaGFkb3c6IDBweCA0cHggOHB4IDBweCByZ2JhKDAsIDIwLCA1MSwgMC4wNCksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDIwLCA1MSwgMC4wMik7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1sYXJnZSB7Ym94LXNoYWRvdzogMHB4IDRweCAxNnB4IDBweCByZ2JhKDAsMjAsNTEsLjEpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLDIwLDUxLC4wMik7fVxuICAgIC5saWJzLXVpLXNoYWRvdy1leHRyYS1sYXJnZSB7Ym94LXNoYWRvdzogMHB4IDhweCA1NnB4IDBweCByZ2JhKDAsMjAsNTEsLjA1KSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwyMCw1MSwuMDIpO31cbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiB2YXIoLS1saWJzLXVpLWNvbG9yLWJhY2tncm91bmQtc2VsZWN0aW9uLCAjMDAwMDAwNDApICFpbXBvcnRhbnQ7fVxuICAgIDo6c2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiB2YXIoLS1saWJzLXVpLWNvbG9yLWJhY2tncm91bmQtc2VsZWN0aW9uLCAjMDAwMDAwNDApICFpbXBvcnRhbnQ7fVxuICAgIGAucmVwbGFjZSgvXFxuKy9nLCAnJyk7XG5cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZCh0aGlzLnN0eWxlQ2xhc3NHbG9iYWxFbCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ1N0cmluZygpIHtcbiAgICBjb25zdCBwcm90b3R5cGUgPSBTdHJpbmcucHJvdG90eXBlIGFzIGFueTtcbiAgICBwcm90b3R5cGUucmVwbGFjZUF0ID0gZnVuY3Rpb24gKGluZGV4OiBudW1iZXIsIHJlcGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuc3BsaXQoJycpO1xuXG4gICAgICB2YWx1ZXNbaW5kZXhdID0gcmVwbGFjZW1lbnQ7XG5cbiAgICAgIHJldHVybiB2YWx1ZXMuam9pbignJyk7XG4gICAgfTtcblxuICAgIHByb3RvdHlwZS5yZXBsYWNlQWxsID0gZnVuY3Rpb24gKGluZGV4OiBudW1iZXIsIHNlcGFyYXRvcjogc3RyaW5nLCByZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoc2VwYXJhdG9yLCAnZycpO1xuXG4gICAgICByZXR1cm4gYCR7dGhpcy5zdWJzdHIoMCwgaW5kZXgpfSR7dGhpcy5zdWJzdHIoaW5kZXggKyAxICsgKHJlcGxhY2VtZW50Py5sZW5ndGggfHwgMCkpLnJlcGxhY2UocmVnZXgsIHJlcGxhY2VtZW50KX1gO1xuICAgIH07XG5cbiAgICBwcm90b3R5cGUub2NjdXJyZW5jZXNCeUNoYXJhY3RlciA9IGZ1bmN0aW9uIChjaGFyYWN0ZXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnNwbGl0KCcnKTtcblxuICAgICAgaWYgKCF2YWx1ZXMgfHwgIXZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKChjaGFyOiBzdHJpbmcpID0+IGNoYXIgPT09IGNoYXJhY3RlcikubGVuZ3RoO1xuICAgIH07XG5cbiAgICBwcm90b3R5cGUuaW5kZXhlc09mQ2hhcmFjdGVyID0gZnVuY3Rpb24gKGNoYXJhY3Rlcjogc3RyaW5nKTogQXJyYXk8bnVtYmVyPiB7XG4gICAgICBjb25zdCB2YWx1ZXM6IEFycmF5PHN0cmluZz4gPSB0aGlzLnNwbGl0KCcnKTtcbiAgICAgIGNvbnN0IGluZGV4ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcblxuICAgICAgaWYgKCF2YWx1ZXMgfHwgIXZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4ZXM7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGluZGV4VmFsdWUgaW4gdmFsdWVzKSB7XG4gICAgICAgIGlmICh2YWx1ZXNbaW5kZXhWYWx1ZV0gPT09IGNoYXJhY3Rlcikge1xuICAgICAgICAgIGluZGV4ZXMucHVzaCgraW5kZXhWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluZGV4ZXM7XG4gICAgfTtcblxuICAgIHByb3RvdHlwZS5pbmRleGVzQnlTdHJpbmcgPSBmdW5jdGlvbiAoc3RyOiBzdHJpbmcpOiBBcnJheTxudW1iZXI+IHtcbiAgICAgIGNvbnN0IHZhbHVlczogQXJyYXk8c3RyaW5nPiA9IHRoaXMgYXMgYW55O1xuICAgICAgY29uc3QgaW5kZXhlczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuXG4gICAgICBpZiAoIXZhbHVlcyB8fCAhdmFsdWVzLmxlbmd0aCB8fCAhc3RyIHx8ICFzdHIubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggPCBzdHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBpbmRleGVzO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBpbmRleFZhbHVlIGluIHZhbHVlcykge1xuICAgICAgICBpZiAodmFsdWVzW2luZGV4VmFsdWVdICE9PSBzdHJbMF0gfHwgK2luZGV4VmFsdWUgKyBzdHIubGVuZ3RoID4gdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBpbmRleCBpbiBzdHIuc3BsaXQoJycpKSB7XG4gICAgICAgICAgaWYgKHZhbHVlc1sraW5kZXhWYWx1ZSArICtpbmRleF0gIT09IHN0cltpbmRleF0pIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbmRleGVzLnB1c2goK2luZGV4VmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5kZXhlcztcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-services-config-project.mjs","sources":["../../../../../libs-ui/services/config-project/src/config-project-data.ts","../../../../../libs-ui/services/config-project/src/config-project.service.ts","../../../../../libs-ui/services/config-project/src/libs-ui-services-config-project.ts"],"sourcesContent":["import { colorStepContrastFromOrigin } from '@libs-ui/utils';\nimport { IColorButtonTab, ILibsUiConfigButtonStatus, ILibsUiConfigButtonTab, ILibsUiConfigFontHeading } from './config-project.interface';\n\nexport const fontConfig = {\n name: 'SVN-Poppins',\n uri_regular: 'SVN-Poppins-Regular.ttf',\n uri_medium: 'SVN-Poppins-Medium.ttf',\n uri_semibold: 'SVN-Poppins-SemiBold.ttf',\n};\n\nexport const weights = {\n uri_regular: '400',\n uri_medium: '500',\n uri_semibold: '600',\n uri_bold: '700',\n};\n\nexport const configHeading: ILibsUiConfigFontHeading = {\n h1r: {\n 'font-size': '30px',\n 'font-weight': '400',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h1m: {\n 'font-size': '30px',\n 'font-weight': '500',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h1s: {\n 'font-size': '30px',\n 'font-weight': '600',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h1b: {\n 'font-size': '30px',\n 'font-weight': '700',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h2r: {\n 'font-size': '20px',\n 'font-weight': '400',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h2m: {\n 'font-size': '20px',\n 'font-weight': '500',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h2s: {\n 'font-size': '20px',\n 'font-weight': '600',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h2b: {\n 'font-size': '20px',\n 'font-weight': '400',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h3r: {\n 'font-size': '16px',\n 'font-weight': '400',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h3m: {\n 'font-size': '16px',\n 'font-weight': '500',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h3s: {\n 'font-size': '16px',\n 'font-weight': '600',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h3b: {\n 'font-size': '16px',\n 'font-weight': '700',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h4r: {\n 'font-size': '13px',\n 'font-weight': '400',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h4m: {\n 'font-size': '13px',\n 'font-weight': '500',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h4s: {\n 'font-size': '13px',\n 'font-weight': '600',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h4b: {\n 'font-size': '13px',\n 'font-weight': '700',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h5r: {\n 'font-size': '12px',\n 'font-weight': '400',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h5m: {\n 'font-size': '12px',\n 'font-weight': '500',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h5s: {\n 'font-size': '12px',\n 'font-weight': '600',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h5b: {\n 'font-size': '12px',\n 'font-weight': '700',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h6r: {\n 'font-size': '11px',\n 'font-weight': '400',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h6m: {\n 'font-size': '11px',\n 'font-weight': '500',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h6s: {\n 'font-size': '11px',\n 'font-weight': '600',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h6b: {\n 'font-size': '11px',\n 'font-weight': '700',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7r: {\n 'font-size': '10px',\n 'font-weight': '400',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7m: {\n 'font-size': '10px',\n 'font-weight': '500',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7s: {\n 'font-size': '10px',\n 'font-weight': '600',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7b: {\n 'font-size': '10px',\n 'font-weight': '700',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n};\n\nexport const sizeButtonConfig = () => ({\n icon: {\n large: '20px',\n medium: '16px',\n small: '16px',\n smaller: '16px',\n },\n large: {\n font_size: '16px',\n line_height: '24px',\n },\n medium: {\n font_size: '12px',\n line_height: '18px',\n },\n small: {\n font_size: '12px',\n line_height: '18px',\n },\n smaller: {\n font_size: '11px',\n line_height: '16px',\n },\n});\n\nexport const configButtonColor = (rootColorInTheme: string) => {\n return {\n 'button-primary': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-primary-revert': {\n configStepColor: {\n text: 0,\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-secondary': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: 90,\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-third': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: '#F8F9FA',\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: '#F8F9FA',\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-secondary-red': {\n configStepColor: {\n text: 0,\n text_hover: -20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: 90,\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: '#EE2D41',\n },\n 'button-outline': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 'white',\n background_active: 'white',\n background_disable: '#F8F9FA',\n border: '#e6e7ea',\n border_hover: 20,\n border_active: -20,\n border_disable: '#E6E7EA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-danger-high': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#ee2d41',\n },\n 'button-danger-low': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#ffa621',\n },\n 'button-green': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#00d16d',\n },\n 'button-violet': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#7239ea',\n },\n 'button-outline-green': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 'white',\n background_active: 'white',\n background_disable: '#F8F9FA',\n border: '#e6e7ea',\n border_hover: 20,\n border_active: -20,\n border_disable: '#E6E7EA',\n },\n rootColor: '#00d16d',\n },\n 'button-secondary-green': {\n configStepColor: {\n text: 0,\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 0,\n background_active: 0,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 0,\n border_active: 0,\n border_disable: '#F8F9FA',\n },\n rootColor: '#00d16d',\n },\n 'button-outline-secondary': {\n configStepColor: {\n text: 0,\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 0,\n background_active: 0,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 0,\n border_active: 0,\n border_disable: '#E6E7EA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-outline-hover-danger': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 0,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 'white',\n background_active: 'white',\n background_disable: '#F8F9FA',\n border: '#e6e7ea',\n border_hover: 0,\n border_active: -20,\n border_disable: '#e6e7ea',\n },\n rootColor: '#f15767',\n },\n 'button-third-hover-danger': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: '#F8F9FA',\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: '#F8F9FA',\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: '#EE2D41',\n },\n };\n};\n\nexport const configLinkButton = (rootColorInTheme: string) => {\n return {\n 'button-link-primary': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: rootColorInTheme,\n },\n 'button-link-third': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: rootColorInTheme,\n },\n 'button-link-danger-high': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#ee2d41',\n },\n 'button-link-danger-low': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#ffa621',\n },\n 'button-link-green': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#00d16d',\n },\n 'button-link-violet': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#7239ea',\n },\n };\n};\n\nexport const configButtonStatus = (): ILibsUiConfigButtonStatus => {\n return {\n blue: {\n color: '#226FF5',\n background: '#E9F1FE',\n },\n green: {\n color: '#00D16D',\n background: '#E6FAF0',\n },\n red: {\n color: '#EE2D41',\n background: '#FDEAEC',\n },\n orange: {\n color: '#F05800',\n background: '#FEEEE6',\n },\n yellow: {\n color: '#FFA621',\n background: '#FFF6E9',\n },\n cyan: {\n color: '#04C8C8',\n background: '#E6FAFA',\n },\n purple: {\n color: '#7239EA',\n background: '#F1EBFD',\n },\n brown: {\n color: '#663259',\n background: '#F0EBEE',\n },\n };\n};\n\nexport const configButtonTab = (): ILibsUiConfigButtonTab => {\n return {\n blue: {\n color: '#226FF5',\n background: '#F4F8FF',\n background_badge: '#E9F1FE',\n },\n green: {\n color: '#00D16D',\n background: '#F2FCF7',\n background_badge: '#E6FAF0',\n },\n red: {\n color: '#EE2D41',\n background: '#FDEAEC',\n background_badge: '#FEE9F1',\n },\n orange: {\n color: '#F05800',\n background: '#FEF7F2',\n background_badge: '#FEEEE6',\n },\n yellow: {\n color: '#FFA621',\n background: '#FFFBF4',\n background_badge: '#FFF6E9',\n },\n cyan: {\n color: '#04C8C8',\n background: '#F2FCFC',\n background_badge: '#E6FAFA',\n },\n purple: {\n color: '#7239EA',\n background: '#F8F5FE',\n background_badge: '#F1EBFD',\n },\n brown: {\n color: '#663259',\n background: '#F7F5F7',\n background_badge: '#F0EBEE',\n },\n };\n};\n\nexport const styleButtonTab = (type: string, config: IColorButtonTab) => {\n const background = config.background || colorStepContrastFromOrigin(config.color, 95)?.light;\n const backgroundBadge = config.background_badge || colorStepContrastFromOrigin(config.color, 90)?.light;\n\n return `.libs-ui-button-tab-${type}[active=\"true\"] {\n background-color: ${background} !important;\n }\n\n .libs-ui-button-tab-${type}[active=\"true\"] > .libs-ui-button-tab-label {\n color: ${config.color} !important;\n }\n\n .libs-ui-button-tab-${type}[active=\"true\"] > .libs-ui-button-tab-badge > .libs-ui-button-tab-badge-circle {\n color: ${config.color} !important;\n background-color: ${backgroundBadge} !important;\n }`;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable, computed, effect, signal } from '@angular/core';\nimport { colorStepContrastFromOrigin, get } from '@libs-ui/utils';\nimport { configButtonColor, configButtonStatus, configButtonTab, configHeading, configLinkButton, fontConfig, sizeButtonConfig, styleButtonTab, weights } from './config-project-data';\nimport { IColorButton, ILibsUiConfigButtonStatus, ILibsUiConfigButtonTab, ILibsUiConfigFontFamily, ILibsUiConfigFontHeading } from './config-project.interface';\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiConfigProjectService {\n private readonly themeColor = signal<string>('#226ff5');\n private readonly borderColor = signal<string>('#e6e7ea');\n private readonly textErrorColor = signal<string>('#ff5454');\n private readonly iconHoverDangerColor = signal<string>('#f15767');\n private readonly borderErrorColor = signal<string>('#ee2d41');\n private readonly backgroundDisableColor = signal<string>('#f8f9fa');\n private readonly textReadonlyColor = signal<string>('#071631');\n private readonly textDisableColor = signal<string>('#9ca2ad');\n private readonly backgroundReadonlyColor = signal<string>('#f8f9fa');\n private readonly backgroundUserSelection = signal<string>('#00000040');\n private readonly backgroundList = signal<string>('#f8f9fa');\n private readonly backgroundListHover = signal<string>('#f8f9fa');\n private readonly backgroundListHoverDanger = signal<string>('#fef5f6');\n private readonly configFont = signal<ILibsUiConfigFontFamily>(fontConfig);\n private readonly configHead = signal<ILibsUiConfigFontHeading>(configHeading);\n private readonly functionGetConfigButtonIncludes = signal<(rootColor: string) => { [key: string]: IColorButton }>(() => {\n return {};\n });\n private readonly configButton = computed<{ [key: string]: IColorButton }>(() => {\n return { ...configButtonColor(this.themeColor()), ...configLinkButton(this.themeColor()), ...this.functionGetConfigButtonIncludes()(this.themeColor()) };\n });\n private readonly configButtonSize = signal(sizeButtonConfig());\n private readonly configButtonStatus = signal<ILibsUiConfigButtonStatus>(configButtonStatus());\n private readonly configButtonTab = signal<ILibsUiConfigButtonTab>(configButtonTab());\n private readonly styleClassGlobalEl = document.createElement('style');\n private readonly styleClassHeadEl = document.createElement('style');\n private readonly styleClassButtonTabEl = document.createElement('style');\n constructor() {\n effect(() => {\n this.setThemeColor();\n });\n\n effect(() => {\n this.setupFontFamily();\n });\n\n effect(() => {\n this.setupFontHead();\n });\n\n effect(() => {\n this.setupButtonTab();\n });\n\n effect(() => {\n this.setupButtonSize();\n });\n\n this.configString();\n this.setClassGlobal();\n }\n\n public set ThemeColor(color: string) {\n this.themeColor.set(color || '#226ff5');\n }\n\n public set BorderColor(color: string) {\n this.borderColor.set(color || '#e6e7ea');\n }\n\n public set BorderErrorColor(color: string) {\n this.borderErrorColor.set(color || '#ee2d41');\n }\n\n public set TextErrorColor(color: string) {\n this.textErrorColor.set(color || '#ff5454');\n }\n\n public set IconHoverDangerColor(color: string) {\n this.iconHoverDangerColor.set(color || '#ff5454');\n }\n\n public set BackgroundReadonlyColor(color: string) {\n this.backgroundReadonlyColor.set(color || '#f15767');\n }\n\n public set TextReadonlyColor(color: string) {\n this.textReadonlyColor.set(color || '#071631');\n }\n\n public set BackgroundUserSelection(color: string) {\n this.backgroundUserSelection.set(color || '#00000040');\n }\n\n public set BackgroundList(color: string) {\n this.backgroundList.set(color || '#f8f9fa');\n }\n\n public set BackgroundListHover(color: string) {\n this.backgroundListHover.set(color || '#f8f9fa');\n }\n\n public set BackgroundListHoverDanger(color: string) {\n this.backgroundListHover.set(color || '#fef5f6');\n }\n\n public set BackgroundDisableColor(color: string) {\n this.backgroundDisableColor.set(color || '#f8f9fa');\n }\n\n public set TextDisableColor(color: string) {\n this.textDisableColor.set(color || '#9ca2ad');\n }\n\n public set ConfigFont(configFont: ILibsUiConfigFontFamily) {\n this.configFont.set({ ...configFont });\n }\n\n public set ConfigFontHead(configHead: ILibsUiConfigFontHeading) {\n this.configHead.set({ ...configHead });\n }\n\n public get ConfigButton() {\n return this.configButton;\n }\n\n public set FunctionGetConfigButtonIncludes(functionGetConfigButtonIncludes: (rootColor: string) => { [key: string]: IColorButton }) {\n this.functionGetConfigButtonIncludes.set(functionGetConfigButtonIncludes);\n }\n\n public get ConfigButtonStatus() {\n return this.configButtonStatus();\n }\n\n public set ConfigButtonStatus(config: ILibsUiConfigButtonStatus) {\n this.configButtonStatus.set(config);\n }\n\n public set ConfigButtonTab(config: ILibsUiConfigButtonTab) {\n this.configButtonTab.set(config);\n }\n\n // public hàm để sử dụng cho component input sử dụng tagInput = frameArea;\n public setupFontFamily(currentDoc?: Document) {\n try {\n currentDoc = currentDoc || document;\n const doc = currentDoc.documentElement;\n\n doc.style.setProperty('--libs-ui-font-family-name', `${this.configFont().name},Arial, Helvetica, sans-serif`);\n Object.keys(weights).forEach((key) => {\n if (!get(this.configFont(), key)) {\n return;\n }\n const fontFace = new FontFace(this.configFont().name, `url(${get(this.configFont(), key)})`, { weight: get(weights, key) });\n fontFace.load().then((loadedFont) => {\n if (currentDoc && 'add' in currentDoc.fonts) {\n (currentDoc.fonts as any).add(loadedFont);\n }\n });\n });\n } catch (error) {\n console.log(error);\n }\n }\n\n private setupFontHead() {\n const configHeadsData = this.configHead();\n let styles = '';\n Object.keys(configHeadsData).forEach((keyConfig) => {\n let style = `font-family:var(--libs-ui-font-family-name,'Arial');`;\n const config = get(configHeadsData, keyConfig);\n Object.keys(config).forEach((key) => {\n style = `${style}${key}:${get(config, key)};`;\n });\n styles = `${styles} .libs-ui-font-${keyConfig}{${style}}.libs-ui-font-${keyConfig}i{${style.replace(/;/g, ' !important;')}}`;\n });\n\n styles = `*{box-sizing: border-box !important;}${styles}`;\n\n this.styleClassHeadEl.innerHTML = styles;\n document.head.append(this.styleClassHeadEl);\n }\n\n private setupButtonSize() {\n const configButtonSize = this.configButtonSize();\n const doc = document.documentElement;\n Object.keys(configButtonSize).forEach((keySize) => {\n const config = get(configButtonSize, keySize);\n Object.keys(config).forEach((keyType) => {\n const name = `--libs-ui-button-size-${keySize}-${keyType.replace(/[_]/g, '-')}`;\n doc.style.setProperty(name, get(config, keyType));\n });\n });\n }\n\n private setupButtonTab() {\n const configButtonTab = this.configButtonTab();\n let styles = '';\n\n Object.keys(configButtonTab).forEach((key) => {\n const config = get(configButtonTab, key);\n const style = config ? styleButtonTab(key, config) : '';\n\n styles = `${styles}${style}`;\n });\n this.styleClassButtonTabEl.innerHTML = styles;\n document.head.append(this.styleClassButtonTabEl);\n }\n\n private setThemeColor() {\n const doc = document.documentElement;\n [\n {\n group: 'libs-ui',\n type: 'color',\n property: {\n default: colorStepContrastFromOrigin(this.themeColor(), 0)?.light,\n light_1: colorStepContrastFromOrigin(this.themeColor(), 20)?.light,\n light_2: colorStepContrastFromOrigin(this.themeColor(), 90)?.light,\n light_3: colorStepContrastFromOrigin(this.themeColor(), 95)?.light,\n light_4: colorStepContrastFromOrigin(this.themeColor(), 50)?.light,\n light_5: colorStepContrastFromOrigin(this.themeColor(), 70)?.light,\n light_6: colorStepContrastFromOrigin(this.themeColor(), 80)?.light,\n dark: colorStepContrastFromOrigin(this.themeColor(), 20)?.dark,\n background_list: this.backgroundList(),\n background_list_hover: this.backgroundListHover(),\n background_list_hover_danger: this.backgroundListHoverDanger(),\n background_selection: this.backgroundUserSelection(),\n border: this.borderColor(),\n border_error: this.borderErrorColor(),\n text_error: this.textErrorColor(),\n icon_hover_danger: this.iconHoverDangerColor(),\n background_readonly: this.backgroundReadonlyColor(),\n text_readonly: this.textReadonlyColor(),\n background_disable: this.backgroundDisableColor(),\n text_disable: this.textDisableColor(),\n gradient_from: this.themeColor().toLocaleUpperCase() === '#226FF5' ? colorStepContrastFromOrigin(this.themeColor(), 10)?.light : colorStepContrastFromOrigin(this.themeColor(), 0)?.light,\n gradient_to: this.themeColor().toLocaleUpperCase() === '#226FF5' ? colorStepContrastFromOrigin('#5B2EBB', 10)?.light : colorStepContrastFromOrigin(this.themeColor(), 20)?.dark,\n },\n },\n ].forEach((item) => {\n const name = `--${item.group.replace(/[_]/g, '-')}-${item.type.replace(/[_]/g, '-')}`;\n Object.keys(item.property).forEach((key) => doc.style.setProperty(`${name}-${key.replace(/[_]/g, '-')}`, (item.property as any)[key]));\n });\n }\n\n public colorStepContrastFromOrigin(step: number, color?: string) {\n return colorStepContrastFromOrigin(color || this.themeColor(), step || 0);\n }\n\n private setClassGlobal() {\n this.styleClassGlobalEl.innerHTML = `\n .libs-ui-border-primary-general{border: 1px solid var(--libs-ui-color-default, #226FF5);}\n .libs-ui-border-primary-focus-general{border: 1px solid var(--libs-ui-color-light-1, #4e8cf7);}\n .libs-ui-border-primary-hover-general{border: 1px solid var(--libs-ui-color-light-3, #f4f8ff);}\n .libs-ui-border-general{ border: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-top-general{border-top: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-general{border-right: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-bottom-general{border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-dashed-general{border: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-top-dashed-general{border-top: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-dashed-general{border-left: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-dashed-general{border-right: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-bottom-dashed-general{border-bottom: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-x-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea); border-right: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-y-general{border-top: 1px solid var(--libs-ui-color-border, #e6e7ea); border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-top-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea); border-top: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-bottom-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea); border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-top-general{border-right: 1px solid var(--libs-ui-color-border, #e6e7ea); border-top: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-bottom-general{border-right: 1px solid var(--libs-ui-color-border, #e6e7ea); border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-error-general{border: 1px solid var(--libs-ui-color-border-error, #ee2d41) !important;}\n .libs-ui-bg-list {background-color: var(--libs-ui-background-list, #f8f9fa);}\n .libs-ui-bg-list-hover:hover {background-color: var(--libs-ui-background-list-hover, #f8f9fa);}\n .libs-ui-bg-list-active {background-color: var(--libs-ui-color-light-3, #f4f8ff);}\n .libs-ui-bg-list-hover-active:hover {background-color: #f8f9fa;}\n .libs-ui-bg-list-hover-active:active {background-color: var(--libs-ui-color-light-3, #f4f8ff);}\n .libs-ui-bg-list-hover-danger:hover {background-color: var(--libs-ui-background-list-hover-danger, #fef5f6); color: var(--libs-ui-color-icon-hover-danger, #f15767) !important; [class*=\"libs-ui-icon-\"],[class*=\"icon-font-3rd\"]{&:before,&:after{color: var(--libs-ui-color-icon-hover-danger, #f15767) !important;}}}\n .libs-ui-text-error {color: var(--libs-ui-color-text-error, #ff5454) !important;}\n .libs-ui-text-error::before {color: var(--libs-ui-color-text-error, #ff5454) !important;}\n .libs-ui-disable {cursor: not-allowed !important;text-decoration: none;color:var(--libs-ui-color-text-disable, #cdd0d6) !important;}\n .libs-ui-disable::before {color:var(--libs-ui-color-text-disable, #9ca2ad) !important;}\n .libs-ui-disable-background{background: var(--libs-ui-color-background-disable, #f8f9fa) !important;}\n .libs-ui-disable-active {color:var(--libs-ui-color-light-4,#91b7fa) !important;}\n .libs-ui-disable-active::before {color:var(--libs-ui-color-light-4,#91b7fa) !important;}\n .libs-ui-disable-active-background{background: var(--libs-ui-color-light-4,#91b7fa) !important;}\n .libs-ui-readonly {cursor: not-allowed !important;color:var(--libs-ui-color-text-readonly, #071631) !important;}\n .libs-ui-readonly::before {color:var(--libs-ui-color-text-readonly, #071631) !important;}\n .libs-ui-readonly-background{background: var(--libs-ui-color-background-readonly, #f8f9fa) !important;}\n .libs-ui-icon-hover-danger:hover {color: var(--libs-ui-color-icon-hover-danger, #f15767) !important; [class*=\"libs-ui-icon-\"],[class*=\"icon-font-3rd\"]{&:before,&:after{color: var(--libs-ui-color-icon-hover-danger, #f15767) !important;}}}\n .break-word{word-break: break-word !important;}\n .libs-ui-shadow {box-shadow: 0 2px 10px 1px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-md {box-shadow: 0 4px 8px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-lg {box-shadow: 0 15px 30px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-top {box-shadow: 0 -5px 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-right {box-shadow: -5px 0 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-bottom {box-shadow: 0 5px 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-left {box-shadow: 5px 0 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-sm {box-shadow: 0 1px 2px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-popup {box-shadow: -2px 0 4px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-none {box-shadow: none !important;}\n .libs-ui-shadow-small {box-shadow: 0px 1px 2px 0px rgba(0,20,51,.04), 0px 1px 1px 0px rgba(0,20,51,.02);}\n .libs-ui-shadow-medium {box-shadow: 0px 4px 8px 0px rgba(0, 20, 51, 0.04), 0px 1px 1px 0px rgba(0, 20, 51, 0.02);}\n .libs-ui-shadow-large {box-shadow: 0px 4px 16px 0px rgba(0,20,51,.1), 0px 1px 1px 0px rgba(0,20,51,.02);}\n .libs-ui-shadow-extra-large {box-shadow: 0px 8px 56px 0px rgba(0,20,51,.05), 0px 1px 1px 0px rgba(0,20,51,.02);}\n ::-moz-selection {background: var(--libs-ui-color-background-selection, #00000040) !important;}\n ::selection {background: var(--libs-ui-color-background-selection, #00000040) !important;}\n `.replace(/\\n+/g, '');\n\n document.head.append(this.styleClassGlobalEl);\n }\n\n private configString() {\n const prototype = String.prototype as any;\n prototype.replaceAt = function (index: number, replacement: string) {\n const values = this.split('');\n\n values[index] = replacement;\n\n return values.join('');\n };\n\n prototype.replaceAll = function (index: number, separator: string, replacement: string) {\n const regex = new RegExp(separator, 'g');\n\n return `${this.substr(0, index)}${this.substr(index + 1 + (replacement?.length || 0)).replace(regex, replacement)}`;\n };\n\n prototype.occurrencesByCharacter = function (character: string): number {\n const values = this.split('');\n\n if (!values || !values.length) {\n return 0;\n }\n\n return values.filter((char: string) => char === character).length;\n };\n\n prototype.indexesOfCharacter = function (character: string): Array<number> {\n const values: Array<string> = this.split('');\n const indexes: Array<number> = [];\n\n if (!values || !values.length) {\n return indexes;\n }\n for (const indexValue in values) {\n if (values[indexValue] === character) {\n indexes.push(+indexValue);\n }\n }\n\n return indexes;\n };\n\n prototype.indexesByString = function (str: string): Array<number> {\n const values: Array<string> = this as any;\n const indexes: Array<number> = [];\n\n if (!values || !values.length || !str || !str.length || values.length < str.length) {\n return indexes;\n }\n for (const indexValue in values) {\n if (values[indexValue] !== str[0] || +indexValue + str.length > values.length) {\n continue;\n }\n\n for (const index in str.split('')) {\n if (values[+indexValue + +index] !== str[index]) {\n break;\n }\n }\n indexes.push(+indexValue);\n }\n\n return indexes;\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGO,MAAM,UAAU,GAAG;AACxB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,WAAW,EAAE,yBAAyB;AACtC,IAAA,UAAU,EAAE,wBAAwB;AACpC,IAAA,YAAY,EAAE,0BAA0B;;AAGnC,MAAM,OAAO,GAAG;AACrB,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,QAAQ,EAAE,KAAK;;AAGV,MAAM,aAAa,GAA6B;AACrD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,gBAAgB,EAAE,0BAA0B;AAC7C,KAAA;;AAGI,MAAM,gBAAgB,GAAG,OAAO;AACrC,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,MAAM;AAChB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACpB,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACpB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACpB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACpB,KAAA;AACF,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAC,gBAAwB,KAAI;IAC5D,OAAO;AACL,QAAA,gBAAgB,EAAE;AAChB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,gBAAgB,EAAE,EAAE;gBACpB,iBAAiB,EAAE,CAAC,EAAE;AACtB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,gBAAgB,EAAE,EAAE;gBACpB,iBAAiB,EAAE,CAAC,EAAE;AACtB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,iBAAiB,EAAE,EAAE;AACrB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,iBAAiB,EAAE,EAAE;AACrB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;gBACP,UAAU,EAAE,CAAC,EAAE;gBACf,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,iBAAiB,EAAE,EAAE;AACrB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,gBAAgB,EAAE,OAAO;AACzB,gBAAA,iBAAiB,EAAE,OAAO;AAC1B,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,gBAAgB,EAAE,EAAE;gBACpB,iBAAiB,EAAE,CAAC,EAAE;AACtB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,gBAAgB,EAAE,EAAE;gBACpB,iBAAiB,EAAE,CAAC,EAAE;AACtB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,gBAAgB,EAAE,EAAE;gBACpB,iBAAiB,EAAE,CAAC,EAAE;AACtB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,gBAAgB,EAAE,EAAE;gBACpB,iBAAiB,EAAE,CAAC,EAAE;AACtB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,gBAAgB,EAAE,OAAO;AACzB,gBAAA,iBAAiB,EAAE,OAAO;AAC1B,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,0BAA0B,EAAE;AAC1B,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,6BAA6B,EAAE;AAC7B,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,gBAAgB,EAAE,OAAO;AACzB,gBAAA,iBAAiB,EAAE,OAAO;AAC1B,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,CAAC,EAAE;AAClB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,2BAA2B,EAAE;AAC3B,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,iBAAiB,EAAE,EAAE;AACrB,gBAAA,kBAAkB,EAAE,SAAS;AAC7B,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,cAAc,EAAE,SAAS;AAC1B,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;KACF;AACH;AAEO,MAAM,gBAAgB,GAAG,CAAC,gBAAwB,KAAI;IAC3D,OAAO;AACL,QAAA,qBAAqB,EAAE;AACrB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACxB,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACxB,aAAA;AACD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA;AACD,QAAA,yBAAyB,EAAE;AACzB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACxB,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACxB,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACxB,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC,EAAE;AAChB,gBAAA,YAAY,EAAE,SAAS;AACxB,aAAA;AACD,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA;KACF;AACH;AAEO,MAAM,kBAAkB,GAAG,MAAgC;IAChE,OAAO;AACL,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;AACD,QAAA,GAAG,EAAE;AACH,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;KACF;AACH;AAEO,MAAM,eAAe,GAAG,MAA6B;IAC1D,OAAO;AACL,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;AACD,QAAA,GAAG,EAAE;AACH,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,gBAAgB,EAAE,SAAS;AAC5B,SAAA;KACF;AACH;MAEa,cAAc,GAAG,CAAC,IAAY,EAAE,MAAuB,KAAI;AACtE,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK;AAC5F,IAAA,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,IAAI,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK;AAEvG,IAAA,OAAO,uBAAuB,IAAI,CAAA;wBACZ,UAAU,CAAA;;;wBAGV,IAAI,CAAA;AACf,WAAA,EAAA,MAAM,CAAC,KAAK,CAAA;;;wBAGD,IAAI,CAAA;AACf,WAAA,EAAA,MAAM,CAAC,KAAK,CAAA;wBACD,eAAe,CAAA;IACnC;AACJ;;ACtnBA;MAQa,0BAA0B,CAAA;AACpB,IAAA,UAAU,GAAG,MAAM,CAAS,SAAS,CAAC;AACtC,IAAA,WAAW,GAAG,MAAM,CAAS,SAAS,CAAC;AACvC,IAAA,cAAc,GAAG,MAAM,CAAS,SAAS,CAAC;AAC1C,IAAA,oBAAoB,GAAG,MAAM,CAAS,SAAS,CAAC;AAChD,IAAA,gBAAgB,GAAG,MAAM,CAAS,SAAS,CAAC;AAC5C,IAAA,sBAAsB,GAAG,MAAM,CAAS,SAAS,CAAC;AAClD,IAAA,iBAAiB,GAAG,MAAM,CAAS,SAAS,CAAC;AAC7C,IAAA,gBAAgB,GAAG,MAAM,CAAS,SAAS,CAAC;AAC5C,IAAA,uBAAuB,GAAG,MAAM,CAAS,SAAS,CAAC;AACnD,IAAA,uBAAuB,GAAG,MAAM,CAAS,WAAW,CAAC;AACrD,IAAA,cAAc,GAAG,MAAM,CAAS,SAAS,CAAC;AAC1C,IAAA,mBAAmB,GAAG,MAAM,CAAS,SAAS,CAAC;AAC/C,IAAA,yBAAyB,GAAG,MAAM,CAAS,SAAS,CAAC;AACrD,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,IAAA,UAAU,GAAG,MAAM,CAA2B,aAAa,CAAC;AAC5D,IAAA,+BAA+B,GAAG,MAAM,CAAyD,MAAK;AACrH,QAAA,OAAO,EAAE;AACX,IAAA,CAAC,CAAC;AACe,IAAA,YAAY,GAAG,QAAQ,CAAkC,MAAK;AAC7E,QAAA,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAC1J,IAAA,CAAC,CAAC;AACe,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;AAC7C,IAAA,kBAAkB,GAAG,MAAM,CAA4B,kBAAkB,EAAE,CAAC;AAC5E,IAAA,eAAe,GAAG,MAAM,CAAyB,eAAe,EAAE,CAAC;AACnE,IAAA,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACpD,IAAA,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAClD,IAAA,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACxE,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,eAAe,EAAE;AACxB,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,cAAc,EAAE;AACvB,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,eAAe,EAAE;AACxB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,IAAW,UAAU,CAAC,KAAa,EAAA;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IACzC;IAEA,IAAW,WAAW,CAAC,KAAa,EAAA;QAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAC1C;IAEA,IAAW,gBAAgB,CAAC,KAAa,EAAA;QACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAC/C;IAEA,IAAW,cAAc,CAAC,KAAa,EAAA;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAC7C;IAEA,IAAW,oBAAoB,CAAC,KAAa,EAAA;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IACnD;IAEA,IAAW,uBAAuB,CAAC,KAAa,EAAA;QAC9C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IACtD;IAEA,IAAW,iBAAiB,CAAC,KAAa,EAAA;QACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAChD;IAEA,IAAW,uBAAuB,CAAC,KAAa,EAAA;QAC9C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;IACxD;IAEA,IAAW,cAAc,CAAC,KAAa,EAAA;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAC7C;IAEA,IAAW,mBAAmB,CAAC,KAAa,EAAA;QAC1C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAClD;IAEA,IAAW,yBAAyB,CAAC,KAAa,EAAA;QAChD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAClD;IAEA,IAAW,sBAAsB,CAAC,KAAa,EAAA;QAC7C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IACrD;IAEA,IAAW,gBAAgB,CAAC,KAAa,EAAA;QACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IAC/C;IAEA,IAAW,UAAU,CAAC,UAAmC,EAAA;QACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;IACxC;IAEA,IAAW,cAAc,CAAC,UAAoC,EAAA;QAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;IACxC;AAEA,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,YAAY;IAC1B;IAEA,IAAW,+BAA+B,CAAC,+BAAuF,EAAA;AAChI,QAAA,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAC3E;AAEA,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE;IAClC;IAEA,IAAW,kBAAkB,CAAC,MAAiC,EAAA;AAC7D,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC;IAEA,IAAW,eAAe,CAAC,MAA8B,EAAA;AACvD,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;IAClC;;AAGO,IAAA,eAAe,CAAC,UAAqB,EAAA;AAC1C,QAAA,IAAI;AACF,YAAA,UAAU,GAAG,UAAU,IAAI,QAAQ;AACnC,YAAA,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe;AAEtC,YAAA,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAA,6BAAA,CAA+B,CAAC;YAC7G,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE;oBAChC;gBACF;AACA,gBAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA,IAAA,EAAO,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAA,CAAA,CAAG,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC3H,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,KAAI;oBAClC,IAAI,UAAU,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE;AAC1C,wBAAA,UAAU,CAAC,KAAa,CAAC,GAAG,CAAC,UAAU,CAAC;oBAC3C;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACpB;IACF;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE;QACzC,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;YACjD,IAAI,KAAK,GAAG,CAAA,oDAAA,CAAsD;YAClE,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAClC,gBAAA,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;AAC/C,YAAA,CAAC,CAAC;AACF,YAAA,MAAM,GAAG,CAAA,EAAG,MAAM,kBAAkB,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,eAAA,EAAkB,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG;AAC9H,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,GAAG,CAAA,qCAAA,EAAwC,MAAM,CAAA,CAAE;AAEzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,MAAM;QACxC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC7C;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe;QACpC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YAChD,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACtC,gBAAA,MAAM,IAAI,GAAG,CAAA,sBAAA,EAAyB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC/E,gBAAA,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;QAC9C,IAAI,MAAM,GAAG,EAAE;QAEf,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC;AACxC,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;AAEvD,YAAA,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,EAAG,KAAK,EAAE;AAC9B,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,MAAM;QAC7C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAClD;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe;AACpC,QAAA;AACE,YAAA;AACE,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,QAAQ,EAAE;oBACR,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK;oBACjE,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK;oBAClE,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK;oBAClE,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK;oBAClE,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK;oBAClE,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK;oBAClE,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK;oBAClE,IAAI,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI;AAC9D,oBAAA,eAAe,EAAE,IAAI,CAAC,cAAc,EAAE;AACtC,oBAAA,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACjD,oBAAA,4BAA4B,EAAE,IAAI,CAAC,yBAAyB,EAAE;AAC9D,oBAAA,oBAAoB,EAAE,IAAI,CAAC,uBAAuB,EAAE;AACpD,oBAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;AAC1B,oBAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACrC,oBAAA,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE;AACjC,oBAAA,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,EAAE;AAC9C,oBAAA,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE;AACnD,oBAAA,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACvC,oBAAA,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE;AACjD,oBAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACrC,oBAAA,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,KAAK,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK;AACzL,oBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,KAAK,SAAS,GAAG,2BAA2B,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI;AAChL,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACjB,MAAM,IAAI,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA,CAAE;AACrF,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAG,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAG,IAAI,CAAC,QAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACxI,QAAA,CAAC,CAAC;IACJ;IAEO,2BAA2B,CAAC,IAAY,EAAE,KAAc,EAAA;AAC7D,QAAA,OAAO,2BAA2B,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;IAC3E;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDnC,IAAA,CAAA,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAErB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC/C;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAgB;AACzC,QAAA,SAAS,CAAC,SAAS,GAAG,UAAU,KAAa,EAAE,WAAmB,EAAA;YAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAE7B,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW;AAE3B,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,QAAA,CAAC;QAED,SAAS,CAAC,UAAU,GAAG,UAAU,KAAa,EAAE,SAAiB,EAAE,WAAmB,EAAA;YACpF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;AAExC,YAAA,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AACrH,QAAA,CAAC;AAED,QAAA,SAAS,CAAC,sBAAsB,GAAG,UAAU,SAAiB,EAAA;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAE7B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7B,gBAAA,OAAO,CAAC;YACV;AAEA,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAY,KAAK,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM;AACnE,QAAA,CAAC;AAED,QAAA,SAAS,CAAC,kBAAkB,GAAG,UAAU,SAAiB,EAAA;YACxD,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAkB,EAAE;YAEjC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7B,gBAAA,OAAO,OAAO;YAChB;AACA,YAAA,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;AAC/B,gBAAA,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;AACpC,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;gBAC3B;YACF;AAEA,YAAA,OAAO,OAAO;AAChB,QAAA,CAAC;AAED,QAAA,SAAS,CAAC,eAAe,GAAG,UAAU,GAAW,EAAA;YAC/C,MAAM,MAAM,GAAkB,IAAW;YACzC,MAAM,OAAO,GAAkB,EAAE;YAEjC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;AAClF,gBAAA,OAAO,OAAO;YAChB;AACA,YAAA,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;gBAC/B,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;oBAC7E;gBACF;gBAEA,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACjC,oBAAA,IAAI,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC/C;oBACF;gBACF;AACA,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;YAC3B;AAEA,YAAA,OAAO,OAAO;AAChB,QAAA,CAAC;IACH;wGA/WW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA;;4FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"libs-ui-services-config-project.mjs","sources":["../../../../../libs-ui/services/config-project/src/config-project-data.ts","../../../../../libs-ui/services/config-project/src/config-project.service.ts","../../../../../libs-ui/services/config-project/src/libs-ui-services-config-project.ts"],"sourcesContent":["import { colorStepContrastFromOrigin } from '@libs-ui/utils';\nimport { IColorButtonTab, ILibsUiConfigButtonSize, ILibsUiConfigButtonStatus, ILibsUiConfigButtonTab, ILibsUiConfigFontHeading, ILibsUiConfigFontWeight } from './config-project.interface';\n\nexport const fontConfig = {\n name: 'SVN-Poppins',\n uri_regular: 'SVN-Poppins-Regular.ttf',\n uri_medium: 'SVN-Poppins-Medium.ttf',\n uri_semibold: 'SVN-Poppins-SemiBold.ttf',\n};\n\nexport const weights: ILibsUiConfigFontWeight = {\n uri_regular: '400',\n uri_medium: '500',\n uri_semibold: '600',\n uri_bold: '700',\n};\n\nexport const configHeading: ILibsUiConfigFontHeading = {\n h1r: {\n 'font-size': '30px',\n 'font-weight': '400',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h1m: {\n 'font-size': '30px',\n 'font-weight': '500',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h1s: {\n 'font-size': '30px',\n 'font-weight': '600',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h1b: {\n 'font-size': '30px',\n 'font-weight': '700',\n 'line-height': '42px',\n 'letter-spacing': 'calc(30px * (0.5 / 100))',\n },\n h2r: {\n 'font-size': '20px',\n 'font-weight': '400',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h2m: {\n 'font-size': '20px',\n 'font-weight': '500',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h2s: {\n 'font-size': '20px',\n 'font-weight': '600',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h2b: {\n 'font-size': '20px',\n 'font-weight': '400',\n 'line-height': '28px',\n 'letter-spacing': 'calc(20px * (0.5 / 100))',\n },\n h3r: {\n 'font-size': '16px',\n 'font-weight': '400',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h3m: {\n 'font-size': '16px',\n 'font-weight': '500',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h3s: {\n 'font-size': '16px',\n 'font-weight': '600',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h3b: {\n 'font-size': '16px',\n 'font-weight': '700',\n 'line-height': '24px',\n 'letter-spacing': 'calc(16px * (0.5 / 100))',\n },\n h4r: {\n 'font-size': '13px',\n 'font-weight': '400',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h4m: {\n 'font-size': '13px',\n 'font-weight': '500',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h4s: {\n 'font-size': '13px',\n 'font-weight': '600',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h4b: {\n 'font-size': '13px',\n 'font-weight': '700',\n 'line-height': '20px',\n 'letter-spacing': 'calc(13px * (0.5 / 100))',\n },\n h5r: {\n 'font-size': '12px',\n 'font-weight': '400',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h5m: {\n 'font-size': '12px',\n 'font-weight': '500',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h5s: {\n 'font-size': '12px',\n 'font-weight': '600',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h5b: {\n 'font-size': '12px',\n 'font-weight': '700',\n 'line-height': '18px',\n 'letter-spacing': 'calc(12px * (0.5 / 100))',\n },\n h6r: {\n 'font-size': '11px',\n 'font-weight': '400',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h6m: {\n 'font-size': '11px',\n 'font-weight': '500',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h6s: {\n 'font-size': '11px',\n 'font-weight': '600',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h6b: {\n 'font-size': '11px',\n 'font-weight': '700',\n 'line-height': '16px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7r: {\n 'font-size': '10px',\n 'font-weight': '400',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7m: {\n 'font-size': '10px',\n 'font-weight': '500',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7s: {\n 'font-size': '10px',\n 'font-weight': '600',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n h7b: {\n 'font-size': '10px',\n 'font-weight': '700',\n 'line-height': '14px',\n 'letter-spacing': 'calc(11px * (0.5 / 100))',\n },\n};\n\nexport const sizeButtonConfig = (): ILibsUiConfigButtonSize => ({\n icon: {\n large: '20px',\n medium: '16px',\n small: '16px',\n smaller: '16px',\n },\n large: {\n font_size: '16px',\n line_height: '24px',\n },\n medium: {\n font_size: '12px',\n line_height: '18px',\n },\n small: {\n font_size: '12px',\n line_height: '18px',\n },\n smaller: {\n font_size: '11px',\n line_height: '16px',\n },\n});\n\nexport const configButtonColor = (rootColorInTheme: string) => {\n return {\n 'button-primary': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-primary-revert': {\n configStepColor: {\n text: 0,\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-secondary': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: 90,\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-third': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: '#F8F9FA',\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: '#F8F9FA',\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-secondary-red': {\n configStepColor: {\n text: 0,\n text_hover: -20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: 90,\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: '#EE2D41',\n },\n 'button-outline': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 'white',\n background_active: 'white',\n background_disable: '#F8F9FA',\n border: '#e6e7ea',\n border_hover: 20,\n border_active: -20,\n border_disable: '#E6E7EA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-danger-high': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#ee2d41',\n },\n 'button-danger-low': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#ffa621',\n },\n 'button-green': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#00d16d',\n },\n 'button-violet': {\n configStepColor: {\n text: 'white',\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 0,\n background_hover: 20,\n background_active: -20,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 20,\n border_active: -20,\n border_disable: '#F8F9FA',\n },\n rootColor: '#7239ea',\n },\n 'button-outline-green': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 'white',\n background_active: 'white',\n background_disable: '#F8F9FA',\n border: '#e6e7ea',\n border_hover: 20,\n border_active: -20,\n border_disable: '#E6E7EA',\n },\n rootColor: '#00d16d',\n },\n 'button-secondary-green': {\n configStepColor: {\n text: 0,\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 0,\n background_active: 0,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 0,\n border_active: 0,\n border_disable: '#F8F9FA',\n },\n rootColor: '#00d16d',\n },\n 'button-outline-secondary': {\n configStepColor: {\n text: 0,\n text_hover: 'white',\n text_active: 'white',\n text_disable: '#CDD0D6',\n background: 90,\n background_hover: 0,\n background_active: 0,\n background_disable: '#F8F9FA',\n border: 0,\n border_hover: 0,\n border_active: 0,\n border_disable: '#E6E7EA',\n },\n rootColor: rootColorInTheme,\n },\n 'button-outline-hover-danger': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 0,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: 'white',\n background_hover: 'white',\n background_active: 'white',\n background_disable: '#F8F9FA',\n border: '#e6e7ea',\n border_hover: 0,\n border_active: -20,\n border_disable: '#e6e7ea',\n },\n rootColor: '#f15767',\n },\n 'button-third-hover-danger': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n background: '#F8F9FA',\n background_hover: 90,\n background_active: 90,\n background_disable: '#F8F9FA',\n border: '#F8F9FA',\n border_hover: 90,\n border_active: 90,\n border_disable: '#F8F9FA',\n },\n rootColor: '#EE2D41',\n },\n };\n};\n\nexport const configLinkButton = (rootColorInTheme: string) => {\n return {\n 'button-link-primary': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: rootColorInTheme,\n },\n 'button-link-third': {\n configStepColor: {\n text: '#6A7383',\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: rootColorInTheme,\n },\n 'button-link-danger-high': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#ee2d41',\n },\n 'button-link-danger-low': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#ffa621',\n },\n 'button-link-green': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#00d16d',\n },\n 'button-link-violet': {\n configStepColor: {\n text: 0,\n text_hover: 20,\n text_active: -20,\n text_disable: '#CDD0D6',\n },\n rootColor: '#7239ea',\n },\n };\n};\n\nexport const configButtonStatus = (): ILibsUiConfigButtonStatus => {\n return {\n blue: {\n color: '#226FF5',\n background: '#E9F1FE',\n },\n green: {\n color: '#00D16D',\n background: '#E6FAF0',\n },\n red: {\n color: '#EE2D41',\n background: '#FDEAEC',\n },\n orange: {\n color: '#F05800',\n background: '#FEEEE6',\n },\n yellow: {\n color: '#FFA621',\n background: '#FFF6E9',\n },\n cyan: {\n color: '#04C8C8',\n background: '#E6FAFA',\n },\n purple: {\n color: '#7239EA',\n background: '#F1EBFD',\n },\n brown: {\n color: '#663259',\n background: '#F0EBEE',\n },\n };\n};\n\nexport const configButtonTab = (): ILibsUiConfigButtonTab => {\n return {\n blue: {\n color: '#226FF5',\n background: '#F4F8FF',\n background_badge: '#E9F1FE',\n },\n green: {\n color: '#00D16D',\n background: '#F2FCF7',\n background_badge: '#E6FAF0',\n },\n red: {\n color: '#EE2D41',\n background: '#FDEAEC',\n background_badge: '#FEE9F1',\n },\n orange: {\n color: '#F05800',\n background: '#FEF7F2',\n background_badge: '#FEEEE6',\n },\n yellow: {\n color: '#FFA621',\n background: '#FFFBF4',\n background_badge: '#FFF6E9',\n },\n cyan: {\n color: '#04C8C8',\n background: '#F2FCFC',\n background_badge: '#E6FAFA',\n },\n purple: {\n color: '#7239EA',\n background: '#F8F5FE',\n background_badge: '#F1EBFD',\n },\n brown: {\n color: '#663259',\n background: '#F7F5F7',\n background_badge: '#F0EBEE',\n },\n };\n};\n\nexport const styleButtonTab = (type: string, config: IColorButtonTab) => {\n const background = config.background || colorStepContrastFromOrigin(config.color, 95)?.light;\n const backgroundBadge = config.background_badge || colorStepContrastFromOrigin(config.color, 90)?.light;\n\n return `.libs-ui-button-tab-${type}[active=\"true\"] {\n background-color: ${background} !important;\n }\n\n .libs-ui-button-tab-${type}[active=\"true\"] > .libs-ui-button-tab-label {\n color: ${config.color} !important;\n }\n\n .libs-ui-button-tab-${type}[active=\"true\"] > .libs-ui-button-tab-badge > .libs-ui-button-tab-badge-circle {\n color: ${config.color} !important;\n background-color: ${backgroundBadge} !important;\n }`;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable, computed, effect, signal } from '@angular/core';\nimport { PathOf } from '@libs-ui/interfaces-types';\nimport { colorStepContrastFromOrigin, get } from '@libs-ui/utils';\nimport { configButtonColor, configButtonStatus, configButtonTab, configHeading, configLinkButton, fontConfig, sizeButtonConfig, styleButtonTab, weights } from './config-project-data';\nimport { IColorButton, ILibsUiConfigButtonSize, ILibsUiConfigButtonStatus, ILibsUiConfigButtonTab, ILibsUiConfigFontFamily, ILibsUiConfigFontHeading, ILibsUiConfigFontWeight } from './config-project.interface';\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiConfigProjectService {\n private readonly themeColor = signal<string>('#226ff5');\n private readonly borderColor = signal<string>('#e6e7ea');\n private readonly textErrorColor = signal<string>('#ff5454');\n private readonly iconHoverDangerColor = signal<string>('#f15767');\n private readonly borderErrorColor = signal<string>('#ee2d41');\n private readonly backgroundDisableColor = signal<string>('#f8f9fa');\n private readonly textReadonlyColor = signal<string>('#071631');\n private readonly textDisableColor = signal<string>('#9ca2ad');\n private readonly backgroundReadonlyColor = signal<string>('#f8f9fa');\n private readonly backgroundUserSelection = signal<string>('#00000040');\n private readonly backgroundList = signal<string>('#f8f9fa');\n private readonly backgroundListHover = signal<string>('#f8f9fa');\n private readonly backgroundListHoverDanger = signal<string>('#fef5f6');\n private readonly configFont = signal<ILibsUiConfigFontFamily>(fontConfig);\n private readonly configHead = signal<ILibsUiConfigFontHeading>(configHeading);\n private readonly functionGetConfigButtonIncludes = signal<(rootColor: string) => { [key: string]: IColorButton }>(() => {\n return {};\n });\n private readonly configButton = computed<{ [key: string]: IColorButton }>(() => {\n return { ...configButtonColor(this.themeColor()), ...configLinkButton(this.themeColor()), ...this.functionGetConfigButtonIncludes()(this.themeColor()) };\n });\n private readonly configButtonSize = signal<ILibsUiConfigButtonSize>(sizeButtonConfig());\n private readonly configButtonStatus = signal<ILibsUiConfigButtonStatus>(configButtonStatus());\n private readonly configButtonTab = signal<ILibsUiConfigButtonTab>(configButtonTab());\n private readonly styleClassGlobalEl = document.createElement('style');\n private readonly styleClassHeadEl = document.createElement('style');\n private readonly styleClassButtonTabEl = document.createElement('style');\n constructor() {\n effect(() => {\n this.setThemeColor();\n });\n\n effect(() => {\n this.setupFontFamily();\n });\n\n effect(() => {\n this.setupFontHead();\n });\n\n effect(() => {\n this.setupButtonTab();\n });\n\n effect(() => {\n this.setupButtonSize();\n });\n\n this.configString();\n this.setClassGlobal();\n }\n\n public set ThemeColor(color: string) {\n this.themeColor.set(color || '#226ff5');\n }\n\n public set BorderColor(color: string) {\n this.borderColor.set(color || '#e6e7ea');\n }\n\n public set BorderErrorColor(color: string) {\n this.borderErrorColor.set(color || '#ee2d41');\n }\n\n public set TextErrorColor(color: string) {\n this.textErrorColor.set(color || '#ff5454');\n }\n\n public set IconHoverDangerColor(color: string) {\n this.iconHoverDangerColor.set(color || '#ff5454');\n }\n\n public set BackgroundReadonlyColor(color: string) {\n this.backgroundReadonlyColor.set(color || '#f15767');\n }\n\n public set TextReadonlyColor(color: string) {\n this.textReadonlyColor.set(color || '#071631');\n }\n\n public set BackgroundUserSelection(color: string) {\n this.backgroundUserSelection.set(color || '#00000040');\n }\n\n public set BackgroundList(color: string) {\n this.backgroundList.set(color || '#f8f9fa');\n }\n\n public set BackgroundListHover(color: string) {\n this.backgroundListHover.set(color || '#f8f9fa');\n }\n\n public set BackgroundListHoverDanger(color: string) {\n this.backgroundListHover.set(color || '#fef5f6');\n }\n\n public set BackgroundDisableColor(color: string) {\n this.backgroundDisableColor.set(color || '#f8f9fa');\n }\n\n public set TextDisableColor(color: string) {\n this.textDisableColor.set(color || '#9ca2ad');\n }\n\n public set ConfigFont(configFont: ILibsUiConfigFontFamily) {\n this.configFont.set({ ...configFont });\n }\n\n public set ConfigFontHead(configHead: ILibsUiConfigFontHeading) {\n this.configHead.set({ ...configHead });\n }\n\n public get ConfigButton() {\n return this.configButton;\n }\n\n public set FunctionGetConfigButtonIncludes(functionGetConfigButtonIncludes: (rootColor: string) => { [key: string]: IColorButton }) {\n this.functionGetConfigButtonIncludes.set(functionGetConfigButtonIncludes);\n }\n\n public get ConfigButtonStatus() {\n return this.configButtonStatus();\n }\n\n public set ConfigButtonStatus(config: ILibsUiConfigButtonStatus) {\n this.configButtonStatus.set(config);\n }\n\n public set ConfigButtonTab(config: ILibsUiConfigButtonTab) {\n this.configButtonTab.set(config);\n }\n\n // public hàm để sử dụng cho component input sử dụng tagInput = frameArea;\n public setupFontFamily(currentDoc?: Document) {\n try {\n currentDoc = currentDoc || document;\n const doc = currentDoc.documentElement;\n\n doc.style.setProperty('--libs-ui-font-family-name', `${this.configFont().name},Arial, Helvetica, sans-serif`);\n Object.keys(weights).forEach((key) => {\n if (!get(this.configFont(), key as PathOf<ILibsUiConfigFontFamily>)) {\n return;\n }\n const fontFace = new FontFace(this.configFont().name, `url(${get(this.configFont(), key as PathOf<ILibsUiConfigFontFamily>)})`, { weight: get(weights, key as PathOf<ILibsUiConfigFontWeight>) });\n fontFace.load().then((loadedFont) => {\n if (currentDoc && 'add' in currentDoc.fonts) {\n (currentDoc.fonts as any).add(loadedFont);\n }\n });\n });\n } catch (error) {\n console.log(error);\n }\n }\n\n private setupFontHead() {\n const configHeadsData = this.configHead();\n let styles = '';\n Object.keys(configHeadsData).forEach((keyConfig) => {\n let style = `font-family:var(--libs-ui-font-family-name,'Arial');`;\n const config = get(configHeadsData, keyConfig as PathOf<ILibsUiConfigFontHeading>);\n Object.keys(config).forEach((key) => {\n style = `${style}${key}:${get(config, key)};`;\n });\n styles = `${styles} .libs-ui-font-${keyConfig}{${style}}.libs-ui-font-${keyConfig}i{${style.replace(/;/g, ' !important;')}}`;\n });\n\n styles = `*{box-sizing: border-box !important;}${styles}`;\n\n this.styleClassHeadEl.innerHTML = styles;\n document.head.append(this.styleClassHeadEl);\n }\n\n private setupButtonSize() {\n const configButtonSize = this.configButtonSize();\n const doc = document.documentElement;\n Object.keys(configButtonSize).forEach((keySize) => {\n const config = get(configButtonSize, keySize as PathOf<ILibsUiConfigButtonSize>);\n Object.keys(config).forEach((keyType) => {\n const name = `--libs-ui-button-size-${keySize}-${keyType.replace(/[_]/g, '-')}`;\n doc.style.setProperty(name, get(config, keyType));\n });\n });\n }\n\n private setupButtonTab() {\n const configButtonTab = this.configButtonTab();\n let styles = '';\n\n Object.keys(configButtonTab).forEach((key) => {\n const config = get(configButtonTab, key);\n const style = config ? styleButtonTab(key, config) : '';\n\n styles = `${styles}${style}`;\n });\n this.styleClassButtonTabEl.innerHTML = styles;\n document.head.append(this.styleClassButtonTabEl);\n }\n\n private setThemeColor() {\n const doc = document.documentElement;\n [\n {\n group: 'libs-ui',\n type: 'color',\n property: {\n default: colorStepContrastFromOrigin(this.themeColor(), 0)?.light,\n light_1: colorStepContrastFromOrigin(this.themeColor(), 20)?.light,\n light_2: colorStepContrastFromOrigin(this.themeColor(), 90)?.light,\n light_3: colorStepContrastFromOrigin(this.themeColor(), 95)?.light,\n light_4: colorStepContrastFromOrigin(this.themeColor(), 50)?.light,\n light_5: colorStepContrastFromOrigin(this.themeColor(), 70)?.light,\n light_6: colorStepContrastFromOrigin(this.themeColor(), 80)?.light,\n dark: colorStepContrastFromOrigin(this.themeColor(), 20)?.dark,\n background_list: this.backgroundList(),\n background_list_hover: this.backgroundListHover(),\n background_list_hover_danger: this.backgroundListHoverDanger(),\n background_selection: this.backgroundUserSelection(),\n border: this.borderColor(),\n border_error: this.borderErrorColor(),\n text_error: this.textErrorColor(),\n icon_hover_danger: this.iconHoverDangerColor(),\n background_readonly: this.backgroundReadonlyColor(),\n text_readonly: this.textReadonlyColor(),\n background_disable: this.backgroundDisableColor(),\n text_disable: this.textDisableColor(),\n gradient_from: this.themeColor().toLocaleUpperCase() === '#226FF5' ? colorStepContrastFromOrigin(this.themeColor(), 10)?.light : colorStepContrastFromOrigin(this.themeColor(), 0)?.light,\n gradient_to: this.themeColor().toLocaleUpperCase() === '#226FF5' ? colorStepContrastFromOrigin('#5B2EBB', 10)?.light : colorStepContrastFromOrigin(this.themeColor(), 20)?.dark,\n },\n },\n ].forEach((item) => {\n const name = `--${item.group.replace(/[_]/g, '-')}-${item.type.replace(/[_]/g, '-')}`;\n Object.keys(item.property).forEach((key) => doc.style.setProperty(`${name}-${key.replace(/[_]/g, '-')}`, (item.property as any)[key]));\n });\n }\n\n public colorStepContrastFromOrigin(step: number, color?: string) {\n return colorStepContrastFromOrigin(color || this.themeColor(), step || 0);\n }\n\n private setClassGlobal() {\n this.styleClassGlobalEl.innerHTML = `\n .libs-ui-border-primary-general{border: 1px solid var(--libs-ui-color-default, #226FF5);}\n .libs-ui-border-primary-focus-general{border: 1px solid var(--libs-ui-color-light-1, #4e8cf7);}\n .libs-ui-border-primary-hover-general{border: 1px solid var(--libs-ui-color-light-3, #f4f8ff);}\n .libs-ui-border-general{ border: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-top-general{border-top: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-general{border-right: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-bottom-general{border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-dashed-general{border: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-top-dashed-general{border-top: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-dashed-general{border-left: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-dashed-general{border-right: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-bottom-dashed-general{border-bottom: dashed 1px var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-x-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea); border-right: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-y-general{border-top: 1px solid var(--libs-ui-color-border, #e6e7ea); border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-top-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea); border-top: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-left-bottom-general{border-left: 1px solid var(--libs-ui-color-border, #e6e7ea); border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-top-general{border-right: 1px solid var(--libs-ui-color-border, #e6e7ea); border-top: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-right-bottom-general{border-right: 1px solid var(--libs-ui-color-border, #e6e7ea); border-bottom: 1px solid var(--libs-ui-color-border, #e6e7ea);}\n .libs-ui-border-error-general{border: 1px solid var(--libs-ui-color-border-error, #ee2d41) !important;}\n .libs-ui-bg-list {background-color: var(--libs-ui-background-list, #f8f9fa);}\n .libs-ui-bg-list-hover:hover {background-color: var(--libs-ui-background-list-hover, #f8f9fa);}\n .libs-ui-bg-list-active {background-color: var(--libs-ui-color-light-3, #f4f8ff);}\n .libs-ui-bg-list-hover-active:hover {background-color: #f8f9fa;}\n .libs-ui-bg-list-hover-active:active {background-color: var(--libs-ui-color-light-3, #f4f8ff);}\n .libs-ui-bg-list-hover-danger:hover {background-color: var(--libs-ui-background-list-hover-danger, #fef5f6); color: var(--libs-ui-color-icon-hover-danger, #f15767) !important; [class*=\"libs-ui-icon-\"],[class*=\"icon-font-3rd\"]{&:before,&:after{color: var(--libs-ui-color-icon-hover-danger, #f15767) !important;}}}\n .libs-ui-text-error {color: var(--libs-ui-color-text-error, #ff5454) !important;}\n .libs-ui-text-error::before {color: var(--libs-ui-color-text-error, #ff5454) !important;}\n .libs-ui-disable {cursor: not-allowed !important;text-decoration: none;color:var(--libs-ui-color-text-disable, #cdd0d6) !important;}\n .libs-ui-disable::before {color:var(--libs-ui-color-text-disable, #9ca2ad) !important;}\n .libs-ui-disable-background{background: var(--libs-ui-color-background-disable, #f8f9fa) !important;}\n .libs-ui-disable-active {color:var(--libs-ui-color-light-4,#91b7fa) !important;}\n .libs-ui-disable-active::before {color:var(--libs-ui-color-light-4,#91b7fa) !important;}\n .libs-ui-disable-active-background{background: var(--libs-ui-color-light-4,#91b7fa) !important;}\n .libs-ui-readonly {cursor: not-allowed !important;color:var(--libs-ui-color-text-readonly, #071631) !important;}\n .libs-ui-readonly::before {color:var(--libs-ui-color-text-readonly, #071631) !important;}\n .libs-ui-readonly-background{background: var(--libs-ui-color-background-readonly, #f8f9fa) !important;}\n .libs-ui-icon-hover-danger:hover {color: var(--libs-ui-color-icon-hover-danger, #f15767) !important; [class*=\"libs-ui-icon-\"],[class*=\"icon-font-3rd\"]{&:before,&:after{color: var(--libs-ui-color-icon-hover-danger, #f15767) !important;}}}\n .break-word{word-break: break-word !important;}\n .libs-ui-shadow {box-shadow: 0 2px 10px 1px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-md {box-shadow: 0 4px 8px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-lg {box-shadow: 0 15px 30px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-top {box-shadow: 0 -5px 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-right {box-shadow: -5px 0 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-bottom {box-shadow: 0 5px 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-left {box-shadow: 5px 0 5px -5px rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-sm {box-shadow: 0 1px 2px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-popup {box-shadow: -2px 0 4px 0 rgba(51, 51, 51, 0.1);}\n .libs-ui-shadow-none {box-shadow: none !important;}\n .libs-ui-shadow-small {box-shadow: 0px 1px 2px 0px rgba(0,20,51,.04), 0px 1px 1px 0px rgba(0,20,51,.02);}\n .libs-ui-shadow-medium {box-shadow: 0px 4px 8px 0px rgba(0, 20, 51, 0.04), 0px 1px 1px 0px rgba(0, 20, 51, 0.02);}\n .libs-ui-shadow-large {box-shadow: 0px 4px 16px 0px rgba(0,20,51,.1), 0px 1px 1px 0px rgba(0,20,51,.02);}\n .libs-ui-shadow-extra-large {box-shadow: 0px 8px 56px 0px rgba(0,20,51,.05), 0px 1px 1px 0px rgba(0,20,51,.02);}\n ::-moz-selection {background: var(--libs-ui-color-background-selection, #00000040) !important;}\n ::selection {background: var(--libs-ui-color-background-selection, #00000040) !important;}\n `.replace(/\\n+/g, '');\n\n document.head.append(this.styleClassGlobalEl);\n }\n\n private configString() {\n const prototype = String.prototype as any;\n prototype.replaceAt = function (index: number, replacement: string) {\n const values = this.split('');\n\n values[index] = replacement;\n\n return values.join('');\n };\n\n prototype.replaceAll = function (index: number, separator: string, replacement: string) {\n const regex = new RegExp(separator, 'g');\n\n return `${this.substr(0, index)}${this.substr(index + 1 + (replacement?.length || 0)).replace(regex, replacement)}`;\n };\n\n prototype.occurrencesByCharacter = function (character: string): number {\n const values = this.split('');\n\n if (!values || !values.length) {\n return 0;\n }\n\n return values.filter((char: string) => char === character).length;\n };\n\n prototype.indexesOfCharacter = function (character: string): Array<number> {\n const values: Array<string> = this.split('');\n const indexes: Array<number> = [];\n\n if (!values || !values.length) {\n return indexes;\n }\n for (const indexValue in values) {\n if (values[indexValue] === character) {\n indexes.push(+indexValue);\n }\n }\n\n return indexes;\n };\n\n prototype.indexesByString = function (str: string): Array<number> {\n const values: Array<string> = this as any;\n const indexes: Array<number> = [];\n\n if (!values || !values.length || !str || !str.length || values.length < str.length) {\n return indexes;\n }\n for (const indexValue in values) {\n if (values[indexValue] !== str[0] || +indexValue + str.length > values.length) {\n continue;\n }\n\n for (const index in str.split('')) {\n if (values[+indexValue + +index] !== str[index]) {\n break;\n }\n }\n indexes.push(+indexValue);\n }\n\n return indexes;\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@libs-ui/services-config-project",
3
- "version": "0.2.315-0",
3
+ "version": "0.2.316-0",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=18.0.0",
6
- "@libs-ui/utils": "0.2.315-0"
6
+ "@libs-ui/utils": "0.2.316-0"
7
7
  },
8
8
  "sideEffects": false,
9
9
  "module": "fesm2022/libs-ui-services-config-project.mjs",