@stiunb/unb-lib-components 18.0.27 → 18.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ Para publicar a biblioteca:
|
|
|
14
14
|
- alterar a versão no package.json do unb-lib-components (atenção, não é o package.json do showcase)
|
|
15
15
|
- ng build unb-lib-components (vai gerar uma pasta dist)
|
|
16
16
|
- cd dist/unb-lib-components
|
|
17
|
+
- npm login
|
|
17
18
|
- npm publish
|
|
18
19
|
- - (precisa estar logado no npm com o usuári da unb)
|
|
19
20
|
|
|
@@ -119,11 +119,11 @@ export class UnBPessoaService {
|
|
|
119
119
|
return this.http.get(url, this.getHeaders()).pipe(catchError(this.handleError));
|
|
120
120
|
}
|
|
121
121
|
findPessoaFisicaByCodigoPessoa(id) {
|
|
122
|
-
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/fisicas
|
|
122
|
+
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/fisicas?codigoPessoa=${id}`;
|
|
123
123
|
return this.http.get(url, this.getHeaders()).pipe(catchError(this.handleError));
|
|
124
124
|
}
|
|
125
125
|
findPessoaJuridicaByCodigoPessoa(id) {
|
|
126
|
-
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/juridicas
|
|
126
|
+
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/juridicas?codigoPessoa=${id}`;
|
|
127
127
|
return this.http.get(url, this.getHeaders()).pipe(catchError(this.handleError));
|
|
128
128
|
}
|
|
129
129
|
findPessoaFisica(filtro, page, size, sort) {
|
|
@@ -312,4 +312,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
312
312
|
providedIn: 'root'
|
|
313
313
|
}]
|
|
314
314
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFZM0QsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBTHBDLHFEQUFxRDtRQUM3QyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1RCxzRUFBc0U7UUFDdEUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUEyU3BELHNFQUFzRTtRQUN0RSw0QkFBNEI7UUFDNUIsc0VBQXNFO1FBQzlELGdCQUFXLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNuQyxJQUFJLGVBQWUsR0FBRyw0Q0FBNEMsQ0FBQztZQUNuRSxJQUFJLFlBQVksR0FBRyxnREFBZ0QsQ0FBQztZQUVwRSxxQ0FBcUM7WUFDckMsSUFBSSxTQUFjLENBQUM7WUFFbkIsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDekMsK0RBQStEO2dCQUMvRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixt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TTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW5kZXJlY28gfSBmcm9tICcuL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZW5kZXJlY28ubW9kZWwnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FFc2NvbGFyaWRhZGUgfSBmcm9tICcuL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZXNjb2xhcmlkYWRlLm1vZGVsJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRXN0YWRvQ2l2aWwgfSBmcm9tICcuL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZXN0YWRvLWNpdmlsLm1vZGVsJztcclxuaW1wb3J0IHsgVW5iUGVzc29hTXVuaW5jaXBpbyB9IGZyb20gJy4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS1tdW5pY2lwaW8nO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FQYWlzIH0gZnJvbSAnLi91bmItcGVzc29hLW1vZGVscy91bmItcGVzc29hLXBhaXMnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FNb2RlbCB9IGZyb20gJy4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS5tb2RlbCc7XHJcbmltcG9ydCB7IFVuYlRpcG9QZXNzb2FFbnVtIH0gZnJvbSAnLi91bmItdGlwby1wZXNzb2EuZW51bSc7XHJcblxyXG4vLyBJbnRlcmZhY2UgcGFyYSBwYWRyb25pemFyIG8gZXJybyBxdWUgY2hlZ2Egbm9zIGNvbXBvbmVudGVzXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5iUGVzc29hRXJyb1BhZHJhbyB7XHJcbiAgc3RhdHVzOiBudW1iZXI7XHJcbiAgbWVuc2FnZW1TaW1wbGVzOiBzdHJpbmc7IC8vIFBhcmEgdXNhciBubyBTbmFja0JhclxyXG4gIG1lbnNhZ2VtSHRtbDogc3RyaW5nOyAgICAvLyBQYXJhIHVzYXIgbm8gQWxlcnRTZXJ2aWNlIChjb20gPHVsPiwgPGxpPiwgPHN0cm9uZz4pXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuQlBlc3NvYVNlcnZpY2Uge1xyXG5cclxuICAvLyBBcm1hemVuYSBhcGVuYXMgYSBzdHJpbmcgZGEgVVJMLiBJbmljaWFsaXphIHZhemlvLlxyXG4gIHByaXZhdGUgYmFja2VuZFVybFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gIC8vIEV4cG9zdGEgY29tbyBPYnNlcnZhYmxlIChjYXNvIGFsZ3VtIGNvbXBvbmVudGUgcXVlaXJhIHNlIGluc2NyZXZlcilcclxuICBiYWNrZW5kVXJsJCA9IHRoaXMuYmFja2VuZFVybFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gIC8vIFNldHRlciBhZ29yYSByZWNlYmUgc3RyaW5nIGRpcmV0YVxyXG4gIHNldEJhY2tlbmRVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIC8vIFRyYXRhbWVudG8gcmVtb3ZlIGJhcnJhIG5vIGZpbmFsIHBhcmEgcGFkcm9uaXphclxyXG4gICAgaWYgKHVybC5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAgIHVybCA9IHVybC5zbGljZSgwLCAtMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJhY2tlbmRVcmxTdWJqZWN0Lm5leHQodXJsKTtcclxuICB9XHJcblxyXG4gIC8vIEdldHRlciByZXRvcm5hIHN0cmluZyBkaXJldGFcclxuICBnZXRCYWNrZW5kVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kVXJsU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVhZGVycyBwYWRyw6NvXHJcbiAgcHJpdmF0ZSBnZXRIZWFkZXJzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgIH0pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gTcOpdG9kb3MgZGUgYnVzY2FcclxuICBmaW5kQnlDcGYoY3BmOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXM/Y3BmPSR7Y3BmfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FNb2RlbD4odXJsLCB0aGlzLmdldEhlYWRlcnMoKSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRCeUNucGooY25wajogc3RyaW5nIHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxVbmJQZXNzb2FNb2RlbD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYWNrZW5kVXJsKCl9L3Blc3NvYS1hcGkvcGVzc29hcy9qdXJpZGljYXM/Y25waj0ke2NucGp9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsPih1cmwsIHRoaXMuZ2V0SGVhZGVycygpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEJ5UGFzc2Fwb3J0ZShwYXNzYXBvcnRlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXM/cGFzc2Fwb3J0ZT0ke3Bhc3NhcG9ydGV9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsPih1cmwsIHRoaXMuZ2V0SGVhZGVycygpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZFBlc3NvYUZpc2ljYUJ5Q29kaWdvUGVzc29hKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXMvY29kaWdvUGVzc29hPSR7aWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsPih1cmwsIHRoaXMuZ2V0SGVhZGVycygpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZFBlc3NvYUp1cmlkaWNhQnlDb2RpZ29QZXNzb2EoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8VW5iUGVzc29hTW9kZWw+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3Blc3NvYXMvanVyaWRpY2FzL2NvZGlnb1Blc3NvYT0ke2lkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FNb2RlbD4odXJsLCB0aGlzLmdldEhlYWRlcnMoKSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRQZXNzb2FGaXNpY2EoZmlsdHJvOiBVbmJQZXNzb2FNb2RlbCwgcGFnZT86IG51bWJlciwgc2l6ZT86IG51bWJlciwgc29ydD86IHN0cmluZyk6IE9ic2VydmFibGU8VW5iUGVzc29hTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYWNrZW5kVXJsKCl9L3Blc3NvYS1hcGkvcGVzc29hcy9maXNpY2FzYDtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgIE9iamVjdC5rZXlzKGZpbHRybykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbG9yID0gZmlsdHJvW2tleSBhcyBrZXlvZiBVbmJQZXNzb2FNb2RlbF07XHJcbiAgICAgIGlmICh2YWxvciAhPT0gbnVsbCAmJiB2YWxvciAhPT0gdW5kZWZpbmVkICYmIHZhbG9yICE9PSAnJykge1xyXG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCB2YWxvci50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gMi4gQWRpY2lvbmEgb3MgcGFyw6JtZXRyb3MgZGUgUGFnaW5hw6fDo28gKHNlIGZvcmFtIHBhc3NhZG9zKVxyXG4gICAgaWYgKHBhZ2UgIT09IHVuZGVmaW5lZCAmJiBwYWdlICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2UnLCBwYWdlLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNpemUgIT09IHVuZGVmaW5lZCAmJiBzaXplICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NpemUnLCBzaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNvcnQpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc29ydCcsIHNvcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDMuIE1vbnRhIGFzIG9ww6fDtWVzIGRhIHJlcXVpc2nDp8Ojb1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICAuLi50aGlzLmdldEhlYWRlcnMoKSAvLyBUZW50YSBlc3BhbGhhciBhcyBwcm9wcmllZGFkZXMgc2UgZ2V0SGVhZGVycyByZXRvcm5hciB7IGhlYWRlcnM6IC4uLiB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsW10+KHVybCwgb3B0aW9ucylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZFBlc3NvYUp1cmlkaWNhKGZpbHRybzogVW5iUGVzc29hTW9kZWwsIHBhZ2U/OiBudW1iZXIsIHNpemU/OiBudW1iZXIsIHNvcnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3Blc3NvYXMvanVyaWRpY2FzYDtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgIC8vIDEuIEFkaWNpb25hIEFQRU5BUyBvcyBmaWx0cm9zIHBlcm1pdGlkb3MgZG8gTW9kZWxcclxuICAgIGNvbnN0IGNhbXBvc1Blcm1pdGlkb3MgPSBbJ2lkUGVzc29hJywgJ2NvZGlnb1Blc3NvYScsICdjbnBqJywgJ25vbWVGYW50YXNpYScsICdyYXphb1NvY2lhbCcsICdzaWdsYSddO1xyXG5cclxuICAgIE9iamVjdC5rZXlzKGZpbHRybykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGlmIChjYW1wb3NQZXJtaXRpZG9zLmluY2x1ZGVzKGtleSkpIHtcclxuICAgICAgICBjb25zdCB2YWxvciA9IGZpbHRyb1trZXkgYXMga2V5b2YgVW5iUGVzc29hTW9kZWxdO1xyXG4gICAgICAgIGlmICh2YWxvciAhPT0gbnVsbCAmJiB2YWxvciAhPT0gdW5kZWZpbmVkICYmIHZhbG9yICE9PSAnJykge1xyXG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIHZhbG9yLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gMi4gQWRpY2lvbmEgb3MgcGFyw6JtZXRyb3MgZGUgUGFnaW5hw6fDo28gKHNlIGZvcmFtIHBhc3NhZG9zKVxyXG4gICAgaWYgKHBhZ2UgIT09IHVuZGVmaW5lZCAmJiBwYWdlICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2UnLCBwYWdlLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNpemUgIT09IHVuZGVmaW5lZCAmJiBzaXplICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NpemUnLCBzaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNvcnQpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc29ydCcsIHNvcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDMuIE1vbnRhIGFzIG9ww6fDtWVzIGRhIHJlcXVpc2nDp8Ojb1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICAuLi50aGlzLmdldEhlYWRlcnMoKSAvLyBUZW50YSBlc3BhbGhhciBhcyBwcm9wcmllZGFkZXMgc2UgZ2V0SGVhZGVycyByZXRvcm5hciB7IGhlYWRlcnM6IC4uLiB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsW10+KHVybCwgb3B0aW9ucylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcGVzcXVpc2FyQ2VwKGNlcDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wdWJsaWMvYnVzY2EtY2VwL3NlcnZpY28tMS8ke2NlcH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VW5iUGVzc29hRW5kZXJlY28+KHVybCwgdGhpcy5nZXRIZWFkZXJzKCkpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBTYWx2YXIgKGRlY2lkZSBmaXNpY2Egb3UganVyaWRpY2EpXHJcbiAgc2FsdmFyKHBheWxvYWQ6IGFueSwgdGlwb1Blc3NvYTogVW5iVGlwb1Blc3NvYUVudW0pOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsIHwgbnVsbD4ge1xyXG5cclxuICAgIC8vIChQYXJhIG8gY29tcG9uZW50ZSBjb25zZWd1aXIgbGVyIC5tZW5zYWdlbVNpbXBsZXMgZSAubWVuc2FnZW1IdG1sKVxyXG4gICAgaWYgKCFwYXlsb2FkKSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICh7XHJcbiAgICAgICAgc3RhdHVzOiA0MDAsXHJcbiAgICAgICAgbWVuc2FnZW1TaW1wbGVzOiAnRXJybyBpbnRlcm5vOiBEYWRvcyBwYXJhIHNhbHZhbWVudG8gaW52w6FsaWRvcyAoUGF5bG9hZCBudWxsKS4nLFxyXG4gICAgICAgIG1lbnNhZ2VtSHRtbDogJzxzdHJvbmc+RXJybyBpbnRlcm5vOjwvc3Ryb25nPiBUZW50YXRpdmEgZGUgc2FsdmFyIGRhZG9zIHZhemlvcy4nXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRpcG9QZXNzb2EpIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gKHtcclxuICAgICAgICBzdGF0dXM6IDQwMCxcclxuICAgICAgICBtZW5zYWdlbVNpbXBsZXM6ICdFcnJvIGludGVybm86IFRpcG8gZGUgcGVzc29hIG7Do28gZGVmaW5pZG8uJyxcclxuICAgICAgICBtZW5zYWdlbUh0bWw6ICc8c3Ryb25nPkVycm8gaW50ZXJubzo8L3N0cm9uZz4gTyB0aXBvIGRlIHBlc3NvYSDDqSBvYnJpZ2F0w7NyaW8gcGFyYSBzYWx2YXIuJ1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMi4gRGVsZWdhw6fDo29cclxuICAgIC8vIENvbW8gc2F2ZVBlc3NvYUZpc2ljYSBlIHNhdmVQZXNzb2FKdXJpZGljYSBKw4EgVMOKTSBvIC5waXBlKGNhdGNoRXJyb3IpLFxyXG4gICAgLy8gYXF1aSBuw7NzIGFwZW5hcyByZXRvcm5hbW9zIG8gT2JzZXJ2YWJsZSBkZWxlcy4gTyBlcnJvIHN1Ymlyw6EgdHJhdGFkby5cclxuICAgIGlmICh0aXBvUGVzc29hID09IFVuYlRpcG9QZXNzb2FFbnVtLkZJU0lDQSB8fCB0aXBvUGVzc29hID09IFVuYlRpcG9QZXNzb2FFbnVtLkVTVFJBTkdFSVJBKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhdmVQZXNzb2FGaXNpY2EocGF5bG9hZCk7XHJcbiAgICB9IGVsc2UgaWYgKHRpcG9QZXNzb2EgPT0gVW5iVGlwb1Blc3NvYUVudW0uSlVSSURJQ0EpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2F2ZVBlc3NvYUp1cmlkaWNhKHBheWxvYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcblxyXG4gIC8vIFNhbHZhciBQZXNzb2EgRsOtc2ljYVxyXG4gIHByaXZhdGUgc2F2ZVBlc3NvYUZpc2ljYShwZXNzb2E6IFVuYlBlc3NvYU1vZGVsKTogT2JzZXJ2YWJsZTxVbmJQZXNzb2FNb2RlbD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRCYWNrZW5kVXJsKCk7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHBlc3NvYSk7XHJcblxyXG4gICAgLy8gVmFyacOhdmVsIHBhcmEgYXJtYXplbmFyIG8gT2JzZXJ2YWJsZSBhbnRlcyBkZSByZXRvcm5hclxyXG4gICAgbGV0IHJlcXVlc3QkOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPjtcclxuXHJcbiAgICBpZiAocGVzc29hLmNvZGlnb1Blc3NvYSA9PSBudWxsKSB7XHJcbiAgICAgIHJlcXVlc3QkID0gdGhpcy5odHRwLnBvc3Q8VW5iUGVzc29hTW9kZWw+KGAke3VybH0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXNgLCBib2R5LCBodHRwT3B0aW9ucyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wdXQ8VW5iUGVzc29hTW9kZWw+KGAke3VybH0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXMvJHtwZXNzb2EuY29kaWdvUGVzc29hfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBbnRlcyBkZSByZXRvcm5hciwgcGFzc2Ftb3MgcGVsbyAncGlwZScgcGFyYSB0cmF0YXIgbyBlcnJvIHNlIGVsZSBvY29ycmVyLlxyXG4gICAgcmV0dXJuIHJlcXVlc3QkLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBTYWx2YXIgUGVzc29hIEp1csOtZGljYVxyXG4gIHByaXZhdGUgc2F2ZVBlc3NvYUp1cmlkaWNhKHBlc3NvYTogVW5iUGVzc29hTW9kZWwpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldEJhY2tlbmRVcmwoKTtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0gdGhpcy5nZXRIZWFkZXJzKCk7XHJcbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkocGVzc29hKTtcclxuICAgIGxldCByZXF1ZXN0JDogT2JzZXJ2YWJsZTxVbmJQZXNzb2FNb2RlbD47XHJcblxyXG4gICAgaWYgKHBlc3NvYS5jb2RpZ29QZXNzb2EgPT0gbnVsbCkge1xyXG4gICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wb3N0PFVuYlBlc3NvYU1vZGVsPihgJHt1cmx9L3Blc3NvYS1hcGkvcGVzc29hcy9qdXJpZGljYXNgLCBib2R5LCBodHRwT3B0aW9ucyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wdXQ8VW5iUGVzc29hTW9kZWw+KGAke3VybH0vcGVzc29hLWFwaS9wZXNzb2FzL2p1cmlkaWNhcy8ke3Blc3NvYS5jb2RpZ29QZXNzb2F9YCwgYm9keSwgaHR0cE9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXF1ZXN0JC5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gRGFkb3MgYXV4aWxpYXJlcyBww7pibGljb3NcclxuICBwdWJsaWMgZ2V0RXNjb2xhcmlkYWRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VW5iUGVzc29hRXNjb2xhcmlkYWRlW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9lc2NvbGFyaWRhZGVzL2xpc3RhZ2VtYCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSAvLyA8LS0tIEFkaWNpb25lIGFxdWlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RXN0YWRvQ2l2aWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FFc3RhZG9DaXZpbFtdPihgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wdWJsaWMvZXN0YWRvcy1jaXZpcy9saXN0YWdlbWApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikgLy8gPC0tLSBBZGljaW9uZSBhcXVpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE11bmljaXBpb3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FNdW5pbmNpcGlvW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9tdW5pY2lwaW9zL2xpc3RhZ2VtYCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSAvLyA8LS0tIEFkaWNpb25lIGFxdWlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFpc2VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBjb250ZW50OiBVbmJQZXNzb2FQYWlzW10gfT4oXHJcbiAgICAgIGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9wYWlzZXMvbGlzdGFnZW0/JnBhZ2U9MCZzaXplPTIwMCZzb3J0PWRlbm9taW5hY2FvLGFzY2BcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuY29udGVudC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAvLyAuLi4gc3VhIGzDs2dpY2EgZGUgb3JkZW5hw6fDo28gLi4uXHJcbiAgICAgICAgICBjb25zdCBub21lQSA9IGE/LmRlbm9taW5hY2FvPy50b1VwcGVyQ2FzZSgpIHx8ICcnO1xyXG4gICAgICAgICAgY29uc3Qgbm9tZUIgPSBiPy5kZW5vbWluYWNhbz8udG9VcHBlckNhc2UoKSB8fCAnJztcclxuICAgICAgICAgIGlmIChub21lQSA9PT0gJ0JSQVNJTCcpIHJldHVybiAtMTtcclxuICAgICAgICAgIGlmIChub21lQiA9PT0gJ0JSQVNJTCcpIHJldHVybiAxO1xyXG4gICAgICAgICAgcmV0dXJuIG5vbWVBLmxvY2FsZUNvbXBhcmUobm9tZUIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSYWNhQ29yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9ldG5pYXMvbGlzdGFnZW1gKS5waXBlKFxyXG4gICAgICBtYXAobGlzdGEgPT4gbGlzdGEubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcclxuICAgICAgICBjb2RpZ286IGluZGV4LCAvLyBnZXJhIHVtIGPDs2RpZ28gbnVtw6lyaWNvIHNlcXVlbmNpYWxcclxuICAgICAgICBkZW5vbWluYWNhbzogdGhpcy5mb3JtYXRhckxhYmVsKGl0ZW0pIC8vIGZvcm1hdGEgc2UgcXVpc2VyXHJcbiAgICAgIH0pKSksXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VGlwb0VtYWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3RpcG9zLWVtYWlsL3B1YmxpYy9saXN0YWdlbWApLnBpcGUoXHJcbiAgICAgIG1hcChsaXN0YSA9PiBsaXN0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoe1xyXG4gICAgICAgIGNvZGlnbzogaW5kZXgsIC8vIGdlcmEgdW0gY8OzZGlnbyBudW3DqXJpY28gc2VxdWVuY2lhbFxyXG4gICAgICAgIGRlbm9taW5hY2FvOiB0aGlzLmZvcm1hdGFyTGFiZWwoaXRlbSkgLy8gZm9ybWF0YSBzZSBxdWlzZXJcclxuICAgICAgfSkpKSxcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUaXBvRW5kZXJlY28oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5nZXRCYWNrZW5kVXJsKCl9L3Blc3NvYS1hcGkvdGlwb3MtZW5kZXJlY28vcHVibGljL2xpc3RhZ2VtYCkucGlwZShcclxuICAgICAgbWFwKGxpc3RhID0+IGxpc3RhLm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7XHJcbiAgICAgICAgY29kaWdvOiBpbmRleCwgLy8gZ2VyYSB1bSBjw7NkaWdvIG51bcOpcmljbyBzZXF1ZW5jaWFsXHJcbiAgICAgICAgZGVub21pbmFjYW86IHRoaXMuZm9ybWF0YXJMYWJlbChpdGVtKSAvLyBmb3JtYXRhIHNlIHF1aXNlclxyXG4gICAgICB9KSkpLFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRpcG9UZWxlZm9uZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS90aXBvcy10ZWxlZm9uZS9wdWJsaWMvbGlzdGFnZW1gKS5waXBlKFxyXG4gICAgICBtYXAobGlzdGEgPT4gbGlzdGEubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcclxuICAgICAgICBjb2RpZ286IGluZGV4LCAvLyBnZXJhIHVtIGPDs2RpZ28gbnVtw6lyaWNvIHNlcXVlbmNpYWxcclxuICAgICAgICBkZW5vbWluYWNhbzogdGhpcy5mb3JtYXRhckxhYmVsKGl0ZW0pIC8vIGZvcm1hdGEgc2UgcXVpc2VyXHJcbiAgICAgIH0pKSksXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdGFyTGFiZWwodGV4dDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGV4dFxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAucmVwbGFjZSgvXy9nLCAnICcpXHJcbiAgICAgIC5yZXBsYWNlKC9cXGJcXHcvZywgbCA9PiBsLnRvVXBwZXJDYXNlKCkpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBIQU5ETEUgRVJST1IgUEFEUk9OSVpBRE8gXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IgPSAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgbGV0IG1lbnNhZ2VtU2ltcGxlcyA9ICdPY29ycmV1IHVtIGVycm8gYW8gcHJvY2Vzc2FyIGEgcmVxdWlzacOnw6NvISc7XHJcbiAgICBsZXQgbWVuc2FnZW1IdG1sID0gJzxzdHJvbmc+T2NvcnJldSB1bSBlcnJvIGRlc2NvbmhlY2lkby48L3N0cm9uZz4nO1xyXG5cclxuICAgIC8vIDIuIERlc2NvYnJlIHF1ZW0gw6kgbyBjb3JwbyBkbyBlcnJvXHJcbiAgICBsZXQgZXJyb3JCb2R5OiBhbnk7XHJcblxyXG4gICAgaWYgKGVycm9yLmRldGFsaGVzIHx8IGVycm9yLmNvZGlnb1N0YXR1cykge1xyXG4gICAgICAvLyBDQVNPIDE6IE8gSW50ZXJjZXB0b3IgasOhIGRlc2VtYnJ1bGhvdSBvIGVycm8gKMOpIG8gSlNPTiBwdXJvKVxyXG4gICAgICBlcnJvckJvZHkgPSBlcnJvcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIENBU08gMjogw4kgdW0gSHR0cEVycm9yUmVzcG9uc2UgcGFkcsOjbyAodGVtIGEgcHJvcHJpZWRhZGUgLmVycm9yKVxyXG4gICAgICBlcnJvckJvZHkgPSBlcnJvci5lcnJvciB8fCBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyAzLiBMw7NnaWNhIGRlIExpbXBlemEgZSBQYXJzZSAoc2UgZm9yIHN0cmluZyBzdWphKVxyXG4gICAgaWYgKHR5cGVvZiBlcnJvckJvZHkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgZXJyb3JCb2R5ID0gSlNPTi5wYXJzZShlcnJvckJvZHkpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBlcnJvckJvZHkuaW5kZXhPZigneycpO1xyXG4gICAgICAgIGNvbnN0IGVuZCA9IGVycm9yQm9keS5sYXN0SW5kZXhPZignfScpO1xyXG4gICAgICAgIGlmIChzdGFydCA+IC0xICYmIGVuZCA+IHN0YXJ0KSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBlcnJvckJvZHkgPSBKU09OLnBhcnNlKGVycm9yQm9keS5zdWJzdHJpbmcoc3RhcnQsIGVuZCArIDEpKTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGUyKSB7XHJcbiAgICAgICAgICAgIC8vIFNlIGZhbGhhciBvIHBhcnNlLCB1c2EgbyB0ZXh0byBjb21vIG1lbnNhZ2VtXHJcbiAgICAgICAgICAgIG1lbnNhZ2VtU2ltcGxlcyA9IGVycm9yQm9keS5zdWJzdHJpbmcoMCwgMjAwKTtcclxuICAgICAgICAgICAgbWVuc2FnZW1IdG1sID0gYDxzdHJvbmc+JHtlcnJvckJvZHl9PC9zdHJvbmc+YDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyA0LiBGb3JtYXRhw6fDo28gYmFzZWFkYSBubyBKU09OIGlkZW50aWZpY2Fkb1xyXG4gICAgaWYgKGVycm9yQm9keSAmJiB0eXBlb2YgZXJyb3JCb2R5ID09PSAnb2JqZWN0Jykge1xyXG5cclxuICAgICAgLy8gQTogRXJyb3MgZGUgVmFsaWRhw6fDo29cclxuICAgICAgaWYgKGVycm9yQm9keS5kZXRhbGhlcyAmJiBBcnJheS5pc0FycmF5KGVycm9yQm9keS5kZXRhbGhlcykgJiYgZXJyb3JCb2R5LmRldGFsaGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBtZW5zYWdlbVNpbXBsZXMgPSBcIk8gZm9ybXVsw6FyaW8gcG9zc3VpIGVycm9zIGRlIHZhbGlkYcOnw6NvLlwiO1xyXG5cclxuICAgICAgICBjb25zdCBsaXN0YUVycm9zID0gZXJyb3JCb2R5LmRldGFsaGVzLm1hcCgoZDogYW55KSA9PlxyXG4gICAgICAgICAgYDxsaT48c3Ryb25nPiR7ZC5ub21lQ2FtcG8gfHwgJ0NhbXBvJ306PC9zdHJvbmc+ICR7ZC5jcml0aWNhIHx8IGQubWVuc2FnZW19PC9saT5gXHJcbiAgICAgICAgKS5qb2luKCcnKTtcclxuXHJcbiAgICAgICAgbWVuc2FnZW1IdG1sID0gYDxzdHJvbmc+RXJyb3MgZGUgVmFsaWRhw6fDo286PC9zdHJvbmc+IDx1bD4ke2xpc3RhRXJyb3N9PC91bD5gO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIEI6IEVycm8gR2Vuw6lyaWNvIGNvbSBtZW5zYWdlbVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBtc2dCYWNrZW5kID0gZXJyb3JCb2R5Lm1lbnNhZ2VtIHx8IGVycm9yQm9keS5tZXNzYWdlIHx8IGVycm9yQm9keS5kZXRhaWw7XHJcbiAgICAgICAgaWYgKG1zZ0JhY2tlbmQpIHtcclxuICAgICAgICAgIG1lbnNhZ2VtU2ltcGxlcyA9IG1zZ0JhY2tlbmQ7XHJcbiAgICAgICAgICBtZW5zYWdlbUh0bWwgPSBgPHN0cm9uZz4ke21zZ0JhY2tlbmR9PC9zdHJvbmc+YDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyA1LiBUcmF0YW1lbnRvcyBkZSBTdGF0dXMgSFRUUCAoU2UgbyB3cmFwcGVyIG9yaWdpbmFsIHRpdmVyIHN0YXR1cylcclxuICAgIC8vIE5vdGE6IFNlIG8gaW50ZXJjZXB0b3IgZGVzZW1icnVsaG91LCAnZXJyb3Iuc3RhdHVzJyBwb2RlIG7Do28gZXhpc3RpciwgXHJcbiAgICAvLyBtYXMgJ2Vycm9yQm9keS5jb2RpZ29TdGF0dXMnIChkbyBKYXZhKSBwb2RlIGV4aXN0aXIuXHJcbiAgICBjb25zdCBzdGF0dXMgPSBlcnJvci5zdGF0dXMgfHwgZXJyb3JCb2R5Py5jb2RpZ29TdGF0dXMgfHwgMDtcclxuXHJcbiAgICBpZiAoc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgbWVuc2FnZW1TaW1wbGVzID0gXCJTZXNzw6NvIGV4cGlyYWRhLlwiO1xyXG4gICAgICBtZW5zYWdlbUh0bWwgPSBcIjxzdHJvbmc+U2Vzc8OjbyBleHBpcmFkYS4gRmHDp2EgbG9naW4gbm92YW1lbnRlLjwvc3Ryb25nPlwiO1xyXG4gICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IDQwMykge1xyXG4gICAgICBtZW5zYWdlbVNpbXBsZXMgPSBcIkFjZXNzbyBOZWdhZG8uXCI7XHJcbiAgICAgIG1lbnNhZ2VtSHRtbCA9IFwiPHN0cm9uZz5Wb2PDqiBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgcmVhbGl6YXIgZXN0YSBhw6fDo28uPC9zdHJvbmc+XCI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb0Zvcm1hdGFkbzogVW5iUGVzc29hRXJyb1BhZHJhbyA9IHtcclxuICAgICAgc3RhdHVzOiBzdGF0dXMsXHJcbiAgICAgIG1lbnNhZ2VtU2ltcGxlcyxcclxuICAgICAgbWVuc2FnZW1IdG1sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnNvbGUud2FybignW1VuQlBlc3NvYVNlcnZpY2VdIEVycm8gZm9ybWF0YWRvIGZpbmFsOicsIGVycm9Gb3JtYXRhZG8pO1xyXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb0Zvcm1hdGFkbyk7XHJcbiAgfVxyXG59Il19
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFZM0QsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBTHBDLHFEQUFxRDtRQUM3QyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1RCxzRUFBc0U7UUFDdEUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUEyU3BELHNFQUFzRTtRQUN0RSw0QkFBNEI7UUFDNUIsc0VBQXNFO1FBQzlELGdCQUFXLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNuQyxJQUFJLGVBQWUsR0FBRyw0Q0FBNEMsQ0FBQztZQUNuRSxJQUFJLFlBQVksR0FBRyxnREFBZ0QsQ0FBQztZQUVwRSxxQ0FBcUM7WUFDckMsSUFBSSxTQUFjLENBQUM7WUFFbkIsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDekMsK0RBQStEO2dCQUMvRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixt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TTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW5kZXJlY28gfSBmcm9tICcuL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZW5kZXJlY28ubW9kZWwnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FFc2NvbGFyaWRhZGUgfSBmcm9tICcuL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZXNjb2xhcmlkYWRlLm1vZGVsJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRXN0YWRvQ2l2aWwgfSBmcm9tICcuL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZXN0YWRvLWNpdmlsLm1vZGVsJztcclxuaW1wb3J0IHsgVW5iUGVzc29hTXVuaW5jaXBpbyB9IGZyb20gJy4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS1tdW5pY2lwaW8nO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FQYWlzIH0gZnJvbSAnLi91bmItcGVzc29hLW1vZGVscy91bmItcGVzc29hLXBhaXMnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FNb2RlbCB9IGZyb20gJy4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS5tb2RlbCc7XHJcbmltcG9ydCB7IFVuYlRpcG9QZXNzb2FFbnVtIH0gZnJvbSAnLi91bmItdGlwby1wZXNzb2EuZW51bSc7XHJcblxyXG4vLyBJbnRlcmZhY2UgcGFyYSBwYWRyb25pemFyIG8gZXJybyBxdWUgY2hlZ2Egbm9zIGNvbXBvbmVudGVzXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5iUGVzc29hRXJyb1BhZHJhbyB7XHJcbiAgc3RhdHVzOiBudW1iZXI7XHJcbiAgbWVuc2FnZW1TaW1wbGVzOiBzdHJpbmc7IC8vIFBhcmEgdXNhciBubyBTbmFja0JhclxyXG4gIG1lbnNhZ2VtSHRtbDogc3RyaW5nOyAgICAvLyBQYXJhIHVzYXIgbm8gQWxlcnRTZXJ2aWNlIChjb20gPHVsPiwgPGxpPiwgPHN0cm9uZz4pXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuQlBlc3NvYVNlcnZpY2Uge1xyXG5cclxuICAvLyBBcm1hemVuYSBhcGVuYXMgYSBzdHJpbmcgZGEgVVJMLiBJbmljaWFsaXphIHZhemlvLlxyXG4gIHByaXZhdGUgYmFja2VuZFVybFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gIC8vIEV4cG9zdGEgY29tbyBPYnNlcnZhYmxlIChjYXNvIGFsZ3VtIGNvbXBvbmVudGUgcXVlaXJhIHNlIGluc2NyZXZlcilcclxuICBiYWNrZW5kVXJsJCA9IHRoaXMuYmFja2VuZFVybFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gIC8vIFNldHRlciBhZ29yYSByZWNlYmUgc3RyaW5nIGRpcmV0YVxyXG4gIHNldEJhY2tlbmRVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIC8vIFRyYXRhbWVudG8gcmVtb3ZlIGJhcnJhIG5vIGZpbmFsIHBhcmEgcGFkcm9uaXphclxyXG4gICAgaWYgKHVybC5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAgIHVybCA9IHVybC5zbGljZSgwLCAtMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJhY2tlbmRVcmxTdWJqZWN0Lm5leHQodXJsKTtcclxuICB9XHJcblxyXG4gIC8vIEdldHRlciByZXRvcm5hIHN0cmluZyBkaXJldGFcclxuICBnZXRCYWNrZW5kVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kVXJsU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVhZGVycyBwYWRyw6NvXHJcbiAgcHJpdmF0ZSBnZXRIZWFkZXJzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgIH0pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gTcOpdG9kb3MgZGUgYnVzY2FcclxuICBmaW5kQnlDcGYoY3BmOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXM/Y3BmPSR7Y3BmfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FNb2RlbD4odXJsLCB0aGlzLmdldEhlYWRlcnMoKSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRCeUNucGooY25wajogc3RyaW5nIHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxVbmJQZXNzb2FNb2RlbD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYWNrZW5kVXJsKCl9L3Blc3NvYS1hcGkvcGVzc29hcy9qdXJpZGljYXM/Y25waj0ke2NucGp9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsPih1cmwsIHRoaXMuZ2V0SGVhZGVycygpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEJ5UGFzc2Fwb3J0ZShwYXNzYXBvcnRlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXM/cGFzc2Fwb3J0ZT0ke3Bhc3NhcG9ydGV9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsPih1cmwsIHRoaXMuZ2V0SGVhZGVycygpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZFBlc3NvYUZpc2ljYUJ5Q29kaWdvUGVzc29hKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXM/Y29kaWdvUGVzc29hPSR7aWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsPih1cmwsIHRoaXMuZ2V0SGVhZGVycygpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZFBlc3NvYUp1cmlkaWNhQnlDb2RpZ29QZXNzb2EoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8VW5iUGVzc29hTW9kZWw+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3Blc3NvYXMvanVyaWRpY2FzP2NvZGlnb1Blc3NvYT0ke2lkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FNb2RlbD4odXJsLCB0aGlzLmdldEhlYWRlcnMoKSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRQZXNzb2FGaXNpY2EoZmlsdHJvOiBVbmJQZXNzb2FNb2RlbCwgcGFnZT86IG51bWJlciwgc2l6ZT86IG51bWJlciwgc29ydD86IHN0cmluZyk6IE9ic2VydmFibGU8VW5iUGVzc29hTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYWNrZW5kVXJsKCl9L3Blc3NvYS1hcGkvcGVzc29hcy9maXNpY2FzYDtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgIE9iamVjdC5rZXlzKGZpbHRybykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbG9yID0gZmlsdHJvW2tleSBhcyBrZXlvZiBVbmJQZXNzb2FNb2RlbF07XHJcbiAgICAgIGlmICh2YWxvciAhPT0gbnVsbCAmJiB2YWxvciAhPT0gdW5kZWZpbmVkICYmIHZhbG9yICE9PSAnJykge1xyXG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCB2YWxvci50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gMi4gQWRpY2lvbmEgb3MgcGFyw6JtZXRyb3MgZGUgUGFnaW5hw6fDo28gKHNlIGZvcmFtIHBhc3NhZG9zKVxyXG4gICAgaWYgKHBhZ2UgIT09IHVuZGVmaW5lZCAmJiBwYWdlICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2UnLCBwYWdlLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNpemUgIT09IHVuZGVmaW5lZCAmJiBzaXplICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NpemUnLCBzaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNvcnQpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc29ydCcsIHNvcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDMuIE1vbnRhIGFzIG9ww6fDtWVzIGRhIHJlcXVpc2nDp8Ojb1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICAuLi50aGlzLmdldEhlYWRlcnMoKSAvLyBUZW50YSBlc3BhbGhhciBhcyBwcm9wcmllZGFkZXMgc2UgZ2V0SGVhZGVycyByZXRvcm5hciB7IGhlYWRlcnM6IC4uLiB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsW10+KHVybCwgb3B0aW9ucylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZFBlc3NvYUp1cmlkaWNhKGZpbHRybzogVW5iUGVzc29hTW9kZWwsIHBhZ2U/OiBudW1iZXIsIHNpemU/OiBudW1iZXIsIHNvcnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3Blc3NvYXMvanVyaWRpY2FzYDtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgIC8vIDEuIEFkaWNpb25hIEFQRU5BUyBvcyBmaWx0cm9zIHBlcm1pdGlkb3MgZG8gTW9kZWxcclxuICAgIGNvbnN0IGNhbXBvc1Blcm1pdGlkb3MgPSBbJ2lkUGVzc29hJywgJ2NvZGlnb1Blc3NvYScsICdjbnBqJywgJ25vbWVGYW50YXNpYScsICdyYXphb1NvY2lhbCcsICdzaWdsYSddO1xyXG5cclxuICAgIE9iamVjdC5rZXlzKGZpbHRybykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGlmIChjYW1wb3NQZXJtaXRpZG9zLmluY2x1ZGVzKGtleSkpIHtcclxuICAgICAgICBjb25zdCB2YWxvciA9IGZpbHRyb1trZXkgYXMga2V5b2YgVW5iUGVzc29hTW9kZWxdO1xyXG4gICAgICAgIGlmICh2YWxvciAhPT0gbnVsbCAmJiB2YWxvciAhPT0gdW5kZWZpbmVkICYmIHZhbG9yICE9PSAnJykge1xyXG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIHZhbG9yLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gMi4gQWRpY2lvbmEgb3MgcGFyw6JtZXRyb3MgZGUgUGFnaW5hw6fDo28gKHNlIGZvcmFtIHBhc3NhZG9zKVxyXG4gICAgaWYgKHBhZ2UgIT09IHVuZGVmaW5lZCAmJiBwYWdlICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2UnLCBwYWdlLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNpemUgIT09IHVuZGVmaW5lZCAmJiBzaXplICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NpemUnLCBzaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNvcnQpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc29ydCcsIHNvcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDMuIE1vbnRhIGFzIG9ww6fDtWVzIGRhIHJlcXVpc2nDp8Ojb1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICAuLi50aGlzLmdldEhlYWRlcnMoKSAvLyBUZW50YSBlc3BhbGhhciBhcyBwcm9wcmllZGFkZXMgc2UgZ2V0SGVhZGVycyByZXRvcm5hciB7IGhlYWRlcnM6IC4uLiB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVuYlBlc3NvYU1vZGVsW10+KHVybCwgb3B0aW9ucylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcGVzcXVpc2FyQ2VwKGNlcDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wdWJsaWMvYnVzY2EtY2VwL3NlcnZpY28tMS8ke2NlcH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VW5iUGVzc29hRW5kZXJlY28+KHVybCwgdGhpcy5nZXRIZWFkZXJzKCkpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBTYWx2YXIgKGRlY2lkZSBmaXNpY2Egb3UganVyaWRpY2EpXHJcbiAgc2FsdmFyKHBheWxvYWQ6IGFueSwgdGlwb1Blc3NvYTogVW5iVGlwb1Blc3NvYUVudW0pOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsIHwgbnVsbD4ge1xyXG5cclxuICAgIC8vIChQYXJhIG8gY29tcG9uZW50ZSBjb25zZWd1aXIgbGVyIC5tZW5zYWdlbVNpbXBsZXMgZSAubWVuc2FnZW1IdG1sKVxyXG4gICAgaWYgKCFwYXlsb2FkKSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICh7XHJcbiAgICAgICAgc3RhdHVzOiA0MDAsXHJcbiAgICAgICAgbWVuc2FnZW1TaW1wbGVzOiAnRXJybyBpbnRlcm5vOiBEYWRvcyBwYXJhIHNhbHZhbWVudG8gaW52w6FsaWRvcyAoUGF5bG9hZCBudWxsKS4nLFxyXG4gICAgICAgIG1lbnNhZ2VtSHRtbDogJzxzdHJvbmc+RXJybyBpbnRlcm5vOjwvc3Ryb25nPiBUZW50YXRpdmEgZGUgc2FsdmFyIGRhZG9zIHZhemlvcy4nXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRpcG9QZXNzb2EpIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gKHtcclxuICAgICAgICBzdGF0dXM6IDQwMCxcclxuICAgICAgICBtZW5zYWdlbVNpbXBsZXM6ICdFcnJvIGludGVybm86IFRpcG8gZGUgcGVzc29hIG7Do28gZGVmaW5pZG8uJyxcclxuICAgICAgICBtZW5zYWdlbUh0bWw6ICc8c3Ryb25nPkVycm8gaW50ZXJubzo8L3N0cm9uZz4gTyB0aXBvIGRlIHBlc3NvYSDDqSBvYnJpZ2F0w7NyaW8gcGFyYSBzYWx2YXIuJ1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMi4gRGVsZWdhw6fDo29cclxuICAgIC8vIENvbW8gc2F2ZVBlc3NvYUZpc2ljYSBlIHNhdmVQZXNzb2FKdXJpZGljYSBKw4EgVMOKTSBvIC5waXBlKGNhdGNoRXJyb3IpLFxyXG4gICAgLy8gYXF1aSBuw7NzIGFwZW5hcyByZXRvcm5hbW9zIG8gT2JzZXJ2YWJsZSBkZWxlcy4gTyBlcnJvIHN1Ymlyw6EgdHJhdGFkby5cclxuICAgIGlmICh0aXBvUGVzc29hID09IFVuYlRpcG9QZXNzb2FFbnVtLkZJU0lDQSB8fCB0aXBvUGVzc29hID09IFVuYlRpcG9QZXNzb2FFbnVtLkVTVFJBTkdFSVJBKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhdmVQZXNzb2FGaXNpY2EocGF5bG9hZCk7XHJcbiAgICB9IGVsc2UgaWYgKHRpcG9QZXNzb2EgPT0gVW5iVGlwb1Blc3NvYUVudW0uSlVSSURJQ0EpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2F2ZVBlc3NvYUp1cmlkaWNhKHBheWxvYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcblxyXG4gIC8vIFNhbHZhciBQZXNzb2EgRsOtc2ljYVxyXG4gIHByaXZhdGUgc2F2ZVBlc3NvYUZpc2ljYShwZXNzb2E6IFVuYlBlc3NvYU1vZGVsKTogT2JzZXJ2YWJsZTxVbmJQZXNzb2FNb2RlbD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRCYWNrZW5kVXJsKCk7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHBlc3NvYSk7XHJcblxyXG4gICAgLy8gVmFyacOhdmVsIHBhcmEgYXJtYXplbmFyIG8gT2JzZXJ2YWJsZSBhbnRlcyBkZSByZXRvcm5hclxyXG4gICAgbGV0IHJlcXVlc3QkOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPjtcclxuXHJcbiAgICBpZiAocGVzc29hLmNvZGlnb1Blc3NvYSA9PSBudWxsKSB7XHJcbiAgICAgIHJlcXVlc3QkID0gdGhpcy5odHRwLnBvc3Q8VW5iUGVzc29hTW9kZWw+KGAke3VybH0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXNgLCBib2R5LCBodHRwT3B0aW9ucyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wdXQ8VW5iUGVzc29hTW9kZWw+KGAke3VybH0vcGVzc29hLWFwaS9wZXNzb2FzL2Zpc2ljYXMvJHtwZXNzb2EuY29kaWdvUGVzc29hfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBbnRlcyBkZSByZXRvcm5hciwgcGFzc2Ftb3MgcGVsbyAncGlwZScgcGFyYSB0cmF0YXIgbyBlcnJvIHNlIGVsZSBvY29ycmVyLlxyXG4gICAgcmV0dXJuIHJlcXVlc3QkLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBTYWx2YXIgUGVzc29hIEp1csOtZGljYVxyXG4gIHByaXZhdGUgc2F2ZVBlc3NvYUp1cmlkaWNhKHBlc3NvYTogVW5iUGVzc29hTW9kZWwpOiBPYnNlcnZhYmxlPFVuYlBlc3NvYU1vZGVsPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldEJhY2tlbmRVcmwoKTtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0gdGhpcy5nZXRIZWFkZXJzKCk7XHJcbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkocGVzc29hKTtcclxuICAgIGxldCByZXF1ZXN0JDogT2JzZXJ2YWJsZTxVbmJQZXNzb2FNb2RlbD47XHJcblxyXG4gICAgaWYgKHBlc3NvYS5jb2RpZ29QZXNzb2EgPT0gbnVsbCkge1xyXG4gICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wb3N0PFVuYlBlc3NvYU1vZGVsPihgJHt1cmx9L3Blc3NvYS1hcGkvcGVzc29hcy9qdXJpZGljYXNgLCBib2R5LCBodHRwT3B0aW9ucyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wdXQ8VW5iUGVzc29hTW9kZWw+KGAke3VybH0vcGVzc29hLWFwaS9wZXNzb2FzL2p1cmlkaWNhcy8ke3Blc3NvYS5jb2RpZ29QZXNzb2F9YCwgYm9keSwgaHR0cE9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXF1ZXN0JC5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gRGFkb3MgYXV4aWxpYXJlcyBww7pibGljb3NcclxuICBwdWJsaWMgZ2V0RXNjb2xhcmlkYWRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VW5iUGVzc29hRXNjb2xhcmlkYWRlW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9lc2NvbGFyaWRhZGVzL2xpc3RhZ2VtYCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSAvLyA8LS0tIEFkaWNpb25lIGFxdWlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RXN0YWRvQ2l2aWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FFc3RhZG9DaXZpbFtdPihgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS9wdWJsaWMvZXN0YWRvcy1jaXZpcy9saXN0YWdlbWApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikgLy8gPC0tLSBBZGljaW9uZSBhcXVpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE11bmljaXBpb3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVbmJQZXNzb2FNdW5pbmNpcGlvW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9tdW5pY2lwaW9zL2xpc3RhZ2VtYCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSAvLyA8LS0tIEFkaWNpb25lIGFxdWlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFpc2VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBjb250ZW50OiBVbmJQZXNzb2FQYWlzW10gfT4oXHJcbiAgICAgIGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9wYWlzZXMvbGlzdGFnZW0/JnBhZ2U9MCZzaXplPTIwMCZzb3J0PWRlbm9taW5hY2FvLGFzY2BcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuY29udGVudC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAvLyAuLi4gc3VhIGzDs2dpY2EgZGUgb3JkZW5hw6fDo28gLi4uXHJcbiAgICAgICAgICBjb25zdCBub21lQSA9IGE/LmRlbm9taW5hY2FvPy50b1VwcGVyQ2FzZSgpIHx8ICcnO1xyXG4gICAgICAgICAgY29uc3Qgbm9tZUIgPSBiPy5kZW5vbWluYWNhbz8udG9VcHBlckNhc2UoKSB8fCAnJztcclxuICAgICAgICAgIGlmIChub21lQSA9PT0gJ0JSQVNJTCcpIHJldHVybiAtMTtcclxuICAgICAgICAgIGlmIChub21lQiA9PT0gJ0JSQVNJTCcpIHJldHVybiAxO1xyXG4gICAgICAgICAgcmV0dXJuIG5vbWVBLmxvY2FsZUNvbXBhcmUobm9tZUIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSYWNhQ29yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3B1YmxpYy9ldG5pYXMvbGlzdGFnZW1gKS5waXBlKFxyXG4gICAgICBtYXAobGlzdGEgPT4gbGlzdGEubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcclxuICAgICAgICBjb2RpZ286IGluZGV4LCAvLyBnZXJhIHVtIGPDs2RpZ28gbnVtw6lyaWNvIHNlcXVlbmNpYWxcclxuICAgICAgICBkZW5vbWluYWNhbzogdGhpcy5mb3JtYXRhckxhYmVsKGl0ZW0pIC8vIGZvcm1hdGEgc2UgcXVpc2VyXHJcbiAgICAgIH0pKSksXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VGlwb0VtYWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuZ2V0QmFja2VuZFVybCgpfS9wZXNzb2EtYXBpL3RpcG9zLWVtYWlsL3B1YmxpYy9saXN0YWdlbWApLnBpcGUoXHJcbiAgICAgIG1hcChsaXN0YSA9PiBsaXN0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoe1xyXG4gICAgICAgIGNvZGlnbzogaW5kZXgsIC8vIGdlcmEgdW0gY8OzZGlnbyBudW3DqXJpY28gc2VxdWVuY2lhbFxyXG4gICAgICAgIGRlbm9taW5hY2FvOiB0aGlzLmZvcm1hdGFyTGFiZWwoaXRlbSkgLy8gZm9ybWF0YSBzZSBxdWlzZXJcclxuICAgICAgfSkpKSxcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUaXBvRW5kZXJlY28oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5nZXRCYWNrZW5kVXJsKCl9L3Blc3NvYS1hcGkvdGlwb3MtZW5kZXJlY28vcHVibGljL2xpc3RhZ2VtYCkucGlwZShcclxuICAgICAgbWFwKGxpc3RhID0+IGxpc3RhLm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7XHJcbiAgICAgICAgY29kaWdvOiBpbmRleCwgLy8gZ2VyYSB1bSBjw7NkaWdvIG51bcOpcmljbyBzZXF1ZW5jaWFsXHJcbiAgICAgICAgZGVub21pbmFjYW86IHRoaXMuZm9ybWF0YXJMYWJlbChpdGVtKSAvLyBmb3JtYXRhIHNlIHF1aXNlclxyXG4gICAgICB9KSkpLFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRpcG9UZWxlZm9uZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLmdldEJhY2tlbmRVcmwoKX0vcGVzc29hLWFwaS90aXBvcy10ZWxlZm9uZS9wdWJsaWMvbGlzdGFnZW1gKS5waXBlKFxyXG4gICAgICBtYXAobGlzdGEgPT4gbGlzdGEubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcclxuICAgICAgICBjb2RpZ286IGluZGV4LCAvLyBnZXJhIHVtIGPDs2RpZ28gbnVtw6lyaWNvIHNlcXVlbmNpYWxcclxuICAgICAgICBkZW5vbWluYWNhbzogdGhpcy5mb3JtYXRhckxhYmVsKGl0ZW0pIC8vIGZvcm1hdGEgc2UgcXVpc2VyXHJcbiAgICAgIH0pKSksXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdGFyTGFiZWwodGV4dDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGV4dFxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAucmVwbGFjZSgvXy9nLCAnICcpXHJcbiAgICAgIC5yZXBsYWNlKC9cXGJcXHcvZywgbCA9PiBsLnRvVXBwZXJDYXNlKCkpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBIQU5ETEUgRVJST1IgUEFEUk9OSVpBRE8gXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IgPSAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgbGV0IG1lbnNhZ2VtU2ltcGxlcyA9ICdPY29ycmV1IHVtIGVycm8gYW8gcHJvY2Vzc2FyIGEgcmVxdWlzacOnw6NvISc7XHJcbiAgICBsZXQgbWVuc2FnZW1IdG1sID0gJzxzdHJvbmc+T2NvcnJldSB1bSBlcnJvIGRlc2NvbmhlY2lkby48L3N0cm9uZz4nO1xyXG5cclxuICAgIC8vIDIuIERlc2NvYnJlIHF1ZW0gw6kgbyBjb3JwbyBkbyBlcnJvXHJcbiAgICBsZXQgZXJyb3JCb2R5OiBhbnk7XHJcblxyXG4gICAgaWYgKGVycm9yLmRldGFsaGVzIHx8IGVycm9yLmNvZGlnb1N0YXR1cykge1xyXG4gICAgICAvLyBDQVNPIDE6IE8gSW50ZXJjZXB0b3IgasOhIGRlc2VtYnJ1bGhvdSBvIGVycm8gKMOpIG8gSlNPTiBwdXJvKVxyXG4gICAgICBlcnJvckJvZHkgPSBlcnJvcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIENBU08gMjogw4kgdW0gSHR0cEVycm9yUmVzcG9uc2UgcGFkcsOjbyAodGVtIGEgcHJvcHJpZWRhZGUgLmVycm9yKVxyXG4gICAgICBlcnJvckJvZHkgPSBlcnJvci5lcnJvciB8fCBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyAzLiBMw7NnaWNhIGRlIExpbXBlemEgZSBQYXJzZSAoc2UgZm9yIHN0cmluZyBzdWphKVxyXG4gICAgaWYgKHR5cGVvZiBlcnJvckJvZHkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgZXJyb3JCb2R5ID0gSlNPTi5wYXJzZShlcnJvckJvZHkpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBlcnJvckJvZHkuaW5kZXhPZigneycpO1xyXG4gICAgICAgIGNvbnN0IGVuZCA9IGVycm9yQm9keS5sYXN0SW5kZXhPZignfScpO1xyXG4gICAgICAgIGlmIChzdGFydCA+IC0xICYmIGVuZCA+IHN0YXJ0KSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBlcnJvckJvZHkgPSBKU09OLnBhcnNlKGVycm9yQm9keS5zdWJzdHJpbmcoc3RhcnQsIGVuZCArIDEpKTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGUyKSB7XHJcbiAgICAgICAgICAgIC8vIFNlIGZhbGhhciBvIHBhcnNlLCB1c2EgbyB0ZXh0byBjb21vIG1lbnNhZ2VtXHJcbiAgICAgICAgICAgIG1lbnNhZ2VtU2ltcGxlcyA9IGVycm9yQm9keS5zdWJzdHJpbmcoMCwgMjAwKTtcclxuICAgICAgICAgICAgbWVuc2FnZW1IdG1sID0gYDxzdHJvbmc+JHtlcnJvckJvZHl9PC9zdHJvbmc+YDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyA0LiBGb3JtYXRhw6fDo28gYmFzZWFkYSBubyBKU09OIGlkZW50aWZpY2Fkb1xyXG4gICAgaWYgKGVycm9yQm9keSAmJiB0eXBlb2YgZXJyb3JCb2R5ID09PSAnb2JqZWN0Jykge1xyXG5cclxuICAgICAgLy8gQTogRXJyb3MgZGUgVmFsaWRhw6fDo29cclxuICAgICAgaWYgKGVycm9yQm9keS5kZXRhbGhlcyAmJiBBcnJheS5pc0FycmF5KGVycm9yQm9keS5kZXRhbGhlcykgJiYgZXJyb3JCb2R5LmRldGFsaGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBtZW5zYWdlbVNpbXBsZXMgPSBcIk8gZm9ybXVsw6FyaW8gcG9zc3VpIGVycm9zIGRlIHZhbGlkYcOnw6NvLlwiO1xyXG5cclxuICAgICAgICBjb25zdCBsaXN0YUVycm9zID0gZXJyb3JCb2R5LmRldGFsaGVzLm1hcCgoZDogYW55KSA9PlxyXG4gICAgICAgICAgYDxsaT48c3Ryb25nPiR7ZC5ub21lQ2FtcG8gfHwgJ0NhbXBvJ306PC9zdHJvbmc+ICR7ZC5jcml0aWNhIHx8IGQubWVuc2FnZW19PC9saT5gXHJcbiAgICAgICAgKS5qb2luKCcnKTtcclxuXHJcbiAgICAgICAgbWVuc2FnZW1IdG1sID0gYDxzdHJvbmc+RXJyb3MgZGUgVmFsaWRhw6fDo286PC9zdHJvbmc+IDx1bD4ke2xpc3RhRXJyb3N9PC91bD5gO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIEI6IEVycm8gR2Vuw6lyaWNvIGNvbSBtZW5zYWdlbVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBtc2dCYWNrZW5kID0gZXJyb3JCb2R5Lm1lbnNhZ2VtIHx8IGVycm9yQm9keS5tZXNzYWdlIHx8IGVycm9yQm9keS5kZXRhaWw7XHJcbiAgICAgICAgaWYgKG1zZ0JhY2tlbmQpIHtcclxuICAgICAgICAgIG1lbnNhZ2VtU2ltcGxlcyA9IG1zZ0JhY2tlbmQ7XHJcbiAgICAgICAgICBtZW5zYWdlbUh0bWwgPSBgPHN0cm9uZz4ke21zZ0JhY2tlbmR9PC9zdHJvbmc+YDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyA1LiBUcmF0YW1lbnRvcyBkZSBTdGF0dXMgSFRUUCAoU2UgbyB3cmFwcGVyIG9yaWdpbmFsIHRpdmVyIHN0YXR1cylcclxuICAgIC8vIE5vdGE6IFNlIG8gaW50ZXJjZXB0b3IgZGVzZW1icnVsaG91LCAnZXJyb3Iuc3RhdHVzJyBwb2RlIG7Do28gZXhpc3RpciwgXHJcbiAgICAvLyBtYXMgJ2Vycm9yQm9keS5jb2RpZ29TdGF0dXMnIChkbyBKYXZhKSBwb2RlIGV4aXN0aXIuXHJcbiAgICBjb25zdCBzdGF0dXMgPSBlcnJvci5zdGF0dXMgfHwgZXJyb3JCb2R5Py5jb2RpZ29TdGF0dXMgfHwgMDtcclxuXHJcbiAgICBpZiAoc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgbWVuc2FnZW1TaW1wbGVzID0gXCJTZXNzw6NvIGV4cGlyYWRhLlwiO1xyXG4gICAgICBtZW5zYWdlbUh0bWwgPSBcIjxzdHJvbmc+U2Vzc8OjbyBleHBpcmFkYS4gRmHDp2EgbG9naW4gbm92YW1lbnRlLjwvc3Ryb25nPlwiO1xyXG4gICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IDQwMykge1xyXG4gICAgICBtZW5zYWdlbVNpbXBsZXMgPSBcIkFjZXNzbyBOZWdhZG8uXCI7XHJcbiAgICAgIG1lbnNhZ2VtSHRtbCA9IFwiPHN0cm9uZz5Wb2PDqiBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgcmVhbGl6YXIgZXN0YSBhw6fDo28uPC9zdHJvbmc+XCI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb0Zvcm1hdGFkbzogVW5iUGVzc29hRXJyb1BhZHJhbyA9IHtcclxuICAgICAgc3RhdHVzOiBzdGF0dXMsXHJcbiAgICAgIG1lbnNhZ2VtU2ltcGxlcyxcclxuICAgICAgbWVuc2FnZW1IdG1sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnNvbGUud2FybignW1VuQlBlc3NvYVNlcnZpY2VdIEVycm8gZm9ybWF0YWRvIGZpbmFsOicsIGVycm9Gb3JtYXRhZG8pO1xyXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb0Zvcm1hdGFkbyk7XHJcbiAgfVxyXG59Il19
|
|
@@ -546,11 +546,11 @@ class UnBPessoaService {
|
|
|
546
546
|
return this.http.get(url, this.getHeaders()).pipe(catchError(this.handleError));
|
|
547
547
|
}
|
|
548
548
|
findPessoaFisicaByCodigoPessoa(id) {
|
|
549
|
-
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/fisicas
|
|
549
|
+
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/fisicas?codigoPessoa=${id}`;
|
|
550
550
|
return this.http.get(url, this.getHeaders()).pipe(catchError(this.handleError));
|
|
551
551
|
}
|
|
552
552
|
findPessoaJuridicaByCodigoPessoa(id) {
|
|
553
|
-
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/juridicas
|
|
553
|
+
const url = `${this.getBackendUrl()}/pessoa-api/pessoas/juridicas?codigoPessoa=${id}`;
|
|
554
554
|
return this.http.get(url, this.getHeaders()).pipe(catchError(this.handleError));
|
|
555
555
|
}
|
|
556
556
|
findPessoaFisica(filtro, page, size, sort) {
|