valtech-components 2.0.324 → 2.0.326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +133 -2
- package/esm2022/public-api.mjs +1 -2
- package/fesm2022/valtech-components.mjs +132 -182
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/services/lang-provider/lang-provider.service.d.ts +58 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2022/lib/services/content-loader.service.mjs +0 -185
- package/lib/services/content-loader.service.d.ts +0 -98
|
@@ -3,7 +3,7 @@ import { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';
|
|
|
3
3
|
import { LANG } from '../../shared/constants/storage';
|
|
4
4
|
import { LocalStorageService } from '../local-storage.service';
|
|
5
5
|
import { ValtechConfigService } from '../types';
|
|
6
|
-
import { LANGUAGES } from './types';
|
|
6
|
+
import { LANGUAGES, TextContent } from './types';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
/**
|
|
9
9
|
* LangService - Reactive language and content management service.
|
|
@@ -312,6 +312,137 @@ export class LangService {
|
|
|
312
312
|
const targetContent = classContent.Content[lang] || {};
|
|
313
313
|
return Object.keys(referenceContent).filter(key => !targetContent[key] || typeof targetContent[key] !== 'string');
|
|
314
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Register or update content for a component dynamically.
|
|
317
|
+
* This allows registering content at runtime without APP_INITIALIZER.
|
|
318
|
+
*
|
|
319
|
+
* @param className - The component class name
|
|
320
|
+
* @param content - The multilingual content object
|
|
321
|
+
* @param merge - Whether to merge with existing content (default: true)
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```typescript
|
|
325
|
+
* this.langService.registerContent('MyComponent', {
|
|
326
|
+
* [LANGUAGES.ES]: { title: 'Título', description: 'Descripción' },
|
|
327
|
+
* [LANGUAGES.EN]: { title: 'Title', description: 'Description' }
|
|
328
|
+
* });
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
331
|
+
registerContent(className, content, merge = true) {
|
|
332
|
+
if (!className) {
|
|
333
|
+
console.error('LangService: className is required for registerContent');
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
if (!content || typeof content !== 'object') {
|
|
337
|
+
console.error('LangService: Invalid content provided for registerContent');
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
console.log(`LangService: Registering content for "${className}"`, {
|
|
341
|
+
merge,
|
|
342
|
+
languages: Object.keys(content),
|
|
343
|
+
});
|
|
344
|
+
// Initialize component content if it doesn't exist
|
|
345
|
+
if (!this.content[className]) {
|
|
346
|
+
this.content[className] = new TextContent({});
|
|
347
|
+
}
|
|
348
|
+
// Merge or replace content for each language
|
|
349
|
+
Object.entries(content).forEach(([lang, langContent]) => {
|
|
350
|
+
if (!langContent || typeof langContent !== 'object') {
|
|
351
|
+
console.warn(`LangService: Invalid content for language "${lang}" in "${className}"`);
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
if (!this.content[className].Content[lang]) {
|
|
355
|
+
this.content[className].Content[lang] = {};
|
|
356
|
+
}
|
|
357
|
+
if (merge) {
|
|
358
|
+
this.content[className].Content[lang] = {
|
|
359
|
+
...this.content[className].Content[lang],
|
|
360
|
+
...langContent,
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
this.content[className].Content[lang] = { ...langContent };
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
// Update available languages
|
|
368
|
+
this.detectAvailableLanguages();
|
|
369
|
+
console.log(`LangService: Content registered successfully for "${className}"`);
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Update multiple content registrations at once.
|
|
373
|
+
*
|
|
374
|
+
* @param contentMap - Map of className to content
|
|
375
|
+
* @param merge - Whether to merge with existing content (default: true)
|
|
376
|
+
*
|
|
377
|
+
* @example
|
|
378
|
+
* ```typescript
|
|
379
|
+
* this.langService.registerMultipleContent({
|
|
380
|
+
* 'Component1': { [LANGUAGES.ES]: { key1: 'valor1' } },
|
|
381
|
+
* 'Component2': { [LANGUAGES.EN]: { key2: 'value2' } }
|
|
382
|
+
* });
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
385
|
+
registerMultipleContent(contentMap, merge = true) {
|
|
386
|
+
if (!contentMap || typeof contentMap !== 'object') {
|
|
387
|
+
console.error('LangService: Invalid contentMap provided for registerMultipleContent');
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
console.log('LangService: Registering multiple content entries', {
|
|
391
|
+
classes: Object.keys(contentMap),
|
|
392
|
+
merge,
|
|
393
|
+
});
|
|
394
|
+
Object.entries(contentMap).forEach(([className, content]) => {
|
|
395
|
+
this.registerContent(className, content, merge);
|
|
396
|
+
});
|
|
397
|
+
console.log('LangService: Multiple content registration completed');
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Remove content for a specific component.
|
|
401
|
+
*
|
|
402
|
+
* @param className - The component class name to remove
|
|
403
|
+
*/
|
|
404
|
+
removeContent(className) {
|
|
405
|
+
if (!className) {
|
|
406
|
+
console.error('LangService: className is required for removeContent');
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
if (this.content[className]) {
|
|
410
|
+
delete this.content[className];
|
|
411
|
+
this.detectAvailableLanguages();
|
|
412
|
+
console.log(`LangService: Content removed for "${className}"`);
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
console.warn(`LangService: No content found for "${className}" to remove`);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Get a list of all registered component classes.
|
|
420
|
+
*
|
|
421
|
+
* @returns Array of registered class names
|
|
422
|
+
*/
|
|
423
|
+
getRegisteredClasses() {
|
|
424
|
+
return Object.keys(this.content);
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Get the complete content configuration (for debugging purposes).
|
|
428
|
+
* Returns a deep copy to prevent accidental mutations.
|
|
429
|
+
*
|
|
430
|
+
* @returns Complete content configuration
|
|
431
|
+
*/
|
|
432
|
+
getContentConfiguration() {
|
|
433
|
+
return JSON.parse(JSON.stringify(this.content));
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Clear all content and reset to initial state.
|
|
437
|
+
* Useful for testing or complete reinitialization.
|
|
438
|
+
*/
|
|
439
|
+
clearAllContent() {
|
|
440
|
+
console.log('LangService: Clearing all content');
|
|
441
|
+
this.content = {};
|
|
442
|
+
this.availableLanguages = [LANGUAGES.ES]; // Reset to default
|
|
443
|
+
this.warnedMissingLanguages.clear();
|
|
444
|
+
console.log('LangService: All content cleared');
|
|
445
|
+
}
|
|
315
446
|
// Legacy getters/setters for backward compatibility
|
|
316
447
|
get Lang() {
|
|
317
448
|
return this.currentLang;
|
|
@@ -331,4 +462,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
331
462
|
type: Inject,
|
|
332
463
|
args: [ValtechConfigService]
|
|
333
464
|
}] }] });
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sU0FBUyxDQUFDOztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQTBDLE1BQXFCO1FBTHZELHVCQUFrQixHQUFpQixFQUFFLENBQUM7UUFHdEMsMkJBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUdqRCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFaEMsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFbkQsNkNBQTZD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QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU2MsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExBTkcgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoQ29uZmlnLCBWYWx0ZWNoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnLi9jb250ZW50JztcbmltcG9ydCB7IExBTkdVQUdFUywgTGFuZ09wdGlvbiwgTGFuZ3VhZ2VUZXh0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTGFuZ1NlcnZpY2UgLSBSZWFjdGl2ZSBsYW5ndWFnZSBhbmQgY29udGVudCBtYW5hZ2VtZW50IHNlcnZpY2UuXG4gKlxuICogVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIHJlYWN0aXZlIGNvbnRlbnQgbWFuYWdlbWVudCB3aXRoIE9ic2VydmFibGUtYmFzZWQgbGFuZ3VhZ2Ugc3dpdGNoaW5nLlxuICogQ29tcG9uZW50cyBjYW4gc3Vic2NyaWJlIHRvIGNvbnRlbnQgY2hhbmdlcyBhbmQgYXV0b21hdGljYWxseSB1cGRhdGUgd2hlbiB0aGUgbGFuZ3VhZ2UgY2hhbmdlcy5cbiAqXG4gKiBUaGUgc2VydmljZSBhdXRvbWF0aWNhbGx5IGRldGVjdHMgYXZhaWxhYmxlIGxhbmd1YWdlcyBmcm9tIHRoZSBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAqIGFuZCBwcm92aWRlcyBpbnRlbGxpZ2VudCBmYWxsYmFja3Mgd2l0aCBjb25zb2xlIHdhcm5pbmdzIGZvciBtaXNzaW5nIHRyYW5zbGF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlKSB7fVxuICpcbiAqIC8vIEdldCBjdXJyZW50IGxhbmd1YWdlXG4gKiBjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmc7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIGxhbmd1YWdlIGNoYW5nZXNcbiAqIHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmckLnN1YnNjcmliZShsYW5nID0+IGNvbnNvbGUubG9nKCdMYW5ndWFnZSBjaGFuZ2VkOicsIGxhbmcpKTtcbiAqXG4gKiAvLyBHZXQgc3RhdGljIHRleHRcbiAqIGNvbnN0IHRleHQgPSB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoJ0NvbXBvbmVudE5hbWUnLCAndGV4dEtleScpO1xuICpcbiAqIC8vIEdldCByZWFjdGl2ZSB0ZXh0XG4gKiBjb25zdCB0ZXh0JCA9IHRoaXMubGFuZ1NlcnZpY2UuZ2V0Q29udGVudCgnQ29tcG9uZW50TmFtZScsICd0ZXh0S2V5Jyk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExhbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb250ZW50OiBQcm92aWRlcjtcbiAgcHJpdmF0ZSBkZWZhdWx0TGFuZzogTGFuZ09wdGlvbjtcbiAgcHJpdmF0ZSBhdmFpbGFibGVMYW5ndWFnZXM6IExhbmdPcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTGFuZzogQmVoYXZpb3JTdWJqZWN0PExhbmdPcHRpb24+O1xuICBwcml2YXRlIGNvbmZpZzogVmFsdGVjaENvbmZpZztcbiAgcHJpdmF0ZSB3YXJuZWRNaXNzaW5nTGFuZ3VhZ2VzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChWYWx0ZWNoQ29uZmlnU2VydmljZSkgY29uZmlnOiBWYWx0ZWNoQ29uZmlnKSB7XG4gICAgY29uc29sZS5sb2coJ0xhbmdTZXJ2aWNlOiBJbmplY3RlZCBjb25maWc6JywgY29uZmlnKTtcbiAgICB0aGlzLmNvbnRlbnQgPSBjb25maWcuY29udGVudDtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIC8vIERldGVjdCBhdmFpbGFibGUgbGFuZ3VhZ2VzIGZyb20gY29udGVudFxuICAgIHRoaXMuZGV0ZWN0QXZhaWxhYmxlTGFuZ3VhZ2VzKCk7XG5cbiAgICAvLyBTZXQgZGVmYXVsdCBsYW5ndWFnZSAocHJlZmVyIFNwYW5pc2gsIHRoZW4gRW5nbGlzaCwgdGhlbiBmaXJzdCBhdmFpbGFibGUpXG4gICAgdGhpcy5kZWZhdWx0TGFuZyA9IHRoaXMuZGV0ZXJtaW5lRGVmYXVsdExhbmd1YWdlKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggc3RvcmVkIGxhbmd1YWdlIG9yIGRlZmF1bHRcbiAgICBjb25zdCBjdXJyZW50ID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXQ8TGFuZ09wdGlvbj4oTEFORyk7XG4gICAgY29uc3QgaW5pdGlhbExhbmcgPSB0aGlzLnZhbGlkYXRlTGFuZ3VhZ2UoY3VycmVudCkgfHwgdGhpcy5kZWZhdWx0TGFuZztcblxuICAgIHRoaXMuc2VsZWN0ZWRMYW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYW5nT3B0aW9uPihpbml0aWFsTGFuZyk7XG5cbiAgICBjb25zb2xlLmxvZygnTGFuZ1NlcnZpY2U6IEluaXRpYWxpemVkIHdpdGggbGFuZ3VhZ2VzOicsIHtcbiAgICAgIGF2YWlsYWJsZTogdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMsXG4gICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgY3VycmVudDogaW5pdGlhbExhbmcsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0IGF2YWlsYWJsZSBsYW5ndWFnZXMgZnJvbSB0aGUgY29udGVudCBjb25maWd1cmF0aW9uLlxuICAgKiBTY2FucyBhbGwgY29tcG9uZW50IGNvbnRlbnQgdG8gZmluZCB3aGljaCBsYW5ndWFnZXMgYXJlIGFjdHVhbGx5IGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwcml2YXRlIGRldGVjdEF2YWlsYWJsZUxhbmd1YWdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBsYW5ndWFnZVNldCA9IG5ldyBTZXQ8TGFuZ09wdGlvbj4oKTtcblxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250ZW50KS5mb3JFYWNoKGNvbXBvbmVudENvbnRlbnQgPT4ge1xuICAgICAgaWYgKGNvbXBvbmVudENvbnRlbnQ/LkNvbnRlbnQpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY29tcG9uZW50Q29udGVudC5Db250ZW50KS5mb3JFYWNoKGxhbmcgPT4ge1xuICAgICAgICAgIGxhbmd1YWdlU2V0LmFkZChsYW5nKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyA9IEFycmF5LmZyb20obGFuZ3VhZ2VTZXQpLnNvcnQoKTtcblxuICAgIGlmICh0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUud2FybignTGFuZ1NlcnZpY2U6IE5vIGxhbmd1YWdlcyBkZXRlY3RlZCBpbiBjb250ZW50IGNvbmZpZ3VyYXRpb24hJyk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyA9IFtMQU5HVUFHRVMuRVNdOyAvLyBGYWxsYmFja1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgdGhlIGJlc3QgZGVmYXVsdCBsYW5ndWFnZSBiYXNlZCBvbiBhdmFpbGFibGUgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgZGV0ZXJtaW5lRGVmYXVsdExhbmd1YWdlKCk6IExhbmdPcHRpb24ge1xuICAgIC8vIFByZWZlcmVuY2Ugb3JkZXI6IFNwYW5pc2gsIEVuZ2xpc2gsIHRoZW4gZmlyc3QgYXZhaWxhYmxlXG4gICAgY29uc3QgcHJlZmVycmVkT3JkZXIgPSBbTEFOR1VBR0VTLkVTLCBMQU5HVUFHRVMuRU5dO1xuXG4gICAgZm9yIChjb25zdCBwcmVmZXJyZWQgb2YgcHJlZmVycmVkT3JkZXIpIHtcbiAgICAgIGlmICh0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhwcmVmZXJyZWQpKSB7XG4gICAgICAgIHJldHVybiBwcmVmZXJyZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGlmIGEgbGFuZ3VhZ2UgaXMgYXZhaWxhYmxlIGluIHRoZSBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUxhbmd1YWdlKGxhbmc6IExhbmdPcHRpb24gfCBudWxsKTogTGFuZ09wdGlvbiB8IG51bGwge1xuICAgIGlmICghbGFuZykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpID8gbGFuZyA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiZXN0IGF2YWlsYWJsZSBsYW5ndWFnZSBmb3IgYSBjb21wb25lbnQgYW5kIGtleS5cbiAgICogUHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2sgd2l0aCB3YXJuaW5ncy5cbiAgICovXG4gIHByaXZhdGUgZ2V0QmVzdEF2YWlsYWJsZUNvbnRlbnQoXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgcmVxdWVzdGVkTGFuZzogTGFuZ09wdGlvblxuICApOiB7XG4gICAgY29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGFjdHVhbExhbmc6IExhbmdPcHRpb247XG4gICAgc2hvdWxkV2FybjogYm9vbGVhbjtcbiAgfSB7XG4gICAgY29uc3QgY29tcG9uZW50Q29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuXG4gICAgaWYgKCFjb21wb25lbnRDb250ZW50KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiB1bmRlZmluZWQsXG4gICAgICAgIGFjdHVhbExhbmc6IHJlcXVlc3RlZExhbmcsXG4gICAgICAgIHNob3VsZFdhcm46IGZhbHNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUcnkgcmVxdWVzdGVkIGxhbmd1YWdlIGZpcnN0XG4gICAgY29uc3QgcmVxdWVzdGVkQ29udGVudCA9IGNvbXBvbmVudENvbnRlbnQuQ29udGVudFtyZXF1ZXN0ZWRMYW5nXTtcbiAgICBpZiAocmVxdWVzdGVkQ29udGVudD8uW2tleV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IHJlcXVlc3RlZENvbnRlbnRba2V5XSxcbiAgICAgICAgYWN0dWFsTGFuZzogcmVxdWVzdGVkTGFuZyxcbiAgICAgICAgc2hvdWxkV2FybjogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIExhbmd1YWdlIG5vdCBhdmFpbGFibGUsIHRyeSBmYWxsYmFja3NcbiAgICBjb25zdCB3YXJuaW5nS2V5ID0gYCR7Y2xhc3NOYW1lfS4ke2tleX0uJHtyZXF1ZXN0ZWRMYW5nfWA7XG4gICAgY29uc3Qgc2hvdWxkV2FybiA9ICF0aGlzLndhcm5lZE1pc3NpbmdMYW5ndWFnZXMuaGFzKHdhcm5pbmdLZXkpO1xuXG4gICAgaWYgKHNob3VsZFdhcm4pIHtcbiAgICAgIHRoaXMud2FybmVkTWlzc2luZ0xhbmd1YWdlcy5hZGQod2FybmluZ0tleSk7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICBpZiAocmVxdWVzdGVkTGFuZyAhPT0gdGhpcy5kZWZhdWx0TGFuZykge1xuICAgICAgY29uc3QgZGVmYXVsdENvbnRlbnQgPSBjb21wb25lbnRDb250ZW50LkNvbnRlbnRbdGhpcy5kZWZhdWx0TGFuZ107XG4gICAgICBpZiAoZGVmYXVsdENvbnRlbnQ/LltrZXldKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogZGVmYXVsdENvbnRlbnRba2V5XSxcbiAgICAgICAgICBhY3R1YWxMYW5nOiB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgICAgIHNob3VsZFdhcm4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJ5IGZpcnN0IGF2YWlsYWJsZSBsYW5ndWFnZVxuICAgIGZvciAoY29uc3QgYXZhaWxhYmxlTGFuZyBvZiB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcykge1xuICAgICAgY29uc3QgYXZhaWxhYmxlQ29udGVudCA9IGNvbXBvbmVudENvbnRlbnQuQ29udGVudFthdmFpbGFibGVMYW5nXTtcbiAgICAgIGlmIChhdmFpbGFibGVDb250ZW50Py5ba2V5XSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IGF2YWlsYWJsZUNvbnRlbnRba2V5XSxcbiAgICAgICAgICBhY3R1YWxMYW5nOiBhdmFpbGFibGVMYW5nLFxuICAgICAgICAgIHNob3VsZFdhcm4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgICAgIGFjdHVhbExhbmc6IHJlcXVlc3RlZExhbmcsXG4gICAgICBzaG91bGRXYXJuLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IGxhbmd1YWdlIHdoZW5ldmVyIGl0IGNoYW5nZXMuXG4gICAqIFVzZSB0aGlzIHRvIHN1YnNjcmliZSB0byBsYW5ndWFnZSBjaGFuZ2VzIGluIGNvbXBvbmVudHMuXG4gICAqL1xuICBnZXQgY3VycmVudExhbmckKCk6IE9ic2VydmFibGU8TGFuZ09wdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZy5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpIC8vIEVuc3VyZSBuZXcgc3Vic2NyaWJlcnMgZ2V0IHRoZSBjdXJyZW50IHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugc3luY2hyb25vdXNseS5cbiAgICovXG4gIGdldCBjdXJyZW50TGFuZygpOiBMYW5nT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmcudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFycmF5IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMgZGV0ZWN0ZWQgZnJvbSBjb250ZW50LlxuICAgKi9cbiAgZ2V0IGF2YWlsYWJsZUxhbmdzKCk6IExhbmdPcHRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmF2YWlsYWJsZUxhbmd1YWdlc107XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkZWZhdWx0IGxhbmd1YWdlLlxuICAgKi9cbiAgZ2V0IGRlZmF1bHRMYW5ndWFnZSgpOiBMYW5nT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0TGFuZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIHBlcnNpc3QgaXQgdG8gbG9jYWxTdG9yYWdlLlxuICAgKiBUaGlzIHdpbGwgdHJpZ2dlciB1cGRhdGVzIGluIGFsbCByZWFjdGl2ZSBjb250ZW50IHN1YnNjcmlwdGlvbnMuXG4gICAqXG4gICAqIFZhbGlkYXRlcyB0aGF0IHRoZSBsYW5ndWFnZSBpcyBhdmFpbGFibGUgYW5kIHdhcm5zIGlmIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIGxhbmcgLSBUaGUgbGFuZ3VhZ2UgdG8gc2V0XG4gICAqL1xuICBzZXRMYW5nKGxhbmc6IExhbmdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBMYW5nU2VydmljZTogTGFuZ3VhZ2UgXCIke2xhbmd9XCIgaXMgbm90IGF2YWlsYWJsZS4gQXZhaWxhYmxlIGxhbmd1YWdlczpgLFxuICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc1xuICAgICAgKTtcbiAgICAgIGNvbnNvbGUud2FybihgTGFuZ1NlcnZpY2U6IEZhbGxpbmcgYmFjayB0byBkZWZhdWx0IGxhbmd1YWdlIFwiJHt0aGlzLmRlZmF1bHRMYW5nfVwiYCk7XG4gICAgICBsYW5nID0gdGhpcy5kZWZhdWx0TGFuZztcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkTGFuZy5uZXh0KGxhbmcpO1xuICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0PExhbmdPcHRpb24+KExBTkcsIGxhbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb250ZW50IGZvciBhIGNvbXBvbmVudCBjbGFzcyBhbmQga2V5IChsZWdhY3kgbWV0aG9kKS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGdldFRleHQoKSBvciBnZXRDb250ZW50KCkgZm9yIGJldHRlciB0eXBlIHNhZmV0eVxuICAgKi9cbiAgVGV4dChjbGFzc05hbWU6IHN0cmluZyk6IExhbmd1YWdlVGV4dCB7XG4gICAgY29uc3QgY29tcG9uZW50Q29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuICAgIHJldHVybiBjb21wb25lbnRDb250ZW50Py5Db250ZW50W3RoaXMuc2VsZWN0ZWRMYW5nLnZhbHVlXSB8fCB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGUgY29udGVudCBzdHJpbmcgc3luY2hyb25vdXNseSBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXG4gICAqIFByb3ZpZGVzIGludGVsbGlnZW50IGZhbGxiYWNrIHdpdGggd2FybmluZ3MgZm9yIG1pc3NpbmcgdHJhbnNsYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgdGV4dCBrZXlcbiAgICogQHBhcmFtIGZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdGV4dCBpZiBrZXkgaXMgbm90IGZvdW5kXG4gICAqIEByZXR1cm5zIFRoZSB0ZXh0IHN0cmluZyBvciBmYWxsYmFja1xuICAgKi9cbiAgZ2V0VGV4dChjbGFzc05hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGZhbGxiYWNrPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldEJlc3RBdmFpbGFibGVDb250ZW50KGNsYXNzTmFtZSwga2V5LCB0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZSk7XG5cbiAgICBpZiAocmVzdWx0LnNob3VsZFdhcm4gJiYgcmVzdWx0LmFjdHVhbExhbmcgIT09IHRoaXMuc2VsZWN0ZWRMYW5nLnZhbHVlKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBMYW5nU2VydmljZTogQ29udGVudCBcIiR7Y2xhc3NOYW1lfS4ke2tleX1cIiBub3QgYXZhaWxhYmxlIGluIFwiJHt0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZX1cIi5gLFxuICAgICAgICBgVXNpbmcgXCIke3Jlc3VsdC5hY3R1YWxMYW5nfVwiIGluc3RlYWQuIEF2YWlsYWJsZSBsYW5ndWFnZXM6YCxcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5jb250ZW50IHx8IGZhbGxiYWNrIHx8IGBbJHtjbGFzc05hbWV9LiR7a2V5fV1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHJlYWN0aXZlIE9ic2VydmFibGUgZm9yIGEgc3BlY2lmaWMgdGV4dCBrZXkgdGhhdCB1cGRhdGVzIHdoZW4gbGFuZ3VhZ2UgY2hhbmdlcy5cbiAgICogVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgbWV0aG9kIGZvciBjb21wb25lbnRzIHRoYXQgbmVlZCByZWFjdGl2ZSBjb250ZW50LlxuICAgKiBQcm92aWRlcyBpbnRlbGxpZ2VudCBmYWxsYmFjayB3aXRoIHdhcm5pbmdzIGZvciBtaXNzaW5nIHRyYW5zbGF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHRleHQga2V5XG4gICAqIEBwYXJhbSBmYWxsYmFjayAtIE9wdGlvbmFsIGZhbGxiYWNrIHRleHQgaWYga2V5IGlzIG5vdCBmb3VuZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHRleHQgc3RyaW5nIHdoZW5ldmVyIGxhbmd1YWdlIGNoYW5nZXNcbiAgICovXG4gIGdldENvbnRlbnQoY2xhc3NOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmYWxsYmFjaz86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmckLnBpcGUoXG4gICAgICBtYXAobGFuZyA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ2V0QmVzdEF2YWlsYWJsZUNvbnRlbnQoY2xhc3NOYW1lLCBrZXksIGxhbmcpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuc2hvdWxkV2FybiAmJiByZXN1bHQuYWN0dWFsTGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBMYW5nU2VydmljZTogQ29udGVudCBcIiR7Y2xhc3NOYW1lfS4ke2tleX1cIiBub3QgYXZhaWxhYmxlIGluIFwiJHtsYW5nfVwiLmAsXG4gICAgICAgICAgICBgVXNpbmcgXCIke3Jlc3VsdC5hY3R1YWxMYW5nfVwiIGluc3RlYWQuIEF2YWlsYWJsZSBsYW5ndWFnZXM6YCxcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQuY29udGVudCB8fCBmYWxsYmFjayB8fCBgWyR7Y2xhc3NOYW1lfS4ke2tleX1dYDtcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlYWN0aXZlIGNvbnRlbnQgZm9yIG11bHRpcGxlIGtleXMgYXQgb25jZS5cbiAgICogUHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2sgd2l0aCB3YXJuaW5ncyBmb3IgbWlzc2luZyB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleXMgLSBBcnJheSBvZiB0ZXh0IGtleXMgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIG9iamVjdCB3aXRoIGFsbCByZXF1ZXN0ZWQga2V5c1xuICAgKi9cbiAgZ2V0TXVsdGlwbGVDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBrZXlzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nJC5waXBlKFxuICAgICAgbWFwKGxhbmcgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50UmVzdWx0ID0gdGhpcy5nZXRCZXN0QXZhaWxhYmxlQ29udGVudChjbGFzc05hbWUsIGtleSwgbGFuZyk7XG5cbiAgICAgICAgICBpZiAoY29udGVudFJlc3VsdC5zaG91bGRXYXJuICYmIGNvbnRlbnRSZXN1bHQuYWN0dWFsTGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgTGFuZ1NlcnZpY2U6IENvbnRlbnQgXCIke2NsYXNzTmFtZX0uJHtrZXl9XCIgbm90IGF2YWlsYWJsZSBpbiBcIiR7bGFuZ31cIi5gLFxuICAgICAgICAgICAgICBgVXNpbmcgXCIke2NvbnRlbnRSZXN1bHQuYWN0dWFsTGFuZ31cIiBpbnN0ZWFkLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBjb250ZW50UmVzdWx0LmNvbnRlbnQgfHwgYFske2NsYXNzTmFtZX0uJHtrZXl9XWA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBKU09OLnN0cmluZ2lmeShwcmV2KSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VycikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGNvbnRlbnQga2V5IGV4aXN0cyBmb3IgYSBjb21wb25lbnQgaW4gYW55IGF2YWlsYWJsZSBsYW5ndWFnZS5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHRleHQga2V5XG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGtleSBleGlzdHMgaW4gYW55IGxhbmd1YWdlXG4gICAqL1xuICBoYXNDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsYXNzQ29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuICAgIGlmICghY2xhc3NDb250ZW50KSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhjbGFzc0NvbnRlbnQuQ29udGVudCkuc29tZShcbiAgICAgIGxhbmdDb250ZW50ID0+IGxhbmdDb250ZW50ICYmIHR5cGVvZiBsYW5nQ29udGVudFtrZXldID09PSAnc3RyaW5nJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBjb250ZW50IGtleSBleGlzdHMgZm9yIGEgY29tcG9uZW50IGluIGEgc3BlY2lmaWMgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleSAtIFRoZSB0ZXh0IGtleVxuICAgKiBAcGFyYW0gbGFuZyAtIFRoZSBsYW5ndWFnZSB0byBjaGVjayAoZGVmYXVsdHMgdG8gY3VycmVudCBsYW5ndWFnZSlcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUga2V5IGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIGxhbmd1YWdlXG4gICAqL1xuICBoYXNDb250ZW50SW5MYW5ndWFnZShjbGFzc05hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGxhbmc/OiBMYW5nT3B0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFyZ2V0TGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZztcbiAgICBjb25zdCBjbGFzc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXT8uQ29udGVudFt0YXJnZXRMYW5nXTtcbiAgICByZXR1cm4gY2xhc3NDb250ZW50ICYmIHR5cGVvZiBjbGFzc0NvbnRlbnRba2V5XSA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGF2YWlsYWJsZSBsYW5ndWFnZXMgZm9yIGEgc3BlY2lmaWMgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGxhbmd1YWdlIGNvZGVzIGF2YWlsYWJsZSBmb3IgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgZ2V0QXZhaWxhYmxlTGFuZ3VhZ2VzRm9yQ29tcG9uZW50KGNsYXNzTmFtZTogc3RyaW5nKTogTGFuZ09wdGlvbltdIHtcbiAgICBjb25zdCBjbGFzc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXTtcbiAgICBpZiAoIWNsYXNzQ29udGVudCkgcmV0dXJuIFtdO1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGNsYXNzQ29udGVudC5Db250ZW50KS5maWx0ZXIoXG4gICAgICBsYW5nID0+IGNsYXNzQ29udGVudC5Db250ZW50W2xhbmddICYmIE9iamVjdC5rZXlzKGNsYXNzQ29udGVudC5Db250ZW50W2xhbmddKS5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbWlzc2luZyBjb250ZW50IGtleXMgZm9yIGEgY29tcG9uZW50IGluIGEgc3BlY2lmaWMgbGFuZ3VhZ2UuXG4gICAqIFVzZWZ1bCBmb3IgaWRlbnRpZnlpbmcgaW5jb21wbGV0ZSB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGxhbmcgLSBUaGUgbGFuZ3VhZ2UgdG8gY2hlY2tcbiAgICogQHBhcmFtIHJlZmVyZW5jZUxhbmcgLSBUaGUgcmVmZXJlbmNlIGxhbmd1YWdlIHRvIGNvbXBhcmUgYWdhaW5zdCAoZGVmYXVsdHMgdG8gZGVmYXVsdCBsYW5ndWFnZSlcbiAgICogQHJldHVybnMgQXJyYXkgb2YgbWlzc2luZyBrZXlzXG4gICAqL1xuICBnZXRNaXNzaW5nQ29udGVudEtleXMoY2xhc3NOYW1lOiBzdHJpbmcsIGxhbmc6IExhbmdPcHRpb24sIHJlZmVyZW5jZUxhbmc/OiBMYW5nT3B0aW9uKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlZkxhbmcgPSByZWZlcmVuY2VMYW5nIHx8IHRoaXMuZGVmYXVsdExhbmc7XG4gICAgY29uc3QgY2xhc3NDb250ZW50ID0gdGhpcy5jb250ZW50W2NsYXNzTmFtZV07XG5cbiAgICBpZiAoIWNsYXNzQ29udGVudCkgcmV0dXJuIFtdO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlQ29udGVudCA9IGNsYXNzQ29udGVudC5Db250ZW50W3JlZkxhbmddIHx8IHt9O1xuICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjbGFzc0NvbnRlbnQuQ29udGVudFtsYW5nXSB8fCB7fTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhyZWZlcmVuY2VDb250ZW50KS5maWx0ZXIoXG4gICAgICBrZXkgPT4gIXRhcmdldENvbnRlbnRba2V5XSB8fCB0eXBlb2YgdGFyZ2V0Q29udGVudFtrZXldICE9PSAnc3RyaW5nJ1xuICAgICk7XG4gIH1cblxuICAvLyBMZWdhY3kgZ2V0dGVycy9zZXR0ZXJzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gIGdldCBMYW5nKCk6IExhbmdPcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nO1xuICB9XG5cbiAgc2V0IExhbmcobGFuZzogTGFuZ09wdGlvbikge1xuICAgIHRoaXMuc2V0TGFuZyhsYW5nKTtcbiAgfVxufVxuIl19
|
|
465
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxTQUFTLEVBQThDLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFN0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUEwQyxNQUFxQjtRQUx2RCx1QkFBa0IsR0FBaUIsRUFBRSxDQUFDO1FBR3RDLDJCQUFzQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFHakQsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsMENBQTBDO1FBQzFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FB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dkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDOytHQTVnQlUsV0FBVyxrQkFRRixvQkFBb0I7bUhBUjdCLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU2MsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExBTkcgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoQ29uZmlnLCBWYWx0ZWNoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnLi9jb250ZW50JztcbmltcG9ydCB7IExBTkdVQUdFUywgTGFuZ09wdGlvbiwgTGFuZ3VhZ2VUZXh0LCBMYW5ndWFnZXNDb250ZW50LCBUZXh0Q29udGVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIExhbmdTZXJ2aWNlIC0gUmVhY3RpdmUgbGFuZ3VhZ2UgYW5kIGNvbnRlbnQgbWFuYWdlbWVudCBzZXJ2aWNlLlxuICpcbiAqIFRoaXMgc2VydmljZSBwcm92aWRlcyByZWFjdGl2ZSBjb250ZW50IG1hbmFnZW1lbnQgd2l0aCBPYnNlcnZhYmxlLWJhc2VkIGxhbmd1YWdlIHN3aXRjaGluZy5cbiAqIENvbXBvbmVudHMgY2FuIHN1YnNjcmliZSB0byBjb250ZW50IGNoYW5nZXMgYW5kIGF1dG9tYXRpY2FsbHkgdXBkYXRlIHdoZW4gdGhlIGxhbmd1YWdlIGNoYW5nZXMuXG4gKlxuICogVGhlIHNlcnZpY2UgYXV0b21hdGljYWxseSBkZXRlY3RzIGF2YWlsYWJsZSBsYW5ndWFnZXMgZnJvbSB0aGUgY29udGVudCBjb25maWd1cmF0aW9uXG4gKiBhbmQgcHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2tzIHdpdGggY29uc29sZSB3YXJuaW5ncyBmb3IgbWlzc2luZyB0cmFuc2xhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmdTZXJ2aWNlOiBMYW5nU2VydmljZSkge31cbiAqXG4gKiAvLyBHZXQgY3VycmVudCBsYW5ndWFnZVxuICogY29uc3QgY3VycmVudExhbmcgPSB0aGlzLmxhbmdTZXJ2aWNlLmN1cnJlbnRMYW5nO1xuICpcbiAqIC8vIFN1YnNjcmliZSB0byBsYW5ndWFnZSBjaGFuZ2VzXG4gKiB0aGlzLmxhbmdTZXJ2aWNlLmN1cnJlbnRMYW5nJC5zdWJzY3JpYmUobGFuZyA9PiBjb25zb2xlLmxvZygnTGFuZ3VhZ2UgY2hhbmdlZDonLCBsYW5nKSk7XG4gKlxuICogLy8gR2V0IHN0YXRpYyB0ZXh0XG4gKiBjb25zdCB0ZXh0ID0gdGhpcy5sYW5nU2VydmljZS5nZXRUZXh0KCdDb21wb25lbnROYW1lJywgJ3RleHRLZXknKTtcbiAqXG4gKiAvLyBHZXQgcmVhY3RpdmUgdGV4dFxuICogY29uc3QgdGV4dCQgPSB0aGlzLmxhbmdTZXJ2aWNlLmdldENvbnRlbnQoJ0NvbXBvbmVudE5hbWUnLCAndGV4dEtleScpO1xuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMYW5nU2VydmljZSB7XG4gIHByaXZhdGUgY29udGVudDogUHJvdmlkZXI7XG4gIHByaXZhdGUgZGVmYXVsdExhbmc6IExhbmdPcHRpb247XG4gIHByaXZhdGUgYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5nT3B0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBzZWxlY3RlZExhbmc6IEJlaGF2aW9yU3ViamVjdDxMYW5nT3B0aW9uPjtcbiAgcHJpdmF0ZSBjb25maWc6IFZhbHRlY2hDb25maWc7XG4gIHByaXZhdGUgd2FybmVkTWlzc2luZ0xhbmd1YWdlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVmFsdGVjaENvbmZpZ1NlcnZpY2UpIGNvbmZpZzogVmFsdGVjaENvbmZpZykge1xuICAgIGNvbnNvbGUubG9nKCdMYW5nU2VydmljZTogSW5qZWN0ZWQgY29uZmlnOicsIGNvbmZpZyk7XG4gICAgdGhpcy5jb250ZW50ID0gY29uZmlnLmNvbnRlbnQ7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgICAvLyBEZXRlY3QgYXZhaWxhYmxlIGxhbmd1YWdlcyBmcm9tIGNvbnRlbnRcbiAgICB0aGlzLmRldGVjdEF2YWlsYWJsZUxhbmd1YWdlcygpO1xuXG4gICAgLy8gU2V0IGRlZmF1bHQgbGFuZ3VhZ2UgKHByZWZlciBTcGFuaXNoLCB0aGVuIEVuZ2xpc2gsIHRoZW4gZmlyc3QgYXZhaWxhYmxlKVxuICAgIHRoaXMuZGVmYXVsdExhbmcgPSB0aGlzLmRldGVybWluZURlZmF1bHRMYW5ndWFnZSgpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB3aXRoIHN0b3JlZCBsYW5ndWFnZSBvciBkZWZhdWx0XG4gICAgY29uc3QgY3VycmVudCA9IExvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0PExhbmdPcHRpb24+KExBTkcpO1xuICAgIGNvbnN0IGluaXRpYWxMYW5nID0gdGhpcy52YWxpZGF0ZUxhbmd1YWdlKGN1cnJlbnQpIHx8IHRoaXMuZGVmYXVsdExhbmc7XG5cbiAgICB0aGlzLnNlbGVjdGVkTGFuZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGFuZ09wdGlvbj4oaW5pdGlhbExhbmcpO1xuXG4gICAgY29uc29sZS5sb2coJ0xhbmdTZXJ2aWNlOiBJbml0aWFsaXplZCB3aXRoIGxhbmd1YWdlczonLCB7XG4gICAgICBhdmFpbGFibGU6IHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLFxuICAgICAgZGVmYXVsdDogdGhpcy5kZWZhdWx0TGFuZyxcbiAgICAgIGN1cnJlbnQ6IGluaXRpYWxMYW5nLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVjdCBhdmFpbGFibGUgbGFuZ3VhZ2VzIGZyb20gdGhlIGNvbnRlbnQgY29uZmlndXJhdGlvbi5cbiAgICogU2NhbnMgYWxsIGNvbXBvbmVudCBjb250ZW50IHRvIGZpbmQgd2hpY2ggbGFuZ3VhZ2VzIGFyZSBhY3R1YWxseSBjb25maWd1cmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBkZXRlY3RBdmFpbGFibGVMYW5ndWFnZXMoKTogdm9pZCB7XG4gICAgY29uc3QgbGFuZ3VhZ2VTZXQgPSBuZXcgU2V0PExhbmdPcHRpb24+KCk7XG5cbiAgICBPYmplY3QudmFsdWVzKHRoaXMuY29udGVudCkuZm9yRWFjaChjb21wb25lbnRDb250ZW50ID0+IHtcbiAgICAgIGlmIChjb21wb25lbnRDb250ZW50Py5Db250ZW50KSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGNvbXBvbmVudENvbnRlbnQuQ29udGVudCkuZm9yRWFjaChsYW5nID0+IHtcbiAgICAgICAgICBsYW5ndWFnZVNldC5hZGQobGFuZyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMgPSBBcnJheS5mcm9tKGxhbmd1YWdlU2V0KS5zb3J0KCk7XG5cbiAgICBpZiAodGhpcy5hdmFpbGFibGVMYW5ndWFnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0xhbmdTZXJ2aWNlOiBObyBsYW5ndWFnZXMgZGV0ZWN0ZWQgaW4gY29udGVudCBjb25maWd1cmF0aW9uIScpO1xuICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMgPSBbTEFOR1VBR0VTLkVTXTsgLy8gRmFsbGJhY2tcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHRoZSBiZXN0IGRlZmF1bHQgbGFuZ3VhZ2UgYmFzZWQgb24gYXZhaWxhYmxlIGNvbnRlbnQuXG4gICAqL1xuICBwcml2YXRlIGRldGVybWluZURlZmF1bHRMYW5ndWFnZSgpOiBMYW5nT3B0aW9uIHtcbiAgICAvLyBQcmVmZXJlbmNlIG9yZGVyOiBTcGFuaXNoLCBFbmdsaXNoLCB0aGVuIGZpcnN0IGF2YWlsYWJsZVxuICAgIGNvbnN0IHByZWZlcnJlZE9yZGVyID0gW0xBTkdVQUdFUy5FUywgTEFOR1VBR0VTLkVOXTtcblxuICAgIGZvciAoY29uc3QgcHJlZmVycmVkIG9mIHByZWZlcnJlZE9yZGVyKSB7XG4gICAgICBpZiAodGhpcy5hdmFpbGFibGVMYW5ndWFnZXMuaW5jbHVkZXMocHJlZmVycmVkKSkge1xuICAgICAgICByZXR1cm4gcHJlZmVycmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBpZiBhIGxhbmd1YWdlIGlzIGF2YWlsYWJsZSBpbiB0aGUgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVMYW5ndWFnZShsYW5nOiBMYW5nT3B0aW9uIHwgbnVsbCk6IExhbmdPcHRpb24gfCBudWxsIHtcbiAgICBpZiAoIWxhbmcpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhsYW5nKSA/IGxhbmcgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmVzdCBhdmFpbGFibGUgbGFuZ3VhZ2UgZm9yIGEgY29tcG9uZW50IGFuZCBrZXkuXG4gICAqIFByb3ZpZGVzIGludGVsbGlnZW50IGZhbGxiYWNrIHdpdGggd2FybmluZ3MuXG4gICAqL1xuICBwcml2YXRlIGdldEJlc3RBdmFpbGFibGVDb250ZW50KFxuICAgIGNsYXNzTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nLFxuICAgIHJlcXVlc3RlZExhbmc6IExhbmdPcHRpb25cbiAgKToge1xuICAgIGNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBhY3R1YWxMYW5nOiBMYW5nT3B0aW9uO1xuICAgIHNob3VsZFdhcm46IGJvb2xlYW47XG4gIH0ge1xuICAgIGNvbnN0IGNvbXBvbmVudENvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXTtcblxuICAgIGlmICghY29tcG9uZW50Q29udGVudCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogdW5kZWZpbmVkLFxuICAgICAgICBhY3R1YWxMYW5nOiByZXF1ZXN0ZWRMYW5nLFxuICAgICAgICBzaG91bGRXYXJuOiBmYWxzZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVHJ5IHJlcXVlc3RlZCBsYW5ndWFnZSBmaXJzdFxuICAgIGNvbnN0IHJlcXVlc3RlZENvbnRlbnQgPSBjb21wb25lbnRDb250ZW50LkNvbnRlbnRbcmVxdWVzdGVkTGFuZ107XG4gICAgaWYgKHJlcXVlc3RlZENvbnRlbnQ/LltrZXldKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiByZXF1ZXN0ZWRDb250ZW50W2tleV0sXG4gICAgICAgIGFjdHVhbExhbmc6IHJlcXVlc3RlZExhbmcsXG4gICAgICAgIHNob3VsZFdhcm46IGZhbHNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBMYW5ndWFnZSBub3QgYXZhaWxhYmxlLCB0cnkgZmFsbGJhY2tzXG4gICAgY29uc3Qgd2FybmluZ0tleSA9IGAke2NsYXNzTmFtZX0uJHtrZXl9LiR7cmVxdWVzdGVkTGFuZ31gO1xuICAgIGNvbnN0IHNob3VsZFdhcm4gPSAhdGhpcy53YXJuZWRNaXNzaW5nTGFuZ3VhZ2VzLmhhcyh3YXJuaW5nS2V5KTtcblxuICAgIGlmIChzaG91bGRXYXJuKSB7XG4gICAgICB0aGlzLndhcm5lZE1pc3NpbmdMYW5ndWFnZXMuYWRkKHdhcm5pbmdLZXkpO1xuICAgIH1cblxuICAgIC8vIFRyeSBkZWZhdWx0IGxhbmd1YWdlXG4gICAgaWYgKHJlcXVlc3RlZExhbmcgIT09IHRoaXMuZGVmYXVsdExhbmcpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRDb250ZW50ID0gY29tcG9uZW50Q29udGVudC5Db250ZW50W3RoaXMuZGVmYXVsdExhbmddO1xuICAgICAgaWYgKGRlZmF1bHRDb250ZW50Py5ba2V5XSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IGRlZmF1bHRDb250ZW50W2tleV0sXG4gICAgICAgICAgYWN0dWFsTGFuZzogdGhpcy5kZWZhdWx0TGFuZyxcbiAgICAgICAgICBzaG91bGRXYXJuLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSBmaXJzdCBhdmFpbGFibGUgbGFuZ3VhZ2VcbiAgICBmb3IgKGNvbnN0IGF2YWlsYWJsZUxhbmcgb2YgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMpIHtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZUNvbnRlbnQgPSBjb21wb25lbnRDb250ZW50LkNvbnRlbnRbYXZhaWxhYmxlTGFuZ107XG4gICAgICBpZiAoYXZhaWxhYmxlQ29udGVudD8uW2tleV0pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBhdmFpbGFibGVDb250ZW50W2tleV0sXG4gICAgICAgICAgYWN0dWFsTGFuZzogYXZhaWxhYmxlTGFuZyxcbiAgICAgICAgICBzaG91bGRXYXJuLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiB1bmRlZmluZWQsXG4gICAgICBhY3R1YWxMYW5nOiByZXF1ZXN0ZWRMYW5nLFxuICAgICAgc2hvdWxkV2FybixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3VycmVudCBsYW5ndWFnZSB3aGVuZXZlciBpdCBjaGFuZ2VzLlxuICAgKiBVc2UgdGhpcyB0byBzdWJzY3JpYmUgdG8gbGFuZ3VhZ2UgY2hhbmdlcyBpbiBjb21wb25lbnRzLlxuICAgKi9cbiAgZ2V0IGN1cnJlbnRMYW5nJCgpOiBPYnNlcnZhYmxlPExhbmdPcHRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmcuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzaGFyZVJlcGxheSgxKSAvLyBFbnN1cmUgbmV3IHN1YnNjcmliZXJzIGdldCB0aGUgY3VycmVudCB2YWx1ZVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHN5bmNocm9ub3VzbHkuXG4gICAqL1xuICBnZXQgY3VycmVudExhbmcoKTogTGFuZ09wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5nLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhcnJheSBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzIGRldGVjdGVkIGZyb20gY29udGVudC5cbiAgICovXG4gIGdldCBhdmFpbGFibGVMYW5ncygpOiBMYW5nT3B0aW9uW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5hdmFpbGFibGVMYW5ndWFnZXNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBsYW5ndWFnZS5cbiAgICovXG4gIGdldCBkZWZhdWx0TGFuZ3VhZ2UoKTogTGFuZ09wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdExhbmc7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIGFuZCBwZXJzaXN0IGl0IHRvIGxvY2FsU3RvcmFnZS5cbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgdXBkYXRlcyBpbiBhbGwgcmVhY3RpdmUgY29udGVudCBzdWJzY3JpcHRpb25zLlxuICAgKlxuICAgKiBWYWxpZGF0ZXMgdGhhdCB0aGUgbGFuZ3VhZ2UgaXMgYXZhaWxhYmxlIGFuZCB3YXJucyBpZiBub3QuXG4gICAqXG4gICAqIEBwYXJhbSBsYW5nIC0gVGhlIGxhbmd1YWdlIHRvIHNldFxuICAgKi9cbiAgc2V0TGFuZyhsYW5nOiBMYW5nT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhsYW5nKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTGFuZ1NlcnZpY2U6IExhbmd1YWdlIFwiJHtsYW5nfVwiIGlzIG5vdCBhdmFpbGFibGUuIEF2YWlsYWJsZSBsYW5ndWFnZXM6YCxcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXNcbiAgICAgICk7XG4gICAgICBjb25zb2xlLndhcm4oYExhbmdTZXJ2aWNlOiBGYWxsaW5nIGJhY2sgdG8gZGVmYXVsdCBsYW5ndWFnZSBcIiR7dGhpcy5kZWZhdWx0TGFuZ31cImApO1xuICAgICAgbGFuZyA9IHRoaXMuZGVmYXVsdExhbmc7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZExhbmcubmV4dChsYW5nKTtcbiAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldDxMYW5nT3B0aW9uPihMQU5HLCBsYW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29udGVudCBmb3IgYSBjb21wb25lbnQgY2xhc3MgYW5kIGtleSAobGVnYWN5IG1ldGhvZCkuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBnZXRUZXh0KCkgb3IgZ2V0Q29udGVudCgpIGZvciBiZXR0ZXIgdHlwZSBzYWZldHlcbiAgICovXG4gIFRleHQoY2xhc3NOYW1lOiBzdHJpbmcpOiBMYW5ndWFnZVRleHQge1xuICAgIGNvbnN0IGNvbXBvbmVudENvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXTtcbiAgICByZXR1cm4gY29tcG9uZW50Q29udGVudD8uQ29udGVudFt0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZV0gfHwge307XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc2luZ2xlIGNvbnRlbnQgc3RyaW5nIHN5bmNocm9ub3VzbHkgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLlxuICAgKiBQcm92aWRlcyBpbnRlbGxpZ2VudCBmYWxsYmFjayB3aXRoIHdhcm5pbmdzIGZvciBtaXNzaW5nIHRyYW5zbGF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHRleHQga2V5XG4gICAqIEBwYXJhbSBmYWxsYmFjayAtIE9wdGlvbmFsIGZhbGxiYWNrIHRleHQgaWYga2V5IGlzIG5vdCBmb3VuZFxuICAgKiBAcmV0dXJucyBUaGUgdGV4dCBzdHJpbmcgb3IgZmFsbGJhY2tcbiAgICovXG4gIGdldFRleHQoY2xhc3NOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmYWxsYmFjaz86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRCZXN0QXZhaWxhYmxlQ29udGVudChjbGFzc05hbWUsIGtleSwgdGhpcy5zZWxlY3RlZExhbmcudmFsdWUpO1xuXG4gICAgaWYgKHJlc3VsdC5zaG91bGRXYXJuICYmIHJlc3VsdC5hY3R1YWxMYW5nICE9PSB0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTGFuZ1NlcnZpY2U6IENvbnRlbnQgXCIke2NsYXNzTmFtZX0uJHtrZXl9XCIgbm90IGF2YWlsYWJsZSBpbiBcIiR7dGhpcy5zZWxlY3RlZExhbmcudmFsdWV9XCIuYCxcbiAgICAgICAgYFVzaW5nIFwiJHtyZXN1bHQuYWN0dWFsTGFuZ31cIiBpbnN0ZWFkLiBBdmFpbGFibGUgbGFuZ3VhZ2VzOmAsXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQuY29udGVudCB8fCBmYWxsYmFjayB8fCBgWyR7Y2xhc3NOYW1lfS4ke2tleX1dYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSByZWFjdGl2ZSBPYnNlcnZhYmxlIGZvciBhIHNwZWNpZmljIHRleHQga2V5IHRoYXQgdXBkYXRlcyB3aGVuIGxhbmd1YWdlIGNoYW5nZXMuXG4gICAqIFRoaXMgaXMgdGhlIHJlY29tbWVuZGVkIG1ldGhvZCBmb3IgY29tcG9uZW50cyB0aGF0IG5lZWQgcmVhY3RpdmUgY29udGVudC5cbiAgICogUHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2sgd2l0aCB3YXJuaW5ncyBmb3IgbWlzc2luZyB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleSAtIFRoZSB0ZXh0IGtleVxuICAgKiBAcGFyYW0gZmFsbGJhY2sgLSBPcHRpb25hbCBmYWxsYmFjayB0ZXh0IGlmIGtleSBpcyBub3QgZm91bmRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB0ZXh0IHN0cmluZyB3aGVuZXZlciBsYW5ndWFnZSBjaGFuZ2VzXG4gICAqL1xuICBnZXRDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZywgZmFsbGJhY2s/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nJC5waXBlKFxuICAgICAgbWFwKGxhbmcgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldEJlc3RBdmFpbGFibGVDb250ZW50KGNsYXNzTmFtZSwga2V5LCBsYW5nKTtcblxuICAgICAgICBpZiAocmVzdWx0LnNob3VsZFdhcm4gJiYgcmVzdWx0LmFjdHVhbExhbmcgIT09IGxhbmcpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgTGFuZ1NlcnZpY2U6IENvbnRlbnQgXCIke2NsYXNzTmFtZX0uJHtrZXl9XCIgbm90IGF2YWlsYWJsZSBpbiBcIiR7bGFuZ31cIi5gLFxuICAgICAgICAgICAgYFVzaW5nIFwiJHtyZXN1bHQuYWN0dWFsTGFuZ31cIiBpbnN0ZWFkLiBBdmFpbGFibGUgbGFuZ3VhZ2VzOmAsXG4gICAgICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc1xuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0LmNvbnRlbnQgfHwgZmFsbGJhY2sgfHwgYFske2NsYXNzTmFtZX0uJHtrZXl9XWA7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByZWFjdGl2ZSBjb250ZW50IGZvciBtdWx0aXBsZSBrZXlzIGF0IG9uY2UuXG4gICAqIFByb3ZpZGVzIGludGVsbGlnZW50IGZhbGxiYWNrIHdpdGggd2FybmluZ3MgZm9yIG1pc3NpbmcgdHJhbnNsYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEBwYXJhbSBrZXlzIC0gQXJyYXkgb2YgdGV4dCBrZXlzIHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBvYmplY3Qgd2l0aCBhbGwgcmVxdWVzdGVkIGtleXNcbiAgICovXG4gIGdldE11bHRpcGxlQ29udGVudChjbGFzc05hbWU6IHN0cmluZywga2V5czogc3RyaW5nW10pOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZyQucGlwZShcbiAgICAgIG1hcChsYW5nID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGVudFJlc3VsdCA9IHRoaXMuZ2V0QmVzdEF2YWlsYWJsZUNvbnRlbnQoY2xhc3NOYW1lLCBrZXksIGxhbmcpO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnRSZXN1bHQuc2hvdWxkV2FybiAmJiBjb250ZW50UmVzdWx0LmFjdHVhbExhbmcgIT09IGxhbmcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgYExhbmdTZXJ2aWNlOiBDb250ZW50IFwiJHtjbGFzc05hbWV9LiR7a2V5fVwiIG5vdCBhdmFpbGFibGUgaW4gXCIke2xhbmd9XCIuYCxcbiAgICAgICAgICAgICAgYFVzaW5nIFwiJHtjb250ZW50UmVzdWx0LmFjdHVhbExhbmd9XCIgaW5zdGVhZC5gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlc3VsdFtrZXldID0gY29udGVudFJlc3VsdC5jb250ZW50IHx8IGBbJHtjbGFzc05hbWV9LiR7a2V5fV1gO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgY3VycikgPT4gSlNPTi5zdHJpbmdpZnkocHJldikgPT09IEpTT04uc3RyaW5naWZ5KGN1cnIpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBjb250ZW50IGtleSBleGlzdHMgZm9yIGEgY29tcG9uZW50IGluIGFueSBhdmFpbGFibGUgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleSAtIFRoZSB0ZXh0IGtleVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBrZXkgZXhpc3RzIGluIGFueSBsYW5ndWFnZVxuICAgKi9cbiAgaGFzQ29udGVudChjbGFzc05hbWU6IHN0cmluZywga2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGFzc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXTtcbiAgICBpZiAoIWNsYXNzQ29udGVudCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY2xhc3NDb250ZW50LkNvbnRlbnQpLnNvbWUoXG4gICAgICBsYW5nQ29udGVudCA9PiBsYW5nQ29udGVudCAmJiB0eXBlb2YgbGFuZ0NvbnRlbnRba2V5XSA9PT0gJ3N0cmluZydcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgY29udGVudCBrZXkgZXhpc3RzIGZvciBhIGNvbXBvbmVudCBpbiBhIHNwZWNpZmljIGxhbmd1YWdlLlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgdGV4dCBrZXlcbiAgICogQHBhcmFtIGxhbmcgLSBUaGUgbGFuZ3VhZ2UgdG8gY2hlY2sgKGRlZmF1bHRzIHRvIGN1cnJlbnQgbGFuZ3VhZ2UpXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGtleSBleGlzdHMgaW4gdGhlIHNwZWNpZmllZCBsYW5ndWFnZVxuICAgKi9cbiAgaGFzQ29udGVudEluTGFuZ3VhZ2UoY2xhc3NOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBsYW5nPzogTGFuZ09wdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRhcmdldExhbmcgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmc7XG4gICAgY29uc3QgY2xhc3NDb250ZW50ID0gdGhpcy5jb250ZW50W2NsYXNzTmFtZV0/LkNvbnRlbnRbdGFyZ2V0TGFuZ107XG4gICAgcmV0dXJuIGNsYXNzQ29udGVudCAmJiB0eXBlb2YgY2xhc3NDb250ZW50W2tleV0gPT09ICdzdHJpbmcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhdmFpbGFibGUgbGFuZ3VhZ2VzIGZvciBhIHNwZWNpZmljIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBsYW5ndWFnZSBjb2RlcyBhdmFpbGFibGUgZm9yIHRoZSBjb21wb25lbnRcbiAgICovXG4gIGdldEF2YWlsYWJsZUxhbmd1YWdlc0ZvckNvbXBvbmVudChjbGFzc05hbWU6IHN0cmluZyk6IExhbmdPcHRpb25bXSB7XG4gICAgY29uc3QgY2xhc3NDb250ZW50ID0gdGhpcy5jb250ZW50W2NsYXNzTmFtZV07XG4gICAgaWYgKCFjbGFzc0NvbnRlbnQpIHJldHVybiBbXTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhjbGFzc0NvbnRlbnQuQ29udGVudCkuZmlsdGVyKFxuICAgICAgbGFuZyA9PiBjbGFzc0NvbnRlbnQuQ29udGVudFtsYW5nXSAmJiBPYmplY3Qua2V5cyhjbGFzc0NvbnRlbnQuQ29udGVudFtsYW5nXSkubGVuZ3RoID4gMFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG1pc3NpbmcgY29udGVudCBrZXlzIGZvciBhIGNvbXBvbmVudCBpbiBhIHNwZWNpZmljIGxhbmd1YWdlLlxuICAgKiBVc2VmdWwgZm9yIGlkZW50aWZ5aW5nIGluY29tcGxldGUgdHJhbnNsYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEBwYXJhbSBsYW5nIC0gVGhlIGxhbmd1YWdlIHRvIGNoZWNrXG4gICAqIEBwYXJhbSByZWZlcmVuY2VMYW5nIC0gVGhlIHJlZmVyZW5jZSBsYW5ndWFnZSB0byBjb21wYXJlIGFnYWluc3QgKGRlZmF1bHRzIHRvIGRlZmF1bHQgbGFuZ3VhZ2UpXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIG1pc3Npbmcga2V5c1xuICAgKi9cbiAgZ2V0TWlzc2luZ0NvbnRlbnRLZXlzKGNsYXNzTmFtZTogc3RyaW5nLCBsYW5nOiBMYW5nT3B0aW9uLCByZWZlcmVuY2VMYW5nPzogTGFuZ09wdGlvbik6IHN0cmluZ1tdIHtcbiAgICBjb25zdCByZWZMYW5nID0gcmVmZXJlbmNlTGFuZyB8fCB0aGlzLmRlZmF1bHRMYW5nO1xuICAgIGNvbnN0IGNsYXNzQ29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuXG4gICAgaWYgKCFjbGFzc0NvbnRlbnQpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZUNvbnRlbnQgPSBjbGFzc0NvbnRlbnQuQ29udGVudFtyZWZMYW5nXSB8fCB7fTtcbiAgICBjb25zdCB0YXJnZXRDb250ZW50ID0gY2xhc3NDb250ZW50LkNvbnRlbnRbbGFuZ10gfHwge307XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMocmVmZXJlbmNlQ29udGVudCkuZmlsdGVyKFxuICAgICAga2V5ID0+ICF0YXJnZXRDb250ZW50W2tleV0gfHwgdHlwZW9mIHRhcmdldENvbnRlbnRba2V5XSAhPT0gJ3N0cmluZydcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIG9yIHVwZGF0ZSBjb250ZW50IGZvciBhIGNvbXBvbmVudCBkeW5hbWljYWxseS5cbiAgICogVGhpcyBhbGxvd3MgcmVnaXN0ZXJpbmcgY29udGVudCBhdCBydW50aW1lIHdpdGhvdXQgQVBQX0lOSVRJQUxJWkVSLlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEBwYXJhbSBjb250ZW50IC0gVGhlIG11bHRpbGluZ3VhbCBjb250ZW50IG9iamVjdFxuICAgKiBAcGFyYW0gbWVyZ2UgLSBXaGV0aGVyIHRvIG1lcmdlIHdpdGggZXhpc3RpbmcgY29udGVudCAoZGVmYXVsdDogdHJ1ZSlcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB0aGlzLmxhbmdTZXJ2aWNlLnJlZ2lzdGVyQ29udGVudCgnTXlDb21wb25lbnQnLCB7XG4gICAqICAgW0xBTkdVQUdFUy5FU106IHsgdGl0bGU6ICdUw610dWxvJywgZGVzY3JpcHRpb246ICdEZXNjcmlwY2nDs24nIH0sXG4gICAqICAgW0xBTkdVQUdFUy5FTl06IHsgdGl0bGU6ICdUaXRsZScsIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nIH1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcmVnaXN0ZXJDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBjb250ZW50OiBMYW5ndWFnZXNDb250ZW50LCBtZXJnZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoIWNsYXNzTmFtZSkge1xuICAgICAgY29uc29sZS5lcnJvcignTGFuZ1NlcnZpY2U6IGNsYXNzTmFtZSBpcyByZXF1aXJlZCBmb3IgcmVnaXN0ZXJDb250ZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjb250ZW50IHx8IHR5cGVvZiBjb250ZW50ICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS5lcnJvcignTGFuZ1NlcnZpY2U6IEludmFsaWQgY29udGVudCBwcm92aWRlZCBmb3IgcmVnaXN0ZXJDb250ZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coYExhbmdTZXJ2aWNlOiBSZWdpc3RlcmluZyBjb250ZW50IGZvciBcIiR7Y2xhc3NOYW1lfVwiYCwge1xuICAgICAgbWVyZ2UsXG4gICAgICBsYW5ndWFnZXM6IE9iamVjdC5rZXlzKGNvbnRlbnQpLFxuICAgIH0pO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBjb21wb25lbnQgY29udGVudCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKCF0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXSkge1xuICAgICAgdGhpcy5jb250ZW50W2NsYXNzTmFtZV0gPSBuZXcgVGV4dENvbnRlbnQoe30pO1xuICAgIH1cblxuICAgIC8vIE1lcmdlIG9yIHJlcGxhY2UgY29udGVudCBmb3IgZWFjaCBsYW5ndWFnZVxuICAgIE9iamVjdC5lbnRyaWVzKGNvbnRlbnQpLmZvckVhY2goKFtsYW5nLCBsYW5nQ29udGVudF0pID0+IHtcbiAgICAgIGlmICghbGFuZ0NvbnRlbnQgfHwgdHlwZW9mIGxhbmdDb250ZW50ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zb2xlLndhcm4oYExhbmdTZXJ2aWNlOiBJbnZhbGlkIGNvbnRlbnQgZm9yIGxhbmd1YWdlIFwiJHtsYW5nfVwiIGluIFwiJHtjbGFzc05hbWV9XCJgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuY29udGVudFtjbGFzc05hbWVdLkNvbnRlbnRbbGFuZ10pIHtcbiAgICAgICAgdGhpcy5jb250ZW50W2NsYXNzTmFtZV0uQ29udGVudFtsYW5nXSA9IHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAobWVyZ2UpIHtcbiAgICAgICAgdGhpcy5jb250ZW50W2NsYXNzTmFtZV0uQ29udGVudFtsYW5nXSA9IHtcbiAgICAgICAgICAuLi50aGlzLmNvbnRlbnRbY2xhc3NOYW1lXS5Db250ZW50W2xhbmddLFxuICAgICAgICAgIC4uLmxhbmdDb250ZW50LFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb250ZW50W2NsYXNzTmFtZV0uQ29udGVudFtsYW5nXSA9IHsgLi4ubGFuZ0NvbnRlbnQgfTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFVwZGF0ZSBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAgdGhpcy5kZXRlY3RBdmFpbGFibGVMYW5ndWFnZXMoKTtcblxuICAgIGNvbnNvbGUubG9nKGBMYW5nU2VydmljZTogQ29udGVudCByZWdpc3RlcmVkIHN1Y2Nlc3NmdWxseSBmb3IgXCIke2NsYXNzTmFtZX1cImApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBtdWx0aXBsZSBjb250ZW50IHJlZ2lzdHJhdGlvbnMgYXQgb25jZS5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnRNYXAgLSBNYXAgb2YgY2xhc3NOYW1lIHRvIGNvbnRlbnRcbiAgICogQHBhcmFtIG1lcmdlIC0gV2hldGhlciB0byBtZXJnZSB3aXRoIGV4aXN0aW5nIGNvbnRlbnQgKGRlZmF1bHQ6IHRydWUpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogdGhpcy5sYW5nU2VydmljZS5yZWdpc3Rlck11bHRpcGxlQ29udGVudCh7XG4gICAqICAgJ0NvbXBvbmVudDEnOiB7IFtMQU5HVUFHRVMuRVNdOiB7IGtleTE6ICd2YWxvcjEnIH0gfSxcbiAgICogICAnQ29tcG9uZW50Mic6IHsgW0xBTkdVQUdFUy5FTl06IHsga2V5MjogJ3ZhbHVlMicgfSB9XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIHJlZ2lzdGVyTXVsdGlwbGVDb250ZW50KFxuICAgIGNvbnRlbnRNYXA6IFJlY29yZDxzdHJpbmcsIExhbmd1YWdlc0NvbnRlbnQ+LFxuICAgIG1lcmdlOiBib29sZWFuID0gdHJ1ZVxuICApOiB2b2lkIHtcbiAgICBpZiAoIWNvbnRlbnRNYXAgfHwgdHlwZW9mIGNvbnRlbnRNYXAgIT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdMYW5nU2VydmljZTogSW52YWxpZCBjb250ZW50TWFwIHByb3ZpZGVkIGZvciByZWdpc3Rlck11bHRpcGxlQ29udGVudCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCdMYW5nU2VydmljZTogUmVnaXN0ZXJpbmcgbXVsdGlwbGUgY29udGVudCBlbnRyaWVzJywge1xuICAgICAgY2xhc3NlczogT2JqZWN0LmtleXMoY29udGVudE1hcCksXG4gICAgICBtZXJnZSxcbiAgICB9KTtcblxuICAgIE9iamVjdC5lbnRyaWVzKGNvbnRlbnRNYXApLmZvckVhY2goKFtjbGFzc05hbWUsIGNvbnRlbnRdKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyQ29udGVudChjbGFzc05hbWUsIGNvbnRlbnQsIG1lcmdlKTtcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKCdMYW5nU2VydmljZTogTXVsdGlwbGUgY29udGVudCByZWdpc3RyYXRpb24gY29tcGxldGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGNvbnRlbnQgZm9yIGEgc3BlY2lmaWMgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lIHRvIHJlbW92ZVxuICAgKi9cbiAgcmVtb3ZlQ29udGVudChjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghY2xhc3NOYW1lKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdMYW5nU2VydmljZTogY2xhc3NOYW1lIGlzIHJlcXVpcmVkIGZvciByZW1vdmVDb250ZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udGVudFtjbGFzc05hbWVdKSB7XG4gICAgICBkZWxldGUgdGhpcy5jb250ZW50W2NsYXNzTmFtZV07XG4gICAgICB0aGlzLmRldGVjdEF2YWlsYWJsZUxhbmd1YWdlcygpO1xuICAgICAgY29uc29sZS5sb2coYExhbmdTZXJ2aWNlOiBDb250ZW50IHJlbW92ZWQgZm9yIFwiJHtjbGFzc05hbWV9XCJgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKGBMYW5nU2VydmljZTogTm8gY29udGVudCBmb3VuZCBmb3IgXCIke2NsYXNzTmFtZX1cIiB0byByZW1vdmVgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBjb21wb25lbnQgY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgQXJyYXkgb2YgcmVnaXN0ZXJlZCBjbGFzcyBuYW1lc1xuICAgKi9cbiAgZ2V0UmVnaXN0ZXJlZENsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbnRlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29tcGxldGUgY29udGVudCBjb25maWd1cmF0aW9uIChmb3IgZGVidWdnaW5nIHB1cnBvc2VzKS5cbiAgICogUmV0dXJucyBhIGRlZXAgY29weSB0byBwcmV2ZW50IGFjY2lkZW50YWwgbXV0YXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBDb21wbGV0ZSBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGdldENvbnRlbnRDb25maWd1cmF0aW9uKCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnRlbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgY29udGVudCBhbmQgcmVzZXQgdG8gaW5pdGlhbCBzdGF0ZS5cbiAgICogVXNlZnVsIGZvciB0ZXN0aW5nIG9yIGNvbXBsZXRlIHJlaW5pdGlhbGl6YXRpb24uXG4gICAqL1xuICBjbGVhckFsbENvbnRlbnQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ0xhbmdTZXJ2aWNlOiBDbGVhcmluZyBhbGwgY29udGVudCcpO1xuICAgIHRoaXMuY29udGVudCA9IHt9O1xuICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzID0gW0xBTkdVQUdFUy5FU107IC8vIFJlc2V0IHRvIGRlZmF1bHRcbiAgICB0aGlzLndhcm5lZE1pc3NpbmdMYW5ndWFnZXMuY2xlYXIoKTtcbiAgICBjb25zb2xlLmxvZygnTGFuZ1NlcnZpY2U6IEFsbCBjb250ZW50IGNsZWFyZWQnKTtcbiAgfVxuXG4gIC8vIExlZ2FjeSBnZXR0ZXJzL3NldHRlcnMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgZ2V0IExhbmcoKTogTGFuZ09wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmc7XG4gIH1cblxuICBzZXQgTGFuZyhsYW5nOiBMYW5nT3B0aW9uKSB7XG4gICAgdGhpcy5zZXRMYW5nKGxhbmcpO1xuICB9XG59XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -90,7 +90,6 @@ export * from './lib/components/organisms/article/types';
|
|
|
90
90
|
export * from './lib/components/templates/layout/layout.component';
|
|
91
91
|
export * from './lib/components/templates/simple/simple.component';
|
|
92
92
|
export * from './lib/components/templates/simple/types';
|
|
93
|
-
export * from './lib/services/content-loader.service';
|
|
94
93
|
export * from './lib/services/content.service';
|
|
95
94
|
export * from './lib/services/download.service';
|
|
96
95
|
export * from './lib/services/icons.service';
|
|
@@ -112,4 +111,4 @@ export * from './lib/shared/utils/form-defaults';
|
|
|
112
111
|
export * from './lib/shared/utils/reactive-content';
|
|
113
112
|
export * from './lib/shared/utils/styles';
|
|
114
113
|
export * from './lib/shared/utils/text';
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFj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QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB2YWx0ZWNoLWNvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYXZhdGFyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYm94L2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ib3gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2J1dHRvbi9mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGl2aWRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2hyZWYvaHJlZi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ocmVmL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2ljb24vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pbWFnZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvcHJvZ3Jlc3MtYmFyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90aXRsZS90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FsZXJ0LWJveC9hbGVydC1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FsZXJ0LWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoZWNrLWlucHV0L2NoZWNrLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtbG9hZGVyL2NvbnRlbnQtbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LWxvYWRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2VtYWlsLWlucHV0L2VtYWlsLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9leHBhbmRhYmxlLXRleHQvZXhwYW5kYWJsZS10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9leHBhbmRhYmxlLXRleHQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9oaW50L2hpbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2hvdXItaW5wdXQvaG91ci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC9sYXllcmVkLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rL2xpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmsvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtY2FrZS9saW5rcy1jYWtlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rcy1jYWtlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC9ub3Rlcy1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGluLWlucHV0L3Bpbi1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcG9wb3Zlci1zZWxlY3Rvci9wb3BvdmVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wb3BvdmVyLXNlbGVjdG9yL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2dyZXNzLXN0YXR1cy9wcm9ncmVzcy1zdGF0dXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2dyZXNzLXN0YXR1cy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9tcHRlci9wcm9tcHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvbXB0ZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaGJhci9zZWFyY2hiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1zZWFyY2gvc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aXRsZS1ibG9jay90aXRsZS1ibG9jay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGl0bGUtYmxvY2svdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL2FydGljbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYmFubmVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2Zvcm0tZm9vdGVyL2Zvcm0tZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2hlYWRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9pdGVtLWxpc3QvaXRlbS1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9pdGVtLWxpc3QvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbm8tY29udGVudC9uby1jb250ZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9uby1jb250ZW50L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdG9vbGJhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy93aXphcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvd2l6YXJkL3dpemFyZC1mb290ZXIvd2l6YXJkLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvd2l6YXJkL3dpemFyZC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL2FydGljbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9zaW1wbGUvc2ltcGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9zaW1wbGUvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb250ZW50LWxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kb3dubG9hZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaW4tYXBwLWJyb3dzZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2NvbnRlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGFuZy1wcm92aWRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9saW5rLXByb2Nlc3Nvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvcGlwZXMvcHJvY2Vzcy1saW5rcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9kb20nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2Zvcm0tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL3JlYWN0aXZlLWNvbnRlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvdGV4dCc7XG5cbiJdfQ==
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFj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IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdmFsdGVjaC1jb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2F2YXRhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2JveC9ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYm94L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9kaXNwbGF5L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2RpdmlkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ocmVmL2hyZWYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaHJlZi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pY29uL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLWJhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hbGVydC1ib3gvYWxlcnQtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hbGVydC1ib3gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29tbWVudC1pbnB1dC9jb21tZW50LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LWxvYWRlci9jb250ZW50LWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29udGVudC1sb2FkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbWFpbC1pbnB1dC9lbWFpbC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvaGludC9oaW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9ob3VyLWlucHV0L2hvdXItaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9sYXllcmVkLWNhcmQvbGF5ZXJlZC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9sYXllcmVkLWNhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGluay9saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtzLWNha2UvbGlua3MtY2FrZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtY2FrZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9ub3Rlcy1ib3gvbm90ZXMtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9ub3Rlcy1ib3gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BvcG92ZXItc2VsZWN0b3IvcG9wb3Zlci1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcG9wb3Zlci1zZWxlY3Rvci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9ncmVzcy1zdGF0dXMvcHJvZ3Jlc3Mtc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9ncmVzcy1zdGF0dXMvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvbXB0ZXIvcHJvbXB0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb21wdGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3JhZGlvLWlucHV0L3JhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpdGxlLWJsb2NrL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS9hcnRpY2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2ZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLWZvb3Rlci9mb3JtLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L2l0ZW0tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL25vLWNvbnRlbnQvbm8tY29udGVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbm8tY29udGVudC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvd2l6YXJkL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQtZm9vdGVyL3dpemFyZC1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS9hcnRpY2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvc2ltcGxlL3NpbXBsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvc2ltcGxlL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Rvd25sb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbi1hcHAtYnJvd3Nlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xpbmstcHJvY2Vzc29yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9waXBlcy9wcm9jZXNzLWxpbmtzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2NvbnRlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvZm9ybS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvcmVhY3RpdmUtY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvc3R5bGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy90ZXh0JztcbiJdfQ==
|