@tilde-nlp/ngx-translate 2.1.22 → 2.1.24

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.
@@ -50,7 +50,7 @@ export class MtTermV2Service {
50
50
  convertToCombinedCollection(collection) {
51
51
  const convertedMtCollection = {
52
52
  id: collection.id,
53
- lastUpdated: new Date(collection.externalCollection.updatedAt),
53
+ lastUpdated: collection.externalCollection?.updatedAt ? new Date(collection.externalCollection.updatedAt) : null,
54
54
  name: collection.name,
55
55
  status: collection.status,
56
56
  subStatus: collection.subStatus,
@@ -59,7 +59,8 @@ export class MtTermV2Service {
59
59
  scope: collection.scope,
60
60
  order: collection.order,
61
61
  termCount: collection.externalCollection.termCount,
62
- progress: collection.progress
62
+ progress: collection.progress,
63
+ collectionSource: collection.collectionSource
63
64
  };
64
65
  return new CombinedCollection(null, convertedMtCollection);
65
66
  }
@@ -72,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
72
73
  providedIn: 'root'
73
74
  }]
74
75
  }], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.EningeTermApiService }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXQtdGVybS12Mi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vc2VydmljZXMvYXBpLXYyL210LXRlcm0tdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFPekUsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFDbUIsTUFBaUMsRUFDakMsYUFBbUM7UUFEbkMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBSnRELFlBQU8sR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFJRyxDQUFDO0lBRTNELEdBQUcsQ0FBQyxRQUFnQixFQUFFLFVBQThCO1FBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO1lBQzVCLE1BQU0sTUFBTSxHQUFnQztnQkFDMUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUMvQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sSUFBSSxLQUFLO2dCQUNwQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDbkMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2FBQ3hCLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7aUJBQzVDLElBQUksQ0FDSCxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDaEUs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bXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEVuaW5nZVRlcm1BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vZW5naW5lLXRlcm0vZW5pbmdlLXRlcm0tYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcGRhdGVFbmdpbmVUZXJtc1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9lbmdpbmUtdGVybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBZGRFbmdpbmVUZXJtc1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9lbmdpbmUtdGVybS9tb2RlbHMvYWRkLWVuZ2luZS10ZXJtcy1yZXF1ZXN0LXBhcmFtcy5tb2RlbCc7XHJcbmltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vZW5naW5lLXRlcm0vbW9kZWxzL2VuZ2luZS10ZXJtLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvbiB9IGZyb20gJy4uL21vZGVscy9tdC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgSU10VGVybVNlcnZpY2UgfSBmcm9tICcuLi9tb2RlbHMvbXQtdGVybS1zZXJ2aWNlLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE10VGVybVYyU2VydmljZSBpbXBsZW1lbnRzIElNdFRlcm1TZXJ2aWNlIHtcclxuICBiYXNlVXJsOiBzdHJpbmcgPSB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmVuZ2luZVRlcm1Vcmw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuZ2luZVRlcm1BcGk6IEVuaW5nZVRlcm1BcGlTZXJ2aWNlKSB7IH1cclxuXHJcbiAgYWRkKGVuZ2luZUlkOiBzdHJpbmcsIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICBpZiAoIWNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHBhcmFtczogQWRkRW5naW5lVGVybXNSZXF1ZXN0UGFyYW1zID0ge1xyXG4gICAgICAgIGNvbGxlY3Rpb25JZDogY29sbGVjdGlvbi50ZXJtSWQsXHJcbiAgICAgICAgZGVmYXVsdDogY29sbGVjdGlvbi5kZWZhdWx0ID8/IGZhbHNlLFxyXG4gICAgICAgIGNvbGxlY3Rpb25Tb3VyY2U6IGNvbGxlY3Rpb24uc291cmNlLFxyXG4gICAgICAgIHNjb3BlOiBjb2xsZWN0aW9uLnNjb3BlXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiB0aGlzLmVuZ2luZVRlcm1BcGkuYWRkKGVuZ2luZUlkLCBwYXJhbXMpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGFyYW1zOiBVcGRhdGVFbmdpbmVUZXJtc1JlcXVlc3RQYXJhbXMgPSB7XHJcbiAgICAgICAgZGVmYXVsdDogY29sbGVjdGlvbi5kZWZhdWx0LFxyXG4gICAgICAgIHNjb3BlOiBjb2xsZWN0aW9uLnNjb3BlXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS51cGRhdGUoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkLCBwYXJhbXMpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdChlbmdpbmVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS5nZXRMaXN0KGVuZ2luZUlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGNvbGxlY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb252ZXJ0ZWQ6IENvbWJpbmVkQ29sbGVjdGlvbltdID0gW107XHJcbiAgICAgICAgICBjb2xsZWN0aW9ucz8udGVybUNvbGxlY3Rpb25zPy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnZlcnRlZC5wdXNoKHRoaXMuY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKGNvbGxlY3Rpb24pKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShlbmdpbmVJZDogc3RyaW5nLCBjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS5yZW1vdmUoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkKS5waXBlKFxyXG4gICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzeW5jKGVuZ2luZUlkOiBzdHJpbmcsIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmdpbmVUZXJtQXBpLnN5bmMoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHVwZGF0ZWRDb2xsZWN0aW9uKSA9PiB7IHJldHVybiB1cGRhdGVkQ29sbGVjdGlvbiA/IHRoaXMuY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKHVwZGF0ZWRDb2xsZWN0aW9uKSA6IGNvbGxlY3Rpb24gfSlcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0VG9Db21iaW5lZENvbGxlY3Rpb24oY29sbGVjdGlvbjogRW5naW5lVGVybUNvbGxlY3Rpb24pOiBDb21iaW5lZENvbGxlY3Rpb24ge1xyXG4gICAgY29uc3QgY29udmVydGVkTXRDb2xsZWN0aW9uOiBNdENvbGxlY3Rpb24gPSB7XHJcbiAgICAgIGlkOiBjb2xsZWN0aW9uLmlkLFxyXG4gICAgICBsYXN0VXBkYXRlZDogbmV3IERhdGUoY29sbGVjdGlvbi5leHRlcm5hbENvbGxlY3Rpb24udXBkYXRlZEF0KSxcclxuICAgICAgbmFtZTogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICBzdGF0dXM6IGNvbGxlY3Rpb24uc3RhdHVzIGFzIGFueSxcclxuICAgICAgc3ViU3RhdHVzOiBjb2xsZWN0aW9uLnN1YlN0YXR1cyxcclxuICAgICAgdGVybUlkOiBjb2xsZWN0aW9uLmV4dGVybmFsQ29sbGVjdGlvbi5pZCxcclxuICAgICAgZGVmYXVsdDogY29sbGVjdGlvbi5kZWZhdWx0LFxyXG4gICAgICBzY29wZTogY29sbGVjdGlvbi5zY29wZSxcclxuICAgICAgb3JkZXI6IGNvbGxlY3Rpb24ub3JkZXIsXHJcbiAgICAgIHRlcm1Db3VudDogY29sbGVjdGlvbi5leHRlcm5hbENvbGxlY3Rpb24udGVybUNvdW50LFxyXG4gICAgICBwcm9ncmVzczogY29sbGVjdGlvbi5wcm9ncmVzc1xyXG4gICAgfTtcclxuICAgIHJldHVybiBuZXcgQ29tYmluZWRDb2xsZWN0aW9uKG51bGwsIGNvbnZlcnRlZE10Q29sbGVjdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXQtdGVybS12Mi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vc2VydmljZXMvYXBpLXYyL210LXRlcm0tdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFPekUsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFDbUIsTUFBaUMsRUFDakMsYUFBbUM7UUFEbkMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBSnRELFlBQU8sR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFJRyxDQUFDO0lBRTNELEdBQUcsQ0FBQyxRQUFnQixFQUFFLFVBQThCO1FBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO1lBQzVCLE1BQU0sTUFBTSxHQUFnQztnQkFDMUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUMvQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sSUFBSSxLQUFLO2dCQUNwQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDbkMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2FBQ3hCLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7aUJBQzVDLElBQUksQ0FDSCxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDaEUs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QUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBFbmluZ2VUZXJtQXBpU2VydmljZSB9IGZyb20gJy4uL2VuZ2luZS10ZXJtL2VuaW5nZS10ZXJtLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXBkYXRlRW5naW5lVGVybXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi4vZW5naW5lLXRlcm0vbW9kZWxzJztcclxuaW1wb3J0IHsgQWRkRW5naW5lVGVybXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi4vZW5naW5lLXRlcm0vbW9kZWxzL2FkZC1lbmdpbmUtdGVybXMtcmVxdWVzdC1wYXJhbXMubW9kZWwnO1xyXG5pbXBvcnQgeyBFbmdpbmVUZXJtQ29sbGVjdGlvbiB9IGZyb20gJy4uL2VuZ2luZS10ZXJtL21vZGVscy9lbmdpbmUtdGVybS1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbWJpbmVkLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvbXQtY29sbGVjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IElNdFRlcm1TZXJ2aWNlIH0gZnJvbSAnLi4vbW9kZWxzL210LXRlcm0tc2VydmljZS5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdFRlcm1WMlNlcnZpY2UgaW1wbGVtZW50cyBJTXRUZXJtU2VydmljZSB7XHJcbiAgYmFzZVVybDogc3RyaW5nID0gdGhpcy5jb25maWcudGVybUNvbmZpZy5lbmdpbmVUZXJtVXJsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmdpbmVUZXJtQXBpOiBFbmluZ2VUZXJtQXBpU2VydmljZSkgeyB9XHJcblxyXG4gIGFkZChlbmdpbmVJZDogc3RyaW5nLCBjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgaWYgKCFjb2xsZWN0aW9uLm10Q29sbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBwYXJhbXM6IEFkZEVuZ2luZVRlcm1zUmVxdWVzdFBhcmFtcyA9IHtcclxuICAgICAgICBjb2xsZWN0aW9uSWQ6IGNvbGxlY3Rpb24udGVybUlkLFxyXG4gICAgICAgIGRlZmF1bHQ6IGNvbGxlY3Rpb24uZGVmYXVsdCA/PyBmYWxzZSxcclxuICAgICAgICBjb2xsZWN0aW9uU291cmNlOiBjb2xsZWN0aW9uLnNvdXJjZSxcclxuICAgICAgICBzY29wZTogY29sbGVjdGlvbi5zY29wZVxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gdGhpcy5lbmdpbmVUZXJtQXBpLmFkZChlbmdpbmVJZCwgcGFyYW1zKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKGNvbGxlY3Rpb24gPT4gdGhpcy5jb252ZXJ0VG9Db21iaW5lZENvbGxlY3Rpb24oY29sbGVjdGlvbikpXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhcmFtczogVXBkYXRlRW5naW5lVGVybXNSZXF1ZXN0UGFyYW1zID0ge1xyXG4gICAgICAgIGRlZmF1bHQ6IGNvbGxlY3Rpb24uZGVmYXVsdCxcclxuICAgICAgICBzY29wZTogY29sbGVjdGlvbi5zY29wZVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmVuZ2luZVRlcm1BcGkudXBkYXRlKGVuZ2luZUlkLCBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbi5pZCwgcGFyYW1zKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKGNvbGxlY3Rpb24gPT4gdGhpcy5jb252ZXJ0VG9Db21iaW5lZENvbGxlY3Rpb24oY29sbGVjdGlvbikpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldExpc3QoZW5naW5lSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uW10+IHtcclxuICAgIHJldHVybiB0aGlzLmVuZ2luZVRlcm1BcGkuZ2V0TGlzdChlbmdpbmVJZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChjb2xsZWN0aW9ucykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29udmVydGVkOiBDb21iaW5lZENvbGxlY3Rpb25bXSA9IFtdO1xyXG4gICAgICAgICAgY29sbGVjdGlvbnM/LnRlcm1Db2xsZWN0aW9ucz8uZm9yRWFjaCgoY29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBjb252ZXJ0ZWQucHVzaCh0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICByZXR1cm4gY29udmVydGVkO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoZW5naW5lSWQ6IHN0cmluZywgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb24+IHtcclxuICAgIHJldHVybiB0aGlzLmVuZ2luZVRlcm1BcGkucmVtb3ZlKGVuZ2luZUlkLCBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbi5pZCkucGlwZShcclxuICAgICAgbWFwKGNvbGxlY3Rpb24gPT4gdGhpcy5jb252ZXJ0VG9Db21iaW5lZENvbGxlY3Rpb24oY29sbGVjdGlvbikpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3luYyhlbmdpbmVJZDogc3RyaW5nLCBjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS5zeW5jKGVuZ2luZUlkLCBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbi5pZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh1cGRhdGVkQ29sbGVjdGlvbikgPT4geyByZXR1cm4gdXBkYXRlZENvbGxlY3Rpb24gPyB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbih1cGRhdGVkQ29sbGVjdGlvbikgOiBjb2xsZWN0aW9uIH0pXHJcbiAgICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKGNvbGxlY3Rpb246IEVuZ2luZVRlcm1Db2xsZWN0aW9uKTogQ29tYmluZWRDb2xsZWN0aW9uIHtcclxuICAgIGNvbnN0IGNvbnZlcnRlZE10Q29sbGVjdGlvbjogTXRDb2xsZWN0aW9uID0ge1xyXG4gICAgICBpZDogY29sbGVjdGlvbi5pZCxcclxuICAgICAgbGFzdFVwZGF0ZWQ6IGNvbGxlY3Rpb24uZXh0ZXJuYWxDb2xsZWN0aW9uPy51cGRhdGVkQXQgPyBuZXcgRGF0ZShjb2xsZWN0aW9uLmV4dGVybmFsQ29sbGVjdGlvbi51cGRhdGVkQXQpIDogbnVsbCxcclxuICAgICAgbmFtZTogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICBzdGF0dXM6IGNvbGxlY3Rpb24uc3RhdHVzIGFzIGFueSxcclxuICAgICAgc3ViU3RhdHVzOiBjb2xsZWN0aW9uLnN1YlN0YXR1cyxcclxuICAgICAgdGVybUlkOiBjb2xsZWN0aW9uLmV4dGVybmFsQ29sbGVjdGlvbi5pZCxcclxuICAgICAgZGVmYXVsdDogY29sbGVjdGlvbi5kZWZhdWx0LFxyXG4gICAgICBzY29wZTogY29sbGVjdGlvbi5zY29wZSxcclxuICAgICAgb3JkZXI6IGNvbGxlY3Rpb24ub3JkZXIsXHJcbiAgICAgIHRlcm1Db3VudDogY29sbGVjdGlvbi5leHRlcm5hbENvbGxlY3Rpb24udGVybUNvdW50LFxyXG4gICAgICBwcm9ncmVzczogY29sbGVjdGlvbi5wcm9ncmVzcyxcclxuICAgICAgY29sbGVjdGlvblNvdXJjZTogY29sbGVjdGlvbi5jb2xsZWN0aW9uU291cmNlXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIG5ldyBDb21iaW5lZENvbGxlY3Rpb24obnVsbCwgY29udmVydGVkTXRDb2xsZWN0aW9uKTtcclxuICB9XHJcbn1cclxuIl19
@@ -163,7 +163,7 @@ export class CombinedCollection {
163
163
  }
164
164
  this._isSynchronized = isSynchronized;
165
165
  this.lastUpdated = lastMtUpdated ?? termModified;
166
- this._syncButtonVisible = !this.isSynchronized || (this.termCollection?.modifyDate && this.mtStatus === MtCollectionStatus.ERROR) && !this.isImporting;
166
+ this._syncButtonVisible = !this.isSynchronized || (this.termCollection && this.mtStatus === MtCollectionStatus.ERROR) && !this.isImporting;
167
167
  }
168
168
  updateSource() {
169
169
  if (this.termCollection) {
@@ -187,4 +187,4 @@ export class CombinedCollection {
187
187
  }
188
188
  //#region Static properties
189
189
  CombinedCollection.importingStatuses = [MtCollectionStatus.IMPORTING, MtCollectionStatus.PROCESSING];
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2pFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQTZIN0IsWUFBWTtJQUVaLFlBQVksaUJBQXFDLEVBQUUsWUFBMEI7UUF6RjdFLFlBQVk7UUFFWixxQ0FBcUM7UUFDckMsY0FBUyxHQUdMLEVBQUUsQ0FBQztRQUNQLGFBQWE7UUFFYixtQ0FBbUM7UUFDbkMsZ0pBQWdKO1FBQ2hKLDBGQUEwRjtRQUVsRixvQkFBZSxHQUFZLElBQUksQ0FBQztRQTZFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUF0SEQsTUFBTSxDQUFDLDhCQUE4QixDQUFDLFdBQXlDLEVBQUUsVUFBOEI7UUFDN0csS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FB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QUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxVQUFVLENBQUM7U0FDckQ7YUFDSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLDRCQUE0QixDQUFDLGtCQUFrQixDQUFDO1NBQ3ZFO2FBQ0ksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQyxVQUFVLENBQUM7U0FDL0Q7YUFDSTtZQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7QUFoT0QsMkJBQTJCO0FBQ3BCLG9DQUFpQixHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZSwgRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UgfSBmcm9tIFwiLi4vZW5naW5lLXRlcm0vbW9kZWxzXCI7XHJcbmltcG9ydCB7IElUbGRUZXJtQ29sbGVjdGlvbiB9IGZyb20gXCIuLi90ZXJtLWFwaS9tb2RlbHMvdGxkLXRlcm0tY29sbGVjdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5IH0gZnJvbSBcIi4vY29tYmluZWQtY29sbGVjdGlvbi10b29sdGlwLWtleS5lbnVtXCI7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvblN0YXR1cyB9IGZyb20gXCIuL210LWNvbGxlY3Rpb24tc3RhdHVzLmVudW1cIjtcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uIH0gZnJvbSBcIi4vbXQtY29sbGVjdGlvbi5tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIHRoYXQgam9pbnMgY29sbGVjdGlvbiBmcm9tIHRlcm0gYXBpIGFuZCBpdHMgaW1wb3J0ZWQgY29sbGVjdGlvbiBmcm9tIE1UIGFwaS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb21iaW5lZENvbGxlY3Rpb24ge1xyXG4gIG10Q29sbGVjdGlvbjogTXRDb2xsZWN0aW9uO1xyXG4gIHRlcm1Db2xsZWN0aW9uOiBJVGxkVGVybUNvbGxlY3Rpb247XHJcbiAgdGVybVRvb2x0aXBLZXk6IENvbWJpbmVkQ29sbGVjdGlvblRvb2x0aXBLZXk7XHJcbiAgc291cmNlOiBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZTtcclxuICAvKipcclxuICAgKiBNb2RpZmllZCBkYXRlIGZyb20gdGVybSBhcGkgb3IgbGFzdCB1cGRhdGVkIGZyb20gbXQgYXBpLlxyXG4gICAqL1xyXG4gIGxhc3RVcGRhdGVkOiBEYXRlO1xyXG5cclxuICAvLyNyZWdpb24gU3RhdGljIHByb3BlcnRpZXNcclxuICBzdGF0aWMgaW1wb3J0aW5nU3RhdHVzZXMgPSBbTXRDb2xsZWN0aW9uU3RhdHVzLklNUE9SVElORywgTXRDb2xsZWN0aW9uU3RhdHVzLlBST0NFU1NJTkddO1xyXG5cclxuICBzdGF0aWMgZmluZEV4aXN0aW5nQ29sbGVjdGlvbkZyb21MaXN0KGNvbGxlY3Rpb25zOiBJdGVyYWJsZTxDb21iaW5lZENvbGxlY3Rpb24+LCBjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIGlmICgoY29sLnRlcm1JZCAmJiBjb2wudGVybUlkID09IGNvbGxlY3Rpb24udGVybUlkKSB8fFxyXG4gICAgICAgIChjb2wubXRDb2xsZWN0aW9uPy5pZCAmJiBjb2wubXRDb2xsZWN0aW9uLmlkID09IGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uPy5pZCkpIHtcclxuICAgICAgICByZXR1cm4gY29sO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBmaW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KGNvbGxlY3Rpb25zOiBJdGVyYWJsZTxDb21iaW5lZENvbGxlY3Rpb24+LCBjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pOiBudW1iZXIge1xyXG4gICAgaWYgKCFjb2xsZWN0aW9ucykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xsZWN0aW9ucykge1xyXG4gICAgICBpZiAoKGNvbC50ZXJtSWQgJiYgY29sLnRlcm1JZCA9PSBjb2xsZWN0aW9uLnRlcm1JZCkgfHxcclxuICAgICAgICAoY29sLm10Q29sbGVjdGlvbj8uaWQgJiYgY29sLm10Q29sbGVjdGlvbi5pZCA9PSBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbj8uaWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgICAgaSArPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gRWRpdGFibGUgTVQgKGFwaSB2MikgZmllbGRzXHJcbiAgZWRpdGFibGVzOiB7XHJcbiAgICBkZWZhdWx0PzogYm9vbGVhbjtcclxuICAgIHNjb3BlPzogRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZTtcclxuICB9ID0ge307XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gR2V0dGVycyBmb3IgY29tbW9uIGZpZWxkc1xyXG4gIC8vIEl0IGlzIHBvc3NpYmxlIHRvIG9wdGltaXplIGdldHRlcnMsIGJ5IHNldHRpbmcgc29tZSBvZiB0aGUgdmFsdWVzIGluIHVwZGF0ZSBtZXRob2QsIGJ1dCBpdCBpcyBsZWZ0IHRoaXMgd2F5LCBzbyB0aGF0IGRhdGEgaXMgbW9yZSBjb25zaXN0ZW50LlxyXG4gIC8vIE90aGVyd2lzZSBpdCBtaWdodCBiZSBlYXN5IHRvIG1pc3Mgc29tZSBwcm9wZXJ0eSB1cGRhdGluZyBhbmQgZ2V0IHdyb25nIGRhdGEgaW4gZnV0dXJlLlxyXG5cclxuICBwcml2YXRlIF9pc1N5bmNocm9uaXplZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogV2VhdGhlciBjb2xsZWN0aW9uIGlzIHN5bmNocm9uaXplZCB3aXRoIHRlcm0gcG9ydGFsIGNvbGxlY3Rpb24uIElmIG5vIHRlcm0gY29sbGVjdGlvbiwgdmFsdWUgaXMgc2V0IHRvIHRydWUuXHJcbiAgICovXHJcbiAgZ2V0IGlzU3luY2hyb25pemVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzU3luY2hyb25pemVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyBpZiBjb2xsZWN0aW9ucyBpcyAnc3luY2FibGUnLiBSZXR1cm5zIHRydWUgaWYgaXQgaXMgbm90IHN5bmNlZCBvciBpZiBzeW5jaHJvbml6YXRpb24gaGFzIGZhaWxlZCBhbmQgc3RhdHVzIGlzIGVycm9yLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3N5bmNCdXR0b25WaXNpYmxlOiBib29sZWFuO1xyXG4gIGdldCBzeW5jQnV0dG9uVmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuX3N5bmNCdXR0b25WaXNpYmxlOyB9XHJcbiAgLyoqXHJcbiAgICogVGVybSBjb2xsZWN0aW9uIGlkLiBSZXR1cm5zIHZhbHVlIGZyb20gdGVybSBjb2xsZWN0aW9uIG9yIGZyb20gbXQsIGlmIHRlcm0gY29sbGVjdGlvbiBub3QgZXhpc3RpbmcuXHJcbiAgICovXHJcbiAgZ2V0IHRlcm1JZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5pZCA/PyB0aGlzLm10Q29sbGVjdGlvbj8udGVybUlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG10U3RhdHVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uPy5zdGF0dXM7XHJcbiAgfVxyXG5cclxuICBnZXQgc2NvcGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0YWJsZXM/LnNjb3BlID8/IHRoaXMubXRDb2xsZWN0aW9uPy5zY29wZTtcclxuICB9XHJcblxyXG4gIGdldCBvcmRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLm10Q29sbGVjdGlvbj8ub3JkZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIG5hbWUuIElmIGhhcyB0ZXJtIGNvbGxlY3Rpb24sIHRha2VzIGZyb20gdGhlcmUuIElmIG5vdCwgdGhlbiByZXR1cm5zIG10IGNvbGxlY3Rpb24gbmFtZS5cclxuICAgKi9cclxuICBnZXQgbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/IHRoaXMubXRDb2xsZWN0aW9uPy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW50cnkgY291bnQgZnJvbSB0ZXJtIGFwaS5cclxuICAgKi9cclxuICBnZXQgdGVybUVudHJpZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtQ29sbGVjdGlvbj8uZW50cnlDb3VudDtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGVzPy5kZWZhdWx0ID8/IHRoaXMubXRDb2xsZWN0aW9uPy5kZWZhdWx0ID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhdHVzIGZyb20gbXQgYXBpIG9yIGN1c3RvbSBcIk5PVF9JTl9VU0VcIiBzdGF0dXMgaWYgbm90IGltcG9ydGVkIGluIG10LnNcclxuICAgKi9cclxuICBnZXQgc3RhdHVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRTdGF0dXMgPz8gTXRDb2xsZWN0aW9uU3RhdHVzLk5PVF9JTl9VU0U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTY29wZSBjYW4gYmUgZWRpdGVkIG9ubHkgaWYgaGFzIG10IGNvbGxjZXRpb24gb3IgdGVybSBjb2xsZWN0aW9uIGlzIGJlaW5nIHByZXBhcmVkIGZvciBpbXBvcnQuXHJcbiAgICovXHJcbiAgZ2V0IGNhbkVkaXRTY29wZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm10Q29sbGVjdGlvbiB8fCB0aGlzLmRlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgdGVybUNvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uPy50ZXJtQ291bnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1Rlcm1Qb3J0YWxDb2xsZWN0aW9uOiBib29sZWFuO1xyXG4gIGdldCBpc1Rlcm1Qb3J0YWxDb2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5faXNUZXJtUG9ydGFsQ29sbGVjdGlvbjsgfVxyXG5cclxuICBwcml2YXRlIF9pc0ltcG9ydGluZzogYm9vbGVhbjtcclxuICBnZXQgaXNJbXBvcnRpbmcoKSB7IHJldHVybiB0aGlzLl9pc0ltcG9ydGluZzsgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgY29uc3RydWN0b3IodGVybUFwaUNvbGxlY3Rpb246IElUbGRUZXJtQ29sbGVjdGlvbiwgbXRDb2xsZWN0aW9uOiBNdENvbGxlY3Rpb24pIHtcclxuICAgIHRoaXMubXRDb2xsZWN0aW9uID0gbXRDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy50ZXJtQ29sbGVjdGlvbiA9IHRlcm1BcGlDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy51cGRhdGUobnVsbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGNvbGxlY3Rpb24gd2l0aCB2YWx1ZXMgZnJvbSBuZXcgY29sbGVjdGlvbi5cclxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBjb2xsZWN0aW9uIGZyb20gd2hpY2ggc2hvdWxkIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIGluaXRpYWxSZWZyZXNoIGlmIHNldCB0byB0cnVlLCBlZGl0YWJsZSBmaWVsZHMgd2lsbCBhbHNvIGJlIHVwZGF0ZWQuXHJcbiAgICovXHJcbiAgdXBkYXRlKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgaW5pdGlhbFJlZnJlc2ggPSB0cnVlKSB7XHJcbiAgICBpZiAoY29sbGVjdGlvbj8udGVybUNvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy50ZXJtQ29sbGVjdGlvbiA9IGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbGxlY3Rpb24/Lm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLm10Q29sbGVjdGlvbiA9IGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2lzVGVybVBvcnRhbENvbGxlY3Rpb24gPSAodGhpcy50ZXJtQ29sbGVjdGlvbiB8fCB0aGlzLm10Q29sbGVjdGlvbi50ZXJtSWQpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuICAgIGlmIChpbml0aWFsUmVmcmVzaCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUVkaXRhYmxlcyh0aGlzLm10Q29sbGVjdGlvbj8uZGVmYXVsdCwgdGhpcy5tdENvbGxlY3Rpb24/LnNjb3BlID8/IEVuZ2luZVRlcm1Db2xsZWN0aW9uU2NvcGUuR1JPVVAsIHRoaXMubXRDb2xsZWN0aW9uPy5vcmRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faXNJbXBvcnRpbmcgPSB0aGlzLm10Q29sbGVjdGlvbiAmJiBDb21iaW5lZENvbGxlY3Rpb24uaW1wb3J0aW5nU3RhdHVzZXMuaW5jbHVkZXModGhpcy5tdENvbGxlY3Rpb24/LnN0YXR1cyk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVJc1N5bmNocm9uaXplZCgpO1xyXG4gICAgdGhpcy51cGRhdGVUb29sdGlwS2V5KCk7XHJcbiAgICB0aGlzLnVwZGF0ZVNvdXJjZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgc29tZSBvZiBlZGl0YWJsZXMgYXJlIGVkaXRlZC5cclxuICAgKlxyXG4gICAqIGlmIGNvbGxlY3Rpb24gbm90IGltcG9ydGVkIGFuZCBlbmFibGVkIG5vdCBzZXQsIG1ldGhvZCB3aWxsIHJldHVybiB0cnVlLCBiZWNhdXNlIHlvdSBjYW5ub3QgdXBkYXRlIGNvbGxlY3Rpb24gaWYgaXQgaXMgbm90IGltcG9ydGVkIG9yIGlzIG5vdCBtZWFudCB0byBiZSBpbXBvcnRlZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgY29sbGVjdGlvbiBpcyBlZGl0ZWQsIGZhbHNlIGlmIG5vdC5cclxuICAgKi9cclxuICBpc0VkaXRlZCgpIHtcclxuICAgIC8vIGlmIGNvbGxlY3Rpb24gbm90IGltcG9ydGVkIGFuZCBlbmFibGVkIG5vdCBzZXQsIHNob3VsZCBub3QgdXBkYXRlIGNvbGxlY3Rpb24uXHJcbiAgICBpZiAoIXRoaXMubXRDb2xsZWN0aW9uICYmICF0aGlzLmRlZmF1bHQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKHRoaXMubXRDb2xsZWN0aW9uPy5kZWZhdWx0ICE9PSB0aGlzLmVkaXRhYmxlcy5kZWZhdWx0KVxyXG4gICAgICB8fCAodGhpcy5tdENvbGxlY3Rpb24gJiYgdGhpcy5lZGl0YWJsZXMuc2NvcGUgIT09IHRoaXMubXRDb2xsZWN0aW9uLnNjb3BlKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgdGVybSBjb2xsZWN0aW9uIGFuZCBpdHMgcHJvcGVydGllcy5cclxuICAgKi9cclxuICBkZWxldGVUZXJtcygpIHtcclxuICAgIHRoaXMudGVybUNvbGxlY3Rpb24gPSBudWxsO1xyXG4gICAgdGhpcy51cGRhdGUobnVsbCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgbXQgY29sbGVjdGlvbiBhbmQgaXRzIHByb3BlcnRpZXMuXHJcbiAgICovXHJcbiAgZGVsZXRlTVQoKSB7XHJcbiAgICB0aGlzLm10Q29sbGVjdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUVkaXRhYmxlcyhpc0RlZmF1bHQ6IGJvb2xlYW4sIHNjb3BlOiBFbmdpbmVUZXJtQ29sbGVjdGlvblNjb3BlLCBvcmRlcjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmVkaXRhYmxlcy5kZWZhdWx0ID0gaXNEZWZhdWx0O1xyXG4gICAgdGhpcy5lZGl0YWJsZXMuc2NvcGUgPSBzY29wZTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBQcml2YXRlIG1ldGhvZHNcclxuICBwcml2YXRlIHVwZGF0ZUlzU3luY2hyb25pemVkKCkge1xyXG4gICAgbGV0IGlzU3luY2hyb25pemVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHRlcm1Nb2RpZmllZCA9IHRoaXMudGVybUNvbGxlY3Rpb24/Lm1vZGlmeURhdGU7XHJcbiAgICBjb25zdCBsYXN0TXRVcGRhdGVkID0gdGhpcy5tdENvbGxlY3Rpb24/Lmxhc3RVcGRhdGVkO1xyXG4gICAgaWYgKHRlcm1Nb2RpZmllZCAmJiBsYXN0TXRVcGRhdGVkKSB7XHJcbiAgICAgIGlzU3luY2hyb25pemVkID0gdGVybU1vZGlmaWVkIDw9IGxhc3RNdFVwZGF0ZWQ7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5faXNTeW5jaHJvbml6ZWQgPSBpc1N5bmNocm9uaXplZDtcclxuICAgIHRoaXMubGFzdFVwZGF0ZWQgPSBsYXN0TXRVcGRhdGVkID8/IHRlcm1Nb2RpZmllZDtcclxuICAgIHRoaXMuX3N5bmNCdXR0b25WaXNpYmxlID0gIXRoaXMuaXNTeW5jaHJvbml6ZWQgfHwgKHRoaXMudGVybUNvbGxlY3Rpb24/Lm1vZGlmeURhdGUgJiYgdGhpcy5tdFN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SKSAmJiAhdGhpcy5pc0ltcG9ydGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU291cmNlKCkge1xyXG4gICAgaWYgKHRoaXMudGVybUNvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5zb3VyY2UgPSBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZS5USUxERV9URVJNO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5tdENvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5zb3VyY2UgPSBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZS5GSUxFO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVUb29sdGlwS2V5KCkge1xyXG4gICAgaWYgKHRoaXMuZGVmYXVsdCkge1xyXG4gICAgICB0aGlzLnRlcm1Ub29sdGlwS2V5ID0gQ29tYmluZWRDb2xsZWN0aW9uVG9vbHRpcEtleS5ERUZBVUxUX0NPTExFQ1RJT047XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnRlcm1Db2xsZWN0aW9uPy5lbnRyeUNvdW50ID09PSAwKSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5Lk5PX0VOVFJJRVM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50ZXJtVG9vbHRpcEtleSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iXX0=
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2pFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQTZIN0IsWUFBWTtJQUVaLFlBQVksaUJBQXFDLEVBQUUsWUFBMEI7UUF6RjdFLFlBQVk7UUFFWixxQ0FBcUM7UUFDckMsY0FBUyxHQUdMLEVBQUUsQ0FBQztRQUNQLGFBQWE7UUFFYixtQ0FBbUM7UUFDbkMsZ0pBQWdKO1FBQ2hKLDBGQUEwRjtRQUVsRixvQkFBZSxHQUFZLElBQUksQ0FBQztRQTZFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUF0SEQsTUFBTSxDQUFDLDhCQUE4QixDQUFDLFdBQXlDLEVBQUUsVUFBOEI7UUFDN0csS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FB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QUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLFVBQVUsQ0FBQztTQUNyRDthQUNJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQztTQUMvQztJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsNEJBQTRCLENBQUMsa0JBQWtCLENBQUM7U0FDdkU7YUFDSSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxLQUFLLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQztTQUMvRDthQUNJO1lBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDOztBQWhPRCwyQkFBMkI7QUFDcEIsb0NBQWlCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmdpbmVUZXJtQ29sbGVjdGlvblNjb3BlLCBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZSB9IGZyb20gXCIuLi9lbmdpbmUtdGVybS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgSVRsZFRlcm1Db2xsZWN0aW9uIH0gZnJvbSBcIi4uL3Rlcm0tYXBpL21vZGVscy90bGQtdGVybS1jb2xsZWN0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvblRvb2x0aXBLZXkgfSBmcm9tIFwiLi9jb21iaW5lZC1jb2xsZWN0aW9uLXRvb2x0aXAta2V5LmVudW1cIjtcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4vbXQtY29sbGVjdGlvbi1zdGF0dXMuZW51bVwiO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb24gfSBmcm9tIFwiLi9tdC1jb2xsZWN0aW9uLm1vZGVsXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3MgdGhhdCBqb2lucyBjb2xsZWN0aW9uIGZyb20gdGVybSBhcGkgYW5kIGl0cyBpbXBvcnRlZCBjb2xsZWN0aW9uIGZyb20gTVQgYXBpLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbWJpbmVkQ29sbGVjdGlvbiB7XHJcbiAgbXRDb2xsZWN0aW9uOiBNdENvbGxlY3Rpb247XHJcbiAgdGVybUNvbGxlY3Rpb246IElUbGRUZXJtQ29sbGVjdGlvbjtcclxuICB0ZXJtVG9vbHRpcEtleTogQ29tYmluZWRDb2xsZWN0aW9uVG9vbHRpcEtleTtcclxuICBzb3VyY2U6IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlO1xyXG4gIC8qKlxyXG4gICAqIE1vZGlmaWVkIGRhdGUgZnJvbSB0ZXJtIGFwaSBvciBsYXN0IHVwZGF0ZWQgZnJvbSBtdCBhcGkuXHJcbiAgICovXHJcbiAgbGFzdFVwZGF0ZWQ6IERhdGU7XHJcblxyXG4gIC8vI3JlZ2lvbiBTdGF0aWMgcHJvcGVydGllc1xyXG4gIHN0YXRpYyBpbXBvcnRpbmdTdGF0dXNlcyA9IFtNdENvbGxlY3Rpb25TdGF0dXMuSU1QT1JUSU5HLCBNdENvbGxlY3Rpb25TdGF0dXMuUFJPQ0VTU0lOR107XHJcblxyXG4gIHN0YXRpYyBmaW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QoY29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sbGVjdGlvbnMpIHtcclxuICAgICAgaWYgKChjb2wudGVybUlkICYmIGNvbC50ZXJtSWQgPT0gY29sbGVjdGlvbi50ZXJtSWQpIHx8XHJcbiAgICAgICAgKGNvbC5tdENvbGxlY3Rpb24/LmlkICYmIGNvbC5tdENvbGxlY3Rpb24uaWQgPT0gY29sbGVjdGlvbi5tdENvbGxlY3Rpb24/LmlkKSkge1xyXG4gICAgICAgIHJldHVybiBjb2w7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QoY29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IG51bWJlciB7XHJcbiAgICBpZiAoIWNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIGlmICgoY29sLnRlcm1JZCAmJiBjb2wudGVybUlkID09IGNvbGxlY3Rpb24udGVybUlkKSB8fFxyXG4gICAgICAgIChjb2wubXRDb2xsZWN0aW9uPy5pZCAmJiBjb2wubXRDb2xsZWN0aW9uLmlkID09IGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uPy5pZCkpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgICBpICs9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBFZGl0YWJsZSBNVCAoYXBpIHYyKSBmaWVsZHNcclxuICBlZGl0YWJsZXM6IHtcclxuICAgIGRlZmF1bHQ/OiBib29sZWFuO1xyXG4gICAgc2NvcGU/OiBFbmdpbmVUZXJtQ29sbGVjdGlvblNjb3BlO1xyXG4gIH0gPSB7fTtcclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBHZXR0ZXJzIGZvciBjb21tb24gZmllbGRzXHJcbiAgLy8gSXQgaXMgcG9zc2libGUgdG8gb3B0aW1pemUgZ2V0dGVycywgYnkgc2V0dGluZyBzb21lIG9mIHRoZSB2YWx1ZXMgaW4gdXBkYXRlIG1ldGhvZCwgYnV0IGl0IGlzIGxlZnQgdGhpcyB3YXksIHNvIHRoYXQgZGF0YSBpcyBtb3JlIGNvbnNpc3RlbnQuXHJcbiAgLy8gT3RoZXJ3aXNlIGl0IG1pZ2h0IGJlIGVhc3kgdG8gbWlzcyBzb21lIHByb3BlcnR5IHVwZGF0aW5nIGFuZCBnZXQgd3JvbmcgZGF0YSBpbiBmdXR1cmUuXHJcblxyXG4gIHByaXZhdGUgX2lzU3luY2hyb25pemVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBXZWF0aGVyIGNvbGxlY3Rpb24gaXMgc3luY2hyb25pemVkIHdpdGggdGVybSBwb3J0YWwgY29sbGVjdGlvbi4gSWYgbm8gdGVybSBjb2xsZWN0aW9uLCB2YWx1ZSBpcyBzZXQgdG8gdHJ1ZS5cclxuICAgKi9cclxuICBnZXQgaXNTeW5jaHJvbml6ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNTeW5jaHJvbml6ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIGlmIGNvbGxlY3Rpb25zIGlzICdzeW5jYWJsZScuIFJldHVybnMgdHJ1ZSBpZiBpdCBpcyBub3Qgc3luY2VkIG9yIGlmIHN5bmNocm9uaXphdGlvbiBoYXMgZmFpbGVkIGFuZCBzdGF0dXMgaXMgZXJyb3IuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc3luY0J1dHRvblZpc2libGU6IGJvb2xlYW47XHJcbiAgZ2V0IHN5bmNCdXR0b25WaXNpYmxlKCkgeyByZXR1cm4gdGhpcy5fc3luY0J1dHRvblZpc2libGU7IH1cclxuICAvKipcclxuICAgKiBUZXJtIGNvbGxlY3Rpb24gaWQuIFJldHVybnMgdmFsdWUgZnJvbSB0ZXJtIGNvbGxlY3Rpb24gb3IgZnJvbSBtdCwgaWYgdGVybSBjb2xsZWN0aW9uIG5vdCBleGlzdGluZy5cclxuICAgKi9cclxuICBnZXQgdGVybUlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb24/LmlkID8/IHRoaXMubXRDb2xsZWN0aW9uPy50ZXJtSWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgbXRTdGF0dXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdENvbGxlY3Rpb24/LnN0YXR1cztcclxuICB9XHJcblxyXG4gIGdldCBzY29wZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlcz8uc2NvcGUgPz8gdGhpcy5tdENvbGxlY3Rpb24/LnNjb3BlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9yZGVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uPy5vcmRlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxlY3Rpb24gbmFtZS4gSWYgaGFzIHRlcm0gY29sbGVjdGlvbiwgdGFrZXMgZnJvbSB0aGVyZS4gSWYgbm90LCB0aGVuIHJldHVybnMgbXQgY29sbGVjdGlvbiBuYW1lLlxyXG4gICAqL1xyXG4gIGdldCBuYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb24/Lm5hbWUgPz8gdGhpcy5tdENvbGxlY3Rpb24/Lm5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbnRyeSBjb3VudCBmcm9tIHRlcm0gYXBpLlxyXG4gICAqL1xyXG4gIGdldCB0ZXJtRW50cmllcygpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5lbnRyeUNvdW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0YWJsZXM/LmRlZmF1bHQgPz8gdGhpcy5tdENvbGxlY3Rpb24/LmRlZmF1bHQgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGF0dXMgZnJvbSBtdCBhcGkgb3IgY3VzdG9tIFwiTk9UX0lOX1VTRVwiIHN0YXR1cyBpZiBub3QgaW1wb3J0ZWQgaW4gbXQuc1xyXG4gICAqL1xyXG4gIGdldCBzdGF0dXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdFN0YXR1cyA/PyBNdENvbGxlY3Rpb25TdGF0dXMuTk9UX0lOX1VTRTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNjb3BlIGNhbiBiZSBlZGl0ZWQgb25seSBpZiBoYXMgbXQgY29sbGNldGlvbiBvciB0ZXJtIGNvbGxlY3Rpb24gaXMgYmVpbmcgcHJlcGFyZWQgZm9yIGltcG9ydC5cclxuICAgKi9cclxuICBnZXQgY2FuRWRpdFNjb3BlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uIHx8IHRoaXMuZGVmYXVsdDtcclxuICB9XHJcblxyXG4gIGdldCB0ZXJtQ291bnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdENvbGxlY3Rpb24/LnRlcm1Db3VudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzVGVybVBvcnRhbENvbGxlY3Rpb246IGJvb2xlYW47XHJcbiAgZ2V0IGlzVGVybVBvcnRhbENvbGxlY3Rpb24oKSB7IHJldHVybiB0aGlzLl9pc1Rlcm1Qb3J0YWxDb2xsZWN0aW9uOyB9XHJcblxyXG4gIHByaXZhdGUgX2lzSW1wb3J0aW5nOiBib29sZWFuO1xyXG4gIGdldCBpc0ltcG9ydGluZygpIHsgcmV0dXJuIHRoaXMuX2lzSW1wb3J0aW5nOyB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBjb25zdHJ1Y3Rvcih0ZXJtQXBpQ29sbGVjdGlvbjogSVRsZFRlcm1Db2xsZWN0aW9uLCBtdENvbGxlY3Rpb246IE10Q29sbGVjdGlvbikge1xyXG4gICAgdGhpcy5tdENvbGxlY3Rpb24gPSBtdENvbGxlY3Rpb247XHJcbiAgICB0aGlzLnRlcm1Db2xsZWN0aW9uID0gdGVybUFwaUNvbGxlY3Rpb247XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgY29sbGVjdGlvbiB3aXRoIHZhbHVlcyBmcm9tIG5ldyBjb2xsZWN0aW9uLlxyXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uIGNvbGxlY3Rpb24gZnJvbSB3aGljaCBzaG91bGQgYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0gaW5pdGlhbFJlZnJlc2ggaWYgc2V0IHRvIHRydWUsIGVkaXRhYmxlIGZpZWxkcyB3aWxsIGFsc28gYmUgdXBkYXRlZC5cclxuICAgKi9cclxuICB1cGRhdGUoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBpbml0aWFsUmVmcmVzaCA9IHRydWUpIHtcclxuICAgIGlmIChjb2xsZWN0aW9uPy50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnRlcm1Db2xsZWN0aW9uID0gY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29sbGVjdGlvbj8ubXRDb2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMubXRDb2xsZWN0aW9uID0gY29sbGVjdGlvbi5tdENvbGxlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faXNUZXJtUG9ydGFsQ29sbGVjdGlvbiA9ICh0aGlzLnRlcm1Db2xsZWN0aW9uIHx8IHRoaXMubXRDb2xsZWN0aW9uLnRlcm1JZCkgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgaWYgKGluaXRpYWxSZWZyZXNoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRWRpdGFibGVzKHRoaXMubXRDb2xsZWN0aW9uPy5kZWZhdWx0LCB0aGlzLm10Q29sbGVjdGlvbj8uc2NvcGUgPz8gRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZS5HUk9VUCwgdGhpcy5tdENvbGxlY3Rpb24/Lm9yZGVyKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pc0ltcG9ydGluZyA9IHRoaXMubXRDb2xsZWN0aW9uICYmIENvbWJpbmVkQ29sbGVjdGlvbi5pbXBvcnRpbmdTdGF0dXNlcy5pbmNsdWRlcyh0aGlzLm10Q29sbGVjdGlvbj8uc3RhdHVzKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUlzU3luY2hyb25pemVkKCk7XHJcbiAgICB0aGlzLnVwZGF0ZVRvb2x0aXBLZXkoKTtcclxuICAgIHRoaXMudXBkYXRlU291cmNlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiBzb21lIG9mIGVkaXRhYmxlcyBhcmUgZWRpdGVkLlxyXG4gICAqXHJcbiAgICogaWYgY29sbGVjdGlvbiBub3QgaW1wb3J0ZWQgYW5kIGVuYWJsZWQgbm90IHNldCwgbWV0aG9kIHdpbGwgcmV0dXJuIHRydWUsIGJlY2F1c2UgeW91IGNhbm5vdCB1cGRhdGUgY29sbGVjdGlvbiBpZiBpdCBpcyBub3QgaW1wb3J0ZWQgb3IgaXMgbm90IG1lYW50IHRvIGJlIGltcG9ydGVkLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBjb2xsZWN0aW9uIGlzIGVkaXRlZCwgZmFsc2UgaWYgbm90LlxyXG4gICAqL1xyXG4gIGlzRWRpdGVkKCkge1xyXG4gICAgLy8gaWYgY29sbGVjdGlvbiBub3QgaW1wb3J0ZWQgYW5kIGVuYWJsZWQgbm90IHNldCwgc2hvdWxkIG5vdCB1cGRhdGUgY29sbGVjdGlvbi5cclxuICAgIGlmICghdGhpcy5tdENvbGxlY3Rpb24gJiYgIXRoaXMuZGVmYXVsdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgodGhpcy5tdENvbGxlY3Rpb24/LmRlZmF1bHQgIT09IHRoaXMuZWRpdGFibGVzLmRlZmF1bHQpXHJcbiAgICAgIHx8ICh0aGlzLm10Q29sbGVjdGlvbiAmJiB0aGlzLmVkaXRhYmxlcy5zY29wZSAhPT0gdGhpcy5tdENvbGxlY3Rpb24uc2NvcGUpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyB0ZXJtIGNvbGxlY3Rpb24gYW5kIGl0cyBwcm9wZXJ0aWVzLlxyXG4gICAqL1xyXG4gIGRlbGV0ZVRlcm1zKCkge1xyXG4gICAgdGhpcy50ZXJtQ29sbGVjdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBtdCBjb2xsZWN0aW9uIGFuZCBpdHMgcHJvcGVydGllcy5cclxuICAgKi9cclxuICBkZWxldGVNVCgpIHtcclxuICAgIHRoaXMubXRDb2xsZWN0aW9uID0gbnVsbDtcclxuICAgIHRoaXMudXBkYXRlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRWRpdGFibGVzKGlzRGVmYXVsdDogYm9vbGVhbiwgc2NvcGU6IEVuZ2luZVRlcm1Db2xsZWN0aW9uU2NvcGUsIG9yZGVyOiBudW1iZXIpIHtcclxuICAgIHRoaXMuZWRpdGFibGVzLmRlZmF1bHQgPSBpc0RlZmF1bHQ7XHJcbiAgICB0aGlzLmVkaXRhYmxlcy5zY29wZSA9IHNjb3BlO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFByaXZhdGUgbWV0aG9kc1xyXG4gIHByaXZhdGUgdXBkYXRlSXNTeW5jaHJvbml6ZWQoKSB7XHJcbiAgICBsZXQgaXNTeW5jaHJvbml6ZWQgPSB0cnVlO1xyXG4gICAgY29uc3QgdGVybU1vZGlmaWVkID0gdGhpcy50ZXJtQ29sbGVjdGlvbj8ubW9kaWZ5RGF0ZTtcclxuICAgIGNvbnN0IGxhc3RNdFVwZGF0ZWQgPSB0aGlzLm10Q29sbGVjdGlvbj8ubGFzdFVwZGF0ZWQ7XHJcbiAgICBpZiAodGVybU1vZGlmaWVkICYmIGxhc3RNdFVwZGF0ZWQpIHtcclxuICAgICAgaXNTeW5jaHJvbml6ZWQgPSB0ZXJtTW9kaWZpZWQgPD0gbGFzdE10VXBkYXRlZDtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc1N5bmNocm9uaXplZCA9IGlzU3luY2hyb25pemVkO1xyXG4gICAgdGhpcy5sYXN0VXBkYXRlZCA9IGxhc3RNdFVwZGF0ZWQgPz8gdGVybU1vZGlmaWVkO1xyXG4gICAgdGhpcy5fc3luY0J1dHRvblZpc2libGUgPSAhdGhpcy5pc1N5bmNocm9uaXplZCB8fCAodGhpcy50ZXJtQ29sbGVjdGlvbiAmJiB0aGlzLm10U3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1IpICYmICF0aGlzLmlzSW1wb3J0aW5nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTb3VyY2UoKSB7XHJcbiAgICBpZiAodGhpcy50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnNvdXJjZSA9IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlLlRJTERFX1RFUk07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnNvdXJjZSA9IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlLkZJTEU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVRvb2x0aXBLZXkoKSB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0KSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5LkRFRkFVTFRfQ09MTEVDVElPTjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudGVybUNvbGxlY3Rpb24/LmVudHJ5Q291bnQgPT09IDApIHtcclxuICAgICAgdGhpcy50ZXJtVG9vbHRpcEtleSA9IENvbWJpbmVkQ29sbGVjdGlvblRvb2x0aXBLZXkuTk9fRU5UUklFUztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRlcm1Ub29sdGlwS2V5ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9tdC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmdpbmVUZXJtQ29sbGVjdGlvblN1YlN0YXR1cyB9IGZyb20gXCIuLi9lbmdpbmUtdGVybS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZSB9IGZyb20gXCIuLi9lbmdpbmUtdGVybS9tb2RlbHMvZW5naW5lLXRlcm0tY29sbGVjdGlvbi1zY29wZS5lbnVtXCI7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvblN0YXR1cyB9IGZyb20gXCIuL210LWNvbGxlY3Rpb24tc3RhdHVzLmVudW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTXRDb2xsZWN0aW9uIHtcclxuICAvLyNyZWdpb24gQ29tbW9uIHYxIGFuZCB2MiBwcm9wZXJ0aWVzXHJcbiAgaWQ6IHN0cmluZztcclxuICBsYXN0VXBkYXRlZDogRGF0ZTtcclxuICBzdGF0dXM6IE10Q29sbGVjdGlvblN0YXR1cztcclxuICBzdWJTdGF0dXM/OiBFbmdpbmVUZXJtQ29sbGVjdGlvblN1YlN0YXR1cztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGVybUlkPzogc3RyaW5nO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG4gIC8vI3JlZ2lvbiBPTkxZIEFwaSB2MiBwcm9wZXJ0aWVzXHJcbiAgLyoqXHJcbiAgICogQXBpIHYyIGRldGVybWluZXMgaWYgY29sbGVjdGlvbiBpcyBkZWZhdWx0LlxyXG4gICAqL1xyXG4gIGRlZmF1bHQ/OiBib29sZWFuO1xyXG4gIHNjb3BlPzogRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZTtcclxuICBvcmRlcj86IG51bWJlcjtcclxuICB0ZXJtQ291bnQ/OiBudW1iZXI7XHJcbiAgcHJvZ3Jlc3M/OiBudW1iZXI7XHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9tdC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmdpbmVUZXJtQ29sbGVjdGlvblN1YlN0YXR1cyB9IGZyb20gXCIuLi9lbmdpbmUtdGVybS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZSB9IGZyb20gXCIuLi9lbmdpbmUtdGVybS9tb2RlbHMvZW5naW5lLXRlcm0tY29sbGVjdGlvbi1zY29wZS5lbnVtXCI7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvblN0YXR1cyB9IGZyb20gXCIuL210LWNvbGxlY3Rpb24tc3RhdHVzLmVudW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTXRDb2xsZWN0aW9uIHtcclxuICAvLyNyZWdpb24gQ29tbW9uIHYxIGFuZCB2MiBwcm9wZXJ0aWVzXHJcbiAgaWQ6IHN0cmluZztcclxuICBsYXN0VXBkYXRlZDogRGF0ZTtcclxuICBzdGF0dXM6IE10Q29sbGVjdGlvblN0YXR1cztcclxuICBzdWJTdGF0dXM/OiBFbmdpbmVUZXJtQ29sbGVjdGlvblN1YlN0YXR1cztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGVybUlkPzogc3RyaW5nO1xyXG4gIGNvbGxlY3Rpb25Tb3VyY2U/OiBzdHJpbmc7XHJcbiAgLy8jZW5kcmVnaW9uXHJcbiAgLy8jcmVnaW9uIE9OTFkgQXBpIHYyIHByb3BlcnRpZXNcclxuICAvKipcclxuICAgKiBBcGkgdjIgZGV0ZXJtaW5lcyBpZiBjb2xsZWN0aW9uIGlzIGRlZmF1bHQuXHJcbiAgICovXHJcbiAgZGVmYXVsdD86IGJvb2xlYW47XHJcbiAgc2NvcGU/OiBFbmdpbmVUZXJtQ29sbGVjdGlvblNjb3BlO1xyXG4gIG9yZGVyPzogbnVtYmVyO1xyXG4gIHRlcm1Db3VudD86IG51bWJlcjtcclxuICBwcm9ncmVzcz86IG51bWJlcjtcclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iXX0=
@@ -259,6 +259,7 @@ export class TerminologyService {
259
259
  }
260
260
  }
261
261
  }
262
+ this.selected = null;
262
263
  }
263
264
  clearTimeout() {
264
265
  if (this.refreshTimeout) {
@@ -311,4 +312,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
311
312
  type: Inject,
312
313
  args: [MT_TERM_API_TOKEN]
313
314
  }] }]; } });
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQU94RSxNQUFNLE9BQU8sa0JBQWtCO0lBNkQ3QixZQUE2QixNQUFpQyxFQUMzQyxPQUF1QixFQUN2QixNQUF1QixFQUNMLEtBQXFCO1FBSDdCLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ0wsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUE5RGxELGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBNkM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHNCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBZUMsQ0FBQztJQTdEL0QsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFJLFFBQVEsQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxH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LEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU07WUFDSixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7K0dBdFhVLGtCQUFrQix3SEFnRW5CLGlCQUFpQjttSEFoRWhCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWlFSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNVF9URVJNX0FQSV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UgfSBmcm9tICcuL2VuZ2luZS10ZXJtL21vZGVscyc7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvbiB9IGZyb20gJy4vbW9kZWxzL2NvbWJpbmVkLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb25TdGF0dXMgfSBmcm9tICcuL21vZGVscy9tdC1jb2xsZWN0aW9uLXN0YXR1cy5lbnVtJztcclxuaW1wb3J0IHsgSU10VGVybVNlcnZpY2UgfSBmcm9tICcuL21vZGVscy9tdC10ZXJtLXNlcnZpY2UubW9kZWwnO1xyXG5pbXBvcnQgeyBUZXJtQXBpU2VydmljZSB9IGZyb20gJy4vdGVybS1hcGkvdGVybS1hcGkuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3RlZDogQ29tYmluZWRDb2xsZWN0aW9uID0gbnVsbDtcclxuICBnZXQgc2VsZWN0ZWQoKSB7IHJldHVybiB0aGlzLl9zZWxlY3RlZDsgfVxyXG4gIHNldCBzZWxlY3RlZCh2YWw6IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWw7XHJcbiAgICB0aGlzLnN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpO1xyXG4gICAgaWYgKCF0aGlzLl9zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3NlbGVjdGVkLm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLmFkZFRvRW5naW5lKHRoaXMuX3NlbGVjdGVkKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQW55SW1wb3J0aW5nOiBib29sZWFuO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfaGFzQW55Q29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGhhc0FueUNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hhc0FueUNvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBzaG91bGRTaG93UHJvbW90aW9uKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmhhc0FueUNvbGxlY3Rpb25zICYmICF0aGlzLmhhc0VkaXRQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIGdldCBjYW5DcmVhdGVDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRWRpdFBlcm1pc3Npb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5jb3JlQ29uZmlnLmlzQXV0aCAmJiB0aGlzLmNhbkNyZWF0ZUNvbGxlY3Rpb25zICYmIHRoaXMuY29uZmlnLnRlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUmVmcmVzaGluZ0NvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbnM6IFNldDxDb21iaW5lZENvbGxlY3Rpb24+O1xyXG4gIGdldCBjb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EYXRhVXBkYXRlID0gbmV3IFN1YmplY3Q8U2V0PENvbWJpbmVkQ29sbGVjdGlvbj4+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9DQUxfU1RPUkFHRV9LRVkgPSBcInN5c3RlbUxhc3RDb2xsZWN0aW9uc1wiO1xyXG4gIHByaXZhdGUgZW5naW5lSWQ6IHN0cmluZztcclxuICBwcml2YXRlIHJlZnJlc2hNdENvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIHByaXZhdGUgcmVmcmVzaFRlcm1Db2xsZWN0aW9uczogYm9vbGVhbjtcclxuICAvLyBzdG9yZXMgbGFuZ3VhZ2UgY29kZXMgd2hpY2ggYXJlIHVzZWQgdG8gZmlsdGVyIHZpc2JsZSBjb2xsZWN0aW9ucyBmcm9tIHRlcm0gYXBpLlxyXG4gIHByaXZhdGUgZW5naW5lTGFuZ3VhZ2VzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIHJlZnJlc2hUaW1lb3V0OiBhbnk7XHJcbiAgLy8gc29mdCByZWZyZXNoIHRha2VzIGluIGFjY291bnQgb3RoZXIgcGFyYW1zIGFzIHdlbGwuXHJcbiAgcHJpdmF0ZSBpc1NvZnRBdXRvUmVmcmVzaE9uOiBib29sZWFuO1xyXG4gIC8vIHNob3VsZCBkbyBhdXRvcmVmcmVzaCBieSBpZ25vcmluZyBhbnkgb3RoZXIgcGFyYW1zLlxyXG4gIHByaXZhdGUgaGFyZEF1dG9SZWZyZXNoOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUFwaTogVGVybUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVGxkQWxlcnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNVF9URVJNX0FQSV9UT0tFTikgcHJpdmF0ZSBtdEFwaTogSU10VGVybVNlcnZpY2UpIHsgfVxyXG5cclxuICBkYXRhVXBkYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub25EYXRhVXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RW5naW5lKGVuZ2luZUlkOiBzdHJpbmcsIGxhbmd1YWdlczogc3RyaW5nW10gPSBudWxsLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZSwgdGVybUNvbGxlY3Rpb25zID0gdHJ1ZSwgbXRDb2xsZWN0aW9ucyA9IHRydWUpOiBPYnNlcnZhYmxlPFNldDxDb21iaW5lZENvbGxlY3Rpb24+PiB7XHJcbiAgICAvLyBlbmdpbmUgaXMgYWxyZWFkeSBzZXQgd2l0aCB0aGF0IElEIGFuZCBubyBuZWVkIHRvIHJlZnJlc2ggaXQuXHJcbiAgICBpZiAoZW5naW5lSWQgIT09IHRoaXMuZW5naW5lSWQgfHwgSlNPTi5zdHJpbmdpZnkobGFuZ3VhZ2VzKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5lbmdpbmVMYW5ndWFnZXMpXHJcbiAgICAgIHx8IHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgIT09IG10Q29sbGVjdGlvbnMgfHwgdGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zICE9PSB0ZXJtQ29sbGVjdGlvbnMpIHtcclxuICAgICAgdGhpcy5lbmdpbmVMYW5ndWFnZXMgPSBsYW5ndWFnZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgPSBtdENvbGxlY3Rpb25zO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUZXJtQ29sbGVjdGlvbnMgPSB0ZXJtQ29sbGVjdGlvbnM7XHJcbiAgICAgIHRoaXMuZW5naW5lSWQgPSBlbmdpbmVJZDtcclxuICAgICAgdGhpcy5fY29sbGVjdGlvbnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGFVcGRhdGVFdmVudCgpO1xyXG4gICAgICAvLyBhdm9pZGluZyBzZXR0ZXIsIHNvIHRoZSBudWxsIHZhbHVlIGlzIG5vdCBzdG9yZWVkIGluIGxvY2F0aW9uIHNpbmNlIGl0IGlzIG5vdCBieSB1c2VyIGFjdGlvblxyXG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW5naW5lSWQpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsIGluaXRpYWxSZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIGlmICghdGhpcy5lbmdpbmVJZCB8fCAhdGhpcy5jb25maWcudGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkIHx8IHRoaXMuaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNsZWFyIHRpbWVvdXQgc2luY2UgdGhpcyByZWZyZXNoIHJlcGxhY2VzIHNjaGVkdWxlZFxyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IHRydWU7XHJcblxyXG4gICAgbGV0IHRlcm1SZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcbiAgICBsZXQgbXRBcGlSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcblxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uW10+W10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy50ZXJtQXBpLmdldENvbGxlY3Rpb25MaXN0KHRoaXMuZW5naW5lTGFuZ3VhZ2VzKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IHRlcm1SZXNwb25zZSA9IHJlc3BvbnNlKVxyXG4gICAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZWZyZXNoTXRDb2xsZWN0aW9ucykge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMubXRBcGkuZ2V0TGlzdCh0aGlzLmVuZ2luZUlkKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IG10QXBpUmVzcG9uc2UgPSByZXNwb25zZSlcclxuICAgICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAvLyBkbyBub3QgbmVlZCByZXNwb25zZSBiZWNhdWUgcmVzcG9uc2VzIGFyZSBzYXZlZCBpbiBwaXBlIG1ldGhvZHNcclxuICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNBbnlJbXBvcnRpbmcgPSBmYWxzZTtcclxuICAgICAgICAvLyBub3RlIHRoYXQgdGVybVJlc3BvbnNlIGFuZCBtdGFwaXJlc3BvbnNlIGdldHMgY2hhbmdlZCBkdXJpbmcgcmVtb3ZlIG1ldGhvZFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRGVsZXRlZCh0ZXJtUmVzcG9uc2UsIG10QXBpUmVzcG9uc2UsIGluaXRpYWxSZWZyZXNoKTtcclxuXHJcbiAgICAgICAgY29uc3Qgam9pbmVkID0gW107XHJcbiAgICAgICAgaWYgKG10QXBpUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGpvaW5lZC5wdXNoKC4uLm10QXBpUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGVybVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi50ZXJtUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hZGRDb2xsZWN0aW9ucyhqb2luZWQsIGluaXRpYWxSZWZyZXNoKTtcclxuICAgICAgICBpZiAoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKG51bGwpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICAvLyBpdCBpcyBlbm91Z2ggdG8gc2hvdyBlcnJvciBvbmx5IGluIGNvbnNvbGUuIE5vIHNwZWNpYWwgdGhpbmcgaXMgbmVjZXNzYXJ5LlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRUb0VuZ2luZShjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIGlmICghY29sbGVjdGlvbiB8fCAhY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiVHJ5aW5nIHRvIGF0dGFjaCBjb2xsZWN0aW9uIHRoYXQgaGFzIG5vIHRpbGRlIHRlcm0gaWQuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb24sIHRydWUpLnN1YnNjcmliZShcclxuICAgICAge1xyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGNyZWF0ZShzb3VyY2VMYW5ndWFnZTogc3RyaW5nLCB0YXJnZXRMYW5ndWFnZTogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCByZWRpcmVjdFRvRWRpdCA9IHRydWUpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1BcGkuY3JlYXRlQ29sbGVjdGlvbihbc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlXSwgY29sbGVjdGlvbk5hbWUpLnBpcGUoXHJcbiAgICAgIHRhcCgoY29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgIGlmIChyZWRpcmVjdFRvRWRpdCkge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy50ZXJtQXBpLmdldEVkaXRMaW5rKGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24uaWQsIHNvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZSksIFwiX2JsYW5rXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XHJcbiAgICAgICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5faGFzQW55Q29sbGVjdGlvbnMgPSB0cnVlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgaXNFZGl0ZWQgPSBmYWxzZSk6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICAvLyBjb2xsZWN0aW9uIGlzIG5vdCBpbXBvcnRlZCBhbmQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIGVuZ2luZVxyXG4gICAgaWYgKGNvbGxlY3Rpb24uaXNFZGl0ZWQoKSB8fCBpc0VkaXRlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tdEFwaS5hZGQodGhpcy5lbmdpbmVJZCwgY29sbGVjdGlvbilcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihjb2xsZWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKlxyXG4gKiBAcmV0dXJucyBzZWxlY3RlZCBjb2xsZWN0aW9uIGlkIGlmIGl0IGlzIGFsbG93ZWQgdG8gdXNlIGNvbGxlY3Rpb24gZm9yIHRyYW5zbGF0aW9uc1xyXG4gKi9cclxuICBzZWxlY3RlZElkRm9yVHJhbnNsYXRpb24oKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkPy5tdENvbGxlY3Rpb24gJiYgKHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHx8IHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5zdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5SRUFEWSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5pZDtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRBdXRvUmVmcmVzaChlbmdpbmVJZD86IHN0cmluZywgbGFuZ3VhZ2VzOiBzdHJpbmdbXSA9IG51bGwsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSA9IGZhbHNlLCB0ZXJtQ29sbGVjdGlvbnMgPSB0cnVlLCBtdENvbGxlY3Rpb25zID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5oYXJkQXV0b1JlZnJlc2ggPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0RW5naW5lKGVuZ2luZUlkID8/IHRoaXMuZW5naW5lSWQsIGxhbmd1YWdlcyA/PyB0aGlzLmVuZ2luZUxhbmd1YWdlcywgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0ZXJtQ29sbGVjdGlvbnMsIG10Q29sbGVjdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RvcEF1dG9SZWZyZXNoKCkge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24gPSBmYWxzZTtcclxuICAgIHRoaXMuaGFyZEF1dG9SZWZyZXNoID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdENvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBlbmdpbmVJZCA9IHRoaXMuZW5naW5lSWQpIHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnJlbW92ZShlbmdpbmVJZCwgY29sbGVjdGlvbikucGlwZShcclxuICAgICAgdGFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHJlc3BvbnNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzeW5jKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgZW5naW5lSWQgPSB0aGlzLmVuZ2luZUlkKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb24+IHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnN5bmMoZW5naW5lSWQsIGNvbGxlY3Rpb24pLlxyXG4gICAgICBwaXBlKHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHsgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pIH0pKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVJlZnJlc2godGltZW91dD86IG51bWJlcikge1xyXG4gICAgLy8gaWYgbWVudSBpcyBjbG9zZWQgYW5kIHNlbGVjdGVkIGNvbGxlY3Rpb24gaXMgbm90IGltcG9ydGluZyBhbnltb3JlIC0gYXV0byByZWZyZXNoaW5nIHNob3VsZCBiZSBjYW5jZWxsZWQuXHJcbiAgICBpZiAoIXRoaXMuaGFyZEF1dG9SZWZyZXNoICYmICF0aGlzLnNlbGVjdGVkPy5pc0ltcG9ydGluZyAmJiB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24pIHtcclxuICAgICAgdGhpcy5zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIGhhcmQgYXV0byByZWZyZXNobyBvbiwgYXV0byByZWZyZXNoIHNob3VsZCBiZSBvbi4gSWYgaGFyZCBhdXRvcmVmZXJlc2ggaXMgb2ZmICwgcmVmcmVzaCBuZWVkcyB0byBiZSBkb25lIG9ubHkgaWYgc2VsZWN0ZWQgaXMgaW1wb3J0aW5nLlxyXG4gICAgaWYgKHRoaXMuaGFyZEF1dG9SZWZyZXNoIHx8ICghdGhpcy5yZWZyZXNoVGltZW91dCAmJiAodGhpcy5pc1NvZnRBdXRvUmVmcmVzaE9uIHx8IHRoaXMuc2VsZWN0ZWQ/LmlzSW1wb3J0aW5nKSkpIHtcclxuICAgICAgY29uc3QgdGltZW91dE1zID0gdGltZW91dCA/PyAodGhpcy5pc0FueUltcG9ydGluZyA/IHRoaXMuY29uZmlnLnRlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgOiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoKVxyXG4gICAgICB9LCB0aW1lb3V0TXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbmV3Q29sbGVjdGlvbnNcclxuICAgKiBAcGFyYW0gaW5pdGlhbFJlZnJlc2ggV2hldGhlciBhbHNvIGVkaXRhYmxlIGNvbGxlY3Rpb24gZmllbGRzIHNob3VsZCBiZSB1cGRhdGVkLiBJZiBub3QgaW5pdGlhbCByZWZyZXNoLCBlZGl0YWJsZSBmaWVsZHMgd2lsbCBub3QgYmUgdXBkYXRlZC5cclxuICAgKi9cclxuICBwcml2YXRlIGFkZENvbGxlY3Rpb25zKG5ld0NvbGxlY3Rpb25zOiBJdGVyYWJsZTxDb21iaW5lZENvbGxlY3Rpb24+LCBpbml0aWFsUmVmcmVzaDogYm9vbGVhbikge1xyXG4gICAgLy8gc2V0cyBjb2xsZWN0aW9uIGxpc3QgdG8gdGhpcyB2YWx1ZSBhdCB0aGUgZW5kLCBzbyBkZWxldGVkIGNvbGxlY3Rpb25zIGFyZSBub3QgaW4gdGhlIGxpc3QuXHJcbiAgICBmb3IgKGxldCBjb2xsZWN0aW9uIG9mIG5ld0NvbGxlY3Rpb25zKSB7XHJcbiAgICAgIC8vIFVzZXIgc2hvdWxkbid0IHNlZSBmYWlsZWQgY29sbGVjdGlvbnMgaWYgaGUgY2FuJ3QgcmV0cnkgdG8gaW1wb3J0IHRoZW0uXHJcbiAgICAgIGlmICghdGhpcy5oYXNFZGl0UGVybWlzc2lvbnNcclxuICAgICAgICAmJiBjb2xsZWN0aW9uLm10U3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1IpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbGxlY3Rpb24uaXNJbXBvcnRpbmcpIHtcclxuICAgICAgICB0aGlzLmlzQW55SW1wb3J0aW5nID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZXhpc3Rpbmc6IENvbWJpbmVkQ29sbGVjdGlvbiA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QodGhpcy5jb2xsZWN0aW9ucywgY29sbGVjdGlvbik7XHJcblxyXG4gICAgICAvLyBJZiB0ZXJtIGFwaSBkb2Vzbid0IGhhdmUgZW5naW5lIGxhbmd1YWdlcywgY29sbGVjdGlvbiBzaG91bGQgbm90IGJlIHNob3duIChpZiBpdCBpcyBub3QgYWxyZWFkeSBpbXBvcnRlZCBzb21laG93KTtcclxuICAgICAgaWYgKCFleGlzdGluZyAmJiBjb2xsZWN0aW9uLnNvdXJjZSA9PT0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuVElMREVfVEVSTSkge1xyXG4gICAgICAgIGxldCBoYXNMYW5ndWFnZXMgPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbmdpbmVMYW5ndWFnZXM/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24ubGFuZ3VhZ2VzPy5maW5kKGxhbmcgPT4gbGFuZy5pZCA9PT0gdGhpcy5lbmdpbmVMYW5ndWFnZXNbaV0pKSB7XHJcbiAgICAgICAgICAgIGhhc0xhbmd1YWdlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghaGFzTGFuZ3VhZ2VzKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghZXhpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZXhpc3RpbmcudXBkYXRlKGNvbGxlY3Rpb24sIGluaXRpYWxSZWZyZXNoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX2NvbGxlY3Rpb25zID0gdXBkYXRlZENvbGxlY3Rpb25zO1xyXG4gICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICB0aGlzLl9oYXNBbnlDb2xsZWN0aW9ucyA9IHRoaXMuX2NvbGxlY3Rpb25zLnNpemUgPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdWxkIGJlIGNhbGxlZCBhZnRlciByZWZyZXNoIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFueSBjb2xsZWN0aW9ucyBmcm9tIGFwaSB0aGF0IGFyZSBkZWxldGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlRGVsZXRlZCh0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdLCBtdFJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSwgaW5pdGlhbFJlZnJlc2g6IGJvb2xlYW4pIHtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgdGhpcy5jb2xsZWN0aW9ucykge1xyXG4gICAgICBjb25zdCB0ZXJtRXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KHRlcm1SZXNwb25zZSwgY29sbGVjdGlvbik7XHJcbiAgICAgIGNvbnN0IG10RXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KG10UmVzcG9uc2UsIGNvbGxlY3Rpb24pO1xyXG4gICAgICBpZiAodGVybUV4aXN0aW5nSXggPT09IG51bGwgJiYgbXRFeGlzdGluZ0l4ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucy5kZWxldGUoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHRlcm1FeGlzdGluZ0l4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHRlcm1SZXNwb25zZVt0ZXJtRXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgdGVybVJlc3BvbnNlLnNwbGljZSh0ZXJtRXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29sbGVjdGlvbi5kZWxldGVUZXJtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG10RXhpc3RpbmdJeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBtdFJlc3BvbnNlW210RXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgbXRSZXNwb25zZS5zcGxpY2UobXRFeGlzdGluZ0l4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLmRlbGV0ZU1UKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyVGltZW91dCgpIHtcclxuICAgIGlmICh0aGlzLnJlZnJlc2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hUaW1lb3V0KTtcclxuICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIC8vIElmIG5vIGNvbGxlY3Rpb25zIG9yIHNlbGVjdGVkIGlzIGFscmVhZHkgc2V0LCBpdCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZnJvbSBsb2NhbHN0b3JhZ2UgdmFsdWUuIChVc3VhbGx5LCBsb2NhbHN0b3JhZ2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgdmFsdWUpLlxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbnM/LnNpemUgPT09IDAgfHwgdGhpcy5zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdG9yZWRJZCA9IHRoaXMucmVhZExvY2FsU3RvcmFnZSgpPy5bdGhpcy5lbmdpbmVJZF07XHJcbiAgICBpZiAoIXN0b3JlZElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleGlzdGluZyA9IEFycmF5LmZyb20odGhpcy5jb2xsZWN0aW9ucykuZmluZChpdGVtID0+IGl0ZW0udGVybUNvbGxlY3Rpb24/LmlkID09PSBzdG9yZWRJZCB8fCBpdGVtLm10Q29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBleGlzdGluZztcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGxldCBsb2NhbFN0b3JhZ2VPYmplY3QgPSB0aGlzLnJlYWRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIGlmICghbG9jYWxTdG9yYWdlT2JqZWN0KSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZU9iamVjdCA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGxvY2FsU3RvcmFnZU9iamVjdFt0aGlzLmVuZ2luZUlkXSA9IHRoaXMuc2VsZWN0ZWQgPyAodGhpcy5zZWxlY3RlZC50ZXJtQ29sbGVjdGlvbj8uaWQgPz8gdGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24/LmlkKSA6IG51bGw7XHJcbiAgICAvLyBzdG9yZSB0ZXJtIGlkIGlmIGl0IGV4aXN0c1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkobG9jYWxTdG9yYWdlT2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRMb2NhbFN0b3JhZ2UoKTogYW55IHtcclxuICAgIGNvbnN0IGRhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdERhdGFVcGRhdGVFdmVudCgpIHtcclxuICAgIHRoaXMub25EYXRhVXBkYXRlLm5leHQodGhpcy5jb2xsZWN0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQU94RSxNQUFNLE9BQU8sa0JBQWtCO0lBNkQ3QixZQUE2QixNQUFpQyxFQUMzQyxPQUF1QixFQUN2QixNQUF1QixFQUNMLEtBQXFCO1FBSDdCLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ0wsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUE5RGxELGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBNkM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHNCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBZUMsQ0FBQztJQTdEL0QsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFJLFFBQVEsQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxH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LENBQUM7UUFDMUQsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU07WUFDSixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7K0dBeFhVLGtCQUFrQix3SEFnRW5CLGlCQUFpQjttSEFoRWhCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWlFSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNVF9URVJNX0FQSV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UgfSBmcm9tICcuL2VuZ2luZS10ZXJtL21vZGVscyc7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvbiB9IGZyb20gJy4vbW9kZWxzL2NvbWJpbmVkLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb25TdGF0dXMgfSBmcm9tICcuL21vZGVscy9tdC1jb2xsZWN0aW9uLXN0YXR1cy5lbnVtJztcclxuaW1wb3J0IHsgSU10VGVybVNlcnZpY2UgfSBmcm9tICcuL21vZGVscy9tdC10ZXJtLXNlcnZpY2UubW9kZWwnO1xyXG5pbXBvcnQgeyBUZXJtQXBpU2VydmljZSB9IGZyb20gJy4vdGVybS1hcGkvdGVybS1hcGkuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3RlZDogQ29tYmluZWRDb2xsZWN0aW9uID0gbnVsbDtcclxuICBnZXQgc2VsZWN0ZWQoKSB7IHJldHVybiB0aGlzLl9zZWxlY3RlZDsgfVxyXG4gIHNldCBzZWxlY3RlZCh2YWw6IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWw7XHJcbiAgICB0aGlzLnN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpO1xyXG4gICAgaWYgKCF0aGlzLl9zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3NlbGVjdGVkLm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLmFkZFRvRW5naW5lKHRoaXMuX3NlbGVjdGVkKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQW55SW1wb3J0aW5nOiBib29sZWFuO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfaGFzQW55Q29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGhhc0FueUNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hhc0FueUNvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBzaG91bGRTaG93UHJvbW90aW9uKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmhhc0FueUNvbGxlY3Rpb25zICYmICF0aGlzLmhhc0VkaXRQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIGdldCBjYW5DcmVhdGVDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRWRpdFBlcm1pc3Npb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5jb3JlQ29uZmlnLmlzQXV0aCAmJiB0aGlzLmNhbkNyZWF0ZUNvbGxlY3Rpb25zICYmIHRoaXMuY29uZmlnLnRlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUmVmcmVzaGluZ0NvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbnM6IFNldDxDb21iaW5lZENvbGxlY3Rpb24+O1xyXG4gIGdldCBjb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EYXRhVXBkYXRlID0gbmV3IFN1YmplY3Q8U2V0PENvbWJpbmVkQ29sbGVjdGlvbj4+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9DQUxfU1RPUkFHRV9LRVkgPSBcInN5c3RlbUxhc3RDb2xsZWN0aW9uc1wiO1xyXG4gIHByaXZhdGUgZW5naW5lSWQ6IHN0cmluZztcclxuICBwcml2YXRlIHJlZnJlc2hNdENvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIHByaXZhdGUgcmVmcmVzaFRlcm1Db2xsZWN0aW9uczogYm9vbGVhbjtcclxuICAvLyBzdG9yZXMgbGFuZ3VhZ2UgY29kZXMgd2hpY2ggYXJlIHVzZWQgdG8gZmlsdGVyIHZpc2JsZSBjb2xsZWN0aW9ucyBmcm9tIHRlcm0gYXBpLlxyXG4gIHByaXZhdGUgZW5naW5lTGFuZ3VhZ2VzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIHJlZnJlc2hUaW1lb3V0OiBhbnk7XHJcbiAgLy8gc29mdCByZWZyZXNoIHRha2VzIGluIGFjY291bnQgb3RoZXIgcGFyYW1zIGFzIHdlbGwuXHJcbiAgcHJpdmF0ZSBpc1NvZnRBdXRvUmVmcmVzaE9uOiBib29sZWFuO1xyXG4gIC8vIHNob3VsZCBkbyBhdXRvcmVmcmVzaCBieSBpZ25vcmluZyBhbnkgb3RoZXIgcGFyYW1zLlxyXG4gIHByaXZhdGUgaGFyZEF1dG9SZWZyZXNoOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUFwaTogVGVybUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVGxkQWxlcnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNVF9URVJNX0FQSV9UT0tFTikgcHJpdmF0ZSBtdEFwaTogSU10VGVybVNlcnZpY2UpIHsgfVxyXG5cclxuICBkYXRhVXBkYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub25EYXRhVXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RW5naW5lKGVuZ2luZUlkOiBzdHJpbmcsIGxhbmd1YWdlczogc3RyaW5nW10gPSBudWxsLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZSwgdGVybUNvbGxlY3Rpb25zID0gdHJ1ZSwgbXRDb2xsZWN0aW9ucyA9IHRydWUpOiBPYnNlcnZhYmxlPFNldDxDb21iaW5lZENvbGxlY3Rpb24+PiB7XHJcbiAgICAvLyBlbmdpbmUgaXMgYWxyZWFkeSBzZXQgd2l0aCB0aGF0IElEIGFuZCBubyBuZWVkIHRvIHJlZnJlc2ggaXQuXHJcbiAgICBpZiAoZW5naW5lSWQgIT09IHRoaXMuZW5naW5lSWQgfHwgSlNPTi5zdHJpbmdpZnkobGFuZ3VhZ2VzKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5lbmdpbmVMYW5ndWFnZXMpXHJcbiAgICAgIHx8IHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgIT09IG10Q29sbGVjdGlvbnMgfHwgdGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zICE9PSB0ZXJtQ29sbGVjdGlvbnMpIHtcclxuICAgICAgdGhpcy5lbmdpbmVMYW5ndWFnZXMgPSBsYW5ndWFnZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgPSBtdENvbGxlY3Rpb25zO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUZXJtQ29sbGVjdGlvbnMgPSB0ZXJtQ29sbGVjdGlvbnM7XHJcbiAgICAgIHRoaXMuZW5naW5lSWQgPSBlbmdpbmVJZDtcclxuICAgICAgdGhpcy5fY29sbGVjdGlvbnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGFVcGRhdGVFdmVudCgpO1xyXG4gICAgICAvLyBhdm9pZGluZyBzZXR0ZXIsIHNvIHRoZSBudWxsIHZhbHVlIGlzIG5vdCBzdG9yZWVkIGluIGxvY2F0aW9uIHNpbmNlIGl0IGlzIG5vdCBieSB1c2VyIGFjdGlvblxyXG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW5naW5lSWQpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsIGluaXRpYWxSZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIGlmICghdGhpcy5lbmdpbmVJZCB8fCAhdGhpcy5jb25maWcudGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkIHx8IHRoaXMuaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNsZWFyIHRpbWVvdXQgc2luY2UgdGhpcyByZWZyZXNoIHJlcGxhY2VzIHNjaGVkdWxlZFxyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IHRydWU7XHJcblxyXG4gICAgbGV0IHRlcm1SZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcbiAgICBsZXQgbXRBcGlSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcblxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uW10+W10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy50ZXJtQXBpLmdldENvbGxlY3Rpb25MaXN0KHRoaXMuZW5naW5lTGFuZ3VhZ2VzKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IHRlcm1SZXNwb25zZSA9IHJlc3BvbnNlKVxyXG4gICAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZWZyZXNoTXRDb2xsZWN0aW9ucykge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMubXRBcGkuZ2V0TGlzdCh0aGlzLmVuZ2luZUlkKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IG10QXBpUmVzcG9uc2UgPSByZXNwb25zZSlcclxuICAgICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAvLyBkbyBub3QgbmVlZCByZXNwb25zZSBiZWNhdWUgcmVzcG9uc2VzIGFyZSBzYXZlZCBpbiBwaXBlIG1ldGhvZHNcclxuICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNBbnlJbXBvcnRpbmcgPSBmYWxzZTtcclxuICAgICAgICAvLyBub3RlIHRoYXQgdGVybVJlc3BvbnNlIGFuZCBtdGFwaXJlc3BvbnNlIGdldHMgY2hhbmdlZCBkdXJpbmcgcmVtb3ZlIG1ldGhvZFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRGVsZXRlZCh0ZXJtUmVzcG9uc2UsIG10QXBpUmVzcG9uc2UsIGluaXRpYWxSZWZyZXNoKTtcclxuXHJcbiAgICAgICAgY29uc3Qgam9pbmVkID0gW107XHJcbiAgICAgICAgaWYgKG10QXBpUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGpvaW5lZC5wdXNoKC4uLm10QXBpUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGVybVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi50ZXJtUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hZGRDb2xsZWN0aW9ucyhqb2luZWQsIGluaXRpYWxSZWZyZXNoKTtcclxuICAgICAgICBpZiAoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKG51bGwpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICAvLyBpdCBpcyBlbm91Z2ggdG8gc2hvdyBlcnJvciBvbmx5IGluIGNvbnNvbGUuIE5vIHNwZWNpYWwgdGhpbmcgaXMgbmVjZXNzYXJ5LlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRUb0VuZ2luZShjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIGlmICghY29sbGVjdGlvbiB8fCAhY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiVHJ5aW5nIHRvIGF0dGFjaCBjb2xsZWN0aW9uIHRoYXQgaGFzIG5vIHRpbGRlIHRlcm0gaWQuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb24sIHRydWUpLnN1YnNjcmliZShcclxuICAgICAge1xyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGNyZWF0ZShzb3VyY2VMYW5ndWFnZTogc3RyaW5nLCB0YXJnZXRMYW5ndWFnZTogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCByZWRpcmVjdFRvRWRpdCA9IHRydWUpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1BcGkuY3JlYXRlQ29sbGVjdGlvbihbc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlXSwgY29sbGVjdGlvbk5hbWUpLnBpcGUoXHJcbiAgICAgIHRhcCgoY29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgIGlmIChyZWRpcmVjdFRvRWRpdCkge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy50ZXJtQXBpLmdldEVkaXRMaW5rKGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24uaWQsIHNvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZSksIFwiX2JsYW5rXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XHJcbiAgICAgICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5faGFzQW55Q29sbGVjdGlvbnMgPSB0cnVlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgaXNFZGl0ZWQgPSBmYWxzZSk6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICAvLyBjb2xsZWN0aW9uIGlzIG5vdCBpbXBvcnRlZCBhbmQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIGVuZ2luZVxyXG4gICAgaWYgKGNvbGxlY3Rpb24uaXNFZGl0ZWQoKSB8fCBpc0VkaXRlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tdEFwaS5hZGQodGhpcy5lbmdpbmVJZCwgY29sbGVjdGlvbilcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihjb2xsZWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKlxyXG4gKiBAcmV0dXJucyBzZWxlY3RlZCBjb2xsZWN0aW9uIGlkIGlmIGl0IGlzIGFsbG93ZWQgdG8gdXNlIGNvbGxlY3Rpb24gZm9yIHRyYW5zbGF0aW9uc1xyXG4gKi9cclxuICBzZWxlY3RlZElkRm9yVHJhbnNsYXRpb24oKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkPy5tdENvbGxlY3Rpb24gJiYgKHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHx8IHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5zdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5SRUFEWSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5pZDtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRBdXRvUmVmcmVzaChlbmdpbmVJZD86IHN0cmluZywgbGFuZ3VhZ2VzOiBzdHJpbmdbXSA9IG51bGwsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSA9IGZhbHNlLCB0ZXJtQ29sbGVjdGlvbnMgPSB0cnVlLCBtdENvbGxlY3Rpb25zID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5oYXJkQXV0b1JlZnJlc2ggPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0RW5naW5lKGVuZ2luZUlkID8/IHRoaXMuZW5naW5lSWQsIGxhbmd1YWdlcyA/PyB0aGlzLmVuZ2luZUxhbmd1YWdlcywgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0ZXJtQ29sbGVjdGlvbnMsIG10Q29sbGVjdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RvcEF1dG9SZWZyZXNoKCkge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24gPSBmYWxzZTtcclxuICAgIHRoaXMuaGFyZEF1dG9SZWZyZXNoID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdENvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBlbmdpbmVJZCA9IHRoaXMuZW5naW5lSWQpIHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnJlbW92ZShlbmdpbmVJZCwgY29sbGVjdGlvbikucGlwZShcclxuICAgICAgdGFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHJlc3BvbnNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzeW5jKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgZW5naW5lSWQgPSB0aGlzLmVuZ2luZUlkKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb24+IHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnN5bmMoZW5naW5lSWQsIGNvbGxlY3Rpb24pLlxyXG4gICAgICBwaXBlKHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHsgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pIH0pKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVJlZnJlc2godGltZW91dD86IG51bWJlcikge1xyXG4gICAgLy8gaWYgbWVudSBpcyBjbG9zZWQgYW5kIHNlbGVjdGVkIGNvbGxlY3Rpb24gaXMgbm90IGltcG9ydGluZyBhbnltb3JlIC0gYXV0byByZWZyZXNoaW5nIHNob3VsZCBiZSBjYW5jZWxsZWQuXHJcbiAgICBpZiAoIXRoaXMuaGFyZEF1dG9SZWZyZXNoICYmICF0aGlzLnNlbGVjdGVkPy5pc0ltcG9ydGluZyAmJiB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24pIHtcclxuICAgICAgdGhpcy5zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIGhhcmQgYXV0byByZWZyZXNobyBvbiwgYXV0byByZWZyZXNoIHNob3VsZCBiZSBvbi4gSWYgaGFyZCBhdXRvcmVmZXJlc2ggaXMgb2ZmICwgcmVmcmVzaCBuZWVkcyB0byBiZSBkb25lIG9ubHkgaWYgc2VsZWN0ZWQgaXMgaW1wb3J0aW5nLlxyXG4gICAgaWYgKHRoaXMuaGFyZEF1dG9SZWZyZXNoIHx8ICghdGhpcy5yZWZyZXNoVGltZW91dCAmJiAodGhpcy5pc1NvZnRBdXRvUmVmcmVzaE9uIHx8IHRoaXMuc2VsZWN0ZWQ/LmlzSW1wb3J0aW5nKSkpIHtcclxuICAgICAgY29uc3QgdGltZW91dE1zID0gdGltZW91dCA/PyAodGhpcy5pc0FueUltcG9ydGluZyA/IHRoaXMuY29uZmlnLnRlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgOiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoKVxyXG4gICAgICB9LCB0aW1lb3V0TXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbmV3Q29sbGVjdGlvbnNcclxuICAgKiBAcGFyYW0gaW5pdGlhbFJlZnJlc2ggV2hldGhlciBhbHNvIGVkaXRhYmxlIGNvbGxlY3Rpb24gZmllbGRzIHNob3VsZCBiZSB1cGRhdGVkLiBJZiBub3QgaW5pdGlhbCByZWZyZXNoLCBlZGl0YWJsZSBmaWVsZHMgd2lsbCBub3QgYmUgdXBkYXRlZC5cclxuICAgKi9cclxuICBwcml2YXRlIGFkZENvbGxlY3Rpb25zKG5ld0NvbGxlY3Rpb25zOiBJdGVyYWJsZTxDb21iaW5lZENvbGxlY3Rpb24+LCBpbml0aWFsUmVmcmVzaDogYm9vbGVhbikge1xyXG4gICAgLy8gc2V0cyBjb2xsZWN0aW9uIGxpc3QgdG8gdGhpcyB2YWx1ZSBhdCB0aGUgZW5kLCBzbyBkZWxldGVkIGNvbGxlY3Rpb25zIGFyZSBub3QgaW4gdGhlIGxpc3QuXHJcbiAgICBmb3IgKGxldCBjb2xsZWN0aW9uIG9mIG5ld0NvbGxlY3Rpb25zKSB7XHJcbiAgICAgIC8vIFVzZXIgc2hvdWxkbid0IHNlZSBmYWlsZWQgY29sbGVjdGlvbnMgaWYgaGUgY2FuJ3QgcmV0cnkgdG8gaW1wb3J0IHRoZW0uXHJcbiAgICAgIGlmICghdGhpcy5oYXNFZGl0UGVybWlzc2lvbnNcclxuICAgICAgICAmJiBjb2xsZWN0aW9uLm10U3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1IpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbGxlY3Rpb24uaXNJbXBvcnRpbmcpIHtcclxuICAgICAgICB0aGlzLmlzQW55SW1wb3J0aW5nID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZXhpc3Rpbmc6IENvbWJpbmVkQ29sbGVjdGlvbiA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QodGhpcy5jb2xsZWN0aW9ucywgY29sbGVjdGlvbik7XHJcblxyXG4gICAgICAvLyBJZiB0ZXJtIGFwaSBkb2Vzbid0IGhhdmUgZW5naW5lIGxhbmd1YWdlcywgY29sbGVjdGlvbiBzaG91bGQgbm90IGJlIHNob3duIChpZiBpdCBpcyBub3QgYWxyZWFkeSBpbXBvcnRlZCBzb21laG93KTtcclxuICAgICAgaWYgKCFleGlzdGluZyAmJiBjb2xsZWN0aW9uLnNvdXJjZSA9PT0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuVElMREVfVEVSTSkge1xyXG4gICAgICAgIGxldCBoYXNMYW5ndWFnZXMgPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbmdpbmVMYW5ndWFnZXM/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24ubGFuZ3VhZ2VzPy5maW5kKGxhbmcgPT4gbGFuZy5pZCA9PT0gdGhpcy5lbmdpbmVMYW5ndWFnZXNbaV0pKSB7XHJcbiAgICAgICAgICAgIGhhc0xhbmd1YWdlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghaGFzTGFuZ3VhZ2VzKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghZXhpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZXhpc3RpbmcudXBkYXRlKGNvbGxlY3Rpb24sIGluaXRpYWxSZWZyZXNoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX2NvbGxlY3Rpb25zID0gdXBkYXRlZENvbGxlY3Rpb25zO1xyXG4gICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICB0aGlzLl9oYXNBbnlDb2xsZWN0aW9ucyA9IHRoaXMuX2NvbGxlY3Rpb25zLnNpemUgPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdWxkIGJlIGNhbGxlZCBhZnRlciByZWZyZXNoIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFueSBjb2xsZWN0aW9ucyBmcm9tIGFwaSB0aGF0IGFyZSBkZWxldGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlRGVsZXRlZCh0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdLCBtdFJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSwgaW5pdGlhbFJlZnJlc2g6IGJvb2xlYW4pIHtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgdGhpcy5jb2xsZWN0aW9ucykge1xyXG4gICAgICBjb25zdCB0ZXJtRXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KHRlcm1SZXNwb25zZSwgY29sbGVjdGlvbik7XHJcbiAgICAgIGNvbnN0IG10RXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KG10UmVzcG9uc2UsIGNvbGxlY3Rpb24pO1xyXG4gICAgICBpZiAodGVybUV4aXN0aW5nSXggPT09IG51bGwgJiYgbXRFeGlzdGluZ0l4ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucy5kZWxldGUoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHRlcm1FeGlzdGluZ0l4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHRlcm1SZXNwb25zZVt0ZXJtRXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgdGVybVJlc3BvbnNlLnNwbGljZSh0ZXJtRXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29sbGVjdGlvbi5kZWxldGVUZXJtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG10RXhpc3RpbmdJeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBtdFJlc3BvbnNlW210RXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgbXRSZXNwb25zZS5zcGxpY2UobXRFeGlzdGluZ0l4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLmRlbGV0ZU1UKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyVGltZW91dCgpIHtcclxuICAgIGlmICh0aGlzLnJlZnJlc2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hUaW1lb3V0KTtcclxuICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIC8vIElmIG5vIGNvbGxlY3Rpb25zIG9yIHNlbGVjdGVkIGlzIGFscmVhZHkgc2V0LCBpdCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZnJvbSBsb2NhbHN0b3JhZ2UgdmFsdWUuIChVc3VhbGx5LCBsb2NhbHN0b3JhZ2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgdmFsdWUpLlxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbnM/LnNpemUgPT09IDAgfHwgdGhpcy5zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdG9yZWRJZCA9IHRoaXMucmVhZExvY2FsU3RvcmFnZSgpPy5bdGhpcy5lbmdpbmVJZF07XHJcbiAgICBpZiAoIXN0b3JlZElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleGlzdGluZyA9IEFycmF5LmZyb20odGhpcy5jb2xsZWN0aW9ucykuZmluZChpdGVtID0+IGl0ZW0udGVybUNvbGxlY3Rpb24/LmlkID09PSBzdG9yZWRJZCB8fCBpdGVtLm10Q29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBleGlzdGluZztcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGxldCBsb2NhbFN0b3JhZ2VPYmplY3QgPSB0aGlzLnJlYWRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIGlmICghbG9jYWxTdG9yYWdlT2JqZWN0KSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZU9iamVjdCA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGxvY2FsU3RvcmFnZU9iamVjdFt0aGlzLmVuZ2luZUlkXSA9IHRoaXMuc2VsZWN0ZWQgPyAodGhpcy5zZWxlY3RlZC50ZXJtQ29sbGVjdGlvbj8uaWQgPz8gdGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24/LmlkKSA6IG51bGw7XHJcbiAgICAvLyBzdG9yZSB0ZXJtIGlkIGlmIGl0IGV4aXN0c1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkobG9jYWxTdG9yYWdlT2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRMb2NhbFN0b3JhZ2UoKTogYW55IHtcclxuICAgIGNvbnN0IGRhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdERhdGFVcGRhdGVFdmVudCgpIHtcclxuICAgIHRoaXMub25EYXRhVXBkYXRlLm5leHQodGhpcy5jb2xsZWN0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -84,9 +84,9 @@ export class TldTermCollectionListComponent {
84
84
  }
85
85
  }
86
86
  TldTermCollectionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermCollectionListComponent, deps: [{ token: i1.TerminologyService }, { token: i2.TldTranslateConfigService }, { token: i3.TldSystemService }, { token: i4.TermApiService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
87
- TldTermCollectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermCollectionListComponent, selector: "tld-term-collection-list", ngImport: i0, template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"none-option\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\">\r\n <mat-icon>sync</mat-icon>\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:.5em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px}.collection,.none-option{border-bottom:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i11.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i11.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i12.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i12.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i13.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: i14.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i15.DateAgoPipe, name: "dateAgo" }] });
87
+ TldTermCollectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermCollectionListComponent, selector: "tld-term-collection-list", ngImport: i0, template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"none-option\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n >\r\n <div class=\"w-100\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\"\r\n >\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <div class=\"collection-label\">\r\n <span class=\"text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n </div>\r\n \r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\">\r\n <mat-icon>sync</mat-icon>\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:.5em .75em}.collection-label{max-width:280px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px}.collection,.none-option{border-bottom:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i11.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i11.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i12.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i12.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i13.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: i14.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i15.DateAgoPipe, name: "dateAgo" }] });
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermCollectionListComponent, decorators: [{
89
89
  type: Component,
90
- args: [{ selector: 'tld-term-collection-list', template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"none-option\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\">\r\n <mat-icon>sync</mat-icon>\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:.5em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px}.collection,.none-option{border-bottom:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"] }]
90
+ args: [{ selector: 'tld-term-collection-list', template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"none-option\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n >\r\n <div class=\"w-100\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\"\r\n >\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <div class=\"collection-label\">\r\n <span class=\"text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n </div>\r\n \r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\">\r\n <mat-icon>sync</mat-icon>\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:.5em .75em}.collection-label{max-width:280px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px}.collection,.none-option{border-bottom:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"] }]
91
91
  }], ctorParameters: function () { return [{ type: i1.TerminologyService }, { type: i2.TldTranslateConfigService }, { type: i3.TldSystemService }, { type: i4.TermApiService }, { type: i5.TranslateService }]; } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vdGxkLXRlcm0tY29sbGVjdGlvbi1saXN0L3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQWdCLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUlyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLDhCQUE4QjtJQXlDekMsWUFBNkIsa0JBQXNDLEVBQ2hELE1BQWlDLEVBQ2pDLFNBQTJCLEVBQzNCLGNBQThCLEVBQzlCLGdCQUFrQztRQUp4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEI1QyxvQkFBZSxHQUFHLG1CQUFtQixDQUFDO1FBQ3RDLDJCQUFzQixHQUFHLDRCQUE0QixDQUFDO1FBQ3RELGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBVXRCLDBCQUFxQixHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQW9EbEQsNEJB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TztTQUNSO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDMUgsQ0FBQzs7MkhBekZVLDhCQUE4QjsrR0FBOUIsOEJBQThCLGdFQ2YzQyxnOUhBeUVBOzJGRDFEYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWxzL2NvbWJpbmVkLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb25TdGF0dXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbHMvbXQtY29sbGVjdGlvbi1zdGF0dXMuZW51bSc7XHJcbmltcG9ydCB7IFRlcm1BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdGVybS1hcGkvdGVybS1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlcm1pbm9sb2d5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUZXJtQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZ2V0IHNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLnNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNlbGVjdGVkKHZhbDogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zZWxlY3RlZCA9IHZhbDtcclxuICB9XHJcblxyXG4gIGNvbGxlY3Rpb25zOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbltdPjtcclxuXHJcbiAgZ2V0IGhhc0FueUNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmhhc0FueUNvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlPy5pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBoYXNFZGl0UGVybWlzc2lvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuaGFzRWRpdFBlcm1pc3Npb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5hcHBOYW1lO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgbG9jYWxpemF0aW9uS2V5ID0gXCJURVJNX0NPTExFQ1RJT05TLlwiO1xyXG4gIHJlYWRvbmx5IHRvb2x0aXBMb2NhbGl6YXRpb25LZXkgPSBcIlRFUk1fQ09MTEVDVElPTlMuVE9PTFRJUFMuXCI7XHJcbiAgcmVhZG9ubHkgcmVhZHlTdGF0dXMgPSBcIlJlYWR5XCI7XHJcbiAgcHJpdmF0ZSBzb3VyY2VMYW5ndWFnZUNvZGU6IHN0cmluZztcclxuICBwcml2YXRlIHRhcmdldExhbmd1YWdlQ29kZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBsYW5ndWFnZVRyYW5zbGF0aW9uczogYW55O1xyXG4gIHByaXZhdGUgbGFuZ3VhZ2VzVHJhbnNsYXRpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHNvdXJjZUxhbmdUcmFuc2xhdGVkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0TGFuZ1RyYW5zbGF0ZWQ6IHN0cmluZztcclxuXHJcbiAgcmVhZG9ubHkgY29sbGVjdGlvbkVycm9yU3RhdHVzID0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUFwaVNlcnZpY2U6IFRlcm1BcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sbGVjdGlvbnMgPSB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5kYXRhVXBkYXRlKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gWy4uLmRhdGFdLnNvcnQodGhpcy5jb2xsZWN0aW9uc1NvcnRGdW5jdGlvbik7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMubGFuZ3VhZ2VzVHJhbnNsYXRpb25zU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShcIkxBTkdVQUdFU1wiKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VUcmFuc2xhdGlvbnMgPSByZXNwb25zZTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VUcmFuc2xhdGlvbnMoKTtcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVEYXRhKCkuc3Vic2NyaWJlKChhY3RpdmUpID0+IHtcclxuICAgICAgdGhpcy5zb3VyY2VMYW5ndWFnZUNvZGUgPSBhY3RpdmUuc291cmNlTGFuZy5sYW5nO1xyXG4gICAgICB0aGlzLnRhcmdldExhbmd1YWdlQ29kZSA9IGFjdGl2ZS50YXJnZXRMYW5nLmxhbmc7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZUxhbmd1YWdlVHJhbnNsYXRpb25zKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5sYW5ndWFnZXNUcmFuc2xhdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRMaW5rKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUFwaVNlcnZpY2UuZ2V0RWRpdExpbmsoY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbj8uaWQsIHRoaXMuc291cmNlTGFuZ3VhZ2VDb2RlLCB0aGlzLnRhcmdldExhbmd1YWdlQ29kZSk7XHJcbiAgfVxyXG5cclxuICBhdHRhY2goY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zeW5jKGNvbGxlY3Rpb24pLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVMYW5ndWFnZVRyYW5zbGF0aW9ucygpIHtcclxuICAgIGlmICghdGhpcy5sYW5ndWFnZVRyYW5zbGF0aW9ucyB8fCAhdGhpcy5zb3VyY2VMYW5ndWFnZUNvZGUgfHwgIXRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvdXJjZUxhbmdUcmFuc2xhdGVkID0gdGhpcy5sYW5ndWFnZVRyYW5zbGF0aW9uc1t0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZS50b1VwcGVyQ2FzZSgpXSA/PyB0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZTtcclxuICAgIHRoaXMudGFyZ2V0TGFuZ1RyYW5zbGF0ZWQgPSB0aGlzLmxhbmd1YWdlVHJhbnNsYXRpb25zW3RoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlLnRvVXBwZXJDYXNlKCldID8/IHRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb2xsZWN0aW9uc1NvcnRGdW5jdGlvbiA9IChhOiBDb21iaW5lZENvbGxlY3Rpb24sIGI6IENvbWJpbmVkQ29sbGVjdGlvbikgPT4ge1xyXG5cclxuICAgIHJldHVybiBOdW1iZXIoYS5kZWZhdWx0KSAtIE51bWJlcihiLmRlZmF1bHQpIHx8IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoZWFkZXIgY2xhc3M9XCJ0bGQtY29sbGVjdGlvbi1saXN0LWhlYWRlclwiPlxyXG4gIDxoMSBjbGFzcz1cInRleHQtbC1zZW1pLWJvbGRcIj5cclxuICAgIDxzcGFuPnt7bG9jYWxpemF0aW9uS2V5ICsgJ1RJVExFJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDwvaDE+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0FueUNvbGxlY3Rpb25zXCI+XHJcbiAgICA8cCBjbGFzcz1cInRlcm0td2luZG93LWRlc2NyaXB0aW9uIHRleHQtc1wiPlxyXG4gICAgICA8c3Bhbj57e2xvY2FsaXphdGlvbktleSArICdERVNDUklQVElPTicgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDwvcD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0FueUNvbGxlY3Rpb25zXCI+XHJcbiAgICA8cCBjbGFzcz1cInRlcm0td2luZG93LWRlc2NyaXB0aW9uIHRleHQtc1wiIGZ4SGlkZS5sdC1zbT57e2xvY2FsaXphdGlvbktleSArICdERVNDUklQVElPTl9FTVBUWScgfCB0cmFuc2xhdGU6XHJcbiAgICAgIHtzcmNMYW5nOlxyXG4gICAgICBzb3VyY2VMYW5nVHJhbnNsYXRlZCwgdHJnTGFuZzogdGFyZ2V0TGFuZ1RyYW5zbGF0ZWR9IH19PC9wPlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXJtLXdpbmRvdy1kZXNjcmlwdGlvbiB0ZXh0LXNcIiBmeEhpZGUuZ3QteHM+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVTQ1JJUFRJT05fRU1QVFlfTU9CSUxFJyB8IHRyYW5zbGF0ZTpcclxuICAgICAge2FwcE5hbWU6IGFwcE5hbWV9IH19PC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2hlYWRlcj5cclxuPGRpdiAqbmdJZj1cImhhc0FueUNvbGxlY3Rpb25zXCIgY2xhc3M9XCJ0bGQtY29sbGVjdGlvbi1saXN0LWJvZHlcIj5cclxuICA8bWF0LXJhZGlvLWdyb3VwIFthdHRyLmFyaWEtbGFiZWxdPVwibG9jYWxpemF0aW9uS2V5ICsgJ0FSSUFfTEFCRUxTLlJBRElPX0dST1VQJyB8IHRyYW5zbGF0ZVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgY2xhc3M9XCJub25lLW9wdGlvblwiPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwibnVsbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tLXNlbWktYm9sZFwiPlxyXG4gICAgICAgICAge3tsb2NhbGl6YXRpb25LZXkgKyAnU0VMRUNURURfTk9ORScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvblwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiICpuZ0Zvcj1cImxldCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zIHwgYXN5bmNcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJjb2xsZWN0aW9uLnRlcm1Ub29sdGlwS2V5PyAodG9vbHRpcExvY2FsaXphdGlvbktleSArIGNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXkgfCB0cmFuc2xhdGUpIDogJydcIj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cImNvbGxlY3Rpb25cIiBmeEZsZXhcclxuICAgICAgICBbY2xhc3MubWF0LXJhZGlvLWNoZWNrZWRdPVwiY29sbGVjdGlvbi5kZWZhdWx0IHx8IGNvbGxlY3Rpb249PT1zZWxlY3RlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbGxlY3Rpb24udGVybUlkICE9PSBudWxsICYmIGNvbGxlY3Rpb24udGVybUVudHJpZXM8PTAgfHwgY29sbGVjdGlvbi5kZWZhdWx0XCJcclxuICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbGxlY3Rpb24tbGFiZWwgdGV4dC1tLXNlbWktYm9sZFwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXk/ICcnIDogY29sbGVjdGlvbi5uYW1lXCI+XHJcbiAgICAgICAgICAgIHt7Y29sbGVjdGlvbi5uYW1lfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVmYXVsdC1iYWRnZVwiICpuZ0lmPVwiY29sbGVjdGlvbi5kZWZhdWx0XCI+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVGQVVMVCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24udGVybUNvdW50XCIgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIHRleHQtc1wiPlxyXG4gICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdURVJNU19JTl9VU0UnKSB8IHRyYW5zbGF0ZTogeyB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24udGVybUNvdW50IH0gfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2xsZWN0aW9uLmxhc3RVcGRhdGVkXCIgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIHRleHQtc1wiPlxyXG4gICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdMQVNUX1VQREFURUQnKSB8IHRyYW5zbGF0ZTogeyBkYXRlOiBjb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHwgZGF0ZUFnbyB9IH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY29sbGVjdGlvbi1sYWJlbC1ibG9jayB0ZXh0LXNcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjAuNXJlbVwiXHJcbiAgICAgICAgICAqbmdJZj1cImNvbGxlY3Rpb24uaXNJbXBvcnRpbmdcIj5cclxuICAgICAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cImFjY2VudFwiIGRpYW1ldGVyPVwiMjBcIj5cclxuICAgICAgICAgIDwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3t0b29sdGlwTG9jYWxpemF0aW9uS2V5ICsgJ0lNUE9SVElORycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG5cclxuICAgICAgPHNwYW4gKm5nSWY9XCIgY29sbGVjdGlvbi5tdFN0YXR1cyA9PT0gY29sbGVjdGlvbkVycm9yU3RhdHVzXCIgY29sb3I9XCJhY2NlbnRcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+XHJcbiAgICAgICAgZXJyb3JcclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRWRpdFBlcm1pc3Npb25zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uICpuZ0lmPVwiY29sbGVjdGlvbi5zeW5jQnV0dG9uVmlzaWJsZVwiIChjbGljayk9XCJhdHRhY2goY29sbGVjdGlvbilcIiBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcExvY2FsaXphdGlvbktleSArICdTWU5DJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnN5bmM8L21hdC1pY29uPlxyXG4gICAgICAgICAge3tsb2NhbGl6YXRpb25LZXkgKyAoY29sbGVjdGlvbkVycm9yU3RhdHVzID09PSBjb2xsZWN0aW9uLm10U3RhdHVzPyAnU1lOQ19FUlJPUic6ICdTWU5DJykgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxhIG1hdC1pY29uLWJ1dHRvbiB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sbGVjdGlvbi50ZXJtVG9vbHRpcEtleT8gJycgOiAodG9vbHRpcExvY2FsaXphdGlvbktleSArICdFRElUJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgW2F0dHIuaHJlZl09XCJnZXRFZGl0TGluayhjb2xsZWN0aW9uKVwiICpuZ0lmPVwiY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvblwiIGZ4SGlkZS5sdC1zbT5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG48L2Rpdj5cclxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vdGxkLXRlcm0tY29sbGVjdGlvbi1saXN0L3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQWdCLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUlyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLDhCQUE4QjtJQXlDekMsWUFBNkIsa0JBQXNDLEVBQ2hELE1BQWlDLEVBQ2pDLFNBQTJCLEVBQzNCLGNBQThCLEVBQzlCLGdCQUFrQztRQUp4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEI1QyxvQkFBZSxHQUFHLG1CQUFtQixDQUFDO1FBQ3RDLDJCQUFzQixHQUFHLDRCQUE0QixDQUFDO1FBQ3RELGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBVXRCLDBCQUFxQixHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQW9EbEQsNEJB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TztTQUNSO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDMUgsQ0FBQzs7MkhBekZVLDhCQUE4QjsrR0FBOUIsOEJBQThCLGdFQ2YzQyx5bklBK0VBOzJGRGhFYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWxzL2NvbWJpbmVkLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb25TdGF0dXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbHMvbXQtY29sbGVjdGlvbi1zdGF0dXMuZW51bSc7XHJcbmltcG9ydCB7IFRlcm1BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdGVybS1hcGkvdGVybS1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlcm1pbm9sb2d5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUZXJtQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZ2V0IHNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLnNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNlbGVjdGVkKHZhbDogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zZWxlY3RlZCA9IHZhbDtcclxuICB9XHJcblxyXG4gIGNvbGxlY3Rpb25zOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbltdPjtcclxuXHJcbiAgZ2V0IGhhc0FueUNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmhhc0FueUNvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlPy5pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBoYXNFZGl0UGVybWlzc2lvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuaGFzRWRpdFBlcm1pc3Npb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5hcHBOYW1lO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgbG9jYWxpemF0aW9uS2V5ID0gXCJURVJNX0NPTExFQ1RJT05TLlwiO1xyXG4gIHJlYWRvbmx5IHRvb2x0aXBMb2NhbGl6YXRpb25LZXkgPSBcIlRFUk1fQ09MTEVDVElPTlMuVE9PTFRJUFMuXCI7XHJcbiAgcmVhZG9ubHkgcmVhZHlTdGF0dXMgPSBcIlJlYWR5XCI7XHJcbiAgcHJpdmF0ZSBzb3VyY2VMYW5ndWFnZUNvZGU6IHN0cmluZztcclxuICBwcml2YXRlIHRhcmdldExhbmd1YWdlQ29kZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBsYW5ndWFnZVRyYW5zbGF0aW9uczogYW55O1xyXG4gIHByaXZhdGUgbGFuZ3VhZ2VzVHJhbnNsYXRpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHNvdXJjZUxhbmdUcmFuc2xhdGVkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0TGFuZ1RyYW5zbGF0ZWQ6IHN0cmluZztcclxuXHJcbiAgcmVhZG9ubHkgY29sbGVjdGlvbkVycm9yU3RhdHVzID0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUFwaVNlcnZpY2U6IFRlcm1BcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sbGVjdGlvbnMgPSB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5kYXRhVXBkYXRlKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gWy4uLmRhdGFdLnNvcnQodGhpcy5jb2xsZWN0aW9uc1NvcnRGdW5jdGlvbik7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMubGFuZ3VhZ2VzVHJhbnNsYXRpb25zU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShcIkxBTkdVQUdFU1wiKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VUcmFuc2xhdGlvbnMgPSByZXNwb25zZTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VUcmFuc2xhdGlvbnMoKTtcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVEYXRhKCkuc3Vic2NyaWJlKChhY3RpdmUpID0+IHtcclxuICAgICAgdGhpcy5zb3VyY2VMYW5ndWFnZUNvZGUgPSBhY3RpdmUuc291cmNlTGFuZy5sYW5nO1xyXG4gICAgICB0aGlzLnRhcmdldExhbmd1YWdlQ29kZSA9IGFjdGl2ZS50YXJnZXRMYW5nLmxhbmc7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZUxhbmd1YWdlVHJhbnNsYXRpb25zKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5sYW5ndWFnZXNUcmFuc2xhdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRMaW5rKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUFwaVNlcnZpY2UuZ2V0RWRpdExpbmsoY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbj8uaWQsIHRoaXMuc291cmNlTGFuZ3VhZ2VDb2RlLCB0aGlzLnRhcmdldExhbmd1YWdlQ29kZSk7XHJcbiAgfVxyXG5cclxuICBhdHRhY2goY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zeW5jKGNvbGxlY3Rpb24pLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVMYW5ndWFnZVRyYW5zbGF0aW9ucygpIHtcclxuICAgIGlmICghdGhpcy5sYW5ndWFnZVRyYW5zbGF0aW9ucyB8fCAhdGhpcy5zb3VyY2VMYW5ndWFnZUNvZGUgfHwgIXRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvdXJjZUxhbmdUcmFuc2xhdGVkID0gdGhpcy5sYW5ndWFnZVRyYW5zbGF0aW9uc1t0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZS50b1VwcGVyQ2FzZSgpXSA/PyB0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZTtcclxuICAgIHRoaXMudGFyZ2V0TGFuZ1RyYW5zbGF0ZWQgPSB0aGlzLmxhbmd1YWdlVHJhbnNsYXRpb25zW3RoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlLnRvVXBwZXJDYXNlKCldID8/IHRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb2xsZWN0aW9uc1NvcnRGdW5jdGlvbiA9IChhOiBDb21iaW5lZENvbGxlY3Rpb24sIGI6IENvbWJpbmVkQ29sbGVjdGlvbikgPT4ge1xyXG5cclxuICAgIHJldHVybiBOdW1iZXIoYS5kZWZhdWx0KSAtIE51bWJlcihiLmRlZmF1bHQpIHx8IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoZWFkZXIgY2xhc3M9XCJ0bGQtY29sbGVjdGlvbi1saXN0LWhlYWRlclwiPlxyXG4gIDxoMSBjbGFzcz1cInRleHQtbC1zZW1pLWJvbGRcIj5cclxuICAgIDxzcGFuPnt7bG9jYWxpemF0aW9uS2V5ICsgJ1RJVExFJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDwvaDE+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0FueUNvbGxlY3Rpb25zXCI+XHJcbiAgICA8cCBjbGFzcz1cInRlcm0td2luZG93LWRlc2NyaXB0aW9uIHRleHQtc1wiPlxyXG4gICAgICA8c3Bhbj57e2xvY2FsaXphdGlvbktleSArICdERVNDUklQVElPTicgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDwvcD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0FueUNvbGxlY3Rpb25zXCI+XHJcbiAgICA8cCBjbGFzcz1cInRlcm0td2luZG93LWRlc2NyaXB0aW9uIHRleHQtc1wiIGZ4SGlkZS5sdC1zbT57e2xvY2FsaXphdGlvbktleSArICdERVNDUklQVElPTl9FTVBUWScgfCB0cmFuc2xhdGU6XHJcbiAgICAgIHtzcmNMYW5nOlxyXG4gICAgICBzb3VyY2VMYW5nVHJhbnNsYXRlZCwgdHJnTGFuZzogdGFyZ2V0TGFuZ1RyYW5zbGF0ZWR9IH19PC9wPlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXJtLXdpbmRvdy1kZXNjcmlwdGlvbiB0ZXh0LXNcIiBmeEhpZGUuZ3QteHM+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVTQ1JJUFRJT05fRU1QVFlfTU9CSUxFJyB8IHRyYW5zbGF0ZTpcclxuICAgICAge2FwcE5hbWU6IGFwcE5hbWV9IH19PC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2hlYWRlcj5cclxuPGRpdiAqbmdJZj1cImhhc0FueUNvbGxlY3Rpb25zXCIgY2xhc3M9XCJ0bGQtY29sbGVjdGlvbi1saXN0LWJvZHlcIj5cclxuICA8bWF0LXJhZGlvLWdyb3VwIFthdHRyLmFyaWEtbGFiZWxdPVwibG9jYWxpemF0aW9uS2V5ICsgJ0FSSUFfTEFCRUxTLlJBRElPX0dST1VQJyB8IHRyYW5zbGF0ZVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgY2xhc3M9XCJub25lLW9wdGlvblwiPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwibnVsbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tLXNlbWktYm9sZFwiPlxyXG4gICAgICAgICAge3tsb2NhbGl6YXRpb25LZXkgKyAnU0VMRUNURURfTk9ORScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvblwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiICpuZ0Zvcj1cImxldCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zIHwgYXN5bmNcIlxyXG4gICAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sbGVjdGlvbi50ZXJtVG9vbHRpcEtleT8gKHRvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyBjb2xsZWN0aW9uLnRlcm1Ub29sdGlwS2V5IHwgdHJhbnNsYXRlKSA6ICcnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJjb2xsZWN0aW9uXCIgZnhGbGV4XHJcbiAgICAgICAgICBbY2xhc3MubWF0LXJhZGlvLWNoZWNrZWRdPVwiY29sbGVjdGlvbi5kZWZhdWx0IHx8IGNvbGxlY3Rpb249PT1zZWxlY3RlZFwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY29sbGVjdGlvbi50ZXJtSWQgIT09IG51bGwgJiYgY29sbGVjdGlvbi50ZXJtRW50cmllczw9MCB8fCBjb2xsZWN0aW9uLmRlZmF1bHRcIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW0tc2VtaS1ib2xkXCJcclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXk/ICcnIDogY29sbGVjdGlvbi5uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7e2NvbGxlY3Rpb24ubmFtZX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVmYXVsdC1iYWRnZVwiICpuZ0lmPVwiY29sbGVjdGlvbi5kZWZhdWx0XCI+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVGQVVMVCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2xsZWN0aW9uLnRlcm1Db3VudFwiIGNsYXNzPVwiY29sbGVjdGlvbi1sYWJlbC1ibG9jayB0ZXh0LXNcIj5cclxuICAgICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdURVJNU19JTl9VU0UnKSB8IHRyYW5zbGF0ZTogeyB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24udGVybUNvdW50IH0gfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sbGVjdGlvbi5sYXN0VXBkYXRlZFwiIGNsYXNzPVwiY29sbGVjdGlvbi1sYWJlbC1ibG9jayB0ZXh0LXNcIj5cclxuICAgICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdMQVNUX1VQREFURUQnKSB8IHRyYW5zbGF0ZTogeyBkYXRlOiBjb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHwgZGF0ZUFnbyB9IH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbGxlY3Rpb24tbGFiZWwtYmxvY2sgdGV4dC1zXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIlxyXG4gICAgICAgICAgICAqbmdJZj1cImNvbGxlY3Rpb24uaXNJbXBvcnRpbmdcIj5cclxuICAgICAgICAgICAgPG1hdC1zcGlubmVyIGNvbG9yPVwiYWNjZW50XCIgZGlhbWV0ZXI9XCIyMFwiPlxyXG4gICAgICAgICAgICA8L21hdC1zcGlubmVyPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICB7e3Rvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyAnSU1QT1JUSU5HJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIGNvbGxlY3Rpb24ubXRTdGF0dXMgPT09IGNvbGxlY3Rpb25FcnJvclN0YXR1c1wiIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxyXG4gICAgICAgICAgZXJyb3JcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0VkaXRQZXJtaXNzaW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImNvbGxlY3Rpb24uc3luY0J1dHRvblZpc2libGVcIiAoY2xpY2spPVwiYXR0YWNoKGNvbGxlY3Rpb24pXCIgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyAnU1lOQycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5zeW5jPC9tYXQtaWNvbj5cclxuICAgICAgICAgIHt7bG9jYWxpemF0aW9uS2V5ICsgKGNvbGxlY3Rpb25FcnJvclN0YXR1cyA9PT0gY29sbGVjdGlvbi5tdFN0YXR1cz8gJ1NZTkNfRVJST1InOiAnU1lOQycpIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YSBtYXQtaWNvbi1idXR0b24gdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXk/ICcnIDogKHRvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyAnRURJVCcgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgIFthdHRyLmhyZWZdPVwiZ2V0RWRpdExpbmsoY29sbGVjdGlvbilcIiAqbmdJZj1cImNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb25cIiBmeEhpZGUubHQtc20+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1yYWRpby1ncm91cD5cclxuPC9kaXY+XHJcbiJdfQ==