nuxeo-development-framework 2.0.4 → 2.0.6

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.
@@ -112,31 +112,39 @@ export class DocumentsService {
112
112
  })
113
113
  .execute({
114
114
  headers: Object.assign(Object.assign({}, DocumentsConstants.pageProvider.committee.headers), { 'X-NXfetch-document': 'lock,dc:creator,corr:owner,cts_common:department', 'X-NXenrichers-document': 'tags' }),
115
- })).pipe(map((item) => this.documentsAdapter.adaptIn(item, DocumentsConstants.fields)), catchError((err) => {
115
+ })).pipe(map((item) => {
116
+ return item;
117
+ //remove adapte since it is cousing conflicts when emiting out side and readapting again outside
118
+ // this.documentsAdapter.adaptIn(item, DocumentsConstants.fields)
119
+ }), catchError((err) => {
116
120
  console.log(err);
117
121
  throw err;
118
122
  }));
119
123
  }
120
- lockMemoDocument(docId) {
124
+ unlockDocument(docId) {
121
125
  return from(this.nuxeoService.nuxeoClient
122
- .operation(DocumentsConstants.operations.lockMemo)
126
+ .operation(DocumentsConstants.operations.unlock)
123
127
  .input(docId)
124
128
  .params()
125
129
  .execute({
126
130
  headers: Object.assign(Object.assign({}, DocumentsConstants.pageProvider.committee.headers), { 'X-NXfetch-document': 'lock,dc:creator', 'X-NXenrichers-document': 'tags' }),
127
- })).pipe(map(item => { return item; }), catchError((err) => {
131
+ })).pipe(map((item) => {
132
+ return item;
133
+ //remove adapte since it is cousing conflicts when emiting out side and readapting again outside
134
+ // this.documentsAdapter.adaptIn(item, DocumentsConstants.fields)
135
+ }), catchError((err) => {
128
136
  console.log(err);
129
137
  throw err;
130
138
  }));
131
139
  }
132
- unlockDocument(docId) {
140
+ lockMemoDocument(docId) {
133
141
  return from(this.nuxeoService.nuxeoClient
134
- .operation(DocumentsConstants.operations.unlock)
142
+ .operation(DocumentsConstants.operations.lockMemo)
135
143
  .input(docId)
136
144
  .params()
137
145
  .execute({
138
146
  headers: Object.assign(Object.assign({}, DocumentsConstants.pageProvider.committee.headers), { 'X-NXfetch-document': 'lock,dc:creator', 'X-NXenrichers-document': 'tags' }),
139
- })).pipe(map((item) => this.documentsAdapter.adaptIn(item, DocumentsConstants.fields)), catchError((err) => {
147
+ })).pipe(map(item => { return item; }), catchError((err) => {
140
148
  console.log(err);
141
149
  throw err;
142
150
  }));
@@ -212,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
212
220
  type: Inject,
213
221
  args: ['environment']
214
222
  }] }]; } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFNUQsY0FBYztBQUlkLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBZ0MsRUFDaEMsYUFBK0IsRUFBaUMsV0FBVztRQUYzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQVJyRixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU8vQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLFlBQVk7SUFDZCxDQUFD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O2FBQzFCLFVBQVUsRUFBRTtZQUNiLGdDQUFnQzthQUMvQixLQUFLLGlCQUVGLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSTtZQUM1RCxzQ0FBc0M7WUFDdEMsd0JBQXdCLEVBQUUsVUFBVSxJQUNqQyxNQUFNLEdBRVg7WUFDRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU87U0FDM0QsQ0FDRixDQUNKLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUN2RSxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs2R0EzVVUsZ0JBQWdCLDRHQVN3QixhQUFhO2lIQVRyRCxnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVU2QyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvYWRhcHRlcnMvYWRhcHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RvY3VtZW50cyc7XHJcblxyXG4vKiogQGlnbm9yZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzU2VydmljZSB7XHJcbiAgdmFsdWUgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcclxuICBwdWJsaWMgZ2V0dXBkYXRlZERvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICByZUZldGNoID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBpbmNvbWluZ0NvbnN0YW50O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgZG9jdW1lbnRzQWRhcHRlcjogQWRhcHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudFxyXG4gICkge1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICB0aGlzLmluY29taW5nQ29uc3RhbnQgPVxyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uWydjb3JyZXNwb25kYW5jZSddWydpbmNvbWluZyddO1xyXG4gICAgLy8gfSwgMjAwMCk7XHJcbiAgfVxyXG5cclxuICBpbmZvcm1WYWx1ZSh2YWx1ZSkge1xyXG4gICAgbGV0IGFyciA9IFtdO1xyXG4gICAgYXJyLnB1c2godmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZS5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0RG9jdW1lbnQodWlkLCBoZWFkZXJzPykge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC5oZWFkZXJzKHtcclxuICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcixjb3JyOmNjLGN0c19jb21tb246ZGVwYXJ0bWVudCxjb3JyOm93bmVyJyxcclxuICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MscGVybWlzc2lvbnMnLFxyXG4gICAgICAgICAgLi4uaGVhZGVyc1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmZldGNoKHVpZClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpIGNvbW1lbnRlZCB0aGlzIHNpbmNlIGkgYW0gYWRhcHRpbmcgaW4gZGF0YSBjb21pbmcgaW5zaWRlIHRoZSBwYWdlIG5vdCBoZXJlXHJcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGRhdGEsIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpO1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhLl9udXhlbztcclxuICAgICAgICBkZWxldGUgZGF0YS5fcmVwb3NpdG9yeTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGdldERvY3VtZW50QXR0YWNobWVudHNXaXRoQWdncmVnYXRpb24ocGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKS5xdWVyeShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwYWdlUHJvdmlkZXI6XHJcbiAgICAgICAgICAgIERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuZG9jdW1lbnRBdHRhY2htZW50c1dpdGhBZ2dyZWdhdGlvblxyXG4gICAgICAgICAgICAgIC5uYW1lLFxyXG4gICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaGVhZGVyczpcclxuICAgICAgICAgICAgRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5kb2N1bWVudEF0dGFjaG1lbnRzV2l0aEFnZ3JlZ2F0aW9uXHJcbiAgICAgICAgICAgICAgLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwZGF0ZURvY3VtZW50KGRvYywgcGFyYW1zID0ge30pIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5yZXBvc2l0b3J5KClcclxuICAgICAgICAuaGVhZGVycyh7XHJcbiAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgJ2ZldGNoLWRvY3VtZW50JzogJ2xvY2ssY29tbTpjb21taXR0ZWVJZCxjb21tOm1lZXRpbmdJZCcsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudXBkYXRlKGRvYywgcGFyYW1zKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihkYXRhLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGNyZWF0ZVZlcnNpb24oZG9jSWQsIHZlcnNpb24gPSAnbWFqb3InLCBjdXN0b21BcGk/ICwgY3VzdG9tUGFyYW1zPyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKGN1c3RvbUFwaSA/IGN1c3RvbUFwaSA6IERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmNyZWF0ZVZlcnNpb24gLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKGN1c3RvbVBhcmFtcyA/IGN1c3RvbVBhcmFtcyA6IHt2ZXJzaW9uLH0pXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVNZW1vVmVyc2lvbihkb2NJZCwgdmVyc2lvbiA9ICdtYWpvcicpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5jcmVhdGVNZW1vVmVyc2lvbiwge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcyh7XHJcbiAgICAgICAgICB2ZXJzaW9uLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWZXJzaW9ucyhkb2NJZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmdldFZlcnNpb25zKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIHRoaXMuaW5jb21pbmdDb25zdGFudC5hdHRhY2htZW50cylcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBsb2NrRG9jdW1lbnQoZG9jSWQsIG1vZGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5sb2NrKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgIG1vZGU6IG1vZGUsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yLGNvcnI6b3duZXIsY3RzX2NvbW1vbjpkZXBhcnRtZW50JyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoaXRlbSkgPT5cclxuICAgICAgICB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKVxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGxvY2tNZW1vRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5sb2NrTWVtbylcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcygpXHJcbiAgICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcicsXHJcbiAgICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoaXRlbSA9PiAge3JldHVybiBpdGVtfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgdW5sb2NrRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy51bmxvY2spXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChpdGVtKSA9PlxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVubG9ja01lbW9Eb2N1bWVudChkb2NJZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLnVubG9ja01lbW8pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKGl0ZW0gPT4gIHtyZXR1cm4gaXRlbX0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVEb2N1bWVudChwYXRoOiBhbnkpIHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKS5kZWxldGUocGF0aCkpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwbG9hZEJhdGNoKGZpbGVzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgLi4uZmlsZXMubWFwKChmaWxlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbnV4ZW9CbG9iID0gdGhpcy5udXhlb1NlcnZpY2UuY3JlYXRlQmxvYihmaWxlKTtcclxuICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LmJhdGNoVXBsb2FkKCkudXBsb2FkKG51eGVvQmxvYilcclxuICAgICAgICApO1xyXG4gICAgICB9KSxcclxuICAgIF0pLnBpcGUoXHJcbiAgICAgIG1hcCgodXBsb2FkZWRGaWxlczogYW55KSA9PiB7XHJcbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSwgaSkgPT4ge1xyXG4gICAgICAgICAgdXBsb2FkZWRGaWxlc1tpXS50aXRsZSA9IGZpbGUubmFtZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdXBsb2FkZWRGaWxlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGNyZWF0ZURvYyh1cGxvYWRlZEZpbGUsIHBhdGgsIHBhcmFtcywgZG9jUGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGRvYyA9IHtcclxuICAgICAgJ2VudGl0eS10eXBlJzogJ2RvY3VtZW50JyxcclxuICAgICAgbmFtZTogdXBsb2FkZWRGaWxlLnRpdGxlLFxyXG4gICAgICB0eXBlOiAnZmlsZScsXHJcbiAgICAgIC4uLmRvY1BhcmFtcyxcclxuICAgICAgcHJvcGVydGllczoge1xyXG4gICAgICAgIHRpdGxlOiB1cGxvYWRlZEZpbGUudGl0bGUsXHJcbiAgICAgICAgY29udGVudDogdXBsb2FkZWRGaWxlLmJsb2IsXHJcbiAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXBvID0gdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQucmVwb3NpdG9yeSgpO1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHJlcG8uY3JlYXRlKGAke3BhdGh9YCwge1xyXG4gICAgICAgIC4uLmRvYyxcclxuICAgICAgICBwcm9wZXJ0aWVzOiB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRPdXQoXHJcbiAgICAgICAgICBkb2MucHJvcGVydGllcyxcclxuICAgICAgICAgIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHNcclxuICAgICAgICApLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgdXBsb2FkRG9jdW1lbnQoZmlsZSwgcGF0aCwgcGFyYW1zLCBkb2NQYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRCYXRjaChmaWxlKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHVwbG9hZGVkRmlsZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURvYyh1cGxvYWRlZEZpbGUsIHBhdGgsIHBhcmFtcywgZG9jUGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgbWFwKChjcmVhdGVkRG9jdW1lbnQpID0+IGNyZWF0ZWREb2N1bWVudCksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RG9jdW1lbnRzKGFuY2VzdG9ySWQsIHByb3ZpZGVyLCBwYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAucmVwb3NpdG9yeSgpXHJcbiAgICAgICAgLy8gLmVucmljaGVyKCdkb2N1bWVudCcsICdhY2xzJylcclxuICAgICAgICAucXVlcnkoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHBhZ2VQcm92aWRlcjogRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlcltwcm92aWRlcl0ubmFtZSxcclxuICAgICAgICAgICAgLy8gY3RfYXR0YWNobWVudF9kb2NSZWZJZDogYW5jZXN0b3JJZCxcclxuICAgICAgICAgICAgQ3RzQ29tbW9uX2NvcnJlc3BvbmRlbmNlOiBhbmNlc3RvcklkLFxyXG4gICAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyW3Byb3ZpZGVyXS5oZWFkZXJzLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PlxyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgdGhpcy5pbmNvbWluZ0NvbnN0YW50LmF0dGFjaG1lbnRzKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFNUQsY0FBYztBQUlkLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBZ0MsRUFDaEMsYUFBK0IsRUFBaUMsV0FBVztRQUYzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQVJyRixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU8vQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLFlBQVk7SUFDZCxDQUFD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O2FBQy9CLEtBQUssaUJBRUYsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJO1lBQzVELHNDQUFzQztZQUN0Qyx3QkFBd0IsRUFBRSxVQUFVLElBQ2pDLE1BQU0sR0FFWDtZQUNFLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTztTQUMzRCxDQUNGLENBQ0osQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQ3ZFLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OzZHQXBWVSxnQkFBZ0IsNEdBU3dCLGFBQWE7aUhBVHJELGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVTZDLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb20sIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9hZGFwdGVycy9hZGFwdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNDb25zdGFudHMgfSBmcm9tICcuLi9jb25zdGFudHMvZG9jdW1lbnRzJztcclxuXHJcbi8qKiBAaWdub3JlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudHNTZXJ2aWNlIHtcclxuICB2YWx1ZSA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xyXG4gIHB1YmxpYyBnZXR1cGRhdGVkRG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHJlRmV0Y2ggPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGluY29taW5nQ29uc3RhbnQ7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkb2N1bWVudHNBZGFwdGVyOiBBZGFwdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSwgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIHRoaXMuaW5jb21pbmdDb25zdGFudCA9XHJcbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5teUNvbmZpZ3VyYXRpb25bJ2NvcnJlc3BvbmRhbmNlJ11bJ2luY29taW5nJ107XHJcbiAgICAvLyB9LCAyMDAwKTtcclxuICB9XHJcblxyXG4gIGluZm9ybVZhbHVlKHZhbHVlKSB7XHJcbiAgICBsZXQgYXJyID0gW107XHJcbiAgICBhcnIucHVzaCh2YWx1ZSk7XHJcbiAgICB0aGlzLnZhbHVlLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBnZXREb2N1bWVudCh1aWQsIGhlYWRlcnM/KSB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAucmVwb3NpdG9yeSgpXHJcbiAgICAgICAgLmhlYWRlcnMoe1xyXG4gICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yLGNvcnI6Y2MsY3RzX2NvbW1vbjpkZXBhcnRtZW50LGNvcnI6b3duZXInLFxyXG4gICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncyxwZXJtaXNzaW9ucycsXHJcbiAgICAgICAgICAuLi5oZWFkZXJzXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZmV0Y2godWlkKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIGkgY29tbWVudGVkIHRoaXMgc2luY2UgaSBhbSBhZGFwdGluZyBpbiBkYXRhIGNvbWluZyBpbnNpZGUgdGhlIHBhZ2Ugbm90IGhlcmVcclxuICAgICAgICAvLyByZXR1cm4gdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oZGF0YSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcyk7XHJcbiAgICAgICAgZGVsZXRlIGRhdGEuX251eGVvO1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhLl9yZXBvc2l0b3J5O1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RG9jdW1lbnRBdHRhY2htZW50c1dpdGhBZ2dyZWdhdGlvbihwYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQucmVwb3NpdG9yeSgpLnF1ZXJ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBhZ2VQcm92aWRlcjpcclxuICAgICAgICAgICAgRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5kb2N1bWVudEF0dGFjaG1lbnRzV2l0aEFnZ3JlZ2F0aW9uXHJcbiAgICAgICAgICAgICAgLm5hbWUsXHJcbiAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOlxyXG4gICAgICAgICAgICBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmRvY3VtZW50QXR0YWNobWVudHNXaXRoQWdncmVnYXRpb25cclxuICAgICAgICAgICAgICAuaGVhZGVycyxcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PlxyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcylcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgdXBkYXRlRG9jdW1lbnQoZG9jLCBwYXJhbXMgPSB7fSkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC5oZWFkZXJzKHtcclxuICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAnZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxjb21tOmNvbW1pdHRlZUlkLGNvbW06bWVldGluZ0lkJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC51cGRhdGUoZG9jLCBwYXJhbXMpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGRhdGEsIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgY3JlYXRlVmVyc2lvbihkb2NJZCwgdmVyc2lvbiA9ICdtYWpvcicsIGN1c3RvbUFwaT8gLCBjdXN0b21QYXJhbXM/KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oY3VzdG9tQXBpID8gY3VzdG9tQXBpIDogRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMuY3JlYXRlVmVyc2lvbiAsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoY3VzdG9tUGFyYW1zID8gY3VzdG9tUGFyYW1zIDoge3ZlcnNpb24sfSlcclxuICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU1lbW9WZXJzaW9uKGRvY0lkLCB2ZXJzaW9uID0gJ21ham9yJyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmNyZWF0ZU1lbW9WZXJzaW9uLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgIHZlcnNpb24sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZlcnNpb25zKGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMuZ2V0VmVyc2lvbnMpXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PlxyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgdGhpcy5pbmNvbWluZ0NvbnN0YW50LmF0dGFjaG1lbnRzKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGxvY2tEb2N1bWVudChkb2NJZCwgbW9kZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmxvY2spXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgbW9kZTogbW9kZSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3IsY29ycjpvd25lcixjdHNfY29tbW9uOmRlcGFydG1lbnQnLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgICAvL3JlbW92ZSBhZGFwdGUgc2luY2UgaXQgaXMgY291c2luZyBjb25mbGljdHMgd2hlbiBlbWl0aW5nIG91dCBzaWRlIGFuZCByZWFkYXB0aW5nIGFnYWluIG91dHNpZGVcclxuICAgICAgICAvLyB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKVxyXG4gICAgICB9XHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVubG9ja0RvY3VtZW50KGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMudW5sb2NrKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yJyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoaXRlbSkgPT57XHJcbiAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgLy9yZW1vdmUgYWRhcHRlIHNpbmNlIGl0IGlzIGNvdXNpbmcgY29uZmxpY3RzIHdoZW4gZW1pdGluZyBvdXQgc2lkZSBhbmQgcmVhZGFwdGluZyBhZ2FpbiBvdXRzaWRlXHJcbiAgICAgICAgLy8gdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcylcclxuICAgICAgfVxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2NrTWVtb0RvY3VtZW50KGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMubG9ja01lbW8pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKGl0ZW0gPT4gIHtyZXR1cm4gaXRlbX0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1bmxvY2tNZW1vRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy51bmxvY2tNZW1vKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yJyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtID0+ICB7cmV0dXJuIGl0ZW19KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRG9jdW1lbnQocGF0aDogYW55KSB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5yZXBvc2l0b3J5KCkuZGVsZXRlKHBhdGgpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQmF0Y2goZmlsZXMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICAuLi5maWxlcy5tYXAoKGZpbGUpID0+IHtcclxuICAgICAgICBjb25zdCBudXhlb0Jsb2IgPSB0aGlzLm51eGVvU2VydmljZS5jcmVhdGVCbG9iKGZpbGUpO1xyXG4gICAgICAgIHJldHVybiBmcm9tKFxyXG4gICAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQuYmF0Y2hVcGxvYWQoKS51cGxvYWQobnV4ZW9CbG9iKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgbWFwKCh1cGxvYWRlZEZpbGVzOiBhbnkpID0+IHtcclxuICAgICAgICBmaWxlcy5mb3JFYWNoKChmaWxlLCBpKSA9PiB7XHJcbiAgICAgICAgICB1cGxvYWRlZEZpbGVzW2ldLnRpdGxlID0gZmlsZS5uYW1lO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB1cGxvYWRlZEZpbGVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgY3JlYXRlRG9jKHVwbG9hZGVkRmlsZSwgcGF0aCwgcGFyYW1zLCBkb2NQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZG9jID0ge1xyXG4gICAgICAnZW50aXR5LXR5cGUnOiAnZG9jdW1lbnQnLFxyXG4gICAgICBuYW1lOiB1cGxvYWRlZEZpbGUudGl0bGUsXHJcbiAgICAgIHR5cGU6ICdmaWxlJyxcclxuICAgICAgLi4uZG9jUGFyYW1zLFxyXG4gICAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgdGl0bGU6IHVwbG9hZGVkRmlsZS50aXRsZSxcclxuICAgICAgICBjb250ZW50OiB1cGxvYWRlZEZpbGUuYmxvYixcclxuICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHJlcG8gPSB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5yZXBvc2l0b3J5KCk7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgcmVwby5jcmVhdGUoYCR7cGF0aH1gLCB7XHJcbiAgICAgICAgLi4uZG9jLFxyXG4gICAgICAgIHByb3BlcnRpZXM6IHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdE91dChcclxuICAgICAgICAgIGRvYy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICksXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB1cGxvYWREb2N1bWVudChmaWxlLCBwYXRoLCBwYXJhbXMsIGRvY1BhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZEJhdGNoKGZpbGUpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgodXBsb2FkZWRGaWxlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRG9jKHVwbG9hZGVkRmlsZSwgcGF0aCwgcGFyYW1zLCBkb2NQYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGNyZWF0ZWREb2N1bWVudCkgPT4gY3JlYXRlZERvY3VtZW50KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBnZXREb2N1bWVudHMoYW5jZXN0b3JJZCwgcHJvdmlkZXIsIHBhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5yZXBvc2l0b3J5KClcclxuICAgICAgICAvLyAuZW5yaWNoZXIoJ2RvY3VtZW50JywgJ2FjbHMnKVxyXG4gICAgICAgIC5xdWVyeShcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcGFnZVByb3ZpZGVyOiBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyW3Byb3ZpZGVyXS5uYW1lLFxyXG4gICAgICAgICAgICAvLyBjdF9hdHRhY2htZW50X2RvY1JlZklkOiBhbmNlc3RvcklkLFxyXG4gICAgICAgICAgICBDdHNDb21tb25fY29ycmVzcG9uZGVuY2U6IGFuY2VzdG9ySWQsXHJcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXJbcHJvdmlkZXJdLmhlYWRlcnMsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGRhdGEuZW50cmllcy5tYXAoKGl0ZW0pID0+XHJcbiAgICAgICAgICB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCB0aGlzLmluY29taW5nQ29uc3RhbnQuYXR0YWNobWVudHMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -169,7 +169,7 @@ export class DynamicTableComponent {
169
169
  }
170
170
  }
171
171
  DynamicTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicTableComponent, deps: [{ token: i1.AdapterService }, { token: i2.CallApiService }, { token: i3.DynamicTableService }], target: i0.ɵɵFactoryTarget.Component });
172
- DynamicTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", sortingBy: "sortingBy", queryParam: "queryParam", quickFilter: "quickFilter", report: "report", rowCursor: "rowCursor", fullWidth: "fullWidth", tableMode: "tableMode", tableActions: "tableActions", defultSort: "defultSort", range: "range", isSearchPage: "isSearchPage", multiSelectRows: "multiSelectRows", highlightSelectedCard: "highlightSelectedCard" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"wrapping\">\r\n <div class=\"table-reposition\">\r\n <cts-table\r\n *ngIf=\"rows.length\"\r\n [rows]=\"rows\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [rowCursor]=\"rowCursor\"\r\n [fullWidth]=\"fullWidth\"\r\n [entityType]=\"entityType\"\r\n [prefix]=\"prefix\"\r\n [totalRecords]=\"totalRecords\"\r\n [tableMode]=\"tableMode\"\r\n [multiSelectRows]=\"multiSelectRows\"\r\n [tableActions]=\"tableActions\"\r\n [defultSort]=\"defultSort\"\r\n [highlightSelectedCard]=\"highlightSelectedCard\"\r\n (onRowSelected)=\"rowDetails($event)\"\r\n (onRowIndexSelected)=\"indexDetails($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelectValue($event)\"\r\n (actionOnRow)=\"performAction($event)\"\r\n (onSorting)=\"onSort($event)\"\r\n ></cts-table>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <cts-spinner></cts-spinner>\r\n </ng-container>\r\n <div\r\n class=\"d-flex justify-content-center align-items-center my-3\"\r\n *ngIf=\"rows.length\"\r\n >\r\n <cts-pagination\r\n [page]=\"pageNum\"\r\n (change)=\"PaginationChange($event)\"\r\n [size]=\"pageSize\"\r\n [count]=\"totalRecords\"\r\n ></cts-pagination>\r\n </div>\r\n\r\n <div class=\"empty-state\" *ngIf=\"(!loading && rows.length === 0)\">\r\n <div class=\"text\">{{ 'noData' | translate}}</div>\r\n </div>\r\n <div class=\"empty-state\" *ngIf=\"(loading && rows.length === 0)\">\r\n <div class=\"text\">{{ 'gettingData' | translate}}</div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.wrapping{position:relative}.wrapping .table-reposition{overflow-y:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-x:auto}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:bold}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#b4bac6}.dark-scroll::-webkit-scrollbar-thumb{background:#8f98aa}\n"], components: [{ type: i4.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i5.SpinnerComponent, selector: "cts-spinner" }, { type: i6.PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i8.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
172
+ DynamicTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", sortingBy: "sortingBy", queryParam: "queryParam", quickFilter: "quickFilter", report: "report", rowCursor: "rowCursor", fullWidth: "fullWidth", tableMode: "tableMode", tableActions: "tableActions", defultSort: "defultSort", range: "range", isSearchPage: "isSearchPage", multiSelectRows: "multiSelectRows", highlightSelectedCard: "highlightSelectedCard" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"wrapping\">\r\n <div class=\"table-reposition\">\r\n <cts-table\r\n *ngIf=\"rows.length\"\r\n [rows]=\"rows\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [rowCursor]=\"rowCursor\"\r\n [fullWidth]=\"fullWidth\"\r\n [entityType]=\"entityType\"\r\n [prefix]=\"prefix\"\r\n [totalRecords]=\"totalRecords\"\r\n [tableMode]=\"tableMode\"\r\n [multiSelectRows]=\"multiSelectRows\"\r\n [tableActions]=\"tableActions\"\r\n [defultSort]=\"defultSort\"\r\n [highlightSelectedCard]=\"highlightSelectedCard\"\r\n (onRowSelected)=\"rowDetails($event)\"\r\n (onRowIndexSelected)=\"indexDetails($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelectValue($event)\"\r\n (actionOnRow)=\"performAction($event)\"\r\n (onSorting)=\"onSort($event)\"\r\n ></cts-table>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <cts-spinner></cts-spinner>\r\n </ng-container>\r\n <div\r\n class=\"pagination-iner-wraper d-flex justify-content-center align-items-center my-3\"\r\n *ngIf=\"rows.length\"\r\n >\r\n <cts-pagination\r\n [page]=\"pageNum\"\r\n (change)=\"PaginationChange($event)\"\r\n [size]=\"pageSize\"\r\n [count]=\"totalRecords\"\r\n ></cts-pagination>\r\n </div>\r\n\r\n <div class=\"empty-state\" *ngIf=\"(!loading && rows.length === 0)\">\r\n <div class=\"text\">{{ 'noData' | translate}}</div>\r\n </div>\r\n <div class=\"empty-state\" *ngIf=\"(loading && rows.length === 0)\">\r\n <div class=\"text\">{{ 'gettingData' | translate}}</div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.wrapping{position:relative}.wrapping .table-reposition{overflow-y:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-x:auto}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:bold}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#b4bac6}.dark-scroll::-webkit-scrollbar-thumb{background:#8f98aa}\n"], components: [{ type: i4.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i5.SpinnerComponent, selector: "cts-spinner" }, { type: i6.PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i8.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
173
173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicTableComponent, decorators: [{
174
174
  type: Component,
175
175
  args: [{
@@ -233,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
233
233
  }], highlightSelectedCard: [{
234
234
  type: Input
235
235
  }] } });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQUl6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFRSCxNQUFNLE9BQU8scUJBQXFCO0lBdURoQyxZQUNVLE9BQXVCLEVBQ3ZCLE9BQXVCLEVBQ3ZCLG1CQUF3QztRQUZ4QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBekRsRCwrQ0FBK0M7UUFDckMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLDREQUE0RDtRQUNsRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELG1FQUFtRTtRQUN6RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0MsZ0ZBQWdGO1FBQ3RFLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QywrQ0FBK0M7UUFDckMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCwyREFBMkQ7UUFDakQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFPM0MsMEJBQTBCO1FBQ2pCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFTckIscUJBQXFCO1FBQ1osY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFNaEIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUMzQixrRUFBa0U7UUFDekQsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUduQixlQUFVLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRyxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUU5RCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUMvQiwyQ0FBMkM7UUFDbEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDdkIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFHakIsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUtaLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BGLElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxZQUFZLHFCQUFRLFVBQVUsQ0FBRSxDQUFDO2dCQUN0Qyw2Q0FBNkM7Z0JBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsV0FBVyxDQUFDLFlBQTJCO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDM0QsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUNsQixDQUFDO1FBQ0YsSUFBSSxhQUFhLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsSUFDRSxDQUFDLFlBQVksQ0FBQyxVQUFVO1lBQ3RCLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYTtnQkFDckMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7WUFDdkMsQ0FBQyxZQUFZLENBQUMsV0FBVztnQkFDdkIsWUFBWSxDQUFDLFdBQVcsQ0FBQyxhQUFhO29CQUN0QyxZQUFZLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUN4QztZQUNBLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMscURBQXFEO1lBQ3ZFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxtQkFBbUI7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDL0MsSUFBSSxNQUFNLDJFQUNSLHNCQUFzQixFQUFFLElBQUksQ0FBQyxLQUFLLElBQy9CLElBQUksQ0FBQyxZQUFZLEdBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQ2YsSUFBSSxDQUFDLFNBQVMsR0FDZCxJQUFJLENBQUMsV0FBVyxLQUNuQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsRUFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQ3ZCLE1BQU0sRUFBRSxDQUFDLEdBQ1YsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLDRHQUE0RztZQUMvSCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLG1HQUFtRztTQUNwSDtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsdUZBQXVGO1FBQzdHLElBQUksQ0FBQyxPQUFPO2FBQ1QsS0FBSyxpQkFFRixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFDNUIsTUFBTSxHQUVYO1lBQ0UsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQ0Y7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNwRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFOztnQkFDOUIsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFJLE1BQUEsT0FBTyxDQUFDLFVBQVUsMENBQUUsT0FBTyxDQUFBLEtBQUksTUFBQSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sMENBQUUsVUFBVSxDQUFBLEVBQUU7b0JBQy9GLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTzt3QkFDeEIsQ0FBQSxNQUFBLE1BQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLDBDQUFFLFVBQVUsMENBQUUsU0FBUzs0QkFDakQsR0FBRzs2QkFDSCxNQUFBLE1BQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLDBDQUFFLFVBQVUsMENBQUUsUUFBUSxDQUFBLENBQUM7aUJBQ3BEO2dCQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSSxNQUFBLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLFFBQVEsQ0FBQSxFQUFFO29CQUN0RCxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxNQUFBLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUE7aUJBQ3BFO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3hCLCtIQUErSDtZQUMvSCxxRUFBcUU7WUFDckUsSUFBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxzREFBc0Q7SUFDdEQsVUFBVSxDQUFDLEtBQUs7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUs7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUEsdUVBQXVFO0lBQ3ZFLGFBQWEsQ0FBQyxNQUFNO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQUs7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBQ00sZ0JBQWdCLENBQUMsS0FBSztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7a0hBekxVLHFCQUFxQjtzR0FBckIscUJBQXFCLG0xQkNuRGxDLDZsREE4Q0E7MkZES2EscUJBQXFCO2tCQVBqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUM3QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7b0tBSVcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBRUUsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFSyxTQUFTO3NCQUFsQixNQUFNO2dCQUVBLE9BQU87c0JBQWYsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUssTUFBTTtzQkFBZCxLQUFLO2dCQUVDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRSxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2FsbEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL2NhbGxBcGkvY2FsbC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9hZGFwdGVycy9hZGFwdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHluYW1pYy10YWJsZS5zZXJ2aWNlJztcclxuLyoqXHJcbiAqIHRoaXMgY29tcG9uZW50IGlzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgdGhhdCB1c2VzIFtUYWJsZSBDb21wb25lbnRde0BsaW5rIFRhYmxlQ29tcG9uZW50fSBpbnRlcm5hbGx5LFxyXG4gKiB5b3UgY2FuIHVzZSB0aGlzIGNvbXBvbmVudCB0byBjb25maWd1cmUgYSBwYWdlIHByb3ZpZGVyIGxpc3Rpbmcgb3V0IG9mIHRoZSBib3ggZWFzaWx5LFxyXG4gKiBhbmQgaXQgd2lsbCBoYW5kbGUgYWxsIG9mIHRoZSBiYXNpYyBmZWF0dXJlcyBzdWNoIGFzIGdldHRpbmcgZGF0YSBmcm9tIEFQSSwgTGlzdGluZywgUGFnaW5hdGlvbiwgc29ydGluZyBhbmQgZmlsdGVyaW5nXHJcbiAqICFbU2NyZWVuc2hvdC0xXSguLi9zY3JlZW5zaG90cy9keW5hbWljVGFibGUucG5nKVxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBUYWJsZVxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8Y3RzLWR5bmFtaWMtdGFibGVcclxuICogICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc1wiXHJcbiAqICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcclxuICogICAgW3BhZ2VTaXplXT1cIlBhZ2VTaXplXCJcclxuICogICAgW3BhZ2VQcm92aWRlcl09XCJwYWdlUHJvdmlkZXJcIlxyXG4gKiAgICBbcXVpY2tGaWx0ZXJdPVwiZmlsdGVyXCJcclxuICogICAgW3NvcnRpbmdCeV09XCJzb3J0aW5nQnlcIlxyXG4gKiAgICBbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcbiAqICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICogICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgICBbcm93Q3Vyc29yXT1cInRydWVcIlxyXG4gKiAgICBbcXVlcnlQYXJhbV09XCJxdWVyeVBhcmFtXCJcclxuICogICAgW2hlYWRlcnNdPVwiaGVhZGVyc1wiXHJcbiAqICAgIChvblJvd1NlbGVjdGVkKT1cIm9wZW5WaWV3ZXIoJGV2ZW50KVwiXHJcbiAqICAgIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIj5cclxuICogPC9jdHMtZHluYW1pYy10YWJsZT5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLWR5bmFtaWMtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93ICAqL1xyXG4gIEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93IHRvIGNhdGNoIGluZGV4Ki9cclxuICAgQE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHBlcmZvcm0gYWN0aW9uIG9uIHJvdyAoZGVsdGUsIGVkaXQsIC4uLiApICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBldmVudCB0byBlbWl0IHRvIHRoZSBoaWdoZXIgbGV2ZWwgIHdoZW4gZ2V0dGluZyBkYXRhIGZyb20gYXBpIGlzIGZpbmlzaGVkICovXHJcbiAgQE91dHB1dCgpIG9uR2V0dGluZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNlbGVjdGluZyBtdWx0aXBsZSByb3cgKi9cclxuICBAT3V0cHV0KCkgb25NdWx0aVJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgLyoqIGV2ZW50IHQgZW1pdCB3aGVuIHN0YXJ0IGdldHRpbmcgZGF0YSBhbmQgd2hlbiBmaW5pc2ggKi9cclxuICAgIEBPdXRwdXQoKSBvbkxvYWRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIEFycmF5IG9mIGNvbHVtbnMgKi9cclxuICBASW5wdXQoKSBjb2x1bW5zO1xyXG4gIC8qKiBBcnJheSBvZiBjb2x1bW5zIG9uIHNtYWxsZXIgc2NyZWVucyAqL1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpdmVDb2x1bW5zPztcclxuICAvKiogRGVmaW5lcyB0aGUgcGFnZSBpbiB3aGljaCB0YWJsZSBpcyBiZWluZyB1c2VkICovXHJcbiAgQElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nO1xyXG4gIC8qKiBUcmFuc2xhdGlvbnMgcHJlZml4ICovXHJcbiAgQElucHV0KCkgcHJlZml4ID0gJyc7XHJcbiAgLyoqIEhlYWRlcnMgdG8gYmUgc2VudCB3aXRoIEFQSSBSZXF1ZXN0ICovXHJcbiAgQElucHV0KCkgaGVhZGVycztcclxuICAvKiogRmllbGRzIGtleW1hcCB0byBiZSBtYXBwZWQgaW4gdGhlIGFkYXB0ZXIgKi9cclxuICBASW5wdXQoKSBmaWVsZHM7XHJcbiAgLyoqIFBhZ2UgUHJvdmlkZXIgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZXRyaWV2ZSBkYXRhICovXHJcbiAgQElucHV0KCkgcGFnZVByb3ZpZGVyO1xyXG4gIC8qKiBDb250cm9scyBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGFibGUgKi9cclxuICBASW5wdXQoKSBwYWdlU2l6ZTtcclxuICAvKiogU29ydGluZyBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBzb3J0aW5nQnk/PSB7fTtcclxuICBASW5wdXQoKSBxdWVyeVBhcmFtPz0ge307XHJcbiAgQElucHV0KCkgcXVpY2tGaWx0ZXI/O1xyXG4gICAgLyoqIENvbnRyb2xzIGlmIGl0IHJlcG9ydCBwYWdlICovXHJcbiAgICBASW5wdXQoKSByZXBvcnQ7XHJcbiAgLyoqIHRvIG1ha2UgY3Vyc29yIHdoZW4gaG92ZXIgb24gcm93IG9yIG5vdCAqL1xyXG4gIEBJbnB1dCgpIHJvd0N1cnNvcj87XHJcbiAgQElucHV0KCkgZnVsbFdpZHRoPz0gJ2F1dG8nO1xyXG4gICAvKiogJ2xpc3QnIGZvciBub3JhbWwgdGFibGUgJ2NhcmQnIGZvciBjYXJkcyBtb2RlIGxpa2UgaW4gbWVtb3MgKi9cclxuICAgQElucHV0KCkgdGFibGVNb2RlID0gJ2xpc3QnO1xyXG4gICAvKiogYWN0aW9uIHRvIGJlIHVzZWQgaW4gY2FzZSBvZiBjYXJkIG1vZGUgKi9cclxuICAgQElucHV0KCkgdGFibGVBY3Rpb25zO1xyXG4gICBASW5wdXQoKSBkZWZ1bHRTb3J0ID0gW3sgcHJvcDogJ3Byb3BlcnRpZXMuY3JlYXRlZEF0JyAsIGRpcjogJ2Rlc2MnIH1dO1xyXG4gICBASW5wdXQoKSByYW5nZTtcclxuICAgQElucHV0KCkgaXNTZWFyY2hQYWdlID0gZmFsc2U7XHJcbiAgLyoqIGFsbG93IG11bHRpc2VsZWN0IHJvd3Mgd2l0aCBjaGVja2JveCAqL1xyXG4gIEBJbnB1dCgpIG11bHRpU2VsZWN0Um93cyA9IGZhbHNlO1xyXG4gICBASW5wdXQoKSBoaWdobGlnaHRTZWxlY3RlZENhcmQgPSBmYWxzZTtcclxuICBmaWx0ZXJQYXJhbXMgPSB7fTtcclxuICBwYWdlTnVtID0gMTtcclxuICByb3dzID0gW107XHJcbiAgdG90YWxSZWNvcmRzID0gMDtcclxuICBteURhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBsb2FkaW5nO1xyXG4gIHNvcnRpbmcgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYWRhcHRlcjogQWRhcHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhbGxBcGk6IENhbGxBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkeW5hbWljVGFibGVTZXJ2aWNlOiBEeW5hbWljVGFibGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm15RGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMuZHluYW1pY1RhYmxlU2VydmljZS5yZWZyZXNoRGF0YS5zdWJzY3JpYmUoZmlsdGVyRGF0YSA9PiB7XHJcbiAgICAgIGlmIChmaWx0ZXJEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMgPSB7IC4uLmZpbHRlckRhdGEgfTtcclxuICAgICAgICAvLyByZXNldCBwYWdlIG51bWJlciB3aGVuIHN0YXJ0IG5ldyBmaWx0ZXJpbmdcclxuICAgICAgICB0aGlzLnBhZ2VOdW0gPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5teURhdGFTdWJzY3JpcHRpb24gPyB0aGlzLm15RGF0YVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2U6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IGlzRmlyc3RDaGFuZ2UgPSBPYmplY3QudmFsdWVzKHNpbXBsZUNoYW5nZSkuc29tZSgoYykgPT5cclxuICAgICAgYy5pc0ZpcnN0Q2hhbmdlKClcclxuICAgICk7XHJcbiAgICBpZiAoaXNGaXJzdENoYW5nZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIChzaW1wbGVDaGFuZ2UucXVlcnlQYXJhbSAmJlxyXG4gICAgICAgIHNpbXBsZUNoYW5nZS5xdWVyeVBhcmFtLnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgc2ltcGxlQ2hhbmdlLnF1ZXJ5UGFyYW0uY3VycmVudFZhbHVlKSB8fFxyXG4gICAgICAoc2ltcGxlQ2hhbmdlLnF1aWNrRmlsdGVyICYmXHJcbiAgICAgICAgc2ltcGxlQ2hhbmdlLnF1aWNrRmlsdGVyLnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgc2ltcGxlQ2hhbmdlLnF1aWNrRmlsdGVyLmN1cnJlbnRWYWx1ZSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBhZ2VOdW0gPSAxOyAvLyByZXNldCBwYWdlIG51bWJlciBiZWZvciByZWNhbGxpbmcgYXBpIHdpdGggZmlsdGVyc1xyXG4gICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGEoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOyAvLyBpbnRlcm5hbCBsb2FkaW5nXHJcbiAgICB0aGlzLm9uTG9hZGluZy5lbWl0KHRydWUpOyAvLyBleHRlcm5hbCBsb2FkaW5nIFxyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgZHVibGluY29yZV9jcmVhdGVkX2FnZzogdGhpcy5yYW5nZSxcclxuICAgICAgLi4udGhpcy5maWx0ZXJQYXJhbXMsIC8vIHVzZWQgdG8gZ2V0IGZpbHRlciBkYXRhIGFuZCBzZXQgaXQgaW4gb3VyIHBhcmFtc1xyXG4gICAgICAuLi50aGlzLnF1ZXJ5UGFyYW0sIC8vIHVzZWQgdG8gZ2V0IHBhcmFtcyBmcm9tIG91ciBjb25maWdcclxuICAgICAgLi4udGhpcy5zb3J0aW5nQnksXHJcbiAgICAgIC4uLnRoaXMucXVpY2tGaWx0ZXIsXHJcbiAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMucGFnZU51bSAtIDEsXHJcbiAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBvZmZzZXQ6IDBcclxuICAgIH07XHJcblxyXG4gICAgLy8gZG9uJ3QgcmVmcmVzaCBhbGwgdGFibGUgaW4gY2FzZSBvZiBzb3J0aW5nIG9ubHlcclxuICAgIGlmICghdGhpcy5zb3J0aW5nKSB7IC8vIHVzZWQgdG8gbm90IHJlZnJlc2hpbmcgYWxsIHRhYmxlIGluIGNhc2Ugb2Ygc29ydGluZyBzaW5jZSB0YWJsZSBsb3NlIHNvcnRpbmcgc3RhdGUgd2hlbiByZWZyZXNoIGFsbCB0YWJsZVxyXG4gICAgICB0aGlzLnJvd3MgPSBbXTsgLy8gdXNlZCB0byByZWZyZXNoIHRhYmxlIHRvIGZlZWwgY2hhbmdlcyBpbiBhY3Rpb25zIHdoZW4gcGVyZm9ybSBhY3Rpb24gYW5kIG5lZWQgdG8gcmVmcmVzaCBhY3Rpb25zXHJcbiAgICB9XHJcbiAgICB0aGlzLnNvcnRpbmcgPSBmYWxzZTsgLy8gcmVzZXQgc29ydGluZyBzdGF0dXMgdG8gZmFsc2UgYW5kIGZvciBuZXh0IHNvcnRpbmcgZnVuYyBzb3J0aW5nIHNldCBpdCB0byB0cnVlIGFnYWluXHJcbiAgICB0aGlzLmNhbGxBcGlcclxuICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBhZ2VQcm92aWRlcjogdGhpcy5wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PiB0aGlzLmFkYXB0ZXIuYWRhcHRJbihpdGVtLCB0aGlzLmZpZWxkcykpO1xyXG4gICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uTG9hZGluZy5lbWl0KGZhbHNlKTtcclxuICAgICAgICByZXMuZW50cmllcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5wcm9wZXJ0aWVzICYmIGVsZW1lbnQucHJvcGVydGllcz8uY3JlYXRvciAmJiBlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvcj8ucHJvcGVydGllcykge1xyXG4gICAgICAgICAgICBlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvciA9XHJcbiAgICAgICAgICAgICAgZWxlbWVudC5wcm9wZXJ0aWVzLmNyZWF0b3I/LnByb3BlcnRpZXM/LmZpcnN0TmFtZSArXHJcbiAgICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgICBlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvcj8ucHJvcGVydGllcz8ubGFzdE5hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5wcm9wZXJ0aWVzICYmIGVsZW1lbnQucHJvcGVydGllcz8uYXNzaWduZWUpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5wcm9wZXJ0aWVzLmFzc2lnbmVlID0gZWxlbWVudC5wcm9wZXJ0aWVzPy5hc3NpZ25lZS5mdWxsTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzLnJlc3VsdHNDb3VudDtcclxuICAgICAgICB0aGlzLnJvd3MgPSByZXMuZW50cmllcztcclxuICAgICAgICAvLyBlbWl0IGRhdGEgdG8gb3V0c2lkZSBpbiBjYXNlIG9mIHNlYXJjaCBwYWdlIGZvciB0aGUgZmlyc3QgdGltZSBvbmx5IHRvIHByZXZlbnQgcmVmcmVzaGluZyBhZ2dyZWdhdGlvbiB3aXRoIGV2ZXJ5IHBhZ2UgY2hhbmdlXHJcbiAgICAgICAgLy8gYW5kIGZvciBhbnkgb3RoZXIgcGFnZSB0eXBlIGVtaXQgZGF0YSBkaXJlY3RseSBpbiBhbGwgcGFnZSBudW1iZXJzXHJcbiAgICAgICAgaWYoKHRoaXMuaXNTZWFyY2hQYWdlICYmIHRoaXMucGFnZU51bSA9PT0gMSkgfHwgIXRoaXMuaXNTZWFyY2hQYWdlIClcclxuICAgICAgICB0aGlzLm9uR2V0dGluZ0RhdGEuZW1pdChyZXMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIHdoZW4gY2xpY2tpbmcgb24gc2luZ2xlIHJvd1xyXG4gIHJvd0RldGFpbHMoZXZlbnQpIHtcclxuICAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBpbmRleERldGFpbHMoZXZlbnQpIHtcclxuICAgIHRoaXMub25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoZXZlbnQpO1xyXG4gfVxyXG5cclxuICAvL2Z1bmN0aW9uIHRvIGhhbmRsZSBhbGwgb3BlcmF0aW9ucyBvbiBzaW5nbGUgcm93IChkZWxldGUgLCBlZGl0ICwgLi4uKVxyXG4gIHBlcmZvcm1BY3Rpb24oYWN0aW9uKSB7XHJcbiAgICB0aGlzLmFjdGlvbk9uUm93LmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlXHJcbiAgb25Tb3J0KHNvcnRPYmplY3QpIHtcclxuICAgIHRoaXMuc29ydGluZ0J5ID0gc29ydE9iamVjdDtcclxuICAgIHRoaXMuc29ydGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG9uTXVsdGlSb3dTZWxlY3RWYWx1ZShldmVudCl7XHJcbiAgICB0aGlzLm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KGV2ZW50KVxyXG4gIH1cclxuICBwdWJsaWMgUGFnaW5hdGlvbkNoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5wYWdlTnVtID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIndyYXBwaW5nXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRhYmxlLXJlcG9zaXRpb25cIj5cclxuICAgIDxjdHMtdGFibGVcclxuICAgICAgKm5nSWY9XCJyb3dzLmxlbmd0aFwiXHJcbiAgICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgW3Jlc3BvbnNpdmVDb2x1bW5zXT1cInJlc3BvbnNpdmVDb2x1bW5zXCJcclxuICAgICAgW3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG4gICAgICBbZnVsbFdpZHRoXT1cImZ1bGxXaWR0aFwiXHJcbiAgICAgIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIlxyXG4gICAgICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgICAgW3RhYmxlTW9kZV09XCJ0YWJsZU1vZGVcIlxyXG4gICAgICBbbXVsdGlTZWxlY3RSb3dzXT1cIm11bHRpU2VsZWN0Um93c1wiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICAgICAgW2RlZnVsdFNvcnRdPVwiZGVmdWx0U29ydFwiXHJcbiAgICAgIFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwiaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuICAgICAgKG9uUm93U2VsZWN0ZWQpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuICAgICAgKG9uUm93SW5kZXhTZWxlY3RlZCk9XCJpbmRleERldGFpbHMoJGV2ZW50KVwiXHJcbiAgICAgIChvbk11bHRpUm93U2VsZWN0ZWQpPVwib25NdWx0aVJvd1NlbGVjdFZhbHVlKCRldmVudClcIlxyXG4gICAgICAoYWN0aW9uT25Sb3cpPVwicGVyZm9ybUFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgKG9uU29ydGluZyk9XCJvblNvcnQoJGV2ZW50KVwiXHJcbiAgICA+PC9jdHMtdGFibGU+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgIDxjdHMtc3Bpbm5lcj48L2N0cy1zcGlubmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG15LTNcIlxyXG4gICAgKm5nSWY9XCJyb3dzLmxlbmd0aFwiXHJcbiAgPlxyXG4gICAgPGN0cy1wYWdpbmF0aW9uXHJcbiAgICAgIFtwYWdlXT1cInBhZ2VOdW1cIlxyXG4gICAgICAoY2hhbmdlKT1cIlBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtzaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgW2NvdW50XT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgICA+PC9jdHMtcGFnaW5hdGlvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCIgKm5nSWY9XCIoIWxvYWRpbmcgJiYgcm93cy5sZW5ndGggPT09IDApXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPnt7ICdub0RhdGEnIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAqbmdJZj1cIihsb2FkaW5nICYmIHJvd3MubGVuZ3RoID09PSAwKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHRcIj57eyAnZ2V0dGluZ0RhdGEnIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQUl6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFRSCxNQUFNLE9BQU8scUJBQXFCO0lBdURoQyxZQUNVLE9BQXVCLEVBQ3ZCLE9BQXVCLEVBQ3ZCLG1CQUF3QztRQUZ4QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBekRsRCwrQ0FBK0M7UUFDckMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLDREQUE0RDtRQUNsRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELG1FQUFtRTtRQUN6RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0MsZ0ZBQWdGO1FBQ3RFLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUs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Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUssTUFBTTtzQkFBZCxLQUFLO2dCQUVDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRSxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2FsbEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL2NhbGxBcGkvY2FsbC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9hZGFwdGVycy9hZGFwdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHluYW1pYy10YWJsZS5zZXJ2aWNlJztcclxuLyoqXHJcbiAqIHRoaXMgY29tcG9uZW50IGlzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgdGhhdCB1c2VzIFtUYWJsZSBDb21wb25lbnRde0BsaW5rIFRhYmxlQ29tcG9uZW50fSBpbnRlcm5hbGx5LFxyXG4gKiB5b3UgY2FuIHVzZSB0aGlzIGNvbXBvbmVudCB0byBjb25maWd1cmUgYSBwYWdlIHByb3ZpZGVyIGxpc3Rpbmcgb3V0IG9mIHRoZSBib3ggZWFzaWx5LFxyXG4gKiBhbmQgaXQgd2lsbCBoYW5kbGUgYWxsIG9mIHRoZSBiYXNpYyBmZWF0dXJlcyBzdWNoIGFzIGdldHRpbmcgZGF0YSBmcm9tIEFQSSwgTGlzdGluZywgUGFnaW5hdGlvbiwgc29ydGluZyBhbmQgZmlsdGVyaW5nXHJcbiAqICFbU2NyZWVuc2hvdC0xXSguLi9zY3JlZW5zaG90cy9keW5hbWljVGFibGUucG5nKVxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBUYWJsZVxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8Y3RzLWR5bmFtaWMtdGFibGVcclxuICogICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc1wiXHJcbiAqICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcclxuICogICAgW3BhZ2VTaXplXT1cIlBhZ2VTaXplXCJcclxuICogICAgW3BhZ2VQcm92aWRlcl09XCJwYWdlUHJvdmlkZXJcIlxyXG4gKiAgICBbcXVpY2tGaWx0ZXJdPVwiZmlsdGVyXCJcclxuICogICAgW3NvcnRpbmdCeV09XCJzb3J0aW5nQnlcIlxyXG4gKiAgICBbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcbiAqICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICogICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgICBbcm93Q3Vyc29yXT1cInRydWVcIlxyXG4gKiAgICBbcXVlcnlQYXJhbV09XCJxdWVyeVBhcmFtXCJcclxuICogICAgW2hlYWRlcnNdPVwiaGVhZGVyc1wiXHJcbiAqICAgIChvblJvd1NlbGVjdGVkKT1cIm9wZW5WaWV3ZXIoJGV2ZW50KVwiXHJcbiAqICAgIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIj5cclxuICogPC9jdHMtZHluYW1pYy10YWJsZT5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLWR5bmFtaWMtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93ICAqL1xyXG4gIEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93IHRvIGNhdGNoIGluZGV4Ki9cclxuICAgQE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHBlcmZvcm0gYWN0aW9uIG9uIHJvdyAoZGVsdGUsIGVkaXQsIC4uLiApICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBldmVudCB0byBlbWl0IHRvIHRoZSBoaWdoZXIgbGV2ZWwgIHdoZW4gZ2V0dGluZyBkYXRhIGZyb20gYXBpIGlzIGZpbmlzaGVkICovXHJcbiAgQE91dHB1dCgpIG9uR2V0dGluZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNlbGVjdGluZyBtdWx0aXBsZSByb3cgKi9cclxuICBAT3V0cHV0KCkgb25NdWx0aVJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgLyoqIGV2ZW50IHQgZW1pdCB3aGVuIHN0YXJ0IGdldHRpbmcgZGF0YSBhbmQgd2hlbiBmaW5pc2ggKi9cclxuICAgIEBPdXRwdXQoKSBvbkxvYWRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIEFycmF5IG9mIGNvbHVtbnMgKi9cclxuICBASW5wdXQoKSBjb2x1bW5zO1xyXG4gIC8qKiBBcnJheSBvZiBjb2x1bW5zIG9uIHNtYWxsZXIgc2NyZWVucyAqL1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpdmVDb2x1bW5zPztcclxuICAvKiogRGVmaW5lcyB0aGUgcGFnZSBpbiB3aGljaCB0YWJsZSBpcyBiZWluZyB1c2VkICovXHJcbiAgQElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nO1xyXG4gIC8qKiBUcmFuc2xhdGlvbnMgcHJlZml4ICovXHJcbiAgQElucHV0KCkgcHJlZml4ID0gJyc7XHJcbiAgLyoqIEhlYWRlcnMgdG8gYmUgc2VudCB3aXRoIEFQSSBSZXF1ZXN0ICovXHJcbiAgQElucHV0KCkgaGVhZGVycztcclxuICAvKiogRmllbGRzIGtleW1hcCB0byBiZSBtYXBwZWQgaW4gdGhlIGFkYXB0ZXIgKi9cclxuICBASW5wdXQoKSBmaWVsZHM7XHJcbiAgLyoqIFBhZ2UgUHJvdmlkZXIgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZXRyaWV2ZSBkYXRhICovXHJcbiAgQElucHV0KCkgcGFnZVByb3ZpZGVyO1xyXG4gIC8qKiBDb250cm9scyBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGFibGUgKi9cclxuICBASW5wdXQoKSBwYWdlU2l6ZTtcclxuICAvKiogU29ydGluZyBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBzb3J0aW5nQnk/PSB7fTtcclxuICBASW5wdXQoKSBxdWVyeVBhcmFtPz0ge307XHJcbiAgQElucHV0KCkgcXVpY2tGaWx0ZXI/O1xyXG4gICAgLyoqIENvbnRyb2xzIGlmIGl0IHJlcG9ydCBwYWdlICovXHJcbiAgICBASW5wdXQoKSByZXBvcnQ7XHJcbiAgLyoqIHRvIG1ha2UgY3Vyc29yIHdoZW4gaG92ZXIgb24gcm93IG9yIG5vdCAqL1xyXG4gIEBJbnB1dCgpIHJvd0N1cnNvcj87XHJcbiAgQElucHV0KCkgZnVsbFdpZHRoPz0gJ2F1dG8nO1xyXG4gICAvKiogJ2xpc3QnIGZvciBub3JhbWwgdGFibGUgJ2NhcmQnIGZvciBjYXJkcyBtb2RlIGxpa2UgaW4gbWVtb3MgKi9cclxuICAgQElucHV0KCkgdGFibGVNb2RlID0gJ2xpc3QnO1xyXG4gICAvKiogYWN0aW9uIHRvIGJlIHVzZWQgaW4gY2FzZSBvZiBjYXJkIG1vZGUgKi9cclxuICAgQElucHV0KCkgdGFibGVBY3Rpb25zO1xyXG4gICBASW5wdXQoKSBkZWZ1bHRTb3J0ID0gW3sgcHJvcDogJ3Byb3BlcnRpZXMuY3JlYXRlZEF0JyAsIGRpcjogJ2Rlc2MnIH1dO1xyXG4gICBASW5wdXQoKSByYW5nZTtcclxuICAgQElucHV0KCkgaXNTZWFyY2hQYWdlID0gZmFsc2U7XHJcbiAgLyoqIGFsbG93IG11bHRpc2VsZWN0IHJvd3Mgd2l0aCBjaGVja2JveCAqL1xyXG4gIEBJbnB1dCgpIG11bHRpU2VsZWN0Um93cyA9IGZhbHNlO1xyXG4gICBASW5wdXQoKSBoaWdobGlnaHRTZWxlY3RlZENhcmQgPSBmYWxzZTtcclxuICBmaWx0ZXJQYXJhbXMgPSB7fTtcclxuICBwYWdlTnVtID0gMTtcclxuICByb3dzID0gW107XHJcbiAgdG90YWxSZWNvcmRzID0gMDtcclxuICBteURhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBsb2FkaW5nO1xyXG4gIHNvcnRpbmcgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYWRhcHRlcjogQWRhcHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhbGxBcGk6IENhbGxBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkeW5hbWljVGFibGVTZXJ2aWNlOiBEeW5hbWljVGFibGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm15RGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMuZHluYW1pY1RhYmxlU2VydmljZS5yZWZyZXNoRGF0YS5zdWJzY3JpYmUoZmlsdGVyRGF0YSA9PiB7XHJcbiAgICAgIGlmIChmaWx0ZXJEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMgPSB7IC4uLmZpbHRlckRhdGEgfTtcclxuICAgICAgICAvLyByZXNldCBwYWdlIG51bWJlciB3aGVuIHN0YXJ0IG5ldyBmaWx0ZXJpbmdcclxuICAgICAgICB0aGlzLnBhZ2VOdW0gPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5teURhdGFTdWJzY3JpcHRpb24gPyB0aGlzLm15RGF0YVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2U6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IGlzRmlyc3RDaGFuZ2UgPSBPYmplY3QudmFsdWVzKHNpbXBsZUNoYW5nZSkuc29tZSgoYykgPT5cclxuICAgICAgYy5pc0ZpcnN0Q2hhbmdlKClcclxuICAgICk7XHJcbiAgICBpZiAoaXNGaXJzdENoYW5nZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIChzaW1wbGVDaGFuZ2UucXVlcnlQYXJhbSAmJlxyXG4gICAgICAgIHNpbXBsZUNoYW5nZS5xdWVyeVBhcmFtLnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgc2ltcGxlQ2hhbmdlLnF1ZXJ5UGFyYW0uY3VycmVudFZhbHVlKSB8fFxyXG4gICAgICAoc2ltcGxlQ2hhbmdlLnF1aWNrRmlsdGVyICYmXHJcbiAgICAgICAgc2ltcGxlQ2hhbmdlLnF1aWNrRmlsdGVyLnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgc2ltcGxlQ2hhbmdlLnF1aWNrRmlsdGVyLmN1cnJlbnRWYWx1ZSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBhZ2VOdW0gPSAxOyAvLyByZXNldCBwYWdlIG51bWJlciBiZWZvciByZWNhbGxpbmcgYXBpIHdpdGggZmlsdGVyc1xyXG4gICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGEoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOyAvLyBpbnRlcm5hbCBsb2FkaW5nXHJcbiAgICB0aGlzLm9uTG9hZGluZy5lbWl0KHRydWUpOyAvLyBleHRlcm5hbCBsb2FkaW5nIFxyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgZHVibGluY29yZV9jcmVhdGVkX2FnZzogdGhpcy5yYW5nZSxcclxuICAgICAgLi4udGhpcy5maWx0ZXJQYXJhbXMsIC8vIHVzZWQgdG8gZ2V0IGZpbHRlciBkYXRhIGFuZCBzZXQgaXQgaW4gb3VyIHBhcmFtc1xyXG4gICAgICAuLi50aGlzLnF1ZXJ5UGFyYW0sIC8vIHVzZWQgdG8gZ2V0IHBhcmFtcyBmcm9tIG91ciBjb25maWdcclxuICAgICAgLi4udGhpcy5zb3J0aW5nQnksXHJcbiAgICAgIC4uLnRoaXMucXVpY2tGaWx0ZXIsXHJcbiAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMucGFnZU51bSAtIDEsXHJcbiAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBvZmZzZXQ6IDBcclxuICAgIH07XHJcblxyXG4gICAgLy8gZG9uJ3QgcmVmcmVzaCBhbGwgdGFibGUgaW4gY2FzZSBvZiBzb3J0aW5nIG9ubHlcclxuICAgIGlmICghdGhpcy5zb3J0aW5nKSB7IC8vIHVzZWQgdG8gbm90IHJlZnJlc2hpbmcgYWxsIHRhYmxlIGluIGNhc2Ugb2Ygc29ydGluZyBzaW5jZSB0YWJsZSBsb3NlIHNvcnRpbmcgc3RhdGUgd2hlbiByZWZyZXNoIGFsbCB0YWJsZVxyXG4gICAgICB0aGlzLnJvd3MgPSBbXTsgLy8gdXNlZCB0byByZWZyZXNoIHRhYmxlIHRvIGZlZWwgY2hhbmdlcyBpbiBhY3Rpb25zIHdoZW4gcGVyZm9ybSBhY3Rpb24gYW5kIG5lZWQgdG8gcmVmcmVzaCBhY3Rpb25zXHJcbiAgICB9XHJcbiAgICB0aGlzLnNvcnRpbmcgPSBmYWxzZTsgLy8gcmVzZXQgc29ydGluZyBzdGF0dXMgdG8gZmFsc2UgYW5kIGZvciBuZXh0IHNvcnRpbmcgZnVuYyBzb3J0aW5nIHNldCBpdCB0byB0cnVlIGFnYWluXHJcbiAgICB0aGlzLmNhbGxBcGlcclxuICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBhZ2VQcm92aWRlcjogdGhpcy5wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PiB0aGlzLmFkYXB0ZXIuYWRhcHRJbihpdGVtLCB0aGlzLmZpZWxkcykpO1xyXG4gICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uTG9hZGluZy5lbWl0KGZhbHNlKTtcclxuICAgICAgICByZXMuZW50cmllcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5wcm9wZXJ0aWVzICYmIGVsZW1lbnQucHJvcGVydGllcz8uY3JlYXRvciAmJiBlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvcj8ucHJvcGVydGllcykge1xyXG4gICAgICAgICAgICBlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvciA9XHJcbiAgICAgICAgICAgICAgZWxlbWVudC5wcm9wZXJ0aWVzLmNyZWF0b3I/LnByb3BlcnRpZXM/LmZpcnN0TmFtZSArXHJcbiAgICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgICBlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvcj8ucHJvcGVydGllcz8ubGFzdE5hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5wcm9wZXJ0aWVzICYmIGVsZW1lbnQucHJvcGVydGllcz8uYXNzaWduZWUpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5wcm9wZXJ0aWVzLmFzc2lnbmVlID0gZWxlbWVudC5wcm9wZXJ0aWVzPy5hc3NpZ25lZS5mdWxsTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzLnJlc3VsdHNDb3VudDtcclxuICAgICAgICB0aGlzLnJvd3MgPSByZXMuZW50cmllcztcclxuICAgICAgICAvLyBlbWl0IGRhdGEgdG8gb3V0c2lkZSBpbiBjYXNlIG9mIHNlYXJjaCBwYWdlIGZvciB0aGUgZmlyc3QgdGltZSBvbmx5IHRvIHByZXZlbnQgcmVmcmVzaGluZyBhZ2dyZWdhdGlvbiB3aXRoIGV2ZXJ5IHBhZ2UgY2hhbmdlXHJcbiAgICAgICAgLy8gYW5kIGZvciBhbnkgb3RoZXIgcGFnZSB0eXBlIGVtaXQgZGF0YSBkaXJlY3RseSBpbiBhbGwgcGFnZSBudW1iZXJzXHJcbiAgICAgICAgaWYoKHRoaXMuaXNTZWFyY2hQYWdlICYmIHRoaXMucGFnZU51bSA9PT0gMSkgfHwgIXRoaXMuaXNTZWFyY2hQYWdlIClcclxuICAgICAgICB0aGlzLm9uR2V0dGluZ0RhdGEuZW1pdChyZXMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIHdoZW4gY2xpY2tpbmcgb24gc2luZ2xlIHJvd1xyXG4gIHJvd0RldGFpbHMoZXZlbnQpIHtcclxuICAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBpbmRleERldGFpbHMoZXZlbnQpIHtcclxuICAgIHRoaXMub25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoZXZlbnQpO1xyXG4gfVxyXG5cclxuICAvL2Z1bmN0aW9uIHRvIGhhbmRsZSBhbGwgb3BlcmF0aW9ucyBvbiBzaW5nbGUgcm93IChkZWxldGUgLCBlZGl0ICwgLi4uKVxyXG4gIHBlcmZvcm1BY3Rpb24oYWN0aW9uKSB7XHJcbiAgICB0aGlzLmFjdGlvbk9uUm93LmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlXHJcbiAgb25Tb3J0KHNvcnRPYmplY3QpIHtcclxuICAgIHRoaXMuc29ydGluZ0J5ID0gc29ydE9iamVjdDtcclxuICAgIHRoaXMuc29ydGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG9uTXVsdGlSb3dTZWxlY3RWYWx1ZShldmVudCl7XHJcbiAgICB0aGlzLm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KGV2ZW50KVxyXG4gIH1cclxuICBwdWJsaWMgUGFnaW5hdGlvbkNoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5wYWdlTnVtID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIndyYXBwaW5nXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRhYmxlLXJlcG9zaXRpb25cIj5cclxuICAgIDxjdHMtdGFibGVcclxuICAgICAgKm5nSWY9XCJyb3dzLmxlbmd0aFwiXHJcbiAgICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgW3Jlc3BvbnNpdmVDb2x1bW5zXT1cInJlc3BvbnNpdmVDb2x1bW5zXCJcclxuICAgICAgW3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG4gICAgICBbZnVsbFdpZHRoXT1cImZ1bGxXaWR0aFwiXHJcbiAgICAgIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIlxyXG4gICAgICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgICAgW3RhYmxlTW9kZV09XCJ0YWJsZU1vZGVcIlxyXG4gICAgICBbbXVsdGlTZWxlY3RSb3dzXT1cIm11bHRpU2VsZWN0Um93c1wiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICAgICAgW2RlZnVsdFNvcnRdPVwiZGVmdWx0U29ydFwiXHJcbiAgICAgIFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwiaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuICAgICAgKG9uUm93U2VsZWN0ZWQpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuICAgICAgKG9uUm93SW5kZXhTZWxlY3RlZCk9XCJpbmRleERldGFpbHMoJGV2ZW50KVwiXHJcbiAgICAgIChvbk11bHRpUm93U2VsZWN0ZWQpPVwib25NdWx0aVJvd1NlbGVjdFZhbHVlKCRldmVudClcIlxyXG4gICAgICAoYWN0aW9uT25Sb3cpPVwicGVyZm9ybUFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgKG9uU29ydGluZyk9XCJvblNvcnQoJGV2ZW50KVwiXHJcbiAgICA+PC9jdHMtdGFibGU+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgIDxjdHMtc3Bpbm5lcj48L2N0cy1zcGlubmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwicGFnaW5hdGlvbi1pbmVyLXdyYXBlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXktM1wiXHJcbiAgICAqbmdJZj1cInJvd3MubGVuZ3RoXCJcclxuICA+XHJcbiAgICA8Y3RzLXBhZ2luYXRpb25cclxuICAgICAgW3BhZ2VdPVwicGFnZU51bVwiXHJcbiAgICAgIChjaGFuZ2UpPVwiUGFnaW5hdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW3NpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICBbY291bnRdPVwidG90YWxSZWNvcmRzXCJcclxuICAgID48L2N0cy1wYWdpbmF0aW9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAqbmdJZj1cIighbG9hZGluZyAmJiByb3dzLmxlbmd0aCA9PT0gMClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+e3sgJ25vRGF0YScgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiICpuZ0lmPVwiKGxvYWRpbmcgJiYgcm93cy5sZW5ndGggPT09IDApXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPnt7ICdnZXR0aW5nRGF0YScgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19