geonetwork-ui 2.7.0-dev.7a5d403cf → 2.7.0-dev.7cec835f7
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/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
- package/esm2022/libs/api/repository/src/index.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +9 -10
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
- package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
- package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
- package/fesm2022/geonetwork-ui.mjs +96 -497
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/index.d.ts +1 -1
- package/libs/api/repository/src/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +0 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
- package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
- package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
- package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
- package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
- package/src/libs/api/repository/src/index.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +15 -11
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +2 -2
- package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
- package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
- package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
- package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
- package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
- package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
- package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
- package/libs/util/app-config/src/lib/constants.d.ts +0 -2
- package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
- package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
|
@@ -4,7 +4,7 @@ import { ElasticsearchService } from '../elasticsearch';
|
|
|
4
4
|
import { getAsArray, getAsUrl, mapOrganization, selectFallback, selectField, selectTranslatedField, } from '../../../../../../../libs/api/metadata-converter/src';
|
|
5
5
|
import { combineLatest, of, switchMap, takeLast } from 'rxjs';
|
|
6
6
|
import { filter, map, shareReplay, startWith, tap, withLatestFrom, } from 'rxjs/operators';
|
|
7
|
-
import {
|
|
7
|
+
import { toLang3 } from '../../../../../../../libs/util/i18n/src';
|
|
8
8
|
import { PlatformServiceInterface } from '../../../../../../../libs/common/domain/src/lib/platform.service.interface';
|
|
9
9
|
import { coerce, satisfies, valid } from 'semver';
|
|
10
10
|
import { TranslateService } from '@ngx-translate/core';
|
|
@@ -44,7 +44,7 @@ export class OrganizationsFromMetadataService {
|
|
|
44
44
|
}), shareReplay());
|
|
45
45
|
}
|
|
46
46
|
get langIndex() {
|
|
47
|
-
return
|
|
47
|
+
return `lang${toLang3(this.translateService.currentLang)}`;
|
|
48
48
|
}
|
|
49
49
|
equalsNormalizedStrings(str1, str2, replaceSpecialChars = true) {
|
|
50
50
|
if (!str1 || !str2)
|
|
@@ -195,4 +195,4 @@ export class OrganizationsFromMetadataService {
|
|
|
195
195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrganizationsFromMetadataService, decorators: [{
|
|
196
196
|
type: Injectable
|
|
197
197
|
}], ctorParameters: () => [{ type: i1.ElasticsearchService }, { type: i2.SearchApiService }, { type: i2.GroupsApiService }, { type: i3.PlatformServiceInterface }, { type: i4.TranslateService }] });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLCtDQUErQyxDQUFBO0FBVXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3ZELE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFFZixjQUFjLEVBQ2QsV0FBVyxFQUNYLHFCQUFxQixHQUV0QixNQUFNLHNEQUFzRCxDQUFBO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekUsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEVBQTRFLENBQUE7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7Ozs7QUFFdEQsTUFBTSxTQUFTLEdBQUcsZ0NBQWdDLENBQUE7QUFxQmxELE1BQU0sT0FBTyxnQ0FBZ0M7SUEwRDNDLFlBQ1Us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QyxDQUFBO1lBQ0osTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLE1BQU07Z0JBQ1QsaUJBQWlCLEVBQUU7b0JBQ2pCLE9BQU87b0JBQ1AsR0FBRyxpQkFBaUI7b0JBQ3BCLEdBQUcsa0JBQWtCO2lCQUN0QjthQUNGLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F6UlUsZ0NBQWdDO21IQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdyb3VwQXBpTW9kZWwsXG4gIEdyb3Vwc0FwaVNlcnZpY2UsXG4gIFNlYXJjaEFwaVNlcnZpY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7XG4gIEZpZWxkRmlsdGVyQnlWYWx1ZXMsXG4gIEZpZWxkRmlsdGVycyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgT3JnYW5pemF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBFbGFzdGljc2VhcmNoU2VydmljZSB9IGZyb20gJy4uL2VsYXN0aWNzZWFyY2gnXG5pbXBvcnQge1xuICBnZXRBc0FycmF5LFxuICBnZXRBc1VybCxcbiAgbWFwT3JnYW5pemF0aW9uLFxuICBNZXRhZGF0YU9iamVjdCxcbiAgc2VsZWN0RmFsbGJhY2ssXG4gIHNlbGVjdEZpZWxkLFxuICBzZWxlY3RUcmFuc2xhdGVkRmllbGQsXG4gIFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YWtlTGFzdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBnZXRMb2NhbGl6ZWRJbmRleEtleSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgY29lcmNlLCBzYXRpc2ZpZXMsIHZhbGlkIH0gZnJvbSAnc2VtdmVyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbmNvbnN0IElNQUdFX1VSTCA9ICcvZ2VvbmV0d29yay9pbWFnZXMvaGFydmVzdGluZy8nXG5cbnR5cGUgRVNCdWNrZXQgPSB7XG4gIGtleTogc3RyaW5nXG4gIGRvY19jb3VudDogbnVtYmVyXG59XG5pbnRlcmZhY2UgT3JnYW5pemF0aW9uQWdnc0J1Y2tldCBleHRlbmRzIEVTQnVja2V0IHtcbiAgbWFpbDoge1xuICAgIGJ1Y2tldHM6IEVTQnVja2V0W11cbiAgfVxuICBsb2dvVXJsOiB7XG4gICAgYnVja2V0czogRVNCdWNrZXRbXVxuICB9XG59XG5pbnRlcmZhY2UgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbiB7XG4gIG5hbWU6IHN0cmluZ1xuICBlbWFpbHM6IHN0cmluZ1tdXG4gIHJlY29yZENvdW50OiBudW1iZXJcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvbnNGcm9tTWV0YWRhdGFTZXJ2aWNlXG4gIGltcGxlbWVudHMgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2VcbntcbiAgcHJpdmF0ZSBncm91cHMkOiBPYnNlcnZhYmxlPEdyb3VwQXBpTW9kZWxbXT4gPSBvZih0cnVlKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdyb3Vwc0FwaVNlcnZpY2UuZ2V0R3JvdXBzKCkpLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuICBwcml2YXRlIG9yZ2FuaXNhdGlvbnNBZ2dzJDogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25BZ2dzQnVja2V0W10+ID1cbiAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRBcGlWZXJzaW9uKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodmVyc2lvbikgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hBcGlTZXJ2aWNlLnNlYXJjaChcbiAgICAgICAgICAnYnVja2V0JyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KHZlcnNpb24pKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgZmlsdGVyKChyZXNwb25zZSkgPT4gISFyZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcpLFxuICAgICAgdGFwKChyZXNwb25zZSkgPT5cbiAgICAgICAgcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMuZm9yRWFjaChcbiAgICAgICAgICAocikgPT5cbiAgICAgICAgICAgIChyLmRvY19jb3VudCA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmFnZ3JlZ2F0aW9ucy5vcmdGb3JSZXNvdXJjZS5idWNrZXRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZykgPT4gb3JnLmtleSA9PT0gci5rZXlcbiAgICAgICAgICAgICAgKT8uZG9jX2NvdW50IHx8IHIuZG9jX2NvdW50KVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMpLFxuICAgICAgc2hhcmVSZXBsYXkoKVxuICAgIClcbiAgcHJpdmF0ZSBvcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQ6IE9ic2VydmFibGU8SW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdPiA9XG4gICAgdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICAgIG1hcCgoYnVja2V0cykgPT5cbiAgICAgICAgYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvZ29VcmwgPSBidWNrZXQubG9nb1VybC5idWNrZXRzPy5bMF0/LmtleVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBidWNrZXQua2V5LFxuICAgICAgICAgICAgZW1haWxzOiBidWNrZXQubWFpbC5idWNrZXRzXG4gICAgICAgICAgICAgIC5tYXAoKGJ1Y2tldCkgPT4gYnVja2V0LmtleSlcbiAgICAgICAgICAgICAgLmZpbHRlcigobWFpbCkgPT4gISFtYWlsKSxcbiAgICAgICAgICAgIHJlY29yZENvdW50OiBidWNrZXQuZG9jX2NvdW50LFxuICAgICAgICAgICAgLi4uKGxvZ29VcmwgJiYgeyBsb2dvVXJsOiBnZXRBc1VybChsb2dvVXJsKSB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuICBvcmdhbmlzYXRpb25zQ291bnQkID0gdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICBtYXAoKG9yZ2FuaXNhdGlvbnMpID0+IG9yZ2FuaXNhdGlvbnMubGVuZ3RoKVxuICApXG4gIG9yZ2FuaXNhdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQsXG4gICAgdGhpcy5ncm91cHMkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBncm91cHNdKSA9PiB7XG4gICAgICByZXR1cm4gIWdyb3VwcyA/IG9yZ2FuaXNhdGlvbnMgOiB0aGlzLm1hcFdpdGhHcm91cHMob3JnYW5pc2F0aW9ucywgZ3JvdXBzKVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXNTZXJ2aWNlOiBFbGFzdGljc2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHNlYXJjaEFwaVNlcnZpY2U6IFNlYXJjaEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncm91cHNBcGlTZXJ2aWNlOiBHcm91cHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGdldCBsYW5nSW5kZXgoKSB7XG4gICAgcmV0dXJuIGdldExvY2FsaXplZEluZGV4S2V5KHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgIHN0cjE6IHN0cmluZyxcbiAgICBzdHIyOiBzdHJpbmcsXG4gICAgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWVcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdHIxIHx8ICFzdHIyKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5ub3JtYWxpemVTdHJpbmcoc3RyMSwgcmVwbGFjZVNwZWNpYWxDaGFycykgPT09XG4gICAgICB0aGlzLm5vcm1hbGl6ZVN0cmluZyhzdHIyLCByZXBsYWNlU3BlY2lhbENoYXJzKVxuICAgIClcbiAgfVxuXG4gIG5vcm1hbGl6ZVN0cmluZyhzdHI6IHN0cmluZywgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWUpOiBzdHJpbmcge1xuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShzdHI6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHN0clxuICAgICAgICAubm9ybWFsaXplKCdORkQnKSAvLyBkZWNvbXBvc2UgZ3JhcGhlbWVzIHRvIHJlbW92ZSBhY2NlbnRzIGZyb20gbGV0dGVyc1xuICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpIC8vIHJlbW92ZSBhY2NlbnQgY2hhcmFjdGVyc1xuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgIH1cbiAgICBpZiAocmVwbGFjZVNwZWNpYWxDaGFycykge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzdHIpLnJlcGxhY2UoL1teYS16MC05XS9nLCAnJykgLy8gcmVwbGFjZSBhbGwgZXhjZXB0IGxldHRlcnMgJiBudW1iZXJzXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub3JtYWxpemUoc3RyKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KGduVmVyc2lvbjogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VtVmVyc2lvbiA9IHZhbGlkKGNvZXJjZShnblZlcnNpb24pKVxuICAgIHJldHVybiB0aGlzLmVzU2VydmljZS5nZXRTZWFyY2hSZXF1ZXN0Qm9keSh7XG4gICAgICBjb250YWN0OiB7XG4gICAgICAgIG5lc3RlZDoge1xuICAgICAgICAgIHBhdGg6ICdjb250YWN0Rm9yUmVzb3VyY2UnLFxuICAgICAgICB9LFxuICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgb3JnOiB7XG4gICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICBmaWVsZDpcbiAgICAgICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2Uub3JnYW5pc2F0aW9uJ1xuICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLm9yZ2FuaXNhdGlvbk9iamVjdC5kZWZhdWx0LmtleXdvcmQnLFxuICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgc2l6ZTogNTAwMCxcbiAgICAgICAgICAgICAgb3JkZXI6IHsgX2tleTogJ2FzYycgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgICAgIG1haWw6IHtcbiAgICAgICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICAgICAgc2l6ZTogNTAsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBzYXRpc2ZpZXMoc2VtVmVyc2lvbiwgJzQuMi4yIC0gNC4yLjQnKVxuICAgICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2UuZW1haWwua2V5d29yZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLmVtYWlsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBsb2dvVXJsOiB7XG4gICAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiAnY29udGFjdEZvclJlc291cmNlLmxvZ28ua2V5d29yZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcmdGb3JSZXNvdXJjZToge1xuICAgICAgICB0ZXJtczoge1xuICAgICAgICAgIHNpemU6IDUwMDAsXG4gICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgZmllbGQ6XG4gICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICBvcmRlcjoge1xuICAgICAgICAgICAgX2tleTogJ2FzYycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgbWFwV2l0aEdyb3VwcyhcbiAgICBvcmdhbmlzYXRpb25zOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10sXG4gICAgZ3JvdXBzOiBHcm91cEFwaU1vZGVsW11cbiAgKTogT3JnYW5pemF0aW9uW10ge1xuICAgIHJldHVybiBvcmdhbmlzYXRpb25zLm1hcCgob3JnYW5pc2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBncm91cCA9XG4gICAgICAgIGdyb3Vwcy5maW5kKChncm91cCkgPT5cbiAgICAgICAgICB0aGlzLmVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgICAgICAgICAgZ3JvdXAubGFiZWxbJ2VuZyddID8gZ3JvdXAubGFiZWxbJ2VuZyddIDogZ3JvdXAubmFtZSxcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5uYW1lXG4gICAgICAgICAgKVxuICAgICAgICApID8/XG4gICAgICAgIGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiAhIWdyb3VwLmVtYWlsKVxuICAgICAgICAgIC5maW5kKChncm91cCkgPT5cbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5lbWFpbHNcbiAgICAgICAgICAgICAgLm1hcCgobWFpbCkgPT4gdGhpcy5ub3JtYWxpemVTdHJpbmcobWFpbCwgZmFsc2UpKVxuICAgICAgICAgICAgICAuaW5jbHVkZXModGhpcy5ub3JtYWxpemVTdHJpbmcoZ3JvdXAuZW1haWwsIGZhbHNlKSlcbiAgICAgICAgICApXG4gICAgICBjb25zdCB7IGVtYWlscywgLi4uZnVsbE9yZyB9ID0gb3JnYW5pc2F0aW9uXG4gICAgICBpZiAoIWdyb3VwKSByZXR1cm4gZnVsbE9yZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZnVsbE9yZyxcbiAgICAgICAgZW1haWw6IGVtYWlsc1swXSxcbiAgICAgICAgLi4uKGdyb3VwLmRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb246IGdyb3VwLmRlc2NyaXB0aW9uIH0pLFxuICAgICAgICAuLi4oZ3JvdXAubG9nbyAmJiB7IGxvZ29Vcmw6IGdldEFzVXJsKGAke0lNQUdFX1VSTH0ke2dyb3VwLmxvZ299YCkgfSksXG4gICAgICAgIC4uLihncm91cC53ZWJzaXRlICYmIHsgd2Vic2l0ZTogZ2V0QXNVcmwoZ3JvdXAud2Vic2l0ZSkgfSksXG4gICAgICAgIC4uLihncm91cC5lbWFpbCAmJiB7IGVtYWlsOiBncm91cC5lbWFpbCB9KSxcbiAgICAgIH0gYXMgT3JnYW5pemF0aW9uXG4gICAgfSlcbiAgfVxuXG4gIGdldEZpbHRlcnNGb3JPcmdzKG9yZ2FuaXNhdGlvbnM6IE9yZ2FuaXphdGlvbltdKTogT2JzZXJ2YWJsZTxGaWVsZEZpbHRlcnM+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybVNlcnZpY2UuZ2V0QXBpVmVyc2lvbigpLnBpcGUoXG4gICAgICBtYXAoKGduVmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBnblZlcnNpb24uc3RhcnRzV2l0aCgnNC4yLjInKVxuICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgIDogJ09yZ0ZvclJlc291cmNlT2JqZWN0LmRlZmF1bHQnXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgW2ZpZWxkTmFtZV06IG9yZ2FuaXNhdGlvbnMucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIGN1cnIpID0+ICh7IC4uLnByZXYsIFtjdXJyLm5hbWVdOiB0cnVlIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldE9yZ3NGcm9tRmlsdGVycyhmaWx0ZXJzOiBGaWVsZEZpbHRlcnMpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChnblZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZ25WZXJzaW9uLnN0YXJ0c1dpdGgoJzQuMi4yJylcbiAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0J1xuXG4gICAgICAgIGlmICghKGZpZWxkTmFtZSBpbiBmaWx0ZXJzKSkgcmV0dXJuIG9mKFtdKVxuXG4gICAgICAgIHJldHVybiB0aGlzLm9yZ2FuaXNhdGlvbnMkLnBpcGUoXG4gICAgICAgICAgbWFwKChvcmdzOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yZ05hbWVzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgIGZpbHRlcnNbZmllbGROYW1lXSBhcyBGaWVsZEZpbHRlckJ5VmFsdWVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gb3JnTmFtZXMubWFwKChuYW1lKSA9PlxuICAgICAgICAgICAgICBvcmdzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZzogT3JnYW5pemF0aW9uIHwgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9yZy5uYW1lID09PSBuYW1lXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGFkZE9yZ2FuaXphdGlvblRvUmVjb3JkRnJvbVNvdXJjZShcbiAgICBzb3VyY2U6IE1ldGFkYXRhT2JqZWN0LFxuICAgIHJlY29yZDogQ2F0YWxvZ1JlY29yZFxuICApOiBPYnNlcnZhYmxlPENhdGFsb2dSZWNvcmQ+IHtcbiAgICBjb25zdCBjb250YWN0czogU291cmNlV2l0aFVua25vd25Qcm9wc1tdID0gZ2V0QXNBcnJheShcbiAgICAgIHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQoc291cmNlLCAnY29udGFjdE9iamVjdCcsIHRoaXMubGFuZ0luZGV4KSxcbiAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnY29udGFjdCcpXG4gICAgICApXG4gICAgKVxuICAgIGNvbnN0IHJlc291cmNlQ29udGFjdHM6IFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXSA9IGdldEFzQXJyYXkoXG4gICAgICBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkKFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAnY29udGFjdEZvclJlc291cmNlT2JqZWN0JyxcbiAgICAgICAgICB0aGlzLmxhbmdJbmRleFxuICAgICAgICApLFxuICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdjb250YWN0Rm9yUmVzb3VyY2UnKVxuICAgICAgKVxuICAgIClcbiAgICBjb25zdCBhbGxDb250YWN0T3JncyA9IHJlc291cmNlQ29udGFjdHNcbiAgICAgIC5jb25jYXQoY29udGFjdHMpXG4gICAgICAubWFwKChjb250YWN0KSA9PiBtYXBPcmdhbml6YXRpb24oY29udGFjdCwgdGhpcy5sYW5nSW5kZXgpKVxuXG4gICAgaWYgKCFhbGxDb250YWN0T3Jncy5sZW5ndGgpIHJldHVybiBvZihyZWNvcmQpXG5cbiAgICBjb25zdCBvd25lck9yZ2FuaXphdGlvbiA9IGFsbENvbnRhY3RPcmdzWzBdXG5cbiAgICAvLyByZWFkIHRoZSBvd25lciBncm91cCBhcyB3ZWxsIHRvIGhhdmUgYSBmYWxsYmFjayBsb2dvXG4gICAgY29uc3QgZ3JvdXBJZCA9IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2dyb3VwT3duZXInKVxuICAgIGNvbnN0IGdyb3VwJCA9IHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKChncm91cHMpID0+XG4gICAgICAgIGdyb3Vwcy5maW5kKChncm91cCkgPT4ge1xuICAgICAgICAgIHJldHVybiBncm91cC5pZCA9PT0gTnVtYmVyKGdyb3VwSWQpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMub3JnYW5pc2F0aW9ucyQucGlwZShcbiAgICAgIHRha2VMYXN0KDEpLFxuICAgICAgd2l0aExhdGVzdEZyb20oZ3JvdXAkKSxcbiAgICAgIG1hcCgoW29yZ2FuaXNhdGlvbnMsIGdyb3VwXTogW09yZ2FuaXphdGlvbltdLCBHcm91cEFwaU1vZGVsXSkgPT4ge1xuICAgICAgICBjb25zdCByZWNvcmRPcmdhbmlzYXRpb24gPSBvcmdhbmlzYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAob3JnKSA9PiBvcmcubmFtZSA9PT0gb3duZXJPcmdhbml6YXRpb24ubmFtZVxuICAgICAgICApWzBdXG4gICAgICAgIGNvbnN0IGxvZ29VcmwgPSBncm91cD8ubG9nbyAmJiBnZXRBc1VybChgJHtJTUFHRV9VUkx9JHtncm91cC5sb2dvfWApXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucmVjb3JkLFxuICAgICAgICAgIG93bmVyT3JnYW5pemF0aW9uOiB7XG4gICAgICAgICAgICBsb2dvVXJsLFxuICAgICAgICAgICAgLi4ub3duZXJPcmdhbml6YXRpb24sXG4gICAgICAgICAgICAuLi5yZWNvcmRPcmdhbmlzYXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLCtDQUErQyxDQUFBO0FBVXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3ZELE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFFZixjQUFjLEVBQ2QsV0FBVyxFQUNYLHFCQUFxQixHQUV0QixNQUFNLHNEQUFzRCxDQUFBO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekUsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFBO0FBQ3JILE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7Ozs7O0FBRXRELE1BQU0sU0FBUyxHQUFHLGdDQUFnQyxDQUFBO0FBcUJsRCxNQUFNLE9BQU8sZ0NBQWdDO0lBMEQzQyxZQUNVLFNB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QUMsQ0FBQyxDQUFBO1lBQ0osTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLE1BQU07Z0JBQ1QsaUJBQWlCLEVBQUU7b0JBQ2pCLE9BQU87b0JBQ1AsR0FBRyxpQkFBaUI7b0JBQ3BCLEdBQUcsa0JBQWtCO2lCQUN0QjthQUNGLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F6UlUsZ0NBQWdDO21IQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdyb3VwQXBpTW9kZWwsXG4gIEdyb3Vwc0FwaVNlcnZpY2UsXG4gIFNlYXJjaEFwaVNlcnZpY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7XG4gIEZpZWxkRmlsdGVyQnlWYWx1ZXMsXG4gIEZpZWxkRmlsdGVycyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgT3JnYW5pemF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBFbGFzdGljc2VhcmNoU2VydmljZSB9IGZyb20gJy4uL2VsYXN0aWNzZWFyY2gnXG5pbXBvcnQge1xuICBnZXRBc0FycmF5LFxuICBnZXRBc1VybCxcbiAgbWFwT3JnYW5pemF0aW9uLFxuICBNZXRhZGF0YU9iamVjdCxcbiAgc2VsZWN0RmFsbGJhY2ssXG4gIHNlbGVjdEZpZWxkLFxuICBzZWxlY3RUcmFuc2xhdGVkRmllbGQsXG4gIFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YWtlTGFzdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBjb2VyY2UsIHNhdGlzZmllcywgdmFsaWQgfSBmcm9tICdzZW12ZXInXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgSU1BR0VfVVJMID0gJy9nZW9uZXR3b3JrL2ltYWdlcy9oYXJ2ZXN0aW5nLydcblxudHlwZSBFU0J1Y2tldCA9IHtcbiAga2V5OiBzdHJpbmdcbiAgZG9jX2NvdW50OiBudW1iZXJcbn1cbmludGVyZmFjZSBPcmdhbml6YXRpb25BZ2dzQnVja2V0IGV4dGVuZHMgRVNCdWNrZXQge1xuICBtYWlsOiB7XG4gICAgYnVja2V0czogRVNCdWNrZXRbXVxuICB9XG4gIGxvZ29Vcmw6IHtcbiAgICBidWNrZXRzOiBFU0J1Y2tldFtdXG4gIH1cbn1cbmludGVyZmFjZSBJbmNvbXBsZXRlT3JnYW5pemF0aW9uIHtcbiAgbmFtZTogc3RyaW5nXG4gIGVtYWlsczogc3RyaW5nW11cbiAgcmVjb3JkQ291bnQ6IG51bWJlclxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uc0Zyb21NZXRhZGF0YVNlcnZpY2VcbiAgaW1wbGVtZW50cyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZVxue1xuICBwcml2YXRlIGdyb3VwcyQ6IE9ic2VydmFibGU8R3JvdXBBcGlNb2RlbFtdPiA9IG9mKHRydWUpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZ3JvdXBzQXBpU2VydmljZS5nZXRHcm91cHMoKSksXG4gICAgc2hhcmVSZXBsYXkoKVxuICApXG4gIHByaXZhdGUgb3JnYW5pc2F0aW9uc0FnZ3MkOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbkFnZ3NCdWNrZXRbXT4gPVxuICAgIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh2ZXJzaW9uKSA9PlxuICAgICAgICB0aGlzLnNlYXJjaEFwaVNlcnZpY2Uuc2VhcmNoKFxuICAgICAgICAgICdidWNrZXQnLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRBZ2dyZWdhdGlvblNlYXJjaFJlcXVlc3QodmVyc2lvbikpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBmaWx0ZXIoKHJlc3BvbnNlKSA9PiAhIXJlc3BvbnNlLmFnZ3JlZ2F0aW9ucy5jb250YWN0Lm9yZyksXG4gICAgICB0YXAoKHJlc3BvbnNlKSA9PlxuICAgICAgICByZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcuYnVja2V0cy5mb3JFYWNoKFxuICAgICAgICAgIChyKSA9PlxuICAgICAgICAgICAgKHIuZG9jX2NvdW50ID1cbiAgICAgICAgICAgICAgcmVzcG9uc2UuYWdncmVnYXRpb25zLm9yZ0ZvclJlc291cmNlLmJ1Y2tldHMuZmluZChcbiAgICAgICAgICAgICAgICAob3JnKSA9PiBvcmcua2V5ID09PSByLmtleVxuICAgICAgICAgICAgICApPy5kb2NfY291bnQgfHwgci5kb2NfY291bnQpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcuYnVja2V0cyksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKVxuICBwcml2YXRlIG9yZ2FuaXNhdGlvbnNXaXRob3V0R3JvdXBzJDogT2JzZXJ2YWJsZTxJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10+ID1cbiAgICB0aGlzLm9yZ2FuaXNhdGlvbnNBZ2dzJC5waXBlKFxuICAgICAgbWFwKChidWNrZXRzKSA9PlxuICAgICAgICBidWNrZXRzLm1hcCgoYnVja2V0KSA9PiB7XG4gICAgICAgICAgY29uc3QgbG9nb1VybCA9IGJ1Y2tldC5sb2dvVXJsLmJ1Y2tldHM/LlswXT8ua2V5XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGJ1Y2tldC5rZXksXG4gICAgICAgICAgICBlbWFpbHM6IGJ1Y2tldC5tYWlsLmJ1Y2tldHNcbiAgICAgICAgICAgICAgLm1hcCgoYnVja2V0KSA9PiBidWNrZXQua2V5KVxuICAgICAgICAgICAgICAuZmlsdGVyKChtYWlsKSA9PiAhIW1haWwpLFxuICAgICAgICAgICAgcmVjb3JkQ291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgICAgICAuLi4obG9nb1VybCAmJiB7IGxvZ29Vcmw6IGdldEFzVXJsKGxvZ29VcmwpIH0pLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gIG9yZ2FuaXNhdGlvbnNDb3VudCQgPSB0aGlzLm9yZ2FuaXNhdGlvbnNBZ2dzJC5waXBlKFxuICAgIG1hcCgob3JnYW5pc2F0aW9ucykgPT4gb3JnYW5pc2F0aW9ucy5sZW5ndGgpXG4gIClcbiAgb3JnYW5pc2F0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9yZ2FuaXNhdGlvbnNXaXRob3V0R3JvdXBzJCxcbiAgICB0aGlzLmdyb3VwcyQucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW29yZ2FuaXNhdGlvbnMsIGdyb3Vwc10pID0+IHtcbiAgICAgIHJldHVybiAhZ3JvdXBzID8gb3JnYW5pc2F0aW9ucyA6IHRoaXMubWFwV2l0aEdyb3VwcyhvcmdhbmlzYXRpb25zLCBncm91cHMpXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoKVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlc1NlcnZpY2U6IEVsYXN0aWNzZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VhcmNoQXBpU2VydmljZTogU2VhcmNoQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGdyb3Vwc0FwaVNlcnZpY2U6IEdyb3Vwc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGxhbmdJbmRleCgpIHtcbiAgICByZXR1cm4gYGxhbmcke3RvTGFuZzModGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKX1gXG4gIH1cblxuICBlcXVhbHNOb3JtYWxpemVkU3RyaW5ncyhcbiAgICBzdHIxOiBzdHJpbmcsXG4gICAgc3RyMjogc3RyaW5nLFxuICAgIHJlcGxhY2VTcGVjaWFsQ2hhcnMgPSB0cnVlXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghc3RyMSB8fCAhc3RyMikgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubm9ybWFsaXplU3RyaW5nKHN0cjEsIHJlcGxhY2VTcGVjaWFsQ2hhcnMpID09PVxuICAgICAgdGhpcy5ub3JtYWxpemVTdHJpbmcoc3RyMiwgcmVwbGFjZVNwZWNpYWxDaGFycylcbiAgICApXG4gIH1cblxuICBub3JtYWxpemVTdHJpbmcoc3RyOiBzdHJpbmcsIHJlcGxhY2VTcGVjaWFsQ2hhcnMgPSB0cnVlKTogc3RyaW5nIHtcbiAgICBmdW5jdGlvbiBub3JtYWxpemUoc3RyOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiBzdHJcbiAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJykgLy8gZGVjb21wb3NlIGdyYXBoZW1lcyB0byByZW1vdmUgYWNjZW50cyBmcm9tIGxldHRlcnNcbiAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKSAvLyByZW1vdmUgYWNjZW50IGNoYXJhY3RlcnNcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICB9XG4gICAgaWYgKHJlcGxhY2VTcGVjaWFsQ2hhcnMpIHtcbiAgICAgIHJldHVybiBub3JtYWxpemUoc3RyKS5yZXBsYWNlKC9bXmEtejAtOV0vZywgJycpIC8vIHJlcGxhY2UgYWxsIGV4Y2VwdCBsZXR0ZXJzICYgbnVtYmVyc1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9ybWFsaXplKHN0cilcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEFnZ3JlZ2F0aW9uU2VhcmNoUmVxdWVzdChnblZlcnNpb246IHN0cmluZykge1xuICAgIGNvbnN0IHNlbVZlcnNpb24gPSB2YWxpZChjb2VyY2UoZ25WZXJzaW9uKSlcbiAgICByZXR1cm4gdGhpcy5lc1NlcnZpY2UuZ2V0U2VhcmNoUmVxdWVzdEJvZHkoe1xuICAgICAgY29udGFjdDoge1xuICAgICAgICBuZXN0ZWQ6IHtcbiAgICAgICAgICBwYXRoOiAnY29udGFjdEZvclJlc291cmNlJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWdnczoge1xuICAgICAgICAgIG9yZzoge1xuICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgZmllbGQ6XG4gICAgICAgICAgICAgICAgc2VtVmVyc2lvbiA9PT0gJzQuMi4yJ1xuICAgICAgICAgICAgICAgICAgPyAnY29udGFjdEZvclJlc291cmNlLm9yZ2FuaXNhdGlvbidcbiAgICAgICAgICAgICAgICAgIDogJ2NvbnRhY3RGb3JSZXNvdXJjZS5vcmdhbmlzYXRpb25PYmplY3QuZGVmYXVsdC5rZXl3b3JkJyxcbiAgICAgICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgICAgIHNpemU6IDUwMDAsXG4gICAgICAgICAgICAgIG9yZGVyOiB7IF9rZXk6ICdhc2MnIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWdnczoge1xuICAgICAgICAgICAgICBtYWlsOiB7XG4gICAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICAgIHNpemU6IDUwLFxuICAgICAgICAgICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogc2F0aXNmaWVzKHNlbVZlcnNpb24sICc0LjIuMiAtIDQuMi40JylcbiAgICAgICAgICAgICAgICAgICAgPyAnY29udGFjdEZvclJlc291cmNlLmVtYWlsLmtleXdvcmQnXG4gICAgICAgICAgICAgICAgICAgIDogJ2NvbnRhY3RGb3JSZXNvdXJjZS5lbWFpbCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbG9nb1VybDoge1xuICAgICAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgICAgICBzaXplOiAxLFxuICAgICAgICAgICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogJ2NvbnRhY3RGb3JSZXNvdXJjZS5sb2dvLmtleXdvcmQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3JnRm9yUmVzb3VyY2U6IHtcbiAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICBzaXplOiA1MDAwLFxuICAgICAgICAgIGV4Y2x1ZGU6ICcnLFxuICAgICAgICAgIGZpZWxkOlxuICAgICAgICAgICAgc2VtVmVyc2lvbiA9PT0gJzQuMi4yJ1xuICAgICAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICAgICAgOiAnT3JnRm9yUmVzb3VyY2VPYmplY3QuZGVmYXVsdCcsXG4gICAgICAgICAgb3JkZXI6IHtcbiAgICAgICAgICAgIF9rZXk6ICdhc2MnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIG1hcFdpdGhHcm91cHMoXG4gICAgb3JnYW5pc2F0aW9uczogSW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdLFxuICAgIGdyb3VwczogR3JvdXBBcGlNb2RlbFtdXG4gICk6IE9yZ2FuaXphdGlvbltdIHtcbiAgICByZXR1cm4gb3JnYW5pc2F0aW9ucy5tYXAoKG9yZ2FuaXNhdGlvbikgPT4ge1xuICAgICAgY29uc3QgZ3JvdXAgPVxuICAgICAgICBncm91cHMuZmluZCgoZ3JvdXApID0+XG4gICAgICAgICAgdGhpcy5lcXVhbHNOb3JtYWxpemVkU3RyaW5ncyhcbiAgICAgICAgICAgIGdyb3VwLmxhYmVsWydlbmcnXSA/IGdyb3VwLmxhYmVsWydlbmcnXSA6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgICBvcmdhbmlzYXRpb24ubmFtZVxuICAgICAgICAgIClcbiAgICAgICAgKSA/P1xuICAgICAgICBncm91cHNcbiAgICAgICAgICAuZmlsdGVyKChncm91cCkgPT4gISFncm91cC5lbWFpbClcbiAgICAgICAgICAuZmluZCgoZ3JvdXApID0+XG4gICAgICAgICAgICBvcmdhbmlzYXRpb24uZW1haWxzXG4gICAgICAgICAgICAgIC5tYXAoKG1haWwpID0+IHRoaXMubm9ybWFsaXplU3RyaW5nKG1haWwsIGZhbHNlKSlcbiAgICAgICAgICAgICAgLmluY2x1ZGVzKHRoaXMubm9ybWFsaXplU3RyaW5nKGdyb3VwLmVtYWlsLCBmYWxzZSkpXG4gICAgICAgICAgKVxuICAgICAgY29uc3QgeyBlbWFpbHMsIC4uLmZ1bGxPcmcgfSA9IG9yZ2FuaXNhdGlvblxuICAgICAgaWYgKCFncm91cCkgcmV0dXJuIGZ1bGxPcmdcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZ1bGxPcmcsXG4gICAgICAgIGVtYWlsOiBlbWFpbHNbMF0sXG4gICAgICAgIC4uLihncm91cC5kZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uOiBncm91cC5kZXNjcmlwdGlvbiB9KSxcbiAgICAgICAgLi4uKGdyb3VwLmxvZ28gJiYgeyBsb2dvVXJsOiBnZXRBc1VybChgJHtJTUFHRV9VUkx9JHtncm91cC5sb2dvfWApIH0pLFxuICAgICAgICAuLi4oZ3JvdXAud2Vic2l0ZSAmJiB7IHdlYnNpdGU6IGdldEFzVXJsKGdyb3VwLndlYnNpdGUpIH0pLFxuICAgICAgICAuLi4oZ3JvdXAuZW1haWwgJiYgeyBlbWFpbDogZ3JvdXAuZW1haWwgfSksXG4gICAgICB9IGFzIE9yZ2FuaXphdGlvblxuICAgIH0pXG4gIH1cblxuICBnZXRGaWx0ZXJzRm9yT3JncyhvcmdhbmlzYXRpb25zOiBPcmdhbml6YXRpb25bXSk6IE9ic2VydmFibGU8RmllbGRGaWx0ZXJzPiB7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgbWFwKChnblZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZ25WZXJzaW9uLnN0YXJ0c1dpdGgoJzQuMi4yJylcbiAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0J1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIFtmaWVsZE5hbWVdOiBvcmdhbmlzYXRpb25zLnJlZHVjZShcbiAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiAoeyAuLi5wcmV2LCBbY3Vyci5uYW1lXTogdHJ1ZSB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRPcmdzRnJvbUZpbHRlcnMoZmlsdGVyczogRmllbGRGaWx0ZXJzKTogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRBcGlWZXJzaW9uKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZ25WZXJzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGduVmVyc2lvbi5zdGFydHNXaXRoKCc0LjIuMicpXG4gICAgICAgICAgPyAnT3JnRm9yUmVzb3VyY2UnXG4gICAgICAgICAgOiAnT3JnRm9yUmVzb3VyY2VPYmplY3QuZGVmYXVsdCdcblxuICAgICAgICBpZiAoIShmaWVsZE5hbWUgaW4gZmlsdGVycykpIHJldHVybiBvZihbXSlcblxuICAgICAgICByZXR1cm4gdGhpcy5vcmdhbmlzYXRpb25zJC5waXBlKFxuICAgICAgICAgIG1hcCgob3JnczogSW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcmdOYW1lcyA9IE9iamVjdC5rZXlzKFxuICAgICAgICAgICAgICBmaWx0ZXJzW2ZpZWxkTmFtZV0gYXMgRmllbGRGaWx0ZXJCeVZhbHVlc1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIG9yZ05hbWVzLm1hcCgobmFtZSkgPT5cbiAgICAgICAgICAgICAgb3Jncy5maW5kKFxuICAgICAgICAgICAgICAgIChvcmc6IE9yZ2FuaXphdGlvbiB8IEluY29tcGxldGVPcmdhbml6YXRpb24pID0+XG4gICAgICAgICAgICAgICAgICBvcmcubmFtZSA9PT0gbmFtZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBhZGRPcmdhbml6YXRpb25Ub1JlY29yZEZyb21Tb3VyY2UoXG4gICAgc291cmNlOiBNZXRhZGF0YU9iamVjdCxcbiAgICByZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgKTogT2JzZXJ2YWJsZTxDYXRhbG9nUmVjb3JkPiB7XG4gICAgY29uc3QgY29udGFjdHM6IFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXSA9IGdldEFzQXJyYXkoXG4gICAgICBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkKHNvdXJjZSwgJ2NvbnRhY3RPYmplY3QnLCB0aGlzLmxhbmdJbmRleCksXG4gICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2NvbnRhY3QnKVxuICAgICAgKVxuICAgIClcbiAgICBjb25zdCByZXNvdXJjZUNvbnRhY3RzOiBTb3VyY2VXaXRoVW5rbm93blByb3BzW10gPSBnZXRBc0FycmF5KFxuICAgICAgc2VsZWN0RmFsbGJhY2soXG4gICAgICAgIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZChcbiAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgJ2NvbnRhY3RGb3JSZXNvdXJjZU9iamVjdCcsXG4gICAgICAgICAgdGhpcy5sYW5nSW5kZXhcbiAgICAgICAgKSxcbiAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnY29udGFjdEZvclJlc291cmNlJylcbiAgICAgIClcbiAgICApXG4gICAgY29uc3QgYWxsQ29udGFjdE9yZ3MgPSByZXNvdXJjZUNvbnRhY3RzXG4gICAgICAuY29uY2F0KGNvbnRhY3RzKVxuICAgICAgLm1hcCgoY29udGFjdCkgPT4gbWFwT3JnYW5pemF0aW9uKGNvbnRhY3QsIHRoaXMubGFuZ0luZGV4KSlcblxuICAgIGlmICghYWxsQ29udGFjdE9yZ3MubGVuZ3RoKSByZXR1cm4gb2YocmVjb3JkKVxuXG4gICAgY29uc3Qgb3duZXJPcmdhbml6YXRpb24gPSBhbGxDb250YWN0T3Jnc1swXVxuXG4gICAgLy8gcmVhZCB0aGUgb3duZXIgZ3JvdXAgYXMgd2VsbCB0byBoYXZlIGEgZmFsbGJhY2sgbG9nb1xuICAgIGNvbnN0IGdyb3VwSWQgPSBzZWxlY3RGaWVsZChzb3VyY2UsICdncm91cE93bmVyJylcbiAgICBjb25zdCBncm91cCQgPSB0aGlzLmdyb3VwcyQucGlwZShcbiAgICAgIG1hcCgoZ3JvdXBzKSA9PlxuICAgICAgICBncm91cHMuZmluZCgoZ3JvdXApID0+IHtcbiAgICAgICAgICByZXR1cm4gZ3JvdXAuaWQgPT09IE51bWJlcihncm91cElkKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIClcblxuICAgIHJldHVybiB0aGlzLm9yZ2FuaXNhdGlvbnMkLnBpcGUoXG4gICAgICB0YWtlTGFzdCgxKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKGdyb3VwJCksXG4gICAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBncm91cF06IFtPcmdhbml6YXRpb25bXSwgR3JvdXBBcGlNb2RlbF0pID0+IHtcbiAgICAgICAgY29uc3QgcmVjb3JkT3JnYW5pc2F0aW9uID0gb3JnYW5pc2F0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKG9yZykgPT4gb3JnLm5hbWUgPT09IG93bmVyT3JnYW5pemF0aW9uLm5hbWVcbiAgICAgICAgKVswXVxuICAgICAgICBjb25zdCBsb2dvVXJsID0gZ3JvdXA/LmxvZ28gJiYgZ2V0QXNVcmwoYCR7SU1BR0VfVVJMfSR7Z3JvdXAubG9nb31gKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnJlY29yZCxcbiAgICAgICAgICBvd25lck9yZ2FuaXphdGlvbjoge1xuICAgICAgICAgICAgbG9nb1VybCxcbiAgICAgICAgICAgIC4uLm93bmVyT3JnYW5pemF0aW9uLFxuICAgICAgICAgICAgLi4ucmVjb3JkT3JnYW5pc2F0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
|
|
@@ -7,7 +7,7 @@ import { HttpClient, HttpEventType } from '@angular/common/http';
|
|
|
7
7
|
import { noDuplicateFileName } from '../../../../../../../libs/util/shared/src';
|
|
8
8
|
import { combineLatest, forkJoin, of, switchMap, throwError, } from 'rxjs';
|
|
9
9
|
import { TranslateService } from '@ngx-translate/core';
|
|
10
|
-
import {
|
|
10
|
+
import { toLang3 } from '../../../../../../../libs/util/i18n/src';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
import * as i1 from "../../../../../../../libs/data-access/gn4/src";
|
|
13
13
|
import * as i2 from "./gn4-platform.mapper";
|
|
@@ -16,7 +16,7 @@ import * as i4 from "@angular/common/http";
|
|
|
16
16
|
const minApiVersion = '4.2.2';
|
|
17
17
|
export class Gn4PlatformService {
|
|
18
18
|
get lang3() {
|
|
19
|
-
return
|
|
19
|
+
return toLang3(this.translateService.currentLang);
|
|
20
20
|
}
|
|
21
21
|
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, translateService, userfeedbackApiService, httpClient, recordsApiService) {
|
|
22
22
|
this.siteApiService = siteApiService;
|
|
@@ -253,4 +253,4 @@ export class Gn4PlatformService {
|
|
|
253
253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4PlatformService, decorators: [{
|
|
254
254
|
type: Injectable
|
|
255
255
|
}], ctorParameters: () => [{ type: i1.SiteApiService }, { type: i1.MeApiService }, { type: i1.UsersApiService }, { type: i2.Gn4PlatformMapper }, { type: i1.ToolsApiService }, { type: i1.RegistriesApiService }, { type: i3.TranslateService }, { type: i1.UserfeedbackApiService }, { type: i4.HttpClient }, { type: i1.RecordsApiService }] });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFNaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBRVIsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7Ozs7O0FBRTNFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQTtBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBK0M3QixJQUFZLEtBQUs7UUFDZixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxn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QVEsQ0FBQyxDQUFDLEVBQ3BFLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7WUFFMUIsSUFBSSxlQUFlLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2xFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7b0JBQ2hFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7Z0JBQzlDLENBQUMsQ0FBQyxDQUNILENBQUE7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dCQUM5RCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDckUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7K0dBellVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgbWVyZ2VNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgTWVBcGlTZXJ2aWNlLFxuICBSZWNvcmRzQXBpU2VydmljZSxcbiAgUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gIFNpdGVBcGlTZXJ2aWNlLFxuICBUb29sc0FwaVNlcnZpY2UsXG4gIFVzZXJmZWVkYmFja0FwaVNlcnZpY2UsXG4gIFVzZXJzQXBpU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9nbjQvc3JjJ1xuaW1wb3J0IHtcbiAgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICBVcGxvYWRFdmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC91c2VyL3VzZXIubW9kZWwnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBLZXl3b3JkLFxuICBPcmdhbml6YXRpb24sXG4gIFVzZXJGZWVkYmFjayxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgR240UGxhdGZvcm1NYXBwZXIgfSBmcm9tICcuL2duNC1wbGF0Zm9ybS5tYXBwZXInXG5pbXBvcnQgeyBsdHIgfSBmcm9tICdzZW12ZXInXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQge1xuICBLZXl3b3JkQXBpUmVzcG9uc2UsXG4gIFRoZXNhdXJ1c0FwaVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC90aGVzYXVydXMnXG5pbXBvcnQgeyBub0R1cGxpY2F0ZUZpbGVOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZ2V0TGFuZzNGcm9tTGFuZzIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5cbmNvbnN0IG1pbkFwaVZlcnNpb24gPSAnNC4yLjInXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHbjRQbGF0Zm9ybVNlcnZpY2UgaW1wbGVtZW50cyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHR5cGUgPSAnR2VvTmV0d29yaydcbiAgcHJpdmF0ZSByZWFkb25seSBtZSQ6IE9ic2VydmFibGU8VXNlck1vZGVsPlxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT5cbiAgcHJpdmF0ZSByZWFkb25seSBpc1VzZXJBbm9ueW1vdXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIHByaXZhdGUgcmVhZG9ubHkgZ25QYXJzZVZlcnNpb24gPSAnNC4yLjUnXG5cbiAgcHJpdmF0ZSBrZXlUcmFuc2xhdGlvbnMkID0gdGhpcy50b29sc0FwaVNlcnZpY2VcbiAgICAuZ2V0VHJhbnNsYXRpb25zUGFja2FnZTEoJ2dudWknKVxuICAgIC5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUud2FybignRXJyb3Igd2hpbGUgbG9hZGluZyBnbnVpIGxhbmd1YWdlIHBhY2thZ2UnKVxuICAgICAgICByZXR1cm4gb2Yoe30pXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gIHByaXZhdGUgc2V0dGluZ3MkID0gb2YodHJ1ZSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zaXRlQXBpU2VydmljZS5nZXRTaXRlT3JQb3J0YWxEZXNjcmlwdGlvbigpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcGlWZXJzaW9uJCA9IHRoaXMuc2V0dGluZ3MkLnBpcGUoXG4gICAgbWFwKChpbmZvKSA9PiBpbmZvWydzeXN0ZW0vcGxhdGZvcm0vdmVyc2lvbiddIGFzIHN0cmluZyksXG4gICAgdGFwKCh2ZXJzaW9uKSA9PiB7XG4gICAgICBpZiAobHRyKHZlcnNpb24sIG1pbkFwaVZlcnNpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgR240IEFQSSB2ZXJzaW9uIGlzIG5vdCBjb21wYXRpYmxlLlxcbk1pbmltdW06ICR7bWluQXBpVmVyc2lvbn1cXG5Zb3VyIHZlcnNpb246ICR7dmVyc2lvbn1gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvd0VkaXRIYXJ2ZXN0ZWRNZCQgPSB0aGlzLnNldHRpbmdzJC5waXBlKFxuICAgIG1hcCgoaW5mbykgPT4ge1xuICAgICAgcmV0dXJuIGluZm9bJ3N5c3RlbS9oYXJ2ZXN0ZXIvZW5hYmxlRWRpdGluZyddIGFzIGJvb2xlYW5cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGFscmVhZHkgbG9hZGVkIHRoZXNhdXJpIChncm91cHMgb2Yga2V5d29yZHMpOyB0aGUga2V5IGlzIGEgVVJJXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGtleXdvcmRzQnlUaGVzYXVyaTogUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxLZXl3b3JkW10+PiA9IHt9XG5cbiAgcHJpdmF0ZSBnZXQgbGFuZzMoKSB7XG4gICAgcmV0dXJuIGdldExhbmczRnJvbUxhbmcyKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2l0ZUFwaVNlcnZpY2U6IFNpdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVBcGk6IE1lQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzQXBpOiBVc2Vyc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBwZXI6IEduNFBsYXRmb3JtTWFwcGVyLFxuICAgIHByaXZhdGUgdG9vbHNBcGlTZXJ2aWNlOiBUb29sc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RyaWVzQXBpU2VydmljZTogUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcmZlZWRiYWNrQXBpU2VydmljZTogVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWNvcmRzQXBpU2VydmljZTogUmVjb3Jkc0FwaVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5tZSQgPSB0aGlzLm1lQXBpLmdldE1lKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoYXBpVXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21NZUFwaShhcGlVc2VyKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5pc1VzZXJBbm9ueW1vdXMkID0gdGhpcy5tZSQucGlwZShcbiAgICAgIG1hcCgodXNlcikgPT4gIXVzZXIgfHwgISgnaWQnIGluIHVzZXIpKVxuICAgIClcblxuICAgIHRoaXMudXNlcnMkID0gdGhpcy51c2Vyc0FwaS5nZXRVc2VycygpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJzKSA9PiB1c2Vycy5tYXAoKHVzZXIpID0+IHRoaXMubWFwcGVyLnVzZXJGcm9tQXBpKHVzZXIpKSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKVxuICB9XG5cbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGVcbiAgfVxuXG4gIGdldEFwaVZlcnNpb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlWZXJzaW9uJFxuICB9XG5cbiAgZ2V0QWxsb3dFZGl0SGFydmVzdGVkTWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dFZGl0SGFydmVzdGVkTWQkXG4gIH1cblxuICBnZXRNZSgpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLm1lJFxuICB9XG5cbiAgaXNBbm9ueW1vdXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNVc2VyQW5vbnltb3VzJFxuICB9XG5cbiAgZ2V0T3JnYW5pemF0aW9ucygpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0VXNlcnNCeU9yZ2FuaXphdGlvbihvcmdhbmlzYXRpb246IE9yZ2FuaXphdGlvbik6IE9ic2VydmFibGU8VXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRVc2VycygpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcnMkXG4gIH1cblxuICB0cmFuc2xhdGVLZXkoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIC8vIGlmIHRoZSBrZXkgaXMgYSBVUkksIHVzZSB0aGUgcmVnaXN0cmllcyBBUEkgdG8gbG9vayBmb3IgdGhlIHRyYW5zbGF0aW9uXG4gICAgaWYgKGtleS5tYXRjaCgvXmh0dHBzPzpcXC9cXC8vKSkge1xuICAgICAgLy8gdGhlIHRoZXNhdXJ1cyBVUkkgaXMgaW5mZXJyZWQgYnkgcmVtb3ZpbmcgYSBwYXJ0IG9mIHRoZSBrZXl3b3JkIFVSSVxuICAgICAgLy8gdGhpcyBpcyBub3QgZXhhY3Qgc2NpZW5jZSBidXQgaXQncyBPSywgd2UnbGwgc3RpbGwgZW5kIHVwIGxvYWRpbmcgYSBidW5jaCBvZiBrZXl3b3JkcyBhdCBvbmNlIGFueXdheVxuICAgICAgY29uc3QgdGhlc2F1cnVzVXJpID0ga2V5LnJlcGxhY2UoL1xcLyhbXi9dKykkLywgJy8nKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0S2V5d29yZHNCeVVyaSh0aGVzYXVydXNVcmkpLnBpcGUoXG4gICAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoZXNhdXJ1cykge1xuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSBrZXkpIHJldHVybiBpdGVtLmxhYmVsXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMua2V5VHJhbnNsYXRpb25zJC5waXBlKG1hcCgodHJhbnNsYXRpb25zKSA9PiB0cmFuc2xhdGlvbnNba2V5XSkpXG4gIH1cblxuICBwcml2YXRlIGFsbFRoZXNhdXJ1cyQgPSB0aGlzLmh0dHBDbGllbnRcbiAgICAuZ2V0KFxuICAgICAgYCR7dGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5jb25maWd1cmF0aW9uLmJhc2VQYXRofS90aGVzYXVydXM/X2NvbnRlbnRfdHlwZT1qc29uYFxuICAgIClcbiAgICAucGlwZShcbiAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGVzYXVydXNbMF0gYXMgVGhlc2F1cnVzQXBpUmVzcG9uc2VbXVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBzZWFyY2hLZXl3b3JkcyhcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIGtleXdvcmRUeXBlczogS2V5d29yZFR5cGVbXVxuICApOiBPYnNlcnZhYmxlPEtleXdvcmRbXT4ge1xuICAgIGNvbnN0IGtleXdvcmRzJDogT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT4gPSB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGhlc2F1cmkgPSBbXVxuICAgICAgICBrZXl3b3JkVHlwZXMubWFwKChrZXl3b3JkVHlwZSkgPT4ge1xuICAgICAgICAgIHNlbGVjdGVkVGhlc2F1cmkucHVzaChcbiAgICAgICAgICAgIC4uLnRoZXNhdXJ1cy5maWx0ZXIoKHRoZXMpID0+IHRoZXMuZG5hbWUgPT09IGtleXdvcmRUeXBlKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5zZWFyY2hLZXl3b3JkcyhcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLm1hcCgodGhlcykgPT4gdGhlcy5rZXkpLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYCoke3F1ZXJ5fSpgXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT5cbiAgICAgIH0pXG4gICAgKVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2tleXdvcmRzJCwgdGhpcy5hbGxUaGVzYXVydXMkXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJ1cywgdGhpcy5sYW5nMylcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0S2V5d29yZHNCeVVyaSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8S2V5d29yZFtdPiB7XG4gICAgaWYgKHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldXG4gICAgfVxuICAgIGNvbnN0IGtleXdvcmRzJCA9IHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMoXG4gICAgICBudWxsLFxuICAgICAgdGhpcy5sYW5nMyxcbiAgICAgIDEwMDAsXG4gICAgICAwLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgYCR7dXJpfSpgXG4gICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuXG4gICAgdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAga2V5d29yZHMkLFxuICAgICAgdGhpcy5hbGxUaGVzYXVydXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtrZXl3b3JkcywgdGhlc2F1cnVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVydXMsIHRoaXMubGFuZzMpXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV1cbiAgfVxuXG4gIHNlYXJjaEtleXdvcmRzSW5UaGVzYXVydXMocXVlcnk6IHN0cmluZywgdGhlc2F1cnVzSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cmkpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaXBwZWRUaGVzYXVydXNJZCA9IHRoZXNhdXJ1c0lkLnJlcGxhY2UoXG4gICAgICAgICAgJ2dlb25ldHdvcmsudGhlc2F1cnVzLicsXG4gICAgICAgICAgJydcbiAgICAgICAgKVxuICAgICAgICBpZiAoIXRoZXNhdXJpLmZpbmQoKHRoZXMpID0+IHRoZXMua2V5ID09PSBzdHJpcHBlZFRoZXNhdXJ1c0lkKSlcbiAgICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlXG4gICAgICAgICAgLnNlYXJjaEtleXdvcmRzKFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBbc3RyaXBwZWRUaGVzYXVydXNJZF0sXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChrZXl3b3JkczogS2V5d29yZEFwaVJlc3BvbnNlW10pID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cmksIHRoaXMubGFuZzMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRVc2VyRmVlZGJhY2tzKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckZlZWRiYWNrW10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyZmVlZGJhY2tBcGlTZXJ2aWNlLmdldFVzZXJDb21tZW50cyh1dWlkKS5waXBlKFxuICAgICAgbWFwKCh1c2VyRmVlZGJhY2tzKSA9PlxuICAgICAgICB1c2VyRmVlZGJhY2tzLm1hcCh0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzRnJvbUFwaSlcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB1c2VyIGZlZWRiYWNrczonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcG9zdFVzZXJGZWVkYmFja3ModXNlckZlZWRiYWNrOiBVc2VyRmVlZGJhY2spOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBtYXBwZWRVc2VyRmVlZEJhY2sgPSB0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzVG9BcGkodXNlckZlZWRiYWNrKVxuICAgIHJldHVybiB0aGlzLnVzZXJmZWVkYmFja0FwaVNlcnZpY2UubmV3VXNlckZlZWRiYWNrKG1hcHBlZFVzZXJGZWVkQmFjaykucGlwZShcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcG9zdGluZyB1c2VyIGZlZWRiYWNrOicsIGVycm9yKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBbGxSZXNvdXJjZXMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVzb3VyY2VzKSA9PlxuICAgICAgICByZXNvdXJjZXMubWFwKChyKSA9PiAoe1xuICAgICAgICAgIHVybDogbmV3IFVSTChyLnVybCksXG4gICAgICAgICAgZmlsZU5hbWU6IHIuZmlsZW5hbWUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGNsZWFuUmVjb3JkQXR0YWNobWVudHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBc3NvY2lhdGVkUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QWxsUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbYXNzb2NpYXRlZCwgYXR0YWNobWVudHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgb25saW5lcyA9IFtdLCB0aHVtYm5haWxzID0gW10gfSA9IGFzc29jaWF0ZWRcblxuICAgICAgICBjb25zdCB1cmxzVG9LZWVwID0gW1xuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KG9ubGluZXMpID8gb25saW5lcyA6IFtdKSxcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheSh0aHVtYm5haWxzKSA/IHRodW1ibmFpbHMgOiBbXSksXG4gICAgICAgIF0ubWFwKChyZXNvdXJjZSkgPT4gT2JqZWN0LnZhbHVlcyhyZXNvdXJjZS51cmwpWzBdKVxuICAgICAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBhdHRhY2htZW50cy5yZWR1Y2U8c3RyaW5nW10+KChhY2MsIGF0dGFjaG1lbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdXJsc1RvS2VlcC5pbmNsdWRlcyhhdHRhY2htZW50LnVybCkgJiZcbiAgICAgICAgICAgIGF0dGFjaG1lbnQuZmlsZW5hbWUgIT09ICdkYXRhdml6Q29uZmlnLmpzb24nXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBhY2MucHVzaChhdHRhY2htZW50LmZpbGVuYW1lKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sIFtdKVxuXG4gICAgICAgIHJldHVybiBmaWxlVG9EZWxldGVcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKGZpbGVzVG9EZWxldGUpID0+XG4gICAgICAgIGZpbGVzVG9EZWxldGUubGVuZ3RoXG4gICAgICAgICAgPyBmb3JrSm9pbihcbiAgICAgICAgICAgICAgZmlsZXNUb0RlbGV0ZS5tYXAoKGZpbGVuYW1lKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICByZWNvcmQudW5pcXVlSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IHVuZGVmaW5lZCkpXG4gICAgICAgICAgOiBvZih1bmRlZmluZWQpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgY2xlYW5pbmcgYXR0YWNobWVudHM6JywgZXJyb3IpXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgdXBsb2FkRmlsZShyZWNvcmRVdWlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgbGV0IHNpemVCeXRlcyA9IC0xXG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2VcbiAgICAgIC5wdXRSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlLCAncHVibGljJywgdW5kZWZpbmVkLCAnZXZlbnRzJywgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHNpemVCeXRlcyA9IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAncHJvZ3Jlc3MnLFxuICAgICAgICAgICAgICBwcm9ncmVzczogZXZlbnQudG90YWxcbiAgICAgICAgICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcbiAgICAgICAgICAgICAgICA6IDAsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICAgICAgICB1cmw6IG5ldyBVUkwoZXZlbnQuYm9keS51cmwpLFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBldmVudC5ib2R5LmZpbGVuYW1lLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzaXplQnl0ZXMsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICEhZXZlbnQpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT4gbmV3IEVycm9yKGVycm9yLmVycm9yPy5tZXNzYWdlID8/IGVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKVxuICB9XG4gIGdldEZpbGVDb250ZW50KHVybDogVVJMIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybC50b1N0cmluZygpLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLFxuICAgICAgdGhpcy5nZXRBcGlWZXJzaW9uKCksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3RleHQsIHZlcnNpb25dKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGV4dClcblxuICAgICAgICBpZiAodmVyc2lvbiA+IHRoaXMuZ25QYXJzZVZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VkXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5kZWNvZGVCYXNlNjQocGFyc2VkKVxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWNvZGVCYXNlNjQoYmFzZTY0KSB7XG4gICAgY29uc3QgdGV4dCA9IGF0b2IoYmFzZTY0KVxuICAgIGNvbnN0IGxlbmd0aCA9IHRleHQubGVuZ3RoXG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgYnl0ZXNbaV0gPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB9XG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGJ5dGVzKVxuICB9XG5cbiAgYXR0YWNoRmlsZVRvUmVjb3JkKFxuICAgIHJlY29yZFV1aWQ6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlLFxuICAgIHJlbW92ZUR1cGxpY2F0ZSA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkKS5waXBlKFxuICAgICAgbWFwKChyZWNvcmRBdHRhY2htZW50cykgPT4gcmVjb3JkQXR0YWNobWVudHMubWFwKChyKSA9PiByLmZpbGVOYW1lKSksXG4gICAgICBzd2l0Y2hNYXAoKGZpbGVOYW1lcykgPT4ge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGUubmFtZVxuXG4gICAgICAgIGlmIChyZW1vdmVEdXBsaWNhdGUgJiYgZmlsZU5hbWVzLmluY2x1ZGVzKGZpbGUubmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5kZWxSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlTmFtZSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaWxlTmFtZSwgeyB0eXBlOiBmaWxlLnR5cGUgfSlcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGZpbmFsRmlsZU5hbWUgPSBub0R1cGxpY2F0ZUZpbGVOYW1lKGZpbGVOYW1lLCBmaWxlTmFtZXMpXG4gICAgICAgICAgY29uc3QgZmlsZUNvcHkgPSBuZXcgRmlsZShbZmlsZV0sIGZpbmFsRmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFNaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBRVIsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUNBQXlDLENBQUE7Ozs7OztBQUVqRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUE7QUFHN0IsTUFBTSxPQUFPLGtCQUFrQjtJQStDN0IsSUFBWSxLQUFLO1FBQ2YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFn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QUFDLENBQUMsRUFDcEUsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtZQUUxQixJQUFJLGVBQWUsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDbEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFDaEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBQzlELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNyRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F6WVUsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBNZUFwaVNlcnZpY2UsXG4gIFJlY29yZHNBcGlTZXJ2aWNlLFxuICBSZWdpc3RyaWVzQXBpU2VydmljZSxcbiAgU2l0ZUFwaVNlcnZpY2UsXG4gIFRvb2xzQXBpU2VydmljZSxcbiAgVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgVXNlcnNBcGlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQge1xuICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gIFVwbG9hZEV2ZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3VzZXIvdXNlci5tb2RlbCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIEtleXdvcmQsXG4gIE9yZ2FuaXphdGlvbixcbiAgVXNlckZlZWRiYWNrLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBHbjRQbGF0Zm9ybU1hcHBlciB9IGZyb20gJy4vZ240LXBsYXRmb3JtLm1hcHBlcidcbmltcG9ydCB7IGx0ciB9IGZyb20gJ3NlbXZlcidcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7XG4gIEtleXdvcmRBcGlSZXNwb25zZSxcbiAgVGhlc2F1cnVzQXBpUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3RoZXNhdXJ1cydcbmltcG9ydCB7IG5vRHVwbGljYXRlRmlsZU5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZvcmtKb2luLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuXG5jb25zdCBtaW5BcGlWZXJzaW9uID0gJzQuMi4yJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR240UGxhdGZvcm1TZXJ2aWNlIGltcGxlbWVudHMgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0eXBlID0gJ0dlb05ldHdvcmsnXG4gIHByaXZhdGUgcmVhZG9ubHkgbWUkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VycyQ6IE9ic2VydmFibGU8VXNlck1vZGVsW10+XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNVc2VyQW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBwcml2YXRlIHJlYWRvbmx5IGduUGFyc2VWZXJzaW9uID0gJzQuMi41J1xuXG4gIHByaXZhdGUga2V5VHJhbnNsYXRpb25zJCA9IHRoaXMudG9vbHNBcGlTZXJ2aWNlXG4gICAgLmdldFRyYW5zbGF0aW9uc1BhY2thZ2UxKCdnbnVpJylcbiAgICAucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ251aSBsYW5ndWFnZSBwYWNrYWdlJylcbiAgICAgICAgcmV0dXJuIG9mKHt9KVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBwcml2YXRlIHNldHRpbmdzJCA9IG9mKHRydWUpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc2l0ZUFwaVNlcnZpY2UuZ2V0U2l0ZU9yUG9ydGFsRGVzY3JpcHRpb24oKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbiQgPSB0aGlzLnNldHRpbmdzJC5waXBlKFxuICAgIG1hcCgoaW5mbykgPT4gaW5mb1snc3lzdGVtL3BsYXRmb3JtL3ZlcnNpb24nXSBhcyBzdHJpbmcpLFxuICAgIHRhcCgodmVyc2lvbikgPT4ge1xuICAgICAgaWYgKGx0cih2ZXJzaW9uLCBtaW5BcGlWZXJzaW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEduNCBBUEkgdmVyc2lvbiBpcyBub3QgY29tcGF0aWJsZS5cXG5NaW5pbXVtOiAke21pbkFwaVZlcnNpb259XFxuWW91ciB2ZXJzaW9uOiAke3ZlcnNpb259YFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dFZGl0SGFydmVzdGVkTWQkID0gdGhpcy5zZXR0aW5ncyQucGlwZShcbiAgICBtYXAoKGluZm8pID0+IHtcbiAgICAgIHJldHVybiBpbmZvWydzeXN0ZW0vaGFydmVzdGVyL2VuYWJsZUVkaXRpbmcnXSBhcyBib29sZWFuXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBhbHJlYWR5IGxvYWRlZCB0aGVzYXVyaSAoZ3JvdXBzIG9mIGtleXdvcmRzKTsgdGhlIGtleSBpcyBhIFVSSVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBrZXl3b3Jkc0J5VGhlc2F1cmk6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8S2V5d29yZFtdPj4gPSB7fVxuXG4gIHByaXZhdGUgZ2V0IGxhbmczKCkge1xuICAgIHJldHVybiB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2l0ZUFwaVNlcnZpY2U6IFNpdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVBcGk6IE1lQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzQXBpOiBVc2Vyc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBwZXI6IEduNFBsYXRmb3JtTWFwcGVyLFxuICAgIHByaXZhdGUgdG9vbHNBcGlTZXJ2aWNlOiBUb29sc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RyaWVzQXBpU2VydmljZTogUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcmZlZWRiYWNrQXBpU2VydmljZTogVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWNvcmRzQXBpU2VydmljZTogUmVjb3Jkc0FwaVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5tZSQgPSB0aGlzLm1lQXBpLmdldE1lKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoYXBpVXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21NZUFwaShhcGlVc2VyKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5pc1VzZXJBbm9ueW1vdXMkID0gdGhpcy5tZSQucGlwZShcbiAgICAgIG1hcCgodXNlcikgPT4gIXVzZXIgfHwgISgnaWQnIGluIHVzZXIpKVxuICAgIClcblxuICAgIHRoaXMudXNlcnMkID0gdGhpcy51c2Vyc0FwaS5nZXRVc2VycygpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJzKSA9PiB1c2Vycy5tYXAoKHVzZXIpID0+IHRoaXMubWFwcGVyLnVzZXJGcm9tQXBpKHVzZXIpKSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKVxuICB9XG5cbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGVcbiAgfVxuXG4gIGdldEFwaVZlcnNpb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlWZXJzaW9uJFxuICB9XG5cbiAgZ2V0QWxsb3dFZGl0SGFydmVzdGVkTWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dFZGl0SGFydmVzdGVkTWQkXG4gIH1cblxuICBnZXRNZSgpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLm1lJFxuICB9XG5cbiAgaXNBbm9ueW1vdXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNVc2VyQW5vbnltb3VzJFxuICB9XG5cbiAgZ2V0T3JnYW5pemF0aW9ucygpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0VXNlcnNCeU9yZ2FuaXphdGlvbihvcmdhbmlzYXRpb246IE9yZ2FuaXphdGlvbik6IE9ic2VydmFibGU8VXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRVc2VycygpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcnMkXG4gIH1cblxuICB0cmFuc2xhdGVLZXkoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIC8vIGlmIHRoZSBrZXkgaXMgYSBVUkksIHVzZSB0aGUgcmVnaXN0cmllcyBBUEkgdG8gbG9vayBmb3IgdGhlIHRyYW5zbGF0aW9uXG4gICAgaWYgKGtleS5tYXRjaCgvXmh0dHBzPzpcXC9cXC8vKSkge1xuICAgICAgLy8gdGhlIHRoZXNhdXJ1cyBVUkkgaXMgaW5mZXJyZWQgYnkgcmVtb3ZpbmcgYSBwYXJ0IG9mIHRoZSBrZXl3b3JkIFVSSVxuICAgICAgLy8gdGhpcyBpcyBub3QgZXhhY3Qgc2NpZW5jZSBidXQgaXQncyBPSywgd2UnbGwgc3RpbGwgZW5kIHVwIGxvYWRpbmcgYSBidW5jaCBvZiBrZXl3b3JkcyBhdCBvbmNlIGFueXdheVxuICAgICAgY29uc3QgdGhlc2F1cnVzVXJpID0ga2V5LnJlcGxhY2UoL1xcLyhbXi9dKykkLywgJy8nKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0S2V5d29yZHNCeVVyaSh0aGVzYXVydXNVcmkpLnBpcGUoXG4gICAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoZXNhdXJ1cykge1xuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSBrZXkpIHJldHVybiBpdGVtLmxhYmVsXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMua2V5VHJhbnNsYXRpb25zJC5waXBlKG1hcCgodHJhbnNsYXRpb25zKSA9PiB0cmFuc2xhdGlvbnNba2V5XSkpXG4gIH1cblxuICBwcml2YXRlIGFsbFRoZXNhdXJ1cyQgPSB0aGlzLmh0dHBDbGllbnRcbiAgICAuZ2V0KFxuICAgICAgYCR7dGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5jb25maWd1cmF0aW9uLmJhc2VQYXRofS90aGVzYXVydXM/X2NvbnRlbnRfdHlwZT1qc29uYFxuICAgIClcbiAgICAucGlwZShcbiAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGVzYXVydXNbMF0gYXMgVGhlc2F1cnVzQXBpUmVzcG9uc2VbXVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBzZWFyY2hLZXl3b3JkcyhcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIGtleXdvcmRUeXBlczogS2V5d29yZFR5cGVbXVxuICApOiBPYnNlcnZhYmxlPEtleXdvcmRbXT4ge1xuICAgIGNvbnN0IGtleXdvcmRzJDogT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT4gPSB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGhlc2F1cmkgPSBbXVxuICAgICAgICBrZXl3b3JkVHlwZXMubWFwKChrZXl3b3JkVHlwZSkgPT4ge1xuICAgICAgICAgIHNlbGVjdGVkVGhlc2F1cmkucHVzaChcbiAgICAgICAgICAgIC4uLnRoZXNhdXJ1cy5maWx0ZXIoKHRoZXMpID0+IHRoZXMuZG5hbWUgPT09IGtleXdvcmRUeXBlKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5zZWFyY2hLZXl3b3JkcyhcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLm1hcCgodGhlcykgPT4gdGhlcy5rZXkpLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYCoke3F1ZXJ5fSpgXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT5cbiAgICAgIH0pXG4gICAgKVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2tleXdvcmRzJCwgdGhpcy5hbGxUaGVzYXVydXMkXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJ1cywgdGhpcy5sYW5nMylcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0S2V5d29yZHNCeVVyaSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8S2V5d29yZFtdPiB7XG4gICAgaWYgKHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldXG4gICAgfVxuICAgIGNvbnN0IGtleXdvcmRzJCA9IHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMoXG4gICAgICBudWxsLFxuICAgICAgdGhpcy5sYW5nMyxcbiAgICAgIDEwMDAsXG4gICAgICAwLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgYCR7dXJpfSpgXG4gICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuXG4gICAgdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAga2V5d29yZHMkLFxuICAgICAgdGhpcy5hbGxUaGVzYXVydXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtrZXl3b3JkcywgdGhlc2F1cnVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVydXMsIHRoaXMubGFuZzMpXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV1cbiAgfVxuXG4gIHNlYXJjaEtleXdvcmRzSW5UaGVzYXVydXMocXVlcnk6IHN0cmluZywgdGhlc2F1cnVzSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cmkpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaXBwZWRUaGVzYXVydXNJZCA9IHRoZXNhdXJ1c0lkLnJlcGxhY2UoXG4gICAgICAgICAgJ2dlb25ldHdvcmsudGhlc2F1cnVzLicsXG4gICAgICAgICAgJydcbiAgICAgICAgKVxuICAgICAgICBpZiAoIXRoZXNhdXJpLmZpbmQoKHRoZXMpID0+IHRoZXMua2V5ID09PSBzdHJpcHBlZFRoZXNhdXJ1c0lkKSlcbiAgICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlXG4gICAgICAgICAgLnNlYXJjaEtleXdvcmRzKFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBbc3RyaXBwZWRUaGVzYXVydXNJZF0sXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChrZXl3b3JkczogS2V5d29yZEFwaVJlc3BvbnNlW10pID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cmksIHRoaXMubGFuZzMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRVc2VyRmVlZGJhY2tzKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckZlZWRiYWNrW10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyZmVlZGJhY2tBcGlTZXJ2aWNlLmdldFVzZXJDb21tZW50cyh1dWlkKS5waXBlKFxuICAgICAgbWFwKCh1c2VyRmVlZGJhY2tzKSA9PlxuICAgICAgICB1c2VyRmVlZGJhY2tzLm1hcCh0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzRnJvbUFwaSlcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB1c2VyIGZlZWRiYWNrczonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcG9zdFVzZXJGZWVkYmFja3ModXNlckZlZWRiYWNrOiBVc2VyRmVlZGJhY2spOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBtYXBwZWRVc2VyRmVlZEJhY2sgPSB0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzVG9BcGkodXNlckZlZWRiYWNrKVxuICAgIHJldHVybiB0aGlzLnVzZXJmZWVkYmFja0FwaVNlcnZpY2UubmV3VXNlckZlZWRiYWNrKG1hcHBlZFVzZXJGZWVkQmFjaykucGlwZShcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcG9zdGluZyB1c2VyIGZlZWRiYWNrOicsIGVycm9yKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBbGxSZXNvdXJjZXMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVzb3VyY2VzKSA9PlxuICAgICAgICByZXNvdXJjZXMubWFwKChyKSA9PiAoe1xuICAgICAgICAgIHVybDogbmV3IFVSTChyLnVybCksXG4gICAgICAgICAgZmlsZU5hbWU6IHIuZmlsZW5hbWUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGNsZWFuUmVjb3JkQXR0YWNobWVudHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBc3NvY2lhdGVkUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QWxsUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbYXNzb2NpYXRlZCwgYXR0YWNobWVudHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgb25saW5lcyA9IFtdLCB0aHVtYm5haWxzID0gW10gfSA9IGFzc29jaWF0ZWRcblxuICAgICAgICBjb25zdCB1cmxzVG9LZWVwID0gW1xuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KG9ubGluZXMpID8gb25saW5lcyA6IFtdKSxcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheSh0aHVtYm5haWxzKSA/IHRodW1ibmFpbHMgOiBbXSksXG4gICAgICAgIF0ubWFwKChyZXNvdXJjZSkgPT4gT2JqZWN0LnZhbHVlcyhyZXNvdXJjZS51cmwpWzBdKVxuICAgICAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBhdHRhY2htZW50cy5yZWR1Y2U8c3RyaW5nW10+KChhY2MsIGF0dGFjaG1lbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdXJsc1RvS2VlcC5pbmNsdWRlcyhhdHRhY2htZW50LnVybCkgJiZcbiAgICAgICAgICAgIGF0dGFjaG1lbnQuZmlsZW5hbWUgIT09ICdkYXRhdml6Q29uZmlnLmpzb24nXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBhY2MucHVzaChhdHRhY2htZW50LmZpbGVuYW1lKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sIFtdKVxuXG4gICAgICAgIHJldHVybiBmaWxlVG9EZWxldGVcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKGZpbGVzVG9EZWxldGUpID0+XG4gICAgICAgIGZpbGVzVG9EZWxldGUubGVuZ3RoXG4gICAgICAgICAgPyBmb3JrSm9pbihcbiAgICAgICAgICAgICAgZmlsZXNUb0RlbGV0ZS5tYXAoKGZpbGVuYW1lKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICByZWNvcmQudW5pcXVlSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IHVuZGVmaW5lZCkpXG4gICAgICAgICAgOiBvZih1bmRlZmluZWQpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgY2xlYW5pbmcgYXR0YWNobWVudHM6JywgZXJyb3IpXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgdXBsb2FkRmlsZShyZWNvcmRVdWlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgbGV0IHNpemVCeXRlcyA9IC0xXG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2VcbiAgICAgIC5wdXRSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlLCAncHVibGljJywgdW5kZWZpbmVkLCAnZXZlbnRzJywgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHNpemVCeXRlcyA9IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAncHJvZ3Jlc3MnLFxuICAgICAgICAgICAgICBwcm9ncmVzczogZXZlbnQudG90YWxcbiAgICAgICAgICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcbiAgICAgICAgICAgICAgICA6IDAsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICAgICAgICB1cmw6IG5ldyBVUkwoZXZlbnQuYm9keS51cmwpLFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBldmVudC5ib2R5LmZpbGVuYW1lLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzaXplQnl0ZXMsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICEhZXZlbnQpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT4gbmV3IEVycm9yKGVycm9yLmVycm9yPy5tZXNzYWdlID8/IGVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKVxuICB9XG4gIGdldEZpbGVDb250ZW50KHVybDogVVJMIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybC50b1N0cmluZygpLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLFxuICAgICAgdGhpcy5nZXRBcGlWZXJzaW9uKCksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3RleHQsIHZlcnNpb25dKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGV4dClcblxuICAgICAgICBpZiAodmVyc2lvbiA+IHRoaXMuZ25QYXJzZVZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VkXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5kZWNvZGVCYXNlNjQocGFyc2VkKVxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWNvZGVCYXNlNjQoYmFzZTY0KSB7XG4gICAgY29uc3QgdGV4dCA9IGF0b2IoYmFzZTY0KVxuICAgIGNvbnN0IGxlbmd0aCA9IHRleHQubGVuZ3RoXG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgYnl0ZXNbaV0gPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB9XG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGJ5dGVzKVxuICB9XG5cbiAgYXR0YWNoRmlsZVRvUmVjb3JkKFxuICAgIHJlY29yZFV1aWQ6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlLFxuICAgIHJlbW92ZUR1cGxpY2F0ZSA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkKS5waXBlKFxuICAgICAgbWFwKChyZWNvcmRBdHRhY2htZW50cykgPT4gcmVjb3JkQXR0YWNobWVudHMubWFwKChyKSA9PiByLmZpbGVOYW1lKSksXG4gICAgICBzd2l0Y2hNYXAoKGZpbGVOYW1lcykgPT4ge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGUubmFtZVxuXG4gICAgICAgIGlmIChyZW1vdmVEdXBsaWNhdGUgJiYgZmlsZU5hbWVzLmluY2x1ZGVzKGZpbGUubmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5kZWxSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlTmFtZSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaWxlTmFtZSwgeyB0eXBlOiBmaWxlLnR5cGUgfSlcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGZpbmFsRmlsZU5hbWUgPSBub0R1cGxpY2F0ZUZpbGVOYW1lKGZpbGVOYW1lLCBmaWxlTmFtZXMpXG4gICAgICAgICAgY29uc3QgZmlsZUNvcHkgPSBuZXcgRmlsZShbZmlsZV0sIGZpbmFsRmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const METADATA_LANGUAGE = new InjectionToken('metadata-language');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtbGFuZ3VhZ2UudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvbWV0YWRhdGEtbGFuZ3VhZ2UudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUs5QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FFakQsbUJBQW1CLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuZXhwb3J0IHR5cGUgTGFuZ3VhZ2VDb2RlRmFjdG9yeSA9ICgpID0+IExhbmd1YWdlQ29kZVxuXG5leHBvcnQgY29uc3QgTUVUQURBVEFfTEFOR1VBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIExhbmd1YWdlQ29kZSB8IExhbmd1YWdlQ29kZUZhY3Rvcnlcbj4oJ21ldGFkYXRhLWxhbmd1YWdlJylcbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { SourcesApiService } from '../../../../../../libs/data-access/gn4/src';
|
|
3
3
|
import { filter, map, shareReplay } from 'rxjs/operators';
|
|
4
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
-
import {
|
|
5
|
+
import { toLang3 } from '../../../../../../libs/util/i18n/src';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../../../../../../libs/data-access/gn4/src";
|
|
8
8
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -13,7 +13,7 @@ export class SourcesService {
|
|
|
13
13
|
this.sources$ = this.sourcesApiService.getSubPortals1().pipe(shareReplay());
|
|
14
14
|
}
|
|
15
15
|
getSourceLabel(uuid) {
|
|
16
|
-
return this.sources$.pipe(map((sources) => sources.filter((source) => source.uuid === uuid)[0]), filter((source) => !!source), map((source) => source.label[
|
|
16
|
+
return this.sources$.pipe(map((sources) => sources.filter((source) => source.uuid === uuid)[0]), filter((source) => !!source), map((source) => source.label[toLang3(this.translateService.currentLang)]));
|
|
17
17
|
}
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, deps: [{ token: i1.SourcesApiService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
19
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, providedIn: 'root' }); }
|
|
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
24
24
|
providedIn: 'root',
|
|
25
25
|
}]
|
|
26
26
|
}], ctorParameters: () => [{ type: i1.SourcesApiService }, { type: i2.TranslateService }] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2NhdGFsb2cvc3JjL2xpYi9zb3VyY2VzL3NvdXJjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQUs5RCxNQUFNLE9BQU8sY0FBYztJQUt6QixZQUNVLGlCQUFvQyxFQUNwQyxnQkFBa0M7UUFEbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTjVDLGFBQVEsR0FDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUN0QyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBS2xCLENBQUM7SUFFSixjQUFjLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2QixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDckUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDMUUsQ0FBQTtJQUNILENBQUM7K0dBaEJVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTb3VyY2VzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBDYXRhbG9nU291cmNlIH0gZnJvbSAnLi9zb3VyY2VzLm1vZGVsJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU291cmNlc1NlcnZpY2Uge1xuICBzb3VyY2VzJDogT2JzZXJ2YWJsZTxDYXRhbG9nU291cmNlW10+ID0gKFxuICAgIHRoaXMuc291cmNlc0FwaVNlcnZpY2UuZ2V0U3ViUG9ydGFsczEoKSBhcyBPYnNlcnZhYmxlPENhdGFsb2dTb3VyY2VbXT5cbiAgKS5waXBlKHNoYXJlUmVwbGF5KCkpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzb3VyY2VzQXBpU2VydmljZTogU291cmNlc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBnZXRTb3VyY2VMYWJlbCh1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZXMkLnBpcGUoXG4gICAgICBtYXAoKHNvdXJjZXMpID0+IHNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS51dWlkID09PSB1dWlkKVswXSksXG4gICAgICBmaWx0ZXIoKHNvdXJjZSkgPT4gISFzb3VyY2UpLFxuICAgICAgbWFwKChzb3VyY2UpID0+IHNvdXJjZS5sYWJlbFt0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyldKVxuICAgIClcbiAgfVxufVxuIl19
|
|
@@ -115,7 +115,7 @@ export const wrongLanguageCodeConfigFixture = () => `
|
|
|
115
115
|
[global]
|
|
116
116
|
geonetwork4_api_url = "/geonetwork/srv/api"
|
|
117
117
|
proxy_path = "/proxy/?url="
|
|
118
|
-
metadata_language = "
|
|
118
|
+
metadata_language = "abc"
|
|
119
119
|
|
|
120
120
|
[map]
|
|
121
121
|
|
|
@@ -161,4 +161,4 @@ main_font = 'sans-serif'
|
|
|
161
161
|
title_font = 'serif'
|
|
162
162
|
another_color = 'red'
|
|
163
163
|
`;
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0V2QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtBQUV6RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7Ozs7OztDQVU1QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoRCxRQUFRLEVBQUUsRUFBRTtJQUNaLFVBQVUsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO0lBQzNFLDBCQUEwQixFQUFFLEtBQUs7SUFDakMsZUFBZSxFQUFFLEtBQUs7SUFDdEIsNEJBQTRCLEVBQzFCLGdMQUFnTDtJQUNsTCw0QkFBNEIsRUFBRSxJQUFJO0lBQ2xDLFVBQVUsRUFBRTtRQUNWO1lBQ0UsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUsNkJBQTZCO1NBQ25DO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsRUFBRSx5QkFBeUI7WUFDOUIsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QjtRQUNEO1lBQ0UsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUseUJBQXlCO1lBQzlCLElBQUksRUFBRSxnQkFBZ0I7U0FDdkI7S0FDRjtDQUNGLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRSxDQUFDOzs7O0NBSTNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7O0NBTWxELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7OztDQWFuRCxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUNsRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwQ29uZmlnIH0gZnJvbSAnLi9tb2RlbCdcblxuZXhwb3J0IGNvbnN0IG9rQXBwQ29uZmlnRml4dHVyZSA9ICgpID0+IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5tZXRhZGF0YV9sYW5ndWFnZSA9IFwiZnJlXCJcbmxvZ2luX3VybCA9IFwiL2Nhcy9sb2dpbj9zZXJ2aWNlPVwiXG5sb2dvdXRfdXJsID0gXCIvZ2VvbmV0d29yay9zaWdub3V0XCJcbnNldHRpbmdzX3VybCA9IFwiL2dlb25ldHdvcmsvc2V0dGluZ3NcIlxud2ViX2NvbXBvbmVudF9lbWJlZGRlcl91cmwgPSBcIi9kYXRhaHViL3djLWVtYmVkZGVyLmh0bWxcIlxuXG5bbWFwXVxubWF4X3pvb20gPSAxMFxubWF4X2V4dGVudCA9IFstNDE4MjYzLjQxODc3NiwgNTI1MTUyOS41OTEzMDUsIDk2MTI3Mi4wNjc3MTQsIDY3MDY4OTAuNjA5ODU1XVxuZG9fbm90X3VzZV9kZWZhdWx0X2Jhc2VtYXAgPSBmYWxzZVxuZXh0ZXJuYWxfdmlld2VyX3VybF90ZW1wbGF0ZSA9ICdodHRwczovL2V4YW1wbGUuY29tL215dmlld2VyPydcbmV4dGVybmFsX3ZpZXdlcl9vcGVuX25ld190YWIgPSB0cnVlXG5bW21hcF9sYXllcl1dXG50eXBlID0gXCJ3bXNcIlxudXJsID0gXCJodHRwczovL3d3dy5nZW8yZnJhbmNlLmZyL2dlb3NlcnZlci9jcl9oZGYvb3dzXCJcbm5hbWUgPSBcIm1hc3F1ZV9oZGZfaWduX2NhcnRvX2xhdGluMVwiXG5bW21hcF9sYXllcl1dXG50eXBlID0gXCJ3ZnNcIlxudXJsID0gXCJodHRwczovL3d3dy5nZW8yZnJhbmNlLmZyL2dlb3NlcnZlci9jcl9oZGYvb3dzXCJcbm5hbWUgPSBcIm1hc3F1ZV9oZGZfaWduX2NhcnRvX2xhdGluMVwiXG5cblt0aGVtZV1cbnByaW1hcnlfY29sb3IgPSBcIiMwOTM1NjRcIlxuc2Vjb25kYXJ5X2NvbG9yID0gXCIjYzJlOWRjXCJcbm1haW5fY29sb3IgPSBcIiMyMTIwMjlcIiAjIEFsbC1wdXJwb3NlIHRleHQgY29sb3JcbmJhY2tncm91bmRfY29sb3IgPSBcIiNmZGZiZmZcIlxudGh1bWJuYWlsX3BsYWNlaG9sZGVyID0gJ2Fzc2V0cy9pbWcvcGxhY2Vob2xkZXIuc3ZnJ1xuaGVhZGVyX2JhY2tncm91bmQgPSAndGVhbCdcbmhlYWRlcl9mb3JlZ3JvdW5kX2NvbG9yID0gXCIjODcyZTJlXCJcbm1haW5fZm9udCA9ICdzYW5zLXNlcmlmJ1xudGl0bGVfZm9udCA9ICdzZXJpZidcbmZvbnRzX3N0eWxlc2hlZXRfdXJsID0gXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9wZW4rU2Fuc1wiXG5cbltzZWFyY2hdXG5yZWNvcmRfa2luZF9xdWlja19maWx0ZXIgPSBmYWxzZVxuZmlsdGVyX2dlb21ldHJ5X3VybCA9ICdodHRwczovL215LmRvbWFpbi5vcmcvZ2VvbS5qc29uJ1xuYWR2YW5jZWRfZmlsdGVycyA9IFsncHVibGljYXRpb25ZZWFyJywgJ2RvY3VtZW50U3RhbmRhcmQnLCAnaW5zcGlyZUtleXdvcmQnLCAndG9waWMnLCAnbGljZW5zZSddXG5cbltbc2VhcmNoX3ByZXNldF1dXG5zb3J0ID0gXCItY3JlYXRlRGF0ZVwiXG5uYW1lID0gJ2ZpbHRlckJ5T3JncydcbmZpbHRlcnMucSA9ICdDYXJ0bydcbmZpbHRlcnMub3JnYW5pc2F0aW9uID0gWydPcmcxJywgJ09yZzInXVxuZmlsdGVycy5mb3JtYXQgPSBbJ0VTUkkgU2hhcGVmaWxlJ11cbmZpbHRlcnMudG9waWMgPSBbJ2JvdW5kYXJpZXMnXVxuZmlsdGVycy5wdWJsaWNhdGlvblllYXIgPSBbJzIwMjMnLCAnMjAyMiddXG5maWx0ZXJzLnNwYXRpYWwgPSBbJ3llcyddXG5cblt0cmFuc2xhdGlvbnMuZW5dXG5cIm15LmZpcnN0LmtleVwiID0gJ0ZpcnN0IGxhYmVsLidcblwibXkuc2Vjb25kLmtleVwiID0gXCJcIlwiXG5TZWNvbmQgbGFiZWwsXG5vbiB0d28gbGluZXMuXCJcIlwiXG5cblt0cmFuc2xhdGlvbnMuZGVdXG5teS5maXJzdC5rZXkgPSAnRXJzdGUgRXRpa2V0dC4nXG5cblt0cmFuc2xhdGlvbnMuZnJdXG5teS5zYW1wbGUudGV4dCA9IFwiVW4gYm9uIGV4ZW1wbGUgZGUgdGV4dGUuXCJcblwibXkucXVvdGVkLnRleHRcIiA9ICdkdSB0ZXh0ZSBlbnRyZSBndWlsbGVtZW50cy4nXG5gXG5cbmV4cG9ydCBjb25zdCBhcHBDb25maWdXaXRoVHJhbnNsYXRpb25GaXh0dXJlID0gKCkgPT4gb2tBcHBDb25maWdGaXh0dXJlKClcblxuZXhwb3J0IGNvbnN0IG1pbmltYWxBcHBDb25maWdGaXh0dXJlID0gKCkgPT4gYFxuW2dsb2JhbF1cbmdlb25ldHdvcms0X2FwaV91cmwgPSBcIi9nZW9uZXR3b3JrL3Nydi9hcGlcIlxucHJveHlfcGF0aCA9IFwiL3Byb3h5Lz91cmw9XCJcblxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxubWFpbl9jb2xvciA9IFwiIzIxMjAyOVwiICMgQWxsLXB1cnBvc2UgdGV4dCBjb2xvclxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG5gXG5cbmV4cG9ydCBjb25zdCBtYXBDb25maWdGaXh0dXJlID0gKCk6IE1hcENvbmZpZyA9PiAoe1xuICBNQVhfWk9PTTogMTAsXG4gIE1BWF9FWFRFTlQ6IFstNDE4MjYzLjQxODc3NiwgNTI1MTUyOS41OTEzMDUsIDk2MTI3Mi4wNjc3MTQsIDY3MDY4OTAuNjA5ODU1XSxcbiAgRE9fTk9UX1VTRV9ERUZBVUxUX0JBU0VNQVA6IGZhbHNlLFxuICBET19OT1RfVElMRV9XTVM6IGZhbHNlLFxuICBFWFRFUk5BTF9WSUVXRVJfVVJMX1RFTVBMQVRFOlxuICAgICdodHRwczovL2V4YW1wbGUuY29tL215dmlld2VyLyMvP2FjdGlvbnM9W3tcInR5cGVcIjpcIkNBVEFMT0c6QUREX0xBWUVSU19GUk9NX0NBVEFMT0dTXCIsXCJsYXllcnNcIjpbXCIke2xheWVyX25hbWV9XCJdLFwic291cmNlc1wiOlt7XCJ1cmxcIjpcIiR7c2VydmljZV91cmx9XCIsXCJ0eXBlXCI6XCIke3NlcnZpY2VfdHlwZX1cIn1dfV0nLFxuICBFWFRFUk5BTF9WSUVXRVJfT1BFTl9ORVdfVEFCOiB0cnVlLFxuICBNQVBfTEFZRVJTOiBbXG4gICAge1xuICAgICAgVFlQRTogJ3h5eicsXG4gICAgICBVUkw6ICdodHRwczovL3NvbWUtYmFzZW1hcC1zZXJ2ZXInLFxuICAgIH0sXG4gICAge1xuICAgICAgVFlQRTogJ3dtcycsXG4gICAgICBVUkw6ICdodHRwczovL3NvbWUtd21zLXNlcnZlcicsXG4gICAgICBOQU1FOiAnc29tZV9sYXllcm5hbWUnLFxuICAgIH0sXG4gICAge1xuICAgICAgVFlQRTogJ3dmcycsXG4gICAgICBVUkw6ICdodHRwczovL3NvbWUtd2ZzLXNlcnZlcicsXG4gICAgICBOQU1FOiAnc29tZV9sYXllcm5hbWUnLFxuICAgIH0sXG4gIF0sXG59KVxuXG5leHBvcnQgY29uc3QgbWFsZm9ybWVkQ29uZmlnRml4dHVyZSA9ICgpID0+
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0V2QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtBQUV6RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7Ozs7OztDQVU1QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoRCxRQUFRLEVBQUUsRUFBRTtJQUNaLFVBQVUsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO0lBQzNFLDBCQUEwQixFQUFFLEtBQUs7SUFDakMsZUFBZSxFQUFFLEtBQUs7SUFDdEIsNEJBQTRCLEVBQzFCLGdMQUFnTDtJQUNsTCw0QkFBNEIsRUFBRSxJQUFJO0lBQ2xDLFVBQVUsRUFBRTtRQUNWO1lBQ0UsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUsNkJBQTZCO1NBQ25DO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsRUFBRSx5QkFBeUI7WUFDOUIsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QjtRQUNEO1lBQ0UsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUseUJBQXlCO1lBQzlCLElBQUksRUFBRSxnQkFBZ0I7U0FDdkI7S0FDRjtDQUNGLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRSxDQUFDOzs7O0NBSTNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7O0NBTWxELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7OztDQWFuRCxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUNsRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwQ29uZmlnIH0gZnJvbSAnLi9tb2RlbCdcblxuZXhwb3J0IGNvbnN0IG9rQXBwQ29uZmlnRml4dHVyZSA9ICgpID0+IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5tZXRhZGF0YV9sYW5ndWFnZSA9IFwiZnJlXCJcbmxvZ2luX3VybCA9IFwiL2Nhcy9sb2dpbj9zZXJ2aWNlPVwiXG5sb2dvdXRfdXJsID0gXCIvZ2VvbmV0d29yay9zaWdub3V0XCJcbnNldHRpbmdzX3VybCA9IFwiL2dlb25ldHdvcmsvc2V0dGluZ3NcIlxud2ViX2NvbXBvbmVudF9lbWJlZGRlcl91cmwgPSBcIi9kYXRhaHViL3djLWVtYmVkZGVyLmh0bWxcIlxuXG5bbWFwXVxubWF4X3pvb20gPSAxMFxubWF4X2V4dGVudCA9IFstNDE4MjYzLjQxODc3NiwgNTI1MTUyOS41OTEzMDUsIDk2MTI3Mi4wNjc3MTQsIDY3MDY4OTAuNjA5ODU1XVxuZG9fbm90X3VzZV9kZWZhdWx0X2Jhc2VtYXAgPSBmYWxzZVxuZXh0ZXJuYWxfdmlld2VyX3VybF90ZW1wbGF0ZSA9ICdodHRwczovL2V4YW1wbGUuY29tL215dmlld2VyPydcbmV4dGVybmFsX3ZpZXdlcl9vcGVuX25ld190YWIgPSB0cnVlXG5bW21hcF9sYXllcl1dXG50eXBlID0gXCJ3bXNcIlxudXJsID0gXCJodHRwczovL3d3dy5nZW8yZnJhbmNlLmZyL2dlb3NlcnZlci9jcl9oZGYvb3dzXCJcbm5hbWUgPSBcIm1hc3F1ZV9oZGZfaWduX2NhcnRvX2xhdGluMVwiXG5bW21hcF9sYXllcl1dXG50eXBlID0gXCJ3ZnNcIlxudXJsID0gXCJodHRwczovL3d3dy5nZW8yZnJhbmNlLmZyL2dlb3NlcnZlci9jcl9oZGYvb3dzXCJcbm5hbWUgPSBcIm1hc3F1ZV9oZGZfaWduX2NhcnRvX2xhdGluMVwiXG5cblt0aGVtZV1cbnByaW1hcnlfY29sb3IgPSBcIiMwOTM1NjRcIlxuc2Vjb25kYXJ5X2NvbG9yID0gXCIjYzJlOWRjXCJcbm1haW5fY29sb3IgPSBcIiMyMTIwMjlcIiAjIEFsbC1wdXJwb3NlIHRleHQgY29sb3JcbmJhY2tncm91bmRfY29sb3IgPSBcIiNmZGZiZmZcIlxudGh1bWJuYWlsX3BsYWNlaG9sZGVyID0gJ2Fzc2V0cy9pbWcvcGxhY2Vob2xkZXIuc3ZnJ1xuaGVhZGVyX2JhY2tncm91bmQgPSAndGVhbCdcbmhlYWRlcl9mb3JlZ3JvdW5kX2NvbG9yID0gXCIjODcyZTJlXCJcbm1haW5fZm9udCA9ICdzYW5zLXNlcmlmJ1xudGl0bGVfZm9udCA9ICdzZXJpZidcbmZvbnRzX3N0eWxlc2hlZXRfdXJsID0gXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9wZW4rU2Fuc1wiXG5cbltzZWFyY2hdXG5yZWNvcmRfa2luZF9xdWlja19maWx0ZXIgPSBmYWxzZVxuZmlsdGVyX2dlb21ldHJ5X3VybCA9ICdodHRwczovL215LmRvbWFpbi5vcmcvZ2VvbS5qc29uJ1xuYWR2YW5jZWRfZmlsdGVycyA9IFsncHVibGljYXRpb25ZZWFyJywgJ2RvY3VtZW50U3RhbmRhcmQnLCAnaW5zcGlyZUtleXdvcmQnLCAndG9waWMnLCAnbGljZW5zZSddXG5cbltbc2VhcmNoX3ByZXNldF1dXG5zb3J0ID0gXCItY3JlYXRlRGF0ZVwiXG5uYW1lID0gJ2ZpbHRlckJ5T3JncydcbmZpbHRlcnMucSA9ICdDYXJ0bydcbmZpbHRlcnMub3JnYW5pc2F0aW9uID0gWydPcmcxJywgJ09yZzInXVxuZmlsdGVycy5mb3JtYXQgPSBbJ0VTUkkgU2hhcGVmaWxlJ11cbmZpbHRlcnMudG9waWMgPSBbJ2JvdW5kYXJpZXMnXVxuZmlsdGVycy5wdWJsaWNhdGlvblllYXIgPSBbJzIwMjMnLCAnMjAyMiddXG5maWx0ZXJzLnNwYXRpYWwgPSBbJ3llcyddXG5cblt0cmFuc2xhdGlvbnMuZW5dXG5cIm15LmZpcnN0LmtleVwiID0gJ0ZpcnN0IGxhYmVsLidcblwibXkuc2Vjb25kLmtleVwiID0gXCJcIlwiXG5TZWNvbmQgbGFiZWwsXG5vbiB0d28gbGluZXMuXCJcIlwiXG5cblt0cmFuc2xhdGlvbnMuZGVdXG5teS5maXJzdC5rZXkgPSAnRXJzdGUgRXRpa2V0dC4nXG5cblt0cmFuc2xhdGlvbnMuZnJdXG5teS5zYW1wbGUudGV4dCA9IFwiVW4gYm9uIGV4ZW1wbGUgZGUgdGV4dGUuXCJcblwibXkucXVvdGVkLnRleHRcIiA9ICdkdSB0ZXh0ZSBlbnRyZSBndWlsbGVtZW50cy4nXG5gXG5cbmV4cG9ydCBjb25zdCBhcHBDb25maWdXaXRoVHJhbnNsYXRpb25GaXh0dXJlID0gKCkgPT4gb2tBcHBDb25maWdGaXh0dXJlKClcblxuZXhwb3J0IGNvbnN0IG1pbmltYWxBcHBDb25maWdGaXh0dXJlID0gKCkgPT4gYFxuW2dsb2JhbF1cbmdlb25ldHdvcms0X2FwaV91cmwgPSBcIi9nZW9uZXR3b3JrL3Nydi9hcGlcIlxucHJveHlfcGF0aCA9IFwiL3Byb3h5Lz91cmw9XCJcblxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxubWFpbl9jb2xvciA9IFwiIzIxMjAyOVwiICMgQWxsLXB1cnBvc2UgdGV4dCBjb2xvclxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG5gXG5cbmV4cG9ydCBjb25zdCBtYXBDb25maWdGaXh0dXJlID0gKCk6IE1hcENvbmZpZyA9PiAoe1xuICBNQVhfWk9PTTogMTAsXG4gIE1BWF9FWFRFTlQ6IFstNDE4MjYzLjQxODc3NiwgNTI1MTUyOS41OTEzMDUsIDk2MTI3Mi4wNjc3MTQsIDY3MDY4OTAuNjA5ODU1XSxcbiAgRE9fTk9UX1VTRV9ERUZBVUxUX0JBU0VNQVA6IGZhbHNlLFxuICBET19OT1RfVElMRV9XTVM6IGZhbHNlLFxuICBFWFRFUk5BTF9WSUVXRVJfVVJMX1RFTVBMQVRFOlxuICAgICdodHRwczovL2V4YW1wbGUuY29tL215dmlld2VyLyMvP2FjdGlvbnM9W3tcInR5cGVcIjpcIkNBVEFMT0c6QUREX0xBWUVSU19GUk9NX0NBVEFMT0dTXCIsXCJsYXllcnNcIjpbXCIke2xheWVyX25hbWV9XCJdLFwic291cmNlc1wiOlt7XCJ1cmxcIjpcIiR7c2VydmljZV91cmx9XCIsXCJ0eXBlXCI6XCIke3NlcnZpY2VfdHlwZX1cIn1dfV0nLFxuICBFWFRFUk5BTF9WSUVXRVJfT1BFTl9ORVdfVEFCOiB0cnVlLFxuICBNQVBfTEFZRVJTOiBbXG4gICAge1xuICAgICAgVFlQRTogJ3h5eicsXG4gICAgICBVUkw6ICdodHRwczovL3NvbWUtYmFzZW1hcC1zZXJ2ZXInLFxuICAgIH0sXG4gICAge1xuICAgICAgVFlQRTogJ3dtcycsXG4gICAgICBVUkw6ICdodHRwczovL3NvbWUtd21zLXNlcnZlcicsXG4gICAgICBOQU1FOiAnc29tZV9sYXllcm5hbWUnLFxuICAgIH0sXG4gICAge1xuICAgICAgVFlQRTogJ3dmcycsXG4gICAgICBVUkw6ICdodHRwczovL3NvbWUtd2ZzLXNlcnZlcicsXG4gICAgICBOQU1FOiAnc29tZV9sYXllcm5hbWUnLFxuICAgIH0sXG4gIF0sXG59KVxuXG5leHBvcnQgY29uc3QgbWFsZm9ybWVkQ29uZmlnRml4dHVyZSA9ICgpID0+IGBcbntcbiAgXCJJIHRob3VnaHRcIjogXCJ3ZSB3ZXJlIHN0aWxsIGRvaW5nIGpzb25cIlxufVxuYFxuXG5leHBvcnQgY29uc3QgbWlzc2luZ01hbmRhdG9yeUNvbmZpZ0ZpeHR1cmUgPSAoKSA9PiBgXG5bdGhlbWVdXG5wcmltYXJ5X2NvbG9yID0gXCIjMDkzNTY0XCJcbnNlY29uZGFyeV9jb2xvciA9IFwiI2MyZTlkY1wiXG5iYWNrZ3JvdW5kX2NvbG9yID0gXCIjZmRmYmZmXCJcbm1haW5fZm9udCA9ICdzYW5zLXNlcmlmJ1xuYFxuXG5leHBvcnQgY29uc3Qgd3JvbmdMYW5ndWFnZUNvZGVDb25maWdGaXh0dXJlID0gKCkgPT4gYFxuW2dsb2JhbF1cbmdlb25ldHdvcms0X2FwaV91cmwgPSBcIi9nZW9uZXR3b3JrL3Nydi9hcGlcIlxucHJveHlfcGF0aCA9IFwiL3Byb3h5Lz91cmw9XCJcbm1ldGFkYXRhX2xhbmd1YWdlID0gXCJhYmNcIlxuXG5bbWFwXVxuXG5bdGhlbWVdXG5wcmltYXJ5X2NvbG9yID0gXCIjMDkzNTY0XCJcbnNlY29uZGFyeV9jb2xvciA9IFwiI2MyZTlkY1wiXG5tYWluX2NvbG9yID0gXCIjMjEyMDI5XCIgIyBBbGwtcHVycG9zZSB0ZXh0IGNvbG9yXG5iYWNrZ3JvdW5kX2NvbG9yID0gXCIjZmRmYmZmXCJcbmBcblxuZXhwb3J0IGNvbnN0IHVucmVjb2duaXplZEtleXNDb25maWdGaXh0dXJlID0gKCkgPT4gYFxuW2dsb2JhbF1cbmdlb25ldHdvcms0X2FwaV91cmwgPSBcIi9nZW9uZXR3b3JrL3Nydi9hcGlcIlxucHJveHlfcGF0aCA9IFwiL3Byb3h5Lz91cmw9XCJcbm1ldGFkYXRhX2xhbmd1YWdlID0gXCJmcmVcIlxuYW5vdGhlcl9wYXRoID0gJy93aGF0ZXZlcidcblxuW21hcF1cbm1heF96b29tID0gMTBcbm1heF9leHRlbnQgPSBbLTQxODI2My40MTg3NzYsIDUyNTE1MjkuNTkxMzA1LCA5NjEyNzIuMDY3NzE0LCA2NzA2ODkwLjYwOTg1NV1cbmRvX25vdF91c2VfZGVmYXVsdF9iYXNlbWFwID0gZmFsc2VcbmV4dGVybmFsX3ZpZXdlcl91cmxfdGVtcGxhdGUgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9teXZpZXdlcj8nXG5leHRlcm5hbF92aWV3ZXJfb3Blbl9uZXdfdGFiID0gdHJ1ZVxuYW5vdGhlcl96b29tID0gMTVcbltbbWFwX2xheWVyXV1cbnR5cGUgPSBcIndtc1wiXG51cmwgPSBcImh0dHBzOi8vd3d3LmdlbzJmcmFuY2UuZnIvZ2Vvc2VydmVyL2NyX2hkZi9vd3NcIlxubmFtZSA9IFwibWFzcXVlX2hkZl9pZ25fY2FydG9fbGF0aW4xXCJcbltbbWFwX2xheWVyXV1cbnR5cGUgPSBcIndmc1wiXG51cmwgPSBcImh0dHBzOi8vd3d3LmdlbzJmcmFuY2UuZnIvZ2Vvc2VydmVyL2NyX2hkZi9vd3NcIlxubmFtZSA9IFwibWFzcXVlX2hkZl9pZ25fY2FydG9fbGF0aW4xXCJcbmFub3RoZXJfbGF5ZXIgPSBcIndyb25nIGxheWVyIGRlZmluaXRpb25cIlxuXG5bdGhlbWVdXG5wcmltYXJ5X2NvbG9yID0gXCIjMDkzNTY0XCJcbnNlY29uZGFyeV9jb2xvciA9IFwiI2MyZTlkY1wiXG5tYWluX2NvbG9yID0gXCIjMjEyMDI5XCIgIyBBbGwtcHVycG9zZSB0ZXh0IGNvbG9yXG5iYWNrZ3JvdW5kX2NvbG9yID0gXCIjZmRmYmZmXCJcbnRodW1ibmFpbF9wbGFjZWhvbGRlciA9ICdhc3NldHMvaW1nL3BsYWNlaG9sZGVyLnN2ZydcbmhlYWRlcl9iYWNrZ3JvdW5kID0gJ3RlYWwnXG5oZWFkZXJfZm9yZWdyb3VuZF9jb2xvciA9IFwiIzg3MmUyZVwiXG5tYWluX2ZvbnQgPSAnc2Fucy1zZXJpZidcbnRpdGxlX2ZvbnQgPSAnc2VyaWYnXG5hbm90aGVyX2NvbG9yID0gJ3JlZCdcbmBcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toLang2 } from '../../../../../libs/util/i18n/src';
|
|
2
2
|
const flatten = (base, obj, keepLevel = false) => Object.keys(obj).reduce((prev, curr) => {
|
|
3
3
|
const path = base ? `${base}.${curr}` : curr;
|
|
4
4
|
const val = obj[curr];
|
|
@@ -80,9 +80,10 @@ export function parseMultiConfigSection(fullConfigObj, sectionName, mandatoryKey
|
|
|
80
80
|
return result;
|
|
81
81
|
}
|
|
82
82
|
export function checkMetadataLanguage(parsedConfigSection, outWarnings) {
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
const lang2 = toLang2(parsedConfigSection.metadata_language.toLowerCase());
|
|
84
|
+
if (lang2?.length !== 2) {
|
|
85
|
+
outWarnings.push(`In the [global] section: metadata_language = "${parsedConfigSection.metadata_language}" is not a recognized ISO 639 language code`);
|
|
85
86
|
}
|
|
86
87
|
return parsedConfigSection;
|
|
87
88
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL3BhcnNlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVsRCxNQUFNLE9BQU8sR0FBRyxDQUNkLElBQVksRUFDWixHQUE0QixFQUM1QixTQUFTLEdBQUcsS0FBSyxFQUNqQixFQUFFLENBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQzVDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNyQixJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUE4QixDQUFDLEVBQUUsQ0FBQTtJQUN6RSxDQUFDO1NBQU0sSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUQsT0FBTztZQUNMLEdBQUcsSUFBSTtZQUNQLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxHQUE4QixDQUFDO1NBQ2pELENBQUE7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBO0lBQ2pDLENBQUM7QUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7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LENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxXQUFXLGdDQUFnQyxDQUFDLENBQUE7UUFDekUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3RDLGtCQUFrQixDQUNoQixFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQzFCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWCxTQUFTLENBQ1YsQ0FDRixDQUFBO0lBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLG1CQUF3QixFQUN4QixXQUFxQjtJQUVyQixJQUNFLG9CQUFvQixDQUFDLE9BQU8sQ0FDMUIsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQ3BELEtBQUssQ0FBQyxDQUFDLEVBQ1IsQ0FBQztRQUNELFdBQVcsQ0FBQyxJQUFJLENBQ2QsaURBQWlELG1CQUFtQixDQUFDLGlCQUFpQixnQ0FBZ0MsQ0FDdkgsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLG1CQUFtQixDQUFBO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMQU5HVUFHRV9DT0RFU19JU09fMyB9IGZyb20gJy4vY29uc3RhbnRzJ1xuXG5jb25zdCBmbGF0dGVuID0gKFxuICBiYXNlOiBzdHJpbmcsXG4gIG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGtlZXBMZXZlbCA9IGZhbHNlXG4pID0+XG4gIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGJhc2UgPyBgJHtiYXNlfS4ke2N1cnJ9YCA6IGN1cnJcbiAgICBjb25zdCB2YWwgPSBvYmpbY3Vycl1cbiAgICBpZiAoa2VlcExldmVsKSB7XG4gICAgICByZXR1cm4geyAuLi5wcmV2LCBbcGF0aF06IGZsYXR0ZW4oJycsIHZhbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgLi4uZmxhdHRlbihwYXRoLCB2YWwgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyAuLi5wcmV2LCBbcGF0aF06IHZhbCB9XG4gICAgfVxuICB9LCB7fSlcblxuY29uc3QgY2hlY2tLZXlzID0gKFxuICBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgbWFuZGF0b3J5OiBzdHJpbmdbXSxcbiAgb3B0aW9uYWw6IHN0cmluZ1tdXG4pID0+IHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGlucHV0KVxuICBjb25zdCBtaXNzaW5nID0gbWFuZGF0b3J5LmZpbHRlcigoa2V5KSA9PiBrZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpXG4gIGNvbnN0IHVucmVjb2duaXplZCA9IGtleXMuZmlsdGVyKFxuICAgIChrZXkpID0+IG1hbmRhdG9yeS5pbmRleE9mKGtleSkgPT09IC0xICYmIG9wdGlvbmFsLmluZGV4T2Yoa2V5KSA9PT0gLTFcbiAgKVxuICByZXR1cm4ge1xuICAgIG1pc3NpbmcsXG4gICAgdW5yZWNvZ25pemVkLFxuICB9XG59XG5cbi8qKlxuICogT25seSBrZWVwcyByZWNvZ25pemVkIGtleXMsIGZsYXR0ZW4gbmVzdGVkIHZhbHVlcyAodG8gYWxsb3cgaGF2aW5nIFwiLlwiIGluIGtleXMpLFxuICogcHVzaGVzIHdhcm5pbmdzIGFuZCBlcnJvcnMgdG8gdGhlIGdpdmVuIGFycmF5czsgcmV0dXJucyBudWxsIGluIGNhc2Ugb2YgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29uZmlnU2VjdGlvbihcbiAgZnVsbENvbmZpZ09iajogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+LFxuICBzZWN0aW9uTmFtZTogc3RyaW5nLFxuICBtYW5kYXRvcnlLZXlzOiBzdHJpbmdbXSxcbiAgb3B0aW9uYWxLZXlzOiBzdHJpbmdbXSxcbiAgb3V0V2FybmluZ3M6IHN0cmluZ1tdLFxuICBvdXRFcnJvcnM6IHN0cmluZ1tdXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwge1xuICBpZiAodHlwZW9mIGZ1bGxDb25maWdPYmpbc2VjdGlvbk5hbWVdICE9PSAnb2JqZWN0Jykge1xuICAgIGlmIChtYW5kYXRvcnlLZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGxcbiAgICBvdXRFcnJvcnMucHVzaChgVGhlIFske3NlY3Rpb25OYW1lfV0gbWFuZGF0b3J5IHNlY3Rpb24gaXMgbWlzc2luZy5gKVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBzZWN0aW9uQ29uZiA9IGZ1bGxDb25maWdPYmpbc2VjdGlvbk5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgY29uc3Qga2V5c0NoZWNrID0gY2hlY2tLZXlzKHNlY3Rpb25Db25mLCBtYW5kYXRvcnlLZXlzLCBvcHRpb25hbEtleXMpXG5cbiAgaWYgKGtleXNDaGVjay5taXNzaW5nLmxlbmd0aCkge1xuICAgIC8vIG5vdGU6IHRoaXMgaXMgbm90IHRocm93biB0byBhbGxvdyBtZXJnaW5nIHNldmVyYWwgRXJyb3JzIGRvd24gdGhlIGxpbmVcbiAgICBvdXRFcnJvcnMucHVzaChcbiAgICAgIGBJbiB0aGUgWyR7c2VjdGlvbk5hbWV9XSBzZWN0aW9uOiAke2tleXNDaGVjay5taXNzaW5nLmpvaW4oJywgJyl9YFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9IGVsc2UgaWYgKGtleXNDaGVjay51bnJlY29nbml6ZWQubGVuZ3RoKSB7XG4gICAgb3V0V2FybmluZ3MucHVzaChcbiAgICAgIGBJbiB0aGUgWyR7c2VjdGlvbk5hbWV9XSBzZWN0aW9uOiAke2tleXNDaGVjay51bnJlY29nbml6ZWQuam9pbignLCAnKX1gXG4gICAgKVxuICAgIGtleXNDaGVjay51bnJlY29nbml6ZWQuZm9yRWFjaCgoa2V5KSA9PiBkZWxldGUgc2VjdGlvbkNvbmZba2V5XSlcbiAgfVxuXG4gIHJldHVybiBzZWN0aW9uQ29uZlxufVxuXG4vKipcbiAqIFNhbWUgYXMgcGFyc2VDb25maWdTZWN0aW9uIGJ1dCBrZWVwcyBhbGwga2V5cywgcmVjb2duaXplZCBvciBub3RcbiAqIEFsc28gdGhlIGZpcnN0IGxldmVsIGlzIHRoZSBsYW5ndWFnZSBjb2RlIChlLmcuICdlbicpXG4gKiBUaGlzIGlzIG9wdGlvbmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRyYW5zbGF0aW9uc0NvbmZpZ1NlY3Rpb24oXG4gIGZ1bGxDb25maWdPYmo6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PixcbiAgc2VjdGlvbk5hbWU6IHN0cmluZ1xuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBpZiAodHlwZW9mIGZ1bGxDb25maWdPYmpbc2VjdGlvbk5hbWVdICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiB7fVxuICB9XG4gIHJldHVybiBmbGF0dGVuKCcnLCBmdWxsQ29uZmlnT2JqW3NlY3Rpb25OYW1lXSwgdHJ1ZSlcbn1cblxuLyoqXG4gKiBTYW1lIGFzIHBhcnNlQ29uZmlnU2VjdGlvbiBidXQgaGFuZGxlcyBhbiBhcnJheSBvZiBjb25maWdzOyB0aGlzIGlzXG4gKiBjb25zaWRlcmVkIG9wdGlvbmFsOyByZXR1cm5zIG51bGwgaW4gY2FzZSBvZiBlcnJvciBpbiBhdCBsZWFzdCBvbmUgb2ZcbiAqIHRoZSBzZWN0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VNdWx0aUNvbmZpZ1NlY3Rpb24oXG4gIGZ1bGxDb25maWdPYmo6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+LFxuICBzZWN0aW9uTmFtZTogc3RyaW5nLFxuICBtYW5kYXRvcnlLZXlzOiBzdHJpbmdbXSxcbiAgb3B0aW9uYWxLZXlzOiBzdHJpbmdbXSxcbiAgb3V0V2FybmluZ3M6IHN0cmluZ1tdLFxuICBvdXRFcnJvcnM6IHN0cmluZ1tdXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIHwgbnVsbCB7XG4gIGNvbnN0IHNlY3Rpb25zID0gZnVsbENvbmZpZ09ialtzZWN0aW9uTmFtZV1cbiAgaWYgKCFzZWN0aW9ucykge1xuICAgIHJldHVybiBbXVxuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheShzZWN0aW9ucykpIHtcbiAgICBvdXRFcnJvcnMucHVzaChgRXhwZWN0ZWQgW1ske3NlY3Rpb25OYW1lfV1dIHRvIGJlIGFuIGFycmF5IG9mIHNlY3Rpb25zLmApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCByZXN1bHQgPSBzZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+XG4gICAgcGFyc2VDb25maWdTZWN0aW9uKFxuICAgICAgeyBbc2VjdGlvbk5hbWVdOiBzZWN0aW9uIH0sXG4gICAgICBzZWN0aW9uTmFtZSxcbiAgICAgIG1hbmRhdG9yeUtleXMsXG4gICAgICBvcHRpb25hbEtleXMsXG4gICAgICBvdXRXYXJuaW5ncyxcbiAgICAgIG91dEVycm9yc1xuICAgIClcbiAgKVxuICBpZiAocmVzdWx0LnNvbWUoKHIpID0+IHIgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja01ldGFkYXRhTGFuZ3VhZ2UoXG4gIHBhcnNlZENvbmZpZ1NlY3Rpb246IGFueSxcbiAgb3V0V2FybmluZ3M6IHN0cmluZ1tdXG4pIHtcbiAgaWYgKFxuICAgIExBTkdVQUdFX0NPREVTX0lTT18zLmluZGV4T2YoXG4gICAgICBwYXJzZWRDb25maWdTZWN0aW9uLm1ldGFkYXRhX2xhbmd1YWdlLnRvTG93ZXJDYXNlKClcbiAgICApID09PSAtMVxuICApIHtcbiAgICBvdXRXYXJuaW5ncy5wdXNoKFxuICAgICAgYEluIHRoZSBbZ2xvYmFsXSBzZWN0aW9uOiBtZXRhZGF0YV9sYW5ndWFnZSA9IFwiJHtwYXJzZWRDb25maWdTZWN0aW9uLm1ldGFkYXRhX2xhbmd1YWdlfVwiIGlzIG5vdCBpbiBJU08gNjM5LTIvQiBmb3JtYXRgXG4gICAgKVxuICB9XG4gIHJldHVybiBwYXJzZWRDb25maWdTZWN0aW9uXG59XG4iXX0=
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL3BhcnNlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUUzRCxNQUFNLE9BQU8sR0FBRyxDQUNkLElBQVksRUFDWixHQUE0QixFQUM1QixTQUFTLEdBQUcsS0FBSyxFQUNqQixFQUFFLENBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQzVDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNyQixJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUE4QixDQUFDLEVBQUUsQ0FBQTtJQUN6RSxDQUFDO1NBQU0sSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUQsT0FBTztZQUNMLEdBQUcsSUFBSTtZQUNQLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxHQUE4QixDQUFDO1NBQ2pELENBQUE7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBO0lBQ2pDLENBQUM7QUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7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LENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxXQUFXLGdDQUFnQyxDQUFDLENBQUE7UUFDekUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3RDLGtCQUFrQixDQUNoQixFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQzFCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWCxTQUFTLENBQ1YsQ0FDRixDQUFBO0lBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLG1CQUF3QixFQUN4QixXQUFxQjtJQUVyQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUMxRSxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsV0FBVyxDQUFDLElBQUksQ0FDZCxpREFBaUQsbUJBQW1CLENBQUMsaUJBQWlCLDZDQUE2QyxDQUNwSSxDQUFBO0lBQ0gsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUE7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvTGFuZzIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5cbmNvbnN0IGZsYXR0ZW4gPSAoXG4gIGJhc2U6IHN0cmluZyxcbiAgb2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAga2VlcExldmVsID0gZmFsc2VcbikgPT5cbiAgT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICBjb25zdCBwYXRoID0gYmFzZSA/IGAke2Jhc2V9LiR7Y3Vycn1gIDogY3VyclxuICAgIGNvbnN0IHZhbCA9IG9ialtjdXJyXVxuICAgIGlmIChrZWVwTGV2ZWwpIHtcbiAgICAgIHJldHVybiB7IC4uLnByZXYsIFtwYXRoXTogZmxhdHRlbignJywgdmFsIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICAuLi5mbGF0dGVuKHBhdGgsIHZhbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IC4uLnByZXYsIFtwYXRoXTogdmFsIH1cbiAgICB9XG4gIH0sIHt9KVxuXG5jb25zdCBjaGVja0tleXMgPSAoXG4gIGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBtYW5kYXRvcnk6IHN0cmluZ1tdLFxuICBvcHRpb25hbDogc3RyaW5nW11cbikgPT4ge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoaW5wdXQpXG4gIGNvbnN0IG1pc3NpbmcgPSBtYW5kYXRvcnkuZmlsdGVyKChrZXkpID0+IGtleXMuaW5kZXhPZihrZXkpID09PSAtMSlcbiAgY29uc3QgdW5yZWNvZ25pemVkID0ga2V5cy5maWx0ZXIoXG4gICAgKGtleSkgPT4gbWFuZGF0b3J5LmluZGV4T2Yoa2V5KSA9PT0gLTEgJiYgb3B0aW9uYWwuaW5kZXhPZihrZXkpID09PSAtMVxuICApXG4gIHJldHVybiB7XG4gICAgbWlzc2luZyxcbiAgICB1bnJlY29nbml6ZWQsXG4gIH1cbn1cblxuLyoqXG4gKiBPbmx5IGtlZXBzIHJlY29nbml6ZWQga2V5cywgZmxhdHRlbiBuZXN0ZWQgdmFsdWVzICh0byBhbGxvdyBoYXZpbmcgXCIuXCIgaW4ga2V5cyksXG4gKiBwdXNoZXMgd2FybmluZ3MgYW5kIGVycm9ycyB0byB0aGUgZ2l2ZW4gYXJyYXlzOyByZXR1cm5zIG51bGwgaW4gY2FzZSBvZiBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb25maWdTZWN0aW9uKFxuICBmdWxsQ29uZmlnT2JqOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sXG4gIHNlY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG1hbmRhdG9yeUtleXM6IHN0cmluZ1tdLFxuICBvcHRpb25hbEtleXM6IHN0cmluZ1tdLFxuICBvdXRXYXJuaW5nczogc3RyaW5nW10sXG4gIG91dEVycm9yczogc3RyaW5nW11cbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgZnVsbENvbmZpZ09ialtzZWN0aW9uTmFtZV0gIT09ICdvYmplY3QnKSB7XG4gICAgaWYgKG1hbmRhdG9yeUtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbFxuICAgIG91dEVycm9ycy5wdXNoKGBUaGUgWyR7c2VjdGlvbk5hbWV9XSBtYW5kYXRvcnkgc2VjdGlvbiBpcyBtaXNzaW5nLmApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHNlY3Rpb25Db25mID0gZnVsbENvbmZpZ09ialtzZWN0aW9uTmFtZV0gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICBjb25zdCBrZXlzQ2hlY2sgPSBjaGVja0tleXMoc2VjdGlvbkNvbmYsIG1hbmRhdG9yeUtleXMsIG9wdGlvbmFsS2V5cylcblxuICBpZiAoa2V5c0NoZWNrLm1pc3NpbmcubGVuZ3RoKSB7XG4gICAgLy8gbm90ZTogdGhpcyBpcyBub3QgdGhyb3duIHRvIGFsbG93IG1lcmdpbmcgc2V2ZXJhbCBFcnJvcnMgZG93biB0aGUgbGluZVxuICAgIG91dEVycm9ycy5wdXNoKFxuICAgICAgYEluIHRoZSBbJHtzZWN0aW9uTmFtZX1dIHNlY3Rpb246ICR7a2V5c0NoZWNrLm1pc3Npbmcuam9pbignLCAnKX1gXG4gICAgKVxuICAgIHJldHVybiBudWxsXG4gIH0gZWxzZSBpZiAoa2V5c0NoZWNrLnVucmVjb2duaXplZC5sZW5ndGgpIHtcbiAgICBvdXRXYXJuaW5ncy5wdXNoKFxuICAgICAgYEluIHRoZSBbJHtzZWN0aW9uTmFtZX1dIHNlY3Rpb246ICR7a2V5c0NoZWNrLnVucmVjb2duaXplZC5qb2luKCcsICcpfWBcbiAgICApXG4gICAga2V5c0NoZWNrLnVucmVjb2duaXplZC5mb3JFYWNoKChrZXkpID0+IGRlbGV0ZSBzZWN0aW9uQ29uZltrZXldKVxuICB9XG5cbiAgcmV0dXJuIHNlY3Rpb25Db25mXG59XG5cbi8qKlxuICogU2FtZSBhcyBwYXJzZUNvbmZpZ1NlY3Rpb24gYnV0IGtlZXBzIGFsbCBrZXlzLCByZWNvZ25pemVkIG9yIG5vdFxuICogQWxzbyB0aGUgZmlyc3QgbGV2ZWwgaXMgdGhlIGxhbmd1YWdlIGNvZGUgKGUuZy4gJ2VuJylcbiAqIFRoaXMgaXMgb3B0aW9uYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVHJhbnNsYXRpb25zQ29uZmlnU2VjdGlvbihcbiAgZnVsbENvbmZpZ09iajogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+LFxuICBzZWN0aW9uTmFtZTogc3RyaW5nXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIGlmICh0eXBlb2YgZnVsbENvbmZpZ09ialtzZWN0aW9uTmFtZV0gIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHt9XG4gIH1cbiAgcmV0dXJuIGZsYXR0ZW4oJycsIGZ1bGxDb25maWdPYmpbc2VjdGlvbk5hbWVdLCB0cnVlKVxufVxuXG4vKipcbiAqIFNhbWUgYXMgcGFyc2VDb25maWdTZWN0aW9uIGJ1dCBoYW5kbGVzIGFuIGFycmF5IG9mIGNvbmZpZ3M7IHRoaXMgaXNcbiAqIGNvbnNpZGVyZWQgb3B0aW9uYWw7IHJldHVybnMgbnVsbCBpbiBjYXNlIG9mIGVycm9yIGluIGF0IGxlYXN0IG9uZSBvZlxuICogdGhlIHNlY3Rpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU11bHRpQ29uZmlnU2VjdGlvbihcbiAgZnVsbENvbmZpZ09iajogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4sXG4gIHNlY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG1hbmRhdG9yeUtleXM6IHN0cmluZ1tdLFxuICBvcHRpb25hbEtleXM6IHN0cmluZ1tdLFxuICBvdXRXYXJuaW5nczogc3RyaW5nW10sXG4gIG91dEVycm9yczogc3RyaW5nW11cbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gfCBudWxsIHtcbiAgY29uc3Qgc2VjdGlvbnMgPSBmdWxsQ29uZmlnT2JqW3NlY3Rpb25OYW1lXVxuICBpZiAoIXNlY3Rpb25zKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgaWYgKCFBcnJheS5pc0FycmF5KHNlY3Rpb25zKSkge1xuICAgIG91dEVycm9ycy5wdXNoKGBFeHBlY3RlZCBbWyR7c2VjdGlvbk5hbWV9XV0gdG8gYmUgYW4gYXJyYXkgb2Ygc2VjdGlvbnMuYClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHNlY3Rpb25zLm1hcCgoc2VjdGlvbikgPT5cbiAgICBwYXJzZUNvbmZpZ1NlY3Rpb24oXG4gICAgICB7IFtzZWN0aW9uTmFtZV06IHNlY3Rpb24gfSxcbiAgICAgIHNlY3Rpb25OYW1lLFxuICAgICAgbWFuZGF0b3J5S2V5cyxcbiAgICAgIG9wdGlvbmFsS2V5cyxcbiAgICAgIG91dFdhcm5pbmdzLFxuICAgICAgb3V0RXJyb3JzXG4gICAgKVxuICApXG4gIGlmIChyZXN1bHQuc29tZSgocikgPT4gciA9PT0gbnVsbCkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrTWV0YWRhdGFMYW5ndWFnZShcbiAgcGFyc2VkQ29uZmlnU2VjdGlvbjogYW55LFxuICBvdXRXYXJuaW5nczogc3RyaW5nW11cbikge1xuICBjb25zdCBsYW5nMiA9IHRvTGFuZzIocGFyc2VkQ29uZmlnU2VjdGlvbi5tZXRhZGF0YV9sYW5ndWFnZS50b0xvd2VyQ2FzZSgpKVxuICBpZiAobGFuZzI/Lmxlbmd0aCAhPT0gMikge1xuICAgIG91dFdhcm5pbmdzLnB1c2goXG4gICAgICBgSW4gdGhlIFtnbG9iYWxdIHNlY3Rpb246IG1ldGFkYXRhX2xhbmd1YWdlID0gXCIke3BhcnNlZENvbmZpZ1NlY3Rpb24ubWV0YWRhdGFfbGFuZ3VhZ2V9XCIgaXMgbm90IGEgcmVjb2duaXplZCBJU08gNjM5IGxhbmd1YWdlIGNvZGVgXG4gICAgKVxuICB9XG4gIHJldHVybiBwYXJzZWRDb25maWdTZWN0aW9uXG59XG4iXX0=
|