ng-pli-commons 0.0.1703 → 0.0.1704

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.
@@ -88,6 +88,14 @@ export class DocumentService {
88
88
  setSubjectValidateDocumentsCheck(subjectValidateDocumentsCheck = true) {
89
89
  this.subjectValidateDocumentsCheck.next(subjectValidateDocumentsCheck);
90
90
  }
91
+ /** It upload a document */
92
+ uploadDocument(uploadDocument) {
93
+ return this.httpClient.post(this.environment.host.backend.frontoffice + 'document/uploadDocument', uploadDocument, this.headerJson);
94
+ }
95
+ /** It upload a document */
96
+ deleteDocument(deleteDocument) {
97
+ return this.httpClient.post(this.environment.host.backend.frontoffice + 'document/deleteDocument', deleteDocument, this.headerJson);
98
+ }
91
99
  }
92
100
  DocumentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DocumentService, deps: [{ token: 'environment' }, { token: i1.HttpClient }, { token: i2.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable });
93
101
  DocumentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DocumentService, providedIn: 'root' });
@@ -100,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
100
108
  type: Inject,
101
109
  args: ['environment']
102
110
  }] }, { type: i1.HttpClient }, { type: i2.AuthenticationService }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvc2VydmljZXMvZG9jdW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLGVBQWU7SUFLM0IsWUFDZ0MsV0FBVyxFQUNsQyxVQUFzQixFQUN0QixXQUFrQztRQUZYLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBUG5DLGVBQVUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUVsRixrQ0FBNkIsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBTTVELENBQUM7SUFFSixvQ0FBb0M7SUFDcEMsT0FBTyxDQUFDLEVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLGtCQUFrQixFQUFFO1lBQzFGLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsa0JBQWtCLENBQUMsYUFBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsVUFB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QztRQUMvQixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsZ0NBQXlDLElBQUk7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OzRHQXRKVyxlQUFlLGtCQU1sQixhQUFhO2dIQU5WLGVBQWUsY0FGZixNQUFNOzJGQUVOLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFPRSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnQsIERhdGFUYWJsZVBhcmFtZXRlcnMgfSBmcm9tICduZy1wbGktdXRpbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFNlcnZpY2Uge1xyXG5cdHByaXZhdGUgaGVhZGVySnNvbiA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSB9O1xyXG5cclxuXHRwcml2YXRlIHN1YmplY3RWYWxpZGF0ZURvY3VtZW50c0NoZWNrID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQsXHJcblx0XHRwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2VcclxuXHQpIHt9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBkb2N1bWVudCBieSBpZCAqL1xyXG5cdGdldEJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdkb2N1bWVudC9nZXRCeUlkJywge1xyXG5cdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdpZCcsIGlkLnRvU3RyaW5nKCkpXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBkb2N1bWVudCBieSBpZCAqL1xyXG5cdGdldEJ5QXBwbGljYXRpb25JZChhcHBsaWNhdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L2dldEJ5QXBwbGljYXRpb25JZCcsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQudG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBkb2N1bWVudCBieSBjb25maWd1cmF0aW9uRG9jdW1lbnRJZCAqL1xyXG5cdGdldEJ5Q29uZmlndXJhdGlvbkRvY3VtZW50SWQoY29uZmlndXJhdGlvbkRvY3VtZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuY29uZmlndXJhdGlvbiArICdkb2N1bWVudC9nZXRCeUNvbmZpZ3VyYXRpb25Eb2N1bWVudElkJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoXHJcblx0XHRcdFx0XHQnY29uZmlndXJhdGlvbkRvY3VtZW50SWQnLFxyXG5cdFx0XHRcdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50SWQudG9TdHJpbmcoKVxyXG5cdFx0XHRcdClcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBkb2N1bWVudCBieSBjb25maWd1cmF0aW9uRG9jdW1lbnRJZCAqL1xyXG5cdGdldEJ5TGlzdFN0YXRlSW5Db25maWd1cmF0aW9uRG9jdW1lbnRJZChcclxuXHRcdGxpc3RTdGF0ZTogQXJyYXk8bnVtYmVyPixcclxuXHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkOiBudW1iZXJcclxuXHQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmNvbmZpZ3VyYXRpb24gK1xyXG5cdFx0XHRcdCdkb2N1bWVudC9nZXRCeUxpc3RTdGF0ZUluQ29uZmlndXJhdGlvbkRvY3VtZW50SWQnLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpXHJcblx0XHRcdFx0XHQuc2V0KCdjb25maWd1cmF0aW9uRG9jdW1lbnRJZCcsIGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdsaXN0U3RhdGUnLCBsaXN0U3RhdGUudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBkb2N1bWVudCBieSBwcm9tIGNvZGUgKi9cclxuXHRnZXRCeVByb21Db2RlKHByb21Db2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L2dldEJ5UHJvbUNvZGUnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb21Db2RpZ28nLCBwcm9tQ29kZS50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgZG9jdW1lbnQgKi9cclxuXHRzYXZlKGRvY3VtZW50OiBEb2N1bWVudCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L3NhdmUnLFxyXG5cdFx0XHRkb2N1bWVudCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgZG9jdW1lbnQgKi9cclxuXHR1cGRhdGVTdGF0ZShsRG9jdW1lbnQ6IERvY3VtZW50W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdkb2N1bWVudC91cGRhdGVTdGF0ZScsXHJcblx0XHRcdGxEb2N1bWVudCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgZG9jdW1lbnQgKi9cclxuXHR1cGRhdGVBcmNoaXZlUHJvY2VzcyhsRG9jdW1lbnQ6IERvY3VtZW50W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdkb2N1bWVudC91cGRhdGVBcmNoaXZlUHJvY2VzcycsXHJcblx0XHRcdGxEb2N1bWVudCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRvY3VtZW50IGJ5IHByb20gY29kZSAqL1xyXG5cdGdldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMoZGF0YVRhYmxlUGFyYW1ldGVyczogRGF0YVRhYmxlUGFyYW1ldGVycykge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdkb2N1bWVudC9nZXRCeURhdGFUYWJsZXNQYXJhbWV0ZXJzJyxcclxuXHRcdFx0ZGF0YVRhYmxlUGFyYW1ldGVycyxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0Z2V0TGlzdERvY3VtZW50c0J5UHJvbUNvZGlnb0FuZFJldmlzb3IoXHJcblx0XHRwcm9tQ29kaWdvOiBudW1iZXIsXHJcblx0XHRyZXZpc29yTG9naW46IHN0cmluZyxcclxuXHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkOiBudW1iZXIsXHJcblx0XHR0YXNrSWQ6IG51bWJlclxyXG5cdCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgK1xyXG5cdFx0XHRcdCdkb2N1bWVudC9nZXRMaXN0RG9jdW1lbnRzQnlQcm9tQ29kaWdvQW5kUmV2aXNvcicsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ3Byb21Db2RpZ28nLCBwcm9tQ29kaWdvLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdyZXZpc29yTG9naW4nLCByZXZpc29yTG9naW4pXHJcblx0XHRcdFx0XHQuc2V0KCdjb25maWd1cmF0aW9uRG9jdW1lbnRJZCcsIGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCd0YXNrSWQnLCB0YXNrSWQudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGRvY3VtZW50cyBieSBhcHAgSWQgYW5kIGNvbmZpZ0RvYyBJZCAqL1xyXG5cdGdldEJ5QXBwbGljYXRpb25JZEFuZENvbmZpZ3VyYXRpb25Eb2N1bWVudElkKFxyXG5cdFx0YXBwbGljYXRpb25JZDogc3RyaW5nLFxyXG5cdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50SWQ6IG51bWJlclxyXG5cdCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgK1xyXG5cdFx0XHRcdCdkb2N1bWVudC9nZXRCeUFwcGxpY2F0aW9uSWRBbmRDb25maWd1cmF0aW9uRG9jdW1lbnRJZCcsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ2FwcGxpY2F0aW9uSWQnLCBhcHBsaWNhdGlvbklkLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdjb25maWd1cmF0aW9uRG9jdW1lbnRJZCcsIGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkLnRvU3RyaW5nKCkpXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVEb2N1bWVudE1hbmFnZW1lbnRQcm9jZXNzKGFwcGxpY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRsZXQgYm9keSA9IHtcclxuXHRcdFx0YXBwbGljYXRpb25JZDogYXBwbGljYXRpb25JZFxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnZG9jdW1lbnQvdXBkYXRlRG9jdW1lbnRNYW5hZ2VtZW50UHJvY2VzcycsXHJcblx0XHRcdGJvZHlcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRnZXRTdWJqZWN0VmFsaWRhdGVEb2N1bWVudHNDaGVjaygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuXHRcdHJldHVybiB0aGlzLnN1YmplY3RWYWxpZGF0ZURvY3VtZW50c0NoZWNrLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0c2V0U3ViamVjdFZhbGlkYXRlRG9jdW1lbnRzQ2hlY2soc3ViamVjdFZhbGlkYXRlRG9jdW1lbnRzQ2hlY2s6IGJvb2xlYW4gPSB0cnVlKSB7XHJcblx0XHR0aGlzLnN1YmplY3RWYWxpZGF0ZURvY3VtZW50c0NoZWNrLm5leHQoc3ViamVjdFZhbGlkYXRlRG9jdW1lbnRzQ2hlY2spO1xyXG5cdH1cclxufVxyXG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvc2VydmljZXMvZG9jdW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLGVBQWU7SUFLM0IsWUFDZ0MsV0FBVyxFQUNsQyxVQUFzQixFQUN0QixXQUFrQztRQUZYLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBUG5DLGVBQVUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUVsRixrQ0FBNkIsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBTTVELENBQUM7SUFFSixvQ0FBb0M7SUFDcEMsT0FBTyxDQUFDLEVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLGtCQUFrQixFQUFFO1lBQzFGLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsa0JBQWtCLENBQUMsYUFBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsVUFB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QztRQUMvQixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsZ0NBQXlDLElBQUk7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsY0FBYyxDQUFDLGNBQW1CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcseUJBQXlCLEVBQ3JFLGNBQWMsRUFDZCxJQUFJLENBQUMsVUFBVSxDQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLGNBQWMsQ0FBQyxjQUFtQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLHlCQUF5QixFQUNyRSxjQUFjLEVBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FDZixDQUFDO0lBQ0gsQ0FBQzs7NEdBeEtXLGVBQWUsa0JBTWxCLGFBQWE7Z0hBTlYsZUFBZSxjQUZmLE1BQU07MkZBRU4sZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEI7OzBCQU9FLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudCwgRGF0YVRhYmxlUGFyYW1ldGVycyB9IGZyb20gJ25nLXBsaS11dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50U2VydmljZSB7XHJcblx0cHJpdmF0ZSBoZWFkZXJKc29uID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pIH07XHJcblxyXG5cdHByaXZhdGUgc3ViamVjdFZhbGlkYXRlRG9jdW1lbnRzQ2hlY2sgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudCxcclxuXHRcdHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuXHRcdHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZVxyXG5cdCkge31cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRvY3VtZW50IGJ5IGlkICovXHJcblx0Z2V0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L2dldEJ5SWQnLCB7XHJcblx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkJywgaWQudG9TdHJpbmcoKSlcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRvY3VtZW50IGJ5IGlkICovXHJcblx0Z2V0QnlBcHBsaWNhdGlvbklkKGFwcGxpY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnZG9jdW1lbnQvZ2V0QnlBcHBsaWNhdGlvbklkJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdhcHBsaWNhdGlvbklkJywgYXBwbGljYXRpb25JZC50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRvY3VtZW50IGJ5IGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkICovXHJcblx0Z2V0QnlDb25maWd1cmF0aW9uRG9jdW1lbnRJZChjb25maWd1cmF0aW9uRG9jdW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgJ2RvY3VtZW50L2dldEJ5Q29uZmlndXJhdGlvbkRvY3VtZW50SWQnLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldChcclxuXHRcdFx0XHRcdCdjb25maWd1cmF0aW9uRG9jdW1lbnRJZCcsXHJcblx0XHRcdFx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnRJZC50b1N0cmluZygpXHJcblx0XHRcdFx0KVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRvY3VtZW50IGJ5IGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkICovXHJcblx0Z2V0QnlMaXN0U3RhdGVJbkNvbmZpZ3VyYXRpb25Eb2N1bWVudElkKFxyXG5cdFx0bGlzdFN0YXRlOiBBcnJheTxudW1iZXI+LFxyXG5cdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50SWQ6IG51bWJlclxyXG5cdCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuY29uZmlndXJhdGlvbiArXHJcblx0XHRcdFx0J2RvY3VtZW50L2dldEJ5TGlzdFN0YXRlSW5Db25maWd1cmF0aW9uRG9jdW1lbnRJZCcsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ2NvbmZpZ3VyYXRpb25Eb2N1bWVudElkJywgY29uZmlndXJhdGlvbkRvY3VtZW50SWQudG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ2xpc3RTdGF0ZScsIGxpc3RTdGF0ZS50b1N0cmluZygpKVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRvY3VtZW50IGJ5IHByb20gY29kZSAqL1xyXG5cdGdldEJ5UHJvbUNvZGUocHJvbUNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnZG9jdW1lbnQvZ2V0QnlQcm9tQ29kZScsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvbUNvZGlnbycsIHByb21Db2RlLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgc2F2ZXMgYSBkb2N1bWVudCAqL1xyXG5cdHNhdmUoZG9jdW1lbnQ6IERvY3VtZW50KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnZG9jdW1lbnQvc2F2ZScsXHJcblx0XHRcdGRvY3VtZW50LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgc2F2ZXMgYSBkb2N1bWVudCAqL1xyXG5cdHVwZGF0ZVN0YXRlKGxEb2N1bWVudDogRG9jdW1lbnRbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L3VwZGF0ZVN0YXRlJyxcclxuXHRcdFx0bERvY3VtZW50LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgc2F2ZXMgYSBkb2N1bWVudCAqL1xyXG5cdHVwZGF0ZUFyY2hpdmVQcm9jZXNzKGxEb2N1bWVudDogRG9jdW1lbnRbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L3VwZGF0ZUFyY2hpdmVQcm9jZXNzJyxcclxuXHRcdFx0bERvY3VtZW50LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgZG9jdW1lbnQgYnkgcHJvbSBjb2RlICovXHJcblx0Z2V0QnlEYXRhVGFibGVzUGFyYW1ldGVycyhkYXRhVGFibGVQYXJhbWV0ZXJzOiBEYXRhVGFibGVQYXJhbWV0ZXJzKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L2dldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRnZXRMaXN0RG9jdW1lbnRzQnlQcm9tQ29kaWdvQW5kUmV2aXNvcihcclxuXHRcdHByb21Db2RpZ286IG51bWJlcixcclxuXHRcdHJldmlzb3JMb2dpbjogc3RyaW5nLFxyXG5cdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50SWQ6IG51bWJlcixcclxuXHRcdHRhc2tJZDogbnVtYmVyXHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArXHJcblx0XHRcdFx0J2RvY3VtZW50L2dldExpc3REb2N1bWVudHNCeVByb21Db2RpZ29BbmRSZXZpc29yJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28udG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ3Jldmlzb3JMb2dpbicsIHJldmlzb3JMb2dpbilcclxuXHRcdFx0XHRcdC5zZXQoJ2NvbmZpZ3VyYXRpb25Eb2N1bWVudElkJywgY29uZmlndXJhdGlvbkRvY3VtZW50SWQudG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ3Rhc2tJZCcsIHRhc2tJZC50b1N0cmluZygpKVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgZG9jdW1lbnRzIGJ5IGFwcCBJZCBhbmQgY29uZmlnRG9jIElkICovXHJcblx0Z2V0QnlBcHBsaWNhdGlvbklkQW5kQ29uZmlndXJhdGlvbkRvY3VtZW50SWQoXHJcblx0XHRhcHBsaWNhdGlvbklkOiBzdHJpbmcsXHJcblx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnRJZDogbnVtYmVyXHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArXHJcblx0XHRcdFx0J2RvY3VtZW50L2dldEJ5QXBwbGljYXRpb25JZEFuZENvbmZpZ3VyYXRpb25Eb2N1bWVudElkJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQudG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ2NvbmZpZ3VyYXRpb25Eb2N1bWVudElkJywgY29uZmlndXJhdGlvbkRvY3VtZW50SWQudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHVwZGF0ZURvY3VtZW50TWFuYWdlbWVudFByb2Nlc3MoYXBwbGljYXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGxldCBib2R5ID0ge1xyXG5cdFx0XHRhcHBsaWNhdGlvbklkOiBhcHBsaWNhdGlvbklkXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdkb2N1bWVudC91cGRhdGVEb2N1bWVudE1hbmFnZW1lbnRQcm9jZXNzJyxcclxuXHRcdFx0Ym9keVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldFN1YmplY3RWYWxpZGF0ZURvY3VtZW50c0NoZWNrKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3ViamVjdFZhbGlkYXRlRG9jdW1lbnRzQ2hlY2suYXNPYnNlcnZhYmxlKCk7XHJcblx0fVxyXG5cclxuXHRzZXRTdWJqZWN0VmFsaWRhdGVEb2N1bWVudHNDaGVjayhzdWJqZWN0VmFsaWRhdGVEb2N1bWVudHNDaGVjazogYm9vbGVhbiA9IHRydWUpIHtcclxuXHRcdHRoaXMuc3ViamVjdFZhbGlkYXRlRG9jdW1lbnRzQ2hlY2submV4dChzdWJqZWN0VmFsaWRhdGVEb2N1bWVudHNDaGVjayk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgdXBsb2FkIGEgZG9jdW1lbnQgKi9cclxuXHR1cGxvYWREb2N1bWVudCh1cGxvYWREb2N1bWVudDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnZG9jdW1lbnQvdXBsb2FkRG9jdW1lbnQnLFxyXG5cdFx0XHR1cGxvYWREb2N1bWVudCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHVwbG9hZCBhIGRvY3VtZW50ICovXHJcblx0ZGVsZXRlRG9jdW1lbnQoZGVsZXRlRG9jdW1lbnQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2RvY3VtZW50L2RlbGV0ZURvY3VtZW50JyxcclxuXHRcdFx0ZGVsZXRlRG9jdW1lbnQsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -469,7 +469,7 @@ export class SendApplicationService {
469
469
  let resultArray = JSON.parse(result);
470
470
  if (resultArray && resultArray.length > 0) {
471
471
  //Then document must have archives
472
- if (!document || document.listArchive.length < resultArray.length) {
472
+ if (!document || document.listArchive.length !== resultArray.length) {
473
473
  return true;
474
474
  }
475
475
  }
@@ -489,4 +489,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
489
489
  type: Inject,
490
490
  args: ['environment']
491
491
  }] }, { type: i1.TokenService }, { type: i2.EmailService }, { type: i3.InteractionApplicationUserService }]; } });
492
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1hcHBsaWNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9zZW5kLWFwcGxpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUluRCxPQUFPLEVBSU4sZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFFBQVEsRUFDUixjQUFjLEVBQ2QsS0FBSyxFQUNMLDBCQUEwQixFQUUxQixzQkFBc0IsRUFHdEIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBS2xELE1BQU0sT0FBTyxzQkFBc0I7SUFJbEMsWUFDZ0MsV0FBVyxFQUNsQyxZQUEwQixFQUMxQixZQUEwQixFQUMxQixpQ0FBb0U7UUFIN0MsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFtQztRQVA3RSxtREFBbUQ7UUFDM0Msc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFPeEQsQ0FBQztJQUVKLG1FQUFtRTtJQUM1RCxrQkFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELDBDQUEwQztJQUNuQyxhQUFhLENBQUMsT0FBZSxFQUFFLEtBQWE7UUFDbEQsSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDdkI7SUFDRixDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLGVBQWU7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsa0JBQWtCLENBQUMsV0FBd0I7UUFDMUMsSUFBSSxLQUFLLEdBQVUsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMvQixLQUFLLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDN0MsaUNBQWlDO1FBQ2pDLEtBQUssQ0FBQyxVQUFVLENBQUMscUJBQXFCLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsa0RBQWtELEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixTQUFTLENBQUMsV0FBd0I7UUFDakMsSUFBSSxLQUFLLEdBQVUsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMvQixLQUFLLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDN0MsaUNBQWlDO1FBQ2pDLEtBQUssQ0FBQyxVQUFVLENBQUMscUJBQXFCLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsZ0RBQWdELEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELCtCQUErQjtJQUMvQixlQUFlLENBQ2QsYUFBcUIsRUFDckIsVUFBa0IsRUFDbEIsMkJBQXdELEVBQ3hELFdBQW9CO1FBRXBCLElBQUksa0JBQWtCLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUN0RixrQkFBa0IsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ2pELGtCQUFrQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFM0MsSUFDQywyQkFBMkIsQ0FBQyxpQkFBaUI7WUFDN0MsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUVoRCxrQkFBa0IsQ0FBQyxtQkFBbUI7Z0JBQ3JDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztRQUNuRCxJQUNDLDJCQUEyQixDQUFDLGdCQUFnQjtZQUM1QywyQkFBMkIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBRS9DLGtCQUFrQixDQUFDLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUN6RixJQUFJLDJCQUEyQixDQUFDLEVBQUU7WUFDakMsa0JBQWtCLENBQUMsNkJBQTZCLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxDQUFDO1FBRW5GLGtCQUFrQixDQUFDLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDO1FBQ2pGLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUU7WUFDaEUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVM7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNSLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbkMsa0JBQWtCLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsRixPQUFPLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsMEJBQTBCLENBQ3pCLGtCQUE4QyxFQUM5QyxPQUFZLEVBQ1osTUFBVztRQUVYLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQ3hFLENBQUMsTUFBa0MsRUFBRSxFQUFFO1lBQ3RDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQ1osbUVBQW1FLEVBQ25FLEtBQUssQ0FDTCxDQUFDO1lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxDQUNELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFFBQVEsQ0FDZCxlQUErQixFQUMvQixlQUE4QixFQUM5QixRQUFlLEVBQ2YsWUFBbUIsRUFDbkIsaUJBQXdCLEVBQ3hCLFVBQXdCLEVBQ3hCLHlCQUFrRCxFQUNsRCxZQUF3QixFQUN4QixRQUFhLEVBQ2Isb0JBQTZCLEVBQzdCLHdCQUFrQztRQUVsQyxJQUFJLG1CQUFtQixHQUEyQixFQUFFLENBQUM7UUFDckQsbUJBQW1CO1FBQ25CLDBCQUEwQjtRQUMxQixJQUFJLGVBQWUsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsRCwrQkFBK0I7WUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELHFCQUFxQjtnQkFDckIsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxpQ0FBaUM7Z0JBQ2pDLElBQUksZUFBZSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUM3RCx1QkFBdUI7Z0JBQ3ZCLGVBQWUsQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFFL0MsSUFBSSxhQUFhLEdBQVEsRUFBRSxDQUFDO2dCQUM1QixJQUNDLGVBQWU7b0JBQ2YsZUFBZSxDQUFDLE1BQU07b0JBQ3RCLFdBQVcsQ0FBQyxPQUFPO29CQUNuQixRQUFRO29CQUNSLFFBQVEsQ0FBQyxNQUFNO29CQUVmLGtEQUFrRDtvQkFDbEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxlQUFlO3dCQUNuQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRTs0QkFDckMsYUFBYSxHQUFHLE1BQU0sQ0FBQzs0QkFDdkIsTUFBTTt5QkFDTjtnQkFFSCxnRUFBZ0U7Z0JBQ2hFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDN0UsMEJBQTBCO2dCQUMxQixlQUFlLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUM1RCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGVBQWUsQ0FBQyxhQUFhLENBQzdCLENBQUM7Z0JBRUYsNEJBQTRCO2dCQUM1QixJQUFJLENBQUMsd0JBQXdCLEVBQUU7b0JBQzlCLGVBQWUsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQzVELGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsZUFBZSxDQUFDLGFBQWEsRUFDN0IsYUFBYSxDQUNiLENBQUM7aUJBQ0Y7cUJBQU07b0JBQ04sZUFBZSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FDdEUsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixlQUFlLENBQUMsYUFBYSxFQUM3QixhQUFhLENBQ2IsQ0FBQztpQkFDRjtnQkFFRCw4QkFBOEI7Z0JBQzlCLGVBQWUsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQ2hFLGFBQWEsRUFDYix5QkFBeUIsRUFDekIsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osb0JBQW9CLENBQ3BCLENBQUM7Z0JBRUYsc0ZBQXNGO2dCQUN0RixlQUFlLENBQUMsVUFBVTtvQkFDekIsQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsTUFBTTt3QkFDN0MsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsTUFBTTt3QkFDM0MsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO2dCQUMzQyxlQUFlO2dCQUNmLG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDMUMsZ0JBQWdCO2dCQUNoQixJQUFJLFFBQVE7b0JBQUUsUUFBUSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNoRjtTQUNEO1FBQ0QsT0FBTyxtQkFBbUIsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLG9CQUFvQixDQUFDLGFBQTJCLEVBQUUsUUFBZTtRQUNoRSxJQUFJLGlCQUFpQixHQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLDJCQUEyQixHQUM5QixhQUFhLENBQUMsMkJBQTJCLENBQUM7UUFDM0MsSUFBSSwyQkFBMkIsSUFBSSwyQkFBMkIsQ0FBQyxNQUFNO1lBQ3BFLCtCQUErQjtZQUMvQixLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVE7Z0JBQzFCLEtBQUssTUFBTSxPQUFPLElBQUksMkJBQTJCO29CQUNoRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTt3QkFDOUIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUM3QixNQUFNO3FCQUNOO1FBQ0osT0FBTyxpQkFBaUIsQ0FBQztJQUMxQixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLG9CQUFvQixDQUNuQixhQUFrQixFQUNsQix5QkFBeUIsRUFDekIsWUFBWSxFQUNaLFdBQXdCLEVBQ3hCLFlBQVksRUFDWixvQkFBNkI7UUFFN0IsSUFBSSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSx5QkFBeUIsRUFBRTtZQUM5Qiw2Q0FBNkM7WUFDN0MsSUFBSSxnQ0FBZ0MsR0FBRyxFQUFFLENBQUM7WUFFMUMsdUJBQXVCO1lBQ3ZCLElBQUksdUJBQXVCLEdBQVksS0FBSyxDQUFDO1lBQzdDLElBQUksMkJBQTJCLEdBQzlCLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQztZQUMzQyxJQUFJLDJCQUEyQixJQUFJLDJCQUEyQixDQUFDLE1BQU07Z0JBQ3BFLEtBQUssTUFBTSxPQUFPLElBQUksMkJBQTJCO29CQUNoRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUI7d0JBQzVCLFFBQVEsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTs0QkFDM0MsS0FBSyxZQUFZLENBQUMsQ0FBQztnQ0FDbEIsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO2dDQUMvQixNQUFNOzZCQUNOO3lCQUNEO1lBQ0osSUFBSSxDQUFDLHVCQUF1QjtnQkFBRSxPQUFPLHFCQUFxQixDQUFDO1lBRTNELDRDQUE0QztZQUM1QyxJQUFJLHlCQUF5QixFQUFFO2dCQUM5QixLQUFLLE1BQU0scUJBQXFCLElBQUkseUJBQXlCLEVBQUU7b0JBQzlELElBQUksT0FBTyxHQUFZLElBQUksQ0FBQztvQkFDNUIsSUFBSSxxQkFBcUIsQ0FBQyxPQUFPLElBQUkscUJBQXFCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTt3QkFDMUUsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO3dCQUNqQixJQUFJOzRCQUNILElBQUksSUFBSSxHQUFHLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0QkFDakQsSUFBSSxZQUFZO2dDQUNmLEtBQUssTUFBTSxRQUFRLElBQUksWUFBWTtvQ0FDbEMsS0FBSyxNQUFNLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSTt3Q0FDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQzFELE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUN0RCxxQkFBcUIsQ0FBQyxJQUFJLEVBQzFCLHFCQUFxQixDQUFDLE9BQU8sRUFDN0IsSUFBSSxDQUNKLENBQUM7NEJBQ0YsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUMzQixJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7Z0NBQ3BCLE9BQU8sR0FBRyxLQUFLLENBQUM7NkJBQ2hCO3lCQUNEO3dCQUFDLE9BQU8sS0FBSyxFQUFFOzRCQUNmLE9BQU8sR0FBRyxLQUFLLENBQUM7eUJBQ2hCO3FCQUNEO29CQUNELElBQUksT0FBTyxFQUFFO3dCQUNaLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO3FCQUM3RDtpQkFDRDthQUNEO1lBRUQsZ0NBQWdDO1lBQ2hDLElBQUksZ0NBQWdDLEVBQUU7Z0JBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQ0FBZ0MsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ2pFLElBQUkscUJBQXFCLEdBQUcsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLElBQUksUUFBUSxHQUFhLElBQUksQ0FBQyw0QkFBNEIsQ0FDekQscUJBQXFCLENBQUMsRUFBRSxFQUN4QixZQUFZLEVBQ1osV0FBVyxDQUFDLEVBQUUsQ0FDZCxDQUFDO29CQUNGLElBQUksb0JBQW9CLEVBQUU7d0JBQ3pCLElBQ0MsQ0FBQyxDQUFDLFFBQVE7NEJBQ1QsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDOzRCQUM5QyxJQUFJLENBQUMsMkJBQTJCLENBQy9CLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osUUFBUSxDQUNSLENBQUM7NEJBQ0gscUJBQXFCLENBQUMsUUFBUSxFQUM3Qjs0QkFDRCxJQUFJLENBQUMsK0JBQStCLENBQ25DLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gscUJBQXFCLENBQ3JCLENBQUM7eUJBQ0Y7cUJBQ0Q7eUJBQU07d0JBQ04sSUFBSSxRQUFRLEVBQUU7NEJBQ2IsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQyxTQUFTLEVBQUU7Z0NBQy9DLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzs2QkFDckM7eUJBQ0Q7NkJBQU07NEJBQ04sSUFBSSxDQUFDLCtCQUErQixDQUNuQyxxQkFBcUIsRUFDckIsV0FBVyxFQUNYLHFCQUFxQixDQUNyQixDQUFDO3lCQUNGO3FCQUNEO2lCQUNEO2FBQ0Q7U0FDRDtRQUNELE9BQU8scUJBQXFCLENBQUM7SUFDOUIsQ0FBQztJQUVPLCtCQUErQixDQUN0QyxxQkFBcUIsRUFDckIsV0FBVyxFQUNYLHFCQUFxQjtRQUVyQixJQUFJLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzlCLFFBQVEsQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxRQUFRLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztRQUN2RCxRQUFRLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDMUMsUUFBUSxDQUFDLHVCQUF1QixHQUFHLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztRQUM1RCxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUMxQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELDJDQUEyQztJQUNuQyw0QkFBNEIsQ0FDbkMsdUJBQStCLEVBQy9CLElBQXFCLEVBQ3JCLGFBQXFCO1FBRXJCLElBQUksSUFBSTtZQUNQLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSTtnQkFDMUIsSUFDQyxRQUFRLENBQUMsdUJBQXVCLEtBQUssdUJBQXVCO29CQUM1RCxRQUFRLENBQUMsYUFBYSxLQUFLLGFBQWE7b0JBRXhDLE9BQU8sUUFBUSxDQUFDO1FBRW5CLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELG9FQUFvRTtJQUM1RCw2QkFBNkIsQ0FDcEMsYUFBa0IsRUFDbEIsVUFBZSxFQUNmLFVBQXdCLEVBQ3hCLGFBQWE7UUFFYixJQUFJLFVBQVU7WUFDYixLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVU7Z0JBQzlCLElBQ0MsTUFBTSxDQUFDLEdBQUcsSUFBSSxVQUFVO29CQUN4QixhQUFhLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxhQUFhO29CQUNoRCxNQUFNLENBQUMsYUFBYSxJQUFJLGFBQWEsRUFDcEM7b0JBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQzlEO1FBRUgsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELDhCQUE4QjtJQUN0QixjQUFjLENBQUMsTUFBVyxFQUFFLGFBQWtCLEVBQUUsSUFBUztRQUNoRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUM1RCx1Q0FBdUM7WUFDdkMsT0FBTztnQkFDTixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsSUFBSTtnQkFDVixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsS0FBSyxFQUFFLFlBQVksQ0FBQyxTQUFTO2FBQzdCLENBQUM7YUFDRSxJQUNKLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsSUFBSSxJQUFJLEtBQUssZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBQ3hFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxjQUFjO1lBRXpELGlEQUFpRDtZQUNqRCxPQUFPO2dCQUNOLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxJQUFJO2dCQUNWLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixLQUFLLEVBQUUsWUFBWSxDQUFDLHVCQUF1QjthQUMzQyxDQUFDO2FBQ0UsSUFDSixJQUFJLEtBQUssZ0JBQWdCLENBQUMsU0FBUztZQUNuQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFFaEQsMENBQTBDO1lBQzFDLE9BQU87Z0JBQ04sTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLEtBQUssRUFBRSxZQUFZLENBQUMsZUFBZTthQUNuQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRU8sd0JBQXdCLENBQUMsYUFBa0IsRUFBRSxJQUFTLEVBQUUsTUFBVztRQUMxRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQzlELHVDQUF1QztZQUN2QyxPQUFPO2dCQUNOLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxJQUFJO2dCQUNWLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixLQUFLLEVBQUUsWUFBWSxDQUFDLFNBQVM7YUFDN0IsQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGFBQWE7UUFDbEUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCwyQ0FBMkM7SUFDbkMsa0JBQWtCLENBQ3pCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsYUFBYSxFQUNiLGFBQWM7UUFFZCxJQUFJLG1CQUFtQixHQUFVLEVBQUUsQ0FBQztRQUNwQyxJQUFJLGlCQUFpQixFQUFFO1lBQ3RCLElBQUkseUJBQXlCLEdBQVksS0FBSyxDQUFDO1lBQy9DLElBQUksNkJBQTZCLEdBQVksS0FBSyxDQUFDO1lBQ25ELElBQUksYUFBYSxFQUFFO2dCQUNsQixJQUFJLDJCQUEyQixHQUM5QixhQUFhLENBQUMsMkJBQTJCLENBQUM7Z0JBQzNDLElBQUksMkJBQTJCLElBQUksMkJBQTJCLENBQUMsTUFBTTtvQkFDcEUsS0FBSyxNQUFNLE9BQU8sSUFBSSwyQkFBMkI7d0JBQ2hELElBQUksT0FBTyxDQUFDLGlCQUFpQjs0QkFDNUIsUUFBUSxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFO2dDQUMzQyxLQUFLLG1CQUFtQixDQUFDLENBQUM7b0NBQ3pCLHlCQUF5QixHQUFHLElBQUksQ0FBQztvQ0FDakMsTUFBTTtpQ0FDTjtnQ0FDRCxLQUFLLDBCQUEwQixDQUFDLENBQUM7b0NBQ2hDLDZCQUE2QixHQUFHLElBQUksQ0FBQztvQ0FDckMsTUFBTTtpQ0FDTjs2QkFDRDthQUNKO2lCQUFNO2dCQUNOLHlCQUF5QixHQUFHLElBQUksQ0FBQztnQkFDakMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO2FBQ3JDO1lBRUQsaUNBQWlDO1lBQ2pDLEtBQUssTUFBTSxhQUFhLElBQUksaUJBQWlCLEVBQUU7Z0JBQzlDLHNCQUFzQjtnQkFDdEIsSUFBSSxhQUFhLENBQUMsa0JBQWtCLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLE9BQU87b0JBQzNFLFNBQVM7Z0JBQ1YsZUFBZTtnQkFDZixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQ3pELGFBQWEsRUFDYixnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3RCLFVBQVUsRUFDVixhQUFhLENBQ2IsQ0FBQztnQkFDRixJQUFJLGVBQWUsSUFBSSx5QkFBeUI7b0JBQy9DLG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDM0MsMkRBQTJEO2dCQUMzRCxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRTtvQkFDdEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQzdELGFBQWEsRUFDYixnQkFBZ0IsQ0FBQyxTQUFTLEVBQzFCLFVBQVUsRUFDVixhQUFhLENBQ2IsQ0FBQztvQkFDRixJQUFJLG1CQUFtQixJQUFJLDZCQUE2Qjt3QkFDdkQsbUJBQW1CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQy9DO2FBQ0Q7U0FDRDtRQUNELE9BQU8sbUJBQW1CLENBQUM7SUFDNUIsQ0FBQztJQUVELHlDQUF5QztJQUNqQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLGFBQWE7UUFDakUsSUFBSSxpQkFBaUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsSUFBSSxRQUFRLEVBQUU7WUFDYix3QkFBd0I7WUFDeEIsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUU7Z0JBQzVCLHlDQUF5QztnQkFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUNwRCxZQUFZLEVBQ1osSUFBSSxDQUFDLEVBQUUsRUFDUCxhQUFhLENBQ2IsQ0FBQztnQkFFRixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUM1QixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFFN0Qsb0RBQW9EO29CQUNwRCxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7b0JBQ3hCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO3dCQUMzQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLFVBQVUsRUFBRTs0QkFDbEUsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUU7Z0NBQ25DLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQ0FDekMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQ0FDL0IsTUFBTTtpQ0FDTjs2QkFDRDt5QkFDRDtxQkFDRDtvQkFFRCxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFO3dCQUM1Qyx1QkFBdUI7d0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxjQUFjLENBQUMsQ0FBQzt3QkFDeEUsMkJBQTJCO3dCQUMzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7NEJBQ3RCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTs0QkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7NEJBQ2hCLE1BQU0sRUFBRSxNQUFNOzRCQUNkLE1BQU0sRUFBRSxLQUFLO3lCQUNiLENBQUMsQ0FBQztxQkFDSDtpQkFDRDtxQkFBTTtvQkFDTiw4QkFBOEI7b0JBQzlCLGlDQUFpQztvQkFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUNoRCxZQUFZLEVBQ1osSUFBSSxDQUFDLEVBQUUsRUFDUCxhQUFhLENBQ2IsQ0FBQztvQkFDRixnREFBZ0Q7b0JBQ2hELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQywyQkFBMkIsQ0FDeEQsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQ0osQ0FBQztvQkFDRixJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO3dCQUNwQyx1QkFBdUI7d0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDcEUsMkJBQTJCO3dCQUMzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7NEJBQ3RCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTs0QkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7NEJBQ2hCLE1BQU0sRUFBRSxNQUFNOzRCQUNkLE1BQU0sRUFBRSxLQUFLO3lCQUNiLENBQUMsQ0FBQztxQkFDSDtpQkFDRDthQUNEO1NBQ0Q7UUFDRCxPQUFPLGlCQUFpQixDQUFDO0lBQzFCLENBQUM7SUFFRCxzREFBc0Q7SUFDOUMsaUNBQWlDLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxhQUFhO1FBQzVFLElBQUksWUFBWSxJQUFJLE1BQU0sSUFBSSxhQUFhO1lBQzFDLEtBQUssTUFBTSxJQUFJLElBQUksWUFBWTtnQkFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLGFBQWE7b0JBQy9ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxzREFBc0Q7SUFDOUMsK0JBQStCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxhQUFhO1FBQzFFLElBQUksWUFBWSxJQUFJLE1BQU0sSUFBSSxhQUFhO1lBQzFDLEtBQUssTUFBTSxJQUFJLElBQUksWUFBWTtnQkFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLGFBQWE7b0JBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JGLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELDRCQUE0QixDQUMzQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLGFBQWEsRUFDYixhQUFhO1FBRWIsSUFBSSxtQkFBbUIsR0FBVSxFQUFFLENBQUM7UUFDcEMsSUFBSSxpQkFBaUIsRUFBRTtZQUN0QixJQUFJLHlCQUF5QixHQUFZLEtBQUssQ0FBQztZQUMvQyxJQUFJLGFBQWEsRUFBRTtnQkFDbEIsSUFBSSwyQkFBMkIsR0FDOUIsYUFBYSxDQUFDLDJCQUEyQixDQUFDO2dCQUMzQyxJQUFJLDJCQUEyQixJQUFJLDJCQUEyQixDQUFDLE1BQU07b0JBQ3BFLEtBQUssTUFBTSxPQUFPLElBQUksMkJBQTJCO3dCQUNoRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUI7NEJBQzVCLFFBQVEsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtnQ0FDM0MsS0FBSyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQ0FDekMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO29DQUNqQyxNQUFNO2lDQUNOOzZCQUNEO2FBQ0o7aUJBQU07Z0JBQ04seUJBQXlCLEdBQUcsSUFBSSxDQUFDO2FBQ2pDO1lBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUNwRCxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFDcEIsZ0JBQWdCLENBQUMsS0FBSyxFQUN0QixVQUFVLENBQUMsQ0FBQyxDQUFDLENBQ2IsQ0FBQztZQUNGLElBQUksZUFBZSxJQUFJLHlCQUF5QjtnQkFDL0MsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxtQkFBbUIsQ0FBQztJQUM1QixDQUFDO0lBRUQsMkJBQTJCLENBQzFCLGNBQXFDLEVBQ3JDLFlBQW1CLEVBQ25CLFFBQWtCO1FBRWxCLElBQ0MsY0FBYyxDQUFDLHVCQUF1QjtZQUN0QyxjQUFjLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDaEQ7WUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM5QixJQUFJLFlBQVk7Z0JBQ2YsS0FBSyxNQUFNLFFBQVEsSUFBSSxZQUFZO29CQUNsQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJO3dCQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUMxRCxjQUFjLENBQUMsSUFBSSxFQUNuQixjQUFjLENBQUMsdUJBQXVCLEVBQ3RDLElBQUksQ0FDSixDQUFDO1lBQ0YsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNCLElBQUksTUFBTSxFQUFFO2dCQUNYLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRXJDLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUMxQyxrQ0FBa0M7b0JBQ2xDLElBQUksQ0FBQyxRQUFRLElBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRTt3QkFDakUsT0FBTyxJQUFJLENBQUM7cUJBQ1o7aUJBQ0Q7YUFDRDtTQUNEO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDOzttSEE3b0JXLHNCQUFzQixrQkFLekIsYUFBYTt1SEFMVixzQkFBc0IsY0FGdEIsTUFBTTsyRkFFTixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFNRSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEVtYWlsU2VydmljZSB9IGZyb20gJy4vZW1haWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEludGVyYWN0aW9uQXBwbGljYXRpb25Vc2VyU2VydmljZSB9IGZyb20gJy4vaW50ZXJhY3Rpb24tYXBwbGljYXRpb24tdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuXHRBcHBsaWNhdGlvbixcclxuXHRCdWRnZXREYXRhLFxyXG5cdENvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRTZW5kQXBwbGljYXRpb24sXHJcblx0RVRpcG9QcmVzdXB1ZXN0byxcclxuXHRFQnVkZ2V0QnVpbGRUeXBlLFxyXG5cdEVCdWRnZXRFcnJvcixcclxuXHREb2N1bWVudCxcclxuXHRFRG9jdW1lbnRTdGF0ZSxcclxuXHRFbWFpbCxcclxuXHRJbnRlcmFjdGlvbkFwcGxpY2F0aW9uVXNlcixcclxuXHRQbGlDbmZTdGF0dXNGbG93SW50ZXJhY3Rpb24sXHJcblx0RVR5cGVTdGF0aWNJbnRlcmFjdGlvbixcclxuXHRQbGlDbmZTdGF0dXMsXHJcblx0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24sXHJcblx0QXV0aGVudGljYXRpb25VdGlsLFxyXG5cdEVDbmZQYWdlU2VjdGlvblxyXG59IGZyb20gJ25nLXBsaS11dGlsJztcclxuaW1wb3J0IHsgRm9ybWlvVXRpbCB9IGZyb20gJy4uL3V0aWxzL2Zvcm1pby11dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbmRBcHBsaWNhdGlvblNlcnZpY2Uge1xyXG5cdC8qKiBUaGlzIG9ic2VydmFibGUgYWxsb3dzIHRvIGdldCB0aGUgcG9yY2VudGFnZSAqL1xyXG5cdHByaXZhdGUgcGVyY2VudGFnZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0QEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50LFxyXG5cdFx0cHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcclxuXHRcdHByaXZhdGUgZW1haWxTZXJ2aWNlOiBFbWFpbFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGludGVyYWN0aW9uQXBwbGljYXRpb25Vc2VyU2VydmljZTogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXJTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHQvKiogIEl0IGhhcyBhbiBvYnNlcnZhYmxlIHRvIG5vdGlmeSBpZiB0aGUgcGVyY2VudGFnZSBpcyBjaGFuZ2VkICovXHJcblx0cHVibGljIG9uQ2hhbmdlUGVyY2VudGFnZSgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG5cdFx0cmV0dXJuIHRoaXMucGVyY2VudGFnZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0fVxyXG5cclxuXHQvKiogaXQgZGVmaW5lcyB0aGUgdmFsdWUgZm9yIHBlcmNlbnRhZ2UgKi9cclxuXHRwdWJsaWMgc2V0UGVyY2VudGFnZShjdXJyZW50OiBudW1iZXIsIHRvdGFsOiBudW1iZXIpIHtcclxuXHRcdGlmIChjdXJyZW50ICYmIHRvdGFsKSB7XHJcblx0XHRcdGNvbnN0IHBlcmNlbnRhZ2UgPSAoY3VycmVudCAvIHRvdGFsKSAqIDEwMDtcclxuXHRcdFx0dGhpcy5wZXJjZW50YWdlU3ViamVjdC5uZXh0KHBlcmNlbnRhZ2UpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5yZXNldFBlcmNlbnRhZ2UoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXNldHMgdGhlIHBlcmNlbnRhZ2UgKi9cclxuXHRwdWJsaWMgcmVzZXRQZXJjZW50YWdlKCkge1xyXG5cdFx0dGhpcy5wZXJjZW50YWdlU3ViamVjdC5uZXh0KDApO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSXQgc2VuZCBlbWFpbCBtYXNpdmVseVxyXG5cdCAqIEBwYXJhbSBhcHBsaWNhdGlvblxyXG5cdCAqIEBwYXJhbSBpIGN1cnJlbnQgaWRuZXhcclxuXHQgKiBAcGFyYW0gbGVuZ3RoIGxlbmd0aFxyXG5cdCAqIEBwYXJhbSBzZW5kQXBwbGljYXRpb25cclxuXHQgKi9cclxuXHRzZW5kRW1haWxNYXNzaXZlbHkoYXBwbGljYXRpb246IEFwcGxpY2F0aW9uKSB7XHJcblx0XHRsZXQgZW1haWw6IEVtYWlsID0gbmV3IEVtYWlsKCk7XHJcblx0XHRlbWFpbC5hZGRUbygncHJ1ZWJhY29udm9AYmVuLmNvbGZ1dHVyby5vcmcnKTtcclxuXHRcdC8vIHVuY29tbWVudCB3aGVuIHRoZSBlbnZpcm9ubWVudFxyXG5cdFx0ZW1haWwuc2V0U3ViamVjdCgnRW52w61vIGRlIHNvbGljaXR1ZCAnICsgYXBwbGljYXRpb24uaWQpO1xyXG5cdFx0ZW1haWwuc2V0Qm9keSgnQ29yZGlhbCBzYWx1ZG8sIDxici8+SGVtb3MgZW52aWFkbyBsYSBzb2xpY2l0dWQgJyArIGFwcGxpY2F0aW9uLmlkKTtcclxuXHRcdHJldHVybiB0aGlzLmVtYWlsU2VydmljZS5zZW5kKGVtYWlsKTtcclxuXHR9XHJcblxyXG5cdC8qKiBTZW5kIGVtYWlsIGFwcGxpY2F0aW9uICovXHJcblx0c2VuZEVtYWlsKGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbikge1xyXG5cdFx0bGV0IGVtYWlsOiBFbWFpbCA9IG5ldyBFbWFpbCgpO1xyXG5cdFx0ZW1haWwuYWRkVG8oJ3BydWViYWNvbnZvQGJlbi5jb2xmdXR1cm8ub3JnJyk7XHJcblx0XHQvLyB1bmNvbW1lbnQgd2hlbiB0aGUgZW52aXJvbm1lbnRcclxuXHRcdGVtYWlsLnNldFN1YmplY3QoJ0VudsOtbyBkZSBzb2xpY2l0dWQgJyArIGFwcGxpY2F0aW9uLmlkKTtcclxuXHRcdGVtYWlsLnNldEJvZHkoJ0NvcmRpYWwgc2FsdWRvLCA8YnIvPkhhcyBlbnZpYWRvIGxhIHNvbGljaXR1ZCAnICsgYXBwbGljYXRpb24uaWQpO1xyXG5cdFx0cmV0dXJuIHRoaXMuZW1haWxTZXJ2aWNlLnNlbmQoZW1haWwpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIHRoZSBpbnRlcmFjdGlvbiAqL1xyXG5cdHNhdmVJbnRlcmFjdGlvbihcclxuXHRcdGFwcGxpY2F0aW9uSWQ6IHN0cmluZyxcclxuXHRcdHByb21Db2RpZ286IG51bWJlcixcclxuXHRcdHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbjogUGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLFxyXG5cdFx0b2JzZXJ2YXRpb24/OiBzdHJpbmdcclxuXHQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0bGV0IGludGVyYWN0aW9uQXBwVXNlcjogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIgPSBuZXcgSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIoKTtcclxuXHRcdGludGVyYWN0aW9uQXBwVXNlci5hcHBsaWNhdGlvbklkID0gYXBwbGljYXRpb25JZDtcclxuXHRcdGludGVyYWN0aW9uQXBwVXNlci5wcm9tQ29kaWdvID0gcHJvbUNvZGlnbztcclxuXHJcblx0XHRpZiAoXHJcblx0XHRcdHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5wbGlDbmZJbnRlcmFjdGlvbiAmJlxyXG5cdFx0XHRwbGlDbmZTdGF0dXNGbG93SW50ZXJhY3Rpb24ucGxpQ25mSW50ZXJhY3Rpb24uaWRcclxuXHRcdClcclxuXHRcdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaUNuZkludGVyYWN0aW9uSWQgPVxyXG5cdFx0XHRcdHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5wbGlDbmZJbnRlcmFjdGlvbi5pZDtcclxuXHRcdGlmIChcclxuXHRcdFx0cGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLnBsaUNuZlN0YXR1c0Zsb3cgJiZcclxuXHRcdFx0cGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLnBsaUNuZlN0YXR1c0Zsb3cuaWRcclxuXHRcdClcclxuXHRcdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaUNuZlN0YXR1c0Zsb3dJZCA9IHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5wbGlDbmZTdGF0dXNGbG93LmlkO1xyXG5cdFx0aWYgKHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5pZClcclxuXHRcdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbklkID0gcGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLmlkO1xyXG5cclxuXHRcdGludGVyYWN0aW9uQXBwVXNlci5pbnRlcmFjdGlvblN0YXRpY0lkID0gRVR5cGVTdGF0aWNJbnRlcmFjdGlvbi5TRU5EX0FQUExJQ0FUSU9OO1xyXG5cdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaVVzZXJJZCA9IEF1dGhlbnRpY2F0aW9uVXRpbC5nZXRQbGlVc3VhcmlvKClcclxuXHRcdFx0PyBBdXRoZW50aWNhdGlvblV0aWwuZ2V0UGxpVXN1YXJpbygpLnVzdUNvZGlnb1xyXG5cdFx0XHQ6IG51bGw7XHJcblx0XHRpbnRlcmFjdGlvbkFwcFVzZXIucG9zaXRpdmUgPSB0cnVlO1xyXG5cdFx0aW50ZXJhY3Rpb25BcHBVc2VyLm9ic2VydmF0aW9uID0gb2JzZXJ2YXRpb24gPyBvYnNlcnZhdGlvbiA6ICdFbnbDrW8gZGUgc29saWNpdHVkJztcclxuXHRcdHJldHVybiB0aGlzLmludGVyYWN0aW9uQXBwbGljYXRpb25Vc2VyU2VydmljZS5zYXZlKGludGVyYWN0aW9uQXBwVXNlcik7XHJcblx0fVxyXG5cclxuXHRzYXZlSW50ZXJhY3Rpb25JbmZvcm1hdGlvbihcclxuXHRcdGludGVyYWN0aW9uQXBwVXNlcjogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIsXHJcblx0XHRyZXNvbHZlOiBhbnksXHJcblx0XHRyZWplY3Q6IGFueVxyXG5cdCkge1xyXG5cdFx0dGhpcy5pbnRlcmFjdGlvbkFwcGxpY2F0aW9uVXNlclNlcnZpY2Uuc2F2ZShpbnRlcmFjdGlvbkFwcFVzZXIpLnN1YnNjcmliZShcclxuXHRcdFx0KHJlc3VsdDogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIpID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKHJlc3VsdCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXHJcblx0XHRcdFx0XHQnRVJST1IgLSBzYXZlSW50ZXJhY3Rpb24gLSBpbnRlcmFjdGlvbkFwcGxpY2F0aW9uVXNlclNlcnZpY2Uuc2F2ZSAnLFxyXG5cdFx0XHRcdFx0ZXJyb3JcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHJlamVjdChlcnJvcik7XHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJdCB2YWxpZGF0ZXMgdGhlIGRhdGFcclxuXHQgKiBAcGFyYW0gbGlzdEFwcGxpY2F0aW9uXHJcblx0ICogQHBhcmFtIGxpc3RGb3JtXHJcblx0ICogQHBhcmFtIGxpc3REYXRhRm9ybVxyXG5cdCAqIEBwYXJhbSBsaXN0QnVkZ2V0U2V0dGluZ1xyXG5cdCAqIEBwYXJhbSBsaXN0QnVkZ2V0XHJcblx0ICogQHBhcmFtIGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnRcclxuXHQgKiBAcGFyYW0gbGlzdERvY3VtZW50XHJcblx0ICogQHBhcmFtIHZhbGlkYXRlSnVzdFJlcXVpcmVkIGVnLiB3aGVuIHRoZSBzY3JlZXJuIHJlcXVpcmUgZ2V0IGp1c3QgcmVxdWlyZSBkb2N1bWVudHMgKHNlbmQgYXBwbGljYXRpb24pXHJcblx0ICovXHJcblx0cHVibGljIHZhbGlkYXRlKFxyXG5cdFx0bGlzdFRvdGFsU3RhdHVzOiBQbGlDbmZTdGF0dXNbXSxcclxuXHRcdGxpc3RBcHBsaWNhdGlvbjogQXBwbGljYXRpb25bXSxcclxuXHRcdGxpc3RGb3JtOiBhbnlbXSxcclxuXHRcdGxpc3REYXRhRm9ybTogYW55W10sXHJcblx0XHRsaXN0QnVkZ2V0U2V0dGluZzogYW55W10sXHJcblx0XHRsaXN0QnVkZ2V0OiBCdWRnZXREYXRhW10sXHJcblx0XHRsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50OiBDb25maWd1cmF0aW9uRG9jdW1lbnRbXSxcclxuXHRcdGxpc3REb2N1bWVudDogRG9jdW1lbnRbXSxcclxuXHRcdGNhbGxiYWNrOiBhbnksXHJcblx0XHR2YWxpZGF0ZUp1c3RSZXF1aXJlZDogYm9vbGVhbixcclxuXHRcdHZhbGlkYXRlU3VtbWFyaXplZEJ1ZGdldD86IGJvb2xlYW5cclxuXHQpOiBBcnJheTxTZW5kQXBwbGljYXRpb24+IHtcclxuXHRcdGxldCBsaXN0U2VuZEFwcGxpY2F0aW9uOiBBcnJheTxTZW5kQXBwbGljYXRpb24+ID0gW107XHJcblx0XHQvLyByZXNldCBwZXJjZW50YWdlXHJcblx0XHQvLyB0aGlzLnJlc2V0UGVyY2VudGFnZSgpO1xyXG5cdFx0aWYgKGxpc3RBcHBsaWNhdGlvbiAmJiBsaXN0QXBwbGljYXRpb24ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQvLyBpdGVyYXRlIG92ZXIgbGlzdEFwcGxpY2F0aW9uXHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEFwcGxpY2F0aW9uLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0Ly8gZGVmaW5lIGFwcGxpY2F0aW9uXHJcblx0XHRcdFx0Y29uc3QgYXBwbGljYXRpb24gPSBsaXN0QXBwbGljYXRpb25baV07XHJcblx0XHRcdFx0Ly8gY3JlYXRlIHNlbmQgYXBwbGljYXRpb24gb2JqZWN0XHJcblx0XHRcdFx0bGV0IHNlbmRBcHBsaWNhdGlvbjogU2VuZEFwcGxpY2F0aW9uID0gbmV3IFNlbmRBcHBsaWNhdGlvbigpO1xyXG5cdFx0XHRcdC8vIGRlZmluZSBhcHBsaWNhdGlvbklkXHJcblx0XHRcdFx0c2VuZEFwcGxpY2F0aW9uLmFwcGxpY2F0aW9uSWQgPSBhcHBsaWNhdGlvbi5pZDtcclxuXHJcblx0XHRcdFx0bGV0IGN1cnJlbnRTdGF0dXM6IGFueSA9IFtdO1xyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdGxpc3RUb3RhbFN0YXR1cyAmJlxyXG5cdFx0XHRcdFx0bGlzdFRvdGFsU3RhdHVzLmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0YXBwbGljYXRpb24uc3RhdGVJZCAmJlxyXG5cdFx0XHRcdFx0bGlzdEZvcm0gJiZcclxuXHRcdFx0XHRcdGxpc3RGb3JtLmxlbmd0aFxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHRcdC8vIGdldCB0aGUgbGlzdCBwYWdlIHNlY3Rpb24gYWNjb3JkaW5nIHRvIHN0YXR1c0lkXHJcblx0XHRcdFx0XHRmb3IgKGNvbnN0IHN0YXR1cyBvZiBsaXN0VG90YWxTdGF0dXMpXHJcblx0XHRcdFx0XHRcdGlmIChzdGF0dXMuaWQgPT0gYXBwbGljYXRpb24uc3RhdGVJZCkge1xyXG5cdFx0XHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMgPSBzdGF0dXM7XHJcblx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gZGVmaW5lIHRoZSBsaXN0Rm9ybSB0aGF0IGNhbiBiZSB2YWxkaWF0ZWQgYWNjb3JkaW5nIHRvIHN0YXR1c1xyXG5cdFx0XHRcdGNvbnN0IGxpc3RGb3JtQWN0aXZhdGVkID0gdGhpcy5nZXRMaXN0Rm9ybXNCeVN0YXR1cyhjdXJyZW50U3RhdHVzLCBsaXN0Rm9ybSk7XHJcblx0XHRcdFx0Ly8gZ2V0IHZhbGlkYXRlZCBsaXN0IGZvcm1cclxuXHRcdFx0XHRzZW5kQXBwbGljYXRpb24ubGlzdFZhbGlkYXRlZEZvcm0gPSB0aGlzLmdldFZhbGlkYXRlZEZvcm1MaXN0KFxyXG5cdFx0XHRcdFx0bGlzdEZvcm1BY3RpdmF0ZWQsXHJcblx0XHRcdFx0XHRsaXN0RGF0YUZvcm0sXHJcblx0XHRcdFx0XHRzZW5kQXBwbGljYXRpb24uYXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdC8vIGdldCB2YWxpZGF0ZWQgbGlzdCBidWRnZXRcclxuXHRcdFx0XHRpZiAoIXZhbGlkYXRlU3VtbWFyaXplZEJ1ZGdldCkge1xyXG5cdFx0XHRcdFx0c2VuZEFwcGxpY2F0aW9uLmxpc3RWYWxpZGF0ZWRCdWRnZXQgPSB0aGlzLmdldFZhbGlkYXRlZEJ1ZGdldChcclxuXHRcdFx0XHRcdFx0bGlzdEJ1ZGdldFNldHRpbmcsXHJcblx0XHRcdFx0XHRcdGxpc3RCdWRnZXQsXHJcblx0XHRcdFx0XHRcdHNlbmRBcHBsaWNhdGlvbi5hcHBsaWNhdGlvbklkLFxyXG5cdFx0XHRcdFx0XHRjdXJyZW50U3RhdHVzXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRzZW5kQXBwbGljYXRpb24ubGlzdFZhbGlkYXRlZEJ1ZGdldCA9IHRoaXMuZ2V0VmFsaWRhdGVkQnVkZ2V0U3VtbWFyaXplZChcclxuXHRcdFx0XHRcdFx0bGlzdEJ1ZGdldFNldHRpbmcsXHJcblx0XHRcdFx0XHRcdGxpc3RCdWRnZXQsXHJcblx0XHRcdFx0XHRcdHNlbmRBcHBsaWNhdGlvbi5hcHBsaWNhdGlvbklkLFxyXG5cdFx0XHRcdFx0XHRjdXJyZW50U3RhdHVzXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gZ2V0IHZhbGlkYXRlZCBsaXN0IGRvY3VtZW50XHJcblx0XHRcdFx0c2VuZEFwcGxpY2F0aW9uLmxpc3RWYWxpZGF0ZWREb2N1bWVudCA9IHRoaXMuZ2V0VmFsaWRhdGVkRG9jdW1lbnQoXHJcblx0XHRcdFx0XHRjdXJyZW50U3RhdHVzLFxyXG5cdFx0XHRcdFx0bGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRcdFx0XHRcdGxpc3REb2N1bWVudCxcclxuXHRcdFx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHRcdFx0bGlzdERhdGFGb3JtLFxyXG5cdFx0XHRcdFx0dmFsaWRhdGVKdXN0UmVxdWlyZWRcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHQvLyByZXNvbHZlIHZhbGlkYXRpb24gLSBubyBsaXN0VmFsaWRhdGVkRG9jIC0gIGxpc3RWYWxpZGF0ZWRCdWRnZXQgLSBsaXN0VmFsaWRhdGVkRm9ybVxyXG5cdFx0XHRcdHNlbmRBcHBsaWNhdGlvbi52YWxpZGF0aW9uID1cclxuXHRcdFx0XHRcdCFzZW5kQXBwbGljYXRpb24ubGlzdFZhbGlkYXRlZERvY3VtZW50Lmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0IXNlbmRBcHBsaWNhdGlvbi5saXN0VmFsaWRhdGVkQnVkZ2V0Lmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0IXNlbmRBcHBsaWNhdGlvbi5saXN0VmFsaWRhdGVkRm9ybS5sZW5ndGg7XHJcblx0XHRcdFx0Ly8gYWRkIHRvIGFycmF5XHJcblx0XHRcdFx0bGlzdFNlbmRBcHBsaWNhdGlvbi5wdXNoKHNlbmRBcHBsaWNhdGlvbik7XHJcblx0XHRcdFx0Ly8gY2FsbCBjYWxsYmFja1xyXG5cdFx0XHRcdGlmIChjYWxsYmFjaykgY2FsbGJhY2soc2VuZEFwcGxpY2F0aW9uLCBhcHBsaWNhdGlvbiwgaSwgbGlzdEFwcGxpY2F0aW9uLmxlbmd0aCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBsaXN0U2VuZEFwcGxpY2F0aW9uO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgdGhlIGZvcm1zIHRoYXQgYXJlIGFjdGl2YXRlZCBhY2NvcmRpbmcgdG8gc3RhdHVzICovXHJcblx0Z2V0TGlzdEZvcm1zQnlTdGF0dXMoY3VycmVudFN0YXR1czogUGxpQ25mU3RhdHVzLCBsaXN0Rm9ybTogYW55W10pOiBhbnlbXSB7XHJcblx0XHRsZXQgbGlzdEFjdGl2YXRlZEZvcm06IGFueVtdID0gW107XHJcblx0XHRsZXQgbGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uOiBQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbltdID1cclxuXHRcdFx0Y3VycmVudFN0YXR1cy5saXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb247XHJcblx0XHRpZiAobGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uICYmIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbi5sZW5ndGgpXHJcblx0XHRcdC8vIGZpbGwgdGhlIGxpc3QgYWN0aXZhdGVkIGZvcm1cclxuXHRcdFx0Zm9yIChjb25zdCBmb3JtIG9mIGxpc3RGb3JtKVxyXG5cdFx0XHRcdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24pXHJcblx0XHRcdFx0XHRpZiAoc2VjdGlvbi5pZEZvcm0gPT0gZm9ybS5pZCkge1xyXG5cdFx0XHRcdFx0XHRsaXN0QWN0aXZhdGVkRm9ybS5wdXNoKGZvcm0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdHJldHVybiBsaXN0QWN0aXZhdGVkRm9ybTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSB2YWxpZGF0ZWQgZG9jdW1lbnQgbGlzdCAqL1xyXG5cdGdldFZhbGlkYXRlZERvY3VtZW50KFxyXG5cdFx0Y3VycmVudFN0YXR1czogYW55LFxyXG5cdFx0bGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRcdGxpc3REb2N1bWVudCxcclxuXHRcdGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbixcclxuXHRcdGxpc3REYXRhRm9ybSxcclxuXHRcdHZhbGlkYXRlSnVzdFJlcXVpcmVkOiBib29sZWFuXHJcblx0KTogYW55W10ge1xyXG5cdFx0bGV0IGxpc3RWYWxpZGF0ZWREb2N1bWVudCA9IFtdO1xyXG5cdFx0aWYgKGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnQpIHtcclxuXHRcdFx0Ly8gaXQgY29udGFpbnMgdGhlIGRvY3VtZW50cyB0aGF0IGFyZSB2aXNpYmxlXHJcblx0XHRcdGxldCBsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50VmlzaWJsZSA9IFtdO1xyXG5cclxuXHRcdFx0Ly9jaGVja0lmU2hvdWxkVmFsaWRhdGVcclxuXHRcdFx0bGV0IHNob3VsZFZhbGlkYXRlRG9jdW1lbnRzOiBib29sZWFuID0gZmFsc2U7XHJcblx0XHRcdGxldCBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb246IFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uW10gPVxyXG5cdFx0XHRcdGN1cnJlbnRTdGF0dXMubGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uO1xyXG5cdFx0XHRpZiAobGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uICYmIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbi5sZW5ndGgpXHJcblx0XHRcdFx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbilcclxuXHRcdFx0XHRcdGlmIChzZWN0aW9uLnBsaUNuZlBhZ2VTZWN0aW9uKVxyXG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHNlY3Rpb24ucGxpQ25mUGFnZVNlY3Rpb24ua2V5TGFiZWwpIHtcclxuXHRcdFx0XHRcdFx0XHRjYXNlICdkb2N1bWVudG9zJzoge1xyXG5cdFx0XHRcdFx0XHRcdFx0c2hvdWxkVmFsaWRhdGVEb2N1bWVudHMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdGlmICghc2hvdWxkVmFsaWRhdGVEb2N1bWVudHMpIHJldHVybiBsaXN0VmFsaWRhdGVkRG9jdW1lbnQ7XHJcblxyXG5cdFx0XHQvLyByZXNvbHZlIHRoZSBjb25maWd1cmF0aW9uIHRoYXQgaXMgdmlzaWJsZVxyXG5cdFx0XHRpZiAobGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudCkge1xyXG5cdFx0XHRcdGZvciAoY29uc3QgY29uZmlndXJhdGlvbkRvY3VtZW50IG9mIGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnQpIHtcclxuXHRcdFx0XHRcdGxldCB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHRcdFx0XHRcdGlmIChjb25maWd1cmF0aW9uRG9jdW1lbnQuZm9ybXVsYSAmJiBjb25maWd1cmF0aW9uRG9jdW1lbnQuZm9ybXVsYS5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0bGV0IGZvcm11bGEgPSAnJztcclxuXHRcdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgZGF0YSA9IHsgc3RhdHVzbmFtZTogYXBwbGljYXRpb24uc3RhdGVOYW1lIH07XHJcblx0XHRcdFx0XHRcdFx0aWYgKGxpc3REYXRhRm9ybSlcclxuXHRcdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgZGF0YUZvcm0gb2YgbGlzdERhdGFGb3JtKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRmb3IgKGNvbnN0IHByb3BlcnR5IGluIGRhdGFGb3JtLmRhdGEpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YVtwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpXSA9IGRhdGFGb3JtLmRhdGFbcHJvcGVydHldO1xyXG5cdFx0XHRcdFx0XHRcdGZvcm11bGEgPSB0aGlzLnRva2VuU2VydmljZS5yZXBsYWNlVG9rZW5zRnJvbUxpc3RPYmplY3QoXHJcblx0XHRcdFx0XHRcdFx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnQubmFtZSxcclxuXHRcdFx0XHRcdFx0XHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudC5mb3JtdWxhLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YVxyXG5cdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHJlc3VsdCA9IGV2YWwoZm9ybXVsYSk7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRcdFx0XHR2aXNpYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICh2aXNpYmxlKSB7XHJcblx0XHRcdFx0XHRcdGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnRWaXNpYmxlLnB1c2goY29uZmlndXJhdGlvbkRvY3VtZW50KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIHJlc29sdmUgdGhlIGxpc3Qgb2YgZG9jdW1lbnRzXHJcblx0XHRcdGlmIChsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50VmlzaWJsZSkge1xyXG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudFZpc2libGUubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGxldCBjb25maWd1cmF0aW9uRG9jdW1lbnQgPSBsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50VmlzaWJsZVtpXTtcclxuXHRcdFx0XHRcdGxldCBkb2N1bWVudDogRG9jdW1lbnQgPSB0aGlzLmdldERvY3VtZW50QnlDb25maWd1cmF0aW9uSWQoXHJcblx0XHRcdFx0XHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudC5pZCxcclxuXHRcdFx0XHRcdFx0bGlzdERvY3VtZW50LFxyXG5cdFx0XHRcdFx0XHRhcHBsaWNhdGlvbi5pZFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGlmICh2YWxpZGF0ZUp1c3RSZXF1aXJlZCkge1xyXG5cdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0KCFkb2N1bWVudCB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0KGRvY3VtZW50ICYmIGRvY3VtZW50Lmxpc3RBcmNoaXZlLmxlbmd0aCA9PSAwKSB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5hdXRvbWF0aWNEb2N1bWVudHNWYWxpZGF0ZWQoXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGlzdERhdGFGb3JtLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkb2N1bWVudFxyXG5cdFx0XHRcdFx0XHRcdFx0KSkgJiZcclxuXHRcdFx0XHRcdFx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnQucmVxdWlyZWRcclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5maWxsTGlzdFZhbGlkYXRlRG9jdW1lbnREZWZhdWx0KFxyXG5cdFx0XHRcdFx0XHRcdFx0bGlzdFZhbGlkYXRlZERvY3VtZW50LFxyXG5cdFx0XHRcdFx0XHRcdFx0YXBwbGljYXRpb24sXHJcblx0XHRcdFx0XHRcdFx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnRcclxuXHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRpZiAoZG9jdW1lbnQpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoZG9jdW1lbnQuc3RhdGUgPT0gRURvY3VtZW50U3RhdGUuUEVORElFTlRFKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkRG9jdW1lbnQucHVzaChkb2N1bWVudCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZmlsbExpc3RWYWxpZGF0ZURvY3VtZW50RGVmYXVsdChcclxuXHRcdFx0XHRcdFx0XHRcdGxpc3RWYWxpZGF0ZWREb2N1bWVudCxcclxuXHRcdFx0XHRcdFx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50XHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGxpc3RWYWxpZGF0ZWREb2N1bWVudDtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZmlsbExpc3RWYWxpZGF0ZURvY3VtZW50RGVmYXVsdChcclxuXHRcdGxpc3RWYWxpZGF0ZWREb2N1bWVudCxcclxuXHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50XHJcblx0KSB7XHJcblx0XHRsZXQgZG9jdW1lbnQgPSBuZXcgRG9jdW1lbnQoKTtcclxuXHRcdGRvY3VtZW50LmFwcGxpY2F0aW9uSWQgPSBhcHBsaWNhdGlvbi5pZDtcclxuXHRcdGRvY3VtZW50LnByb21Db2RpZ28gPSBjb25maWd1cmF0aW9uRG9jdW1lbnQucHJvbUNvZGlnbztcclxuXHRcdGRvY3VtZW50LnN0YXRlID0gRURvY3VtZW50U3RhdGUuUEVORElFTlRFO1xyXG5cdFx0ZG9jdW1lbnQuY29uZmlndXJhdGlvbkRvY3VtZW50SWQgPSBjb25maWd1cmF0aW9uRG9jdW1lbnQuaWQ7XHJcblx0XHRkb2N1bWVudC5saXN0QXJjaGl2ZSA9IFtdO1xyXG5cdFx0bGlzdFZhbGlkYXRlZERvY3VtZW50LnB1c2goZG9jdW1lbnQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IGdldHMgZG9jdW1lbnQgYnkgY29uZmlndXJhdGlvbiBJZCAqL1xyXG5cdHByaXZhdGUgZ2V0RG9jdW1lbnRCeUNvbmZpZ3VyYXRpb25JZChcclxuXHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkOiBudW1iZXIsXHJcblx0XHRsaXN0OiBBcnJheTxEb2N1bWVudD4sXHJcblx0XHRhcHBsaWNhdGlvbklkOiBzdHJpbmdcclxuXHQpOiBEb2N1bWVudCB7XHJcblx0XHRpZiAobGlzdClcclxuXHRcdFx0Zm9yIChjb25zdCBkb2N1bWVudCBvZiBsaXN0KVxyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdGRvY3VtZW50LmNvbmZpZ3VyYXRpb25Eb2N1bWVudElkID09PSBjb25maWd1cmF0aW9uRG9jdW1lbnRJZCAmJlxyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuYXBwbGljYXRpb25JZCA9PT0gYXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHRcdHJldHVybiBkb2N1bWVudDtcclxuXHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8qKiBnZXQgdGhlIGJ1ZGdldCBhcHBsaWNhdGlvbiBieSB0eXBlIGJ1ZGdldCBhbmQgYnVkZ2V0IHNldHVwIGlkICovXHJcblx0cHJpdmF0ZSBnZXRWYWxpZGF0ZWRCdWRnZXRBcHBsaWNhdGlvbihcclxuXHRcdGJ1ZGdldFNldHRpbmc6IGFueSxcclxuXHRcdHR5cGVCdWRnZXQ6IGFueSxcclxuXHRcdGxpc3RCdWRnZXQ6IEJ1ZGdldERhdGFbXSxcclxuXHRcdGFwcGxpY2F0aW9uSWRcclxuXHQpOiBhbnkge1xyXG5cdFx0aWYgKGxpc3RCdWRnZXQpXHJcblx0XHRcdGZvciAoY29uc3QgYnVkZ2V0IG9mIGxpc3RCdWRnZXQpXHJcblx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0YnVkZ2V0LnRhZyA9PSB0eXBlQnVkZ2V0ICYmXHJcblx0XHRcdFx0XHRidWRnZXRTZXR0aW5nLmNwcmVDb2RpZ28gPT0gYnVkZ2V0LmJ1ZGdldFNldHVwSWQgJiZcclxuXHRcdFx0XHRcdGJ1ZGdldC5hcHBsaWNhdGlvbklkID09IGFwcGxpY2F0aW9uSWRcclxuXHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLnZhbGlkYXRlQnVkZ2V0KGJ1ZGdldCwgYnVkZ2V0U2V0dGluZywgdHlwZUJ1ZGdldCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRlQnVkZ2V0KG51bGwsIGJ1ZGdldFNldHRpbmcsIHR5cGVCdWRnZXQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHZhbGlkYXRlcyB0aGUgYnVkZ2V0ICovXHJcblx0cHJpdmF0ZSB2YWxpZGF0ZUJ1ZGdldChidWRnZXQ6IGFueSwgYnVkZ2V0U2V0dGluZzogYW55LCB0eXBlOiBhbnkpIHtcclxuXHRcdGlmICghYnVkZ2V0IHx8ICFidWRnZXQuc3VtbWFyeSB8fCAhYnVkZ2V0LnN1bW1hcnkuYnVkZ2V0VG90YWwpXHJcblx0XHRcdC8vIHZhbGlkYXRlIGlmIHRoZXJlIGlzIGEgYnVkZ2V0IG9iamVjdFxyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJ1ZGdldDogYnVkZ2V0LFxyXG5cdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0YnVkZ2V0U2V0dGluZzogYnVkZ2V0U2V0dGluZyxcclxuXHRcdFx0XHRlcnJvcjogRUJ1ZGdldEVycm9yLk5PX09CSkVDVFxyXG5cdFx0XHR9O1xyXG5cdFx0ZWxzZSBpZiAoXHJcblx0XHRcdCh0eXBlID09PSBFQnVkZ2V0QnVpbGRUeXBlLmZpbmFuY2luZyB8fCB0eXBlID09PSBFQnVkZ2V0QnVpbGRUeXBlLm1peGVkKSAmJlxyXG5cdFx0XHRidWRnZXQuc3VtbWFyeS5idWRnZXRUb3RhbCA+IGJ1ZGdldFNldHRpbmcuY3ByZU1vbnRvVG90YWxcclxuXHRcdClcclxuXHRcdFx0Ly8gdmFsaWRhdGUgaWYgYW1vdW50IHRvdGFsIG92ZXJjb21lcyB0aGUgbWF4aW11bVxyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJ1ZGdldDogYnVkZ2V0LFxyXG5cdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0YnVkZ2V0U2V0dGluZzogYnVkZ2V0U2V0dGluZyxcclxuXHRcdFx0XHRlcnJvcjogRUJ1ZGdldEVycm9yLk9WRVJDT01FX01BWElNVU1fQU1PVU5UXHJcblx0XHRcdH07XHJcblx0XHRlbHNlIGlmIChcclxuXHRcdFx0dHlwZSA9PT0gRUJ1ZGdldEJ1aWxkVHlwZS5maW5hbmNpbmcgJiZcclxuXHRcdFx0KCFidWRnZXQuZmluYW5jaW5nU3RhcnQgfHwgIWJ1ZGdldC5maW5hbmNpbmdFbmQpXHJcblx0XHQpXHJcblx0XHRcdC8vIHZhbGlkYXRlIGlmIGZpbmFuY2luZyBkYXRlcyBhcmUgZGVmaW5lZFxyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJ1ZGdldDogYnVkZ2V0LFxyXG5cdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0YnVkZ2V0U2V0dGluZzogYnVkZ2V0U2V0dGluZyxcclxuXHRcdFx0XHRlcnJvcjogRUJ1ZGdldEVycm9yLkZJTkFOQ0lOR19EQVRFU1xyXG5cdFx0XHR9O1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHZhbGlkYXRlU3VtbWFyaXplZEJ1ZGdldChidWRnZXRTZXR0aW5nOiBhbnksIHR5cGU6IGFueSwgYnVkZ2V0OiBhbnkpIHtcclxuXHRcdGlmICghYnVkZ2V0IHx8ICFidWRnZXQuc3VtbWFyeSB8fCAhYnVkZ2V0LnN1bW1hcnkuYnVkZ2V0VG90YWwpIHtcclxuXHRcdFx0Ly8gdmFsaWRhdGUgaWYgdGhlcmUgaXMgYSBidWRnZXQgb2JqZWN0XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0YnVkZ2V0OiBidWRnZXQsXHJcblx0XHRcdFx0dHlwZTogdHlwZSxcclxuXHRcdFx0XHRidWRnZXRTZXR0aW5nOiBidWRnZXRTZXR0aW5nLFxyXG5cdFx0XHRcdGVycm9yOiBFQnVkZ2V0RXJyb3IuTk9fT0JKRUNUXHJcblx0XHRcdH07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZUNvbXBsZXRlQnVkZ2V0KGxpc3RCdWRnZXRTZXR0aW5nLCBsaXN0QnVkZ2V0LCBhcHBsaWNhdGlvbklkKTogYW55W10ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZ2V0VmFsaWRhdGVkQnVkZ2V0KGxpc3RCdWRnZXRTZXR0aW5nLCBsaXN0QnVkZ2V0LCBhcHBsaWNhdGlvbklkKTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSB2YWxpZGF0ZWQgYnVkZ2V0IGxpc3QgKi9cclxuXHRwcml2YXRlIGdldFZhbGlkYXRlZEJ1ZGdldChcclxuXHRcdGxpc3RCdWRnZXRTZXR0aW5nLFxyXG5cdFx0bGlzdEJ1ZGdldCxcclxuXHRcdGFwcGxpY2F0aW9uSWQsXHJcblx0XHRjdXJyZW50U3RhdHVzP1xyXG5cdCk6IGFueVtdIHtcclxuXHRcdGxldCBsaXN0VmFsaWRhdGVkQnVkZ2V0OiBhbnlbXSA9IFtdO1xyXG5cdFx0aWYgKGxpc3RCdWRnZXRTZXR0aW5nKSB7XHJcblx0XHRcdGxldCBzaG91bGRWYWxpZGF0ZVRvdGFsQnVkZ2V0OiBib29sZWFuID0gZmFsc2U7XHJcblx0XHRcdGxldCBzaG91bGRWYWxpZGF0ZUZpbmFuY2luZ0J1ZGdldDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdFx0XHRpZiAoY3VycmVudFN0YXR1cykge1xyXG5cdFx0XHRcdGxldCBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb246IFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uW10gPVxyXG5cdFx0XHRcdFx0Y3VycmVudFN0YXR1cy5saXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb247XHJcblx0XHRcdFx0aWYgKGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbiAmJiBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24ubGVuZ3RoKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbilcclxuXHRcdFx0XHRcdFx0aWYgKHNlY3Rpb24ucGxpQ25mUGFnZVNlY3Rpb24pXHJcblx0XHRcdFx0XHRcdFx0c3dpdGNoIChzZWN0aW9uLnBsaUNuZlBhZ2VTZWN0aW9uLmtleUxhYmVsKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjYXNlICdwcmVzdXB1ZXN0by50b3RhbCc6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2hvdWxkVmFsaWRhdGVUb3RhbEJ1ZGdldCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAncHJlc3VwdWVzdG8uZmluYW5jaWFjaW9uJzoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzaG91bGRWYWxpZGF0ZUZpbmFuY2luZ0J1ZGdldCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzaG91bGRWYWxpZGF0ZVRvdGFsQnVkZ2V0ID0gdHJ1ZTtcclxuXHRcdFx0XHRzaG91bGRWYWxpZGF0ZUZpbmFuY2luZ0J1ZGdldCA9IHRydWU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGl0ZXJhdGUgb3ZlciBsaXN0QnVkZ2V0U2V0dGluZ1xyXG5cdFx0XHRmb3IgKGNvbnN0IGJ1ZGdldFNldHRpbmcgb2YgbGlzdEJ1ZGdldFNldHRpbmcpIHtcclxuXHRcdFx0XHQvLyBza2lwIGdlbmVyYWwgYnVkZ2V0XHJcblx0XHRcdFx0aWYgKGJ1ZGdldFNldHRpbmcucGxpVGlwb1ByZXN1cHVlc3RvLnRwcmVzQ29kaWdvID09IEVUaXBvUHJlc3VwdWVzdG8uR0VORVJBTClcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdC8vIGJ1ZGdldCB0b3RhbFxyXG5cdFx0XHRcdGNvbnN0IGJ1ZGdldERhdGFUb3RhbCA9IHRoaXMuZ2V0VmFsaWRhdGVkQnVkZ2V0QXBwbGljYXRpb24oXHJcblx0XHRcdFx0XHRidWRnZXRTZXR0aW5nLFxyXG5cdFx0XHRcdFx0RUJ1ZGdldEJ1aWxkVHlwZS50b3RhbCxcclxuXHRcdFx0XHRcdGxpc3RCdWRnZXQsXHJcblx0XHRcdFx0XHRhcHBsaWNhdGlvbklkXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRpZiAoYnVkZ2V0RGF0YVRvdGFsICYmIHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQpXHJcblx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkQnVkZ2V0LnB1c2goYnVkZ2V0RGF0YVRvdGFsKTtcclxuXHRcdFx0XHQvLyBpZiBpdCBoYXMgb3duIGZ1bmRzLCBzbyBpdCB2YWxpZGF0ZXMgdG90YWwgYW5kIGZpbmFuY2luZ1xyXG5cdFx0XHRcdGlmIChidWRnZXRTZXR0aW5nLmNwcmVFc0ZvbmRvc1Byb3Bpb3MpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGJ1ZGdldERhdGFGaW5hbmNpbmcgPSB0aGlzLmdldFZhbGlkYXRlZEJ1ZGdldEFwcGxpY2F0aW9uKFxyXG5cdFx0XHRcdFx0XHRidWRnZXRTZXR0aW5nLFxyXG5cdFx0XHRcdFx0XHRFQnVkZ2V0QnVpbGRUeXBlLmZpbmFuY2luZyxcclxuXHRcdFx0XHRcdFx0bGlzdEJ1ZGdldCxcclxuXHRcdFx0XHRcdFx0YXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGlmIChidWRnZXREYXRhRmluYW5jaW5nICYmIHNob3VsZFZhbGlkYXRlRmluYW5jaW5nQnVkZ2V0KVxyXG5cdFx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkQnVkZ2V0LnB1c2goYnVkZ2V0RGF0YUZpbmFuY2luZyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbGlzdFZhbGlkYXRlZEJ1ZGdldDtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSB2YWxpZGF0ZWQgZm9ybSBsaXN0ICovXHJcblx0cHJpdmF0ZSBnZXRWYWxpZGF0ZWRGb3JtTGlzdChsaXN0Rm9ybSwgbGlzdERhdGFGb3JtLCBhcHBsaWNhdGlvbklkKTogYW55W10ge1xyXG5cdFx0bGV0IGxpc3RWYWxpZGF0ZWRGb3JtOiBhbnlbXSA9IFtdO1xyXG5cdFx0aWYgKGxpc3RGb3JtKSB7XHJcblx0XHRcdC8vIGl0ZXJhdGUgb3ZlciBsaXN0Zm9ybVxyXG5cdFx0XHRmb3IgKGNvbnN0IGZvcm0gb2YgbGlzdEZvcm0pIHtcclxuXHRcdFx0XHQvLyBnZXQgZXJyb3JzIGJ5IGZvcm1JZCBhbmQgQXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdGNvbnN0IGVycm9ycyA9IHRoaXMuZ2V0RXJyb3JzQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKFxyXG5cdFx0XHRcdFx0bGlzdERhdGFGb3JtLFxyXG5cdFx0XHRcdFx0Zm9ybS5pZCxcclxuXHRcdFx0XHRcdGFwcGxpY2F0aW9uSWRcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHRpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGNvbXBvbmVudHMgPSBGb3JtaW9VdGlsLmdldENvbXBvbmVudHMoZm9ybS5jb21wb25lbnRzKTtcclxuXHJcblx0XHRcdFx0XHQvLyBnZW5lcmF0ZSB0aGUgZXJyb3IgY29tcG9uZW50cyBhY2NvcmRpbmcgdG8gZXJyb3JzXHJcblx0XHRcdFx0XHRsZXQgZXJyb3JDb21wb25lbnQgPSBbXTtcclxuXHRcdFx0XHRcdGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XHJcblx0XHRcdFx0XHRcdGlmIChlcnJvciAmJiBlcnJvci5jb21wb25lbnQgJiYgZXJyb3IuY29tcG9uZW50LmtleSAmJiBjb21wb25lbnRzKSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChjb25zdCBjb21wb25lbnQgb2YgY29tcG9uZW50cykge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNvbXBvbmVudC5rZXkgPT0gZXJyb3IuY29tcG9uZW50LmtleSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvckNvbXBvbmVudC5wdXNoKGNvbXBvbmVudCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGlmIChlcnJvckNvbXBvbmVudCAmJiBlcnJvckNvbXBvbmVudC5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0Ly8gb3JnYW5pemluZyBieSBwYW5lbHNcclxuXHRcdFx0XHRcdFx0Y29uc3QgcGFuZWxzID0gRm9ybWlvVXRpbC5nZXRGb3JtYXR0ZWRDb21wb25lbnRzQnlQYW5lbChlcnJvckNvbXBvbmVudCk7XHJcblx0XHRcdFx0XHRcdC8vIGFkZCB0byBsaXN0VmFsaWRhdGVkRm9ybVxyXG5cdFx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkRm9ybS5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRpZDogZm9ybS5pZCxcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBmb3JtLnRpdGxlLFxyXG5cdFx0XHRcdFx0XHRcdHBhbmVsczogcGFuZWxzLFxyXG5cdFx0XHRcdFx0XHRcdHRvZ2dsZTogZmFsc2VcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIHZlcmlmeSBpZiBkYXRhIGlzIGNvbXBsZXRlZFxyXG5cdFx0XHRcdFx0Ly8gZ2V0IGRhdGEgYnkgZm9ybSBpZCBhbmQgYXBwIGlkXHJcblx0XHRcdFx0XHRjb25zdCBkYXRhID0gdGhpcy5nZXREYXRhQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKFxyXG5cdFx0XHRcdFx0XHRsaXN0RGF0YUZvcm0sXHJcblx0XHRcdFx0XHRcdGZvcm0uaWQsXHJcblx0XHRcdFx0XHRcdGFwcGxpY2F0aW9uSWRcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHQvLyBnZXQgY29tcG9uZW50cyBhcmUgcmVxdWlyZWQgYWNjb3JkaW5nIHRvIGRhdGFcclxuXHRcdFx0XHRcdGNvbnN0IGNvbXBvbmVudHMgPSBGb3JtaW9VdGlsLmdldFJlcXVpcmVkQ29tcG9uZW50c0J5RGF0YShcclxuXHRcdFx0XHRcdFx0Zm9ybS5jb21wb25lbnRzLFxyXG5cdFx0XHRcdFx0XHRkYXRhXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0aWYgKGNvbXBvbmVudHMgJiYgY29tcG9uZW50cy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0Ly8gb3JnYW5pemluZyBieSBwYW5lbHNcclxuXHRcdFx0XHRcdFx0Y29uc3QgcGFuZWxzID0gRm9ybWlvVXRpbC5nZXRGb3JtYXR0ZWRDb21wb25lbnRzQnlQYW5lbChjb21wb25lbnRzKTtcclxuXHRcdFx0XHRcdFx0Ly8gYWRkIHRvIGxpc3RWYWxpZGF0ZWRGb3JtXHJcblx0XHRcdFx0XHRcdGxpc3RWYWxpZGF0ZWRGb3JtLnB1c2goe1xyXG5cdFx0XHRcdFx0XHRcdGlkOiBmb3JtLmlkLFxyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IGZvcm0udGl0bGUsXHJcblx0XHRcdFx0XHRcdFx0cGFuZWxzOiBwYW5lbHMsXHJcblx0XHRcdFx0XHRcdFx0dG9nZ2xlOiBmYWxzZVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBsaXN0VmFsaWRhdGVkRm9ybTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBkYXRhIGJ5IGZvcm1JZCBhbmQgQXBwbGljYXRpb25JZCAqL1xyXG5cdHByaXZhdGUgZ2V0RXJyb3JzQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKGxpc3REYXRhRm9ybSwgZm9ybUlkLCBhcHBsaWNhdGlvbklkKTogYW55IHtcclxuXHRcdGlmIChsaXN0RGF0YUZvcm0gJiYgZm9ybUlkICYmIGFwcGxpY2F0aW9uSWQpXHJcblx0XHRcdGZvciAoY29uc3QgZGF0YSBvZiBsaXN0RGF0YUZvcm0pXHJcblx0XHRcdFx0aWYgKGRhdGEuZm9ybUlkID09IGZvcm1JZCAmJiBkYXRhLmFwcGxpY2F0aW9uSWQgPT0gYXBwbGljYXRpb25JZClcclxuXHRcdFx0XHRcdHJldHVybiBkYXRhLmVycm9ycztcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRhdGEgYnkgZm9ybUlkIGFuZCBBcHBsaWNhdGlvbklkICovXHJcblx0cHJpdmF0ZSBnZXREYXRhQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKGxpc3REYXRhRm9ybSwgZm9ybUlkLCBhcHBsaWNhdGlvbklkKTogYW55IHtcclxuXHRcdGlmIChsaXN0RGF0YUZvcm0gJiYgZm9ybUlkICYmIGFwcGxpY2F0aW9uSWQpXHJcblx0XHRcdGZvciAoY29uc3QgZGF0YSBvZiBsaXN0RGF0YUZvcm0pXHJcblx0XHRcdFx0aWYgKGRhdGEuZm9ybUlkID09IGZvcm1JZCAmJiBkYXRhLmFwcGxpY2F0aW9uSWQgPT0gYXBwbGljYXRpb25JZCkgcmV0dXJuIGRhdGEuZGF0YTtcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Z2V0VmFsaWRhdGVkQnVkZ2V0U3VtbWFyaXplZChcclxuXHRcdGxpc3RCdWRnZXRTZXR0aW5nLFxyXG5cdFx0bGlzdEJ1ZGdldCxcclxuXHRcdGFwcGxpY2F0aW9uSWQsXHJcblx0XHRjdXJyZW50U3RhdHVzXHJcblx0KTogYW55W10ge1xyXG5cdFx0bGV0IGxpc3RWYWxpZGF0ZWRCdWRnZXQ6IGFueVtdID0gW107XHJcblx0XHRpZiAobGlzdEJ1ZGdldFNldHRpbmcpIHtcclxuXHRcdFx0bGV0IHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcdFx0aWYgKGN1cnJlbnRTdGF0dXMpIHtcclxuXHRcdFx0XHRsZXQgbGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uOiBQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbltdID1cclxuXHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMubGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uO1xyXG5cdFx0XHRcdGlmIChsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24gJiYgbGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uLmxlbmd0aClcclxuXHRcdFx0XHRcdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24pXHJcblx0XHRcdFx0XHRcdGlmIChzZWN0aW9uLnBsaUNuZlBhZ2VTZWN0aW9uKVxyXG5cdFx0XHRcdFx0XHRcdHN3aXRjaCAoc2VjdGlvbi5wbGlDbmZQYWdlU2VjdGlvbi5rZXlMYWJlbCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSBFQ25mUGFnZVNlY3Rpb24ucHJlc3VwdWVzdG9SZXN1bWlkbzoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzaG91bGRWYWxpZGF0ZVRvdGFsQnVkZ2V0ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IGJ1ZGdldERhdGFUb3RhbCA9IHRoaXMudmFsaWRhdGVTdW1tYXJpemVkQnVkZ2V0KFxyXG5cdFx0XHRcdGxpc3RCdWRnZXRTZXR0aW5nWzBdLFxyXG5cdFx0XHRcdEVCdWRnZXRCdWlsZFR5cGUudG90YWwsXHJcblx0XHRcdFx0bGlzdEJ1ZGdldFswXVxyXG5cdFx0XHQpO1xyXG5cdFx0XHRpZiAoYnVkZ2V0RGF0YVRvdGFsICYmIHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQpXHJcblx0XHRcdFx0bGlzdFZhbGlkYXRlZEJ1ZGdldC5wdXNoKGJ1ZGdldERhdGFUb3RhbCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbGlzdFZhbGlkYXRlZEJ1ZGdldDtcclxuXHR9XHJcblxyXG5cdGF1dG9tYXRpY0RvY3VtZW50c1ZhbGlkYXRlZChcclxuXHRcdGNvbmZpZ0RvY3VtZW50OiBDb25maWd1cmF0aW9uRG9jdW1lbnQsXHJcblx0XHRsaXN0RGF0YUZvcm06IGFueVtdLFxyXG5cdFx0ZG9jdW1lbnQ6IERvY3VtZW50XHJcblx0KSB7XHJcblx0XHRpZiAoXHJcblx0XHRcdGNvbmZpZ0RvY3VtZW50LmZvcm11bGFWYWxpZGF0ZU11bHRpcGxlICYmXHJcblx0XHRcdGNvbmZpZ0RvY3VtZW50LmZvcm11bGFWYWxpZGF0ZU11bHRpcGxlLmxlbmd0aCA+IDBcclxuXHRcdCkge1xyXG5cdFx0XHRsZXQgZGF0YSA9IHsgc3RhdHVzbmFtZTogJycgfTtcclxuXHRcdFx0aWYgKGxpc3REYXRhRm9ybSlcclxuXHRcdFx0XHRmb3IgKGNvbnN0IGRhdGFGb3JtIG9mIGxpc3REYXRhRm9ybSlcclxuXHRcdFx0XHRcdGZvciAoY29uc3QgcHJvcGVydHkgaW4gZGF0YUZvcm0uZGF0YSlcclxuXHRcdFx0XHRcdFx0ZGF0YVtwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpXSA9IGRhdGFGb3JtLmRhdGFbcHJvcGVydHldO1xyXG5cdFx0XHRsZXQgZm9ybXVsYSA9IHRoaXMudG9rZW5TZXJ2aWNlLnJlcGxhY2VUb2tlbnNGcm9tTGlzdE9iamVjdChcclxuXHRcdFx0XHRjb25maWdEb2N1bWVudC5uYW1lLFxyXG5cdFx0XHRcdGNvbmZpZ0RvY3VtZW50LmZvcm11bGFWYWxpZGF0ZU11bHRpcGxlLFxyXG5cdFx0XHRcdGRhdGFcclxuXHRcdFx0KTtcclxuXHRcdFx0bGV0IHJlc3VsdCA9IGV2YWwoZm9ybXVsYSk7XHJcblx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHRsZXQgcmVzdWx0QXJyYXkgPSBKU09OLnBhcnNlKHJlc3VsdCk7XHJcblxyXG5cdFx0XHRcdGlmIChyZXN1bHRBcnJheSAmJiByZXN1bHRBcnJheS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHQvL1RoZW4gZG9jdW1lbnQgbXVzdCBoYXZlIGFyY2hpdmVzXHJcblx0XHRcdFx0XHRpZiAoIWRvY3VtZW50IHx8ZG9jdW1lbnQubGlzdEFyY2hpdmUubGVuZ3RoIDwgcmVzdWx0QXJyYXkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxufVxyXG4iXX0=
492
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1hcHBsaWNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9zZW5kLWFwcGxpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUluRCxPQUFPLEVBSU4sZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFFBQVEsRUFDUixjQUFjLEVBQ2QsS0FBSyxFQUNMLDBCQUEwQixFQUUxQixzQkFBc0IsRUFHdEIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBS2xELE1BQU0sT0FBTyxzQkFBc0I7SUFJbEMsWUFDZ0MsV0FBVyxFQUNsQyxZQUEwQixFQUMxQixZQUEwQixFQUMxQixpQ0FBb0U7UUFIN0MsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFtQztRQVA3RSxtREFBbUQ7UUFDM0Msc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFPeEQsQ0FBQztJQUVKLG1FQUFtRTtJQUM1RCxrQkFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELDBDQUEwQztJQUNuQyxhQUFhLENBQUMsT0FBZSxFQUFFLEtBQWE7UUFDbEQsSUFBSSxPQUFPLElBQUksS0FBSyxFQUFF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Q0QsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDOzttSEE3b0JXLHNCQUFzQixrQkFLekIsYUFBYTt1SEFMVixzQkFBc0IsY0FGdEIsTUFBTTsyRkFFTixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFNRSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEVtYWlsU2VydmljZSB9IGZyb20gJy4vZW1haWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEludGVyYWN0aW9uQXBwbGljYXRpb25Vc2VyU2VydmljZSB9IGZyb20gJy4vaW50ZXJhY3Rpb24tYXBwbGljYXRpb24tdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuXHRBcHBsaWNhdGlvbixcclxuXHRCdWRnZXREYXRhLFxyXG5cdENvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRTZW5kQXBwbGljYXRpb24sXHJcblx0RVRpcG9QcmVzdXB1ZXN0byxcclxuXHRFQnVkZ2V0QnVpbGRUeXBlLFxyXG5cdEVCdWRnZXRFcnJvcixcclxuXHREb2N1bWVudCxcclxuXHRFRG9jdW1lbnRTdGF0ZSxcclxuXHRFbWFpbCxcclxuXHRJbnRlcmFjdGlvbkFwcGxpY2F0aW9uVXNlcixcclxuXHRQbGlDbmZTdGF0dXNGbG93SW50ZXJhY3Rpb24sXHJcblx0RVR5cGVTdGF0aWNJbnRlcmFjdGlvbixcclxuXHRQbGlDbmZTdGF0dXMsXHJcblx0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24sXHJcblx0QXV0aGVudGljYXRpb25VdGlsLFxyXG5cdEVDbmZQYWdlU2VjdGlvblxyXG59IGZyb20gJ25nLXBsaS11dGlsJztcclxuaW1wb3J0IHsgRm9ybWlvVXRpbCB9IGZyb20gJy4uL3V0aWxzL2Zvcm1pby11dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbmRBcHBsaWNhdGlvblNlcnZpY2Uge1xyXG5cdC8qKiBUaGlzIG9ic2VydmFibGUgYWxsb3dzIHRvIGdldCB0aGUgcG9yY2VudGFnZSAqL1xyXG5cdHByaXZhdGUgcGVyY2VudGFnZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0QEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50LFxyXG5cdFx0cHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcclxuXHRcdHByaXZhdGUgZW1haWxTZXJ2aWNlOiBFbWFpbFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGludGVyYWN0aW9uQXBwbGljYXRpb25Vc2VyU2VydmljZTogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXJTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHQvKiogIEl0IGhhcyBhbiBvYnNlcnZhYmxlIHRvIG5vdGlmeSBpZiB0aGUgcGVyY2VudGFnZSBpcyBjaGFuZ2VkICovXHJcblx0cHVibGljIG9uQ2hhbmdlUGVyY2VudGFnZSgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG5cdFx0cmV0dXJuIHRoaXMucGVyY2VudGFnZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0fVxyXG5cclxuXHQvKiogaXQgZGVmaW5lcyB0aGUgdmFsdWUgZm9yIHBlcmNlbnRhZ2UgKi9cclxuXHRwdWJsaWMgc2V0UGVyY2VudGFnZShjdXJyZW50OiBudW1iZXIsIHRvdGFsOiBudW1iZXIpIHtcclxuXHRcdGlmIChjdXJyZW50ICYmIHRvdGFsKSB7XHJcblx0XHRcdGNvbnN0IHBlcmNlbnRhZ2UgPSAoY3VycmVudCAvIHRvdGFsKSAqIDEwMDtcclxuXHRcdFx0dGhpcy5wZXJjZW50YWdlU3ViamVjdC5uZXh0KHBlcmNlbnRhZ2UpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5yZXNldFBlcmNlbnRhZ2UoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXNldHMgdGhlIHBlcmNlbnRhZ2UgKi9cclxuXHRwdWJsaWMgcmVzZXRQZXJjZW50YWdlKCkge1xyXG5cdFx0dGhpcy5wZXJjZW50YWdlU3ViamVjdC5uZXh0KDApO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSXQgc2VuZCBlbWFpbCBtYXNpdmVseVxyXG5cdCAqIEBwYXJhbSBhcHBsaWNhdGlvblxyXG5cdCAqIEBwYXJhbSBpIGN1cnJlbnQgaWRuZXhcclxuXHQgKiBAcGFyYW0gbGVuZ3RoIGxlbmd0aFxyXG5cdCAqIEBwYXJhbSBzZW5kQXBwbGljYXRpb25cclxuXHQgKi9cclxuXHRzZW5kRW1haWxNYXNzaXZlbHkoYXBwbGljYXRpb246IEFwcGxpY2F0aW9uKSB7XHJcblx0XHRsZXQgZW1haWw6IEVtYWlsID0gbmV3IEVtYWlsKCk7XHJcblx0XHRlbWFpbC5hZGRUbygncHJ1ZWJhY29udm9AYmVuLmNvbGZ1dHVyby5vcmcnKTtcclxuXHRcdC8vIHVuY29tbWVudCB3aGVuIHRoZSBlbnZpcm9ubWVudFxyXG5cdFx0ZW1haWwuc2V0U3ViamVjdCgnRW52w61vIGRlIHNvbGljaXR1ZCAnICsgYXBwbGljYXRpb24uaWQpO1xyXG5cdFx0ZW1haWwuc2V0Qm9keSgnQ29yZGlhbCBzYWx1ZG8sIDxici8+SGVtb3MgZW52aWFkbyBsYSBzb2xpY2l0dWQgJyArIGFwcGxpY2F0aW9uLmlkKTtcclxuXHRcdHJldHVybiB0aGlzLmVtYWlsU2VydmljZS5zZW5kKGVtYWlsKTtcclxuXHR9XHJcblxyXG5cdC8qKiBTZW5kIGVtYWlsIGFwcGxpY2F0aW9uICovXHJcblx0c2VuZEVtYWlsKGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbikge1xyXG5cdFx0bGV0IGVtYWlsOiBFbWFpbCA9IG5ldyBFbWFpbCgpO1xyXG5cdFx0ZW1haWwuYWRkVG8oJ3BydWViYWNvbnZvQGJlbi5jb2xmdXR1cm8ub3JnJyk7XHJcblx0XHQvLyB1bmNvbW1lbnQgd2hlbiB0aGUgZW52aXJvbm1lbnRcclxuXHRcdGVtYWlsLnNldFN1YmplY3QoJ0VudsOtbyBkZSBzb2xpY2l0dWQgJyArIGFwcGxpY2F0aW9uLmlkKTtcclxuXHRcdGVtYWlsLnNldEJvZHkoJ0NvcmRpYWwgc2FsdWRvLCA8YnIvPkhhcyBlbnZpYWRvIGxhIHNvbGljaXR1ZCAnICsgYXBwbGljYXRpb24uaWQpO1xyXG5cdFx0cmV0dXJuIHRoaXMuZW1haWxTZXJ2aWNlLnNlbmQoZW1haWwpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIHRoZSBpbnRlcmFjdGlvbiAqL1xyXG5cdHNhdmVJbnRlcmFjdGlvbihcclxuXHRcdGFwcGxpY2F0aW9uSWQ6IHN0cmluZyxcclxuXHRcdHByb21Db2RpZ286IG51bWJlcixcclxuXHRcdHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbjogUGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLFxyXG5cdFx0b2JzZXJ2YXRpb24/OiBzdHJpbmdcclxuXHQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0bGV0IGludGVyYWN0aW9uQXBwVXNlcjogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIgPSBuZXcgSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIoKTtcclxuXHRcdGludGVyYWN0aW9uQXBwVXNlci5hcHBsaWNhdGlvbklkID0gYXBwbGljYXRpb25JZDtcclxuXHRcdGludGVyYWN0aW9uQXBwVXNlci5wcm9tQ29kaWdvID0gcHJvbUNvZGlnbztcclxuXHJcblx0XHRpZiAoXHJcblx0XHRcdHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5wbGlDbmZJbnRlcmFjdGlvbiAmJlxyXG5cdFx0XHRwbGlDbmZTdGF0dXNGbG93SW50ZXJhY3Rpb24ucGxpQ25mSW50ZXJhY3Rpb24uaWRcclxuXHRcdClcclxuXHRcdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaUNuZkludGVyYWN0aW9uSWQgPVxyXG5cdFx0XHRcdHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5wbGlDbmZJbnRlcmFjdGlvbi5pZDtcclxuXHRcdGlmIChcclxuXHRcdFx0cGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLnBsaUNuZlN0YXR1c0Zsb3cgJiZcclxuXHRcdFx0cGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLnBsaUNuZlN0YXR1c0Zsb3cuaWRcclxuXHRcdClcclxuXHRcdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaUNuZlN0YXR1c0Zsb3dJZCA9IHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5wbGlDbmZTdGF0dXNGbG93LmlkO1xyXG5cdFx0aWYgKHBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbi5pZClcclxuXHRcdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaUNuZlN0YXR1c0Zsb3dJbnRlcmFjdGlvbklkID0gcGxpQ25mU3RhdHVzRmxvd0ludGVyYWN0aW9uLmlkO1xyXG5cclxuXHRcdGludGVyYWN0aW9uQXBwVXNlci5pbnRlcmFjdGlvblN0YXRpY0lkID0gRVR5cGVTdGF0aWNJbnRlcmFjdGlvbi5TRU5EX0FQUExJQ0FUSU9OO1xyXG5cdFx0aW50ZXJhY3Rpb25BcHBVc2VyLnBsaVVzZXJJZCA9IEF1dGhlbnRpY2F0aW9uVXRpbC5nZXRQbGlVc3VhcmlvKClcclxuXHRcdFx0PyBBdXRoZW50aWNhdGlvblV0aWwuZ2V0UGxpVXN1YXJpbygpLnVzdUNvZGlnb1xyXG5cdFx0XHQ6IG51bGw7XHJcblx0XHRpbnRlcmFjdGlvbkFwcFVzZXIucG9zaXRpdmUgPSB0cnVlO1xyXG5cdFx0aW50ZXJhY3Rpb25BcHBVc2VyLm9ic2VydmF0aW9uID0gb2JzZXJ2YXRpb24gPyBvYnNlcnZhdGlvbiA6ICdFbnbDrW8gZGUgc29saWNpdHVkJztcclxuXHRcdHJldHVybiB0aGlzLmludGVyYWN0aW9uQXBwbGljYXRpb25Vc2VyU2VydmljZS5zYXZlKGludGVyYWN0aW9uQXBwVXNlcik7XHJcblx0fVxyXG5cclxuXHRzYXZlSW50ZXJhY3Rpb25JbmZvcm1hdGlvbihcclxuXHRcdGludGVyYWN0aW9uQXBwVXNlcjogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIsXHJcblx0XHRyZXNvbHZlOiBhbnksXHJcblx0XHRyZWplY3Q6IGFueVxyXG5cdCkge1xyXG5cdFx0dGhpcy5pbnRlcmFjdGlvbkFwcGxpY2F0aW9uVXNlclNlcnZpY2Uuc2F2ZShpbnRlcmFjdGlvbkFwcFVzZXIpLnN1YnNjcmliZShcclxuXHRcdFx0KHJlc3VsdDogSW50ZXJhY3Rpb25BcHBsaWNhdGlvblVzZXIpID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKHJlc3VsdCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXHJcblx0XHRcdFx0XHQnRVJST1IgLSBzYXZlSW50ZXJhY3Rpb24gLSBpbnRlcmFjdGlvbkFwcGxpY2F0aW9uVXNlclNlcnZpY2Uuc2F2ZSAnLFxyXG5cdFx0XHRcdFx0ZXJyb3JcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHJlamVjdChlcnJvcik7XHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJdCB2YWxpZGF0ZXMgdGhlIGRhdGFcclxuXHQgKiBAcGFyYW0gbGlzdEFwcGxpY2F0aW9uXHJcblx0ICogQHBhcmFtIGxpc3RGb3JtXHJcblx0ICogQHBhcmFtIGxpc3REYXRhRm9ybVxyXG5cdCAqIEBwYXJhbSBsaXN0QnVkZ2V0U2V0dGluZ1xyXG5cdCAqIEBwYXJhbSBsaXN0QnVkZ2V0XHJcblx0ICogQHBhcmFtIGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnRcclxuXHQgKiBAcGFyYW0gbGlzdERvY3VtZW50XHJcblx0ICogQHBhcmFtIHZhbGlkYXRlSnVzdFJlcXVpcmVkIGVnLiB3aGVuIHRoZSBzY3JlZXJuIHJlcXVpcmUgZ2V0IGp1c3QgcmVxdWlyZSBkb2N1bWVudHMgKHNlbmQgYXBwbGljYXRpb24pXHJcblx0ICovXHJcblx0cHVibGljIHZhbGlkYXRlKFxyXG5cdFx0bGlzdFRvdGFsU3RhdHVzOiBQbGlDbmZTdGF0dXNbXSxcclxuXHRcdGxpc3RBcHBsaWNhdGlvbjogQXBwbGljYXRpb25bXSxcclxuXHRcdGxpc3RGb3JtOiBhbnlbXSxcclxuXHRcdGxpc3REYXRhRm9ybTogYW55W10sXHJcblx0XHRsaXN0QnVkZ2V0U2V0dGluZzogYW55W10sXHJcblx0XHRsaXN0QnVkZ2V0OiBCdWRnZXREYXRhW10sXHJcblx0XHRsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50OiBDb25maWd1cmF0aW9uRG9jdW1lbnRbXSxcclxuXHRcdGxpc3REb2N1bWVudDogRG9jdW1lbnRbXSxcclxuXHRcdGNhbGxiYWNrOiBhbnksXHJcblx0XHR2YWxpZGF0ZUp1c3RSZXF1aXJlZDogYm9vbGVhbixcclxuXHRcdHZhbGlkYXRlU3VtbWFyaXplZEJ1ZGdldD86IGJvb2xlYW5cclxuXHQpOiBBcnJheTxTZW5kQXBwbGljYXRpb24+IHtcclxuXHRcdGxldCBsaXN0U2VuZEFwcGxpY2F0aW9uOiBBcnJheTxTZW5kQXBwbGljYXRpb24+ID0gW107XHJcblx0XHQvLyByZXNldCBwZXJjZW50YWdlXHJcblx0XHQvLyB0aGlzLnJlc2V0UGVyY2VudGFnZSgpO1xyXG5cdFx0aWYgKGxpc3RBcHBsaWNhdGlvbiAmJiBsaXN0QXBwbGljYXRpb24ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQvLyBpdGVyYXRlIG92ZXIgbGlzdEFwcGxpY2F0aW9uXHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEFwcGxpY2F0aW9uLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0Ly8gZGVmaW5lIGFwcGxpY2F0aW9uXHJcblx0XHRcdFx0Y29uc3QgYXBwbGljYXRpb24gPSBsaXN0QXBwbGljYXRpb25baV07XHJcblx0XHRcdFx0Ly8gY3JlYXRlIHNlbmQgYXBwbGljYXRpb24gb2JqZWN0XHJcblx0XHRcdFx0bGV0IHNlbmRBcHBsaWNhdGlvbjogU2VuZEFwcGxpY2F0aW9uID0gbmV3IFNlbmRBcHBsaWNhdGlvbigpO1xyXG5cdFx0XHRcdC8vIGRlZmluZSBhcHBsaWNhdGlvbklkXHJcblx0XHRcdFx0c2VuZEFwcGxpY2F0aW9uLmFwcGxpY2F0aW9uSWQgPSBhcHBsaWNhdGlvbi5pZDtcclxuXHJcblx0XHRcdFx0bGV0IGN1cnJlbnRTdGF0dXM6IGFueSA9IFtdO1xyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdGxpc3RUb3RhbFN0YXR1cyAmJlxyXG5cdFx0XHRcdFx0bGlzdFRvdGFsU3RhdHVzLmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0YXBwbGljYXRpb24uc3RhdGVJZCAmJlxyXG5cdFx0XHRcdFx0bGlzdEZvcm0gJiZcclxuXHRcdFx0XHRcdGxpc3RGb3JtLmxlbmd0aFxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHRcdC8vIGdldCB0aGUgbGlzdCBwYWdlIHNlY3Rpb24gYWNjb3JkaW5nIHRvIHN0YXR1c0lkXHJcblx0XHRcdFx0XHRmb3IgKGNvbnN0IHN0YXR1cyBvZiBsaXN0VG90YWxTdGF0dXMpXHJcblx0XHRcdFx0XHRcdGlmIChzdGF0dXMuaWQgPT0gYXBwbGljYXRpb24uc3RhdGVJZCkge1xyXG5cdFx0XHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMgPSBzdGF0dXM7XHJcblx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gZGVmaW5lIHRoZSBsaXN0Rm9ybSB0aGF0IGNhbiBiZSB2YWxkaWF0ZWQgYWNjb3JkaW5nIHRvIHN0YXR1c1xyXG5cdFx0XHRcdGNvbnN0IGxpc3RGb3JtQWN0aXZhdGVkID0gdGhpcy5nZXRMaXN0Rm9ybXNCeVN0YXR1cyhjdXJyZW50U3RhdHVzLCBsaXN0Rm9ybSk7XHJcblx0XHRcdFx0Ly8gZ2V0IHZhbGlkYXRlZCBsaXN0IGZvcm1cclxuXHRcdFx0XHRzZW5kQXBwbGljYXRpb24ubGlzdFZhbGlkYXRlZEZvcm0gPSB0aGlzLmdldFZhbGlkYXRlZEZvcm1MaXN0KFxyXG5cdFx0XHRcdFx0bGlzdEZvcm1BY3RpdmF0ZWQsXHJcblx0XHRcdFx0XHRsaXN0RGF0YUZvcm0sXHJcblx0XHRcdFx0XHRzZW5kQXBwbGljYXRpb24uYXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdC8vIGdldCB2YWxpZGF0ZWQgbGlzdCBidWRnZXRcclxuXHRcdFx0XHRpZiAoIXZhbGlkYXRlU3VtbWFyaXplZEJ1ZGdldCkge1xyXG5cdFx0XHRcdFx0c2VuZEFwcGxpY2F0aW9uLmxpc3RWYWxpZGF0ZWRCdWRnZXQgPSB0aGlzLmdldFZhbGlkYXRlZEJ1ZGdldChcclxuXHRcdFx0XHRcdFx0bGlzdEJ1ZGdldFNldHRpbmcsXHJcblx0XHRcdFx0XHRcdGxpc3RCdWRnZXQsXHJcblx0XHRcdFx0XHRcdHNlbmRBcHBsaWNhdGlvbi5hcHBsaWNhdGlvbklkLFxyXG5cdFx0XHRcdFx0XHRjdXJyZW50U3RhdHVzXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRzZW5kQXBwbGljYXRpb24ubGlzdFZhbGlkYXRlZEJ1ZGdldCA9IHRoaXMuZ2V0VmFsaWRhdGVkQnVkZ2V0U3VtbWFyaXplZChcclxuXHRcdFx0XHRcdFx0bGlzdEJ1ZGdldFNldHRpbmcsXHJcblx0XHRcdFx0XHRcdGxpc3RCdWRnZXQsXHJcblx0XHRcdFx0XHRcdHNlbmRBcHBsaWNhdGlvbi5hcHBsaWNhdGlvbklkLFxyXG5cdFx0XHRcdFx0XHRjdXJyZW50U3RhdHVzXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gZ2V0IHZhbGlkYXRlZCBsaXN0IGRvY3VtZW50XHJcblx0XHRcdFx0c2VuZEFwcGxpY2F0aW9uLmxpc3RWYWxpZGF0ZWREb2N1bWVudCA9IHRoaXMuZ2V0VmFsaWRhdGVkRG9jdW1lbnQoXHJcblx0XHRcdFx0XHRjdXJyZW50U3RhdHVzLFxyXG5cdFx0XHRcdFx0bGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRcdFx0XHRcdGxpc3REb2N1bWVudCxcclxuXHRcdFx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHRcdFx0bGlzdERhdGFGb3JtLFxyXG5cdFx0XHRcdFx0dmFsaWRhdGVKdXN0UmVxdWlyZWRcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHQvLyByZXNvbHZlIHZhbGlkYXRpb24gLSBubyBsaXN0VmFsaWRhdGVkRG9jIC0gIGxpc3RWYWxpZGF0ZWRCdWRnZXQgLSBsaXN0VmFsaWRhdGVkRm9ybVxyXG5cdFx0XHRcdHNlbmRBcHBsaWNhdGlvbi52YWxpZGF0aW9uID1cclxuXHRcdFx0XHRcdCFzZW5kQXBwbGljYXRpb24ubGlzdFZhbGlkYXRlZERvY3VtZW50Lmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0IXNlbmRBcHBsaWNhdGlvbi5saXN0VmFsaWRhdGVkQnVkZ2V0Lmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0IXNlbmRBcHBsaWNhdGlvbi5saXN0VmFsaWRhdGVkRm9ybS5sZW5ndGg7XHJcblx0XHRcdFx0Ly8gYWRkIHRvIGFycmF5XHJcblx0XHRcdFx0bGlzdFNlbmRBcHBsaWNhdGlvbi5wdXNoKHNlbmRBcHBsaWNhdGlvbik7XHJcblx0XHRcdFx0Ly8gY2FsbCBjYWxsYmFja1xyXG5cdFx0XHRcdGlmIChjYWxsYmFjaykgY2FsbGJhY2soc2VuZEFwcGxpY2F0aW9uLCBhcHBsaWNhdGlvbiwgaSwgbGlzdEFwcGxpY2F0aW9uLmxlbmd0aCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBsaXN0U2VuZEFwcGxpY2F0aW9uO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgdGhlIGZvcm1zIHRoYXQgYXJlIGFjdGl2YXRlZCBhY2NvcmRpbmcgdG8gc3RhdHVzICovXHJcblx0Z2V0TGlzdEZvcm1zQnlTdGF0dXMoY3VycmVudFN0YXR1czogUGxpQ25mU3RhdHVzLCBsaXN0Rm9ybTogYW55W10pOiBhbnlbXSB7XHJcblx0XHRsZXQgbGlzdEFjdGl2YXRlZEZvcm06IGFueVtdID0gW107XHJcblx0XHRsZXQgbGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uOiBQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbltdID1cclxuXHRcdFx0Y3VycmVudFN0YXR1cy5saXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb247XHJcblx0XHRpZiAobGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uICYmIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbi5sZW5ndGgpXHJcblx0XHRcdC8vIGZpbGwgdGhlIGxpc3QgYWN0aXZhdGVkIGZvcm1cclxuXHRcdFx0Zm9yIChjb25zdCBmb3JtIG9mIGxpc3RGb3JtKVxyXG5cdFx0XHRcdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24pXHJcblx0XHRcdFx0XHRpZiAoc2VjdGlvbi5pZEZvcm0gPT0gZm9ybS5pZCkge1xyXG5cdFx0XHRcdFx0XHRsaXN0QWN0aXZhdGVkRm9ybS5wdXNoKGZvcm0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdHJldHVybiBsaXN0QWN0aXZhdGVkRm9ybTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSB2YWxpZGF0ZWQgZG9jdW1lbnQgbGlzdCAqL1xyXG5cdGdldFZhbGlkYXRlZERvY3VtZW50KFxyXG5cdFx0Y3VycmVudFN0YXR1czogYW55LFxyXG5cdFx0bGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRcdGxpc3REb2N1bWVudCxcclxuXHRcdGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbixcclxuXHRcdGxpc3REYXRhRm9ybSxcclxuXHRcdHZhbGlkYXRlSnVzdFJlcXVpcmVkOiBib29sZWFuXHJcblx0KTogYW55W10ge1xyXG5cdFx0bGV0IGxpc3RWYWxpZGF0ZWREb2N1bWVudCA9IFtdO1xyXG5cdFx0aWYgKGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnQpIHtcclxuXHRcdFx0Ly8gaXQgY29udGFpbnMgdGhlIGRvY3VtZW50cyB0aGF0IGFyZSB2aXNpYmxlXHJcblx0XHRcdGxldCBsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50VmlzaWJsZSA9IFtdO1xyXG5cclxuXHRcdFx0Ly9jaGVja0lmU2hvdWxkVmFsaWRhdGVcclxuXHRcdFx0bGV0IHNob3VsZFZhbGlkYXRlRG9jdW1lbnRzOiBib29sZWFuID0gZmFsc2U7XHJcblx0XHRcdGxldCBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb246IFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uW10gPVxyXG5cdFx0XHRcdGN1cnJlbnRTdGF0dXMubGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uO1xyXG5cdFx0XHRpZiAobGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uICYmIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbi5sZW5ndGgpXHJcblx0XHRcdFx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbilcclxuXHRcdFx0XHRcdGlmIChzZWN0aW9uLnBsaUNuZlBhZ2VTZWN0aW9uKVxyXG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHNlY3Rpb24ucGxpQ25mUGFnZVNlY3Rpb24ua2V5TGFiZWwpIHtcclxuXHRcdFx0XHRcdFx0XHRjYXNlICdkb2N1bWVudG9zJzoge1xyXG5cdFx0XHRcdFx0XHRcdFx0c2hvdWxkVmFsaWRhdGVEb2N1bWVudHMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdGlmICghc2hvdWxkVmFsaWRhdGVEb2N1bWVudHMpIHJldHVybiBsaXN0VmFsaWRhdGVkRG9jdW1lbnQ7XHJcblxyXG5cdFx0XHQvLyByZXNvbHZlIHRoZSBjb25maWd1cmF0aW9uIHRoYXQgaXMgdmlzaWJsZVxyXG5cdFx0XHRpZiAobGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudCkge1xyXG5cdFx0XHRcdGZvciAoY29uc3QgY29uZmlndXJhdGlvbkRvY3VtZW50IG9mIGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnQpIHtcclxuXHRcdFx0XHRcdGxldCB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHRcdFx0XHRcdGlmIChjb25maWd1cmF0aW9uRG9jdW1lbnQuZm9ybXVsYSAmJiBjb25maWd1cmF0aW9uRG9jdW1lbnQuZm9ybXVsYS5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0bGV0IGZvcm11bGEgPSAnJztcclxuXHRcdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgZGF0YSA9IHsgc3RhdHVzbmFtZTogYXBwbGljYXRpb24uc3RhdGVOYW1lIH07XHJcblx0XHRcdFx0XHRcdFx0aWYgKGxpc3REYXRhRm9ybSlcclxuXHRcdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgZGF0YUZvcm0gb2YgbGlzdERhdGFGb3JtKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRmb3IgKGNvbnN0IHByb3BlcnR5IGluIGRhdGFGb3JtLmRhdGEpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YVtwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpXSA9IGRhdGFGb3JtLmRhdGFbcHJvcGVydHldO1xyXG5cdFx0XHRcdFx0XHRcdGZvcm11bGEgPSB0aGlzLnRva2VuU2VydmljZS5yZXBsYWNlVG9rZW5zRnJvbUxpc3RPYmplY3QoXHJcblx0XHRcdFx0XHRcdFx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnQubmFtZSxcclxuXHRcdFx0XHRcdFx0XHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudC5mb3JtdWxhLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YVxyXG5cdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHJlc3VsdCA9IGV2YWwoZm9ybXVsYSk7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRcdFx0XHR2aXNpYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICh2aXNpYmxlKSB7XHJcblx0XHRcdFx0XHRcdGxpc3RDb25maWd1cmF0aW9uRG9jdW1lbnRWaXNpYmxlLnB1c2goY29uZmlndXJhdGlvbkRvY3VtZW50KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIHJlc29sdmUgdGhlIGxpc3Qgb2YgZG9jdW1lbnRzXHJcblx0XHRcdGlmIChsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50VmlzaWJsZSkge1xyXG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdENvbmZpZ3VyYXRpb25Eb2N1bWVudFZpc2libGUubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGxldCBjb25maWd1cmF0aW9uRG9jdW1lbnQgPSBsaXN0Q29uZmlndXJhdGlvbkRvY3VtZW50VmlzaWJsZVtpXTtcclxuXHRcdFx0XHRcdGxldCBkb2N1bWVudDogRG9jdW1lbnQgPSB0aGlzLmdldERvY3VtZW50QnlDb25maWd1cmF0aW9uSWQoXHJcblx0XHRcdFx0XHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudC5pZCxcclxuXHRcdFx0XHRcdFx0bGlzdERvY3VtZW50LFxyXG5cdFx0XHRcdFx0XHRhcHBsaWNhdGlvbi5pZFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGlmICh2YWxpZGF0ZUp1c3RSZXF1aXJlZCkge1xyXG5cdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0KCFkb2N1bWVudCB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0KGRvY3VtZW50ICYmIGRvY3VtZW50Lmxpc3RBcmNoaXZlLmxlbmd0aCA9PSAwKSB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5hdXRvbWF0aWNEb2N1bWVudHNWYWxpZGF0ZWQoXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGlzdERhdGFGb3JtLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkb2N1bWVudFxyXG5cdFx0XHRcdFx0XHRcdFx0KSkgJiZcclxuXHRcdFx0XHRcdFx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnQucmVxdWlyZWRcclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5maWxsTGlzdFZhbGlkYXRlRG9jdW1lbnREZWZhdWx0KFxyXG5cdFx0XHRcdFx0XHRcdFx0bGlzdFZhbGlkYXRlZERvY3VtZW50LFxyXG5cdFx0XHRcdFx0XHRcdFx0YXBwbGljYXRpb24sXHJcblx0XHRcdFx0XHRcdFx0XHRjb25maWd1cmF0aW9uRG9jdW1lbnRcclxuXHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRpZiAoZG9jdW1lbnQpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoZG9jdW1lbnQuc3RhdGUgPT0gRURvY3VtZW50U3RhdGUuUEVORElFTlRFKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkRG9jdW1lbnQucHVzaChkb2N1bWVudCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZmlsbExpc3RWYWxpZGF0ZURvY3VtZW50RGVmYXVsdChcclxuXHRcdFx0XHRcdFx0XHRcdGxpc3RWYWxpZGF0ZWREb2N1bWVudCxcclxuXHRcdFx0XHRcdFx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50XHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGxpc3RWYWxpZGF0ZWREb2N1bWVudDtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZmlsbExpc3RWYWxpZGF0ZURvY3VtZW50RGVmYXVsdChcclxuXHRcdGxpc3RWYWxpZGF0ZWREb2N1bWVudCxcclxuXHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0Y29uZmlndXJhdGlvbkRvY3VtZW50XHJcblx0KSB7XHJcblx0XHRsZXQgZG9jdW1lbnQgPSBuZXcgRG9jdW1lbnQoKTtcclxuXHRcdGRvY3VtZW50LmFwcGxpY2F0aW9uSWQgPSBhcHBsaWNhdGlvbi5pZDtcclxuXHRcdGRvY3VtZW50LnByb21Db2RpZ28gPSBjb25maWd1cmF0aW9uRG9jdW1lbnQucHJvbUNvZGlnbztcclxuXHRcdGRvY3VtZW50LnN0YXRlID0gRURvY3VtZW50U3RhdGUuUEVORElFTlRFO1xyXG5cdFx0ZG9jdW1lbnQuY29uZmlndXJhdGlvbkRvY3VtZW50SWQgPSBjb25maWd1cmF0aW9uRG9jdW1lbnQuaWQ7XHJcblx0XHRkb2N1bWVudC5saXN0QXJjaGl2ZSA9IFtdO1xyXG5cdFx0bGlzdFZhbGlkYXRlZERvY3VtZW50LnB1c2goZG9jdW1lbnQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IGdldHMgZG9jdW1lbnQgYnkgY29uZmlndXJhdGlvbiBJZCAqL1xyXG5cdHByaXZhdGUgZ2V0RG9jdW1lbnRCeUNvbmZpZ3VyYXRpb25JZChcclxuXHRcdGNvbmZpZ3VyYXRpb25Eb2N1bWVudElkOiBudW1iZXIsXHJcblx0XHRsaXN0OiBBcnJheTxEb2N1bWVudD4sXHJcblx0XHRhcHBsaWNhdGlvbklkOiBzdHJpbmdcclxuXHQpOiBEb2N1bWVudCB7XHJcblx0XHRpZiAobGlzdClcclxuXHRcdFx0Zm9yIChjb25zdCBkb2N1bWVudCBvZiBsaXN0KVxyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdGRvY3VtZW50LmNvbmZpZ3VyYXRpb25Eb2N1bWVudElkID09PSBjb25maWd1cmF0aW9uRG9jdW1lbnRJZCAmJlxyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuYXBwbGljYXRpb25JZCA9PT0gYXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHRcdHJldHVybiBkb2N1bWVudDtcclxuXHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8qKiBnZXQgdGhlIGJ1ZGdldCBhcHBsaWNhdGlvbiBieSB0eXBlIGJ1ZGdldCBhbmQgYnVkZ2V0IHNldHVwIGlkICovXHJcblx0cHJpdmF0ZSBnZXRWYWxpZGF0ZWRCdWRnZXRBcHBsaWNhdGlvbihcclxuXHRcdGJ1ZGdldFNldHRpbmc6IGFueSxcclxuXHRcdHR5cGVCdWRnZXQ6IGFueSxcclxuXHRcdGxpc3RCdWRnZXQ6IEJ1ZGdldERhdGFbXSxcclxuXHRcdGFwcGxpY2F0aW9uSWRcclxuXHQpOiBhbnkge1xyXG5cdFx0aWYgKGxpc3RCdWRnZXQpXHJcblx0XHRcdGZvciAoY29uc3QgYnVkZ2V0IG9mIGxpc3RCdWRnZXQpXHJcblx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0YnVkZ2V0LnRhZyA9PSB0eXBlQnVkZ2V0ICYmXHJcblx0XHRcdFx0XHRidWRnZXRTZXR0aW5nLmNwcmVDb2RpZ28gPT0gYnVkZ2V0LmJ1ZGdldFNldHVwSWQgJiZcclxuXHRcdFx0XHRcdGJ1ZGdldC5hcHBsaWNhdGlvbklkID09IGFwcGxpY2F0aW9uSWRcclxuXHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLnZhbGlkYXRlQnVkZ2V0KGJ1ZGdldCwgYnVkZ2V0U2V0dGluZywgdHlwZUJ1ZGdldCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRlQnVkZ2V0KG51bGwsIGJ1ZGdldFNldHRpbmcsIHR5cGVCdWRnZXQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHZhbGlkYXRlcyB0aGUgYnVkZ2V0ICovXHJcblx0cHJpdmF0ZSB2YWxpZGF0ZUJ1ZGdldChidWRnZXQ6IGFueSwgYnVkZ2V0U2V0dGluZzogYW55LCB0eXBlOiBhbnkpIHtcclxuXHRcdGlmICghYnVkZ2V0IHx8ICFidWRnZXQuc3VtbWFyeSB8fCAhYnVkZ2V0LnN1bW1hcnkuYnVkZ2V0VG90YWwpXHJcblx0XHRcdC8vIHZhbGlkYXRlIGlmIHRoZXJlIGlzIGEgYnVkZ2V0IG9iamVjdFxyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJ1ZGdldDogYnVkZ2V0LFxyXG5cdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0YnVkZ2V0U2V0dGluZzogYnVkZ2V0U2V0dGluZyxcclxuXHRcdFx0XHRlcnJvcjogRUJ1ZGdldEVycm9yLk5PX09CSkVDVFxyXG5cdFx0XHR9O1xyXG5cdFx0ZWxzZSBpZiAoXHJcblx0XHRcdCh0eXBlID09PSBFQnVkZ2V0QnVpbGRUeXBlLmZpbmFuY2luZyB8fCB0eXBlID09PSBFQnVkZ2V0QnVpbGRUeXBlLm1peGVkKSAmJlxyXG5cdFx0XHRidWRnZXQuc3VtbWFyeS5idWRnZXRUb3RhbCA+IGJ1ZGdldFNldHRpbmcuY3ByZU1vbnRvVG90YWxcclxuXHRcdClcclxuXHRcdFx0Ly8gdmFsaWRhdGUgaWYgYW1vdW50IHRvdGFsIG92ZXJjb21lcyB0aGUgbWF4aW11bVxyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJ1ZGdldDogYnVkZ2V0LFxyXG5cdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0YnVkZ2V0U2V0dGluZzogYnVkZ2V0U2V0dGluZyxcclxuXHRcdFx0XHRlcnJvcjogRUJ1ZGdldEVycm9yLk9WRVJDT01FX01BWElNVU1fQU1PVU5UXHJcblx0XHRcdH07XHJcblx0XHRlbHNlIGlmIChcclxuXHRcdFx0dHlwZSA9PT0gRUJ1ZGdldEJ1aWxkVHlwZS5maW5hbmNpbmcgJiZcclxuXHRcdFx0KCFidWRnZXQuZmluYW5jaW5nU3RhcnQgfHwgIWJ1ZGdldC5maW5hbmNpbmdFbmQpXHJcblx0XHQpXHJcblx0XHRcdC8vIHZhbGlkYXRlIGlmIGZpbmFuY2luZyBkYXRlcyBhcmUgZGVmaW5lZFxyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJ1ZGdldDogYnVkZ2V0LFxyXG5cdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0YnVkZ2V0U2V0dGluZzogYnVkZ2V0U2V0dGluZyxcclxuXHRcdFx0XHRlcnJvcjogRUJ1ZGdldEVycm9yLkZJTkFOQ0lOR19EQVRFU1xyXG5cdFx0XHR9O1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHZhbGlkYXRlU3VtbWFyaXplZEJ1ZGdldChidWRnZXRTZXR0aW5nOiBhbnksIHR5cGU6IGFueSwgYnVkZ2V0OiBhbnkpIHtcclxuXHRcdGlmICghYnVkZ2V0IHx8ICFidWRnZXQuc3VtbWFyeSB8fCAhYnVkZ2V0LnN1bW1hcnkuYnVkZ2V0VG90YWwpIHtcclxuXHRcdFx0Ly8gdmFsaWRhdGUgaWYgdGhlcmUgaXMgYSBidWRnZXQgb2JqZWN0XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0YnVkZ2V0OiBidWRnZXQsXHJcblx0XHRcdFx0dHlwZTogdHlwZSxcclxuXHRcdFx0XHRidWRnZXRTZXR0aW5nOiBidWRnZXRTZXR0aW5nLFxyXG5cdFx0XHRcdGVycm9yOiBFQnVkZ2V0RXJyb3IuTk9fT0JKRUNUXHJcblx0XHRcdH07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZUNvbXBsZXRlQnVkZ2V0KGxpc3RCdWRnZXRTZXR0aW5nLCBsaXN0QnVkZ2V0LCBhcHBsaWNhdGlvbklkKTogYW55W10ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZ2V0VmFsaWRhdGVkQnVkZ2V0KGxpc3RCdWRnZXRTZXR0aW5nLCBsaXN0QnVkZ2V0LCBhcHBsaWNhdGlvbklkKTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSB2YWxpZGF0ZWQgYnVkZ2V0IGxpc3QgKi9cclxuXHRwcml2YXRlIGdldFZhbGlkYXRlZEJ1ZGdldChcclxuXHRcdGxpc3RCdWRnZXRTZXR0aW5nLFxyXG5cdFx0bGlzdEJ1ZGdldCxcclxuXHRcdGFwcGxpY2F0aW9uSWQsXHJcblx0XHRjdXJyZW50U3RhdHVzP1xyXG5cdCk6IGFueVtdIHtcclxuXHRcdGxldCBsaXN0VmFsaWRhdGVkQnVkZ2V0OiBhbnlbXSA9IFtdO1xyXG5cdFx0aWYgKGxpc3RCdWRnZXRTZXR0aW5nKSB7XHJcblx0XHRcdGxldCBzaG91bGRWYWxpZGF0ZVRvdGFsQnVkZ2V0OiBib29sZWFuID0gZmFsc2U7XHJcblx0XHRcdGxldCBzaG91bGRWYWxpZGF0ZUZpbmFuY2luZ0J1ZGdldDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdFx0XHRpZiAoY3VycmVudFN0YXR1cykge1xyXG5cdFx0XHRcdGxldCBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb246IFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uW10gPVxyXG5cdFx0XHRcdFx0Y3VycmVudFN0YXR1cy5saXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb247XHJcblx0XHRcdFx0aWYgKGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbiAmJiBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24ubGVuZ3RoKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIGxpc3RQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbilcclxuXHRcdFx0XHRcdFx0aWYgKHNlY3Rpb24ucGxpQ25mUGFnZVNlY3Rpb24pXHJcblx0XHRcdFx0XHRcdFx0c3dpdGNoIChzZWN0aW9uLnBsaUNuZlBhZ2VTZWN0aW9uLmtleUxhYmVsKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjYXNlICdwcmVzdXB1ZXN0by50b3RhbCc6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2hvdWxkVmFsaWRhdGVUb3RhbEJ1ZGdldCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAncHJlc3VwdWVzdG8uZmluYW5jaWFjaW9uJzoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzaG91bGRWYWxpZGF0ZUZpbmFuY2luZ0J1ZGdldCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzaG91bGRWYWxpZGF0ZVRvdGFsQnVkZ2V0ID0gdHJ1ZTtcclxuXHRcdFx0XHRzaG91bGRWYWxpZGF0ZUZpbmFuY2luZ0J1ZGdldCA9IHRydWU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGl0ZXJhdGUgb3ZlciBsaXN0QnVkZ2V0U2V0dGluZ1xyXG5cdFx0XHRmb3IgKGNvbnN0IGJ1ZGdldFNldHRpbmcgb2YgbGlzdEJ1ZGdldFNldHRpbmcpIHtcclxuXHRcdFx0XHQvLyBza2lwIGdlbmVyYWwgYnVkZ2V0XHJcblx0XHRcdFx0aWYgKGJ1ZGdldFNldHRpbmcucGxpVGlwb1ByZXN1cHVlc3RvLnRwcmVzQ29kaWdvID09IEVUaXBvUHJlc3VwdWVzdG8uR0VORVJBTClcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdC8vIGJ1ZGdldCB0b3RhbFxyXG5cdFx0XHRcdGNvbnN0IGJ1ZGdldERhdGFUb3RhbCA9IHRoaXMuZ2V0VmFsaWRhdGVkQnVkZ2V0QXBwbGljYXRpb24oXHJcblx0XHRcdFx0XHRidWRnZXRTZXR0aW5nLFxyXG5cdFx0XHRcdFx0RUJ1ZGdldEJ1aWxkVHlwZS50b3RhbCxcclxuXHRcdFx0XHRcdGxpc3RCdWRnZXQsXHJcblx0XHRcdFx0XHRhcHBsaWNhdGlvbklkXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRpZiAoYnVkZ2V0RGF0YVRvdGFsICYmIHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQpXHJcblx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkQnVkZ2V0LnB1c2goYnVkZ2V0RGF0YVRvdGFsKTtcclxuXHRcdFx0XHQvLyBpZiBpdCBoYXMgb3duIGZ1bmRzLCBzbyBpdCB2YWxpZGF0ZXMgdG90YWwgYW5kIGZpbmFuY2luZ1xyXG5cdFx0XHRcdGlmIChidWRnZXRTZXR0aW5nLmNwcmVFc0ZvbmRvc1Byb3Bpb3MpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGJ1ZGdldERhdGFGaW5hbmNpbmcgPSB0aGlzLmdldFZhbGlkYXRlZEJ1ZGdldEFwcGxpY2F0aW9uKFxyXG5cdFx0XHRcdFx0XHRidWRnZXRTZXR0aW5nLFxyXG5cdFx0XHRcdFx0XHRFQnVkZ2V0QnVpbGRUeXBlLmZpbmFuY2luZyxcclxuXHRcdFx0XHRcdFx0bGlzdEJ1ZGdldCxcclxuXHRcdFx0XHRcdFx0YXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGlmIChidWRnZXREYXRhRmluYW5jaW5nICYmIHNob3VsZFZhbGlkYXRlRmluYW5jaW5nQnVkZ2V0KVxyXG5cdFx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkQnVkZ2V0LnB1c2goYnVkZ2V0RGF0YUZpbmFuY2luZyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbGlzdFZhbGlkYXRlZEJ1ZGdldDtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSB2YWxpZGF0ZWQgZm9ybSBsaXN0ICovXHJcblx0cHJpdmF0ZSBnZXRWYWxpZGF0ZWRGb3JtTGlzdChsaXN0Rm9ybSwgbGlzdERhdGFGb3JtLCBhcHBsaWNhdGlvbklkKTogYW55W10ge1xyXG5cdFx0bGV0IGxpc3RWYWxpZGF0ZWRGb3JtOiBhbnlbXSA9IFtdO1xyXG5cdFx0aWYgKGxpc3RGb3JtKSB7XHJcblx0XHRcdC8vIGl0ZXJhdGUgb3ZlciBsaXN0Zm9ybVxyXG5cdFx0XHRmb3IgKGNvbnN0IGZvcm0gb2YgbGlzdEZvcm0pIHtcclxuXHRcdFx0XHQvLyBnZXQgZXJyb3JzIGJ5IGZvcm1JZCBhbmQgQXBwbGljYXRpb25JZFxyXG5cdFx0XHRcdGNvbnN0IGVycm9ycyA9IHRoaXMuZ2V0RXJyb3JzQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKFxyXG5cdFx0XHRcdFx0bGlzdERhdGFGb3JtLFxyXG5cdFx0XHRcdFx0Zm9ybS5pZCxcclxuXHRcdFx0XHRcdGFwcGxpY2F0aW9uSWRcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHRpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGNvbXBvbmVudHMgPSBGb3JtaW9VdGlsLmdldENvbXBvbmVudHMoZm9ybS5jb21wb25lbnRzKTtcclxuXHJcblx0XHRcdFx0XHQvLyBnZW5lcmF0ZSB0aGUgZXJyb3IgY29tcG9uZW50cyBhY2NvcmRpbmcgdG8gZXJyb3JzXHJcblx0XHRcdFx0XHRsZXQgZXJyb3JDb21wb25lbnQgPSBbXTtcclxuXHRcdFx0XHRcdGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XHJcblx0XHRcdFx0XHRcdGlmIChlcnJvciAmJiBlcnJvci5jb21wb25lbnQgJiYgZXJyb3IuY29tcG9uZW50LmtleSAmJiBjb21wb25lbnRzKSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChjb25zdCBjb21wb25lbnQgb2YgY29tcG9uZW50cykge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNvbXBvbmVudC5rZXkgPT0gZXJyb3IuY29tcG9uZW50LmtleSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvckNvbXBvbmVudC5wdXNoKGNvbXBvbmVudCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGlmIChlcnJvckNvbXBvbmVudCAmJiBlcnJvckNvbXBvbmVudC5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0Ly8gb3JnYW5pemluZyBieSBwYW5lbHNcclxuXHRcdFx0XHRcdFx0Y29uc3QgcGFuZWxzID0gRm9ybWlvVXRpbC5nZXRGb3JtYXR0ZWRDb21wb25lbnRzQnlQYW5lbChlcnJvckNvbXBvbmVudCk7XHJcblx0XHRcdFx0XHRcdC8vIGFkZCB0byBsaXN0VmFsaWRhdGVkRm9ybVxyXG5cdFx0XHRcdFx0XHRsaXN0VmFsaWRhdGVkRm9ybS5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRpZDogZm9ybS5pZCxcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBmb3JtLnRpdGxlLFxyXG5cdFx0XHRcdFx0XHRcdHBhbmVsczogcGFuZWxzLFxyXG5cdFx0XHRcdFx0XHRcdHRvZ2dsZTogZmFsc2VcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIHZlcmlmeSBpZiBkYXRhIGlzIGNvbXBsZXRlZFxyXG5cdFx0XHRcdFx0Ly8gZ2V0IGRhdGEgYnkgZm9ybSBpZCBhbmQgYXBwIGlkXHJcblx0XHRcdFx0XHRjb25zdCBkYXRhID0gdGhpcy5nZXREYXRhQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKFxyXG5cdFx0XHRcdFx0XHRsaXN0RGF0YUZvcm0sXHJcblx0XHRcdFx0XHRcdGZvcm0uaWQsXHJcblx0XHRcdFx0XHRcdGFwcGxpY2F0aW9uSWRcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHQvLyBnZXQgY29tcG9uZW50cyBhcmUgcmVxdWlyZWQgYWNjb3JkaW5nIHRvIGRhdGFcclxuXHRcdFx0XHRcdGNvbnN0IGNvbXBvbmVudHMgPSBGb3JtaW9VdGlsLmdldFJlcXVpcmVkQ29tcG9uZW50c0J5RGF0YShcclxuXHRcdFx0XHRcdFx0Zm9ybS5jb21wb25lbnRzLFxyXG5cdFx0XHRcdFx0XHRkYXRhXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0aWYgKGNvbXBvbmVudHMgJiYgY29tcG9uZW50cy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0Ly8gb3JnYW5pemluZyBieSBwYW5lbHNcclxuXHRcdFx0XHRcdFx0Y29uc3QgcGFuZWxzID0gRm9ybWlvVXRpbC5nZXRGb3JtYXR0ZWRDb21wb25lbnRzQnlQYW5lbChjb21wb25lbnRzKTtcclxuXHRcdFx0XHRcdFx0Ly8gYWRkIHRvIGxpc3RWYWxpZGF0ZWRGb3JtXHJcblx0XHRcdFx0XHRcdGxpc3RWYWxpZGF0ZWRGb3JtLnB1c2goe1xyXG5cdFx0XHRcdFx0XHRcdGlkOiBmb3JtLmlkLFxyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IGZvcm0udGl0bGUsXHJcblx0XHRcdFx0XHRcdFx0cGFuZWxzOiBwYW5lbHMsXHJcblx0XHRcdFx0XHRcdFx0dG9nZ2xlOiBmYWxzZVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBsaXN0VmFsaWRhdGVkRm9ybTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBkYXRhIGJ5IGZvcm1JZCBhbmQgQXBwbGljYXRpb25JZCAqL1xyXG5cdHByaXZhdGUgZ2V0RXJyb3JzQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKGxpc3REYXRhRm9ybSwgZm9ybUlkLCBhcHBsaWNhdGlvbklkKTogYW55IHtcclxuXHRcdGlmIChsaXN0RGF0YUZvcm0gJiYgZm9ybUlkICYmIGFwcGxpY2F0aW9uSWQpXHJcblx0XHRcdGZvciAoY29uc3QgZGF0YSBvZiBsaXN0RGF0YUZvcm0pXHJcblx0XHRcdFx0aWYgKGRhdGEuZm9ybUlkID09IGZvcm1JZCAmJiBkYXRhLmFwcGxpY2F0aW9uSWQgPT0gYXBwbGljYXRpb25JZClcclxuXHRcdFx0XHRcdHJldHVybiBkYXRhLmVycm9ycztcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGRhdGEgYnkgZm9ybUlkIGFuZCBBcHBsaWNhdGlvbklkICovXHJcblx0cHJpdmF0ZSBnZXREYXRhQnlGb3JtSWRBbmRBcHBsaWNhdGlvbklkKGxpc3REYXRhRm9ybSwgZm9ybUlkLCBhcHBsaWNhdGlvbklkKTogYW55IHtcclxuXHRcdGlmIChsaXN0RGF0YUZvcm0gJiYgZm9ybUlkICYmIGFwcGxpY2F0aW9uSWQpXHJcblx0XHRcdGZvciAoY29uc3QgZGF0YSBvZiBsaXN0RGF0YUZvcm0pXHJcblx0XHRcdFx0aWYgKGRhdGEuZm9ybUlkID09IGZvcm1JZCAmJiBkYXRhLmFwcGxpY2F0aW9uSWQgPT0gYXBwbGljYXRpb25JZCkgcmV0dXJuIGRhdGEuZGF0YTtcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Z2V0VmFsaWRhdGVkQnVkZ2V0U3VtbWFyaXplZChcclxuXHRcdGxpc3RCdWRnZXRTZXR0aW5nLFxyXG5cdFx0bGlzdEJ1ZGdldCxcclxuXHRcdGFwcGxpY2F0aW9uSWQsXHJcblx0XHRjdXJyZW50U3RhdHVzXHJcblx0KTogYW55W10ge1xyXG5cdFx0bGV0IGxpc3RWYWxpZGF0ZWRCdWRnZXQ6IGFueVtdID0gW107XHJcblx0XHRpZiAobGlzdEJ1ZGdldFNldHRpbmcpIHtcclxuXHRcdFx0bGV0IHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcdFx0aWYgKGN1cnJlbnRTdGF0dXMpIHtcclxuXHRcdFx0XHRsZXQgbGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uOiBQbGlDbmZTdGF0dXNQYWdlU2VjdGlvbltdID1cclxuXHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMubGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uO1xyXG5cdFx0XHRcdGlmIChsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24gJiYgbGlzdFBsaUNuZlN0YXR1c1BhZ2VTZWN0aW9uLmxlbmd0aClcclxuXHRcdFx0XHRcdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBsaXN0UGxpQ25mU3RhdHVzUGFnZVNlY3Rpb24pXHJcblx0XHRcdFx0XHRcdGlmIChzZWN0aW9uLnBsaUNuZlBhZ2VTZWN0aW9uKVxyXG5cdFx0XHRcdFx0XHRcdHN3aXRjaCAoc2VjdGlvbi5wbGlDbmZQYWdlU2VjdGlvbi5rZXlMYWJlbCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSBFQ25mUGFnZVNlY3Rpb24ucHJlc3VwdWVzdG9SZXN1bWlkbzoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzaG91bGRWYWxpZGF0ZVRvdGFsQnVkZ2V0ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IGJ1ZGdldERhdGFUb3RhbCA9IHRoaXMudmFsaWRhdGVTdW1tYXJpemVkQnVkZ2V0KFxyXG5cdFx0XHRcdGxpc3RCdWRnZXRTZXR0aW5nWzBdLFxyXG5cdFx0XHRcdEVCdWRnZXRCdWlsZFR5cGUudG90YWwsXHJcblx0XHRcdFx0bGlzdEJ1ZGdldFswXVxyXG5cdFx0XHQpO1xyXG5cdFx0XHRpZiAoYnVkZ2V0RGF0YVRvdGFsICYmIHNob3VsZFZhbGlkYXRlVG90YWxCdWRnZXQpXHJcblx0XHRcdFx0bGlzdFZhbGlkYXRlZEJ1ZGdldC5wdXNoKGJ1ZGdldERhdGFUb3RhbCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbGlzdFZhbGlkYXRlZEJ1ZGdldDtcclxuXHR9XHJcblxyXG5cdGF1dG9tYXRpY0RvY3VtZW50c1ZhbGlkYXRlZChcclxuXHRcdGNvbmZpZ0RvY3VtZW50OiBDb25maWd1cmF0aW9uRG9jdW1lbnQsXHJcblx0XHRsaXN0RGF0YUZvcm06IGFueVtdLFxyXG5cdFx0ZG9jdW1lbnQ6IERvY3VtZW50XHJcblx0KSB7XHJcblx0XHRpZiAoXHJcblx0XHRcdGNvbmZpZ0RvY3VtZW50LmZvcm11bGFWYWxpZGF0ZU11bHRpcGxlICYmXHJcblx0XHRcdGNvbmZpZ0RvY3VtZW50LmZvcm11bGFWYWxpZGF0ZU11bHRpcGxlLmxlbmd0aCA+IDBcclxuXHRcdCkge1xyXG5cdFx0XHRsZXQgZGF0YSA9IHsgc3RhdHVzbmFtZTogJycgfTtcclxuXHRcdFx0aWYgKGxpc3REYXRhRm9ybSlcclxuXHRcdFx0XHRmb3IgKGNvbnN0IGRhdGFGb3JtIG9mIGxpc3REYXRhRm9ybSlcclxuXHRcdFx0XHRcdGZvciAoY29uc3QgcHJvcGVydHkgaW4gZGF0YUZvcm0uZGF0YSlcclxuXHRcdFx0XHRcdFx0ZGF0YVtwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpXSA9IGRhdGFGb3JtLmRhdGFbcHJvcGVydHldO1xyXG5cdFx0XHRsZXQgZm9ybXVsYSA9IHRoaXMudG9rZW5TZXJ2aWNlLnJlcGxhY2VUb2tlbnNGcm9tTGlzdE9iamVjdChcclxuXHRcdFx0XHRjb25maWdEb2N1bWVudC5uYW1lLFxyXG5cdFx0XHRcdGNvbmZpZ0RvY3VtZW50LmZvcm11bGFWYWxpZGF0ZU11bHRpcGxlLFxyXG5cdFx0XHRcdGRhdGFcclxuXHRcdFx0KTtcclxuXHRcdFx0bGV0IHJlc3VsdCA9IGV2YWwoZm9ybXVsYSk7XHJcblx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHRsZXQgcmVzdWx0QXJyYXkgPSBKU09OLnBhcnNlKHJlc3VsdCk7XHJcblxyXG5cdFx0XHRcdGlmIChyZXN1bHRBcnJheSAmJiByZXN1bHRBcnJheS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHQvL1RoZW4gZG9jdW1lbnQgbXVzdCBoYXZlIGFyY2hpdmVzXHJcblx0XHRcdFx0XHRpZiAoIWRvY3VtZW50IHx8IGRvY3VtZW50Lmxpc3RBcmNoaXZlLmxlbmd0aCAhPT0gcmVzdWx0QXJyYXkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -22,8 +22,8 @@ export const VERSION = {
22
22
  },
23
23
  "suffix": "1936-gedcc1bab-dirty",
24
24
  "semverString": "0.0.18+1936.gedcc1bab",
25
- "version": "0.0.1703",
26
- "buildTimestamp": "2023-02-23T15:18:06.657Z"
25
+ "version": "0.0.1704",
26
+ "buildTimestamp": "2023-03-10T06:50:31.885Z"
27
27
  };
28
28
  /* tslint:enable */
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLDhCQUE4QjtJQUNyQyxNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVBQUUsU0FBUztJQUNoQixRQUFRLEVBQUU7UUFDTixTQUFTLEVBQUU7WUFDUCxPQUFPLEVBQUUsS0FBSztZQUNkLG1CQUFtQixFQUFFLEtBQUs7U0FDN0I7UUFDRCxPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsRUFBRTtRQUNYLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFLFFBQVE7S0FDdEI7SUFDRCxRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsU0FBUyxFQUFFLFVBQVU7SUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0NBQy9DLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCJ2MC4wLjE4LTE5MzYtZ2VkY2MxYmFiLWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiZ2VkY2MxYmFiXCIsXG4gICAgXCJkaXN0YW5jZVwiOiAxOTM2LFxuICAgIFwidGFnXCI6IFwidjAuMC4xOFwiLFxuICAgIFwic2VtdmVyXCI6IHtcbiAgICAgICAgXCJvcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgICAgICBcImluY2x1ZGVQcmVyZWxlYXNlXCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgIFwicmF3XCI6IFwidjAuMC4xOFwiLFxuICAgICAgICBcIm1ham9yXCI6IDAsXG4gICAgICAgIFwibWlub3JcIjogMCxcbiAgICAgICAgXCJwYXRjaFwiOiAxOCxcbiAgICAgICAgXCJwcmVyZWxlYXNlXCI6IFtdLFxuICAgICAgICBcImJ1aWxkXCI6IFtdLFxuICAgICAgICBcInZlcnNpb25cIjogXCIwLjAuMThcIlxuICAgIH0sXG4gICAgXCJzdWZmaXhcIjogXCIxOTM2LWdlZGNjMWJhYi1kaXJ0eVwiLFxuICAgIFwic2VtdmVyU3RyaW5nXCI6IFwiMC4wLjE4KzE5MzYuZ2VkY2MxYmFiXCIsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiMC4wLjE3MDNcIixcbiAgICBcImJ1aWxkVGltZXN0YW1wXCI6IFwiMjAyMy0wMi0yM1QxNToxODowNi42NTdaXCJcbn07XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLDhCQUE4QjtJQUNyQyxNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVBQUUsU0FBUztJQUNoQixRQUFRLEVBQUU7UUFDTixTQUFTLEVBQUU7WUFDUCxPQUFPLEVBQUUsS0FBSztZQUNkLG1CQUFtQixFQUFFLEtBQUs7U0FDN0I7UUFDRCxPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsRUFBRTtRQUNYLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFLFFBQVE7S0FDdEI7SUFDRCxRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsU0FBUyxFQUFFLFVBQVU7SUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0NBQy9DLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCJ2MC4wLjE4LTE5MzYtZ2VkY2MxYmFiLWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiZ2VkY2MxYmFiXCIsXG4gICAgXCJkaXN0YW5jZVwiOiAxOTM2LFxuICAgIFwidGFnXCI6IFwidjAuMC4xOFwiLFxuICAgIFwic2VtdmVyXCI6IHtcbiAgICAgICAgXCJvcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgICAgICBcImluY2x1ZGVQcmVyZWxlYXNlXCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgIFwicmF3XCI6IFwidjAuMC4xOFwiLFxuICAgICAgICBcIm1ham9yXCI6IDAsXG4gICAgICAgIFwibWlub3JcIjogMCxcbiAgICAgICAgXCJwYXRjaFwiOiAxOCxcbiAgICAgICAgXCJwcmVyZWxlYXNlXCI6IFtdLFxuICAgICAgICBcImJ1aWxkXCI6IFtdLFxuICAgICAgICBcInZlcnNpb25cIjogXCIwLjAuMThcIlxuICAgIH0sXG4gICAgXCJzdWZmaXhcIjogXCIxOTM2LWdlZGNjMWJhYi1kaXJ0eVwiLFxuICAgIFwic2VtdmVyU3RyaW5nXCI6IFwiMC4wLjE4KzE5MzYuZ2VkY2MxYmFiXCIsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiMC4wLjE3MDRcIixcbiAgICBcImJ1aWxkVGltZXN0YW1wXCI6IFwiMjAyMy0wMy0xMFQwNjo1MDozMS44ODVaXCJcbn07XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG4iXX0=
@@ -8319,6 +8319,14 @@ class DocumentService {
8319
8319
  setSubjectValidateDocumentsCheck(subjectValidateDocumentsCheck = true) {
8320
8320
  this.subjectValidateDocumentsCheck.next(subjectValidateDocumentsCheck);
8321
8321
  }
8322
+ /** It upload a document */
8323
+ uploadDocument(uploadDocument) {
8324
+ return this.httpClient.post(this.environment.host.backend.frontoffice + 'document/uploadDocument', uploadDocument, this.headerJson);
8325
+ }
8326
+ /** It upload a document */
8327
+ deleteDocument(deleteDocument) {
8328
+ return this.httpClient.post(this.environment.host.backend.frontoffice + 'document/deleteDocument', deleteDocument, this.headerJson);
8329
+ }
8322
8330
  }
8323
8331
  DocumentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DocumentService, deps: [{ token: 'environment' }, { token: i1.HttpClient }, { token: AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable });
8324
8332
  DocumentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DocumentService, providedIn: 'root' });
@@ -10831,7 +10839,7 @@ class SendApplicationService {
10831
10839
  let resultArray = JSON.parse(result);
10832
10840
  if (resultArray && resultArray.length > 0) {
10833
10841
  //Then document must have archives
10834
- if (!document || document.listArchive.length < resultArray.length) {
10842
+ if (!document || document.listArchive.length !== resultArray.length) {
10835
10843
  return true;
10836
10844
  }
10837
10845
  }
@@ -15341,8 +15349,8 @@ const VERSION = {
15341
15349
  },
15342
15350
  "suffix": "1936-gedcc1bab-dirty",
15343
15351
  "semverString": "0.0.18+1936.gedcc1bab",
15344
- "version": "0.0.1703",
15345
- "buildTimestamp": "2023-02-23T15:18:06.657Z"
15352
+ "version": "0.0.1704",
15353
+ "buildTimestamp": "2023-03-10T06:50:31.885Z"
15346
15354
  };
15347
15355
  /* tslint:enable */
15348
15356