valtech-components 2.0.286 → 2.0.289

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +61 -21
  2. package/esm2022/lib/components/atoms/text/text.component.mjs +46 -10
  3. package/esm2022/lib/components/atoms/text/types.mjs +1 -1
  4. package/esm2022/lib/examples/custom-content-demo.component.mjs +291 -0
  5. package/esm2022/lib/examples/link-processing-example.component.mjs +189 -0
  6. package/esm2022/lib/services/lang-provider/content.mjs +1 -13
  7. package/esm2022/lib/services/link-processor.service.mjs +192 -0
  8. package/esm2022/lib/shared/pipes/process-links.pipe.mjs +69 -0
  9. package/esm2022/public-api.mjs +5 -4
  10. package/fesm2022/valtech-components.mjs +473 -919
  11. package/fesm2022/valtech-components.mjs.map +1 -1
  12. package/lib/components/atoms/text/text.component.d.ts +5 -1
  13. package/lib/components/atoms/text/types.d.ts +5 -0
  14. package/lib/examples/link-processing-example.component.d.ts +24 -0
  15. package/lib/services/link-processor.service.d.ts +98 -0
  16. package/lib/shared/pipes/process-links.pipe.d.ts +55 -0
  17. package/package.json +1 -1
  18. package/public-api.d.ts +4 -3
  19. package/esm2022/lib/components/_examples/custom-content-demo.component.mjs +0 -291
  20. package/esm2022/lib/components/_examples/global-content-example-content.mjs +0 -23
  21. package/esm2022/lib/components/_examples/global-content-example.component.mjs +0 -504
  22. package/esm2022/lib/components/_examples/reactive-content-example-content.mjs +0 -43
  23. package/esm2022/lib/components/_examples/reactive-content-example.component.mjs +0 -347
  24. package/esm2022/lib/services/lang-provider/components/theme-settings.mjs +0 -15
  25. package/lib/components/_examples/global-content-example-content.d.ts +0 -9
  26. package/lib/components/_examples/global-content-example.component.d.ts +0 -73
  27. package/lib/components/_examples/reactive-content-example-content.d.ts +0 -32
  28. package/lib/components/_examples/reactive-content-example.component.d.ts +0 -47
  29. package/lib/services/lang-provider/components/theme-settings.d.ts +0 -3
  30. /package/lib/{components/_examples → examples}/custom-content-demo.component.d.ts +0 -0
package/README.md CHANGED
@@ -75,8 +75,8 @@ The library includes a powerful reactive internationalization system with **Cont
75
75
  - **Buttons**: `ok`, `cancel`, `save`, `delete`, `edit`, `close`, `back`, `next`, `previous`
76
76
  - **Actions**: `add`, `remove`, `search`, `filter`, `sort`, `refresh`
77
77
  - **States**: `loading`, `error`, `success`, `warning`, `info`, `noData`
78
- - **Forms**: `required`, `optional`, `searchPlaceholder`
79
- - **Confirmations**: `areYouSure`, `deleteConfirmation`, `unsavedChanges`
78
+ - **Forms**: `searchPlaceholder`
79
+ - **Confirmations**: `deleteConfirmation`, `unsavedChanges`
80
80
 
81
81
  ### Basic Setup
82
82
 
@@ -169,29 +169,76 @@ export class UserComponent {
169
169
  content = inject(ContentService);
170
170
  componentContent = this.content.forComponent('UserComponent');
171
171
 
172
- greeting$ = this.componentContent.getWithInterpolation('personalizedGreeting', {
173
- name: 'John',
174
- count: 5
172
+ greeting$ = this.componentContent.get('personalizedGreeting', {
173
+ interpolation: {
174
+ name: 'John',
175
+ count: 5,
176
+ }
175
177
  });
176
178
  // Results in: "Hello John, you have 5 messages"
177
179
  }
178
180
  ```
179
181
 
180
- See `REACTIVE_CONTENT_GUIDE.md` for complete documentation and migration guide.
182
+ ## 🔗 Automatic Link Processing
181
183
 
182
- ## 📖 Documentation & Guides
184
+ The library now includes automatic link detection and processing capabilities. Convert URLs and internal routes in text content into clickable links automatically:
183
185
 
184
- ### Content Management Guides
186
+ ```typescript
187
+ // Basic usage with direct URLs
188
+ <val-text [props]="{
189
+ content: 'Visit https://angular.io or go to /dashboard',
190
+ processLinks: true,
191
+ linkConfig: {
192
+ openExternalInNewTab: true,
193
+ openInternalInNewTab: false
194
+ }
195
+ }"></val-text>
196
+
197
+ // Markdown-style links [text](url)
198
+ <val-text [props]="{
199
+ content: 'Check [the documentation](https://angular.io/docs) for details',
200
+ processLinks: true,
201
+ linkConfig: {
202
+ processMarkdownLinks: true,
203
+ openExternalInNewTab: true
204
+ }
205
+ }"></val-text>
206
+
207
+ // Mixed formats in the same text
208
+ <val-text [props]="{
209
+ content: 'Read [the guide](https://angular.io/guide), check https://github.com/angular, or go to /examples',
210
+ processLinks: true
211
+ }"></val-text>
212
+ ```
213
+
214
+ ### Features
215
+
216
+ - **Automatic Detection**: Identifies external URLs (http/https), internal routes (starting with /), and Markdown-style links `[text](url)`
217
+ - **Improved Regex**: Excludes punctuation marks (`,`, `;`, `.`, `!`, `?`, `()`) from URLs to prevent broken links
218
+ - **Configurable Behavior**: Control whether links open in new tabs
219
+ - **Custom Styling**: Apply custom CSS classes to links
220
+ - **Secure Processing**: Uses Angular's DomSanitizer for safe HTML generation
221
+ - **Standalone Pipe**: Use `ProcessLinksPipe` independently in any template
185
222
 
186
- - **[ContentService Guide](./CONTENT_SERVICE_GUIDE.md)** - Complete API reference with examples and migration guide from old LangService approach
187
- - **[Global Content Guide](./GLOBAL_CONTENT_GUIDE.md)** - How to use reusable global content for buttons, states, and confirmations
188
- - **[Reactive Content Guide](./REACTIVE_CONTENT_GUIDE.md)** - Advanced patterns for reactive content management
223
+ ### Using the Service Directly
189
224
 
190
- ### Component Implementation Guides
225
+ ```typescript
226
+ import { LinkProcessorService } from 'valtech-components';
191
227
 
192
- - **[Implementation Example](./IMPLEMENTATION_EXAMPLE.md)** - Step-by-step component implementation guide
228
+ constructor(private linkProcessor: LinkProcessorService) {}
193
229
 
194
- The documentation includes practical examples, best practices, and migration guides to help you get the most out of the Valtech Tools component library.
230
+ processText(text: string) {
231
+ // Convert links automatically
232
+ const processed = this.linkProcessor.processLinks(text);
233
+
234
+ // Check if text contains links
235
+ const hasLinks = this.linkProcessor.hasLinks(text);
236
+
237
+ // Extract all links with their types and text
238
+ const links = this.linkProcessor.extractLinks(text);
239
+ // Returns: [{ url: '...', type: 'external|internal', text: '...' }]
240
+ }
241
+ ```
195
242
 
196
243
  ## Project Structure
197
244
 
@@ -204,13 +251,6 @@ The documentation includes practical examples, best practices, and migration gui
204
251
  - `src/lib/services/` – Utility and helper services (e.g., theme, navigation, i18n)
205
252
  - `src/lib/shared/` – Shared constants and utility functions
206
253
 
207
- ## 📚 Examples
208
-
209
- The library includes example components that demonstrate best practices:
210
-
211
- - `ReactiveContentExampleComponent` - Demonstrates the reactive content system with component-specific content
212
- - `GlobalContentExampleComponent` - Comprehensive demonstration of global and mixed content usage
213
- - Check the `_examples/` directory for more implementation examples
214
254
 
215
255
  ## License
216
256
 
@@ -2,8 +2,10 @@ import { AsyncPipe } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
3
  import { IonText } from '@ionic/angular/standalone';
4
4
  import { of, Subscription } from 'rxjs';
5
+ import { ProcessLinksPipe } from '../../../shared/pipes/process-links.pipe';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../../services/content.service";
8
+ import * as i2 from "../../../services/link-processor.service";
7
9
  /**
8
10
  * val-text
9
11
  *
@@ -44,6 +46,23 @@ import * as i1 from "../../../services/content.service";
44
46
  * }"></val-text>
45
47
  * ```
46
48
  *
49
+ * @example With automatic link processing:
50
+ * ```html
51
+ * <val-text [props]="{
52
+ * content: 'Visit https://example.com or go to /profile for more info',
53
+ * processLinks: true,
54
+ * linkConfig: {
55
+ * openExternalInNewTab: true,
56
+ * openInternalInNewTab: false,
57
+ * linkClass: 'custom-link',
58
+ * externalLinkClass: 'external',
59
+ * internalLinkClass: 'internal'
60
+ * },
61
+ * color: 'primary',
62
+ * size: 'medium'
63
+ * }"></val-text>
64
+ * ```
65
+ *
47
66
  * @example Using ContentService helper:
48
67
  * ```typescript
49
68
  * // In component
@@ -63,8 +82,9 @@ import * as i1 from "../../../services/content.service";
63
82
  * @input props: TextMetadata - Configuration for the text (content, styling, and reactive content options)
64
83
  */
65
84
  export class TextComponent {
66
- constructor(contentService) {
85
+ constructor(contentService, linkProcessor) {
67
86
  this.contentService = contentService;
87
+ this.linkProcessor = linkProcessor;
68
88
  this.subscription = new Subscription();
69
89
  }
70
90
  ngOnInit() {
@@ -108,21 +128,37 @@ export class TextComponent {
108
128
  this.displayContent$ = of(this.props.contentFallback || '');
109
129
  }
110
130
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, deps: [{ token: i1.ContentService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextComponent, isStandalone: true, selector: "val-text", inputs: { props: "props" }, ngImport: i0, template: `
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, deps: [{ token: i1.ContentService }, { token: i2.LinkProcessorService }], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TextComponent, isStandalone: true, selector: "val-text", inputs: { props: "props" }, ngImport: i0, template: `
113
133
  <ion-text [color]="props.color">
114
- <p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
134
+ @if (props.processLinks) {
135
+ <p
136
+ [class]="props.size"
137
+ [class.bold]="props.bold"
138
+ [innerHTML]="displayContent$ | async | processLinks: props.linkConfig"
139
+ ></p>
140
+ } @else {
141
+ <p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
142
+ }
115
143
  </ion-text>
116
- `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
+ `, isInline: true, styles: ["@charset \"UTF-8\";:root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-primary, #0cd1e8)}:host ::ng-deep .internal-link:hover{color:var(--ion-color-primary-shade, #0bb8cc)}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ProcessLinksPipe, name: "processLinks" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
145
  }
118
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, decorators: [{
119
147
  type: Component,
120
- args: [{ selector: 'val-text', standalone: true, imports: [IonText, AsyncPipe], template: `
148
+ args: [{ selector: 'val-text', standalone: true, imports: [IonText, AsyncPipe, ProcessLinksPipe], template: `
121
149
  <ion-text [color]="props.color">
122
- <p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
150
+ @if (props.processLinks) {
151
+ <p
152
+ [class]="props.size"
153
+ [class.bold]="props.bold"
154
+ [innerHTML]="displayContent$ | async | processLinks: props.linkConfig"
155
+ ></p>
156
+ } @else {
157
+ <p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
158
+ }
123
159
  </ion-text>
124
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}\n"] }]
125
- }], ctorParameters: () => [{ type: i1.ContentService }], propDecorators: { props: [{
160
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";:root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-primary, #0cd1e8)}:host ::ng-deep .internal-link:hover{color:var(--ion-color-primary-shade, #0bb8cc)}\n"] }]
161
+ }], ctorParameters: () => [{ type: i1.ContentService }, { type: i2.LinkProcessorService }], propDecorators: { props: [{
126
162
  type: Input
127
163
  }] } });
128
164
  /**
@@ -159,4 +195,4 @@ export function createTextProps(contentConfig, styleConfig = {}) {
159
195
  bold: styleConfig.bold || false,
160
196
  };
161
197
  }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWdCcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlERztBQUNILE1BQU0sT0FBTyxhQUFhO0lBOEJ4QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRVcsQ0FBQztJQUV0RCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQseUNBQXlDO1lBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwQyxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDdEUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtvQkFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtvQkFDcEMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CO2lCQUMvQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO29CQUNyRCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO29CQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO2lCQUNyQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTiw2REFBNkQ7WUFDN0QsT0FBTyxDQUFDLElBQUksQ0FDVixnSkFBZ0osQ0FDakosQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDOytHQXpFVSxhQUFhO21HQUFiLGFBQWEsZ0dBbEVkOzs7O0dBSVQsdzBHQUxTLE9BQU8sMkVBQUUsU0FBUzs7NEZBbUVqQixhQUFhO2tCQXRFekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxZQUNuQjs7OztHQUlULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNO21GQWdGL0MsS0FBSztzQkFESixLQUFLOztBQXlEUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLGFBQWdDLEVBQ2hDLGNBQXNFLEVBQUU7SUFFeEUsT0FBTztRQUNMLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVTtRQUNwQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVk7UUFDeEMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxlQUFlO1FBQzlDLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxvQkFBb0I7UUFDeEQsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLElBQUksTUFBTTtRQUNsQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksSUFBSSxRQUFRO1FBQ2xDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLEtBQUs7S0FDaEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0Q29udGVudENvbmZpZywgVGV4dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblRleHQsIEFzeW5jUGlwZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10ZXh0IFtjb2xvcl09XCJwcm9wcy5jb2xvclwiPlxuICAgICAgPHAgW2NsYXNzXT1cInByb3BzLnNpemVcIiBbY2xhc3MuYm9sZF09XCJwcm9wcy5ib2xkXCI+e3sgZGlzcGxheUNvbnRlbnQkIHwgYXN5bmMgfX08L3A+XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG4vKipcbiAqIHZhbC10ZXh0XG4gKlxuICogRW5oYW5jZWQgdGV4dCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBib3RoIHN0YXRpYyBjb250ZW50IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gKiBUaGUgY29tcG9uZW50IGF1dG9tYXRpY2FsbHkgdXBkYXRlcyB3aGVuIHRoZSBsYW5ndWFnZSBjaGFuZ2VzIGlmIHVzaW5nIHJlYWN0aXZlIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1N0YXRpYyB0ZXh0JyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgIGJvbGQ6IGZhbHNlXG4gKiB9XCI+PC92YWwtdGV4dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudEtleTogJ3dlbGNvbWVNZXNzYWdlJyxcbiAqICAgY29udGVudENsYXNzOiAnSG9tZUNvbXBvbmVudCcsXG4gKiAgIGNvbnRlbnRGYWxsYmFjazogJ1dlbGNvbWUhJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBSZWFjdGl2ZSBjb250ZW50IHdpdGggaW50ZXJwb2xhdGlvbjpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnZ3JlZXRpbmcnLFxuICogICBjb250ZW50Q2xhc3M6ICdVc2VyQ29tcG9uZW50JyxcbiAqICAgY29udGVudEludGVycG9sYXRpb246IHsgbmFtZTogJ0pvaG4nLCBjb3VudDogNSB9LFxuICogICBjb2xvcjogJ3NlY29uZGFyeScsXG4gKiAgIHNpemU6ICdtZWRpdW0nLFxuICogICBib2xkOiBmYWxzZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBVc2luZyBDb250ZW50U2VydmljZSBoZWxwZXI6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBjb21wb25lbnRcbiAqIGNvbnRlbnQgPSBpbmplY3QoQ29udGVudFNlcnZpY2UpO1xuICogY29tcG9uZW50Q29udGVudCA9IHRoaXMuY29udGVudC5mb3JDb21wb25lbnQoJ015Q29tcG9uZW50Jyk7XG4gKlxuICogdGV4dFByb3BzID0ge1xuICogICBjb250ZW50OiB0aGlzLmNvbXBvbmVudENvbnRlbnQuZ2V0VGV4dCgndGl0bGUnKSwgLy8gc3luY1xuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBzaXplOiAnbGFyZ2UnLFxuICogICBib2xkOiB0cnVlXG4gKiB9O1xuICogLy8gT3Igd2l0aCByZWFjdGl2ZSBiaW5kaW5nOlxuICogdGl0bGUkID0gdGhpcy5jb21wb25lbnRDb250ZW50LmdldCgndGl0bGUnKTtcbiAqIGBgYFxuICpcbiAqIEBpbnB1dCBwcm9wczogVGV4dE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHRleHQgKGNvbnRlbnQsIHN0eWxpbmcsIGFuZCByZWFjdGl2ZSBjb250ZW50IG9wdGlvbnMpXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGV4dCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge1RleHRNZXRhZGF0YX1cbiAgICpcbiAgICogRm9yIHN0YXRpYyBjb250ZW50OlxuICAgKiBAcHJvcGVydHkgY29udGVudCAtIFRoZSB0ZXh0IHRvIGRpc3BsYXkgKHRha2VzIHByZWNlZGVuY2Ugb3ZlciByZWFjdGl2ZSBjb250ZW50KVxuICAgKlxuICAgKiBGb3IgcmVhY3RpdmUgY29udGVudDpcbiAgICogQHByb3BlcnR5IGNvbnRlbnRLZXkgLSBUaGUgY29udGVudCBrZXkgdG8gcmV0cmlldmUgZnJvbSBsYW5ndWFnZSBzZXJ2aWNlXG4gICAqIEBwcm9wZXJ0eSBjb250ZW50Q2xhc3MgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWUgZm9yIGNvbnRlbnQgbG9va3VwXG4gICAqIEBwcm9wZXJ0eSBjb250ZW50RmFsbGJhY2sgLSBPcHRpb25hbCBmYWxsYmFjayB0ZXh0IGlmIGNvbnRlbnQgaXMgbm90IGZvdW5kXG4gICAqIEBwcm9wZXJ0eSBjb250ZW50SW50ZXJwb2xhdGlvbiAtIE9wdGlvbmFsIHZhbHVlcyB0byBpbnRlcnBvbGF0ZSBpbnRvIGNvbnRlbnRcbiAgICpcbiAgICogRm9yIHN0eWxpbmc6XG4gICAqIEBwcm9wZXJ0eSBjb2xvciAtIFRoZSB0ZXh0IGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpXG4gICAqIEBwcm9wZXJ0eSBzaXplIC0gVGhlIHRleHQgc2l6ZSAoJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnKVxuICAgKiBAcHJvcGVydHkgYm9sZCAtIFdoZXRoZXIgdGhlIHRleHQgaXMgYm9sZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IFRleHRNZXRhZGF0YTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IHByb3ZpZGVzIHRoZSBjb250ZW50IHRvIGRpc3BsYXkuXG4gICAqIFRoaXMgd2lsbCBiZSBlaXRoZXIgc3RhdGljIGNvbnRlbnQgb3IgcmVhY3RpdmUgY29udGVudCBmcm9tIHRoZSBsYW5ndWFnZSBzZXJ2aWNlLlxuICAgKi9cbiAgZGlzcGxheUNvbnRlbnQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlDb250ZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUgY29udGVudCBvYnNlcnZhYmxlIGJhc2VkIG9uIHRoZSBwcm9wcyBjb25maWd1cmF0aW9uLlxuICAgKiBQcmlvcml0eTogc3RhdGljIGNvbnRlbnQgPiByZWFjdGl2ZSBjb250ZW50IHdpdGggaW50ZXJwb2xhdGlvbiA+IHJlYWN0aXZlIGNvbnRlbnRcbiAgICovXG4gIHByaXZhdGUgc2V0dXBEaXNwbGF5Q29udGVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50KSB7XG4gICAgICAvLyBTdGF0aWMgY29udGVudCB0YWtlcyBwcmVjZWRlbmNlXG4gICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IG9mKHRoaXMucHJvcHMuY29udGVudCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLmNvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIC8vIFJlYWN0aXZlIGNvbnRlbnQgZnJvbSBsYW5ndWFnZSBzZXJ2aWNlXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbikge1xuICAgICAgICAvLyBXaXRoIGludGVycG9sYXRpb25cbiAgICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50V2l0aEludGVycG9sYXRpb24oe1xuICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgICAga2V5OiB0aGlzLnByb3BzLmNvbnRlbnRLZXksXG4gICAgICAgICAgZmFsbGJhY2s6IHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrLFxuICAgICAgICAgIGludGVycG9sYXRpb246IHRoaXMucHJvcHMuY29udGVudEludGVycG9sYXRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2ltcGxlIHJlYWN0aXZlIGNvbnRlbnRcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICAgIGtleTogdGhpcy5wcm9wcy5jb250ZW50S2V5LFxuICAgICAgICAgIGZhbGxiYWNrOiB0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrIHRvIGVtcHR5IHN0cmluZyBpZiBubyB2YWxpZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ3ZhbC10ZXh0OiBObyB2YWxpZCBjb250ZW50IGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQuIFVzZSBlaXRoZXIgXCJjb250ZW50XCIgZm9yIHN0YXRpYyB0ZXh0IG9yIFwiY29udGVudEtleVwiICsgXCJjb250ZW50Q2xhc3NcIiBmb3IgcmVhY3RpdmUgY29udGVudC4nXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCQgPSBvZih0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayB8fCAnJyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSByZWFjdGl2ZSB0ZXh0IHByb3BzIGZyb20gY29udGVudCBjb25maWd1cmF0aW9uLlxuICogVGhpcyBwcm92aWRlcyBhIGNvbnZlbmllbnQgd2F5IHRvIGNyZWF0ZSB2YWwtdGV4dCBwcm9wcyB3aXRoIHJlYWN0aXZlIGNvbnRlbnQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnRDb25maWcgLSBDb250ZW50IGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSBzdHlsZUNvbmZpZyAtIE9wdGlvbmFsIHN0eWxlIGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm5zIFBhcnRpYWwgVGV4dE1ldGFkYXRhIHdpdGggY29udGVudCBwcm9wZXJ0aWVzIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBjb21wb25lbnRcbiAqIHRpdGxlUHJvcHM6IFRleHRNZXRhZGF0YSA9IHtcbiAqICAgLi4uY3JlYXRlVGV4dFByb3BzKHtcbiAqICAgICBjb250ZW50S2V5OiAndGl0bGUnLFxuICogICAgIGNvbnRlbnRDbGFzczogJ0hlYWRlckNvbXBvbmVudCdcbiAqICAgfSwge1xuICogICAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgICBib2xkOiB0cnVlXG4gKiAgIH0pXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXh0UHJvcHMoXG4gIGNvbnRlbnRDb25maWc6IFRleHRDb250ZW50Q29uZmlnLFxuICBzdHlsZUNvbmZpZzogUGFydGlhbDxQaWNrPFRleHRNZXRhZGF0YSwgJ2NvbG9yJyB8ICdzaXplJyB8ICdib2xkJz4+ID0ge31cbik6IFBhcnRpYWw8VGV4dE1ldGFkYXRhPiB7XG4gIHJldHVybiB7XG4gICAgY29udGVudEtleTogY29udGVudENvbmZpZy5jb250ZW50S2V5LFxuICAgIGNvbnRlbnRDbGFzczogY29udGVudENvbmZpZy5jb250ZW50Q2xhc3MsXG4gICAgY29udGVudEZhbGxiYWNrOiBjb250ZW50Q29uZmlnLmNvbnRlbnRGYWxsYmFjayxcbiAgICBjb250ZW50SW50ZXJwb2xhdGlvbjogY29udGVudENvbmZpZy5jb250ZW50SW50ZXJwb2xhdGlvbixcbiAgICBjb2xvcjogc3R5bGVDb25maWcuY29sb3IgfHwgJ2RhcmsnLFxuICAgIHNpemU6IHN0eWxlQ29uZmlnLnNpemUgfHwgJ21lZGl1bScsXG4gICAgYm9sZDogc3R5bGVDb25maWcuYm9sZCB8fCBmYWxzZSxcbiAgfTtcbn1cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7QUF1QjVFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBZ0N4QixZQUNVLGNBQThCLEVBQzlCLGFBQW1DO1FBRG5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFKckMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBS3ZDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQseUNBQXlDO1lBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwQyxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDdEUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtvQkFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtvQkFDcEMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CO2lCQUMvQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO29CQUNyRCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO29CQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO2lCQUNyQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTiw2REFBNkQ7WUFDN0QsT0FBTyxDQUFDLElBQUksQ0FDVixnSkFBZ0osQ0FDakosQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDOytHQTlFVSxhQUFhO21HQUFiLGFBQWEsZ0dBM0ZkOzs7Ozs7Ozs7Ozs7R0FZVCxrOEhBYlMsT0FBTywyRUFBRSxTQUFTLHlDQUFFLGdCQUFnQjs7NEZBNEZuQyxhQUFhO2tCQS9GekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNyQzs7Ozs7Ozs7Ozs7O0dBWVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07c0hBbUcvQyxLQUFLO3NCQURKLEtBQUs7O0FBNERSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsYUFBZ0MsRUFDaEMsY0FBc0UsRUFBRTtJQUV4RSxPQUFPO1FBQ0wsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO1FBQ3BDLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWTtRQUN4QyxlQUFlLEVBQUUsYUFBYSxDQUFDLGVBQWU7UUFDOUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjtRQUN4RCxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxNQUFNO1FBQ2xDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLFFBQVE7UUFDbEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSztLQUNoQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGluay1wcm9jZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9jZXNzTGlua3NQaXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3Byb2Nlc3MtbGlua3MucGlwZSc7XG5pbXBvcnQgeyBUZXh0Q29udGVudENvbmZpZywgVGV4dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblRleHQsIEFzeW5jUGlwZSwgUHJvY2Vzc0xpbmtzUGlwZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10ZXh0IFtjb2xvcl09XCJwcm9wcy5jb2xvclwiPlxuICAgICAgQGlmIChwcm9wcy5wcm9jZXNzTGlua3MpIHtcbiAgICAgICAgPHBcbiAgICAgICAgICBbY2xhc3NdPVwicHJvcHMuc2l6ZVwiXG4gICAgICAgICAgW2NsYXNzLmJvbGRdPVwicHJvcHMuYm9sZFwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJkaXNwbGF5Q29udGVudCQgfCBhc3luYyB8IHByb2Nlc3NMaW5rczogcHJvcHMubGlua0NvbmZpZ1wiXG4gICAgICAgID48L3A+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgW2NsYXNzXT1cInByb3BzLnNpemVcIiBbY2xhc3MuYm9sZF09XCJwcm9wcy5ib2xkXCI+e3sgZGlzcGxheUNvbnRlbnQkIHwgYXN5bmMgfX08L3A+XG4gICAgICB9XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG4vKipcbiAqIHZhbC10ZXh0XG4gKlxuICogRW5oYW5jZWQgdGV4dCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBib3RoIHN0YXRpYyBjb250ZW50IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gKiBUaGUgY29tcG9uZW50IGF1dG9tYXRpY2FsbHkgdXBkYXRlcyB3aGVuIHRoZSBsYW5ndWFnZSBjaGFuZ2VzIGlmIHVzaW5nIHJlYWN0aXZlIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1N0YXRpYyB0ZXh0JyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgIGJvbGQ6IGZhbHNlXG4gKiB9XCI+PC92YWwtdGV4dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudEtleTogJ3dlbGNvbWVNZXNzYWdlJyxcbiAqICAgY29udGVudENsYXNzOiAnSG9tZUNvbXBvbmVudCcsXG4gKiAgIGNvbnRlbnRGYWxsYmFjazogJ1dlbGNvbWUhJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBSZWFjdGl2ZSBjb250ZW50IHdpdGggaW50ZXJwb2xhdGlvbjpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnZ3JlZXRpbmcnLFxuICogICBjb250ZW50Q2xhc3M6ICdVc2VyQ29tcG9uZW50JyxcbiAqICAgY29udGVudEludGVycG9sYXRpb246IHsgbmFtZTogJ0pvaG4nLCBjb3VudDogNSB9LFxuICogICBjb2xvcjogJ3NlY29uZGFyeScsXG4gKiAgIHNpemU6ICdtZWRpdW0nLFxuICogICBib2xkOiBmYWxzZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGF1dG9tYXRpYyBsaW5rIHByb2Nlc3Npbmc6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20gb3IgZ28gdG8gL3Byb2ZpbGUgZm9yIG1vcmUgaW5mbycsXG4gKiAgIHByb2Nlc3NMaW5rczogdHJ1ZSxcbiAqICAgbGlua0NvbmZpZzoge1xuICogICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiOiB0cnVlLFxuICogICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiOiBmYWxzZSxcbiAqICAgICBsaW5rQ2xhc3M6ICdjdXN0b20tbGluaycsXG4gKiAgICAgZXh0ZXJuYWxMaW5rQ2xhc3M6ICdleHRlcm5hbCcsXG4gKiAgICAgaW50ZXJuYWxMaW5rQ2xhc3M6ICdpbnRlcm5hbCdcbiAqICAgfSxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bSdcbiAqIH1cIj48L3ZhbC10ZXh0PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgVXNpbmcgQ29udGVudFNlcnZpY2UgaGVscGVyOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gY29tcG9uZW50XG4gKiBjb250ZW50ID0gaW5qZWN0KENvbnRlbnRTZXJ2aWNlKTtcbiAqIGNvbXBvbmVudENvbnRlbnQgPSB0aGlzLmNvbnRlbnQuZm9yQ29tcG9uZW50KCdNeUNvbXBvbmVudCcpO1xuICpcbiAqIHRleHRQcm9wcyA9IHtcbiAqICAgY29udGVudDogdGhpcy5jb21wb25lbnRDb250ZW50LmdldFRleHQoJ3RpdGxlJyksIC8vIHN5bmNcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfTtcbiAqIC8vIE9yIHdpdGggcmVhY3RpdmUgYmluZGluZzpcbiAqIHRpdGxlJCA9IHRoaXMuY29tcG9uZW50Q29udGVudC5nZXQoJ3RpdGxlJyk7XG4gKiBgYGBcbiAqXG4gKiBAaW5wdXQgcHJvcHM6IFRleHRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB0ZXh0IChjb250ZW50LCBzdHlsaW5nLCBhbmQgcmVhY3RpdmUgY29udGVudCBvcHRpb25zKVxuICovXG5leHBvcnQgY2xhc3MgVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRleHQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtUZXh0TWV0YWRhdGF9XG4gICAqXG4gICAqIEZvciBzdGF0aWMgY29udGVudDpcbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBUaGUgdGV4dCB0byBkaXNwbGF5ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcmVhY3RpdmUgY29udGVudClcbiAgICpcbiAgICogRm9yIHJlYWN0aXZlIGNvbnRlbnQ6XG4gICAqIEBwcm9wZXJ0eSBjb250ZW50S2V5IC0gVGhlIGNvbnRlbnQga2V5IHRvIHJldHJpZXZlIGZyb20gbGFuZ3VhZ2Ugc2VydmljZVxuICAgKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cFxuICAgKiBAcHJvcGVydHkgY29udGVudEZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdGV4dCBpZiBjb250ZW50IGlzIG5vdCBmb3VuZFxuICAgKiBAcHJvcGVydHkgY29udGVudEludGVycG9sYXRpb24gLSBPcHRpb25hbCB2YWx1ZXMgdG8gaW50ZXJwb2xhdGUgaW50byBjb250ZW50XG4gICAqXG4gICAqIEZvciBzdHlsaW5nOlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgdGV4dCBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKVxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0ZXh0IHNpemUgKCdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJylcbiAgICogQHByb3BlcnR5IGJvbGQgLSBXaGV0aGVyIHRoZSB0ZXh0IGlzIGJvbGRcbiAgICogQHByb3BlcnR5IHByb2Nlc3NMaW5rcyAtIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGFuZCBjb252ZXJ0IGxpbmtzIGluIHRleHQgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKiBAcHJvcGVydHkgbGlua0NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIGxpbmsgcHJvY2Vzc2luZyAoY29sb3JzLCB0YXJnZXQgYmVoYXZpb3IsIGV0Yy4pXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogVGV4dE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHRoYXQgcHJvdmlkZXMgdGhlIGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogVGhpcyB3aWxsIGJlIGVpdGhlciBzdGF0aWMgY29udGVudCBvciByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gICAqL1xuICBkaXNwbGF5Q29udGVudCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGxpbmtQcm9jZXNzb3I6IExpbmtQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHVwRGlzcGxheUNvbnRlbnQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIHRoZSBjb250ZW50IG9ic2VydmFibGUgYmFzZWQgb24gdGhlIHByb3BzIGNvbmZpZ3VyYXRpb24uXG4gICAqIFByaW9yaXR5OiBzdGF0aWMgY29udGVudCA+IHJlYWN0aXZlIGNvbnRlbnQgd2l0aCBpbnRlcnBvbGF0aW9uID4gcmVhY3RpdmUgY29udGVudFxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cERpc3BsYXlDb250ZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnQpIHtcbiAgICAgIC8vIFN0YXRpYyBjb250ZW50IHRha2VzIHByZWNlZGVuY2VcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQkID0gb2YodGhpcy5wcm9wcy5jb250ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuY29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgLy8gUmVhY3RpdmUgY29udGVudCBmcm9tIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIC8vIFdpdGggaW50ZXJwb2xhdGlvblxuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnRXaXRoSW50ZXJwb2xhdGlvbih7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcyxcbiAgICAgICAgICBrZXk6IHRoaXMucHJvcHMuY29udGVudEtleSxcbiAgICAgICAgICBmYWxsYmFjazogdGhpcy5wcm9wcy5jb250ZW50RmFsbGJhY2ssXG4gICAgICAgICAgaW50ZXJwb2xhdGlvbjogdGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaW1wbGUgcmVhY3RpdmUgY29udGVudFxuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgICAga2V5OiB0aGlzLnByb3BzLmNvbnRlbnRLZXksXG4gICAgICAgICAgZmFsbGJhY2s6IHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgdG8gZW1wdHkgc3RyaW5nIGlmIG5vIHZhbGlkIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAndmFsLXRleHQ6IE5vIHZhbGlkIGNvbnRlbnQgY29uZmlndXJhdGlvbiBwcm92aWRlZC4gVXNlIGVpdGhlciBcImNvbnRlbnRcIiBmb3Igc3RhdGljIHRleHQgb3IgXCJjb250ZW50S2V5XCIgKyBcImNvbnRlbnRDbGFzc1wiIGZvciByZWFjdGl2ZSBjb250ZW50LidcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IG9mKHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrIHx8ICcnKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIHJlYWN0aXZlIHRleHQgcHJvcHMgZnJvbSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBUaGlzIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gY3JlYXRlIHZhbC10ZXh0IHByb3BzIHdpdGggcmVhY3RpdmUgY29udGVudC5cbiAqXG4gKiBAcGFyYW0gY29udGVudENvbmZpZyAtIENvbnRlbnQgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHN0eWxlQ29uZmlnIC0gT3B0aW9uYWwgc3R5bGUgY29uZmlndXJhdGlvblxuICogQHJldHVybnMgUGFydGlhbCBUZXh0TWV0YWRhdGEgd2l0aCBjb250ZW50IHByb3BlcnRpZXMgc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGNvbXBvbmVudFxuICogdGl0bGVQcm9wczogVGV4dE1ldGFkYXRhID0ge1xuICogICAuLi5jcmVhdGVUZXh0UHJvcHMoe1xuICogICAgIGNvbnRlbnRLZXk6ICd0aXRsZScsXG4gKiAgICAgY29udGVudENsYXNzOiAnSGVhZGVyQ29tcG9uZW50J1xuICogICB9LCB7XG4gKiAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgICBzaXplOiAnbGFyZ2UnLFxuICogICAgIGJvbGQ6IHRydWVcbiAqICAgfSlcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRleHRQcm9wcyhcbiAgY29udGVudENvbmZpZzogVGV4dENvbnRlbnRDb25maWcsXG4gIHN0eWxlQ29uZmlnOiBQYXJ0aWFsPFBpY2s8VGV4dE1ldGFkYXRhLCAnY29sb3InIHwgJ3NpemUnIHwgJ2JvbGQnPj4gPSB7fVxuKTogUGFydGlhbDxUZXh0TWV0YWRhdGE+IHtcbiAgcmV0dXJuIHtcbiAgICBjb250ZW50S2V5OiBjb250ZW50Q29uZmlnLmNvbnRlbnRLZXksXG4gICAgY29udGVudENsYXNzOiBjb250ZW50Q29uZmlnLmNvbnRlbnRDbGFzcyxcbiAgICBjb250ZW50RmFsbGJhY2s6IGNvbnRlbnRDb25maWcuY29udGVudEZhbGxiYWNrLFxuICAgIGNvbnRlbnRJbnRlcnBvbGF0aW9uOiBjb250ZW50Q29uZmlnLmNvbnRlbnRJbnRlcnBvbGF0aW9uLFxuICAgIGNvbG9yOiBzdHlsZUNvbmZpZy5jb2xvciB8fCAnZGFyaycsXG4gICAgc2l6ZTogc3R5bGVDb25maWcuc2l6ZSB8fCAnbWVkaXVtJyxcbiAgICBib2xkOiBzdHlsZUNvbmZpZy5ib2xkIHx8IGZhbHNlLFxuICB9O1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG4vKipcbiAqIFByb3BzIGZvciB2YWwtdGV4dCBjb21wb25lbnQuXG4gKlxuICogVGhlIGNvbXBvbmVudCBzdXBwb3J0cyBib3RoIHN0YXRpYyBjb250ZW50IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gKiBVc2UgZWl0aGVyIGBjb250ZW50YCBmb3Igc3RhdGljIHRleHQgb3IgYGNvbnRlbnRLZXlgICsgYGNvbnRlbnRDbGFzc2AgZm9yIHJlYWN0aXZlIHRleHQuXG4gKlxuICogQHByb3BlcnR5IGNvbnRlbnQgLSBTdGF0aWMgdGV4dCB0byBkaXNwbGF5ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgY29udGVudEtleSlcbiAqIEBwcm9wZXJ0eSBjb250ZW50S2V5IC0gS2V5IGZvciBkeW5hbWljIGNvbnRlbnQgZnJvbSBsYW5ndWFnZSBzZXJ2aWNlXG4gKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gQ29tcG9uZW50IGNsYXNzIG5hbWUgZm9yIGNvbnRlbnQgbG9va3VwIChyZXF1aXJlZCB3aXRoIGNvbnRlbnRLZXkpXG4gKiBAcHJvcGVydHkgY29udGVudEZhbGxiYWNrIC0gRmFsbGJhY2sgdGV4dCBpZiBjb250ZW50S2V5IGlzIG5vdCBmb3VuZFxuICogQHByb3BlcnR5IGNvbnRlbnRJbnRlcnBvbGF0aW9uIC0gVmFsdWVzIHRvIGludGVycG9sYXRlIGludG8gdGhlIGNvbnRlbnQgc3RyaW5nXG4gKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgdGV4dCBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKVxuICogQHByb3BlcnR5IHNpemUgLSBUaGUgdGV4dCBzaXplICgnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZScpXG4gKiBAcHJvcGVydHkgYm9sZCAtIFdoZXRoZXIgdGhlIHRleHQgaXMgYm9sZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRNZXRhZGF0YSB7XG4gIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJztcbiAgY29sb3I6IENvbG9yO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBib2xkOiBib29sZWFuO1xuXG4gIC8vIFJlYWN0aXZlIGNvbnRlbnQgcHJvcGVydGllc1xuICBjb250ZW50S2V5Pzogc3RyaW5nO1xuICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbiAgY29udGVudEludGVycG9sYXRpb24/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHJlYWN0aXZlIGNvbnRlbnQgaW4gdmFsLXRleHQgY29tcG9uZW50LlxuICogVXNlIHRoaXMgaW50ZXJmYWNlIHdoZW4geW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IGNvbnRlbnQtcmVsYXRlZCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRDb250ZW50Q29uZmlnIHtcbiAgY29udGVudEtleTogc3RyaW5nO1xuICBjb250ZW50Q2xhc3M6IHN0cmluZztcbiAgY29udGVudEZhbGxiYWNrPzogc3RyaW5nO1xuICBjb250ZW50SW50ZXJwb2xhdGlvbj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj47XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgTGlua1Byb2Nlc3NvckNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xpbmstcHJvY2Vzc29yLnNlcnZpY2UnO1xuXG4vKipcbiAqIFByb3BzIGZvciB2YWwtdGV4dCBjb21wb25lbnQuXG4gKlxuICogVGhlIGNvbXBvbmVudCBzdXBwb3J0cyBib3RoIHN0YXRpYyBjb250ZW50IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gKiBVc2UgZWl0aGVyIGBjb250ZW50YCBmb3Igc3RhdGljIHRleHQgb3IgYGNvbnRlbnRLZXlgICsgYGNvbnRlbnRDbGFzc2AgZm9yIHJlYWN0aXZlIHRleHQuXG4gKlxuICogQHByb3BlcnR5IGNvbnRlbnQgLSBTdGF0aWMgdGV4dCB0byBkaXNwbGF5ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgY29udGVudEtleSlcbiAqIEBwcm9wZXJ0eSBjb250ZW50S2V5IC0gS2V5IGZvciBkeW5hbWljIGNvbnRlbnQgZnJvbSBsYW5ndWFnZSBzZXJ2aWNlXG4gKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gQ29tcG9uZW50IGNsYXNzIG5hbWUgZm9yIGNvbnRlbnQgbG9va3VwIChyZXF1aXJlZCB3aXRoIGNvbnRlbnRLZXkpXG4gKiBAcHJvcGVydHkgY29udGVudEZhbGxiYWNrIC0gRmFsbGJhY2sgdGV4dCBpZiBjb250ZW50S2V5IGlzIG5vdCBmb3VuZFxuICogQHByb3BlcnR5IGNvbnRlbnRJbnRlcnBvbGF0aW9uIC0gVmFsdWVzIHRvIGludGVycG9sYXRlIGludG8gdGhlIGNvbnRlbnQgc3RyaW5nXG4gKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgdGV4dCBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKVxuICogQHByb3BlcnR5IHNpemUgLSBUaGUgdGV4dCBzaXplICgnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZScpXG4gKiBAcHJvcGVydHkgYm9sZCAtIFdoZXRoZXIgdGhlIHRleHQgaXMgYm9sZFxuICogQHByb3BlcnR5IHByb2Nlc3NMaW5rcyAtIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGFuZCBjb252ZXJ0IGxpbmtzIGluIHRoZSB0ZXh0IChkZWZhdWx0OiBmYWxzZSlcbiAqIEBwcm9wZXJ0eSBsaW5rQ29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgbGluayBwcm9jZXNzaW5nIChjb2xvcnMsIHRhcmdldCBiZWhhdmlvciwgZXRjLilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0TWV0YWRhdGEge1xuICBzaXplOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZSc7XG4gIGNvbG9yOiBDb2xvcjtcbiAgY29udGVudD86IHN0cmluZztcbiAgYm9sZDogYm9vbGVhbjtcblxuICAvLyBSZWFjdGl2ZSBjb250ZW50IHByb3BlcnRpZXNcbiAgY29udGVudEtleT86IHN0cmluZztcbiAgY29udGVudENsYXNzPzogc3RyaW5nO1xuICBjb250ZW50RmFsbGJhY2s/OiBzdHJpbmc7XG4gIGNvbnRlbnRJbnRlcnBvbGF0aW9uPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPjtcblxuICAvLyBMaW5rIHByb2Nlc3NpbmcgcHJvcGVydGllc1xuICBwcm9jZXNzTGlua3M/OiBib29sZWFuO1xuICBsaW5rQ29uZmlnPzogTGlua1Byb2Nlc3NvckNvbmZpZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciByZWFjdGl2ZSBjb250ZW50IGluIHZhbC10ZXh0IGNvbXBvbmVudC5cbiAqIFVzZSB0aGlzIGludGVyZmFjZSB3aGVuIHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSBjb250ZW50LXJlbGF0ZWQgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0Q29udGVudENvbmZpZyB7XG4gIGNvbnRlbnRLZXk6IHN0cmluZztcbiAgY29udGVudENsYXNzOiBzdHJpbmc7XG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbiAgY29udGVudEludGVycG9sYXRpb24/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xufVxuIl19