@o3r/localization 10.0.0-prerelease.98 → 10.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +6 -4
  2. package/builders/helpers/localization.generator.js.map +1 -1
  3. package/builders/i18n/index.js.map +1 -1
  4. package/builders/localization/index.d.ts.map +1 -1
  5. package/builders/localization/index.js +10 -3
  6. package/builders/localization/index.js.map +1 -1
  7. package/builders/localization/schema.json +1 -2
  8. package/builders/localization-extractor/index.js.map +1 -1
  9. package/builders/localization-extractor/validations.js.map +1 -1
  10. package/esm2022/annotations/localization.mjs +1 -1
  11. package/esm2022/core/translate-messageformat-lazy.compiler.mjs +1 -1
  12. package/esm2022/devkit/localization-devtools.console.service.mjs +1 -1
  13. package/esm2022/devkit/localization-devtools.message.service.mjs +1 -1
  14. package/esm2022/stores/localization-override/localization-override.sync.mjs +1 -1
  15. package/esm2022/tools/localization-translate.directive.mjs +1 -1
  16. package/esm2022/tools/localization-translate.pipe.mjs +1 -1
  17. package/esm2022/tools/localization.service.mjs +1 -1
  18. package/esm2022/tools/localized-date.pipe.mjs +1 -1
  19. package/esm2022/tools/text-direction.service.mjs +1 -1
  20. package/esm2022/tools/translations-loader.mjs +1 -1
  21. package/fesm2022/o3r-localization.mjs.map +1 -1
  22. package/package.json +11 -7
  23. package/schematics/add-localization-key/index.js.map +1 -1
  24. package/schematics/cms-adapter/index.js.map +1 -1
  25. package/schematics/localization-base/index.d.ts.map +1 -1
  26. package/schematics/localization-base/index.js +18 -17
  27. package/schematics/localization-base/index.js.map +1 -1
  28. package/schematics/localization-to-component/index.js.map +1 -1
  29. package/schematics/ng-add/index.d.ts.map +1 -1
  30. package/schematics/ng-add/index.js +28 -19
  31. package/schematics/ng-add/index.js.map +1 -1
@@ -188,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
188
188
  }] }, { type: i3.Store, decorators: [{
189
189
  type: Optional
190
190
  }] }] });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEVBQTZCLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRXhFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUNtQixnQkFBa0MsRUFDbEMsTUFBcUIsRUFDcUIsYUFBd0MsRUFDdEUsS0FBd0M7UUFIcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3FCLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUN0RSxVQUFLLEdBQUwsS0FBSyxDQUFtQztRQXRCdEQsMEJBQXFCLEdBQVcsR0FBRyxDQUFDO1FBRXJEOztXQUVHO1FBQ0gsZ0VBQWdFO1FBQy9DLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU96RDs7V0FFRztR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RSxpQkFBaUIsQ0FBQyxDQUFDLEVBQzNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztpSUF2TVUsbUJBQW1CLCtFQXVCcEIsZ0NBQWdDO3FJQXZCL0IsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOzswQkF3Qk4sTUFBTTsyQkFBQyxnQ0FBZ0M7OzBCQUN2QyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvcmUvbG9jYWxpemF0aW9uLmNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uT3ZlcnJpZGVTdG9yZSwgc2VsZWN0TG9jYWxpemF0aW9uT3ZlcnJpZGUgfSBmcm9tICcuLi9zdG9yZXMvaW5kZXgnO1xuaW1wb3J0IHsgTE9DQUxJWkFUSU9OX0NPTkZJR1VSQVRJT05fVE9LRU4gfSBmcm9tICcuL2xvY2FsaXphdGlvbi50b2tlbic7XG5cbi8qKlxuICogU2VydmljZSB3aGljaCBpcyB3cmFwcGluZyB0aGUgY29uZmlndXJhdGlvbiBsb2dpYyBvZiBUcmFuc2xhdGVTZXJ2aWNlIGZyb20gbmd4LXRyYW5zbGF0ZVxuICogQW55IGFwcGxpY2F0aW9uIHdpbGxpbmcgdG8gdXNlIGxvY2FsaXphdGlvbiBqdXN0IG5lZWRzIHRvIGluamVjdCBMb2NhbGl6YXRpb25TZXJ2aWNlXG4gKiBpbiB0aGUgcm9vdCBjb21wb25lbnQgYW5kIGNhbGwgaXRzIGNvbmZpZ3VyZSgpIG1ldGhvZC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvblNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU3BsaXRJZGVudGlmaWVyOiBzdHJpbmcgPSAnLSc7XG5cbiAgLyoqXG4gICAqIEludGVybmFsIHN1YmplY3QgdGhhdCB3ZSB1c2UgdG8gdHJhY2sgY2hhbmdlcyBiZXR3ZWVuIGtleXMgb25seSBhbmQgdHJhbnNsYXRpb24gbW9kZVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBwcml2YXRlIHJlYWRvbmx5IF9zaG93S2V5cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAvKipcbiAgICogTWFwIG9mIGxvY2FsaXphdGlvbiBrZXlzIHRvIHJlcGxhY2UgYSBrZXkgdG8gYW5vdGhlclxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBrZXlNYXBwaW5nJD86IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgYW55Pj47XG5cbiAgLyoqXG4gICAqIF9zaG93S2V5cyQgZXhwb3NlZCBhcyBhbiBPYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgc2hvd0tleXMkID0gdGhpcy5fc2hvd0tleXMkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBASW5qZWN0KExPQ0FMSVpBVElPTl9DT05GSUdVUkFUSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IExvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBzdG9yZT86IFN0b3JlPExvY2FsaXphdGlvbk92ZXJyaWRlU3RvcmU+KSB7XG4gICAgdGhpcy5jb25maWd1cmUoKTtcbiAgICBpZiAodGhpcy5zdG9yZSkge1xuICAgICAgdGhpcy5rZXlNYXBwaW5nJCA9IHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KHNlbGVjdExvY2FsaXphdGlvbk92ZXJyaWRlKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyB3aWxsIGhhbmRsZSB0aGUgZmFsbGJhY2sgbGFuZ3VhZ2UgaGllcmFyY2h5IHRvIGZpbmQgb3V0IGZhbGxiYWNrIGxhbmd1YWdlLlxuICAgKiBzdXBwb3J0ZWRMb2NhbGVzIGxhbmd1YWdlIGhhcyBoaWdoZXN0IHByaW9yaXR5LCBuZXh0IHByaW9yaXR5IGdvZXMgdG8gZmFsbGJhY2tMb2NhbGVzTWFwIGFuZCBkZWZhdWx0IHdvdWxkIGJlXG4gICAqIGZhbGxiYWNrTGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBsYW5ndWFnZSBTZWxlY3RlZCBsYW5ndWFnZS5cbiAgICogQHJldHVybnMgc2VsZWN0ZWQgbGFuZ3VhZ2UgaWYgc3VwcG9ydGVkLCBmYWxsYmFjayBsYW5ndWFnZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcml2YXRlIGNoZWNrRmFsbGJhY2tMb2NhbGVzTWFwPFQgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQ+KGxhbmd1YWdlOiBUKSB7XG4gICAgaWYgKGxhbmd1YWdlICYmIHRoaXMuY29uZmlndXJhdGlvbi5zdXBwb3J0ZWRMb2NhbGVzLmluZGV4T2YobGFuZ3VhZ2UpID09PSAtMSkge1xuICAgICAgY29uc3QgY2xvc2VzdFN1cHBvcnRlZExhbmd1YWdlQ29kZSA9IHRoaXMuZ2V0Rmlyc3RDbG9zZXN0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlKGxhbmd1YWdlKTtcbiAgICAgIGNvbnN0IGZhbGxiYWNrRm9yTGFuZ3VhZ2UgPSB0aGlzLmdldEZhbGxiYWNrTWFwTGFuZ0NvZGUobGFuZ3VhZ2UpO1xuICAgICAgY29uc3QgZmFsbGJhY2tTdHJhdGVneURlYnVnID0gZmFsbGJhY2tGb3JMYW5ndWFnZSAmJiAnIGFzc29jaWF0ZWQgZmFsbGJhY2sgbGFuZ3VhZ2UgJyB8fFxuICAgICAgICBjbG9zZXN0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlICYmICcgY2xvc2VzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2UgJyB8fFxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uZmFsbGJhY2tMYW5ndWFnZSAmJiAnIGNvbmZpZ3VyZWQgZGVmYXVsdCBsYW5ndWFnZSAnO1xuICAgICAgY29uc3QgZmFsbGJhY2tMYW5nID0gZmFsbGJhY2tGb3JMYW5ndWFnZSB8fCBjbG9zZXN0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlIHx8IHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlIHx8IGxhbmd1YWdlO1xuICAgICAgaWYgKGxhbmd1YWdlICE9PSBmYWxsYmFja0xhbmcpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYE5vbiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzICR7bGFuZ3VhZ2V9IHdpbGwgZmFsbGJhY2sgdG8gJHtmYWxsYmFja1N0cmF0ZWd5RGVidWd9ICR7ZmFsbGJhY2tMYW5nfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbGxiYWNrTGFuZztcbiAgICB9IGVsc2UgaWYgKCFsYW5ndWFnZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xhbmd1YWdlIGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHJldHVybiBsYW5ndWFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBmYWxsYmFjayBsYW5ndWFnZSBjYW4gYmUgcHJvdmlkZWQgZnJvbSBmYWxsYmFja0xvY2FsZXNNYXAuXG4gICAqIHN1cHBvcnRlZExvY2FsZXM6IFsnZW4tR0InLCAnZW4tVVMnLCAnZnItRlInXSwgZmFsbGJhY2tMb2NhbGVzTWFwOiB7J2VuLUNBJzogJ2VuLVVTJywgJ2RlJzogJ2ZyLUZSJ31cbiAgICogdHJhbnNsYXRlIHRvIGVuLUNBIC0+IGZhbGxiYWNrIHRvIGVuLVVTLCB0cmFuc2xhdGUgdG8gZGUtREUgLT4gZmFsbGJhY2sgdG8gZnItRlJcbiAgICogdHJhbnNsYXRlIHRvIGVuLU5aIC0+IGZhbGxiYWNrIHRvIGVuLUdCXG4gICAqIEBwYXJhbSBsYW5ndWFnZSBTZWxlY3RlZCBsYW5ndWFnZS5cbiAgICogQHJldHVybnMgRmFsbGJhY2sgbGFuZ3VhZ2UgaWYgYXZhaWxhYmxlLCB1bmRlZmluZWQgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGYWxsYmFja01hcExhbmdDb2RlKGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlc01hcCA9IHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xvY2FsZXNNYXA7XG4gICAgY29uc3QgW2xvY2FsZV0gPSBsYW5ndWFnZS5zcGxpdCh0aGlzLmxvY2FsZVNwbGl0SWRlbnRpZmllcik7XG5cbiAgICByZXR1cm4gZmFsbGJhY2tMb2NhbGVzTWFwICYmIChmYWxsYmFja0xvY2FsZXNNYXBbbGFuZ3VhZ2VdIHx8IGZhbGxiYWNrTG9jYWxlc01hcFtsb2NhbGVdKTtcblxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGNsb3Nlc3Qgc3VwcG9ydGVkIGxhbmd1YWdlIGF2YWlsYWJsZSBpbmNhc2Ugb2Ygc2VsZWN0ZWQgbGFuZ3VhZ2UgaXMgbm90XG4gICAqIHN1cHBvcnRlZCBsYW5ndWFnZS5cbiAgICogc3VwcG9ydGVkTG9jYWxlczogWydlbi1HQicsICdlbi1VUycsICdmci1GUiddXG4gICAqIHRyYW5zbGF0ZSB0byBlbi1DQSAtPiBmYWxsYmFjayB0byBlbi1HQlxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgU2VsZWN0ZWQgbGFuZ3VhZ2UuXG4gICAqIEByZXR1cm5zIENsb3Nlc3Qgc3VwcG9ydGVkIGxhbmd1YWdlIGlmIGF2YWlsYWJsZSwgdW5kZWZpbmVkIG90aGVyd2lzZS5cbiAgICovXG4gIHByaXZhdGUgZ2V0Rmlyc3RDbG9zZXN0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlKGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXG4gICAgY29uc3QgW2xvY2FsZV0gPSBsYW5ndWFnZS5zcGxpdCh0aGlzLmxvY2FsZVNwbGl0SWRlbnRpZmllcik7XG4gICAgY29uc3QgZmlyc3RDbG9zZXN0UmVneCA9IG5ldyBSZWdFeHAoYF4ke2xvY2FsZX0ke3RoaXMubG9jYWxlU3BsaXRJZGVudGlmaWVyfT9gLCAnaScpO1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5zdXBwb3J0ZWRMb2NhbGVzLmZpbmQoKHN1cHBvcnRlZExhbmcpID0+IGZpcnN0Q2xvc2VzdFJlZ3gudGVzdChzdXBwb3J0ZWRMYW5nKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmVhbSBvZiB0cmFuc2xhdGVkIHZhbHVlcyBvZiBhIGtleSB3aGljaCB1cGRhdGVzIHdoZW5ldmVyIHRoZSBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25LZXkgS2V5IHRvIHRyYW5zbGF0ZVxuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGVQYXJhbXMgT2JqZWN0IHRvIHVzZSBpbiB0cmFuc2xhdGlvbiBiaW5kaW5nXG4gICAqIEByZXR1cm5zIEEgc3RyZWFtIG9mIHRoZSB0cmFuc2xhdGVkIGtleVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvblN0cmVhbSh0cmFuc2xhdGlvbktleTogc3RyaW5nLCBpbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdCkge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uJCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0odHJhbnNsYXRpb25LZXksIGludGVycG9sYXRlUGFyYW1zKS5waXBlKFxuICAgICAgbWFwKCh2YWx1ZTogc3RyaW5nKSA9PiB0aGlzLmNvbmZpZ3VyYXRpb24uZGVidWdNb2RlID8gYCR7dHJhbnNsYXRpb25LZXl9IC0gJHt2YWx1ZX1gIDogdmFsdWUpXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uLmVuYWJsZVRyYW5zbGF0aW9uRGVhY3RpdmF0aW9uKSB7XG4gICAgICByZXR1cm4gdHJhbnNsYXRpb24kO1xuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRyYW5zbGF0aW9uJCxcbiAgICAgIHRoaXMuc2hvd0tleXMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3ZhbHVlLCBzaG93S2V5c10pID0+IHNob3dLZXlzID8gdHJhbnNsYXRpb25LZXkgOiB2YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgVHJhbnNsYXRlU2VydmljZSBhbmQgcmVnaXN0ZXJzIGxvY2FsZXMuIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBsZXZlbC5cbiAgICovXG4gIHB1YmxpYyBjb25maWd1cmUoKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmNoZWNrRmFsbGJhY2tMb2NhbGVzTWFwKHRoaXMuY29uZmlndXJhdGlvbi5sYW5ndWFnZSB8fCB0aGlzLmNvbmZpZ3VyYXRpb24uZmFsbGJhY2tMYW5ndWFnZSk7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmFkZExhbmdzKHRoaXMuY29uZmlndXJhdGlvbi5zdXBwb3J0ZWRMb2NhbGVzKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdExhbmcobGFuZ3VhZ2UpO1xuICAgIHRoaXMudXNlTGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZXIgdG8gY2FsbCB0aGUgbmd4LXRyYW5zbGF0ZSBzZXJ2aWNlIFRyYW5zbGF0ZVNlcnZpY2UgbWV0aG9kIGdldExhbmdzKCkuXG4gICAqL1xuICBwdWJsaWMgZ2V0TGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0TGFuZ3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVyIHRvIGNhbGwgdGhlIG5neC10cmFuc2xhdGUgc2VydmljZSBUcmFuc2xhdGVTZXJ2aWNlIG1ldGhvZCB1c2UobGFuZ3VhZ2UpLlxuICAgKiBAcGFyYW0gbGFuZ3VhZ2VcbiAgICovXG4gIHB1YmxpYyB1c2VMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGxhbmd1YWdlID0gdGhpcy5jaGVja0ZhbGxiYWNrTG9jYWxlc01hcChsYW5ndWFnZSk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZ3VhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZXIgdG8gZ2V0IHRoZSBuZ3gtdHJhbnNsYXRlIHNlcnZpY2UgVHJhbnNsYXRlU2VydmljZSBjdXJyZW50TGFuZy5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50TGFuZ3VhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGluc3RhbmNlIG9mIHRoZSBuZ3gtdHJhbnNsYXRlIFRyYW5zbGF0ZVNlcnZpY2UgdXNlZCBieSBMb2NhbGl6YXRpb25TZXJ2aWNlLlxuICAgKi9cbiAgcHVibGljIGdldFRyYW5zbGF0ZVNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIFNob3dLZXlzIG1vZGUgYmV0d2VlbiBhY3RpdmUgYW5kIGluYWN0aXZlLlxuICAgKiBAcGFyYW0gdmFsdWUgaWYgc3BlY2lmaWVkLCBzZXQgdGhlIFNob3dLZXlzIG1vZGUgdG8gdmFsdWUuIElmIG5vdCBzcGVjaWZpZWQsIHRvZ2dsZSB0aGUgU2hvd0tleXMgbW9kZS5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVTaG93S2V5cyh2YWx1ZT86IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbi5lbmFibGVUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmFuc2xhdGlvbiBkZWFjdGl2YXRpb24gaXMgbm90IGVuYWJsZWQuIFBsZWFzZSBzZXQgdGhlIExvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24gcHJvcGVydHkgXCJlbmFibGVUcmFuc2xhdGlvbkRlYWN0aXZhdGlvblwiIGFjY29yZGluZ2x5LicpO1xuICAgIH1cbiAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6ICF0aGlzLnNob3dLZXlzO1xuICAgIHRoaXMuX3Nob3dLZXlzJC5uZXh0KG5ld1ZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgdmFsdWUgb2YgZGVidWcgc2hvdy9oaWRlIHRyYW5zbGF0aW9uIGtleXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dLZXlzKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93S2V5cyQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIG9ic2VydmFibGUgb2YgdHJhbnNsYXRpb24ga2V5IGFmdGVyIGdsb2JhbCBtYXBwaW5nXG4gICAqIEBwYXJhbSByZXF1ZXN0ZWRLZXkgT3JpZ2luYWwgdHJhbnNsYXRpb24ga2V5XG4gICAqL1xuICBwdWJsaWMgZ2V0S2V5KHJlcXVlc3RlZEtleTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMua2V5TWFwcGluZyQpIHtcbiAgICAgIHJldHVybiB0aGlzLmtleU1hcHBpbmckLnBpcGUoXG4gICAgICAgIG1hcCgoa2V5TWFwcGluZykgPT4ga2V5TWFwcGluZyAmJiBrZXlNYXBwaW5nW3JlcXVlc3RlZEtleV0gfHwgcmVxdWVzdGVkS2V5KSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKHJlcXVlc3RlZEtleSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJlYW0gb2YgdHJhbnNsYXRlZCB2YWx1ZXMgb2YgYSBrZXkgd2hpY2ggdXBkYXRlcyB3aGVuZXZlciB0aGUgbGFuZ3VhZ2UgY2hhbmdlcy5cbiAgICogQHBhcmFtIGtleSBLZXkgdG8gdHJhbnNsYXRlXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0ZVBhcmFtcyBPYmplY3QgdG8gdXNlIGluIHRyYW5zbGF0aW9uIGJpbmRpbmdcbiAgICogQHJldHVybnMgQSBzdHJlYW0gb2YgdGhlIHRyYW5zbGF0ZWQga2V5XG4gICAqL1xuICBwdWJsaWMgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBpbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmdldEtleShrZXkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRyYW5zbGF0aW9uS2V5KSA9PiB0aGlzLmdldFRyYW5zbGF0aW9uU3RyZWFtKHRyYW5zbGF0aW9uS2V5LCBpbnRlcnBvbGF0ZVBhcmFtcykpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG59XG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEVBQTZCLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRXhFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUNtQixnQkFBa0MsRUFDbEMsTUFBcUIsRUFDcUIsYUFBd0MsRUFDdEUsS0FBd0M7UUFIcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3FCLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUN0RSxVQUFLLEdBQUwsS0FBSyxDQUFtQztRQXRCdEQsMEJBQXFCLEdBQVcsR0FBRyxDQUFDO1FBRXJEOztXQUVHO1FBQ0gsZ0VBQWdFO1FBQy9DLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU96RDs7V0FFRztR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QUFDLElBQUksQ0FDMUIsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUMsRUFDM0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO2lJQXZNVSxtQkFBbUIsK0VBdUJwQixnQ0FBZ0M7cUlBdkIvQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQXdCTixNQUFNOzJCQUFDLGdDQUFnQzs7MEJBQ3ZDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9sb2NhbGl6YXRpb24uY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25PdmVycmlkZVN0b3JlLCBzZWxlY3RMb2NhbGl6YXRpb25PdmVycmlkZSB9IGZyb20gJy4uL3N0b3Jlcy9pbmRleCc7XG5pbXBvcnQgeyBMT0NBTElaQVRJT05fQ09ORklHVVJBVElPTl9UT0tFTiB9IGZyb20gJy4vbG9jYWxpemF0aW9uLnRva2VuJztcblxuLyoqXG4gKiBTZXJ2aWNlIHdoaWNoIGlzIHdyYXBwaW5nIHRoZSBjb25maWd1cmF0aW9uIGxvZ2ljIG9mIFRyYW5zbGF0ZVNlcnZpY2UgZnJvbSBuZ3gtdHJhbnNsYXRlXG4gKiBBbnkgYXBwbGljYXRpb24gd2lsbGluZyB0byB1c2UgbG9jYWxpemF0aW9uIGp1c3QgbmVlZHMgdG8gaW5qZWN0IExvY2FsaXphdGlvblNlcnZpY2VcbiAqIGluIHRoZSByb290IGNvbXBvbmVudCBhbmQgY2FsbCBpdHMgY29uZmlndXJlKCkgbWV0aG9kLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGVTcGxpdElkZW50aWZpZXI6IHN0cmluZyA9ICctJztcblxuICAvKipcbiAgICogSW50ZXJuYWwgc3ViamVjdCB0aGF0IHdlIHVzZSB0byB0cmFjayBjaGFuZ2VzIGJldHdlZW4ga2V5cyBvbmx5IGFuZCB0cmFuc2xhdGlvbiBtb2RlXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3dLZXlzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgbG9jYWxpemF0aW9uIGtleXMgdG8gcmVwbGFjZSBhIGtleSB0byBhbm90aGVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGtleU1hcHBpbmckPzogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcblxuICAvKipcbiAgICogX3Nob3dLZXlzJCBleHBvc2VkIGFzIGFuIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyBzaG93S2V5cyQgPSB0aGlzLl9zaG93S2V5cyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoTE9DQUxJWkFUSU9OX0NPTkZJR1VSQVRJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IHN0b3JlPzogU3RvcmU8TG9jYWxpemF0aW9uT3ZlcnJpZGVTdG9yZT4pIHtcbiAgICB0aGlzLmNvbmZpZ3VyZSgpO1xuICAgIGlmICh0aGlzLnN0b3JlKSB7XG4gICAgICB0aGlzLmtleU1hcHBpbmckID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICBzZWxlY3Qoc2VsZWN0TG9jYWxpemF0aW9uT3ZlcnJpZGUpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgaGFuZGxlIHRoZSBmYWxsYmFjayBsYW5ndWFnZSBoaWVyYXJjaHkgdG8gZmluZCBvdXQgZmFsbGJhY2sgbGFuZ3VhZ2UuXG4gICAqIHN1cHBvcnRlZExvY2FsZXMgbGFuZ3VhZ2UgaGFzIGhpZ2hlc3QgcHJpb3JpdHksIG5leHQgcHJpb3JpdHkgZ29lcyB0byBmYWxsYmFja0xvY2FsZXNNYXAgYW5kIGRlZmF1bHQgd291bGQgYmVcbiAgICogZmFsbGJhY2tMYW5ndWFnZS5cbiAgICogQHBhcmFtIGxhbmd1YWdlIFNlbGVjdGVkIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBzZWxlY3RlZCBsYW5ndWFnZSBpZiBzdXBwb3J0ZWQsIGZhbGxiYWNrIGxhbmd1YWdlIG90aGVyd2lzZS5cbiAgICovXG4gIHByaXZhdGUgY2hlY2tGYWxsYmFja0xvY2FsZXNNYXA8VCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZD4obGFuZ3VhZ2U6IFQpIHtcbiAgICBpZiAobGFuZ3VhZ2UgJiYgdGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMuaW5kZXhPZihsYW5ndWFnZSkgPT09IC0xKSB7XG4gICAgICBjb25zdCBjbG9zZXN0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlID0gdGhpcy5nZXRGaXJzdENsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUobGFuZ3VhZ2UpO1xuICAgICAgY29uc3QgZmFsbGJhY2tGb3JMYW5ndWFnZSA9IHRoaXMuZ2V0RmFsbGJhY2tNYXBMYW5nQ29kZShsYW5ndWFnZSk7XG4gICAgICBjb25zdCBmYWxsYmFja1N0cmF0ZWd5RGVidWcgPSBmYWxsYmFja0Zvckxhbmd1YWdlICYmICcgYXNzb2NpYXRlZCBmYWxsYmFjayBsYW5ndWFnZSAnIHx8XG4gICAgICAgIGNsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUgJiYgJyBjbG9zZXN0IHN1cHBvcnRlZCBsYW5ndWFnZSAnIHx8XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlICYmICcgY29uZmlndXJlZCBkZWZhdWx0IGxhbmd1YWdlICc7XG4gICAgICBjb25zdCBmYWxsYmFja0xhbmcgPSBmYWxsYmFja0Zvckxhbmd1YWdlIHx8IGNsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUgfHwgdGhpcy5jb25maWd1cmF0aW9uLmZhbGxiYWNrTGFuZ3VhZ2UgfHwgbGFuZ3VhZ2U7XG4gICAgICBpZiAobGFuZ3VhZ2UgIT09IGZhbGxiYWNrTGFuZykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTm9uIHN1cHBvcnRlZCBsYW5ndWFnZXMgJHtsYW5ndWFnZX0gd2lsbCBmYWxsYmFjayB0byAke2ZhbGxiYWNrU3RyYXRlZ3lEZWJ1Z30gJHtmYWxsYmFja0xhbmd9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsbGJhY2tMYW5nO1xuICAgIH0gZWxzZSBpZiAoIWxhbmd1YWdlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTGFuZ3VhZ2UgaXMgbm90IGRlZmluZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGxhbmd1YWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGZhbGxiYWNrIGxhbmd1YWdlIGNhbiBiZSBwcm92aWRlZCBmcm9tIGZhbGxiYWNrTG9jYWxlc01hcC5cbiAgICogc3VwcG9ydGVkTG9jYWxlczogWydlbi1HQicsICdlbi1VUycsICdmci1GUiddLCBmYWxsYmFja0xvY2FsZXNNYXA6IHsnZW4tQ0EnOiAnZW4tVVMnLCAnZGUnOiAnZnItRlInfVxuICAgKiB0cmFuc2xhdGUgdG8gZW4tQ0EgLT4gZmFsbGJhY2sgdG8gZW4tVVMsIHRyYW5zbGF0ZSB0byBkZS1ERSAtPiBmYWxsYmFjayB0byBmci1GUlxuICAgKiB0cmFuc2xhdGUgdG8gZW4tTlogLT4gZmFsbGJhY2sgdG8gZW4tR0JcbiAgICogQHBhcmFtIGxhbmd1YWdlIFNlbGVjdGVkIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBGYWxsYmFjayBsYW5ndWFnZSBpZiBhdmFpbGFibGUsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAqL1xuICBwcml2YXRlIGdldEZhbGxiYWNrTWFwTGFuZ0NvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmFsbGJhY2tMb2NhbGVzTWFwID0gdGhpcy5jb25maWd1cmF0aW9uLmZhbGxiYWNrTG9jYWxlc01hcDtcbiAgICBjb25zdCBbbG9jYWxlXSA9IGxhbmd1YWdlLnNwbGl0KHRoaXMubG9jYWxlU3BsaXRJZGVudGlmaWVyKTtcblxuICAgIHJldHVybiBmYWxsYmFja0xvY2FsZXNNYXAgJiYgKGZhbGxiYWNrTG9jYWxlc01hcFtsYW5ndWFnZV0gfHwgZmFsbGJhY2tMb2NhbGVzTWFwW2xvY2FsZV0pO1xuXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgY2xvc2VzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2UgYXZhaWxhYmxlIGluY2FzZSBvZiBzZWxlY3RlZCBsYW5ndWFnZSBpcyBub3RcbiAgICogc3VwcG9ydGVkIGxhbmd1YWdlLlxuICAgKiBzdXBwb3J0ZWRMb2NhbGVzOiBbJ2VuLUdCJywgJ2VuLVVTJywgJ2ZyLUZSJ11cbiAgICogdHJhbnNsYXRlIHRvIGVuLUNBIC0+IGZhbGxiYWNrIHRvIGVuLUdCXG4gICAqIEBwYXJhbSBsYW5ndWFnZSBTZWxlY3RlZCBsYW5ndWFnZS5cbiAgICogQHJldHVybnMgQ2xvc2VzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2UgaWYgYXZhaWxhYmxlLCB1bmRlZmluZWQgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGaXJzdENsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cbiAgICBjb25zdCBbbG9jYWxlXSA9IGxhbmd1YWdlLnNwbGl0KHRoaXMubG9jYWxlU3BsaXRJZGVudGlmaWVyKTtcbiAgICBjb25zdCBmaXJzdENsb3Nlc3RSZWd4ID0gbmV3IFJlZ0V4cChgXiR7bG9jYWxlfSR7dGhpcy5sb2NhbGVTcGxpdElkZW50aWZpZXJ9P2AsICdpJyk7XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMuZmluZCgoc3VwcG9ydGVkTGFuZykgPT4gZmlyc3RDbG9zZXN0UmVneC50ZXN0KHN1cHBvcnRlZExhbmcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyZWFtIG9mIHRyYW5zbGF0ZWQgdmFsdWVzIG9mIGEga2V5IHdoaWNoIHVwZGF0ZXMgd2hlbmV2ZXIgdGhlIGxhbmd1YWdlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB0cmFuc2xhdGlvbktleSBLZXkgdG8gdHJhbnNsYXRlXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0ZVBhcmFtcyBPYmplY3QgdG8gdXNlIGluIHRyYW5zbGF0aW9uIGJpbmRpbmdcbiAgICogQHJldHVybnMgQSBzdHJlYW0gb2YgdGhlIHRyYW5zbGF0ZWQga2V5XG4gICAqL1xuICBwcml2YXRlIGdldFRyYW5zbGF0aW9uU3RyZWFtKHRyYW5zbGF0aW9uS2V5OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0KSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24kID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSh0cmFuc2xhdGlvbktleSwgaW50ZXJwb2xhdGVQYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHZhbHVlOiBzdHJpbmcpID0+IHRoaXMuY29uZmlndXJhdGlvbi5kZWJ1Z01vZGUgPyBgJHt0cmFuc2xhdGlvbktleX0gLSAke3ZhbHVlfWAgOiB2YWx1ZSlcbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24uZW5hYmxlVHJhbnNsYXRpb25EZWFjdGl2YXRpb24pIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbiQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdHJhbnNsYXRpb24kLFxuICAgICAgdGhpcy5zaG93S2V5cyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWUsIHNob3dLZXlzXSkgPT4gc2hvd0tleXMgPyB0cmFuc2xhdGlvbktleSA6IHZhbHVlKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlcyBUcmFuc2xhdGVTZXJ2aWNlIGFuZCByZWdpc3RlcnMgbG9jYWxlcy4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGxldmVsLlxuICAgKi9cbiAgcHVibGljIGNvbmZpZ3VyZSgpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuY2hlY2tGYWxsYmFja0xvY2FsZXNNYXAodGhpcy5jb25maWd1cmF0aW9uLmxhbmd1YWdlIHx8IHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ3ModGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMpO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0TGFuZyhsYW5ndWFnZSk7XG4gICAgdGhpcy51c2VMYW5ndWFnZShsYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciB0byBjYWxsIHRoZSBuZ3gtdHJhbnNsYXRlIHNlcnZpY2UgVHJhbnNsYXRlU2VydmljZSBtZXRob2QgZ2V0TGFuZ3MoKS5cbiAgICovXG4gIHB1YmxpYyBnZXRMYW5ndWFnZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXRMYW5ncygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZXIgdG8gY2FsbCB0aGUgbmd4LXRyYW5zbGF0ZSBzZXJ2aWNlIFRyYW5zbGF0ZVNlcnZpY2UgbWV0aG9kIHVzZShsYW5ndWFnZSkuXG4gICAqIEBwYXJhbSBsYW5ndWFnZVxuICAgKi9cbiAgcHVibGljIHVzZUxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgbGFuZ3VhZ2UgPSB0aGlzLmNoZWNrRmFsbGJhY2tMb2NhbGVzTWFwKGxhbmd1YWdlKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciB0byBnZXQgdGhlIG5neC10cmFuc2xhdGUgc2VydmljZSBUcmFuc2xhdGVTZXJ2aWNlIGN1cnJlbnRMYW5nLlxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRMYW5ndWFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaW5zdGFuY2Ugb2YgdGhlIG5neC10cmFuc2xhdGUgVHJhbnNsYXRlU2VydmljZSB1c2VkIGJ5IExvY2FsaXphdGlvblNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0VHJhbnNsYXRlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgU2hvd0tleXMgbW9kZSBiZXR3ZWVuIGFjdGl2ZSBhbmQgaW5hY3RpdmUuXG4gICAqIEBwYXJhbSB2YWx1ZSBpZiBzcGVjaWZpZWQsIHNldCB0aGUgU2hvd0tleXMgbW9kZSB0byB2YWx1ZS4gSWYgbm90IHNwZWNpZmllZCwgdG9nZ2xlIHRoZSBTaG93S2V5cyBtb2RlLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVNob3dLZXlzKHZhbHVlPzogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uLmVuYWJsZVRyYW5zbGF0aW9uRGVhY3RpdmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zbGF0aW9uIGRlYWN0aXZhdGlvbiBpcyBub3QgZW5hYmxlZC4gUGxlYXNlIHNldCB0aGUgTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbiBwcm9wZXJ0eSBcImVuYWJsZVRyYW5zbGF0aW9uRGVhY3RpdmF0aW9uXCIgYWNjb3JkaW5nbHkuJyk7XG4gICAgfVxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogIXRoaXMuc2hvd0tleXM7XG4gICAgdGhpcy5fc2hvd0tleXMkLm5leHQobmV3VmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgY3VycmVudCB2YWx1ZSBvZiBkZWJ1ZyBzaG93L2hpZGUgdHJhbnNsYXRpb24ga2V5cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd0tleXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dLZXlzJC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gb2JzZXJ2YWJsZSBvZiB0cmFuc2xhdGlvbiBrZXkgYWZ0ZXIgZ2xvYmFsIG1hcHBpbmdcbiAgICogQHBhcmFtIHJlcXVlc3RlZEtleSBPcmlnaW5hbCB0cmFuc2xhdGlvbiBrZXlcbiAgICovXG4gIHB1YmxpYyBnZXRLZXkocmVxdWVzdGVkS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5rZXlNYXBwaW5nJCkge1xuICAgICAgcmV0dXJuIHRoaXMua2V5TWFwcGluZyQucGlwZShcbiAgICAgICAgbWFwKChrZXlNYXBwaW5nKSA9PiBrZXlNYXBwaW5nICYmIGtleU1hcHBpbmdbcmVxdWVzdGVkS2V5XSB8fCByZXF1ZXN0ZWRLZXkpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YocmVxdWVzdGVkS2V5KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmVhbSBvZiB0cmFuc2xhdGVkIHZhbHVlcyBvZiBhIGtleSB3aGljaCB1cGRhdGVzIHdoZW5ldmVyIHRoZSBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0ga2V5IEtleSB0byB0cmFuc2xhdGVcbiAgICogQHBhcmFtIGludGVycG9sYXRlUGFyYW1zIE9iamVjdCB0byB1c2UgaW4gdHJhbnNsYXRpb24gYmluZGluZ1xuICAgKiBAcmV0dXJucyBBIHN0cmVhbSBvZiB0aGUgdHJhbnNsYXRlZCBrZXlcbiAgICovXG4gIHB1YmxpYyB0cmFuc2xhdGUoa2V5OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0S2V5KGtleSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodHJhbnNsYXRpb25LZXkpID0+IHRoaXMuZ2V0VHJhbnNsYXRpb25TdHJlYW0odHJhbnNsYXRpb25LZXksIGludGVycG9sYXRlUGFyYW1zKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
34
34
  pure: false
35
35
  }]
36
36
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9sb2NhbGl6ZWQtZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsaUJBQWlCLEVBQWEsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRTNEOztHQUVHO0FBS0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFFBQVE7SUFHN0MsWUFBNkIsbUJBQXdDLEVBQW1CLGlCQUFvQztRQUMxSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBbUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUUxSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQzdGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFXTSxTQUFTLENBQ2QsS0FBZ0QsRUFBRSxNQUFNLEdBQUcsWUFBWSxFQUFFLFFBQWlCLEVBQzFGLE1BQWU7UUFDZixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTyxNQUFNLENBQUM7U0FDZjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1NBQzFHO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO2lJQS9CVSxpQkFBaUI7K0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2NhbGl6YXRpb25TZXJ2aWNlfSBmcm9tICcuL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBOYXRpdmUgYW5ndWxhciBEYXRlUGlwZSB0YWtpbmcgdGhlIGN1cnJlbnQgbGFuZyBpbnRvIGNvbnNpZGVyYXRpb25cbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnZGF0ZScsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsaXplZERhdGVQaXBlIGV4dGVuZHMgRGF0ZVBpcGUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHJlYWRvbmx5IG9uTGFuZ0NoYW5nZTogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihsb2NhbGl6YXRpb25TZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpKTtcbiAgICB0aGlzLm9uTGFuZ0NoYW5nZSA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5nZXRUcmFuc2xhdGVTZXJ2aWNlKCkub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PlxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIsIGZvcm1hdD86IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IHN0cmluZ1xuICAgIHwgbnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogbnVsbCB8IHVuZGVmaW5lZCwgZm9ybWF0Pzogc3RyaW5nLCB0aW1lem9uZT86IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogbnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGZvcm1hdD86IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGZvcm1hdCA9ICdtZWRpdW1EYXRlJywgdGltZXpvbmU/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5zaG93S2V5cykge1xuICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0LCB0aW1lem9uZSwgbG9jYWxlIHx8IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25MYW5nQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9sb2NhbGl6ZWQtZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsaUJBQWlCLEVBQWEsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRTNEOztHQUVHO0FBS0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFFBQVE7SUFHN0MsWUFBNkIsbUJBQXdDLEVBQW1CLGlCQUFvQztRQUMxSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBbUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUUxSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQzdGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFXTSxTQUFTLENBQ2QsS0FBZ0QsRUFBRSxNQUFNLEdBQUcsWUFBWSxFQUFFLFFBQWlCLEVBQzFGLE1BQWU7UUFDZixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUMzRyxDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO2lJQS9CVSxpQkFBaUI7K0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2NhbGl6YXRpb25TZXJ2aWNlfSBmcm9tICcuL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBOYXRpdmUgYW5ndWxhciBEYXRlUGlwZSB0YWtpbmcgdGhlIGN1cnJlbnQgbGFuZyBpbnRvIGNvbnNpZGVyYXRpb25cbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnZGF0ZScsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsaXplZERhdGVQaXBlIGV4dGVuZHMgRGF0ZVBpcGUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHJlYWRvbmx5IG9uTGFuZ0NoYW5nZTogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihsb2NhbGl6YXRpb25TZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpKTtcbiAgICB0aGlzLm9uTGFuZ0NoYW5nZSA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5nZXRUcmFuc2xhdGVTZXJ2aWNlKCkub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PlxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIsIGZvcm1hdD86IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IHN0cmluZ1xuICAgIHwgbnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogbnVsbCB8IHVuZGVmaW5lZCwgZm9ybWF0Pzogc3RyaW5nLCB0aW1lem9uZT86IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogbnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGZvcm1hdD86IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGZvcm1hdCA9ICdtZWRpdW1EYXRlJywgdGltZXpvbmU/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5zaG93S2V5cykge1xuICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0LCB0aW1lem9uZSwgbG9jYWxlIHx8IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25MYW5nQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
40
40
  type: Inject,
41
41
  args: [LOCALIZATION_CONFIGURATION_TOKEN]
42
42
  }] }, { type: i0.RendererFactory2 }, { type: i2.Directionality }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1kaXJlY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy90ZXh0LWRpcmVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHeEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFeEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLFlBQ21CLGdCQUFrQyxFQUNRLGFBQXdDLEVBQ2xGLGVBQWlDLEVBQ2pDLGNBQThCO1FBSDlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDUSxrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFDbEYsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksd0JBQXdCO1FBQzdCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFzQixFQUFFLEVBQUU7WUFDMUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3pHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO2lJQTFCVSxvQkFBb0Isa0RBTXJCLGdDQUFnQztxSUFOL0Isb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFPTixNQUFNOzJCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmdDaGFuZ2VFdmVudCwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBMT0NBTElaQVRJT05fQ09ORklHVVJBVElPTl9UT0tFTiB9IGZyb20gJy4vbG9jYWxpemF0aW9uLnRva2VuJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBoYW5kbGluZyB0aGUgdGV4dCBkaXJlY3Rpb24gYmFzZWQgb24gdGhlIExvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRleHREaXJlY3Rpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQEluamVjdChMT0NBTElaQVRJT05fQ09ORklHVVJBVElPTl9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBjb25maWd1cmF0aW9uOiBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5KSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGRpciBhdHRyaWJ1dGUgb24gYm9keSBIVE1MIHRhZy5cbiAgICogQHJldHVybnMgYSBzdWJzY3JpcHRpb24gdGhhdCB1cGRhdGVzIHRoZSBkaXIgYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgb25MYW5nQ2hhbmdlU3Vic2NyaXB0aW9uKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAmJiAhdGhpcy5zdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb247XG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50OiBMYW5nQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbi5ydGxMYW5ndWFnZXMuaW5kZXhPZihldmVudC5sYW5nLnNwbGl0KCctJylbMF0pID4gLTEgPyAncnRsJyA6ICdsdHInO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZG9jdW1lbnQuYm9keSwgJ2RpcicsIGRpcmVjdGlvbik7XG4gICAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZS5lbWl0KGRpcmVjdGlvbik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uO1xuICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1kaXJlY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy90ZXh0LWRpcmVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHeEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFeEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLFlBQ21CLGdCQUFrQyxFQUNRLGFBQXdDLEVBQ2xGLGVBQWlDLEVBQ2pDLGNBQThCO1FBSDlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDUSxrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFDbEYsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksd0JBQXdCO1FBQzdCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFO1lBQzFGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN6RyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztpSUExQlUsb0JBQW9CLGtEQU1yQixnQ0FBZ0M7cUlBTi9CLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBT04sTUFBTTsyQkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYW5nQ2hhbmdlRXZlbnQsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgTE9DQUxJWkFUSU9OX0NPTkZJR1VSQVRJT05fVE9LRU4gfSBmcm9tICcuL2xvY2FsaXphdGlvbi50b2tlbic7XG5cbi8qKlxuICogU2VydmljZSBmb3IgaGFuZGxpbmcgdGhlIHRleHQgZGlyZWN0aW9uIGJhc2VkIG9uIHRoZSBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZXh0RGlyZWN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIEBJbmplY3QoTE9DQUxJWkFUSU9OX0NPTkZJR1VSQVRJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSkge1xuICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkaXIgYXR0cmlidXRlIG9uIGJvZHkgSFRNTCB0YWcuXG4gICAqIEByZXR1cm5zIGEgc3Vic2NyaXB0aW9uIHRoYXQgdXBkYXRlcyB0aGUgZGlyIGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIG9uTGFuZ0NoYW5nZVN1YnNjcmlwdGlvbigpIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24gJiYgIXRoaXMuc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uO1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb24ucnRsTGFuZ3VhZ2VzLmluZGV4T2YoZXZlbnQubGFuZy5zcGxpdCgnLScpWzBdKSA+IC0xID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGRvY3VtZW50LmJvZHksICdkaXInLCBkaXJlY3Rpb24pO1xuICAgICAgdGhpcy5kaXJlY3Rpb25hbGl0eS5jaGFuZ2UuZW1pdChkaXJlY3Rpb24pO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbjtcbiAgfVxufVxuIl19
@@ -109,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
109
109
  }] }, { type: i2.DynamicContentService, decorators: [{
110
110
  type: Optional
111
111
  }] }] });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy90cmFuc2xhdGlvbnMtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQUU1QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUM7QUFFekI7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQXVFLHlCQUFvRCxFQUNsRixNQUFzQixFQUN0QixxQkFBNkM7UUFGZiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ2xGLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7SUFBRyxDQUFDO0lBRTFGOzs7T0FHRztJQUNLLHVCQUF1QixDQUFDLEdBQVc7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQztRQUUvRCxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxXQUFXLEVBQUU7WUFDZixXQUFXLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUs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dGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExPQ0FMSVpBVElPTl9DT05GSUdVUkFUSU9OX1RPS0VOIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24udG9rZW4nO1xuXG5pbXBvcnQgeyBEeW5hbWljQ29udGVudFNlcnZpY2UgfSBmcm9tICdAbzNyL2R5bmFtaWMtY29udGVudCc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQG8zci9sb2dnZXInO1xuXG5jb25zdCBKU09OX0VYVCA9ICcuanNvbic7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgbG9hZGluZyB0cmFuc2xhdGlvbiBidW5kbGVzIGZyb20gcmVtb3RlIG9yIGxvY2FsIGVuZHBvaW50cyBkZXBlbmRpbmcgb24gdGhlIExvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24uXG4gKiBGYWxsYmFjayBtZWNoYW5pc20gZW5zdXJlcyB0aGF0IGlmIGEgYnVuZGxlIGluIHNvbWUgbGFuZ3VhZ2UgY2Fubm90IGJlIGZldGNoZWQgcmVtb3RlbHlcbiAqIHdlIHRyeSB0byBmZXRjaCB0aGUgc2FtZSBsYW5ndWFnZSBidW5kbGUgbG9jYWxseSAoYnVuZGxlcyBzdG9yZWQgaW5zaWRlIHRoZSBhcHBsaWNhdGlvbilcbiAqIGFuZCBmaW5hbGx5IGxvYWQgdGhlIGZhbGxiYWNrIGxhbmd1YWdlIGJ1bmRsZSAoaWYgYWxsIHByZXZpb3VzIGZldGNoZXMgZmFpbGVkKVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25zTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTElaQVRJT05fQ09ORklHVVJBVElPTl9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6YXRpb25Db25maWd1cmF0aW9uOiBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcj86IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZHluYW1pY0NvbnRlbnRTZXJ2aWNlPzogRHluYW1pY0NvbnRlbnRTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBhIGxhbmd1YWdlIGJ1bmRsZSBmaWxlXG4gICAqIEBwYXJhbSAgdXJsIFVybCB0byB0aGUgYnVuZGxlIGZpbGVcbiAgICovXG4gIHByaXZhdGUgZG93bmxvYWRMYW5ndWFnZUJ1bmRsZSQodXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMubG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbi5xdWVyeVBhcmFtcztcblxuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnO1xuICAgIGlmIChxdWVyeVBhcmFtcykge1xuICAgICAgcXVlcnlTdHJpbmcgPSAnPycgKyBPYmplY3Qua2V5cyhxdWVyeVBhcmFtcykubWFwKChrZXkpID0+IGVuY29kZVVSSUNvbXBvbmVudChrZXkpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW2tleV0pKS5qb2luKCcmJyk7XG4gICAgfVxuICAgIHJldHVybiBmcm9tKGZldGNoKHVybCArIHF1ZXJ5U3RyaW5nLCB0aGlzLmxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24uZmV0Y2hPcHRpb25zKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVzcG9uc2UpID0+IGZyb20ocmVzcG9uc2UuanNvbigpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwdWJsaWMgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBmYWxsYmFjayA9IHRoaXMubG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlO1xuICAgIGxldCBsb2NhbGl6YXRpb25QYXRoJCA9IG9mKHRoaXMubG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbi5lbmRQb2ludFVybCk7XG5cbiAgICBpZiAodGhpcy5sb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLnVzZUR5bmFtaWNDb250ZW50KSB7XG4gICAgICBpZiAoIXRoaXMuZHluYW1pY0NvbnRlbnRTZXJ2aWNlKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdEeW5hbWljIENvbnRlbnQgaXMgbm90IGF2YWlsYWJsZS4gUGxlYXNlIHZlcmlmeSB5b3UgaGF2ZSBpbXBvcnRlZCB0aGUgbW9kdWxlIER5bmFtaWNDb250ZW50TW9kdWxlIGluIHlvdXIgYXBwbGljYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIGxvY2FsaXphdGlvblBhdGgkID0gdGhpcy5keW5hbWljQ29udGVudFNlcnZpY2UuZ2V0Q29udGVudFBhdGhTdHJlYW0odGhpcy5sb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLmVuZFBvaW50VXJsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxpemF0aW9uUGF0aCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobG9jYWxpemF0aW9uUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChsb2NhbGl6YXRpb25QYXRoKSB7XG5cbiAgICAgICAgICBjb25zdCBsb2NhbGl6YXRpb25CdW5kbGUkID0gdGhpcy5kb3dubG9hZExhbmd1YWdlQnVuZGxlJChsb2NhbGl6YXRpb25QYXRoICsgbGFuZyArIEpTT05fRVhUKTtcblxuICAgICAgICAgIGlmICh0aGlzLmxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24ubWVyZ2VXaXRoTG9jYWxUcmFuc2xhdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgbG9jYWxpemF0aW9uQnVuZGxlJC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2Yoe30pKSksXG4gICAgICAgICAgICAgIHRoaXMuZ2V0VHJhbnNsYXRpb25Gcm9tTG9jYWwobGFuZywgZmFsbGJhY2spLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh0cmFuc2xhdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRyYW5zbGF0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB0cmFuc2xhdGlvbnNba2V5XSA9IGBbbG9jYWxdICR7dHJhbnNsYXRpb25zW2tleV0gYXMgc3RyaW5nfWApO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9ucztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdKS5waXBlKG1hcCgoW2R5bmFtaWNUcmFuc2xhdGlvbnMsIGxvY2FsVHJhbnNsYXRpb25zXSkgPT4gKHsuLi5sb2NhbFRyYW5zbGF0aW9ucywgLi4uZHluYW1pY1RyYW5zbGF0aW9uc30pKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLypcbiAgICAgICAgICAqIGlmIGVuZFBvaW50VXJsIGlzIHNwZWNpZmllZCBieSB0aGUgY29uZmlndXJhdGlvbiB0aGVuOlxuICAgICAgICAgICogICAxLiB0cnkgdG8gbG9hZCBsYW5nIGZyb20gZW5kUG9pbnRVcmxcbiAgICAgICAgICAqICAgMi4gaWYgMSBmYWlscyB0aGVuIHRyeSB0byBsb2FkIGZyb20gdGhlIGFwcCAobG9jYWwgZmlsZSlcbiAgICAgICAgICAqL1xuICAgICAgICAgIHJldHVybiBsb2NhbGl6YXRpb25CdW5kbGUkLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oYEZhaWxlZCB0byBsb2FkIHRoZSBsb2NhbGl6YXRpb24gcmVzb3VyY2UgZnJvbSAke2xvY2FsaXphdGlvblBhdGggKyBsYW5nICsgSlNPTl9FWFR9LCB0cnlpbmcgZnJvbSB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2VzYCk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uRnJvbUxvY2FsKGxhbmcsIGZhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICAqIGVsc2UgaWYgZW5kUG9pbnRVcmwgTk9UIHNwZWNpZmllZCBieSB0aGVuIGNvbmZpZ3VyYXRpb24gdGhlbjpcbiAgICAgICAgKiAgIDEuIHRyeSB0byBsb2FkIGZyb20gdGhlIGFwcCAobG9jYWwgZmlsZSlcbiAgICAgICAgKi9cbiAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oJ05vIGxvY2FsaXphdGlvbiBlbmRwb2ludCBzcGVjaWZpZWQsIGxvY2FsaXphdGlvbiBmZXRjaCBmcm9tIGFwcGxpY2F0aW9uIHJlc291cmNlcycpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGlvbkZyb21Mb2NhbChsYW5nLCBmYWxsYmFjayk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICpGZXRjaGVzIGxvY2FsaXphdGlvbiBidW5kbGVzIGZyb20gcHVibGlzaGVkIGZvbGRlciAoaW50ZXJuYWwgdG8gYXBwbGljYXRpb24pXG4gICAqXG4gICAqMS4gdHJ5IHRvIGxvYWQgbGFuZyBmcm9tIGxvY2FsXG4gICAqMi4gaWYgMSBmYWlscyB0cnkgdG8gbG9hZCBmYWxsYmFjayBsYW5nIGJ1dCBvbmx5IGlmIGl0J3MgZGlmZmVyZW50IGZyb20gbGFuZyBpbiAxXG4gICAqIEBwYXJhbSBsYW5nIC0gbGFuZ3VhZ2Ugb2YgdGhlIGJ1bmRsZVxuICAgKiBAcGFyYW0gZmFsbGJhY2tMYW5ndWFnZSAtIGZhbGxiYWNrIGxhbmd1YWdlIGluIGNhc2UgYnVuZGxlIGluIGxhbmd1YWdlIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIGdldFRyYW5zbGF0aW9uRnJvbUxvY2FsKGxhbmc6IHN0cmluZywgZmFsbGJhY2tMYW5ndWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXRoUHJlZml4OiBzdHJpbmcgPSB0aGlzLmxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24uYnVuZGxlc091dHB1dFBhdGg7XG4gICAgcmV0dXJuIHRoaXMuZG93bmxvYWRMYW5ndWFnZUJ1bmRsZSQocGF0aFByZWZpeCArIGxhbmcgKyBKU09OX0VYVCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBpZiAobGFuZyAhPT0gZmFsbGJhY2tMYW5ndWFnZSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyPy53YXJuKGBGYWlsZWQgdG8gbG9hZCAke2xhbmd9IGZyb20gJHtwYXRoUHJlZml4ICsgbGFuZyArIEpTT05fRVhUfS4gQXBwbGljYXRpb24gd2lsbCBmYWxsYmFjayB0byAke2ZhbGxiYWNrTGFuZ3VhZ2V9YCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWRMYW5ndWFnZUJ1bmRsZSQocGF0aFByZWZpeCArIGZhbGxiYWNrTGFuZ3VhZ2UgKyBKU09OX0VYVCkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2Yoe30pKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oYEZhaWxlZCB0byBsb2FkICR7bGFuZ30gZnJvbSAke3BhdGhQcmVmaXggKyBsYW5nICsgSlNPTl9FWFR9LmApO1xuICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy90cmFuc2xhdGlvbnMtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQUU1QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUM7QUFFekI7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQXVFLHlCQUFvRCxFQUNsRixNQUFzQixFQUN0QixxQkFBNkM7UUFGZiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ2xGLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7SUFBRyxDQUFDO0lBRTFGOzs7T0FHRztJQUNLLHVCQUF1QixDQUFDLEdBQVc7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQztRQUUvRCxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixXQUFXLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFF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Q3ZDLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExPQ0FMSVpBVElPTl9DT05GSUdVUkFUSU9OX1RPS0VOIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24udG9rZW4nO1xuXG5pbXBvcnQgeyBEeW5hbWljQ29udGVudFNlcnZpY2UgfSBmcm9tICdAbzNyL2R5bmFtaWMtY29udGVudCc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQG8zci9sb2dnZXInO1xuXG5jb25zdCBKU09OX0VYVCA9ICcuanNvbic7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgbG9hZGluZyB0cmFuc2xhdGlvbiBidW5kbGVzIGZyb20gcmVtb3RlIG9yIGxvY2FsIGVuZHBvaW50cyBkZXBlbmRpbmcgb24gdGhlIExvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24uXG4gKiBGYWxsYmFjayBtZWNoYW5pc20gZW5zdXJlcyB0aGF0IGlmIGEgYnVuZGxlIGluIHNvbWUgbGFuZ3VhZ2UgY2Fubm90IGJlIGZldGNoZWQgcmVtb3RlbHlcbiAqIHdlIHRyeSB0byBmZXRjaCB0aGUgc2FtZSBsYW5ndWFnZSBidW5kbGUgbG9jYWxseSAoYnVuZGxlcyBzdG9yZWQgaW5zaWRlIHRoZSBhcHBsaWNhdGlvbilcbiAqIGFuZCBmaW5hbGx5IGxvYWQgdGhlIGZhbGxiYWNrIGxhbmd1YWdlIGJ1bmRsZSAoaWYgYWxsIHByZXZpb3VzIGZldGNoZXMgZmFpbGVkKVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25zTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTElaQVRJT05fQ09ORklHVVJBVElPTl9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6YXRpb25Db25maWd1cmF0aW9uOiBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcj86IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZHluYW1pY0NvbnRlbnRTZXJ2aWNlPzogRHluYW1pY0NvbnRlbnRTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBhIGxhbmd1YWdlIGJ1bmRsZSBmaWxlXG4gICAqIEBwYXJhbSAgdXJsIFVybCB0byB0aGUgYnVuZGxlIGZpbGVcbiAgICovXG4gIHByaXZhdGUgZG93bmxvYWRMYW5ndWFnZUJ1bmRsZSQodXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMubG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbi5xdWVyeVBhcmFtcztcblxuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnO1xuICAgIGlmIChxdWVyeVBhcmFtcykge1xuICAgICAgcXVlcnlTdHJpbmcgPSAnPycgKyBPYmplY3Qua2V5cyhxdWVyeVBhcmFtcykubWFwKChrZXkpID0+IGVuY29kZVVSSUNvbXBvbmVudChrZXkpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW2tleV0pKS5qb2luKCcmJyk7XG4gICAgfVxuICAgIHJldHVybiBmcm9tKGZldGNoKHVybCArIHF1ZXJ5U3RyaW5nLCB0aGlzLmxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24uZmV0Y2hPcHRpb25zKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVzcG9uc2UpID0+IGZyb20ocmVzcG9uc2UuanNvbigpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwdWJsaWMgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBmYWxsYmFjayA9IHRoaXMubG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlO1xuICAgIGxldCBsb2NhbGl6YXRpb25QYXRoJCA9IG9mKHRoaXMubG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbi5lbmRQb2ludFVybCk7XG5cbiAgICBpZiAodGhpcy5sb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLnVzZUR5bmFtaWNDb250ZW50KSB7XG4gICAgICBpZiAoIXRoaXMuZHluYW1pY0NvbnRlbnRTZXJ2aWNlKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdEeW5hbWljIENvbnRlbnQgaXMgbm90IGF2YWlsYWJsZS4gUGxlYXNlIHZlcmlmeSB5b3UgaGF2ZSBpbXBvcnRlZCB0aGUgbW9kdWxlIER5bmFtaWNDb250ZW50TW9kdWxlIGluIHlvdXIgYXBwbGljYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIGxvY2FsaXphdGlvblBhdGgkID0gdGhpcy5keW5hbWljQ29udGVudFNlcnZpY2UuZ2V0Q29udGVudFBhdGhTdHJlYW0odGhpcy5sb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLmVuZFBvaW50VXJsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxpemF0aW9uUGF0aCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobG9jYWxpemF0aW9uUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChsb2NhbGl6YXRpb25QYXRoKSB7XG5cbiAgICAgICAgICBjb25zdCBsb2NhbGl6YXRpb25CdW5kbGUkID0gdGhpcy5kb3dubG9hZExhbmd1YWdlQnVuZGxlJChsb2NhbGl6YXRpb25QYXRoICsgbGFuZyArIEpTT05fRVhUKTtcblxuICAgICAgICAgIGlmICh0aGlzLmxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24ubWVyZ2VXaXRoTG9jYWxUcmFuc2xhdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgbG9jYWxpemF0aW9uQnVuZGxlJC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2Yoe30pKSksXG4gICAgICAgICAgICAgIHRoaXMuZ2V0VHJhbnNsYXRpb25Gcm9tTG9jYWwobGFuZywgZmFsbGJhY2spLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh0cmFuc2xhdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRyYW5zbGF0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB0cmFuc2xhdGlvbnNba2V5XSA9IGBbbG9jYWxdICR7dHJhbnNsYXRpb25zW2tleV0gYXMgc3RyaW5nfWApO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9ucztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdKS5waXBlKG1hcCgoW2R5bmFtaWNUcmFuc2xhdGlvbnMsIGxvY2FsVHJhbnNsYXRpb25zXSkgPT4gKHsuLi5sb2NhbFRyYW5zbGF0aW9ucywgLi4uZHluYW1pY1RyYW5zbGF0aW9uc30pKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLypcbiAgICAgICAgICAqIGlmIGVuZFBvaW50VXJsIGlzIHNwZWNpZmllZCBieSB0aGUgY29uZmlndXJhdGlvbiB0aGVuOlxuICAgICAgICAgICogICAxLiB0cnkgdG8gbG9hZCBsYW5nIGZyb20gZW5kUG9pbnRVcmxcbiAgICAgICAgICAqICAgMi4gaWYgMSBmYWlscyB0aGVuIHRyeSB0byBsb2FkIGZyb20gdGhlIGFwcCAobG9jYWwgZmlsZSlcbiAgICAgICAgICAqL1xuICAgICAgICAgIHJldHVybiBsb2NhbGl6YXRpb25CdW5kbGUkLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oYEZhaWxlZCB0byBsb2FkIHRoZSBsb2NhbGl6YXRpb24gcmVzb3VyY2UgZnJvbSAke2xvY2FsaXphdGlvblBhdGggKyBsYW5nICsgSlNPTl9FWFR9LCB0cnlpbmcgZnJvbSB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2VzYCk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uRnJvbUxvY2FsKGxhbmcsIGZhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICAqIGVsc2UgaWYgZW5kUG9pbnRVcmwgTk9UIHNwZWNpZmllZCBieSB0aGVuIGNvbmZpZ3VyYXRpb24gdGhlbjpcbiAgICAgICAgKiAgIDEuIHRyeSB0byBsb2FkIGZyb20gdGhlIGFwcCAobG9jYWwgZmlsZSlcbiAgICAgICAgKi9cbiAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oJ05vIGxvY2FsaXphdGlvbiBlbmRwb2ludCBzcGVjaWZpZWQsIGxvY2FsaXphdGlvbiBmZXRjaCBmcm9tIGFwcGxpY2F0aW9uIHJlc291cmNlcycpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGlvbkZyb21Mb2NhbChsYW5nLCBmYWxsYmFjayk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICpGZXRjaGVzIGxvY2FsaXphdGlvbiBidW5kbGVzIGZyb20gcHVibGlzaGVkIGZvbGRlciAoaW50ZXJuYWwgdG8gYXBwbGljYXRpb24pXG4gICAqXG4gICAqMS4gdHJ5IHRvIGxvYWQgbGFuZyBmcm9tIGxvY2FsXG4gICAqMi4gaWYgMSBmYWlscyB0cnkgdG8gbG9hZCBmYWxsYmFjayBsYW5nIGJ1dCBvbmx5IGlmIGl0J3MgZGlmZmVyZW50IGZyb20gbGFuZyBpbiAxXG4gICAqIEBwYXJhbSBsYW5nIC0gbGFuZ3VhZ2Ugb2YgdGhlIGJ1bmRsZVxuICAgKiBAcGFyYW0gZmFsbGJhY2tMYW5ndWFnZSAtIGZhbGxiYWNrIGxhbmd1YWdlIGluIGNhc2UgYnVuZGxlIGluIGxhbmd1YWdlIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIGdldFRyYW5zbGF0aW9uRnJvbUxvY2FsKGxhbmc6IHN0cmluZywgZmFsbGJhY2tMYW5ndWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXRoUHJlZml4OiBzdHJpbmcgPSB0aGlzLmxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24uYnVuZGxlc091dHB1dFBhdGg7XG4gICAgcmV0dXJuIHRoaXMuZG93bmxvYWRMYW5ndWFnZUJ1bmRsZSQocGF0aFByZWZpeCArIGxhbmcgKyBKU09OX0VYVCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBpZiAobGFuZyAhPT0gZmFsbGJhY2tMYW5ndWFnZSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyPy53YXJuKGBGYWlsZWQgdG8gbG9hZCAke2xhbmd9IGZyb20gJHtwYXRoUHJlZml4ICsgbGFuZyArIEpTT05fRVhUfS4gQXBwbGljYXRpb24gd2lsbCBmYWxsYmFjayB0byAke2ZhbGxiYWNrTGFuZ3VhZ2V9YCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWRMYW5ndWFnZUJ1bmRsZSQocGF0aFByZWZpeCArIGZhbGxiYWNrTGFuZ3VhZ2UgKyBKU09OX0VYVCkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2Yoe30pKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oYEZhaWxlZCB0byBsb2FkICR7bGFuZ30gZnJvbSAke3BhdGhQcmVmaXggKyBsYW5nICsgSlNPTl9FWFR9LmApO1xuICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19