@tilde-nlp/ngx-translate 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/factories/file-api-service.factory.mjs +1 -1
- package/esm2020/lib/factories/mt-term-term-api.factory.mjs +12 -0
- package/esm2020/lib/factories/text-api-service.factory.mjs +3 -3
- package/esm2020/lib/i18n/de.mjs +2 -7
- package/esm2020/lib/i18n/en.mjs +2 -6
- package/esm2020/lib/i18n/et.mjs +1 -6
- package/esm2020/lib/i18n/fi.mjs +1 -6
- package/esm2020/lib/i18n/lt.mjs +1 -6
- package/esm2020/lib/i18n/lv.mjs +2 -7
- package/esm2020/lib/i18n/pl.mjs +1 -6
- package/esm2020/lib/i18n/sv.mjs +1 -4
- package/esm2020/lib/injection-tokens/index.mjs +2 -1
- package/esm2020/lib/injection-tokens/mt-term-api.token.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-term-config.model.mjs +1 -1
- package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +2 -1
- package/esm2020/lib/modules/tld-document/services/api/file-api.service.mjs +7 -7
- package/esm2020/lib/modules/tld-document/services/tld-translate-file.service.mjs +6 -2
- package/esm2020/lib/modules/tld-term/create-collection/create-collection.component.mjs +51 -0
- package/esm2020/lib/modules/tld-term/index.mjs +2 -1
- package/esm2020/lib/modules/tld-term/services/api-v1/models/mt-term-collection-v1-status.enum.mjs +7 -0
- package/esm2020/lib/modules/tld-term/services/api-v1/models/mt-term-collection-v1.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/api-v1/mt-term-v1.service.mjs +53 -0
- package/esm2020/lib/modules/tld-term/services/api-v2/mt-term-v2.service.mjs +67 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/eninge-term-api.service.mjs +32 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/add-engine-terms-request-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-list.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-scope.enum.mjs +6 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-source.enum.mjs +6 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-status.enum.mjs +11 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/index.mjs +8 -0
- package/esm2020/lib/modules/tld-term/services/engine-term/models/update-engine-terms-request-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/index.mjs +4 -4
- package/esm2020/lib/modules/tld-term/services/models/combined-collection-tooltip-key.enum.mjs +6 -0
- package/esm2020/lib/modules/tld-term/services/models/combined-collection.model.mjs +190 -0
- package/esm2020/lib/modules/tld-term/services/models/index.mjs +6 -0
- package/esm2020/lib/modules/tld-term/services/models/mt-collection-status.enum.mjs +14 -0
- package/esm2020/lib/modules/tld-term/services/models/mt-collection.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/models/mt-term-service.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/term-api/index.mjs +3 -0
- package/esm2020/lib/modules/tld-term/services/term-api/models/index.mjs +3 -0
- package/esm2020/lib/modules/tld-term/services/term-api/models/tld-term-collection-languages.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/term-api/models/tld-term-collection.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/services/term-api/term-api.service.mjs +58 -0
- package/esm2020/lib/modules/tld-term/services/terminology.service.mjs +292 -0
- package/esm2020/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.mjs +27 -12
- package/esm2020/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.mjs +24 -51
- package/esm2020/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.mjs +19 -12
- package/esm2020/lib/modules/tld-term/tld-term.module.mjs +6 -5
- package/esm2020/lib/modules/tld-text/services/api/tld-translate-text-api.service.mjs +7 -7
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.mjs +4 -2
- package/esm2020/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.mjs +8 -8
- package/esm2020/lib/tld-translate.module.mjs +17 -4
- package/esm2020/public-api.mjs +4 -2
- package/fesm2015/tilde-nlp-ngx-translate.mjs +834 -517
- package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/fesm2020/tilde-nlp-ngx-translate.mjs +797 -501
- package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/lib/factories/file-api-service.factory.d.ts +2 -2
- package/lib/factories/mt-term-term-api.factory.d.ts +7 -0
- package/lib/factories/text-api-service.factory.d.ts +3 -3
- package/lib/i18n/de.d.ts +0 -5
- package/lib/i18n/en.d.ts +1 -5
- package/lib/i18n/et.d.ts +0 -5
- package/lib/i18n/fi.d.ts +0 -5
- package/lib/i18n/lt.d.ts +0 -5
- package/lib/i18n/lv.d.ts +0 -5
- package/lib/i18n/pl.d.ts +0 -5
- package/lib/i18n/sv.d.ts +0 -3
- package/lib/injection-tokens/index.d.ts +1 -0
- package/lib/injection-tokens/mt-term-api.token.d.ts +1 -0
- package/lib/modules/tld-common/models/configs/tld-term-config.model.d.ts +1 -0
- package/lib/modules/tld-document/services/api/file-api.service.d.ts +3 -3
- package/lib/modules/tld-term/create-collection/create-collection.component.d.ts +17 -0
- package/lib/modules/tld-term/index.d.ts +1 -0
- package/lib/modules/tld-term/{models/mt-collection-status.model.d.ts → services/api-v1/models/mt-term-collection-v1-status.enum.d.ts} +1 -1
- package/lib/modules/tld-term/services/api-v1/models/mt-term-collection-v1.model.d.ts +12 -0
- package/lib/modules/tld-term/services/api-v1/mt-term-v1.service.d.ts +17 -0
- package/lib/modules/tld-term/services/api-v2/mt-term-v2.service.d.ts +18 -0
- package/lib/modules/tld-term/services/engine-term/eninge-term-api.service.d.ts +17 -0
- package/lib/modules/tld-term/services/engine-term/models/add-engine-terms-request-params.model.d.ts +8 -0
- package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-list.model.d.ts +4 -0
- package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-scope.enum.d.ts +4 -0
- package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-source.enum.d.ts +4 -0
- package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-status.enum.d.ts +9 -0
- package/lib/modules/tld-term/services/engine-term/models/engine-term-collection.model.d.ts +14 -0
- package/lib/modules/tld-term/services/engine-term/models/index.d.ts +7 -0
- package/lib/modules/tld-term/services/engine-term/models/update-engine-terms-request-params.model.d.ts +5 -0
- package/lib/modules/tld-term/services/index.d.ts +3 -3
- package/lib/modules/tld-term/services/models/combined-collection-tooltip-key.enum.d.ts +4 -0
- package/lib/modules/tld-term/services/models/combined-collection.model.d.ts +87 -0
- package/lib/modules/tld-term/services/models/index.d.ts +5 -0
- package/lib/modules/tld-term/services/models/mt-collection-status.enum.d.ts +11 -0
- package/lib/modules/tld-term/services/models/mt-collection.model.d.ts +14 -0
- package/lib/modules/tld-term/services/models/mt-term-service.model.d.ts +7 -0
- package/lib/modules/tld-term/services/term-api/index.d.ts +2 -0
- package/lib/modules/tld-term/services/term-api/models/index.d.ts +2 -0
- package/lib/modules/tld-term/{models/term-api → services/term-api/models}/tld-term-collection.model.d.ts +2 -2
- package/lib/modules/tld-term/services/term-api/term-api.service.d.ts +17 -0
- package/lib/modules/tld-term/services/terminology.service.d.ts +63 -0
- package/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.d.ts +13 -4
- package/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.d.ts +13 -17
- package/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.d.ts +11 -7
- package/lib/modules/tld-term/tld-term.module.d.ts +13 -12
- package/lib/modules/tld-text/services/api/tld-translate-text-api.service.d.ts +3 -3
- package/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.d.ts +3 -3
- package/package.json +1 -1
- package/public-api.d.ts +3 -1
- package/src/assets/webcomponent/tld-translate.js +1 -1
- package/tilde-nlp-ngx-translate-2.1.0.tgz +0 -0
- package/esm2020/lib/modules/tld-term/models/converted-collection-tooltip-key.model.mjs +0 -7
- package/esm2020/lib/modules/tld-term/models/converted-collection-type.model.mjs +0 -9
- package/esm2020/lib/modules/tld-term/models/index.mjs +0 -7
- package/esm2020/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.mjs +0 -2
- package/esm2020/lib/modules/tld-term/models/mt-collection-status.model.mjs +0 -7
- package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.mjs +0 -2
- package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection.model.mjs +0 -2
- package/esm2020/lib/modules/tld-term/models/tld-converted-collection.model.mjs +0 -114
- package/esm2020/lib/modules/tld-term/services/mt-collections-api.service.mjs +0 -33
- package/esm2020/lib/modules/tld-term/services/term-api.service.mjs +0 -34
- package/esm2020/lib/modules/tld-term/services/tld-term-collections.service.mjs +0 -253
- package/lib/modules/tld-term/models/converted-collection-tooltip-key.model.d.ts +0 -5
- package/lib/modules/tld-term/models/converted-collection-type.model.d.ts +0 -7
- package/lib/modules/tld-term/models/index.d.ts +0 -6
- package/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.d.ts +0 -15
- package/lib/modules/tld-term/models/tld-converted-collection.model.d.ts +0 -43
- package/lib/modules/tld-term/services/mt-collections-api.service.d.ts +0 -13
- package/lib/modules/tld-term/services/term-api.service.d.ts +0 -15
- package/lib/modules/tld-term/services/tld-term-collections.service.d.ts +0 -57
- package/tilde-nlp-ngx-translate-2.0.2.tgz +0 -0
- /package/lib/modules/tld-term/{models/term-api → services/term-api/models}/tld-term-collection-languages.model.d.ts +0 -0
|
@@ -180,6 +180,7 @@ export class TldTranslateConfigService {
|
|
|
180
180
|
this._termConfig.collectionNameMaxLength = termConfig?.collectionNameMaxLength ?? 300;
|
|
181
181
|
this._termConfig.refreshTimeoutMs = termConfig?.refreshTimeoutMs ?? 10000;
|
|
182
182
|
this._termConfig.refreshTimeoutMsWhenImporting = termConfig?.refreshTimeoutMsWhenImporting ?? 5000;
|
|
183
|
+
this._termConfig.engineTermUrl = termConfig?.engineTermUrl;
|
|
183
184
|
this._termConfig.freeTrialUrl = termConfig?.freeTrialUrl ?? "https://tilde.com/products-and-services/machine-translation/pricing/Tilde-MT";
|
|
184
185
|
this._termConfig.learnMoreUrl = termConfig?.learnMoreUrl ?? "https://www.tilde.com/products-and-services/machine-translation/Tilde-MT-features-glossary";
|
|
185
186
|
// seperated because following urls have method names added
|
|
@@ -224,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
224
225
|
type: Inject,
|
|
225
226
|
args: [TLD_TRANSLATE_CONFIG_TOKEN]
|
|
226
227
|
}] }]; } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBb0UsVUFBaUMsRUFDbEMsTUFBMkI7UUFEMUIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFJdEYsZ0JBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUt2RSxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFLMUMsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBSzFDLHdCQUFtQixHQUErQixFQUFFLENBQUM7UUFLckQsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBS2pDLGlCQUFZLEdBQTZCLEVBQUUsQ0FBQztRQUs1QyxpQkFBWSxHQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBS2pFLHdCQUFtQixHQUEyQixFQUFFLENBQUM7UUF0Q3ZELElBQUksQ0FBQyxXQUFXLEVBQUUs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SUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUM3SztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSTtZQUNsRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFF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WSxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDbkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsR0FBRyxZQUFZLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQztRQUUvRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyx3QkFBd0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLHFCQUFxQixDQUFDLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQzs7c0hBOU5VLHlCQUF5QixrQkFFaEIsNkJBQTZCLGFBQzNCLDBCQUEwQjswSEFIckMseUJBQXlCLGNBRnhCLE1BQU07MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR2MsTUFBTTsyQkFBQyw2QkFBNkI7OzBCQUM5QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zL3RsZC10cmFuc2xhdGUtY29uZmlnLnRva2VuJztcclxuaW1wb3J0IHsgSVRsZFRleHRUb1NwZWVjaENvbmZpZywgbGFuZ3VhZ2VNZW51VmVyc2lvbiB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElUbGRBdWRpb0NvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC1hdWRpby1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVGVybUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10ZXJtLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtYXBpLXYyLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb3JlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1maWxlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVXZWJzaXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS13ZWItY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvcmUvdHJhbnNsYXRpb24tYXBpLXZlcnNpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbjogVHJhbnNsYXRpb25BcGlWZXJzaW9uLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTikgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElUbGRUcmFuc2xhdGVDb25maWcpIHtcclxuICAgIHRoaXMuaW5pdENvbmZpZ3MoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvcmVDb25maWc6IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnID0geyBhcHBJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfTtcclxuICBnZXQgY29yZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb3JlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dENvbmZpZzogSVRsZFRyYW5zbGF0ZVRleHRDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0Q29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsZUNvbmZpZzogSVRsZFRyYW5zbGF0ZUZpbGVDb25maWcgPSB7fTtcclxuICBnZXQgZmlsZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9maWxlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2VidHJhbnNsYXRlQ29uZmlnOiBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyA9IHt9O1xyXG4gIGdldCB3ZWJ0cmFuc2xhdGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGVybUNvbmZpZzogSVRsZFRlcm1Db25maWcgPSB7fTtcclxuICBnZXQgdGVybUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXJtQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXBpVjJDb25maWc6IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyA9IHt9O1xyXG4gIGdldCBhcGlWMkNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlWMkNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2F1ZGlvQ29uZmlnOiBJVGxkQXVkaW9Db25maWcgPSB7IGFwcElkOiBudWxsLCBhcHBTZWNyZXQ6IG51bGwgfTtcclxuICBnZXQgYXVkaW9Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Db25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0VG9TcGVlY2hDb25maWc6IElUbGRUZXh0VG9TcGVlY2hDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dFRvU3BlZWNoQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZztcclxuICB9XHJcblxyXG4gIGluaXRDb25maWdzKGNvbmZpZ3VyYXRpb24/OiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb25maWd1cmF0aW9uID8/IHRoaXMuY29uZmlnID8/IHt9O1xyXG5cclxuICAgIGNvbnN0IGNvcmUgPSBjb25maWc/LmNvcmU7XHJcbiAgICBjb25zdCBmaWxlID0gY29uZmlnPy5maWxlO1xyXG4gICAgY29uc3QgdGV4dCA9IGNvbmZpZz8udGV4dDtcclxuICAgIGNvbnN0IGF1ZGlvID0gY29uZmlnPy5hdWRpbztcclxuICAgIGNvbnN0IHdlYnRyYW5zbGF0ZSA9IGNvbmZpZz8ud2ViVHJhbnNsYXRlO1xyXG4gICAgY29uc3QgdGVybUNvbmZpZyA9IGNvbmZpZz8udGVybTtcclxuICAgIGNvbnN0IGFwaVYyQ29uZmlnID0gY29uZmlnPy5hcGlWMjtcclxuICAgIGNvbnN0IHRleHRUb1NwZWVjaCA9IGNvbmZpZz8udGV4dFRvU3BlZWNoO1xyXG5cclxuICAgIHRoaXMuX2NvcmVDb25maWcgPSB7IGFwcElkOiBjb3JlPy5hcHBJZCwgY2xpZW50SWQ6IGNvcmU/LmNsaWVudElkIH07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwaUlzSW5UaGVTYW1lRG9tYWluID0gY29yZT8uYXBpSXNJblRoZVNhbWVEb21haW4gfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwcE5hbWUgPSBjb3JlPy5hcHBOYW1lIHx8IFwiVGlsZGUgTVRcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaGlkZUFjaGlldmVtZW50ID0gY29yZT8uaGlkZUFjaGlldmVtZW50IHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5pc0F1dGggPSBjb3JlPy5pc0F1dGggfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmp3dEF1dGggPSBjb3JlPy5qd3RBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGVBcHBOYW1lID0gY29yZT8udHJhbnNsYXRlQXBwTmFtZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5yZWdpc3RlckxpbmsgPSBjb3JlPy5yZWdpc3RlckxpbmsgfHwgXCJodHRwczovL3RpbGRlLmNvbS9wcm9kdWN0cy1hbmQtc2VydmljZXMvbWFjaGluZS10cmFuc2xhdGlvblwiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zdXBwb3J0RW1haWwgPSBjb3JlPy5zdXBwb3J0RW1haWwgfHwgXCJtdEB0aWxkZS5sdlwiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zb3VyY2VMYW5ndWFnZU9yZGVyID0gY29yZT8uc291cmNlTGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJydVwiLCBcImx2XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwiZmlcIiwgXCJydVwiLCBcImx2XCIsIFwibHRcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBmaTogW1wiZmlcIiwgXCJlblwiLCBcImV0XCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgcGw6IFtcInBsXCIsIFwiZW5cIiwgXCJkZVwiLCBcImx2XCIsIFwiZXRcIiwgXCJydVwiLCBcImx0XCIsIFwiZmlcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGRlOiBbXCJlblwiLCBcImJnXCIsIFwiZGFcIiwgXCJldFwiLCBcImZpXCIsIFwiZnJcIiwgXCJkZVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnRhcmdldExhbmd1YWdlT3JkZXIgPSBjb3JlPy50YXJnZXRMYW5ndWFnZU9yZGVyIHx8IHtcclxuICAgICAgZW46IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGx2OiBbXCJlblwiLCBcImx2XCIsIFwibHRcIiwgXCJldFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdDogW1wiZW5cIiwgXCJsdFwiLCBcImx2XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgZXQ6IFtcImVuXCIsIFwiZXRcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGZpOiBbXCJldFwiLCBcImZpXCIsIFwiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBwbDogW1wiZW5cIiwgXCJwbFwiLCBcImRlXCIsIFwibHZcIiwgXCJydVwiLCBcImV0XCIsIFwiZmlcIiwgXCJsdFwiLCBcImFyXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgZGU6IFtcImRlXCIsIFwiZW5cIiwgXCJmclwiLCBcImJnXCIsIFwiZGFcIiwgXCJldFwiLCBcImZpXCIsIFwiZWxcIiwgXCJnYVwiLCBcImlzXCIsIFwiaXRcIiwgXCJoclwiLCBcImx2XCIsIFwibHRcIiwgXCJydVwiLCBcIm10XCIsIFwibmxcIiwgXCJuYlwiLCBcInBsXCIsIFwicHRcIiwgXCJwdC1wdFwiLCBcInJvXCIsIFwic3ZcIiwgXCJza1wiLCBcInNsXCIsIFwiZXNcIiwgXCJjc1wiLCBcImh1XCIsIFwiYXJcIl1cclxuICAgIH07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmhpZGVMYW5nTWVudUxhYmVscyA9IGNvcmU/LmhpZGVMYW5nTWVudUxhYmVscyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd1ZlbmRvcnMgPSBjb3JlPy5zaG93VmVuZG9ycyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudW5hdXRob3JpemVkUmVkaXJlY3RMaW5rID0gY29yZT8udW5hdXRob3JpemVkUmVkaXJlY3RMaW5rO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5hbGxvd2VkU3lzdGVtU3RhdHVzZXMgPSBjb3JlPy5hbGxvd2VkU3lzdGVtU3RhdHVzZXMgPz8gWydydW5uaW5nJywgJ3N0YW5kYnknLCAncXVldWluZ3RyYW5zbCddO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5tYXhEaXNwbGF5ZWRMYW5ndWFnZXMgPSBjb3JlPy5tYXhEaXNwbGF5ZWRMYW5ndWFnZXMgPz8gMztcclxuICAgIHRoaXMuX2NvcmVDb25maWcudXBsb2FkSWNvbk5hbWUgPSBjb3JlPy51cGxvYWRJY29uTmFtZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVidWcgPSBjb3JlPy5kZWJ1ZztcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lID0gY29yZT8uc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zaG93RG9tYWlucyA9IGNvcmU/LnNob3dEb21haW5zID8/IHRydWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRWZW5kb3IgPSBjb3JlPy5kZWZhdWx0VmVuZG9yID8/IFwiVGlsZGVcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdFN5c3RlbUlkID0gY29yZT8uZGVmYXVsdFN5c3RlbUlkO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zaG93RG9tYWluVGl0bGUgPSBjb3JlPy5zaG93RG9tYWluVGl0bGU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRvbWFpblNpZGUgPSBjb3JlPy5kb21haW5TaWRlID8/IFwidHJnXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnN3YXBJY29uUG9zaXRpb24gPSBjb3JlPy5zd2FwSWNvblBvc2l0aW9uID8/IFwic3JjXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmxhbmd1YWdlTWVudVZlcnNpb24gPSBjb3JlPy5sYW5ndWFnZU1lbnVWZXJzaW9uID8/IGxhbmd1YWdlTWVudVZlcnNpb24uVjE7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLm1heFJlY2VudFN5c3RlbUNvdW50ID0gY29yZT8ubWF4UmVjZW50U3lzdGVtQ291bnQgPz8gNDtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdERvbWFpbnMgPSBjb3JlPy5kZWZhdWx0RG9tYWlucyA/PyBbXCJHRU5cIiwgXCJnZW5lcmFsXCJdO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5jb250YWN0U3VwcG9ydCA9IGNvcmU/LmNvbnRhY3RTdXBwb3J0ID8/IHRydWU7XHJcblxyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzID0gZmlsZT8uYWxsb3dlZEZpbGVUeXBlcyB8fCBbXCIuZG9jXCIsIFwiLmRvY3hcIiwgXCIueGxzeFwiLCBcIi5wZGZcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmV4dGVuZGVkRmlsZVR5cGVzID0gZmlsZT8uZXh0ZW5kZWRGaWxlVHlwZXNcclxuICAgICAgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIiwgXCIuaHRtbFwiLCBcIi5odG1cIixcclxuICAgICAgICBcIi54aHRtbFwiLCBcIi54aHRcIiwgXCIudG14XCIsIFwiLnhsZlwiLCBcIi54bGlmXCIsIFwiLnhsaWZmXCIsIFwiLnNkbHhsaWZmXCIsIFwiLnNkbHhsZlwiLCBcIi50dHhcIiwgXCIucnRmXCIsXHJcbiAgICAgICAgXCIucGFnZXNcIiwgXCIudGV4XCIsIFwiLnhtbFwiLCBcIi5qc29uXCIsIFwiLnN4d1wiLCBcIi5wZGZcIiwgXCIuY3N2XCIsIFwiLnR0bFwiLCBcIi5zcnRcIiwgXCIucG5nXCIsIFwiLmpwZ1wiLCBcIi5qcGVnXCIsIFwiLmJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dUbXhBdXRoID0gZmlsZT8uYWxsb3dUbXhBdXRoID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14VW5hdXRoID0gZmlsZT8uYWxsb3dUbXhVbmF1dGggPz8gZmFsc2U7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVBcGlVcmwgPSBmaWxlPy5maWxlQXBpVXJsIHx8IFwiaHR0cHM6Ly9sZXRzbXQuZXUvd3MvRmlsZXMvXCI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzID0gZmlsZT8uZmlsZURvd25sb2FkVGltZW91dHNcclxuICAgICAgfHwge1xyXG4gICAgICBcImluaXRpYWxpemluZ1wiOiAxMDAwLFxyXG4gICAgICBcImV4dHJhY3RpbmdcIjogMTAwMCxcclxuICAgICAgXCJ3YWl0aW5nXCI6IDEwMDAwLFxyXG4gICAgICBcInRyYW5zbGF0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwic2F2aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwiY29tcGxldGVkXCI6IDEwMDAsXHJcbiAgICAgIFwiZXJyb3JcIjogMTAwMCxcclxuICAgICAgXCJxdWV1aW5nXCI6IDEwMDBcclxuICAgIH07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm1heFNpemUgPSBmaWxlPy5tYXhTaXplIHx8IDMwNzIwMDAwO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy53b3JkTGltaXQgPSBmaWxlPy53b3JkTGltaXQgPz8gMTI1MDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZVVwbG9hZCA9IGZpbGU/LmZpbGVVcGxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcub2NyUGFnZUxpbWl0ID0gZmlsZT8ub2NyUGFnZUxpbWl0ID8/IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93UERGU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd1BERlNvdXJjZURvd25sb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA9IGZpbGU/LmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgPSBmaWxlPy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgfHwgW1wicGRmXCIsIFwicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudGFyZ2V0RG93bmxvYWRFeHRlbnNpb25PcmRlciA9IGZpbGU/LnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkID0gZmlsZT8ubnVtYmVyT2ZGaWxlc0FsbG93ZWQgPiAwID8gZmlsZS5udW1iZXJPZkZpbGVzQWxsb3dlZCA6IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cyA9IGZpbGU/LnNob3dUcmFuc2xhdGlvbkxpbWl0cyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy51c2VNdWx0aXBsZUZpbGVVcGxvYWQgPSBmaWxlPy51c2VNdWx0aXBsZUZpbGVVcGxvYWQ7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IGZpbGU/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcblxyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5kaWN0aW9uYXJ5VXJsID0gdGV4dD8uZGljdGlvbmFyeVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L2FwaS9kaWN0aW9uYXJ5L0dldERpY3Rpb25hcnlFbnRyeS9cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcubWF4Q2hhckxlbmd0aCA9IHRleHQ/Lm1heENoYXJMZW5ndGggPz8gNTAwMDtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeCB8fCBcIi93ZWJ0cmFuc2xhdGU/dXJsPVwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCA9IHRleHQ/LndlYldpZGdldFJlZGlyZWN0VXJsUHJlZml4IHx8IFwiXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSB0ZXh0Py51c2VEaWN0aW9uYXJ5ID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdmFpbGFibGVFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F1dGhFeHRlbnNpb25zID0gdGV4dD8uc2hvd0F1dGhFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXV0aEV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9Gb2N1c3MgPSB0ZXh0Py5hdXRvRm9jdXNzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHkgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcCA9IHRleHQ/LnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcDtcclxuICAgIHRoaXMuX3RleHRDb25maWcuYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPSB0ZXh0Py5hbGxvd1dlYnNpdGVUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSB0ZXh0Py5zaG93U3VnZ2VzdGlvbnMgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPSB0ZXh0Py5hdXRvUmVkaXJlY3RUb1dlYlRyYW5zbGF0ZSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuaGlnaGxpZ2h0ID0gdGV4dD8uaGlnaGxpZ2h0ID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmNoZWNrU291cmNlR3JhbW1hciA9IHRleHQ/LmNoZWNrU291cmNlR3JhbW1hciA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuZ3JhbW1hckNoZWNrTGFuZ3VhZ2VzID0gdGV4dD8uZ3JhbW1hckNoZWNrTGFuZ3VhZ2VzID8/IFtdO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93VGFyZ2V0UGxhY2Vob2xkZXIgPSB0ZXh0Py5zaG93VGFyZ2V0UGxhY2Vob2xkZXI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dFeHRlbnNpb25Qb3B1cCA9IHRleHQ/LnNob3dFeHRlbnNpb25Qb3B1cDtcclxuICAgIHRoaXMuX3RleHRDb25maWcudmlzaWJsZUV4dGVuc2lvbkNvdW50ID0gdGV4dD8udmlzaWJsZUV4dGVuc2lvbkNvdW50ID8/IDM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGUgPSB0ZXh0Py5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID0gdGV4dD8ucHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHMgPz8gMjAwMDtcclxuICAgIHRoaXMuX3RleHRDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID0gdGV4dD8ucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID8/IFtcIkVUcmFuc2xhdGlvblwiXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JWaXNpYmxlID0gdGV4dD8ucHJvZ3Jlc3NJbmRpY2F0b3JWaXNpYmxlID8/IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvVGV4dElucHV0ID0gYXVkaW8/LmF1ZGlvVGV4dElucHV0ID8/IGZhbHNlO1xyXG4gICAgLy8gTm90IHNldHRpbmcgZGVmYXVsdCB1cmwgYmVjYXVzZSB0aGVyZSBpcyBubyBzZXJ2aWNlIHByb3ZpZGVkIGJ5IFRpbGRlIGFuZCB0aGlzIGlzIG5vdCB1c2VkIGJ5IGRlZmF1bHQgaW4gd2Vic2l0ZSBwcm9qZWN0LlxyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9BcGlVcmwgPSBhdWRpbz8uYXVkaW9BcGlVcmw7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb01heFNpemVCeXRlcyA9IGF1ZGlvPy5hdWRpb01heFNpemVCeXRlcyA/PyAxMDAwMDAwMDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLnNvdXJjZUxhbmd1YWdlcyA9IGF1ZGlvPy5zb3VyY2VMYW5ndWFnZXMgPz8gW107XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kYXRhVXBkYXRlVGltZUZyYW1lID0gYXVkaW8/LmRhdGFVcGRhdGVUaW1lRnJhbWUgPz8gNTAwMDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLm1heGltdW1SZWNvcmRUaW1lID0gYXVkaW8/Lm1heGltdW1SZWNvcmRUaW1lID8/IDMwMDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRpY3RhdGVBcGlVcmwgPSBhdWRpbz8uZGljdGF0ZUFwaVVybCA/PyBcInJ1bmEudGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmFwcElkID0gYXVkaW8/LmFwcElkO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXBwU2VjcmV0ID0gYXVkaW8/LmFwcFNlY3JldDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLnB1bmN0dWF0aW9uTWVzc2FnZSA9IGF1ZGlvPy5wdW5jdHVhdGlvbk1lc3NhZ2UgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbiA9IGF1ZGlvPy5kaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb24gPz8gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcubG9nb0xvY2F0aW9uID0gd2VidHJhbnNsYXRlPy5sb2dvTG9jYXRpb24gfHwgJ2Fzc2V0cy93ZWJ0cmFuc2xhdGUvdGlsZGVfbG9nby5wbmcnO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLnRyYW5zbGF0ZVBhZ2VQYXRoID0gd2VidHJhbnNsYXRlPy50cmFuc2xhdGVQYWdlUGF0aDtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5kZWJ1ZyA9IHdlYnRyYW5zbGF0ZT8uZGVidWcgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcud2ViTGFuZ0F1dG9kZXRlY3QgPSB3ZWJ0cmFuc2xhdGU/LndlYkxhbmdBdXRvZGV0ZWN0IHx8IHRydWU7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuYWxsb3dTdWdnZXN0aW9ucyA9IHdlYnRyYW5zbGF0ZT8uYWxsb3dTdWdnZXN0aW9ucyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5oaWRlUG9wdXAgPSB3ZWJ0cmFuc2xhdGU/LmhpZGVQb3B1cCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5zYW5kYm94ID0gd2VidHJhbnNsYXRlPy5zYW5kYm94ID8/IFwiYWxsb3ctZm9ybXMgYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpblwiO1xyXG5cclxuICAgIHRoaXMuX3Rlcm1Db25maWcuYXBpVXJsID0gdGVybUNvbmZpZz8uYXBpVXJsIHx8IFwiaHR0cHM6Ly90ZXJtLnRpbGRlLmNvbVwiO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jYW5DcmVhdGVDb2xsZWN0aW9uID0gdGVybUNvbmZpZz8uY2FuQ3JlYXRlQ29sbGVjdGlvbjtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCA9IHRlcm1Db25maWc/LmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQ7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmlzVGVybVBvcnRhbFN1cHBvcnRlZCA9IHRlcm1Db25maWc/LmlzVGVybVBvcnRhbFN1cHBvcnRlZCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuY29sbGVjdGlvbk5hbWVNaW5MZW5ndGggPSB0ZXJtQ29uZmlnPy5jb2xsZWN0aW9uTmFtZU1pbkxlbmd0aCA/PyA4O1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1heExlbmd0aCA9IHRlcm1Db25maWc/LmNvbGxlY3Rpb25OYW1lTWF4TGVuZ3RoID8/IDMwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNcyA9IHRlcm1Db25maWc/LnJlZnJlc2hUaW1lb3V0TXMgPz8gMTAwMDA7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXNXaGVuSW1wb3J0aW5nID0gdGVybUNvbmZpZz8ucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgPz8gNTAwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuZnJlZVRyaWFsVXJsID0gdGVybUNvbmZpZz8uZnJlZVRyaWFsVXJsID8/IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb24vcHJpY2luZy9UaWxkZS1NVFwiO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5sZWFybk1vcmVVcmwgPSB0ZXJtQ29uZmlnPy5sZWFybk1vcmVVcmwgPz8gXCJodHRwczovL3d3dy50aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb24vVGlsZGUtTVQtZmVhdHVyZXMtZ2xvc3NhcnlcIjtcclxuXHJcbiAgICAvLyBzZXBlcmF0ZWQgYmVjYXVzZSBmb2xsb3dpbmcgdXJscyBoYXZlIG1ldGhvZCBuYW1lcyBhZGRlZFxyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgPSBjb3JlPy50cmFuc2xhdGlvblNlcnZpY2VVcmwgfHwgXCJodHRwczovL3d3dy5sZXRzbXQuZXUvd3Mvc2VydmljZS5zdmMvanNvbi9cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcudHJhbnNsYXRpb25VcmwgPSB0ZXh0Py50cmFuc2xhdGlvblVybCA/PyB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCArIFwiVHJhbnNsYXRlRXhcIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcudXBkYXRlVHJhbnNsYXRpb25VcmwgPSB0ZXh0Py51cGRhdGVUcmFuc2xhdGlvblVybCA/PyB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCArIFwiVXBkYXRlVHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3lzdGVtTGlzdFVybCA9IGNvcmU/LnN5c3RlbUxpc3RVcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIkdldFN5c3RlbUxpc3RcIjtcclxuXHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy54QXBpS2V5ID0gYXBpVjJDb25maWc/LnhBcGlLZXk7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCA9IGFwaVYyQ29uZmlnPy5tdEFwaVVybCA/PyBcImFwaS90cmFuc2xhdGUvXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5zeXN0ZW1MaXN0VXJsID0gYXBpVjJDb25maWc/LnN5c3RlbUxpc3RVcmwgPz8gdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgKyBcImxhbmd1YWdlLWRpcmVjdGlvbnNcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLnRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LnRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJ0ZXh0XCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5maWxlVHJhbnNsYXRpb25VcmwgPSBhcGlWMkNvbmZpZz8uZmlsZVRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJmaWxlXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5ncmFtbWFyQ2hlY2tVcmwgPSBhcGlWMkNvbmZpZz8uZ3JhbW1hckNoZWNrVXJsID8/IFwiaHR0cHM6Ly9tdC5jcy51dC5lZS9hcGkvZ3JhbW1hclwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuYXV0b0RvbWFpbkRldGVjdGlvbiA9IGFwaVYyQ29uZmlnPy5hdXRvRG9tYWluRGV0ZWN0aW9uID8/IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZy5sYW5ndWFnZXMgPSB0ZXh0VG9TcGVlY2g/Lmxhbmd1YWdlcyA/PyB7fTtcclxuICAgIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZy5tYXhDaGFyc0luVGV4dCA9IHRleHRUb1NwZWVjaD8ubWF4Q2hhcnNJblRleHQgPz8gMzAwMDtcclxuXHJcbiAgICB0aGlzLmVkaXRQcm9wZXJ0aWVzQmFzZWRPbkFwaSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG8gbWFrZSBzdXJlIG5lY2Vzc2FyeSBwcm9wZXJ0aWVzIGFyZSBub3QgdHVybmVkIG9uIGJlY2F1c2UgaW4gYXBpIFYyIHNvbWUgZmVhdHVyZXMgYXJlIG5vdCBpbXBsZW1uZW50ZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKSB7XHJcbiAgICBpZiAodGhpcy5hcGlWZXJzaW9uID09PSBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjIpIHtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnNob3dTdWdnZXN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRleHRDb25maWcudXNlRGljdGlvbmFyeSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBb0UsVUFBaUMsRUFDbEMsTUFBMkI7UUFEMUIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFJdEYsZ0JBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUt2RSxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFLMUMsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBSzFDLHdCQUFtQixHQUErQixFQUFFLENBQUM7UUFLckQsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBS2pDLGlCQUFZLEdBQTZCLEVBQUUsQ0FBQztRQUs1QyxpQkFBWSxHQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBS2pFLHdCQUFtQixHQUEyQixFQUFFLENBQUM7UUF0Q3ZELElBQUksQ0FBQyxXQUFXLEVBQUUs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SUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUM3SztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSTtZQUNsRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFF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SUFBSSxLQUFLLENBQUM7UUFFbEYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxZQUFZLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxHQUFHLFlBQVksRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDO1FBRS9FLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNLLHdCQUF3QjtRQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUsscUJBQXFCLENBQUMsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDdkM7SUFDSCxDQUFDOztzSEFoT1UseUJBQXlCLGtCQUVoQiw2QkFBNkIsYUFDM0IsMEJBQTBCOzBIQUhyQyx5QkFBeUIsY0FGeEIsTUFBTTsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHYyxNQUFNOzJCQUFDLDZCQUE2Qjs7MEJBQzlDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMvdGxkLXRyYW5zbGF0ZS1jb25maWcudG9rZW4nO1xyXG5pbXBvcnQgeyBJVGxkVGV4dFRvU3BlZWNoQ29uZmlnLCBsYW5ndWFnZU1lbnVWZXJzaW9uIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSVRsZEF1ZGlvQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLWF1ZGlvLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUZXJtQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRlcm0tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUFwaVYyQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1hcGktdjItY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUNvcmVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWNvcmUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUZpbGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWZpbGUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZVRleHRDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLXRleHQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZVdlYnNpdGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLXdlYi1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvbkFwaVZlcnNpb24gfSBmcm9tICcuLi9tb2RlbHMvY29yZS90cmFuc2xhdGlvbi1hcGktdmVyc2lvbi5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBhcGlWZXJzaW9uOiBUcmFuc2xhdGlvbkFwaVZlcnNpb24sXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRMRF9UUkFOU0xBVEVfQ09ORklHX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogSVRsZFRyYW5zbGF0ZUNvbmZpZykge1xyXG4gICAgdGhpcy5pbml0Q29uZmlncygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29yZUNvbmZpZzogSVRsZFRyYW5zbGF0ZUNvcmVDb25maWcgPSB7IGFwcElkOiBudWxsLCBjbGllbnRJZDogbnVsbCB9O1xyXG4gIGdldCBjb3JlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvcmVDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0Q29uZmlnOiBJVGxkVHJhbnNsYXRlVGV4dENvbmZpZyA9IHt9O1xyXG4gIGdldCB0ZXh0Q29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHRDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWxlQ29uZmlnOiBJVGxkVHJhbnNsYXRlRmlsZUNvbmZpZyA9IHt9O1xyXG4gIGdldCBmaWxlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF93ZWJ0cmFuc2xhdGVDb25maWc6IElUbGRUcmFuc2xhdGVXZWJzaXRlQ29uZmlnID0ge307XHJcbiAgZ2V0IHdlYnRyYW5zbGF0ZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXJtQ29uZmlnOiBJVGxkVGVybUNvbmZpZyA9IHt9O1xyXG4gIGdldCB0ZXJtQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Rlcm1Db25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hcGlWMkNvbmZpZzogSVRsZFRyYW5zbGF0ZUFwaVYyQ29uZmlnID0ge307XHJcbiAgZ2V0IGFwaVYyQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVYyQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXVkaW9Db25maWc6IElUbGRBdWRpb0NvbmZpZyA9IHsgYXBwSWQ6IG51bGwsIGFwcFNlY3JldDogbnVsbCB9O1xyXG4gIGdldCBhdWRpb0NvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hdWRpb0NvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RleHRUb1NwZWVjaENvbmZpZzogSVRsZFRleHRUb1NwZWVjaENvbmZpZyA9IHt9O1xyXG4gIGdldCB0ZXh0VG9TcGVlY2hDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGV4dFRvU3BlZWNoQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgaW5pdENvbmZpZ3MoY29uZmlndXJhdGlvbj86IElUbGRUcmFuc2xhdGVDb25maWcpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24gPz8gdGhpcy5jb25maWcgPz8ge307XHJcblxyXG4gICAgY29uc3QgY29yZSA9IGNvbmZpZz8uY29yZTtcclxuICAgIGNvbnN0IGZpbGUgPSBjb25maWc/LmZpbGU7XHJcbiAgICBjb25zdCB0ZXh0ID0gY29uZmlnPy50ZXh0O1xyXG4gICAgY29uc3QgYXVkaW8gPSBjb25maWc/LmF1ZGlvO1xyXG4gICAgY29uc3Qgd2VidHJhbnNsYXRlID0gY29uZmlnPy53ZWJUcmFuc2xhdGU7XHJcbiAgICBjb25zdCB0ZXJtQ29uZmlnID0gY29uZmlnPy50ZXJtO1xyXG4gICAgY29uc3QgYXBpVjJDb25maWcgPSBjb25maWc/LmFwaVYyO1xyXG4gICAgY29uc3QgdGV4dFRvU3BlZWNoID0gY29uZmlnPy50ZXh0VG9TcGVlY2g7XHJcblxyXG4gICAgdGhpcy5fY29yZUNvbmZpZyA9IHsgYXBwSWQ6IGNvcmU/LmFwcElkLCBjbGllbnRJZDogY29yZT8uY2xpZW50SWQgfTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuYXBpSXNJblRoZVNhbWVEb21haW4gPSBjb3JlPy5hcGlJc0luVGhlU2FtZURvbWFpbiB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuYXBwTmFtZSA9IGNvcmU/LmFwcE5hbWUgfHwgXCJUaWxkZSBNVFwiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlQWNoaWV2ZW1lbnQgPSBjb3JlPy5oaWRlQWNoaWV2ZW1lbnQgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmlzQXV0aCA9IGNvcmU/LmlzQXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuand0QXV0aCA9IGNvcmU/Lmp3dEF1dGggfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0ZUFwcE5hbWUgPSBjb3JlPy50cmFuc2xhdGVBcHBOYW1lID8/IHRydWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnJlZ2lzdGVyTGluayA9IGNvcmU/LnJlZ2lzdGVyTGluayB8fCBcImh0dHBzOi8vdGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnN1cHBvcnRFbWFpbCA9IGNvcmU/LnN1cHBvcnRFbWFpbCB8fCBcIm10QHRpbGRlLmx2XCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNvdXJjZUxhbmd1YWdlT3JkZXIgPSBjb3JlPy5zb3VyY2VMYW5ndWFnZU9yZGVyIHx8IHtcclxuICAgICAgZW46IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx2OiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBsdDogW1wiZW5cIiwgXCJsdFwiLCBcInJ1XCIsIFwibHZcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZXQ6IFtcImVuXCIsIFwiZXRcIiwgXCJmaVwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGZpOiBbXCJmaVwiLCBcImVuXCIsIFwiZXRcIiwgXCJydVwiLCBcImx2XCIsIFwibHRcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBwbDogW1wicGxcIiwgXCJlblwiLCBcImRlXCIsIFwibHZcIiwgXCJldFwiLCBcInJ1XCIsIFwibHRcIiwgXCJmaVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZGU6IFtcImVuXCIsIFwiYmdcIiwgXCJkYVwiLCBcImV0XCIsIFwiZmlcIiwgXCJmclwiLCBcImRlXCIsIFwiZWxcIiwgXCJnYVwiLCBcImlzXCIsIFwiaXRcIiwgXCJoclwiLCBcImx2XCIsIFwibHRcIiwgXCJydVwiLCBcIm10XCIsIFwibmxcIiwgXCJuYlwiLCBcInBsXCIsIFwicHRcIiwgXCJwdC1wdFwiLCBcInJvXCIsIFwic3ZcIiwgXCJza1wiLCBcInNsXCIsIFwiZXNcIiwgXCJjc1wiLCBcImh1XCJcclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudGFyZ2V0TGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnRhcmdldExhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwibHZcIiwgXCJldFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImx2XCIsIFwibHRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgZmk6IFtcImV0XCIsIFwiZmlcIiwgXCJlblwiLCBcImx2XCIsIFwibHRcIiwgXCJydVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIHBsOiBbXCJlblwiLCBcInBsXCIsIFwiZGVcIiwgXCJsdlwiLCBcInJ1XCIsIFwiZXRcIiwgXCJmaVwiLCBcImx0XCIsIFwiYXJcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBkZTogW1wiZGVcIiwgXCJlblwiLCBcImZyXCIsIFwiYmdcIiwgXCJkYVwiLCBcImV0XCIsIFwiZmlcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIiwgXCJhclwiXVxyXG4gICAgfTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaGlkZUxhbmdNZW51TGFiZWxzID0gY29yZT8uaGlkZUxhbmdNZW51TGFiZWxzIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zaG93VmVuZG9ycyA9IGNvcmU/LnNob3dWZW5kb3JzIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy51bmF1dGhvcml6ZWRSZWRpcmVjdExpbmsgPSBjb3JlPy51bmF1dGhvcml6ZWRSZWRpcmVjdExpbms7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFsbG93ZWRTeXN0ZW1TdGF0dXNlcyA9IGNvcmU/LmFsbG93ZWRTeXN0ZW1TdGF0dXNlcyA/PyBbJ3J1bm5pbmcnLCAnc3RhbmRieScsICdxdWV1aW5ndHJhbnNsJ107XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLm1heERpc3BsYXllZExhbmd1YWdlcyA9IGNvcmU/Lm1heERpc3BsYXllZExhbmd1YWdlcyA/PyAzO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy51cGxvYWRJY29uTmFtZSA9IGNvcmU/LnVwbG9hZEljb25OYW1lO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWJ1ZyA9IGNvcmU/LmRlYnVnO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUgPSBjb3JlPy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zID0gY29yZT8uc2hvd0RvbWFpbnMgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdFZlbmRvciA9IGNvcmU/LmRlZmF1bHRWZW5kb3IgPz8gXCJUaWxkZVwiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0U3lzdGVtSWQgPSBjb3JlPy5kZWZhdWx0U3lzdGVtSWQ7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5UaXRsZSA9IGNvcmU/LnNob3dEb21haW5UaXRsZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZG9tYWluU2lkZSA9IGNvcmU/LmRvbWFpblNpZGUgPz8gXCJ0cmdcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3dhcEljb25Qb3NpdGlvbiA9IGNvcmU/LnN3YXBJY29uUG9zaXRpb24gPz8gXCJzcmNcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubGFuZ3VhZ2VNZW51VmVyc2lvbiA9IGNvcmU/Lmxhbmd1YWdlTWVudVZlcnNpb24gPz8gbGFuZ3VhZ2VNZW51VmVyc2lvbi5WMTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4UmVjZW50U3lzdGVtQ291bnQgPSBjb3JlPy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA/PyA0O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0RG9tYWlucyA9IGNvcmU/LmRlZmF1bHREb21haW5zID8/IFtcIkdFTlwiLCBcImdlbmVyYWxcIl07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmNvbnRhY3RTdXBwb3J0ID0gY29yZT8uY29udGFjdFN1cHBvcnQgPz8gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93ZWRGaWxlVHlwZXMgPSBmaWxlPy5hbGxvd2VkRmlsZVR5cGVzIHx8IFtcIi5kb2NcIiwgXCIuZG9jeFwiLCBcIi54bHN4XCIsIFwiLnBkZlwiLCBcIi5wcHR4XCIsIFwiLm9kdFwiLCBcIi5vZHBcIiwgXCIub2RzXCIsIFwiLnR4dFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZXh0ZW5kZWRGaWxlVHlwZXMgPSBmaWxlPy5leHRlbmRlZEZpbGVUeXBlc1xyXG4gICAgICB8fCBbXCIuZG9jXCIsIFwiLmRvY3hcIiwgXCIueGxzeFwiLCBcIi5wcHR4XCIsIFwiLm9kdFwiLCBcIi5vZHBcIiwgXCIub2RzXCIsIFwiLnR4dFwiLCBcIi5odG1sXCIsIFwiLmh0bVwiLFxyXG4gICAgICAgIFwiLnhodG1sXCIsIFwiLnhodFwiLCBcIi50bXhcIiwgXCIueGxmXCIsIFwiLnhsaWZcIiwgXCIueGxpZmZcIiwgXCIuc2RseGxpZmZcIiwgXCIuc2RseGxmXCIsIFwiLnR0eFwiLCBcIi5ydGZcIixcclxuICAgICAgICBcIi5wYWdlc1wiLCBcIi50ZXhcIiwgXCIueG1sXCIsIFwiLmpzb25cIiwgXCIuc3h3XCIsIFwiLnBkZlwiLCBcIi5jc3ZcIiwgXCIudHRsXCIsIFwiLnNydFwiLCBcIi5wbmdcIiwgXCIuanBnXCIsIFwiLmpwZWdcIiwgXCIuYm1wXCJdO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1RteEF1dGggPSBmaWxlPy5hbGxvd1RteEF1dGggPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dUbXhVbmF1dGggPSBmaWxlPy5hbGxvd1RteFVuYXV0aCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZUFwaVVybCA9IGZpbGU/LmZpbGVBcGlVcmwgfHwgXCJodHRwczovL2xldHNtdC5ldS93cy9GaWxlcy9cIjtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHMgPSBmaWxlPy5maWxlRG93bmxvYWRUaW1lb3V0c1xyXG4gICAgICB8fCB7XHJcbiAgICAgIFwiaW5pdGlhbGl6aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwiZXh0cmFjdGluZ1wiOiAxMDAwLFxyXG4gICAgICBcIndhaXRpbmdcIjogMTAwMDAsXHJcbiAgICAgIFwidHJhbnNsYXRpbmdcIjogMTAwMCxcclxuICAgICAgXCJzYXZpbmdcIjogMTAwMCxcclxuICAgICAgXCJjb21wbGV0ZWRcIjogMTAwMCxcclxuICAgICAgXCJlcnJvclwiOiAxMDAwLFxyXG4gICAgICBcInF1ZXVpbmdcIjogMTAwMFxyXG4gICAgfTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcubWF4U2l6ZSA9IGZpbGU/Lm1heFNpemUgfHwgMzA3MjAwMDA7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLndvcmRMaW1pdCA9IGZpbGU/LndvcmRMaW1pdCA/PyAxMjUwO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlVXBsb2FkID0gZmlsZT8uZmlsZVVwbG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5vY3JQYWdlTGltaXQgPSBmaWxlPy5vY3JQYWdlTGltaXQgPz8gMTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dQREZTb3VyY2VEb3dubG9hZCA9IGZpbGU/LmFsbG93UERGU291cmNlRG93bmxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dJbWFnZVNvdXJjZURvd25sb2FkID0gZmlsZT8uYWxsb3dJbWFnZVNvdXJjZURvd25sb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnNvdXJjZURvd25sb2FkRXh0ZW5zaW9ucyA9IGZpbGU/LnNvdXJjZURvd25sb2FkRXh0ZW5zaW9ucyB8fCBbXCJwZGZcIiwgXCJwbmdcIiwgXCJqcGdcIiwgXCJqcGVnXCIsIFwiYm1wXCJdO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy50YXJnZXREb3dubG9hZEV4dGVuc2lvbk9yZGVyID0gZmlsZT8udGFyZ2V0RG93bmxvYWRFeHRlbnNpb25PcmRlcjtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcubnVtYmVyT2ZGaWxlc0FsbG93ZWQgPSBmaWxlPy5udW1iZXJPZkZpbGVzQWxsb3dlZCA+IDAgPyBmaWxlLm51bWJlck9mRmlsZXNBbGxvd2VkIDogMTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuc2hvd1RyYW5zbGF0aW9uTGltaXRzID0gZmlsZT8uc2hvd1RyYW5zbGF0aW9uTGltaXRzID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnVzZU11bHRpcGxlRmlsZVVwbG9hZCA9IGZpbGU/LnVzZU11bHRpcGxlRmlsZVVwbG9hZDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID0gZmlsZT8ucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID8/IFtcIkVUcmFuc2xhdGlvblwiXTtcclxuXHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmRpY3Rpb25hcnlVcmwgPSB0ZXh0Py5kaWN0aW9uYXJ5VXJsIHx8IFwiaHR0cHM6Ly9sZXRzbXQuZXUvYXBpL2RpY3Rpb25hcnkvR2V0RGljdGlvbmFyeUVudHJ5L1wiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5tYXhDaGFyTGVuZ3RoID0gdGV4dD8ubWF4Q2hhckxlbmd0aCA/PyA1MDAwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy53ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeCA9IHRleHQ/LndlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4IHx8IFwiL3dlYnRyYW5zbGF0ZT91cmw9XCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLndlYldpZGdldFJlZGlyZWN0VXJsUHJlZml4ID0gdGV4dD8ud2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXggfHwgXCJcIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcudXNlRGljdGlvbmFyeSA9IHRleHQ/LnVzZURpY3Rpb25hcnkgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dBdmFpbGFibGVFeHRlbnNpb25zID0gdGV4dD8uc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnMgPT0gbnVsbCA/IHRydWUgOiB0ZXh0LnNob3dBdmFpbGFibGVFeHRlbnNpb25zO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93QXV0aEV4dGVuc2lvbnMgPSB0ZXh0Py5zaG93QXV0aEV4dGVuc2lvbnMgPT0gbnVsbCA/IHRydWUgOiB0ZXh0LnNob3dBdXRoRXh0ZW5zaW9ucztcclxuICAgIHRoaXMuX3RleHRDb25maWcuYXV0b0ZvY3VzcyA9IHRleHQ/LmF1dG9Gb2N1c3M7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dFeHRlbnNpb25zVW5hdXRoT25seSA9IHRleHQ/LnNob3dFeHRlbnNpb25zVW5hdXRoT25seTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1NlbnNpdGl2ZUluZm9Ub29sdGlwID0gdGV4dD8uc2hvd1NlbnNpdGl2ZUluZm9Ub29sdGlwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5hbGxvd1dlYnNpdGVUcmFuc2xhdGlvbiA9IHRleHQ/LmFsbG93V2Vic2l0ZVRyYW5zbGF0aW9uID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dTdWdnZXN0aW9ucyA9IHRleHQ/LnNob3dTdWdnZXN0aW9ucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5hdXRvUmVkaXJlY3RUb1dlYlRyYW5zbGF0ZSA9IHRleHQ/LmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWdobGlnaHQgPSB0ZXh0Py5oaWdobGlnaHQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuY2hlY2tTb3VyY2VHcmFtbWFyID0gdGV4dD8uY2hlY2tTb3VyY2VHcmFtbWFyID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5ncmFtbWFyQ2hlY2tMYW5ndWFnZXMgPSB0ZXh0Py5ncmFtbWFyQ2hlY2tMYW5ndWFnZXMgPz8gW107XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dUYXJnZXRQbGFjZWhvbGRlciA9IHRleHQ/LnNob3dUYXJnZXRQbGFjZWhvbGRlcjtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0V4dGVuc2lvblBvcHVwID0gdGV4dD8uc2hvd0V4dGVuc2lvblBvcHVwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy52aXNpYmxlRXh0ZW5zaW9uQ291bnQgPSB0ZXh0Py52aXNpYmxlRXh0ZW5zaW9uQ291bnQgPz8gMztcclxuICAgIHRoaXMuX3RleHRDb25maWcuaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA9IHRleHQ/LmhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHMgPSB0ZXh0Py5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA/PyAyMDAwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPSB0ZXh0Py5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPz8gW1wiRVRyYW5zbGF0aW9uXCJdO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclZpc2libGUgPSB0ZXh0Py5wcm9ncmVzc0luZGljYXRvclZpc2libGUgPz8gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9UZXh0SW5wdXQgPSBhdWRpbz8uYXVkaW9UZXh0SW5wdXQgPz8gZmFsc2U7XHJcbiAgICAvLyBOb3Qgc2V0dGluZyBkZWZhdWx0IHVybCBiZWNhdXNlIHRoZXJlIGlzIG5vIHNlcnZpY2UgcHJvdmlkZWQgYnkgVGlsZGUgYW5kIHRoaXMgaXMgbm90IHVzZWQgYnkgZGVmYXVsdCBpbiB3ZWJzaXRlIHByb2plY3QuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb0FwaVVybCA9IGF1ZGlvPy5hdWRpb0FwaVVybDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvTWF4U2l6ZUJ5dGVzID0gYXVkaW8/LmF1ZGlvTWF4U2l6ZUJ5dGVzID8/IDEwMDAwMDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuc291cmNlTGFuZ3VhZ2VzID0gYXVkaW8/LnNvdXJjZUxhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRhdGFVcGRhdGVUaW1lRnJhbWUgPSBhdWRpbz8uZGF0YVVwZGF0ZVRpbWVGcmFtZSA/PyA1MDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcubWF4aW11bVJlY29yZFRpbWUgPSBhdWRpbz8ubWF4aW11bVJlY29yZFRpbWUgPz8gMzAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGljdGF0ZUFwaVVybCA9IGF1ZGlvPy5kaWN0YXRlQXBpVXJsID8/IFwicnVuYS50aWxkZS5sdlwiO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXBwSWQgPSBhdWRpbz8uYXBwSWQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBTZWNyZXQgPSBhdWRpbz8uYXBwU2VjcmV0O1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcucHVuY3R1YXRpb25NZXNzYWdlID0gYXVkaW8/LnB1bmN0dWF0aW9uTWVzc2FnZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID0gYXVkaW8/LmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG5cclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5sb2dvTG9jYXRpb24gPSB3ZWJ0cmFuc2xhdGU/LmxvZ29Mb2NhdGlvbiB8fCAnYXNzZXRzL3dlYnRyYW5zbGF0ZS90aWxkZV9sb2dvLnBuZyc7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcudHJhbnNsYXRlUGFnZVBhdGggPSB3ZWJ0cmFuc2xhdGU/LnRyYW5zbGF0ZVBhZ2VQYXRoO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmRlYnVnID0gd2VidHJhbnNsYXRlPy5kZWJ1ZyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy53ZWJMYW5nQXV0b2RldGVjdCA9IHdlYnRyYW5zbGF0ZT8ud2ViTGFuZ0F1dG9kZXRlY3QgfHwgdHJ1ZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5hbGxvd1N1Z2dlc3Rpb25zID0gd2VidHJhbnNsYXRlPy5hbGxvd1N1Z2dlc3Rpb25zIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmhpZGVQb3B1cCA9IHdlYnRyYW5zbGF0ZT8uaGlkZVBvcHVwIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLnNhbmRib3ggPSB3ZWJ0cmFuc2xhdGU/LnNhbmRib3ggPz8gXCJhbGxvdy1mb3JtcyBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luXCI7XHJcblxyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5hcGlVcmwgPSB0ZXJtQ29uZmlnPy5hcGlVcmwgfHwgXCJodHRwczovL3Rlcm0udGlsZGUuY29tXCI7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb24gPSB0ZXJtQ29uZmlnPy5jYW5DcmVhdGVDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkID0gdGVybUNvbmZpZz8uaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkID0gdGVybUNvbmZpZz8uaXNUZXJtUG9ydGFsU3VwcG9ydGVkID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1pbkxlbmd0aCA9IHRlcm1Db25maWc/LmNvbGxlY3Rpb25OYW1lTWluTGVuZ3RoID8/IDg7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNvbGxlY3Rpb25OYW1lTWF4TGVuZ3RoID0gdGVybUNvbmZpZz8uY29sbGVjdGlvbk5hbWVNYXhMZW5ndGggPz8gMzAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5yZWZyZXNoVGltZW91dE1zID0gdGVybUNvbmZpZz8ucmVmcmVzaFRpbWVvdXRNcyA/PyAxMDAwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgPSB0ZXJtQ29uZmlnPy5yZWZyZXNoVGltZW91dE1zV2hlbkltcG9ydGluZyA/PyA1MDAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5lbmdpbmVUZXJtVXJsID0gdGVybUNvbmZpZz8uZW5naW5lVGVybVVybDtcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmZyZWVUcmlhbFVybCA9IHRlcm1Db25maWc/LmZyZWVUcmlhbFVybCA/PyBcImh0dHBzOi8vdGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL3ByaWNpbmcvVGlsZGUtTVRcIjtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcubGVhcm5Nb3JlVXJsID0gdGVybUNvbmZpZz8ubGVhcm5Nb3JlVXJsID8/IFwiaHR0cHM6Ly93d3cudGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL1RpbGRlLU1ULWZlYXR1cmVzLWdsb3NzYXJ5XCI7XHJcblxyXG4gICAgLy8gc2VwZXJhdGVkIGJlY2F1c2UgZm9sbG93aW5nIHVybHMgaGF2ZSBtZXRob2QgbmFtZXMgYWRkZWRcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsID0gY29yZT8udHJhbnNsYXRpb25TZXJ2aWNlVXJsIHx8IFwiaHR0cHM6Ly93d3cubGV0c210LmV1L3dzL3NlcnZpY2Uuc3ZjL2pzb24vXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnRyYW5zbGF0aW9uVXJsID0gdGV4dD8udHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlRyYW5zbGF0ZUV4XCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVwZGF0ZVRyYW5zbGF0aW9uVXJsID0gdGV4dD8udXBkYXRlVHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlVwZGF0ZVRyYW5zbGF0aW9uXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnN5c3RlbUxpc3RVcmwgPSBjb3JlPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJHZXRTeXN0ZW1MaXN0XCI7XHJcblxyXG4gICAgdGhpcy5fYXBpVjJDb25maWcueEFwaUtleSA9IGFwaVYyQ29uZmlnPy54QXBpS2V5O1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgPSBhcGlWMkNvbmZpZz8ubXRBcGlVcmwgPz8gXCJhcGkvdHJhbnNsYXRlL1wiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuc3lzdGVtTGlzdFVybCA9IGFwaVYyQ29uZmlnPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJsYW5ndWFnZS1kaXJlY3Rpb25zXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy50cmFuc2xhdGlvblVybCA9IGFwaVYyQ29uZmlnPy50cmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwidGV4dFwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZmlsZVRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LmZpbGVUcmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwiZmlsZVwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZ3JhbW1hckNoZWNrVXJsID0gYXBpVjJDb25maWc/LmdyYW1tYXJDaGVja1VybCA/PyBcImh0dHBzOi8vbXQuY3MudXQuZWUvYXBpL2dyYW1tYXJcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmF1dG9Eb21haW5EZXRlY3Rpb24gPSBhcGlWMkNvbmZpZz8uYXV0b0RvbWFpbkRldGVjdGlvbiA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubGFuZ3VhZ2VzID0gdGV4dFRvU3BlZWNoPy5sYW5ndWFnZXMgPz8ge307XHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubWF4Q2hhcnNJblRleHQgPSB0ZXh0VG9TcGVlY2g/Lm1heENoYXJzSW5UZXh0ID8/IDMwMDA7XHJcblxyXG4gICAgdGhpcy5lZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvIG1ha2Ugc3VyZSBuZWNlc3NhcnkgcHJvcGVydGllcyBhcmUgbm90IHR1cm5lZCBvbiBiZWNhdXNlIGluIGFwaSBWMiBzb21lIGZlYXR1cmVzIGFyZSBub3QgaW1wbGVtbmVudGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZWRpdFByb3BlcnRpZXNCYXNlZE9uQXBpKCkge1xyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyKSB7XHJcbiAgICAgIHRoaXMudGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -7,12 +7,12 @@ import { TranslationStatuss } from '../../models/translation-statuss.model';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common/http";
|
|
9
9
|
import * as i2 from "../../../tld-common/services";
|
|
10
|
-
import * as i3 from "../../../tld-term/services";
|
|
10
|
+
import * as i3 from "../../../tld-term/services/terminology.service";
|
|
11
11
|
export class TldTranslateFileApiService {
|
|
12
|
-
constructor(http, config,
|
|
12
|
+
constructor(http, config, terminologyService, alerts) {
|
|
13
13
|
this.http = http;
|
|
14
14
|
this.config = config;
|
|
15
|
-
this.
|
|
15
|
+
this.terminologyService = terminologyService;
|
|
16
16
|
this.alerts = alerts;
|
|
17
17
|
this._segmentLimit = -1;
|
|
18
18
|
this._sourceDownloadStatusses = [TranslationStatuss.WAITING, TranslationStatuss.SAVING, TranslationStatuss.COMPLETED, TranslationStatuss.TRANSLATING];
|
|
@@ -46,7 +46,7 @@ export class TldTranslateFileApiService {
|
|
|
46
46
|
segmentLimit: this._segmentLimit,
|
|
47
47
|
ocrPageLimit: this.config.fileConfig.ocrPageLimit
|
|
48
48
|
};
|
|
49
|
-
const selectedCollectionId = this.
|
|
49
|
+
const selectedCollectionId = this.terminologyService.selectedIdForTranslation();
|
|
50
50
|
if (selectedCollectionId) {
|
|
51
51
|
params.termCorpusId = selectedCollectionId;
|
|
52
52
|
}
|
|
@@ -155,12 +155,12 @@ export class TldTranslateFileApiService {
|
|
|
155
155
|
return Common.getAuthHeaders(this.config);
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
-
TldTranslateFileApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileApiService, deps: [{ token: i1.HttpClient }, { token: i2.TldTranslateConfigService }, { token: i3.
|
|
158
|
+
TldTranslateFileApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileApiService, deps: [{ token: i1.HttpClient }, { token: i2.TldTranslateConfigService }, { token: i3.TerminologyService }, { token: i2.TldAlertService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
159
159
|
TldTranslateFileApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileApiService, providedIn: 'root' });
|
|
160
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileApiService, decorators: [{
|
|
161
161
|
type: Injectable,
|
|
162
162
|
args: [{
|
|
163
163
|
providedIn: 'root'
|
|
164
164
|
}]
|
|
165
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TldTranslateConfigService }, { type: i3.
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1kb2N1bWVudC9zZXJ2aWNlcy9hcGkvZmlsZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUEwTixNQUFNLDRCQUE0QixDQUFDO0FBS3ZSLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQVE1RSxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQTZCLElBQWdCLEVBQzFCLE1BQWlDLEVBQ2pDLGlCQUE0QyxFQUM1QyxNQUF1QjtRQUhiLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEyQjtRQUM1QyxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUV6QixrQkFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLDZCQUF3QixHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFIcEgsQ0FBQztJQUsvQyx5QkFBeUIsQ0FBQyxVQUE0QztRQUNwRSxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsUUFBUSxDQUFDLFVBQStCO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQXVDO1FBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTNELHVEQUF1RDtRQUN2RCxnQ0FBZ0M7UUFDaEMsTUFBTSxNQUFNLEdBQVE7WUFDbEIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSztZQUNuQyxRQUFRLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDMUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUztZQUMzQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDaEMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVk7U0FDbEQsQ0FBQztRQUdGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDL0UsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixNQUFNLENBQUMsWUFBWSxHQUFHLG9CQUFvQixDQUFDO1NBQzVDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3BCLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLDJCQUEyQixFQUFlLENBQUM7Z0JBQ2hGLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxNQUFNLEtBQUssQ0FBQzthQUNiO1lBQ0QsT0FBTyxRQUFrQixDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQTZCO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUNELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFzQjtRQUN0QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUUzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0IsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbEIsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQzthQUM5RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBMkYsRUFBRSxFQUFFO1lBQ3hHLE1BQU0sV0FBVyxHQUErQixFQUFFLENBQUE7WUFDbEQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFrQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzFCLE1BQU0sb0NBQW9DLENBQUM7aUJBQzVDO2dCQUNELFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUMvQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BDLFdBQVcsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ2hGLFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDekMsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3hDO2lCQUNJLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO2dCQUN2RCxXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlFO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxTQUFTLENBQUMsVUFBZ0M7UUFDeEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0MsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3JJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxFQUFFO2dCQUNqQyxNQUFNLEtBQUssR0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sS0FBSyxDQUFDO2FBQ2I7WUFDRCxNQUFNLFdBQVcsR0FBc0M7Z0JBQ3JELElBQUksRUFBRSxRQUFRLENBQUMsUUFBUTtnQkFDdkIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUM1QixrQkFBa0IsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBd0I7Z0JBQ3ZFLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDO2FBQzdFLENBQUM7WUFDRixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDO21CQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNqRyxXQUFXLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO2FBQzVDO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxZQUF1QyxFQUFFLFFBQWdCO1FBQ2pGLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDOUIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sS0FBSyxHQUFnQixFQUFFLENBQUM7UUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUU7WUFDOUIsSUFBSSxHQUFHLElBQUksS0FBSyxFQUFFO2dCQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7dUJBQ3ZFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRTtvQkFDL0UsU0FBUztpQkFDVjthQUNGO1lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbEYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsQ0FBQztRQUNoRixNQUFNLFlBQVksR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNuSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xCLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTVDLHFFQUFxRTtZQUNyRSxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUNYO1lBQ0QsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO2dCQUNYLEdBQUcsR0FBRyxHQUFHLENBQUM7YUFDWDtZQUVELE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDOzt1SEF2S1UsMEJBQTBCOzJIQUExQiwwQkFBMEIsY0FGekIsTUFBTTsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbW1vbiwgRXJyb3JDb2RlLCBJRG93bmxvYWRGaWxlUGFyYW1zLCBJRmlsZUFwaVNlcnZpY2UsIElHZXRGaWxlU3RhdHVzUGFyYW1zLCBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UsIElSZW1vdmVGaWxlUGFyYW1zLCBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zLCBJVGxkRXJyb3IsIElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJRmlsZU1ldGEgfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9maWxlLWFwaS9maWxlLW1ldGEubW9kZWwnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGxkVGVybUNvbGxlY3Rpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC10ZXJtL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgSVRyYW5zbGF0aW9uRmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGUtZmlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU3RhdHVzcyB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGlvbi1zdGF0dXNzLm1vZGVsJztcclxuaW1wb3J0IHsgSUZpbGVQcmV2aWV3VjFQcm9ncmVzc1Jlc3BvbnNlIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS1wcmV2aWV3LXYxLXByb2dyZXNzLXJlc3BvbnNlLm1vZGVsJztcclxuaW1wb3J0IHsgSUZpbGVQcmV2aWV3VjFSZXNwb25zZUJvZHkgfSBmcm9tICcuL21vZGVscy9maWxlLXByZXZpZXctdjEtcmVzcG9uc2UtYm9keS5tb2RlbCc7XHJcbmltcG9ydCB7IElHZXRGaWxlVHJhbnNsYXRpb25TdGF0dXNWMVJlc3BvbnNlIH0gZnJvbSAnLi9tb2RlbHMvZ2V0LWZpbGUtdHJhbnNsYXRpb24tc3RhdHVzLXYxLXJlc3BvbnNlLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZUZpbGVBcGlTZXJ2aWNlIGltcGxlbWVudHMgSUZpbGVBcGlTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbGxlY3Rpb25TZXJ2aWNlOiBUbGRUZXJtQ29sbGVjdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSkgeyB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlZ21lbnRMaW1pdCA9IC0xO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZURvd25sb2FkU3RhdHVzc2VzID0gW1RyYW5zbGF0aW9uU3RhdHVzcy5XQUlUSU5HLCBUcmFuc2xhdGlvblN0YXR1c3MuU0FWSU5HLCBUcmFuc2xhdGlvblN0YXR1c3MuQ09NUExFVEVELCBUcmFuc2xhdGlvblN0YXR1c3MuVFJBTlNMQVRJTkddO1xyXG5cclxuICB0cmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3KHByb3BlcnRpZXM6IElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zKSB7XHJcbiAgICBjb25zdCBwcmV2aWV3TWV0aG9kTmFtZSA9IFwiR2V0RG9jdW1lbnRQcmV2aWV3XCI7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IGRvY0lkOiBwcm9wZXJ0aWVzLnRyYW5zbGF0aW9uRG9jSWQsIGZpbGVOYW1lOiBwcm9wZXJ0aWVzLmZpbGVOYW1lIH07XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVBcGlVcmwgKyBwcmV2aWV3TWV0aG9kTmFtZTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEF1dGhIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHsgaGVhZGVycyB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkKHByb3BlcnRpZXM6IElEb3dubG9hZEZpbGVQYXJhbXMpIHtcclxuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBcIkRvd25sb2FkXCI7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVBcGlVcmwgKyBtZXRob2ROYW1lO1xyXG4gICAgY29uc3QgcGFyYW1zID0geyBkb2NJZDogcHJvcGVydGllcy5pZCwgZmlsZU5hbWU6IHByb3BlcnRpZXMuZmlsZU1ldGEuZmlsZU5hbWUgfTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBDb21tb24uZ2V0QXV0aEhlYWRlcnModGhpcy5jb25maWcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHBhcmFtczogcGFyYW1zLCBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6IFwiYmxvYlwiIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRUcmFuc2xhdGlvbihwcm9wZXJ0aWVzOiBJU3RhcnRGaWxlVHJhbnNsYXRpb25QYXJhbXMpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0QXV0aEhlYWRlcnMoKTtcclxuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBcIlN0YXJ0VHJhbnNsYXRpb25cIjtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZUFwaVVybCArIG1ldGhvZE5hbWU7XHJcblxyXG4gICAgLy90cmFuc2xhdGlvbkZpbGUubGFzdFRyYW5zbGF0aW9uQXV0aEhlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgLy8gVE9ETy4gQ3JlYXRlIHR5cGUgZm9yIHBhcmFtcy5cclxuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xyXG4gICAgICBzeXN0ZW1JZDogcHJvcGVydGllcy5zeXN0ZW0uaWQsXHJcbiAgICAgIGFwcElkOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmFwcElkLFxyXG4gICAgICBmaWxlTmFtZTogcHJvcGVydGllcy5maWxlLm9yaWdpbmFsRmlsZU5hbWUsXHJcbiAgICAgIHRtcG5hbWU6IHByb3BlcnRpZXMuZmlsZS50bXBOYW1lLFxyXG4gICAgICB3b3JkTGltaXQ6IHRoaXMuY29uZmlnLmZpbGVDb25maWcud29yZExpbWl0LFxyXG4gICAgICBzZWdtZW50TGltaXQ6IHRoaXMuX3NlZ21lbnRMaW1pdCxcclxuICAgICAgb2NyUGFnZUxpbWl0OiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm9jclBhZ2VMaW1pdFxyXG4gICAgfTtcclxuXHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRDb2xsZWN0aW9uSWQgPSB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlLnNlbGVjdGVkSWRGb3JUcmFuc2xhdGlvbigpO1xyXG4gICAgaWYgKHNlbGVjdGVkQ29sbGVjdGlvbklkKSB7XHJcbiAgICAgIHBhcmFtcy50ZXJtQ29ycHVzSWQgPSBzZWxlY3RlZENvbGxlY3Rpb25JZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHsgaGVhZGVycyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgY29uc3QgZXJyb3IgPSB7IEVycm9yQ29kZTogRXJyb3JDb2RlLkNBTlRfU1RBUlRfRklMRV9UUkFOU0xBVElPTiB9IGFzIElUbGRFcnJvcjtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUocHJvcGVydGllczogSVJlbW92ZUZpbGVQYXJhbXMpIHtcclxuICAgIGlmICghcHJvcGVydGllcy5maWxlLmlkKSB7XHJcbiAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBcIkRlbGV0ZVwiO1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlQXBpVXJsICsgbWV0aG9kTmFtZTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgZG9jSWQ6IHByb3BlcnRpZXMuZmlsZS5pZCB9O1xyXG4gICAgY29uc3QgaGVhZGVycyA9IENvbW1vbi5nZXRBdXRoSGVhZGVycyh0aGlzLmNvbmZpZyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgcGFyYW1zOiBwYXJhbXMsIGhlYWRlcnM6IGhlYWRlcnMgfSk7XHJcbiAgfVxyXG5cclxuICBzb3VyY2VGaWxlUHJldmlldyhmaWxlOiBJVHJhbnNsYXRpb25GaWxlKTogT2JzZXJ2YWJsZTxJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IFwiVXBsb2FkXCI7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVBcGlVcmwgKyBtZXRob2ROYW1lO1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEF1dGhIZWFkZXJzKCk7XHJcbiAgICBkZWxldGUgaGVhZGVyc1snQ29udGVudC1UeXBlJ107XHJcblxyXG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUuZmlsZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SUZpbGVQcmV2aWV3VjFQcm9ncmVzc1Jlc3BvbnNlIHwgSUZpbGVQcmV2aWV3VjFSZXNwb25zZUJvZHk+XHJcbiAgICAgICh1cmwsIGZvcm1EYXRhLCB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyhoZWFkZXJzKSwgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsIG9ic2VydmU6IFwiZXZlbnRzXCIgfSlcclxuICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogSHR0cEV2ZW50PElGaWxlUHJldmlld1YxUHJvZ3Jlc3NSZXNwb25zZT4gfCBIdHRwRXZlbnQ8SUZpbGVQcmV2aWV3VjFSZXNwb25zZUJvZHk+KSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmV0dXJudmFsdWU6IElTb3VyY2VGaWxlUHJldmlld1Jlc3BvbnNlID0ge31cclxuICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xyXG4gICAgICAgICAgY29uc3QgYm9keSA9IHJlc3BvbnNlLmJvZHkgYXMgSUZpbGVQcmV2aWV3VjFSZXNwb25zZUJvZHk7XHJcbiAgICAgICAgICBpZiAoIWJvZHkuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGJvZHkuZXJyb3IpO1xyXG4gICAgICAgICAgICB0aHJvdyBcIkZhaWxlZCB0byBsb2FkIHRyYW5zbGF0aW9uIHByZXZpZXdcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybnZhbHVlLmlzRmlsZVByZXZpZXdMb2FkZWQgPSBib2R5LnN1Y2Nlc3M7XHJcbiAgICAgICAgICByZXR1cm52YWx1ZS50bXBOYW1lID0gYm9keS5maWxlbmFtZTtcclxuICAgICAgICAgIHJldHVybnZhbHVlLnNvdXJjZVByZXZpZXdIYXNIdG1sID0gIWJvZHkucHJldmlldy5pbmNsdWRlcyhcImNsYXNzPVxcXCJuby1wcmV2aWV3XCIpO1xyXG4gICAgICAgICAgcmV0dXJudmFsdWUuc291cmNlUHJldmlldyA9IGJvZHkucHJldmlldztcclxuICAgICAgICAgIHJldHVybnZhbHVlLndvcmRDb3VudCA9IGJvZHkud29yZGNvdW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChyZXNwb25zZS50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XHJcbiAgICAgICAgICByZXR1cm52YWx1ZS5wZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogcmVzcG9uc2UubG9hZGVkIC8gcmVzcG9uc2UudG90YWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0dXJudmFsdWU7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1cyhwcm9wZXJ0aWVzOiBJR2V0RmlsZVN0YXR1c1BhcmFtcyk6IE9ic2VydmFibGU8SUdldEZpbGVUcmFuc2xhdGlvblN0YXR1c1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBtZXRob2ROYW1lID0gXCJHZXRTdGF0dXNcIjtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZUFwaVVybCArIG1ldGhvZE5hbWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SUdldEZpbGVUcmFuc2xhdGlvblN0YXR1c1YxUmVzcG9uc2U+KHVybCwgeyBkb2NJZDogcHJvcGVydGllcy5maWxlLmlkIH0sIHsgaGVhZGVyczogdGhpcy5nZXRBdXRoSGVhZGVycygpIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIChyZXNwb25zZSkgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIGNvbnN0IGVycm9yOiBJVGxkRXJyb3IgPSB7IEVycm9yQ29kZTogcmVzcG9uc2UgfTtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmV0dXJudmFsdWU6IElHZXRGaWxlVHJhbnNsYXRpb25TdGF0dXNSZXNwb25zZSA9IHtcclxuICAgICAgICAgIG5hbWU6IHJlc3BvbnNlLmZpbGVuYW1lLFxyXG4gICAgICAgICAgcHJvZ3Jlc3M6IHJlc3BvbnNlLmNvbXBsZXRlZCxcclxuICAgICAgICAgIHRyYW5zbGF0aW9uU3RhdHVzczogcmVzcG9uc2Uuc3RhdHVzLnRvVXBwZXJDYXNlKCkgYXMgVHJhbnNsYXRpb25TdGF0dXNzLFxyXG4gICAgICAgICAgZXh0ZW5zaW9uczogdGhpcy5nZXRFeHRlbnNpb25BcnJheShyZXNwb25zZS50cmFuc2xhdGlvbnMsIHJlc3BvbnNlLmZpbGVuYW1lKVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZURvd25sb2FkU3RhdHVzc2VzLmluY2x1ZGVzKHJldHVybnZhbHVlLnRyYW5zbGF0aW9uU3RhdHVzcylcclxuICAgICAgICAgICYmIHRoaXMuY29uZmlnLmZpbGVDb25maWcuc291cmNlRG93bmxvYWRFeHRlbnNpb25zPy5pbmNsdWRlcyhwcm9wZXJ0aWVzLmZpbGUub3JpZ2luYWxFeHRlbnNpb24pKSB7XHJcbiAgICAgICAgICByZXR1cm52YWx1ZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXR1cm52YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEV4dGVuc2lvbkFycmF5KHRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKCF0cmFuc2xhdGlvbnMgfHwgIWZpbGVOYW1lKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGNvbnN0IGFycmF5OiBJRmlsZU1ldGFbXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdHJhbnNsYXRpb25zKSB7XHJcbiAgICAgIGlmIChrZXkgPT0gXCJ0bXhcIikge1xyXG4gICAgICAgIGlmICghKCh0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmlzQXV0aCAmJiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmFsbG93VG14QXV0aClcclxuICAgICAgICAgIHx8ICghdGhpcy5jb25maWcuY29yZUNvbmZpZy5pc0F1dGggJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5hbGxvd1RteFVuYXV0aCkpKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgYXJyYXkucHVzaCh7IGV4dGVuc2lvbjoga2V5LCBmaWxlTmFtZTogdHJhbnNsYXRpb25zW2tleV0gfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWUuc2xpY2UoZmlsZU5hbWUubGFzdEluZGV4T2YoXCIuXCIpICsgMSkudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBjb25zdCBleHRlbnNpb25PcmRlckFycmF5ID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy50YXJnZXREb3dubG9hZEV4dGVuc2lvbk9yZGVyO1xyXG4gICAgY29uc3QgZGVmYXVsdE9yZGVyID0gW2ZpbGVFeHRlbnNpb24sIFwidG14XCJdO1xyXG4gICAgY29uc3QgY29ycmVjdE9yZGVyID0gZXh0ZW5zaW9uT3JkZXJBcnJheSAmJiBleHRlbnNpb25PcmRlckFycmF5W2ZpbGVFeHRlbnNpb25dID8gZXh0ZW5zaW9uT3JkZXJBcnJheVtmaWxlRXh0ZW5zaW9uXSA6IGRlZmF1bHRPcmRlcjtcclxuICAgIGFycmF5LnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgbGV0IGFJeCA9IGNvcnJlY3RPcmRlci5pbmRleE9mKGEuZXh0ZW5zaW9uKTtcclxuICAgICAgbGV0IGJJeCA9IGNvcnJlY3RPcmRlci5pbmRleE9mKGIuZXh0ZW5zaW9uKTtcclxuXHJcbiAgICAgIC8vIGVsZW1lbnRzIHRoYXQgZG9lc24ndCBleGlzdCBpbiBjb25maWcsIHNob3VsZCBiZSBpbiBsYXN0IHBvc2l0aW9uLlxyXG4gICAgICBpZiAoYUl4IDwgMCkge1xyXG4gICAgICAgIGFJeCA9IDEwMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYkl4IDwgMCkge1xyXG4gICAgICAgIGJJeCA9IDEwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGFJeCAtIGJJeDtcclxuICAgIH0pXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEF1dGhIZWFkZXJzKCkge1xyXG4gICAgcmV0dXJuIENvbW1vbi5nZXRBdXRoSGVhZGVycyh0aGlzLmNvbmZpZyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
165
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TldTranslateConfigService }, { type: i3.TerminologyService }, { type: i2.TldAlertService }]; } });
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1kb2N1bWVudC9zZXJ2aWNlcy9hcGkvZmlsZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUEwTixNQUFNLDRCQUE0QixDQUFDO0FBS3ZSLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQVE1RSxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQTZCLElBQWdCLEVBQzFCLE1BQWlDLEVBQ2pDLGtCQUFzQyxFQUN0QyxNQUF1QjtRQUhiLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUV6QixrQkFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLDZCQUF3QixHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFIcEgsQ0FBQztJQUsvQyx5QkFBeUIsQ0FBQyxVQUE0QztRQUNwRSxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsUUFBUSxDQUFDLFVBQStCO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQXVDO1FBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTNELHVEQUF1RDtRQUN2RCxnQ0FBZ0M7UUFDaEMsTUFBTSxNQUFNLEdBQVE7WUFDbEIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSztZQUNuQyxRQUFRLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDMUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUztZQUMzQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDaEMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVk7U0FDbEQsQ0FBQztRQUdGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEYsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixNQUFNLENBQUMsWUFBWSxHQUFHLG9CQUFvQixDQUFDO1NBQzVDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3BCLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLDJCQUEyQixFQUFlLENBQUM7Z0JBQ2hGLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxNQUFNLEtBQUssQ0FBQzthQUNiO1lBQ0QsT0FBTyxRQUFrQixDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQTZCO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUNELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFzQjtRQUN0QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUUzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0IsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbEIsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQzthQUM5RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBMkYsRUFBRSxFQUFFO1lBQ3hHLE1BQU0sV0FBVyxHQUErQixFQUFFLENBQUE7WUFDbEQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFrQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzFCLE1BQU0sb0NBQW9DLENBQUM7aUJBQzVDO2dCQUNELFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUMvQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BDLFdBQVcsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ2hGLFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDekMsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3hDO2lCQUNJLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO2dCQUN2RCxXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlFO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxTQUFTLENBQUMsVUFBZ0M7UUFDeEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0MsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3JJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxFQUFFO2dCQUNqQyxNQUFNLEtBQUssR0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sS0FBSyxDQUFDO2FBQ2I7WUFDRCxNQUFNLFdBQVcsR0FBc0M7Z0JBQ3JELElBQUksRUFBRSxRQUFRLENBQUMsUUFBUTtnQkFDdkIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUM1QixrQkFBa0IsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBd0I7Z0JBQ3ZFLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDO2FBQzdFLENBQUM7WUFDRixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDO21CQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNqRyxXQUFXLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO2FBQzVDO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxZQUF1QyxFQUFFLFFBQWdCO1FBQ2pGLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDOUIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sS0FBSyxHQUFnQixFQUFFLENBQUM7UUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUU7WUFDOUIsSUFBSSxHQUFHLElBQUksS0FBSyxFQUFFO2dCQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7dUJBQ3ZFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRTtvQkFDL0UsU0FBUztpQkFDVjthQUNGO1lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbEYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsQ0FBQztRQUNoRixNQUFNLFlBQVksR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNuSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xCLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTVDLHFFQUFxRTtZQUNyRSxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUNYO1lBQ0QsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO2dCQUNYLEdBQUcsR0FBRyxHQUFHLENBQUM7YUFDWDtZQUVELE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDOzt1SEF2S1UsMEJBQTBCOzJIQUExQiwwQkFBMEIsY0FGekIsTUFBTTsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbW1vbiwgRXJyb3JDb2RlLCBJRG93bmxvYWRGaWxlUGFyYW1zLCBJRmlsZUFwaVNlcnZpY2UsIElHZXRGaWxlU3RhdHVzUGFyYW1zLCBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UsIElSZW1vdmVGaWxlUGFyYW1zLCBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zLCBJVGxkRXJyb3IsIElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJRmlsZU1ldGEgfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9maWxlLWFwaS9maWxlLW1ldGEubW9kZWwnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLXRlcm0vc2VydmljZXMvdGVybWlub2xvZ3kuc2VydmljZSc7XHJcbmltcG9ydCB7IElUcmFuc2xhdGlvbkZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNsYXRlLWZpbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblN0YXR1c3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNsYXRpb24tc3RhdHVzcy5tb2RlbCc7XHJcbmltcG9ydCB7IElGaWxlUHJldmlld1YxUHJvZ3Jlc3NSZXNwb25zZSB9IGZyb20gJy4vbW9kZWxzL2ZpbGUtcHJldmlldy12MS1wcm9ncmVzcy1yZXNwb25zZS5tb2RlbCc7XHJcbmltcG9ydCB7IElGaWxlUHJldmlld1YxUmVzcG9uc2VCb2R5IH0gZnJvbSAnLi9tb2RlbHMvZmlsZS1wcmV2aWV3LXYxLXJlc3BvbnNlLWJvZHkubW9kZWwnO1xyXG5pbXBvcnQgeyBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzVjFSZXNwb25zZSB9IGZyb20gJy4vbW9kZWxzL2dldC1maWxlLXRyYW5zbGF0aW9uLXN0YXR1cy12MS1yZXNwb25zZS5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVGaWxlQXBpU2VydmljZSBpbXBsZW1lbnRzIElGaWxlQXBpU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtaW5vbG9neVNlcnZpY2U6IFRlcm1pbm9sb2d5U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UpIHsgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWdtZW50TGltaXQgPSAtMTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zb3VyY2VEb3dubG9hZFN0YXR1c3NlcyA9IFtUcmFuc2xhdGlvblN0YXR1c3MuV0FJVElORywgVHJhbnNsYXRpb25TdGF0dXNzLlNBVklORywgVHJhbnNsYXRpb25TdGF0dXNzLkNPTVBMRVRFRCwgVHJhbnNsYXRpb25TdGF0dXNzLlRSQU5TTEFUSU5HXTtcclxuXHJcbiAgdHJhbnNsYXRlZERvY3VtZW50UHJldmlldyhwcm9wZXJ0aWVzOiBJVHJhbnNsYXRlZERvY3VtZW50UHJldmlld1BhcmFtcykge1xyXG4gICAgY29uc3QgcHJldmlld01ldGhvZE5hbWUgPSBcIkdldERvY3VtZW50UHJldmlld1wiO1xyXG4gICAgY29uc3QgcGFyYW1zID0geyBkb2NJZDogcHJvcGVydGllcy50cmFuc2xhdGlvbkRvY0lkLCBmaWxlTmFtZTogcHJvcGVydGllcy5maWxlTmFtZSB9O1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlQXBpVXJsICsgcHJldmlld01ldGhvZE5hbWU7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRBdXRoSGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgcGFyYW1zLCB7IGhlYWRlcnMgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZChwcm9wZXJ0aWVzOiBJRG93bmxvYWRGaWxlUGFyYW1zKSB7XHJcbiAgICBjb25zdCBtZXRob2ROYW1lID0gXCJEb3dubG9hZFwiO1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlQXBpVXJsICsgbWV0aG9kTmFtZTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgZG9jSWQ6IHByb3BlcnRpZXMuaWQsIGZpbGVOYW1lOiBwcm9wZXJ0aWVzLmZpbGVNZXRhLmZpbGVOYW1lIH07XHJcbiAgICBjb25zdCBoZWFkZXJzID0gQ29tbW9uLmdldEF1dGhIZWFkZXJzKHRoaXMuY29uZmlnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgeyBwYXJhbXM6IHBhcmFtcywgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiBcImJsb2JcIiB9KTtcclxuICB9XHJcblxyXG4gIHN0YXJ0VHJhbnNsYXRpb24ocHJvcGVydGllczogSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEF1dGhIZWFkZXJzKCk7XHJcbiAgICBjb25zdCBtZXRob2ROYW1lID0gXCJTdGFydFRyYW5zbGF0aW9uXCI7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVBcGlVcmwgKyBtZXRob2ROYW1lO1xyXG5cclxuICAgIC8vdHJhbnNsYXRpb25GaWxlLmxhc3RUcmFuc2xhdGlvbkF1dGhIZWFkZXJzID0gaGVhZGVycztcclxuICAgIC8vIFRPRE8uIENyZWF0ZSB0eXBlIGZvciBwYXJhbXMuXHJcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcclxuICAgICAgc3lzdGVtSWQ6IHByb3BlcnRpZXMuc3lzdGVtLmlkLFxyXG4gICAgICBhcHBJZDogdGhpcy5jb25maWcuY29yZUNvbmZpZy5hcHBJZCxcclxuICAgICAgZmlsZU5hbWU6IHByb3BlcnRpZXMuZmlsZS5vcmlnaW5hbEZpbGVOYW1lLFxyXG4gICAgICB0bXBuYW1lOiBwcm9wZXJ0aWVzLmZpbGUudG1wTmFtZSxcclxuICAgICAgd29yZExpbWl0OiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLndvcmRMaW1pdCxcclxuICAgICAgc2VnbWVudExpbWl0OiB0aGlzLl9zZWdtZW50TGltaXQsXHJcbiAgICAgIG9jclBhZ2VMaW1pdDogdGhpcy5jb25maWcuZmlsZUNvbmZpZy5vY3JQYWdlTGltaXRcclxuICAgIH07XHJcblxyXG5cclxuICAgIGNvbnN0IHNlbGVjdGVkQ29sbGVjdGlvbklkID0gdGhpcy50ZXJtaW5vbG9neVNlcnZpY2Uuc2VsZWN0ZWRJZEZvclRyYW5zbGF0aW9uKCk7XHJcbiAgICBpZiAoc2VsZWN0ZWRDb2xsZWN0aW9uSWQpIHtcclxuICAgICAgcGFyYW1zLnRlcm1Db3JwdXNJZCA9IHNlbGVjdGVkQ29sbGVjdGlvbklkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHBhcmFtcywgeyBoZWFkZXJzIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBjb25zdCBlcnJvciA9IHsgRXJyb3JDb2RlOiBFcnJvckNvZGUuQ0FOVF9TVEFSVF9GSUxFX1RSQU5TTEFUSU9OIH0gYXMgSVRsZEVycm9yO1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2UgYXMgc3RyaW5nO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShwcm9wZXJ0aWVzOiBJUmVtb3ZlRmlsZVBhcmFtcykge1xyXG4gICAgaWYgKCFwcm9wZXJ0aWVzLmZpbGUuaWQpIHtcclxuICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IFwiRGVsZXRlXCI7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVBcGlVcmwgKyBtZXRob2ROYW1lO1xyXG4gICAgY29uc3QgcGFyYW1zID0geyBkb2NJZDogcHJvcGVydGllcy5maWxlLmlkIH07XHJcbiAgICBjb25zdCBoZWFkZXJzID0gQ29tbW9uLmdldEF1dGhIZWFkZXJzKHRoaXMuY29uZmlnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgeyBwYXJhbXM6IHBhcmFtcywgaGVhZGVyczogaGVhZGVycyB9KTtcclxuICB9XHJcblxyXG4gIHNvdXJjZUZpbGVQcmV2aWV3KGZpbGU6IElUcmFuc2xhdGlvbkZpbGUpOiBPYnNlcnZhYmxlPElTb3VyY2VGaWxlUHJldmlld1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBtZXRob2ROYW1lID0gXCJVcGxvYWRcIjtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZUFwaVVybCArIG1ldGhvZE5hbWU7XHJcblxyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0QXV0aEhlYWRlcnMoKTtcclxuICAgIGRlbGV0ZSBoZWFkZXJzWydDb250ZW50LVR5cGUnXTtcclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZChcImZpbGVcIiwgZmlsZS5maWxlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJRmlsZVByZXZpZXdWMVByb2dyZXNzUmVzcG9uc2UgfCBJRmlsZVByZXZpZXdWMVJlc3BvbnNlQm9keT5cclxuICAgICAgKHVybCwgZm9ybURhdGEsIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKGhlYWRlcnMpLCByZXBvcnRQcm9ncmVzczogdHJ1ZSwgb2JzZXJ2ZTogXCJldmVudHNcIiB9KVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8SUZpbGVQcmV2aWV3VjFQcm9ncmVzc1Jlc3BvbnNlPiB8IEh0dHBFdmVudDxJRmlsZVByZXZpZXdWMVJlc3BvbnNlQm9keT4pID0+IHtcclxuICAgICAgICBjb25zdCByZXR1cm52YWx1ZTogSVNvdXJjZUZpbGVQcmV2aWV3UmVzcG9uc2UgPSB7fVxyXG4gICAgICAgIGlmIChyZXNwb25zZS50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBjb25zdCBib2R5ID0gcmVzcG9uc2UuYm9keSBhcyBJRmlsZVByZXZpZXdWMVJlc3BvbnNlQm9keTtcclxuICAgICAgICAgIGlmICghYm9keS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYm9keS5lcnJvcik7XHJcbiAgICAgICAgICAgIHRocm93IFwiRmFpbGVkIHRvIGxvYWQgdHJhbnNsYXRpb24gcHJldmlld1wiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJudmFsdWUuaXNGaWxlUHJldmlld0xvYWRlZCA9IGJvZHkuc3VjY2VzcztcclxuICAgICAgICAgIHJldHVybnZhbHVlLnRtcE5hbWUgPSBib2R5LmZpbGVuYW1lO1xyXG4gICAgICAgICAgcmV0dXJudmFsdWUuc291cmNlUHJldmlld0hhc0h0bWwgPSAhYm9keS5wcmV2aWV3LmluY2x1ZGVzKFwiY2xhc3M9XFxcIm5vLXByZXZpZXdcIik7XHJcbiAgICAgICAgICByZXR1cm52YWx1ZS5zb3VyY2VQcmV2aWV3ID0gYm9keS5wcmV2aWV3O1xyXG4gICAgICAgICAgcmV0dXJudmFsdWUud29yZENvdW50ID0gYm9keS53b3JkY291bnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlLnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuICAgICAgICAgIHJldHVybnZhbHVlLnBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiByZXNwb25zZS5sb2FkZWQgLyByZXNwb25zZS50b3RhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXR1cm52YWx1ZTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdHVzKHByb3BlcnRpZXM6IElHZXRGaWxlU3RhdHVzUGFyYW1zKTogT2JzZXJ2YWJsZTxJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBcIkdldFN0YXR1c1wiO1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlQXBpVXJsICsgbWV0aG9kTmFtZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzVjFSZXNwb25zZT4odXJsLCB7IGRvY0lkOiBwcm9wZXJ0aWVzLmZpbGUuaWQgfSwgeyBoZWFkZXJzOiB0aGlzLmdldEF1dGhIZWFkZXJzKCkgfSkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgKHJlc3BvbnNlKSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgY29uc3QgZXJyb3I6IElUbGRFcnJvciA9IHsgRXJyb3JDb2RlOiByZXNwb25zZSB9O1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByZXR1cm52YWx1ZTogSUdldEZpbGVUcmFuc2xhdGlvblN0YXR1c1Jlc3BvbnNlID0ge1xyXG4gICAgICAgICAgbmFtZTogcmVzcG9uc2UuZmlsZW5hbWUsXHJcbiAgICAgICAgICBwcm9ncmVzczogcmVzcG9uc2UuY29tcGxldGVkLFxyXG4gICAgICAgICAgdHJhbnNsYXRpb25TdGF0dXNzOiByZXNwb25zZS5zdGF0dXMudG9VcHBlckNhc2UoKSBhcyBUcmFuc2xhdGlvblN0YXR1c3MsXHJcbiAgICAgICAgICBleHRlbnNpb25zOiB0aGlzLmdldEV4dGVuc2lvbkFycmF5KHJlc3BvbnNlLnRyYW5zbGF0aW9ucywgcmVzcG9uc2UuZmlsZW5hbWUpXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAodGhpcy5fc291cmNlRG93bmxvYWRTdGF0dXNzZXMuaW5jbHVkZXMocmV0dXJudmFsdWUudHJhbnNsYXRpb25TdGF0dXNzKVxyXG4gICAgICAgICAgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnM/LmluY2x1ZGVzKHByb3BlcnRpZXMuZmlsZS5vcmlnaW5hbEV4dGVuc2lvbikpIHtcclxuICAgICAgICAgIHJldHVybnZhbHVlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldHVybnZhbHVlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXh0ZW5zaW9uQXJyYXkodHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRyYW5zbGF0aW9ucyB8fCAhZmlsZU5hbWUpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXJyYXk6IElGaWxlTWV0YVtdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0cmFuc2xhdGlvbnMpIHtcclxuICAgICAgaWYgKGtleSA9PSBcInRteFwiKSB7XHJcbiAgICAgICAgaWYgKCEoKHRoaXMuY29uZmlnLmNvcmVDb25maWcuaXNBdXRoICYmIHRoaXMuY29uZmlnLmZpbGVDb25maWcuYWxsb3dUbXhBdXRoKVxyXG4gICAgICAgICAgfHwgKCF0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmlzQXV0aCAmJiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmFsbG93VG14VW5hdXRoKSkpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBhcnJheS5wdXNoKHsgZXh0ZW5zaW9uOiBrZXksIGZpbGVOYW1lOiB0cmFuc2xhdGlvbnNba2V5XSB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZS5zbGljZShmaWxlTmFtZS5sYXN0SW5kZXhPZihcIi5cIikgKyAxKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIGNvbnN0IGV4dGVuc2lvbk9yZGVyQXJyYXkgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXI7XHJcbiAgICBjb25zdCBkZWZhdWx0T3JkZXIgPSBbZmlsZUV4dGVuc2lvbiwgXCJ0bXhcIl07XHJcbiAgICBjb25zdCBjb3JyZWN0T3JkZXIgPSBleHRlbnNpb25PcmRlckFycmF5ICYmIGV4dGVuc2lvbk9yZGVyQXJyYXlbZmlsZUV4dGVuc2lvbl0gPyBleHRlbnNpb25PcmRlckFycmF5W2ZpbGVFeHRlbnNpb25dIDogZGVmYXVsdE9yZGVyO1xyXG4gICAgYXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBsZXQgYUl4ID0gY29ycmVjdE9yZGVyLmluZGV4T2YoYS5leHRlbnNpb24pO1xyXG4gICAgICBsZXQgYkl4ID0gY29ycmVjdE9yZGVyLmluZGV4T2YoYi5leHRlbnNpb24pO1xyXG5cclxuICAgICAgLy8gZWxlbWVudHMgdGhhdCBkb2Vzbid0IGV4aXN0IGluIGNvbmZpZywgc2hvdWxkIGJlIGluIGxhc3QgcG9zaXRpb24uXHJcbiAgICAgIGlmIChhSXggPCAwKSB7XHJcbiAgICAgICAgYUl4ID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChiSXggPCAwKSB7XHJcbiAgICAgICAgYkl4ID0gMTAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gYUl4IC0gYkl4O1xyXG4gICAgfSlcclxuICAgIHJldHVybiBhcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QXV0aEhlYWRlcnMoKSB7XHJcbiAgICByZXR1cm4gQ29tbW9uLmdldEF1dGhIZWFkZXJzKHRoaXMuY29uZmlnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -7,6 +7,7 @@ import { FILE_API_SERVICE_TOKEN } from '../../../injection-tokens';
|
|
|
7
7
|
import { Common, ErrorCode } from '../../tld-common/models';
|
|
8
8
|
import { TranslationStatuss } from '../models';
|
|
9
9
|
import { FileConversionTypes } from '../models/file-conversion-types.model';
|
|
10
|
+
import { FileExtensions } from '../../../components/shared/extension-dialog/models/enums';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "../../tld-common/services";
|
|
12
13
|
import * as i2 from "@angular/platform-browser";
|
|
@@ -298,8 +299,11 @@ export class TldTranslateFileService {
|
|
|
298
299
|
translationFile.filePreviewProgress = data.percentDone;
|
|
299
300
|
}
|
|
300
301
|
translatedDocPreview(translationFile) {
|
|
302
|
+
// show preview for original extension if exists, if not, then preview for docx, if not then try with original filename.
|
|
303
|
+
const fileName = translationFile.availableExtensions.find(ext => ext.extension === FileExtensions.DOCX)?.fileName
|
|
304
|
+
?? translationFile.originalFileName;
|
|
301
305
|
const params = {
|
|
302
|
-
fileName:
|
|
306
|
+
fileName: fileName,
|
|
303
307
|
translationDocId: translationFile.id
|
|
304
308
|
};
|
|
305
309
|
this.fileApi.translatedDocumentPreview(params)
|
|
@@ -407,4 +411,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
407
411
|
type: Inject,
|
|
408
412
|
args: [FILE_API_SERVICE_TOKEN]
|
|
409
413
|
}] }, { type: i1.TldAlertService }, { type: i2.DomSanitizer }, { type: i1.TldTranslateConfigService }, { type: i3.TldSystemService }]; } });
|
|
410
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBQzFGLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQXFPLE1BQU0seUJBQXlCLENBQUM7QUFLL1IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7OztBQU01RSxNQUFNLE9BQU8sdUJBQXVCO0lBZ0NsQyxZQUNtRCxPQUF3QixFQUN4RCxNQUF1QixFQUNoQyxTQUF1QixFQUN2QixNQUFpQyxFQUN4QixTQUEyQjtRQUpLLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hELFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FB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LElBQUksQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxlQUFpQyxFQUFFLEtBQVU7UUFDMUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBa0I7WUFDbkMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsS0FBSztZQUM3QixrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO1NBQ2pGLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDdEYsT0FBTztTQUNSO1FBRUQsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7b0hBM2JVLHVCQUF1QixrQkFpQ3hCLHNCQUFzQjt3SEFqQ3JCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWtDSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IElubGluZU1lc3NhZ2UsIElubGluZU1lc3NhZ2VUeXBlLCBGaWxlVXBsb2FkRXJyb3IgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAsIHJldHJ5V2hlbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRklMRV9BUElfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBDb21tb24sIEVycm9yQ29kZSwgSURvd25sb2FkRmlsZVBhcmFtcywgSUZpbGVBcGlTZXJ2aWNlLCBJRmlsZU1ldGEsIElHZXRGaWxlU3RhdHVzUGFyYW1zLCBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UsIElSZW1vdmVGaWxlUGFyYW1zLCBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zLCBJVGxkRXJyb3IsIElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTeXN0ZW0gfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9zeXN0ZW0vc3lzdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvbW9kZWxzJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TdGF0dXNzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlsZUNvbnZlcnNpb25UeXBlcyB9IGZyb20gJy4uL21vZGVscy9maWxlLWNvbnZlcnNpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRpb25GaWxlIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zbGF0ZS1maWxlLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZUZpbGVTZXJ2aWNlIHtcclxuXHJcbiAgdHJhbnNsYXRpb25TdGFydGVkOiBib29sZWFuO1xyXG4gIC8qKiBWYWx1ZSB0byBiZSBzZXQgdG8gdHJ1ZSB3aGlsZSBsb2FkaW5nIHNvdXJjZSBwcmV2aWV3LiBBdCB0aGF0IHRpbWUsIHRyYW5zbGF0ZSBidXR0b24gc2hvdWxkIGJlIGRpc2FibGVkLiAqL1xyXG4gIGdldCBpc1VwbG9hZGluZ0ZpbGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmZpbGVzVXBsb2FkaW5nLmxlbmd0aCA+IDA7IH07XHJcbiAgdHJhbnNsYXRpb25GaWxlczogSVRyYW5zbGF0aW9uRmlsZVtdID0gW107XHJcbiAgZmlsZU5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGZpbGVzQWRkZWQ6IG51bWJlcjtcclxuICBhbnlQZGZGaWxlTG9hZGVkOiBib29sZWFuO1xyXG4gIGFueUltYWdlRmlsZUxvYWRlZDogYm9vbGVhbjtcclxuICAvL2ZvciBtdWx0aXBsZSBmaWxlIGNvbXBvbmVudFxyXG4gIHRyYW5zbGF0ZWRDb3VudDogbnVtYmVyID0gMDtcclxuICBtdWx0aXBsZUZpbGVVcGxvYWRBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGRpc2FibGVUcmFuc2xhdGVCdXR0b24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblN0YXJ0ZWQgfHwgdGhpcy5pc1VwbG9hZGluZ0ZpbGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9vbkZpbGVzVXBsb2FkZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSBhY3RpdmVTeXN0ZW06IFN5c3RlbTtcclxuICAvLyBUT0RPLiBDb25maWd1cmFibGU/XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dCA9IDEwMDA7XHJcbiAgLy8gMCBpcyBuZXR3b3JrIGVycm9yLCBzaG91bGQgdHJ5IGFnYWluXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmV0cnlFcnJvckNvZGVzID0gWzBdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25ldHdvcmtFcnJvck1heFJldHJpZXMgPSAyO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXR1c1RpbWVvdXRzID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfb25DbGVhciA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zdXBwb3J0ZWRJbWFnZUV4dGVuc2lvbnMgPSBbXCJwbmdcIiwgXCJqcGdcIiwgXCJqcGVnXCIsIFwiYm1wXCJdO1xyXG4gIHByaXZhdGUgZmlsZXNVcGxvYWRpbmc6IHN0cmluZ1tdID0gW107XHJcbiAgcHJpdmF0ZSBub3RGb3VuZEVycm9yQ29kZSA9IFwiRV80MDRcIjtcclxuICBwcml2YXRlIG5vdEZvdW5kUmVtb3ZlRXJyb3JDb2RlID0gXCJFXzQwNF9SRU1PVkVcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgZmlsZUFwaTogSUZpbGVBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuRVhUUkFDVElOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLkVYVFJBQ1RJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5JTklUSUFMSVpJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5RVUVVSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuU0FWSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuVFJBTlNMQVRJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5XQUlUSU5HXSA9IDEwMDAwO1xyXG4gIH1cclxuXHJcbiAgLy8gY2xlYXJzIGFsbCBsb2FkZWQgZGF0YVxyXG4gIGNsZWFyKCkge1xyXG4gICAgY29uc3QgZmlsZUFyciA9IHRoaXMudHJhbnNsYXRpb25GaWxlcztcclxuICAgIGZpbGVBcnIuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICBmaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucmVtb3ZlKGZpbGUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jbGVhclBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29uQ2xlYXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzVXBsb2FkZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkZpbGVzVXBsb2FkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoZmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgLy8gZmlsZS50cmFuc2xhdGluZyBuZWVkcyB0byBiZSBzZXQsIHNvIG5vIG90aGVyIGdldCBzdGF0dXMgcmVxdWVzdHMgYXJlIHNlbnQgdG8gc2VydmVyLlxyXG4gICAgZmlsZS50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgY29uc3QgaXggPSB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuaW5kZXhPZihmaWxlKTtcclxuICAgIGlmIChpeCA8IDApIHtcclxuICAgICAgdGhyb3cgXCJDYW4ndCByZW1vdmUgZmlsZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtczogSVJlbW92ZUZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IGZpbGVcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5maWxlQXBpLnJlbW92ZShwYXJhbXMpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcih7IEVycm9yQ29kZTogdGhpcy5ub3RGb3VuZFJlbW92ZUVycm9yQ29kZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKCk7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRpb25GaWxlcy5zcGxpY2UoaXgsIDEpO1xyXG4gICAgdGhpcy5maWxlTmFtZXMuc3BsaWNlKGl4LCAxKTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGlvbkZpbGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmhhc0FueUltYWdlT3JQZGYoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZG93bmxvYWRUYXJnZXQodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlLCBmaWxlTWV0YTogSUZpbGVNZXRhKSB7XHJcbiAgICBpZiAodHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRvd25sb2FkUGFyYW1zOiBJRG93bmxvYWRGaWxlUGFyYW1zID0ge1xyXG4gICAgICBpZDogdHJhbnNsYXRpb25GaWxlLmlkLFxyXG4gICAgICBmaWxlTWV0YTogZmlsZU1ldGFcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZG93bmxvYWQoZG93bmxvYWRQYXJhbXMpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgc2F2ZUFzKHJlc3BvbnNlLCBmaWxlTWV0YSA/IGZpbGVNZXRhLmZpbGVOYW1lIDogdHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMub25FcnJvcihlcnJvciwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRTb3VyY2UodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcblxyXG4gICAgaWYgKCF0cmFuc2xhdGlvbkZpbGUuc291cmNlRG93bmxvYWRBdmFpbGFibGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIlNvdXJjZSBkb3dubG9hZCB1bmF2YWlsYWJsZS5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbnZlcnRlZEZpbGVOYW1lID0gdGhpcy5jb252ZXJ0ZWRTb3VyY2VGaWxlTmFtZSh0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSk7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZ1NvdXJjZSA9IHRydWU7XHJcbiAgICBjb25zdCBkb3dubG9hZFBhcmFtczogSURvd25sb2FkRmlsZVBhcmFtcyA9IHtcclxuICAgICAgaWQ6IHRyYW5zbGF0aW9uRmlsZS5pZCxcclxuICAgICAgZmlsZU1ldGE6IHsgZmlsZU5hbWU6IGNvbnZlcnRlZEZpbGVOYW1lIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZG93bmxvYWQoZG93bmxvYWRQYXJhbXMpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmdTb3VyY2UgPSBmYWxzZTtcclxuICAgICAgc2F2ZUFzKHJlc3BvbnNlLCBjb252ZXJ0ZWRGaWxlTmFtZSk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5vbkVycm9yKGVycm9yLCB0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZEZpbGVQcmV2aWV3KGZpbGU6IEZpbGUpOiBJVHJhbnNsYXRpb25GaWxlIHtcclxuICAgIGNvbnN0IGZpbGVzQWxsb3dlZCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcubnVtYmVyT2ZGaWxlc0FsbG93ZWQ7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGUubmFtZTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGlvbkZpbGVzLmxlbmd0aCA+PSBmaWxlc0FsbG93ZWQpIHtcclxuICAgICAgY29uc3QgZXJyb3JDb2RlID0gXCJFUlJPUlMuXCIgKyAoZmlsZXNBbGxvd2VkID4gMSA/IFwiTUFYX05VTUJFUl9PRl9GSUxFU1wiIDogXCJJTkNSRUFTRV9NQVhfTlVNQkVSX09GX0ZJTEVTXCIpO1xyXG4gICAgICB0aGlzLmFsZXJ0cy5lcnJvcihlcnJvckNvZGUsIG51bGwsIHsgbGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmssIGxpbWl0OiBmaWxlc0FsbG93ZWQgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZpbGVOYW1lcy5pbmNsdWRlcyhmaWxlTmFtZSkpIHtcclxuICAgICAgdGhpcy5hbGVydHMuZXJyb3IoXCJFUlJPUlMuRklMRV9BTFJFQURZX0FEREVEXCIsIG51bGwsIHsgZmlsZU5hbWU6IGZpbGUubmFtZSB9KTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlc1VwbG9hZGluZy5wdXNoKGZpbGVOYW1lKTtcclxuICAgIGNvbnN0IHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSA9IHtcclxuICAgICAgb3JpZ2luYWxGaWxlTmFtZTogZmlsZU5hbWUsXHJcbiAgICAgIC8vIG5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICBvcmlnaW5hbEV4dGVuc2lvbjogQ29tbW9uLmdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWUpLFxyXG4gICAgICB0cmFuc2xhdGlvblN0YXR1c3M6IFRyYW5zbGF0aW9uU3RhdHVzcy5VUExPQURJTkcsXHJcbiAgICAgIGZpbGUsXHJcbiAgICAgIG1lc3NhZ2VzOiBbXVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRpb25GaWxlcy5wdXNoKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB0aGlzLmZpbGVOYW1lcy5wdXNoKGZpbGVOYW1lKTtcclxuICAgIGNvbnN0IGlzSW1hZ2UgPSB0aGlzLl9zdXBwb3J0ZWRJbWFnZUV4dGVuc2lvbnMuaW5jbHVkZXMoQ29tbW9uLmdldEZpbGVFeHRlbnNpb24odHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpKTtcclxuICAgIGlmIChpc0ltYWdlKSB7XHJcbiAgICAgIHRoaXMuYW55SW1hZ2VGaWxlTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmZpbGVUeXBlID0gRmlsZUNvbnZlcnNpb25UeXBlcy5JTUFHRTtcclxuICAgIH1cclxuICAgIGNvbnN0IGlzUGRmID0gXCJwZGZcIiA9PT0gQ29tbW9uLmdldEZpbGVFeHRlbnNpb24odHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpO1xyXG4gICAgaWYgKGlzUGRmKSB7XHJcbiAgICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5maWxlVHlwZSA9IEZpbGVDb252ZXJzaW9uVHlwZXMuUERGO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWxlQXBpLnNvdXJjZUZpbGVQcmV2aWV3KHRyYW5zbGF0aW9uRmlsZSkuc3Vic2NyaWJlKChyZXNwKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwLmlzRmlsZVByZXZpZXdMb2FkZWQpIHtcclxuICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID0gVHJhbnNsYXRpb25TdGF0dXNzLlVQTE9BREVEO1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZGVkKGZpbGVOYW1lKTtcclxuICAgICAgICB0aGlzLmZpbGVQcmV2aWV3QWxlcnRzKGlzUGRmLCByZXNwLndvcmRDb3VudCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkZpbGVQcmV2aWV3TG9hZChyZXNwLCB0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMucmVtb3ZlKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25GaWxlO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlQnV0dG9uQ2xpY2soYWN0aXZlOiBJQWN0aXZlRGF0YSkge1xyXG4gICAgdGhpcy50cmFuc2xhdGlvblN0YXJ0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcclxuICAgICAgdGhpcy5zdGFydEZpbGVUcmFuc2xhdGlvbihhY3RpdmUsIGZpbGUpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHN0YXJ0RmlsZVRyYW5zbGF0aW9uKGFjdGl2ZVN5c3RlbTogSUFjdGl2ZURhdGEsIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgaWYgKCF0aGlzLmNhblN0YXJ0VHJhbnNsYXRpb24odHJhbnNsYXRpb25GaWxlKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiQ291bGQgbm90IHN0YXJ0IGZpbGUgdHJhbnNsYXRpb24hXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZVN5c3RlbSA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhcnRlZCA9IHRydWU7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSB0cnVlO1xyXG4gICAgLy8gcXVpdGUgd2VpcmQuIFJlc3BvbnNlIGNhbiBiZSBzdHJ1Y3R1cmUgd2l0aCBzdWNjZXNzIGFuZCBlcnJvciBwYXJhbXMgYW5kIGl0IGNhbiBhbHNvIGJlIHBsYWluIHN0cmluZyBpbiBzdWNjZXNzLlxyXG4gICAgY29uc3QgcGFyYW1zOiBJU3RhcnRGaWxlVHJhbnNsYXRpb25QYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IHRyYW5zbGF0aW9uRmlsZSxcclxuICAgICAgc3lzdGVtOiBhY3RpdmVTeXN0ZW0uc3lzdGVtXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLnN0YXJ0VHJhbnNsYXRpb24ocGFyYW1zKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsZUFwaUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3IpO1xyXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICAvLyB0aHJvdyBlcnJvcjtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKChyZXNwb25zZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIC8vIHNvbWV0aGluZyBnb25lIHdyb25nXHJcbiAgICAgIGlmICghcmVzcG9uc2UpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pZCA9IHJlc3BvbnNlO1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGFydGVkT25TZXJ2ZXIgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5jaGVja1RyYW5zbGF0aW9uUHJvZ3Jlc3ModHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29udmVydGVkU291cmNlRmlsZU5hbWUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwb3N0Rml4ID0gXCJfY29udmVydGVkLmRvY3hcIjtcclxuICAgIGZpbGVOYW1lID0gZmlsZU5hbWUuc2xpY2UoMCwgZmlsZU5hbWUubGFzdEluZGV4T2YoXCIuXCIpKTtcclxuICAgIGNvbnN0IGNvbnZlcnRlZEZpbGVOYW1lID0gZmlsZU5hbWUgKyBwb3N0Rml4O1xyXG4gICAgcmV0dXJuIGNvbnZlcnRlZEZpbGVOYW1lO1xyXG4gIH1cclxuXHJcbiAgZmlsZVVwbG9hZEVycm9yKGVycm9yOiBGaWxlVXBsb2FkRXJyb3IpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IGVycm9yLmZpbGVOYW1lLFxyXG4gICAgICBtYXhTaXplTUI6IENvbW1vbi5ieXRlc1RvTWIodGhpcy5jb25maWcuZmlsZUNvbmZpZy5tYXhTaXplKSxcclxuICAgICAgZm9ybWF0czogdGhpcy5jb25maWcuZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzLmpvaW4oXCIsIFwiKSxcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGlua1xyXG4gICAgfVxyXG4gICAgdGhpcy5hbGVydHMuZXJyb3IoYEVSUk9SUy5GSUxFX1VQTE9BRC4ke2Vycm9yLmNvZGV9YCwgbnVsbCwgcGFyYW1zKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2tzIGFsbCBuZWNlc3NhcnkgcGFyYW1zIHRoYXQgYXJlIHJlc3BvbnNpYmxlIHdoZXRlciBpdCBpcyBhbGxvd2VkIHRvIHN0YXJ0IG5ldyB0cmFuc2xhdGlvbi5cclxuICBwcml2YXRlIGNhblN0YXJ0VHJhbnNsYXRpb24odHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25GaWxlLnRtcE5hbWUgJiYgIXRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgY29uc3QgZmluaXNoZWRTdGF0dXMgPSBUcmFuc2xhdGlvblN0YXR1c3MuQ09NUExFVEVEO1xyXG4gICAgY29uc3QgcGFyYW1zOiBJR2V0RmlsZVN0YXR1c1BhcmFtcyA9IHtcclxuICAgICAgZmlsZTogdHJhbnNsYXRpb25GaWxlLFxyXG4gICAgICBzcmNMYW5nOiB0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSxcclxuICAgICAgdHJnTGFuZzogdGhpcy5hY3RpdmVTeXN0ZW0udGFyZ2V0TGFuZ3VhZ2VcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZ2V0U3RhdHVzKHBhcmFtcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gSWYgbmV0d29yayBlcnJvciwgY2hlY2sgYWdhaW4gYmVjYXVzZSBmaWxlIGhhcyBub3QgZmFpbGVkLlxyXG4gICAgICAgIC8vIHRoaXMgY29kZSBuZWVkcyB0byBiZSB0ZXN0ZWQsIGJlY2F1c2UgY2FudCByZXBlYXQgaXRcclxuICAgICAgICByZXRyeVdoZW4oKG9ic2VydmFibGVzKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZXMucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKGVycm9yLCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGkgPCB0aGlzLl9uZXR3b3JrRXJyb3JNYXhSZXRyaWVzICYmIHRoaXMuX3JldHJ5RXJyb3JDb2Rlcy5pbmNsdWRlcyhlcnJvci5zdGF0dXMpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGltZXIodGhpcy5fZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5zeXN0ZW1JZCAmJiByZXNwb25zZS5zeXN0ZW1JZCAhPT0gdGhpcy5hY3RpdmVTeXN0ZW0uaWQpIHtcclxuICAgICAgICAgICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlU3lzdGVtKHJlc3BvbnNlLnN5c3RlbUlkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlU3lzdGVtID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IHJlc3BvbnNlLnRyYW5zbGF0aW9uU3RhdHVzcztcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZSA9IHJlc3BvbnNlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlO1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnByb2dyZXNzID0gcmVzcG9uc2UucHJvZ3Jlc3M7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUuYXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHJlc3BvbnNlLmV4dGVuc2lvbnM7XHJcbiAgICAgICAgICBpZiAodHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9PSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1IpIHtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3I6IElUbGRFcnJvciA9IHtcclxuICAgICAgICAgICAgICBFcnJvckNvZGU6XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZS5zdWJzdGF0dXMgPz8gRXJyb3JDb2RlLkVfRkFJTEVEX0lOX1RSQU5TTEFUSU9OLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICAgICAgLy90aHJvdyBlcnJvcjtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9PT0gZmluaXNoZWRTdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVkQ291bnQgKz0gMTtcclxuICAgICAgICAgICAgLy90cmFuc2xhdGlvbkZpbGUubmFtZSA9IHJlc3BvbnNlLm5hbWU7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5kb3dubG9hZEF2YWlsYWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVkRG9jUHJldmlldyh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vdHJhbnNsYXRpb25GaWxlLmF2YWlsYWJsZUV4dGVuc2lvbnMgPSB0aGlzLmdldEV4dGVuc2lvbkFycmF5KHJlc3BvbnNlLnRyYW5zbGF0aW9ucywgdHJhbnNsYXRpb25GaWxlLm5hbWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHRpbWVvdXQgPSB0aGlzLl9kZWZhdWx0U3RhdHVzQ2hlY2tUaW1lb3V0O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0cyAmJiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdKSB7XHJcbiAgICAgICAgICAgICAgdGltZW91dCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc3RhdHVzVGltZW91dHMgJiYgdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc10pIHtcclxuICAgICAgICAgICAgICB0aW1lb3V0ID0gdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICAgICAgICAgIH0sIHRpbWVvdXQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IFRyYW5zbGF0aW9uU3RhdHVzcy5FUlJPUjtcclxuICAgICAgICAgIHRoaXMub25UcmFuc2xhdGlvbkZpbGVFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25GaWxlUHJldmlld0xvYWQoZGF0YTogSVNvdXJjZUZpbGVQcmV2aWV3UmVzcG9uc2UsIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRmlsZVByZXZpZXdMb2FkZWQgPSBkYXRhLmlzRmlsZVByZXZpZXdMb2FkZWQ7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudG1wTmFtZSA9IGRhdGEudG1wTmFtZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VQcmV2aWV3SGFzSHRtbCA9IGRhdGEuc291cmNlUHJldmlld0hhc0h0bWw7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuc291cmNlUHJldmlldyA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGRhdGEuc291cmNlUHJldmlldyk7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVByZXZpZXdQcm9ncmVzcyA9IGRhdGEucGVyY2VudERvbmU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVkRG9jUHJldmlldyh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGNvbnN0IHBhcmFtczogSVRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXdQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGVOYW1lOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSxcclxuICAgICAgdHJhbnNsYXRpb25Eb2NJZDogdHJhbnNsYXRpb25GaWxlLmlkXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLnRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXcocGFyYW1zKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogeyBzdWNjZXNzOiBib29sZWFuLCBlcnJvcj86IHN0cmluZywgc3RhdHVzOiBzdHJpbmcsIHByZXZpZXc6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzcG9uc2UucHJldmlldykge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0ZWRQcmV2aWV3ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocmVzcG9uc2UucHJldmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0ZWRQcmV2aWV3ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUsIGVycm9yOiBhbnkpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID0gVHJhbnNsYXRpb25TdGF0dXNzLkVSUk9SO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxlUHJldmlld0FsZXJ0cyhpc1BkZjogYm9vbGVhbiwgd29yZENvdW50OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IG1heFdvcmRDb3VudCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcud29yZExpbWl0O1xyXG4gICAgY29uc3QgYWxlcnRQYXJhbXMgPSB7XHJcbiAgICAgIHJlZ2lzdGVyTGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmssXHJcbiAgICAgIHdvcmRDb3VudDogbWF4V29yZENvdW50LFxyXG4gICAgICBhcHBOYW1lOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmFwcE5hbWVcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5jb25maWcuZmlsZUNvbmZpZy5zaG93VHJhbnNsYXRpb25MaW1pdHMpIHtcclxuICAgICAgaWYgKGlzUGRmICYmIHRoaXMuY29uZmlnLmZpbGVDb25maWcub2NyUGFnZUxpbWl0KSB7XHJcbiAgICAgICAgdGhpcy5hbGVydHMud2FybmluZyhcIlRMRF9UUkFOU0xBVEUuUERGX1BBR0VfTElNSVRfTVNHXCIsIGFsZXJ0UGFyYW1zKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAod29yZENvdW50ICYmIG1heFdvcmRDb3VudCAmJiB3b3JkQ291bnQgPiBtYXhXb3JkQ291bnQpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiVExEX1RSQU5TTEFURS5ET0NfV09SRF9DTlRfTElNSVRfTVNHXCIsIGFsZXJ0UGFyYW1zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkVycm9yKGVycm9yOiBhbnksIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgaWYgKHRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVycm9yRm9yTWVzc2FnZSA9IGVycm9yLnN0YXR1cyA9PT0gNDA0ID8geyBFcnJvckNvZGU6IHRoaXMubm90Rm91bmRFcnJvckNvZGUgfSA6IGVycm9yO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3JGb3JNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZVVwbG9hZGVkKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZpbGVJeCA9IHRoaXMuZmlsZXNVcGxvYWRpbmcuaW5kZXhPZihmaWxlTmFtZSk7XHJcbiAgICBpZiAoZmlsZUl4ID49IDApIHtcclxuICAgICAgdGhpcy5maWxlc1VwbG9hZGluZy5zcGxpY2UoZmlsZUl4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkaW5nLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLl9vbkZpbGVzVXBsb2FkZWQubmV4dChudWxsKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBbnlJbWFnZU9yUGRmKCkge1xyXG4gICAgbGV0IGFueUltYWdlID0gZmFsc2U7XHJcbiAgICBsZXQgYW55UGRmID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggJiYgIShhbnlQZGYgJiYgYW55SW1hZ2UpOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IHRoaXMudHJhbnNsYXRpb25GaWxlc1tpXTtcclxuICAgICAgaWYgKGZpbGUuZmlsZVR5cGUgPT09IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0UpIHtcclxuICAgICAgICBhbnlJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZmlsZS5maWxlVHlwZSA9PT0gRmlsZUNvbnZlcnNpb25UeXBlcy5QREYpIHtcclxuICAgICAgICBhbnlQZGYgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSBhbnlJbWFnZTtcclxuICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IGFueVBkZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzID0gW107XHJcbiAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYW55SW1hZ2VGaWxlTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpbGVOYW1lcyA9IFtdO1xyXG4gICAgdGhpcy50cmFuc2xhdGVkQ291bnQgPSAwO1xyXG4gICAgdGhpcy5maWxlc1VwbG9hZGluZyA9IFtdO1xyXG4gICAgdGhpcy5fb25DbGVhci5uZXh0KG51bGwpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlLCBlcnJvcjogYW55KSB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5hbGVydHMuZmluZEVycm9yVGl0bGVBbmRMb2NhbGl6YXRpb25LZXkoZXJyb3IpO1xyXG4gICAgY29uc3Qgb3JpZ2luYWxGaWxlTmFtZSA9IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lO1xyXG4gICAgY29uc3QgaW5saW5lTWVzc2FnZTogSW5saW5lTWVzc2FnZSA9IHtcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UudGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXNzYWdlLmRlc2NyaXB0aW9uLFxyXG4gICAgICB0eXBlOiBJbmxpbmVNZXNzYWdlVHlwZS5FUlJPUixcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7IGZpbGVOYW1lOiBvcmlnaW5hbEZpbGVOYW1lLCAuLi50aGlzLmFsZXJ0cy5kZWZhdWx0UGFyYW1zIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmFsZXJ0cy5lcnJvcihtZXNzYWdlLmRlc2NyaXB0aW9uLCBtZXNzYWdlLnRpdGxlLCB7IGZpbGVOYW1lOiBvcmlnaW5hbEZpbGVOYW1lIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNsYXRpb25GaWxlLm1lc3NhZ2VzLnB1c2goaW5saW5lTWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBQzFGLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQXFPLE1BQU0seUJBQXlCLENBQUM7QUFLL1IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7QUFLMUYsTUFBTSxPQUFPLHVCQUF1QjtJQWdDbEMsWUFDbUQsT0FBd0IsRUFDeEQsTUFBdUIsRUFDaEMsU0FBdUIsRUFDdkIsTUFBaUMsRUFDeEIsU0FBMkI7UUFKSyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4RCxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLFdB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LEVBQUUsTUFBTTtpQkFDbkI7OzBCQWtDSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IElubGluZU1lc3NhZ2UsIElubGluZU1lc3NhZ2VUeXBlLCBGaWxlVXBsb2FkRXJyb3IgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAsIHJldHJ5V2hlbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRklMRV9BUElfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBDb21tb24sIEVycm9yQ29kZSwgSURvd25sb2FkRmlsZVBhcmFtcywgSUZpbGVBcGlTZXJ2aWNlLCBJRmlsZU1ldGEsIElHZXRGaWxlU3RhdHVzUGFyYW1zLCBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UsIElSZW1vdmVGaWxlUGFyYW1zLCBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zLCBJVGxkRXJyb3IsIElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTeXN0ZW0gfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9zeXN0ZW0vc3lzdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvbW9kZWxzJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TdGF0dXNzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlsZUNvbnZlcnNpb25UeXBlcyB9IGZyb20gJy4uL21vZGVscy9maWxlLWNvbnZlcnNpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRpb25GaWxlIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zbGF0ZS1maWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZUV4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3NoYXJlZC9leHRlbnNpb24tZGlhbG9nL21vZGVscy9lbnVtcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSB7XHJcblxyXG4gIHRyYW5zbGF0aW9uU3RhcnRlZDogYm9vbGVhbjtcclxuICAvKiogVmFsdWUgdG8gYmUgc2V0IHRvIHRydWUgd2hpbGUgbG9hZGluZyBzb3VyY2UgcHJldmlldy4gQXQgdGhhdCB0aW1lLCB0cmFuc2xhdGUgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZC4gKi9cclxuICBnZXQgaXNVcGxvYWRpbmdGaWxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5maWxlc1VwbG9hZGluZy5sZW5ndGggPiAwOyB9O1xyXG4gIHRyYW5zbGF0aW9uRmlsZXM6IElUcmFuc2xhdGlvbkZpbGVbXSA9IFtdO1xyXG4gIGZpbGVOYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBmaWxlc0FkZGVkOiBudW1iZXI7XHJcbiAgYW55UGRmRmlsZUxvYWRlZDogYm9vbGVhbjtcclxuICBhbnlJbWFnZUZpbGVMb2FkZWQ6IGJvb2xlYW47XHJcbiAgLy9mb3IgbXVsdGlwbGUgZmlsZSBjb21wb25lbnRcclxuICB0cmFuc2xhdGVkQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgbXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBkaXNhYmxlVHJhbnNsYXRlQnV0dG9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TdGFydGVkIHx8IHRoaXMuaXNVcGxvYWRpbmdGaWxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfb25GaWxlc1VwbG9hZGVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgYWN0aXZlU3lzdGVtOiBTeXN0ZW07XHJcbiAgLy8gVE9ETy4gQ29uZmlndXJhYmxlP1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRTdGF0dXNDaGVja1RpbWVvdXQgPSAxMDAwO1xyXG4gIC8vIDAgaXMgbmV0d29yayBlcnJvciwgc2hvdWxkIHRyeSBhZ2FpblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JldHJ5RXJyb3JDb2RlcyA9IFswXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9uZXR3b3JrRXJyb3JNYXhSZXRyaWVzID0gMjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXNUaW1lb3V0cyA9IHt9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uQ2xlYXIgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkSW1hZ2VFeHRlbnNpb25zID0gW1wicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICBwcml2YXRlIGZpbGVzVXBsb2FkaW5nOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgbm90Rm91bmRFcnJvckNvZGUgPSBcIkVfNDA0XCI7XHJcbiAgcHJpdmF0ZSBub3RGb3VuZFJlbW92ZUVycm9yQ29kZSA9IFwiRV80MDRfUkVNT1ZFXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChGSUxFX0FQSV9TRVJWSUNFX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGZpbGVBcGk6IElGaWxlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSkge1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLkVYVFJBQ1RJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5FWFRSQUNUSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuSU5JVElBTElaSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuUVVFVUlOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLlNBVklOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLlRSQU5TTEFUSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuV0FJVElOR10gPSAxMDAwMDtcclxuICB9XHJcblxyXG4gIC8vIGNsZWFycyBhbGwgbG9hZGVkIGRhdGFcclxuICBjbGVhcigpIHtcclxuICAgIGNvbnN0IGZpbGVBcnIgPSB0aGlzLnRyYW5zbGF0aW9uRmlsZXM7XHJcbiAgICBmaWxlQXJyLmZvckVhY2goKGZpbGUpID0+IHtcclxuICAgICAgZmlsZS50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbW92ZShmaWxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkNsZWFyLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlc1VwbG9hZGVkKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb25GaWxlc1VwbG9hZGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIC8vIGZpbGUudHJhbnNsYXRpbmcgbmVlZHMgdG8gYmUgc2V0LCBzbyBubyBvdGhlciBnZXQgc3RhdHVzIHJlcXVlc3RzIGFyZSBzZW50IHRvIHNlcnZlci5cclxuICAgIGZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgIGNvbnN0IGl4ID0gdGhpcy50cmFuc2xhdGlvbkZpbGVzLmluZGV4T2YoZmlsZSk7XHJcbiAgICBpZiAoaXggPCAwKSB7XHJcbiAgICAgIHRocm93IFwiQ2FuJ3QgcmVtb3ZlIGZpbGVcIjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJhbXM6IElSZW1vdmVGaWxlUGFyYW1zID0ge1xyXG4gICAgICBmaWxlOiBmaWxlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuZmlsZUFwaS5yZW1vdmUocGFyYW1zKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0cy51bmhhbmRlbGVkRXJyb3IoeyBFcnJvckNvZGU6IHRoaXMubm90Rm91bmRSZW1vdmVFcnJvckNvZGUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZigpO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuc3BsaWNlKGl4LCAxKTtcclxuICAgIHRoaXMuZmlsZU5hbWVzLnNwbGljZShpeCwgMSk7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5oYXNBbnlJbWFnZU9yUGRmKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGRvd25sb2FkVGFyZ2V0KHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSwgZmlsZU1ldGE6IElGaWxlTWV0YSkge1xyXG4gICAgaWYgKHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBkb3dubG9hZFBhcmFtczogSURvd25sb2FkRmlsZVBhcmFtcyA9IHtcclxuICAgICAgaWQ6IHRyYW5zbGF0aW9uRmlsZS5pZCxcclxuICAgICAgZmlsZU1ldGE6IGZpbGVNZXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmRvd25sb2FkKGRvd25sb2FkUGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHNhdmVBcyhyZXNwb25zZSwgZmlsZU1ldGEgPyBmaWxlTWV0YS5maWxlTmFtZSA6IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLm9uRXJyb3IoZXJyb3IsIHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkU291cmNlKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG5cclxuICAgIGlmICghdHJhbnNsYXRpb25GaWxlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJTb3VyY2UgZG93bmxvYWQgdW5hdmFpbGFibGUuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb252ZXJ0ZWRGaWxlTmFtZSA9IHRoaXMuY29udmVydGVkU291cmNlRmlsZU5hbWUodHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmdTb3VyY2UgPSB0cnVlO1xyXG4gICAgY29uc3QgZG93bmxvYWRQYXJhbXM6IElEb3dubG9hZEZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0cmFuc2xhdGlvbkZpbGUuaWQsXHJcbiAgICAgIGZpbGVNZXRhOiB7IGZpbGVOYW1lOiBjb252ZXJ0ZWRGaWxlTmFtZSB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmRvd25sb2FkKGRvd25sb2FkUGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nU291cmNlID0gZmFsc2U7XHJcbiAgICAgIHNhdmVBcyhyZXNwb25zZSwgY29udmVydGVkRmlsZU5hbWUpO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMub25FcnJvcihlcnJvciwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGxvYWRGaWxlUHJldmlldyhmaWxlOiBGaWxlKTogSVRyYW5zbGF0aW9uRmlsZSB7XHJcbiAgICBjb25zdCBmaWxlc0FsbG93ZWQgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkO1xyXG4gICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWU7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggPj0gZmlsZXNBbGxvd2VkKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yQ29kZSA9IFwiRVJST1JTLlwiICsgKGZpbGVzQWxsb3dlZCA+IDEgPyBcIk1BWF9OVU1CRVJfT0ZfRklMRVNcIiA6IFwiSU5DUkVBU0VfTUFYX05VTUJFUl9PRl9GSUxFU1wiKTtcclxuICAgICAgdGhpcy5hbGVydHMuZXJyb3IoZXJyb3JDb2RlLCBudWxsLCB7IGxpbms6IHRoaXMuY29uZmlnLmNvcmVDb25maWcucmVnaXN0ZXJMaW5rLCBsaW1pdDogZmlsZXNBbGxvd2VkIH0pO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5maWxlTmFtZXMuaW5jbHVkZXMoZmlsZU5hbWUpKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRzLmVycm9yKFwiRVJST1JTLkZJTEVfQUxSRUFEWV9BRERFRFwiLCBudWxsLCB7IGZpbGVOYW1lOiBmaWxlLm5hbWUgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsZXNVcGxvYWRpbmcucHVzaChmaWxlTmFtZSk7XHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUgPSB7XHJcbiAgICAgIG9yaWdpbmFsRmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICAvLyBuYW1lOiBmaWxlTmFtZSxcclxuICAgICAgb3JpZ2luYWxFeHRlbnNpb246IENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKSxcclxuICAgICAgdHJhbnNsYXRpb25TdGF0dXNzOiBUcmFuc2xhdGlvblN0YXR1c3MuVVBMT0FESU5HLFxyXG4gICAgICBmaWxlLFxyXG4gICAgICBtZXNzYWdlczogW11cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMucHVzaCh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgdGhpcy5maWxlTmFtZXMucHVzaChmaWxlTmFtZSk7XHJcbiAgICBjb25zdCBpc0ltYWdlID0gdGhpcy5fc3VwcG9ydGVkSW1hZ2VFeHRlbnNpb25zLmluY2x1ZGVzKENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKSk7XHJcbiAgICBpZiAoaXNJbWFnZSkge1xyXG4gICAgICB0aGlzLmFueUltYWdlRmlsZUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5maWxlVHlwZSA9IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpc1BkZiA9IFwicGRmXCIgPT09IENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIGlmIChpc1BkZikge1xyXG4gICAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVR5cGUgPSBGaWxlQ29udmVyc2lvblR5cGVzLlBERjtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsZUFwaS5zb3VyY2VGaWxlUHJldmlldyh0cmFuc2xhdGlvbkZpbGUpLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICBpZiAocmVzcC5pc0ZpbGVQcmV2aWV3TG9hZGVkKSB7XHJcbiAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IFRyYW5zbGF0aW9uU3RhdHVzcy5VUExPQURFRDtcclxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRlZChmaWxlTmFtZSk7XHJcbiAgICAgICAgdGhpcy5maWxlUHJldmlld0FsZXJ0cyhpc1BkZiwgcmVzcC53b3JkQ291bnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub25GaWxlUHJldmlld0xvYWQocmVzcCwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLnJlbW92ZSh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICB0aGlzLmFsZXJ0cy51bmhhbmRlbGVkRXJyb3IoZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uRmlsZTtcclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZUJ1dHRvbkNsaWNrKGFjdGl2ZTogSUFjdGl2ZURhdGEpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb25TdGFydGVkID0gdHJ1ZTtcclxuICAgIHRoaXMudHJhbnNsYXRpb25GaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RhcnRGaWxlVHJhbnNsYXRpb24oYWN0aXZlLCBmaWxlKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzdGFydEZpbGVUcmFuc2xhdGlvbihhY3RpdmVTeXN0ZW06IElBY3RpdmVEYXRhLCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGlmICghdGhpcy5jYW5TdGFydFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uRmlsZSkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkNvdWxkIG5vdCBzdGFydCBmaWxlIHRyYW5zbGF0aW9uIVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVTeXN0ZW0gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXJ0ZWQgPSB0cnVlO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gdHJ1ZTtcclxuICAgIC8vIHF1aXRlIHdlaXJkLiBSZXNwb25zZSBjYW4gYmUgc3RydWN0dXJlIHdpdGggc3VjY2VzcyBhbmQgZXJyb3IgcGFyYW1zIGFuZCBpdCBjYW4gYWxzbyBiZSBwbGFpbiBzdHJpbmcgaW4gc3VjY2Vzcy5cclxuICAgIGNvbnN0IHBhcmFtczogSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zID0ge1xyXG4gICAgICBmaWxlOiB0cmFuc2xhdGlvbkZpbGUsXHJcbiAgICAgIHN5c3RlbTogYWN0aXZlU3lzdGVtLnN5c3RlbVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsZUFwaS5zdGFydFRyYW5zbGF0aW9uKHBhcmFtcykucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgLy8gdGhyb3cgZXJyb3I7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgocmVzcG9uc2U6IHN0cmluZykgPT4ge1xyXG4gICAgICAvLyBzb21ldGhpbmcgZ29uZSB3cm9uZ1xyXG4gICAgICBpZiAoIXJlc3BvbnNlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaWQgPSByZXNwb25zZTtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhcnRlZE9uU2VydmVyID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRlZFNvdXJjZUZpbGVOYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcG9zdEZpeCA9IFwiX2NvbnZlcnRlZC5kb2N4XCI7XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnNsaWNlKDAsIGZpbGVOYW1lLmxhc3RJbmRleE9mKFwiLlwiKSk7XHJcbiAgICBjb25zdCBjb252ZXJ0ZWRGaWxlTmFtZSA9IGZpbGVOYW1lICsgcG9zdEZpeDtcclxuICAgIHJldHVybiBjb252ZXJ0ZWRGaWxlTmFtZTtcclxuICB9XHJcblxyXG4gIGZpbGVVcGxvYWRFcnJvcihlcnJvcjogRmlsZVVwbG9hZEVycm9yKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGZpbGVOYW1lOiBlcnJvci5maWxlTmFtZSxcclxuICAgICAgbWF4U2l6ZU1COiBDb21tb24uYnl0ZXNUb01iKHRoaXMuY29uZmlnLmZpbGVDb25maWcubWF4U2l6ZSksXHJcbiAgICAgIGZvcm1hdHM6IHRoaXMuY29uZmlnLmZpbGVDb25maWcuYWxsb3dlZEZpbGVUeXBlcy5qb2luKFwiLCBcIiksXHJcbiAgICAgIHJlZ2lzdGVyTGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmtcclxuICAgIH1cclxuICAgIHRoaXMuYWxlcnRzLmVycm9yKGBFUlJPUlMuRklMRV9VUExPQUQuJHtlcnJvci5jb2RlfWAsIG51bGwsIHBhcmFtcyk7XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrcyBhbGwgbmVjZXNzYXJ5IHBhcmFtcyB0aGF0IGFyZSByZXNwb25zaWJsZSB3aGV0ZXIgaXQgaXMgYWxsb3dlZCB0byBzdGFydCBuZXcgdHJhbnNsYXRpb24uXHJcbiAgcHJpdmF0ZSBjYW5TdGFydFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uRmlsZS50bXBOYW1lICYmICF0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGNvbnN0IGZpbmlzaGVkU3RhdHVzID0gVHJhbnNsYXRpb25TdGF0dXNzLkNPTVBMRVRFRDtcclxuICAgIGNvbnN0IHBhcmFtczogSUdldEZpbGVTdGF0dXNQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IHRyYW5zbGF0aW9uRmlsZSxcclxuICAgICAgc3JjTGFuZzogdGhpcy5hY3RpdmVTeXN0ZW0uc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgIHRyZ0xhbmc6IHRoaXMuYWN0aXZlU3lzdGVtLnRhcmdldExhbmd1YWdlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmdldFN0YXR1cyhwYXJhbXMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIElmIG5ldHdvcmsgZXJyb3IsIGNoZWNrIGFnYWluIGJlY2F1c2UgZmlsZSBoYXMgbm90IGZhaWxlZC5cclxuICAgICAgICAvLyB0aGlzIGNvZGUgbmVlZHMgdG8gYmUgdGVzdGVkLCBiZWNhdXNlIGNhbnQgcmVwZWF0IGl0XHJcbiAgICAgICAgcmV0cnlXaGVuKChvYnNlcnZhYmxlcykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVzLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKChlcnJvciwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5fbmV0d29ya0Vycm9yTWF4UmV0cmllcyAmJiB0aGlzLl9yZXRyeUVycm9yQ29kZXMuaW5jbHVkZXMoZXJyb3Iuc3RhdHVzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVyKHRoaXMuX2RlZmF1bHRTdGF0dXNDaGVja1RpbWVvdXQpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogSUdldEZpbGVUcmFuc2xhdGlvblN0YXR1c1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3lzdGVtSWQgJiYgcmVzcG9uc2Uuc3lzdGVtSWQgIT09IHRoaXMuYWN0aXZlU3lzdGVtLmlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZVN5c3RlbShyZXNwb25zZS5zeXN0ZW1JZCwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVN5c3RlbSA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSByZXNwb25zZS50cmFuc2xhdGlvblN0YXR1c3M7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUuc291cmNlRG93bmxvYWRBdmFpbGFibGUgPSByZXNwb25zZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZTtcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5wcm9ncmVzcyA9IHJlc3BvbnNlLnByb2dyZXNzO1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLmF2YWlsYWJsZUV4dGVuc2lvbnMgPSByZXNwb25zZS5leHRlbnNpb25zO1xyXG4gICAgICAgICAgaWYgKHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPT0gVHJhbnNsYXRpb25TdGF0dXNzLkVSUk9SKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yOiBJVGxkRXJyb3IgPSB7XHJcbiAgICAgICAgICAgICAgRXJyb3JDb2RlOlxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3Vic3RhdHVzID8/IEVycm9yQ29kZS5FX0ZBSUxFRF9JTl9UUkFOU0xBVElPTixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy5maWxlQXBpRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgICAgIC8vdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPT09IGZpbmlzaGVkU3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlZENvdW50ICs9IDE7XHJcbiAgICAgICAgICAgIC8vdHJhbnNsYXRpb25GaWxlLm5hbWUgPSByZXNwb25zZS5uYW1lO1xyXG4gICAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUuZG93bmxvYWRBdmFpbGFibGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlZERvY1ByZXZpZXcodHJhbnNsYXRpb25GaWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL3RyYW5zbGF0aW9uRmlsZS5hdmFpbGFibGVFeHRlbnNpb25zID0gdGhpcy5nZXRFeHRlbnNpb25BcnJheShyZXNwb25zZS50cmFuc2xhdGlvbnMsIHRyYW5zbGF0aW9uRmlsZS5uYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dDtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHMgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0c1t0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzXSkge1xyXG4gICAgICAgICAgICAgIHRpbWVvdXQgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXR1c1RpbWVvdXRzICYmIHRoaXMuX3N0YXR1c1RpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdKSB7XHJcbiAgICAgICAgICAgICAgdGltZW91dCA9IHRoaXMuX3N0YXR1c1RpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIXRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICAgICAgICB9LCB0aW1lb3V0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1I7XHJcbiAgICAgICAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRmlsZVByZXZpZXdMb2FkKGRhdGE6IElTb3VyY2VGaWxlUHJldmlld1Jlc3BvbnNlLCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5pc0ZpbGVQcmV2aWV3TG9hZGVkID0gZGF0YS5pc0ZpbGVQcmV2aWV3TG9hZGVkO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRtcE5hbWUgPSBkYXRhLnRtcE5hbWU7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuc291cmNlUHJldmlld0hhc0h0bWwgPSBkYXRhLnNvdXJjZVByZXZpZXdIYXNIdG1sO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnNvdXJjZVByZXZpZXcgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChkYXRhLnNvdXJjZVByZXZpZXcpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmZpbGVQcmV2aWV3UHJvZ3Jlc3MgPSBkYXRhLnBlcmNlbnREb25lO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlZERvY1ByZXZpZXcodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICAvLyBzaG93IHByZXZpZXcgZm9yIG9yaWdpbmFsIGV4dGVuc2lvbiBpZiBleGlzdHMsIGlmIG5vdCwgdGhlbiBwcmV2aWV3IGZvciBkb2N4LCBpZiBub3QgdGhlbiB0cnkgd2l0aCBvcmlnaW5hbCBmaWxlbmFtZS5cclxuICAgIGNvbnN0IGZpbGVOYW1lID0gdHJhbnNsYXRpb25GaWxlLmF2YWlsYWJsZUV4dGVuc2lvbnMuZmluZChleHQgPT4gZXh0LmV4dGVuc2lvbiA9PT0gRmlsZUV4dGVuc2lvbnMuRE9DWCk/LmZpbGVOYW1lXHJcbiAgICAgID8/IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lO1xyXG4gICAgY29uc3QgcGFyYW1zOiBJVHJhbnNsYXRlZERvY3VtZW50UHJldmlld1BhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICB0cmFuc2xhdGlvbkRvY0lkOiB0cmFuc2xhdGlvbkZpbGUuaWRcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkudHJhbnNsYXRlZERvY3VtZW50UHJldmlldyhwYXJhbXMpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiB7IHN1Y2Nlc3M6IGJvb2xlYW4sIGVycm9yPzogc3RyaW5nLCBzdGF0dXM6IHN0cmluZywgcHJldmlldzogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UuZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXNwb25zZS5wcmV2aWV3KSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChyZXNwb25zZS5wcmV2aWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZUFwaUVycm9yKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSwgZXJyb3I6IGFueSkge1xyXG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1I7XHJcbiAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVQcmV2aWV3QWxlcnRzKGlzUGRmOiBib29sZWFuLCB3b3JkQ291bnQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgbWF4V29yZENvdW50ID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy53b3JkTGltaXQ7XHJcbiAgICBjb25zdCBhbGVydFBhcmFtcyA9IHtcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGluayxcclxuICAgICAgd29yZENvdW50OiBtYXhXb3JkQ291bnQsXHJcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmNvcmVDb25maWcuYXBwTmFtZVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cykge1xyXG4gICAgICBpZiAoaXNQZGYgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5vY3JQYWdlTGltaXQpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiVExEX1RSQU5TTEFURS5QREZfUEFHRV9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh3b3JkQ291bnQgJiYgbWF4V29yZENvdW50ICYmIHdvcmRDb3VudCA+IG1heFdvcmRDb3VudCkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoXCJUTERfVFJBTlNMQVRFLkRPQ19XT1JEX0NOVF9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICBpZiAodHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JGb3JNZXNzYWdlID0gZXJyb3Iuc3RhdHVzID09PSA0MDQgPyB7IEVycm9yQ29kZTogdGhpcy5ub3RGb3VuZEVycm9yQ29kZSB9IDogZXJyb3I7XHJcbiAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvckZvck1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxlVXBsb2FkZWQoZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZmlsZUl4ID0gdGhpcy5maWxlc1VwbG9hZGluZy5pbmRleE9mKGZpbGVOYW1lKTtcclxuICAgIGlmIChmaWxlSXggPj0gMCkge1xyXG4gICAgICB0aGlzLmZpbGVzVXBsb2FkaW5nLnNwbGljZShmaWxlSXgsIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZXNVcGxvYWRpbmcubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuX29uRmlsZXNVcGxvYWRlZC5uZXh0KG51bGwpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0FueUltYWdlT3JQZGYoKSB7XHJcbiAgICBsZXQgYW55SW1hZ2UgPSBmYWxzZTtcclxuICAgIGxldCBhbnlQZGYgPSBmYWxzZTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmFuc2xhdGlvbkZpbGVzLmxlbmd0aCAmJiAhKGFueVBkZiAmJiBhbnlJbWFnZSk7IGkrKykge1xyXG4gICAgICBjb25zdCBmaWxlID0gdGhpcy50cmFuc2xhdGlvbkZpbGVzW2ldO1xyXG4gICAgICBpZiAoZmlsZS5maWxlVHlwZSA9PT0gRmlsZUNvbnZlcnNpb25UeXBlcy5JTUFHRSkge1xyXG4gICAgICAgIGFueUltYWdlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChmaWxlLmZpbGVUeXBlID09PSBGaWxlQ29udmVyc2lvblR5cGVzLlBERikge1xyXG4gICAgICAgIGFueVBkZiA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFueUltYWdlRmlsZUxvYWRlZCA9IGFueUltYWdlO1xyXG4gICAgdGhpcy5hbnlQZGZGaWxlTG9hZGVkID0gYW55UGRmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclBhcmFtcygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb25TdGFydGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMgPSBbXTtcclxuICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZmlsZU5hbWVzID0gW107XHJcbiAgICB0aGlzLnRyYW5zbGF0ZWRDb3VudCA9IDA7XHJcbiAgICB0aGlzLmZpbGVzVXBsb2FkaW5nID0gW107XHJcbiAgICB0aGlzLl9vbkNsZWFyLm5leHQobnVsbClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25UcmFuc2xhdGlvbkZpbGVFcnJvcih0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUsIGVycm9yOiBhbnkpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmFsZXJ0cy5maW5kRXJyb3JUaXRsZUFuZExvY2FsaXphdGlvbktleShlcnJvcik7XHJcbiAgICBjb25zdCBvcmlnaW5hbEZpbGVOYW1lID0gdHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWU7XHJcbiAgICBjb25zdCBpbmxpbmVNZXNzYWdlOiBJbmxpbmVNZXNzYWdlID0ge1xyXG4gICAgICB0aXRsZTogbWVzc2FnZS50aXRsZSxcclxuICAgICAgZGVzY3JpcHRpb246IG1lc3NhZ2UuZGVzY3JpcHRpb24sXHJcbiAgICAgIHR5cGU6IElubGluZU1lc3NhZ2VUeXBlLkVSUk9SLFxyXG4gICAgICBsb2NhbGl6YXRpb25QYXJhbXM6IHsgZmlsZU5hbWU6IG9yaWdpbmFsRmlsZU5hbWUsIC4uLnRoaXMuYWxlcnRzLmRlZmF1bHRQYXJhbXMgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRzLmVycm9yKG1lc3NhZ2UuZGVzY3JpcHRpb24sIG1lc3NhZ2UudGl0bGUsIHsgZmlsZU5hbWU6IG9yaWdpbmFsRmlsZU5hbWUgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2xhdGlvbkZpbGUubWVzc2FnZXMucHVzaChpbmxpbmVNZXNzYWdlKTtcclxuICB9XHJcbn1cclxuIl19
|