dts-backoffice-util 2.8.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/bundles/dts-backoffice-util.umd.js +464 -1125
  2. package/bundles/dts-backoffice-util.umd.js.map +1 -1
  3. package/bundles/dts-backoffice-util.umd.min.js +1 -1
  4. package/bundles/dts-backoffice-util.umd.min.js.map +1 -1
  5. package/esm2015/dts-backoffice-util.js +3 -2
  6. package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js +3 -2
  7. package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.js +3 -2
  8. package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.js +3 -2
  9. package/esm2015/lib/dts-backoffice-util.module.js +3 -2
  10. package/esm2015/lib/interfaces/filter-range.interface.js +3 -2
  11. package/esm2015/lib/interfaces/totvs-response.interface.js +3 -2
  12. package/esm2015/lib/model/session-info.model.js +3 -2
  13. package/esm2015/lib/pipes/dts-date-format.pipe.js +3 -2
  14. package/esm2015/lib/services/breadcrumb-control.service.js +3 -2
  15. package/esm2015/lib/services/cache-params.service.js +3 -2
  16. package/esm2015/lib/services/menu-datasul.service.js +3 -2
  17. package/esm2015/lib/services/profile.service.js +3 -2
  18. package/esm2015/lib/services/report.service.js +7 -6
  19. package/esm2015/lib/services/session-info.service.js +3 -2
  20. package/esm2015/lib/services/translate.service.js +3 -2
  21. package/esm2015/lib/utils/date.util.js +3 -2
  22. package/esm2015/lib/utils/disclaimer.util.js +3 -2
  23. package/esm2015/lib/utils/field-validation.util.js +3 -2
  24. package/esm2015/lib/utils/file.util.js +3 -2
  25. package/esm2015/lib/utils/filter-range.util.js +3 -2
  26. package/esm2015/lib/utils/generic-functions.utils.js +3 -2
  27. package/esm2015/public-api.js +3 -2
  28. package/fesm2015/dts-backoffice-util.js +48 -26
  29. package/fesm2015/dts-backoffice-util.js.map +1 -1
  30. package/package.json +8 -7
  31. package/esm5/dts-backoffice-util.js +0 -9
  32. package/esm5/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js +0 -448
  33. package/esm5/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.js +0 -143
  34. package/esm5/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.js +0 -434
  35. package/esm5/lib/dts-backoffice-util.module.js +0 -53
  36. package/esm5/lib/interfaces/filter-range.interface.js +0 -47
  37. package/esm5/lib/interfaces/totvs-response.interface.js +0 -16
  38. package/esm5/lib/model/session-info.model.js +0 -239
  39. package/esm5/lib/pipes/dts-date-format.pipe.js +0 -36
  40. package/esm5/lib/services/breadcrumb-control.service.js +0 -157
  41. package/esm5/lib/services/cache-params.service.js +0 -61
  42. package/esm5/lib/services/menu-datasul.service.js +0 -92
  43. package/esm5/lib/services/profile.service.js +0 -146
  44. package/esm5/lib/services/report.service.js +0 -137
  45. package/esm5/lib/services/session-info.service.js +0 -64
  46. package/esm5/lib/services/translate.service.js +0 -47
  47. package/esm5/lib/utils/date.util.js +0 -135
  48. package/esm5/lib/utils/disclaimer.util.js +0 -930
  49. package/esm5/lib/utils/field-validation.util.js +0 -358
  50. package/esm5/lib/utils/file.util.js +0 -262
  51. package/esm5/lib/utils/filter-range.util.js +0 -69
  52. package/esm5/lib/utils/generic-functions.utils.js +0 -358
  53. package/esm5/public-api.js +0 -37
  54. package/fesm5/dts-backoffice-util.js +0 -3944
  55. package/fesm5/dts-backoffice-util.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/services/report.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  import { Injectable } from '@angular/core';
6
7
  import { HttpClient } from '@angular/common/http';
@@ -37,10 +38,10 @@ if (false) {
37
38
  }
38
39
  /** @enum {string} */
39
40
  const ReportFormats = {
40
- XLSX: 'xlsx',
41
- PDF: 'pdf',
42
- DOCX: 'docx',
43
- HTML: 'html',
41
+ XLSX: "xlsx",
42
+ PDF: "pdf",
43
+ DOCX: "docx",
44
+ HTML: "html",
44
45
  };
45
46
  export { ReportFormats };
46
47
  export class ReportService {
@@ -123,4 +124,4 @@ if (false) {
123
124
  /** @type {?} */
124
125
  ReportService.prototype.httpClient;
125
126
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kdHMtYmFja29mZmljZS11dGlsLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFckMsK0JBR0M7OztJQUZDLHlCQUFhOztJQUNiLDBCQUFjOzs7OztBQUdoQiwwQ0FRQzs7O0lBUEMsMENBQW1COztJQUNuQiwyQ0FBb0I7O0lBQ3BCLDBDQUE2Qjs7SUFDN0IsdUNBQWdCOztJQUNoQiw0Q0FBcUI7O0lBQ3JCLHdDQUFrQjs7SUFDbEIsc0NBQXNCOzs7O0lBSXRCLE1BQU8sTUFBTTtJQUNiLEtBQU0sS0FBSztJQUNYLE1BQU8sTUFBTTtJQUNiLE1BQU8sTUFBTTs7O0FBS2YsTUFBTSxPQUFPLGFBQWE7Ozs7SUFJeEIsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUh6QixRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCO1lBQy9FLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQztJQUVoQixDQUFDOzs7Ozs7SUFFOUMsUUFBUSxDQUFDLE1BQTRCLEVBQUUsY0FBdUIsSUFBSTs7Y0FDMUQsT0FBTyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTs7WUFFbEUsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1FBRWpELElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLFNBQVMsSUFBSSxHQUFHLENBQUM7WUFFakIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPOzs7OztZQUFDLENBQUMsUUFBbUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDL0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO29CQUNiLFNBQVMsSUFBSSxHQUFHLENBQUM7aUJBQ2xCO2dCQUNELFNBQVMsSUFBSSxnQkFBZ0IsUUFBUSxDQUFDLElBQUksYUFBYSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUUsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUVELFNBQVMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxPQUFPLFdBQVcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xFLFNBQVMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxXQUFXLG1CQUFtQixNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMxRSxJQUFJLENBQUMsR0FBRzs7OztRQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ2xFO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7Ozs7OztJQUVELFFBQVEsQ0FBQyxJQUFVLEVBQUUsUUFBZ0I7O2NBQzdCLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQzs7Y0FDbkIsWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDOztjQUMxQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLFlBQVksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7O1lBL0NGLFVBQVU7Ozs7WUExQkYsVUFBVTs7OztJQTZCakIsNEJBQzZEOztJQUVqRCxtQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUHJvcGVydHkge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElSZXBvcnRTZXJ2aWNlUGFyYW1zIHtcclxuICByZXBvcnROYW1lOiBzdHJpbmc7IC8vIE5vbWUgZG8gcnB0RGVzaWduXHJcbiAgcHJvZ3JhbU5hbWU6IHN0cmluZzsgLy8gUHJvZ3JhbWEgUHJvZ3Jlc3NcclxuICBwcm9wZXJ0aWVzOiBBcnJheTxJUHJvcGVydHk+O1xyXG4gIGRpYWxlY3Q6IHN0cmluZztcclxuICBkb3dubG9hZE5hbWU6IHN0cmluZztcclxuICBkb3dubG9hZDogYm9vbGVhbjtcclxuICBmb3JtYXQ6IFJlcG9ydEZvcm1hdHM7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFJlcG9ydEZvcm1hdHMge1xyXG4gIFhMU1ggPSAneGxzeCcsXHJcbiAgUERGID0gJ3BkZicsXHJcbiAgRE9DWCA9ICdkb2N4JyxcclxuICBIVE1MID0gJ2h0bWwnXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgVVJMID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigndG90dnMtbWVudScpID4gMCA/ICcvdG90dnMtbWVudS9yZXN0L3JlcG9ydC9ydW4vJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcvZHRzL2RhdGFzdWwtcmVwb3J0L3Jlc291cmNlcy9ydW4vJztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICBnZW5lcmF0ZShwYXJhbXM6IElSZXBvcnRTZXJ2aWNlUGFyYW1zLCBzaG93TG9hZGluZzogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICdYLVBPLVNjcmVlbi1Mb2NrJzogc2hvd0xvYWRpbmcgPyAndHJ1ZScgOiAnZmFsc2UnIH07XHJcblxyXG4gICAgbGV0IHJlcG9ydFVSTCA9IGAke3RoaXMuVVJMfSR7cGFyYW1zLnJlcG9ydE5hbWV9YDtcclxuXHJcbiAgICBpZiAocGFyYW1zLnByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXBvcnRVUkwgKz0gJz8nO1xyXG5cclxuICAgICAgcGFyYW1zLnByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHk6IElQcm9wZXJ0eSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgICAgIHJlcG9ydFVSTCArPSAnJic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcG9ydFVSTCArPSBgY19wcm9wZXJ0aWVzPSR7cHJvcGVydHkubmFtZX0mY192YWx1ZXM9JHtwcm9wZXJ0eS52YWx1ZX1gO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXBvcnRVUkwgKz0gYCZkaWFsZWN0PSR7cGFyYW1zLmRpYWxlY3R9JmZvcm1hdD0ke3BhcmFtcy5mb3JtYXR9YDtcclxuICAgIHJlcG9ydFVSTCArPSBgJnByb2dyYW09JHtwYXJhbXMucHJvZ3JhbU5hbWV9JnJlc3VsdEZpbGVOYW1lPSR7cGFyYW1zLmRvd25sb2FkTmFtZX1gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChyZXBvcnRVUkwsIHt9LCB7IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pXHJcbiAgICAgIC5waXBlKG1hcChyZXBvcnQgPT4ge1xyXG4gICAgICAgIGlmIChwYXJhbXMuZG93bmxvYWQpIHtcclxuICAgICAgICAgIHRoaXMuZG93bmxvYWQocmVwb3J0LCBgJHtwYXJhbXMuZG93bmxvYWROYW1lfS4ke3BhcmFtcy5mb3JtYXR9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXBvcnQ7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkKGZpbGU6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJpbmFyeURhdGEgPSBbZmlsZV07XHJcbiAgICBjb25zdCBkb3dubG9hZExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBjb25zdCB1cmxEb3dubG9hZCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKGJpbmFyeURhdGEsIHsgdHlwZTogZmlsZS50eXBlIH0pKTtcclxuXHJcbiAgICBkb3dubG9hZExpbmsuaHJlZiA9IHVybERvd25sb2FkO1xyXG4gICAgZG93bmxvYWRMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkTGluayk7XHJcbiAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcclxuICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybERvd25sb2FkKTtcclxuICAgIGRvd25sb2FkTGluay5yZW1vdmUoKTtcclxuICB9XHJcbn1cclxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovRGF0YXN1bC9USEYvZHRzLWJhY2tvZmZpY2UtdXRpbC12My9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVyQywrQkFHQzs7O0lBRkMseUJBQWE7O0lBQ2IsMEJBQWM7Ozs7O0FBR2hCLDBDQVFDOzs7SUFQQywwQ0FBbUI7O0lBQ25CLDJDQUFvQjs7SUFDcEIsMENBQTZCOztJQUM3Qix1Q0FBZ0I7O0lBQ2hCLDRDQUFxQjs7SUFDckIsd0NBQWtCOztJQUNsQixzQ0FBc0I7OztBQUd4QixNQUFZLGFBQWE7SUFDdkIsSUFBSSxRQUFTO0lBQ2IsR0FBRyxPQUFRO0lBQ1gsSUFBSSxRQUFTO0lBQ2IsSUFBSSxRQUFTO0VBQ2Q7O0FBSUQsTUFBTSxPQUFPLGFBQWE7Ozs7SUFJeEIsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUh6QixRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCO1lBQy9FLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQztJQUVoQixDQUFDOzs7Ozs7SUFFOUMsUUFBUSxDQUFDLE1BQTRCLEVBQUUsY0FBdUIsSUFBSTs7Y0FDMUQsT0FBTyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTs7WUFFbEUsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1FBRWpELElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLFNBQVMsSUFBSSxHQUFHLENBQUM7WUFFakIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPOzs7OztZQUFDLENBQUMsUUFBbUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDL0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO29CQUNiLFNBQVMsSUFBSSxHQUFHLENBQUM7aUJBQ2xCO2dCQUNELFNBQVMsSUFBSSxnQkFBZ0IsUUFBUSxDQUFDLElBQUksYUFBYSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUUsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUVELFNBQVMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxPQUFPLFdBQVcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xFLFNBQVMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxXQUFXLG1CQUFtQixNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMxRSxJQUFJLENBQUMsR0FBRzs7OztRQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ2xFO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7Ozs7OztJQUVELFFBQVEsQ0FBQyxJQUFVLEVBQUUsUUFBZ0I7O2NBQzdCLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQzs7Y0FDbkIsWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDOztjQUMxQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLFlBQVksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7O1lBL0NGLFVBQVU7Ozs7WUExQkYsVUFBVTs7OztJQTZCakIsNEJBQzZEOztJQUVqRCxtQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUHJvcGVydHkge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElSZXBvcnRTZXJ2aWNlUGFyYW1zIHtcclxuICByZXBvcnROYW1lOiBzdHJpbmc7IC8vIE5vbWUgZG8gcnB0RGVzaWduXHJcbiAgcHJvZ3JhbU5hbWU6IHN0cmluZzsgLy8gUHJvZ3JhbWEgUHJvZ3Jlc3NcclxuICBwcm9wZXJ0aWVzOiBBcnJheTxJUHJvcGVydHk+O1xyXG4gIGRpYWxlY3Q6IHN0cmluZztcclxuICBkb3dubG9hZE5hbWU6IHN0cmluZztcclxuICBkb3dubG9hZDogYm9vbGVhbjtcclxuICBmb3JtYXQ6IFJlcG9ydEZvcm1hdHM7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFJlcG9ydEZvcm1hdHMge1xyXG4gIFhMU1ggPSAneGxzeCcsXHJcbiAgUERGID0gJ3BkZicsXHJcbiAgRE9DWCA9ICdkb2N4JyxcclxuICBIVE1MID0gJ2h0bWwnXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgVVJMID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigndG90dnMtbWVudScpID4gMCA/ICcvdG90dnMtbWVudS9yZXN0L3JlcG9ydC9ydW4vJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcvZHRzL2RhdGFzdWwtcmVwb3J0L3Jlc291cmNlcy9ydW4vJztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICBnZW5lcmF0ZShwYXJhbXM6IElSZXBvcnRTZXJ2aWNlUGFyYW1zLCBzaG93TG9hZGluZzogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICdYLVBPLVNjcmVlbi1Mb2NrJzogc2hvd0xvYWRpbmcgPyAndHJ1ZScgOiAnZmFsc2UnIH07XHJcblxyXG4gICAgbGV0IHJlcG9ydFVSTCA9IGAke3RoaXMuVVJMfSR7cGFyYW1zLnJlcG9ydE5hbWV9YDtcclxuXHJcbiAgICBpZiAocGFyYW1zLnByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXBvcnRVUkwgKz0gJz8nO1xyXG5cclxuICAgICAgcGFyYW1zLnByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHk6IElQcm9wZXJ0eSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgICAgIHJlcG9ydFVSTCArPSAnJic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcG9ydFVSTCArPSBgY19wcm9wZXJ0aWVzPSR7cHJvcGVydHkubmFtZX0mY192YWx1ZXM9JHtwcm9wZXJ0eS52YWx1ZX1gO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXBvcnRVUkwgKz0gYCZkaWFsZWN0PSR7cGFyYW1zLmRpYWxlY3R9JmZvcm1hdD0ke3BhcmFtcy5mb3JtYXR9YDtcclxuICAgIHJlcG9ydFVSTCArPSBgJnByb2dyYW09JHtwYXJhbXMucHJvZ3JhbU5hbWV9JnJlc3VsdEZpbGVOYW1lPSR7cGFyYW1zLmRvd25sb2FkTmFtZX1gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChyZXBvcnRVUkwsIHt9LCB7IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pXHJcbiAgICAgIC5waXBlKG1hcChyZXBvcnQgPT4ge1xyXG4gICAgICAgIGlmIChwYXJhbXMuZG93bmxvYWQpIHtcclxuICAgICAgICAgIHRoaXMuZG93bmxvYWQocmVwb3J0LCBgJHtwYXJhbXMuZG93bmxvYWROYW1lfS4ke3BhcmFtcy5mb3JtYXR9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXBvcnQ7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkKGZpbGU6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJpbmFyeURhdGEgPSBbZmlsZV07XHJcbiAgICBjb25zdCBkb3dubG9hZExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBjb25zdCB1cmxEb3dubG9hZCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKGJpbmFyeURhdGEsIHsgdHlwZTogZmlsZS50eXBlIH0pKTtcclxuXHJcbiAgICBkb3dubG9hZExpbmsuaHJlZiA9IHVybERvd25sb2FkO1xyXG4gICAgZG93bmxvYWRMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkTGluayk7XHJcbiAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcclxuICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybERvd25sb2FkKTtcclxuICAgIGRvd25sb2FkTGluay5yZW1vdmUoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/services/session-info.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  import { Injectable } from '@angular/core';
6
7
  import { HttpClient } from '@angular/common/http';
@@ -58,4 +59,4 @@ if (false) {
58
59
  /** @type {?} */
59
60
  UserLoginService.prototype.http;
60
61
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kdHMtYmFja29mZmljZS11dGlsLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3Nlc3Npb24taW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS3JDLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFLekIsWUFBbUIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUgxQixXQUFNLEdBQUcsaUNBQWlDLENBQUM7UUFDcEQsY0FBUyxHQUFHLFNBQVMsQ0FBQztJQUVpQixDQUFDOzs7O0lBRXhDLFlBQVk7UUFDUixJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDL0MsSUFBSSxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ25DLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM3QixDQUFDLEVBQUMsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDOzs7WUF4QkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7O1lBUFEsVUFBVTs7Ozs7SUFVZixrQ0FBb0Q7O0lBQ3BELHFDQUFzQjs7SUFFVixnQ0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IElTZXNzaW9uSW5mbyB9IGZyb20gJy4uL21vZGVsL3Nlc3Npb24taW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckxvZ2luU2VydmljZSB7XHJcblxyXG4gICAgcmVhZG9ubHkgYXBpVXJsID0gJy90b3R2cy1tZW51L3Jlc3QvZ2V0U2Vzc2lvbkluZm8nO1xyXG4gICAgdXNlckxvZ2luID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgICBnZXRVc2VyTG9naW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJuYW1lJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VybmFtZScpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVzZXJMb2dpbikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy51c2VyTG9naW4pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElTZXNzaW9uSW5mbz4oYCR7dGhpcy5hcGlVcmx9YClcclxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJMb2dpbiA9IHJlc3BvbnNlLnVzZXJOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS51c2VyTmFtZTtcclxuICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovRGF0YXN1bC9USEYvZHRzLWJhY2tvZmZpY2UtdXRpbC12My9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zZXNzaW9uLWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLckMsTUFBTSxPQUFPLGdCQUFnQjs7OztJQUt6QixZQUFtQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSDFCLFdBQU0sR0FBRyxpQ0FBaUMsQ0FBQztRQUNwRCxjQUFTLEdBQUcsU0FBUyxDQUFDO0lBRWlCLENBQUM7Ozs7SUFFeEMsWUFBWTtRQUNSLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdCO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUMvQyxJQUFJLENBQUMsR0FBRzs7OztZQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDbkMsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzdCLENBQUMsRUFBQyxDQUFDLENBQUM7U0FDWDtJQUNMLENBQUM7OztZQXhCSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7WUFQUSxVQUFVOzs7OztJQVVmLGtDQUFvRDs7SUFDcEQscUNBQXNCOztJQUVWLGdDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSVNlc3Npb25JbmZvIH0gZnJvbSAnLi4vbW9kZWwvc2Vzc2lvbi1pbmZvLm1vZGVsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyTG9naW5TZXJ2aWNlIHtcclxuXHJcbiAgICByZWFkb25seSBhcGlVcmwgPSAnL3RvdHZzLW1lbnUvcmVzdC9nZXRTZXNzaW9uSW5mbyc7XHJcbiAgICB1c2VyTG9naW4gPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICAgIGdldFVzZXJMb2dpbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcm5hbWUnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJuYW1lJykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudXNlckxvZ2luKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLnVzZXJMb2dpbik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVNlc3Npb25JbmZvPihgJHt0aGlzLmFwaVVybH1gKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckxvZ2luID0gcmVzcG9uc2UudXNlck5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnVzZXJOYW1lO1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/services/translate.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  import { Injectable } from '@angular/core';
6
7
  export class TranslateService {
@@ -31,4 +32,4 @@ export class TranslateService {
31
32
  TranslateService.decorators = [
32
33
  { type: Injectable }
33
34
  ];
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kdHMtYmFja29mZmljZS11dGlsLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFFekIsTUFBTSxDQUFDLGlCQUFpQjtRQUNwQixPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs7SUFFRCxNQUFNLENBQUMsc0JBQXNCO1FBQ3pCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQzs7OztJQUVELE1BQU0sQ0FBQyxrQkFBa0I7O2NBQ2YsTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVE7UUFFMUUsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQUUsT0FBTyxNQUFNLENBQUM7U0FBRTtRQUUzRSxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOzs7WUFqQkosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVNlcnZpY2Uge1xyXG5cclxuICAgIHN0YXRpYyBnZXRTdXBvcnRMYW5ndWFnZSgpIHtcclxuICAgICAgICByZXR1cm4gWydwdC1CUicsICdwdCcsICdlbi1VUycsICdlbicsICdlcyddO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXREZWZhdWx0Q3VycmVuY3lDb2RlKCkge1xyXG4gICAgICAgIHJldHVybiAnJCc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEN1cnJlbnRMYW5ndWFnZSgpIHtcclxuICAgICAgICBjb25zdCBsb2NhbGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci5sYW5ndWFnZScpIHx8IG5hdmlnYXRvci5sYW5ndWFnZTtcclxuXHJcbiAgICAgICAgaWYgKGxvY2FsZSAmJiB0aGlzLmdldFN1cG9ydExhbmd1YWdlKCkuaW5jbHVkZXMobG9jYWxlKSkgeyByZXR1cm4gbG9jYWxlOyB9XHJcblxyXG4gICAgICAgIHJldHVybiAnZW4tVVMnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovRGF0YXN1bC9USEYvZHRzLWJhY2tvZmZpY2UtdXRpbC12My9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLGdCQUFnQjs7OztJQUV6QixNQUFNLENBQUMsaUJBQWlCO1FBQ3BCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7OztJQUVELE1BQU0sQ0FBQyxzQkFBc0I7UUFDekIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzs7O0lBRUQsTUFBTSxDQUFDLGtCQUFrQjs7Y0FDZixNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUTtRQUUxRSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFBRSxPQUFPLE1BQU0sQ0FBQztTQUFFO1FBRTNFLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7OztZQWpCSixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XHJcblxyXG4gICAgc3RhdGljIGdldFN1cG9ydExhbmd1YWdlKCkge1xyXG4gICAgICAgIHJldHVybiBbJ3B0LUJSJywgJ3B0JywgJ2VuLVVTJywgJ2VuJywgJ2VzJ107XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldERlZmF1bHRDdXJyZW5jeUNvZGUoKSB7XHJcbiAgICAgICAgcmV0dXJuICckJztcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0Q3VycmVudExhbmd1YWdlKCkge1xyXG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLmxhbmd1YWdlJykgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xyXG5cclxuICAgICAgICBpZiAobG9jYWxlICYmIHRoaXMuZ2V0U3Vwb3J0TGFuZ3VhZ2UoKS5pbmNsdWRlcyhsb2NhbGUpKSB7IHJldHVybiBsb2NhbGU7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuICdlbi1VUyc7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/utils/date.util.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  /*
6
7
  Versão: 1.000
@@ -91,4 +92,4 @@ export class DateUtil {
91
92
  return number;
92
93
  }
93
94
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZHRzLWJhY2tvZmZpY2UtdXRpbC8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9kYXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDOzs7Ozs7SUFHTCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBVTs7Y0FDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7O2NBQ3JCLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQzs7Y0FDNUIsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFFaEMsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM1RCxDQUFDOzs7Ozs7SUFHRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTs7Y0FDM0IsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O2NBQzNCLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDOztjQUM3QixLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7Ozs7OztJQUdELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBVTtRQUN6QixPQUFPLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7Ozs7O0lBR0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFDNUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFFN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Ozs7Ozs7SUFHRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxFQUFFLFNBQWlCO1FBQzFELElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1lBQ3pELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDdEM7O2tCQUVLLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDOztrQkFDdkMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O2tCQUN6QyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7Ozs7O0lBR0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNO1FBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQ2IsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDBcclxuRGF0YSBDcmlhw6fDo286IDE4LzA0LzIwMTlcclxuKi9cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlVXRpbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qIFRyYW5zZm9ybWEgZGF0YSBwYXJhIG8gcGFkcsOjbyBZWVlZLU1NLUREICovXHJcbiAgICBzdGF0aWMgZGF0ZVRvUXVlcnlQYXJhbShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBpRGF5ID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICAgICAgY29uc3QgaU1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgICAgICBjb25zdCBpWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke2lZZWFyfS0ke3RoaXMucGFkKGlNb250aCl9LSR7dGhpcy5wYWQoaURheSl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBUcmFuc2Zvcm1hIGRhdGEgbm8gcGFkcsOjbyBZWVlZLU1NLUREIHBhcmEgREFURSAqL1xyXG4gICAgc3RhdGljIHF1ZXJ5UGFyYW1Ub0RhdGUocGFyYW06IHN0cmluZyk6IERhdGUge1xyXG4gICAgICAgIGNvbnN0IGlEYXkgPSArcGFyYW0uc3BsaXQoJy0nKVsyXTtcclxuICAgICAgICBjb25zdCBpTW9udGggPSArcGFyYW0uc3BsaXQoJy0nKVsxXTtcclxuICAgICAgICBjb25zdCBpWWVhciA9ICtwYXJhbS5zcGxpdCgnLScpWzBdO1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoaVllYXIsIGlNb250aCAtIDEsIGlEYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFZhbGlkYSBzZSBmb2kgaW5mb3JtYWRvIHVtYSBkYXRhIHbDoWxpZGEgKi9cclxuICAgIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQWp1c3RhIGEgZGF0YSByZXRvcm5hbmRvIG8gcGFkcsOjbyBEQVRFICovXHJcbiAgICBzdGF0aWMgYWp1c3REYXRlKHBhcmFtOiBhbnkpOiBEYXRlIHtcclxuICAgICAgICBpZiAocGFyYW0gaW5zdGFuY2VvZiBEYXRlKSB7IHJldHVybiBwYXJhbTsgfVxyXG4gICAgICAgIGlmICghcGFyYW0pIHsgcmV0dXJuIHBhcmFtOyB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5UGFyYW1Ub0RhdGUocGFyYW0uc3BsaXQoJ1QnKVswXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQWp1c3RhIGEgZGF0YSBwYXJhIG8gcGFkcsOjbyBEQVRFIC0gdXRpbGl6YWRhIG5vcyBjb25zdHJ1dG9yZXMgZG9zIG1vZGVsb3MgKi9cclxuICAgIHN0YXRpYyBhanVzdERhdGVUb01vZGVsKHZhbHVlczogT2JqZWN0ID0ge30sIGZpZWxkTmFtZTogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlcy5oYXNPd25Qcm9wZXJ0eShmaWVsZE5hbWUpICYmICh2YWx1ZXNbZmllbGROYW1lXSkpIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlc1tmaWVsZE5hbWVdLmluZGV4T2YoJ1QnKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWVzW2ZpZWxkTmFtZV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpRGF5ID0gK3ZhbHVlc1tmaWVsZE5hbWVdLnNwbGl0KCctJylbMl07XHJcbiAgICAgICAgICAgIGNvbnN0IGlNb250aCA9ICt2YWx1ZXNbZmllbGROYW1lXS5zcGxpdCgnLScpWzFdO1xyXG4gICAgICAgICAgICBjb25zdCBpWWVhciA9ICt2YWx1ZXNbZmllbGROYW1lXS5zcGxpdCgnLScpWzBdO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoaVllYXIsIGlNb250aCAtIDEsIGlEYXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQWRpY29uYSB6ZXJvIGEgZXNxdWVyZGEgZG8gbsO6bWVybyAqL1xyXG4gICAgc3RhdGljIHBhZChudW1iZXIpIHtcclxuICAgICAgICBpZiAobnVtYmVyIDwgMTApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcwJyArIG51bWJlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bWJlcjtcclxuICAgIH1cclxufVxyXG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjMvcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvZGF0ZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUtBLE1BQU0sT0FBTyxRQUFRO0lBRWpCLGdCQUNJLENBQUM7Ozs7OztJQUdMLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFVOztjQUN4QixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRTs7Y0FDckIsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDOztjQUM1QixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUVoQyxPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7Ozs7OztJQUdELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFhOztjQUMzQixJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Y0FDM0IsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O2NBQzdCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7Ozs7O0lBR0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFVO1FBQ3pCLE9BQU8sSUFBSSxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs7Ozs7SUFHRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUM1QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUU3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7Ozs7OztJQUdELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFpQixFQUFFLEVBQUUsU0FBaUI7UUFDMUQsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7WUFDekQsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDckMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUN0Qzs7a0JBRUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O2tCQUN2QyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7a0JBQ3pDLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDNUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7Ozs7SUFHRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU07UUFDYixJQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDYixPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUM7U0FDdkI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG5WZXJzw6NvOiAxLjAwMFxyXG5EYXRhIENyaWHDp8OjbzogMTgvMDQvMjAxOVxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVVdGlsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyogVHJhbnNmb3JtYSBkYXRhIHBhcmEgbyBwYWRyw6NvIFlZWVktTU0tREQgKi9cclxuICAgIHN0YXRpYyBkYXRlVG9RdWVyeVBhcmFtKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGlEYXkgPSBkYXRlLmdldERhdGUoKTtcclxuICAgICAgICBjb25zdCBpTW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IGlZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7aVllYXJ9LSR7dGhpcy5wYWQoaU1vbnRoKX0tJHt0aGlzLnBhZChpRGF5KX1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFRyYW5zZm9ybWEgZGF0YSBubyBwYWRyw6NvIFlZWVktTU0tREQgcGFyYSBEQVRFICovXHJcbiAgICBzdGF0aWMgcXVlcnlQYXJhbVRvRGF0ZShwYXJhbTogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgY29uc3QgaURheSA9ICtwYXJhbS5zcGxpdCgnLScpWzJdO1xyXG4gICAgICAgIGNvbnN0IGlNb250aCA9ICtwYXJhbS5zcGxpdCgnLScpWzFdO1xyXG4gICAgICAgIGNvbnN0IGlZZWFyID0gK3BhcmFtLnNwbGl0KCctJylbMF07XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShpWWVhciwgaU1vbnRoIC0gMSwgaURheSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogVmFsaWRhIHNlIGZvaSBpbmZvcm1hZG8gdW1hIGRhdGEgdsOhbGlkYSAqL1xyXG4gICAgc3RhdGljIGlzVmFsaWREYXRlKGRhdGU6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBBanVzdGEgYSBkYXRhIHJldG9ybmFuZG8gbyBwYWRyw6NvIERBVEUgKi9cclxuICAgIHN0YXRpYyBhanVzdERhdGUocGFyYW06IGFueSk6IERhdGUge1xyXG4gICAgICAgIGlmIChwYXJhbSBpbnN0YW5jZW9mIERhdGUpIHsgcmV0dXJuIHBhcmFtOyB9XHJcbiAgICAgICAgaWYgKCFwYXJhbSkgeyByZXR1cm4gcGFyYW07IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlQYXJhbVRvRGF0ZShwYXJhbS5zcGxpdCgnVCcpWzBdKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBBanVzdGEgYSBkYXRhIHBhcmEgbyBwYWRyw6NvIERBVEUgLSB1dGlsaXphZGEgbm9zIGNvbnN0cnV0b3JlcyBkb3MgbW9kZWxvcyAqL1xyXG4gICAgc3RhdGljIGFqdXN0RGF0ZVRvTW9kZWwodmFsdWVzOiBPYmplY3QgPSB7fSwgZmllbGROYW1lOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgICAgICBpZiAodmFsdWVzLmhhc093blByb3BlcnR5KGZpZWxkTmFtZSkgJiYgKHZhbHVlc1tmaWVsZE5hbWVdKSkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWVzW2ZpZWxkTmFtZV0uaW5kZXhPZignVCcpID49IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZXNbZmllbGROYW1lXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlEYXkgPSArdmFsdWVzW2ZpZWxkTmFtZV0uc3BsaXQoJy0nKVsyXTtcclxuICAgICAgICAgICAgY29uc3QgaU1vbnRoID0gK3ZhbHVlc1tmaWVsZE5hbWVdLnNwbGl0KCctJylbMV07XHJcbiAgICAgICAgICAgIGNvbnN0IGlZZWFyID0gK3ZhbHVlc1tmaWVsZE5hbWVdLnNwbGl0KCctJylbMF07XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShpWWVhciwgaU1vbnRoIC0gMSwgaURheSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBBZGljb25hIHplcm8gYSBlc3F1ZXJkYSBkbyBuw7ptZXJvICovXHJcbiAgICBzdGF0aWMgcGFkKG51bWJlcikge1xyXG4gICAgICAgIGlmIChudW1iZXIgPCAxMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJzAnICsgbnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVtYmVyO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/utils/disclaimer.util.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  /*
6
7
  Versão: 1.009
@@ -734,4 +735,4 @@ if (false) {
734
735
  /** @type {?} */
735
736
  DisclaimerUtil.prototype.literals;
736
737
  }
737
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY2xhaW1lci51dGlsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZHRzLWJhY2tvZmZpY2UtdXRpbC8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9kaXNjbGFpbWVyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFTQSxNQUFNLE9BQU8sY0FBYzs7Ozs7O0lBS3ZCLFlBQ0ksY0FBcUMsRUFDckMsVUFBc0IsRUFDdEIsUUFBZ0I7UUFMcEIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQU9mLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7Ozs7Ozs7OztJQUVNLGNBQWMsQ0FBQyxRQUFnQixFQUFFLEtBQWEsRUFBRSxTQUFTLEdBQUcsS0FBSyxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQUUsUUFBUSxHQUFHLEtBQUs7UUFDekcsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDakQ7UUFFRCxJQUFJLFFBQVEsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQ2pEO1FBRUQsT0FBTztZQUNILFNBQVM7WUFDVCxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ2hGLFFBQVEsRUFBRSxHQUFH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Q0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7Ozs7O0lBRU0sV0FBVyxDQUFDLElBQVU7UUFDekIsT0FBTyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7Ozs7O0lBRU0sU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUM1QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUU3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7Ozs7SUFFTSxHQUFHLENBQUMsTUFBTTtRQUNiLElBQUksTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNiLE9BQU8sR0FBRyxHQUFHLE1BQU0sQ0FBQztTQUN2QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSjs7O0lBN2VHLHdDQUFzQzs7SUFDdEMsb0NBQXVCOztJQUN2QixrQ0FBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG5WZXJzw6NvOiAxLjAwOVxyXG5EYXRhIENyaWHDp8OjbzogMDYvMDgvMjAxOFxyXG4qL1xyXG5cclxuaW1wb3J0IHsgUG9EaXNjbGFpbWVyLCBQb0kxOG5QaXBlLCBQb0NoZWNrYm94R3JvdXBPcHRpb24sIFBvTXVsdGlzZWxlY3RPcHRpb24gfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IElGaWx0ZXJSYW5nZUNoYXJhY3RlciwgSUZpbHRlclJhbmdlTnVtYmVyLCBJRmlsdGVyUmFuZ2VEYXRlIH0gZnJvbSAnLi4vLi4vbGliL2ludGVyZmFjZXMvZmlsdGVyLXJhbmdlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaXNjbGFpbWVyVXRpbCB7XHJcbiAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlO1xyXG4gICAgcG9JMThuUGlwZTogUG9JMThuUGlwZTtcclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHBvSTE4blBpcGU6IFBvSTE4blBpcGUsXHJcbiAgICAgICAgbGl0ZXJhbHM6IE9iamVjdFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbiA9IHBvTm90aWZpY2F0aW9uO1xyXG4gICAgICAgIHRoaXMucG9JMThuUGlwZSA9IHBvSTE4blBpcGU7XHJcbiAgICAgICAgdGhpcy5saXRlcmFscyA9IGxpdGVyYWxzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYWtlRGlzY2xhaW1lcihwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBoaWRlQ2xvc2UgPSBmYWxzZSwgdHJhZFZhbHVlID0gZmFsc2UsIHZsZEJsYW5rID0gZmFsc2UpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2bGRCbGFuayAmJiB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGlkZUNsb3NlLFxyXG4gICAgICAgICAgICBsYWJlbDogYCR7dGhpcy5saXRlcmFsc1twcm9wZXJ0eV19OiAke3RyYWRWYWx1ZSA/IHRoaXMubGl0ZXJhbHNbdmFsdWVdIDogdmFsdWV9YCxcclxuICAgICAgICAgICAgcHJvcGVydHk6IGAke3Byb3BlcnR5fWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHt2YWx1ZX1gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tTnVtYmVyKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIGhpZGVDbG9zZSA9IGZhbHNlLCB2bGRCbGFuayA9IGZhbHNlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogJycsIHByb3BlcnR5OiAnJywgdmFsdWU6ICcnIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmxkQmxhbmsgJiYgdmFsdWUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGlkZUNsb3NlLFxyXG4gICAgICAgICAgICBsYWJlbDogYCR7dGhpcy5saXRlcmFsc1twcm9wZXJ0eV19OiAke3ZhbHVlfWAsXHJcbiAgICAgICAgICAgIHByb3BlcnR5OiBgJHtwcm9wZXJ0eX1gLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCR7dmFsdWV9YFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyRnJvbUJvb2xlYW4ocHJvcGVydHk6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4sIGhpZGVDbG9zZSA9IGZhbHNlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogJycsIHByb3BlcnR5OiAnJywgdmFsdWU6ICcnIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBoaWRlQ2xvc2UsXHJcbiAgICAgICAgICAgIGxhYmVsOiBgJHt0aGlzLmxpdGVyYWxzW3Byb3BlcnR5XX06ICR7dmFsdWUgPyB0aGlzLmxpdGVyYWxzWyd5ZXMnXSA6IHRoaXMubGl0ZXJhbHNbJ25vJ119YCxcclxuICAgICAgICAgICAgcHJvcGVydHk6IGAke3Byb3BlcnR5fWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHt2YWx1ZX1gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tRGF0ZShwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogRGF0ZSwgaGlkZUNsb3NlID0gZmFsc2UpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGNvbnN0IGREYXRlOiBEYXRlID0gdGhpcy5hanVzdERhdGUodmFsdWUpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZERhdGUoZERhdGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMubGl0ZXJhbHNbcHJvcGVydHldfTogJHtkRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKX1gLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eTogYCR7cHJvcGVydHl9YCxcclxuICAgICAgICAgICAgdmFsdWU6IGAke3RoaXMuZGF0ZVRvUXVlcnlQYXJhbShkRGF0ZSl9YFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyRnJvbU11bHRpU2VsZWN0KHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBBcnJheTxhbnk+LCBsZW5ndGggPSAwLFxyXG4gICAgICAgIGhpZGVDbG9zZSA9IGZhbHNlLCB0cmFkVmFsdWUgPSBmYWxzZSk6IFBvRGlzY2xhaW1lciB7XHJcbiAgICAgICAgbGV0IGxzdExhYmVscyA9ICcnO1xyXG4gICAgICAgIGxldCBsc3RWYWx1ZXMgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogJycsIHByb3BlcnR5OiAnJywgdmFsdWU6ICcnIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwIHx8IChsZW5ndGggPiAwICYmIHZhbHVlLmxlbmd0aCA9PT0gbGVuZ3RoKSkge1xyXG4gICAgICAgICAgICBsc3RMYWJlbHMgPSB0aGlzLmxpdGVyYWxzWydhbGwnXTtcclxuICAgICAgICAgICAgbHN0VmFsdWVzID0gJ2FsbCc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWUubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxzdExhYmVscyAhPT0gJycpIHsgbHN0TGFiZWxzID0gYCR7bHN0TGFiZWxzfSwgYDsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGxzdFZhbHVlcyAhPT0gJycpIHsgbHN0VmFsdWVzID0gYCR7bHN0VmFsdWVzfSxgOyB9XHJcbiAgICAgICAgICAgICAgICBsc3RMYWJlbHMgPSBgJHtsc3RMYWJlbHN9JHt0cmFkVmFsdWUgPyB0aGlzLmxpdGVyYWxzW2l0ZW1dIDogaXRlbX1gO1xyXG4gICAgICAgICAgICAgICAgbHN0VmFsdWVzID0gYCR7bHN0VmFsdWVzfSR7aXRlbX1gO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMubGl0ZXJhbHNbcHJvcGVydHldfTogJHtsc3RMYWJlbHN9YCxcclxuICAgICAgICAgICAgcHJvcGVydHk6IGAke3Byb3BlcnR5fWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHtsc3RWYWx1ZXN9YFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyRnJvbU11bHRpU2VsZWN0TnVtYmVyKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBBcnJheTxhbnk+LCBvcHRpb25zOiBBcnJheTxhbnk+LFxyXG4gICAgICAgIGxlbmd0aCA9IDAsIGhpZGVDbG9zZSA9IGZhbHNlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBsZXQgbHN0TGFiZWxzID0gJyc7XHJcbiAgICAgICAgbGV0IGxzdFZhbHVlcyA9ICcnO1xyXG4gICAgICAgIGxldCBvcHQgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlIHx8ICFvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgfHwgKGxlbmd0aCA+IDAgJiYgdmFsdWUubGVuZ3RoID09PSBsZW5ndGgpKSB7XHJcbiAgICAgICAgICAgIGxzdExhYmVscyA9IHRoaXMubGl0ZXJhbHNbJ2FsbCddO1xyXG4gICAgICAgICAgICBsc3RWYWx1ZXMgPSAnYWxsJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZS5tYXAoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobHN0TGFiZWxzICE9PSAnJykgeyBsc3RMYWJlbHMgPSBgJHtsc3RMYWJlbHN9LCBgOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAobHN0VmFsdWVzICE9PSAnJykgeyBsc3RWYWx1ZXMgPSBgJHtsc3RWYWx1ZXN9LGA7IH1cclxuXHJcbiAgICAgICAgICAgICAgICBvcHQgPSBvcHRpb25zLmZpbmQoaXRPcHQgPT4gaXRPcHQudmFsdWUgPT09IGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgbHN0TGFiZWxzID0gYCR7bHN0TGFiZWxzfSR7b3B0ID8gb3B0LmxhYmVsIDogaXRlbX1gO1xyXG4gICAgICAgICAgICAgICAgbHN0VmFsdWVzID0gYCR7bHN0VmFsdWVzfSR7aXRlbX1gO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMubGl0ZXJhbHNbcHJvcGVydHldfTogJHtsc3RMYWJlbHN9YCxcclxuICAgICAgICAgICAgcHJvcGVydHk6IGAke3Byb3BlcnR5fWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHtsc3RWYWx1ZXN9YFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyRnJvbUNoZWNrYm94R3JvdXAocHJvcGVydHk6IHN0cmluZywgdmFsdWU6IEFycmF5PHN0cmluZz4sIGxlbmd0aCA9IDAsIGhpZGVDbG9zZSA9IGZhbHNlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBsZXQgbHN0TGFiZWxzID0gJyc7XHJcbiAgICAgICAgbGV0IGxzdFZhbHVlcyA9ICcnO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgbHN0TGFiZWxzID0gdGhpcy5saXRlcmFsc1snbm9uZSddO1xyXG4gICAgICAgICAgICBsc3RWYWx1ZXMgPSAnbm9uZSc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChsZW5ndGggPiAwICYmIHZhbHVlLmxlbmd0aCA9PT0gbGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxzdExhYmVscyA9IHRoaXMubGl0ZXJhbHNbJ2FsbCddO1xyXG4gICAgICAgICAgICBsc3RWYWx1ZXMgPSAnYWxsJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZS5tYXAoY2hlY2tQYXJhbSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobHN0TGFiZWxzICE9PSAnJykgeyBsc3RMYWJlbHMgPSBgJHtsc3RMYWJlbHN9LCBgOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAobHN0VmFsdWVzICE9PSAnJykgeyBsc3RWYWx1ZXMgPSBgJHtsc3RWYWx1ZXN9LGA7IH1cclxuICAgICAgICAgICAgICAgIGxzdExhYmVscyA9IGAke2xzdExhYmVsc30ke3RoaXMubGl0ZXJhbHNbY2hlY2tQYXJhbV19YDtcclxuICAgICAgICAgICAgICAgIGxzdFZhbHVlcyA9IGAke2xzdFZhbHVlc30ke2NoZWNrUGFyYW19YDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBoaWRlQ2xvc2UsXHJcbiAgICAgICAgICAgIGxhYmVsOiBgJHt0aGlzLmxpdGVyYWxzW3Byb3BlcnR5XX06ICR7bHN0TGFiZWxzfWAsXHJcbiAgICAgICAgICAgIHByb3BlcnR5OiBgJHtwcm9wZXJ0eX1gLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCR7bHN0VmFsdWVzfWBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYWtlRGlzY2xhaW1lckZyb21SYW5nZUNoYXJhY3Rlcihwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogSUZpbHRlclJhbmdlQ2hhcmFjdGVyLCBoaWRlQ2xvc2UgPSBmYWxzZSxcclxuICAgICAgICB2YWxpZGF0ZUVxdWFsID0gdHJ1ZSk6IFBvRGlzY2xhaW1lciB7XHJcbiAgICAgICAgaWYgKHZhbHVlLnZhbEluaXRpYWwgPT09IG51bGwgfHwgdmFsdWUudmFsSW5pdGlhbCA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlLnZhbEluaXRpYWwgPSB2YWx1ZS5pbmlJbml0aWFsOyB9XHJcbiAgICAgICAgaWYgKHZhbHVlLnZhbEZpbmFsID09PSBudWxsIHx8IHZhbHVlLnZhbEZpbmFsID09PSB1bmRlZmluZWQpIHsgdmFsdWUudmFsRmluYWwgPSB2YWx1ZS5pbmlGaW5hbDsgfVxyXG5cclxuICAgICAgICBpZiAodmFsaWRhdGVFcXVhbCAmJlxyXG4gICAgICAgICAgICB2YWx1ZS5pbmlJbml0aWFsID09PSB2YWx1ZS52YWxJbml0aWFsICYmXHJcbiAgICAgICAgICAgIHZhbHVlLmluaUZpbmFsID09PSB2YWx1ZS52YWxGaW5hbCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogJycsIHByb3BlcnR5OiAnJywgdmFsdWU6ICcnIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBoaWRlQ2xvc2UsXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5saXRlcmFsc1snZmlsdGVyUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW3Byb3BlcnR5XSwgYCcke3ZhbHVlLnZhbEluaXRpYWx9J2AsIGAnJHt2YWx1ZS52YWxGaW5hbH0nYF0pLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eTogYCR7cHJvcGVydHl9YCxcclxuICAgICAgICAgICAgdmFsdWU6IGAke3ZhbHVlLnZhbEluaXRpYWx9OyR7dmFsdWUudmFsRmluYWx9YFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyRnJvbVJhbmdlTnVtYmVyKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBJRmlsdGVyUmFuZ2VOdW1iZXIsIGhpZGVDbG9zZSA9IGZhbHNlLFxyXG4gICAgICAgIHZhbGlkYXRlRXF1YWwgPSB0cnVlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBpZiAodmFsdWUudmFsSW5pdGlhbCA9PT0gbnVsbCB8fCB2YWx1ZS52YWxJbml0aWFsID09PSB1bmRlZmluZWQpIHsgdmFsdWUudmFsSW5pdGlhbCA9IHZhbHVlLmluaUluaXRpYWw7IH1cclxuICAgICAgICBpZiAodmFsdWUudmFsRmluYWwgPT09IG51bGwgfHwgdmFsdWUudmFsRmluYWwgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZS52YWxGaW5hbCA9IHZhbHVlLmluaUZpbmFsOyB9XHJcblxyXG4gICAgICAgIGlmICh2YWxpZGF0ZUVxdWFsICYmXHJcbiAgICAgICAgICAgIHZhbHVlLmluaUluaXRpYWwgPT09IHZhbHVlLnZhbEluaXRpYWwgJiZcclxuICAgICAgICAgICAgdmFsdWUuaW5pRmluYWwgPT09IHZhbHVlLnZhbEZpbmFsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0oXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpdGVyYWxzWydmaWx0ZXJSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbcHJvcGVydHldLCB2YWx1ZS52YWxJbml0aWFsLCB2YWx1ZS52YWxGaW5hbF0pLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eTogYCR7cHJvcGVydHl9YCxcclxuICAgICAgICAgICAgdmFsdWU6IGAke3ZhbHVlLnZhbEluaXRpYWx9OyR7dmFsdWUudmFsRmluYWx9YFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyRnJvbVJhbmdlRGF0ZShwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogSUZpbHRlclJhbmdlRGF0ZSwgaGlkZUNsb3NlID0gZmFsc2UsIHZhbGlkYXRlRXF1YWwgPSB0cnVlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBsZXQgdmFsSW5pdERhdGU6IERhdGUgPSB0aGlzLmFqdXN0RGF0ZSh2YWx1ZS52YWxJbml0aWFsKTtcclxuICAgICAgICBsZXQgdmFsRmluYWxEYXRlOiBEYXRlID0gdGhpcy5hanVzdERhdGUodmFsdWUudmFsRmluYWwpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZERhdGUodmFsSW5pdERhdGUpKSB7XHJcbiAgICAgICAgICAgIHZhbEluaXREYXRlID0gdmFsdWUuaW5pSW5pdGlhbDtcclxuICAgICAgICAgICAgdmFsdWUudmFsSW5pdGlhbCA9IHZhbHVlLmluaUluaXRpYWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZSh2YWxGaW5hbERhdGUpKSB7XHJcbiAgICAgICAgICAgIHZhbEZpbmFsRGF0ZSA9IHZhbHVlLmluaUZpbmFsO1xyXG4gICAgICAgICAgICB2YWx1ZS52YWxGaW5hbCA9IHZhbHVlLmluaUZpbmFsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbGlkYXRlRXF1YWwgJiZcclxuICAgICAgICAgICAgdGhpcy5kYXRlVG9RdWVyeVBhcmFtKHZhbHVlLmluaUluaXRpYWwpID09PSB0aGlzLmRhdGVUb1F1ZXJ5UGFyYW0odmFsSW5pdERhdGUpICYmXHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRvUXVlcnlQYXJhbSh2YWx1ZS5pbmlGaW5hbCkgPT09IHRoaXMuZGF0ZVRvUXVlcnlQYXJhbSh2YWxGaW5hbERhdGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0oXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpdGVyYWxzWydmaWx0ZXJSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbcHJvcGVydHldLCB2YWxJbml0RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSwgdmFsRmluYWxEYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpXSksXHJcbiAgICAgICAgICAgIHByb3BlcnR5OiBgJHtwcm9wZXJ0eX1gLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCR7dGhpcy5kYXRlVG9RdWVyeVBhcmFtKHZhbEluaXREYXRlKX07JHt0aGlzLmRhdGVUb1F1ZXJ5UGFyYW0odmFsRmluYWxEYXRlKX1gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6Q2hhckZyb21EaXNjbGFtZXIoZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcmV0dXJuVmFsdWUgPSBkZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgICAgIGlmIChkaXNjbGFpbWVycyAmJiBkaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRpc2NsYWltZXJzLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnByb3BlcnR5ID09PSBwcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBudWxsKSB7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0ek51bWJlckZyb21EaXNjbGFtZXIoZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgcmV0dXJuVmFsdWUgPSBkZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgICAgIGlmIChkaXNjbGFpbWVycyAmJiBkaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRpc2NsYWltZXJzLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnByb3BlcnR5ID09PSBwcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBudWxsKSB7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0ekJvb2xlYW5Gcm9tRGlzY2xhbWVyKGRpc2NsYWltZXJzOiBBcnJheTxQb0Rpc2NsYWltZXI+LCBwcm9wZXJ0eTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZGlzY2xhaW1lckZpbmQgPSBkaXNjbGFpbWVycy5maW5kKChpdGVtKSA9PiBpdGVtLnByb3BlcnR5ID09PSBwcm9wZXJ0eSk7XHJcbiAgICAgICAgICAgIGlmIChkaXNjbGFpbWVyRmluZCAmJiBkaXNjbGFpbWVyRmluZC52YWx1ZSAhPT0gbnVsbCAmJiBkaXNjbGFpbWVyRmluZC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzY2xhaW1lckZpbmQudmFsdWUgPT09ICd0cnVlJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6RGF0ZUZyb21EaXNjbGFtZXIoZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgICAgIGxldCByZXR1cm5WYWx1ZTogRGF0ZSA9IHRoaXMuYWp1c3REYXRlKGRlZmF1bHRWYWx1ZSk7XHJcblxyXG4gICAgICAgIGlmIChkaXNjbGFpbWVycyAmJiBkaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRpc2NsYWltZXJzLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnByb3BlcnR5ID09PSBwcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBudWxsKSB7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHRoaXMuYWp1c3REYXRlKGl0ZW0udmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpNdWx0aVNlbGVjdENoYXJGcm9tRGlzY2xhbWVyKGRpc2NsYWltZXJzOiBBcnJheTxQb0Rpc2NsYWltZXI+LCBwcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbj4pOiBBcnJheTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hdHpNdWx0aVNlbGVjdEZyb21EaXNjbGFtZXIoJ2NoYXInLCBkaXNjbGFpbWVycywgcHJvcGVydHksIGRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0ek11bHRpU2VsZWN0TnVtYmVyRnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZyxcclxuICAgICAgICBkZWZhdWx0VmFsdWU6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24+KTogQXJyYXk8bnVtYmVyPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR6TXVsdGlTZWxlY3RGcm9tRGlzY2xhbWVyKCdudW1iZXInLCBkaXNjbGFpbWVycywgcHJvcGVydHksIGRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0ek11bHRpU2VsZWN0RnJvbURpc2NsYW1lcih0eXBlOiBzdHJpbmcsIGRpc2NsYWltZXJzOiBBcnJheTxQb0Rpc2NsYWltZXI+LCBwcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbj4pOiBBcnJheTxhbnk+IHtcclxuXHJcbiAgICAgICAgbGV0IHJldHVyblZhbHVlID0gW107XHJcbiAgICAgICAgZGVmYXVsdFZhbHVlLm1hcChpdGVtID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuVmFsdWUucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwgfHwgaXRlbS52YWx1ZSA9PT0gJ2FsbCcgfHwgaXRlbS52YWx1ZSA9PT0gJ25vbmUnKSB7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUuc3BsaXQoJywnKS5mb3JFYWNoKGl0ZW1PcHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2NoYXInKSB7IHJldHVyblZhbHVlLnB1c2goaXRlbU9wdCk7IH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7IHJldHVyblZhbHVlLnB1c2goK2l0ZW1PcHQpOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpDaGVja2JveEZyb21EaXNjbGFtZXIoZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICAgICAgb3B0aW9uczogQXJyYXk8UG9DaGVja2JveEdyb3VwT3B0aW9uPik6IEFycmF5PHN0cmluZz4ge1xyXG5cclxuICAgICAgICBsZXQgcmV0dXJuVmFsdWUgPSBbXTtcclxuICAgICAgICBvcHRpb25zLm1hcChpdGVtID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuVmFsdWUucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwgfHwgaXRlbS52YWx1ZSA9PT0gJ2FsbCcgfHwgaXRlbS52YWx1ZSA9PT0gJ25vbmUnKSB7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUuc3BsaXQoJywnKS5mb3JFYWNoKGl0ZW1PcHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZS5wdXNoKGl0ZW1PcHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6UmFuZ2VDaGFyRnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZyxcclxuICAgICAgICByYW5nZUNoYXI6IElGaWx0ZXJSYW5nZUNoYXJhY3Rlcik6IElGaWx0ZXJSYW5nZUNoYXJhY3RlciB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gJyc7XHJcblxyXG4gICAgICAgIGlmIChkaXNjbGFpbWVycyAmJiBkaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRpc2NsYWltZXJzLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnByb3BlcnR5ID09PSBwcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBudWxsKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmF0elJhbmdlQ2hhckZyb21RdWVyeVBhcmFtKHZhbHVlLCByYW5nZUNoYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpSYW5nZU51bUZyb21EaXNjbGFtZXIoZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICAgICAgcmFuZ2VOdW06IElGaWx0ZXJSYW5nZU51bWJlcik6IElGaWx0ZXJSYW5nZU51bWJlciB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gJyc7XHJcblxyXG4gICAgICAgIGlmIChkaXNjbGFpbWVycyAmJiBkaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRpc2NsYWltZXJzLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnByb3BlcnR5ID09PSBwcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBudWxsKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmF0elJhbmdlTnVtRnJvbVF1ZXJ5UGFyYW0odmFsdWUsIHJhbmdlTnVtKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6UmFuZ2VEYXRlRnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZyxcclxuICAgICAgICByYW5nZURhdGU6IElGaWx0ZXJSYW5nZURhdGUpOiBJRmlsdGVyUmFuZ2VEYXRlIHtcclxuICAgICAgICBsZXQgdmFsdWUgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR6UmFuZ2VEYXRlRnJvbVF1ZXJ5UGFyYW0odmFsdWUsIHJhbmdlRGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0elJhbmdlQ2hhckZyb21RdWVyeVBhcmFtKHZhbHVlOiBzdHJpbmcsIHJhbmdlQ2hhcjogSUZpbHRlclJhbmdlQ2hhcmFjdGVyKTogSUZpbHRlclJhbmdlQ2hhcmFjdGVyIHtcclxuICAgICAgICByYW5nZUNoYXIudmFsSW5pdGlhbCA9IHJhbmdlQ2hhci5pbmlJbml0aWFsO1xyXG4gICAgICAgIHJhbmdlQ2hhci52YWxGaW5hbCA9IHJhbmdlQ2hhci5pbmlGaW5hbDtcclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHsgcmV0dXJuIHJhbmdlQ2hhcjsgfVxyXG5cclxuICAgICAgICByYW5nZUNoYXIudmFsSW5pdGlhbCA9IHZhbHVlLnNwbGl0KCc7JylbMF07XHJcbiAgICAgICAgcmFuZ2VDaGFyLnZhbEZpbmFsID0gdmFsdWUuc3BsaXQoJzsnKVsxXTtcclxuICAgICAgICBpZiAocmFuZ2VDaGFyLnZhbEZpbmFsID09PSBudWxsIHx8IHJhbmdlQ2hhci52YWxGaW5hbCA9PT0gdW5kZWZpbmVkKSB7IHJhbmdlQ2hhci52YWxGaW5hbCA9IHJhbmdlQ2hhci5pbmlGaW5hbDsgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmFuZ2VDaGFyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpSYW5nZU51bUZyb21RdWVyeVBhcmFtKHZhbHVlOiBzdHJpbmcsIHJhbmdlTnVtOiBJRmlsdGVyUmFuZ2VOdW1iZXIpOiBJRmlsdGVyUmFuZ2VOdW1iZXIge1xyXG4gICAgICAgIHJhbmdlTnVtLnZhbEluaXRpYWwgPSByYW5nZU51bS5pbmlJbml0aWFsO1xyXG4gICAgICAgIHJhbmdlTnVtLnZhbEZpbmFsID0gcmFuZ2VOdW0uaW5pRmluYWw7XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09ICcnKSB7IHJldHVybiByYW5nZU51bTsgfVxyXG5cclxuICAgICAgICByYW5nZU51bS52YWxJbml0aWFsID0gK3ZhbHVlLnNwbGl0KCc7JylbMF07XHJcbiAgICAgICAgcmFuZ2VOdW0udmFsRmluYWwgPSArdmFsdWUuc3BsaXQoJzsnKVsxXTtcclxuICAgICAgICBpZiAocmFuZ2VOdW0udmFsRmluYWwgPT09IG51bGwgfHwgcmFuZ2VOdW0udmFsRmluYWwgPT09IHVuZGVmaW5lZCkgeyByYW5nZU51bS52YWxGaW5hbCA9IHJhbmdlTnVtLmluaUZpbmFsOyB9XHJcblxyXG4gICAgICAgIHJldHVybiByYW5nZU51bTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6UmFuZ2VEYXRlRnJvbVF1ZXJ5UGFyYW0odmFsdWU6IHN0cmluZywgcmFuZ2VEYXRlOiBJRmlsdGVyUmFuZ2VEYXRlKTogSUZpbHRlclJhbmdlRGF0ZSB7XHJcbiAgICAgICAgcmFuZ2VEYXRlLnZhbEluaXRpYWwgPSByYW5nZURhdGUuaW5pSW5pdGlhbDtcclxuICAgICAgICByYW5nZURhdGUudmFsRmluYWwgPSByYW5nZURhdGUuaW5pRmluYWw7XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09ICcnKSB7IHJldHVybiByYW5nZURhdGU7IH1cclxuXHJcbiAgICAgICAgcmFuZ2VEYXRlLnZhbEluaXRpYWwgPSB0aGlzLnF1ZXJ5UGFyYW1Ub0RhdGUodmFsdWUuc3BsaXQoJzsnKVswXSk7XHJcbiAgICAgICAgcmFuZ2VEYXRlLnZhbEZpbmFsID0gdGhpcy5xdWVyeVBhcmFtVG9EYXRlKHZhbHVlLnNwbGl0KCc7JylbMV0pO1xyXG4gICAgICAgIGlmIChyYW5nZURhdGUudmFsRmluYWwgPT09IG51bGwgfHwgcmFuZ2VEYXRlLnZhbEZpbmFsID09PSB1bmRlZmluZWQpIHsgcmFuZ2VEYXRlLnZhbEZpbmFsID0gcmFuZ2VEYXRlLmluaUZpbmFsOyB9XHJcblxyXG4gICAgICAgIHJldHVybiByYW5nZURhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRhdGVUb1F1ZXJ5UGFyYW0oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgaURheSA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IGlNb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICAgICAgY29uc3QgaVllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtpWWVhcn0tJHt0aGlzLnBhZChpTW9udGgpfS0ke3RoaXMucGFkKGlEYXkpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHF1ZXJ5UGFyYW1Ub0RhdGUocGFyYW06IHN0cmluZyk6IERhdGUge1xyXG4gICAgICAgIGNvbnN0IGlEYXkgPSArcGFyYW0uc3BsaXQoJy0nKVsyXTtcclxuICAgICAgICBjb25zdCBpTW9udGggPSArcGFyYW0uc3BsaXQoJy0nKVsxXTtcclxuICAgICAgICBjb25zdCBpWWVhciA9ICtwYXJhbS5zcGxpdCgnLScpWzBdO1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoaVllYXIsIGlNb250aCAtIDEsIGlEYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1ZhbGlkRGF0ZShkYXRlOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFqdXN0RGF0ZShwYXJhbTogYW55KTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHBhcmFtIGluc3RhbmNlb2YgRGF0ZSkgeyByZXR1cm4gcGFyYW07IH1cclxuICAgICAgICBpZiAoIXBhcmFtKSB7IHJldHVybiBwYXJhbTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVBhcmFtVG9EYXRlKHBhcmFtLnNwbGl0KCdUJylbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwYWQobnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKG51bWJlciA8IDEwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnMCcgKyBudW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudW1iZXI7XHJcbiAgICB9XHJcbn1cclxuIl19
738
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY2xhaW1lci51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjMvcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvZGlzY2xhaW1lci51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVNBLE1BQU0sT0FBTyxjQUFjOzs7Ozs7SUFLdkIsWUFDSSxjQUFxQyxFQUNyQyxVQUFzQixFQUN0QixRQUFnQjtRQUxwQixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBT2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQzs7Ozs7Ozs7O0lBRU0sY0FBYyxDQUFDLFFBQWdCLEVBQUUsS0FBYSxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQUUsU0FBUyxHQUFHLEtBQUssRUFBRSxRQUFRLEdBQUcsS0FBSztRQUN6RyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUNqRDtRQUVELElBQUksUUFBUSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDMUIsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDakQ7UUFFRCxPQUFPO1lBQ0gsU0FBUztZQUNULEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FB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Q0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O2NBQzdCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7Ozs7SUFFTSxXQUFXLENBQUMsSUFBVTtRQUN6QixPQUFPLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7Ozs7SUFFTSxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztTQUFFO1FBQzVDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztTQUFFO1FBRTdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7OztJQUVNLEdBQUcsQ0FBQyxNQUFNO1FBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQ2IsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKOzs7SUE3ZUcsd0NBQXNDOztJQUN0QyxvQ0FBdUI7O0lBQ3ZCLGtDQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcblZlcnPDo286IDEuMDA5XHJcbkRhdGEgQ3JpYcOnw6NvOiAwNi8wOC8yMDE4XHJcbiovXHJcblxyXG5pbXBvcnQgeyBQb0Rpc2NsYWltZXIsIFBvSTE4blBpcGUsIFBvQ2hlY2tib3hHcm91cE9wdGlvbiwgUG9NdWx0aXNlbGVjdE9wdGlvbiB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgSUZpbHRlclJhbmdlQ2hhcmFjdGVyLCBJRmlsdGVyUmFuZ2VOdW1iZXIsIElGaWx0ZXJSYW5nZURhdGUgfSBmcm9tICcuLi8uLi9saWIvaW50ZXJmYWNlcy9maWx0ZXItcmFuZ2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9Ob3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERpc2NsYWltZXJVdGlsIHtcclxuICAgIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2U7XHJcbiAgICBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlO1xyXG4gICAgbGl0ZXJhbHM6IGFueSA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcG9JMThuUGlwZTogUG9JMThuUGlwZSxcclxuICAgICAgICBsaXRlcmFsczogT2JqZWN0XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uID0gcG9Ob3RpZmljYXRpb247XHJcbiAgICAgICAgdGhpcy5wb0kxOG5QaXBlID0gcG9JMThuUGlwZTtcclxuICAgICAgICB0aGlzLmxpdGVyYWxzID0gbGl0ZXJhbHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGhpZGVDbG9zZSA9IGZhbHNlLCB0cmFkVmFsdWUgPSBmYWxzZSwgdmxkQmxhbmsgPSBmYWxzZSk6IFBvRGlzY2xhaW1lciB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZsZEJsYW5rICYmIHZhbHVlID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogJycsIHByb3BlcnR5OiAnJywgdmFsdWU6ICcnIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBoaWRlQ2xvc2UsXHJcbiAgICAgICAgICAgIGxhYmVsOiBgJHt0aGlzLmxpdGVyYWxzW3Byb3BlcnR5XX06ICR7dHJhZFZhbHVlID8gdGhpcy5saXRlcmFsc1t2YWx1ZV0gOiB2YWx1ZX1gLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eTogYCR7cHJvcGVydHl9YCxcclxuICAgICAgICAgICAgdmFsdWU6IGAke3ZhbHVlfWBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYWtlRGlzY2xhaW1lckZyb21OdW1iZXIocHJvcGVydHk6IHN0cmluZywgdmFsdWU6IG51bWJlciwgaGlkZUNsb3NlID0gZmFsc2UsIHZsZEJsYW5rID0gZmFsc2UpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2bGRCbGFuayAmJiB2YWx1ZSA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogJycsIHByb3BlcnR5OiAnJywgdmFsdWU6ICcnIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBoaWRlQ2xvc2UsXHJcbiAgICAgICAgICAgIGxhYmVsOiBgJHt0aGlzLmxpdGVyYWxzW3Byb3BlcnR5XX06ICR7dmFsdWV9YCxcclxuICAgICAgICAgICAgcHJvcGVydHk6IGAke3Byb3BlcnR5fWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHt2YWx1ZX1gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tQm9vbGVhbihwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbiwgaGlkZUNsb3NlID0gZmFsc2UpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMubGl0ZXJhbHNbcHJvcGVydHldfTogJHt2YWx1ZSA/IHRoaXMubGl0ZXJhbHNbJ3llcyddIDogdGhpcy5saXRlcmFsc1snbm8nXX1gLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eTogYCR7cHJvcGVydHl9YCxcclxuICAgICAgICAgICAgdmFsdWU6IGAke3ZhbHVlfWBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYWtlRGlzY2xhaW1lckZyb21EYXRlKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBEYXRlLCBoaWRlQ2xvc2UgPSBmYWxzZSk6IFBvRGlzY2xhaW1lciB7XHJcbiAgICAgICAgY29uc3QgZERhdGU6IERhdGUgPSB0aGlzLmFqdXN0RGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZShkRGF0ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGlkZUNsb3NlLFxyXG4gICAgICAgICAgICBsYWJlbDogYCR7dGhpcy5saXRlcmFsc1twcm9wZXJ0eV19OiAke2REYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpfWAsXHJcbiAgICAgICAgICAgIHByb3BlcnR5OiBgJHtwcm9wZXJ0eX1gLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCR7dGhpcy5kYXRlVG9RdWVyeVBhcmFtKGREYXRlKX1gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tTXVsdGlTZWxlY3QocHJvcGVydHk6IHN0cmluZywgdmFsdWU6IEFycmF5PGFueT4sIGxlbmd0aCA9IDAsXHJcbiAgICAgICAgaGlkZUNsb3NlID0gZmFsc2UsIHRyYWRWYWx1ZSA9IGZhbHNlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBsZXQgbHN0TGFiZWxzID0gJyc7XHJcbiAgICAgICAgbGV0IGxzdFZhbHVlcyA9ICcnO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgfHwgKGxlbmd0aCA+IDAgJiYgdmFsdWUubGVuZ3RoID09PSBsZW5ndGgpKSB7XHJcbiAgICAgICAgICAgIGxzdExhYmVscyA9IHRoaXMubGl0ZXJhbHNbJ2FsbCddO1xyXG4gICAgICAgICAgICBsc3RWYWx1ZXMgPSAnYWxsJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZS5tYXAoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobHN0TGFiZWxzICE9PSAnJykgeyBsc3RMYWJlbHMgPSBgJHtsc3RMYWJlbHN9LCBgOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAobHN0VmFsdWVzICE9PSAnJykgeyBsc3RWYWx1ZXMgPSBgJHtsc3RWYWx1ZXN9LGA7IH1cclxuICAgICAgICAgICAgICAgIGxzdExhYmVscyA9IGAke2xzdExhYmVsc30ke3RyYWRWYWx1ZSA/IHRoaXMubGl0ZXJhbHNbaXRlbV0gOiBpdGVtfWA7XHJcbiAgICAgICAgICAgICAgICBsc3RWYWx1ZXMgPSBgJHtsc3RWYWx1ZXN9JHtpdGVtfWA7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGlkZUNsb3NlLFxyXG4gICAgICAgICAgICBsYWJlbDogYCR7dGhpcy5saXRlcmFsc1twcm9wZXJ0eV19OiAke2xzdExhYmVsc31gLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eTogYCR7cHJvcGVydHl9YCxcclxuICAgICAgICAgICAgdmFsdWU6IGAke2xzdFZhbHVlc31gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tTXVsdGlTZWxlY3ROdW1iZXIocHJvcGVydHk6IHN0cmluZywgdmFsdWU6IEFycmF5PGFueT4sIG9wdGlvbnM6IEFycmF5PGFueT4sXHJcbiAgICAgICAgbGVuZ3RoID0gMCwgaGlkZUNsb3NlID0gZmFsc2UpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGxldCBsc3RMYWJlbHMgPSAnJztcclxuICAgICAgICBsZXQgbHN0VmFsdWVzID0gJyc7XHJcbiAgICAgICAgbGV0IG9wdCA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUgfHwgIW9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCB8fCAobGVuZ3RoID4gMCAmJiB2YWx1ZS5sZW5ndGggPT09IGxlbmd0aCkpIHtcclxuICAgICAgICAgICAgbHN0TGFiZWxzID0gdGhpcy5saXRlcmFsc1snYWxsJ107XHJcbiAgICAgICAgICAgIGxzdFZhbHVlcyA9ICdhbGwnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlLm1hcChpdGVtID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsc3RMYWJlbHMgIT09ICcnKSB7IGxzdExhYmVscyA9IGAke2xzdExhYmVsc30sIGA7IH1cclxuICAgICAgICAgICAgICAgIGlmIChsc3RWYWx1ZXMgIT09ICcnKSB7IGxzdFZhbHVlcyA9IGAke2xzdFZhbHVlc30sYDsgfVxyXG5cclxuICAgICAgICAgICAgICAgIG9wdCA9IG9wdGlvbnMuZmluZChpdE9wdCA9PiBpdE9wdC52YWx1ZSA9PT0gaXRlbSk7XHJcbiAgICAgICAgICAgICAgICBsc3RMYWJlbHMgPSBgJHtsc3RMYWJlbHN9JHtvcHQgPyBvcHQubGFiZWwgOiBpdGVtfWA7XHJcbiAgICAgICAgICAgICAgICBsc3RWYWx1ZXMgPSBgJHtsc3RWYWx1ZXN9JHtpdGVtfWA7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGlkZUNsb3NlLFxyXG4gICAgICAgICAgICBsYWJlbDogYCR7dGhpcy5saXRlcmFsc1twcm9wZXJ0eV19OiAke2xzdExhYmVsc31gLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eTogYCR7cHJvcGVydHl9YCxcclxuICAgICAgICAgICAgdmFsdWU6IGAke2xzdFZhbHVlc31gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tQ2hlY2tib3hHcm91cChwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogQXJyYXk8c3RyaW5nPiwgbGVuZ3RoID0gMCwgaGlkZUNsb3NlID0gZmFsc2UpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGxldCBsc3RMYWJlbHMgPSAnJztcclxuICAgICAgICBsZXQgbHN0VmFsdWVzID0gJyc7XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBsc3RMYWJlbHMgPSB0aGlzLmxpdGVyYWxzWydub25lJ107XHJcbiAgICAgICAgICAgIGxzdFZhbHVlcyA9ICdub25lJztcclxuICAgICAgICB9IGVsc2UgaWYgKGxlbmd0aCA+IDAgJiYgdmFsdWUubGVuZ3RoID09PSBsZW5ndGgpIHtcclxuICAgICAgICAgICAgbHN0TGFiZWxzID0gdGhpcy5saXRlcmFsc1snYWxsJ107XHJcbiAgICAgICAgICAgIGxzdFZhbHVlcyA9ICdhbGwnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlLm1hcChjaGVja1BhcmFtID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsc3RMYWJlbHMgIT09ICcnKSB7IGxzdExhYmVscyA9IGAke2xzdExhYmVsc30sIGA7IH1cclxuICAgICAgICAgICAgICAgIGlmIChsc3RWYWx1ZXMgIT09ICcnKSB7IGxzdFZhbHVlcyA9IGAke2xzdFZhbHVlc30sYDsgfVxyXG4gICAgICAgICAgICAgICAgbHN0TGFiZWxzID0gYCR7bHN0TGFiZWxzfSR7dGhpcy5saXRlcmFsc1tjaGVja1BhcmFtXX1gO1xyXG4gICAgICAgICAgICAgICAgbHN0VmFsdWVzID0gYCR7bHN0VmFsdWVzfSR7Y2hlY2tQYXJhbX1gO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMubGl0ZXJhbHNbcHJvcGVydHldfTogJHtsc3RMYWJlbHN9YCxcclxuICAgICAgICAgICAgcHJvcGVydHk6IGAke3Byb3BlcnR5fWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHtsc3RWYWx1ZXN9YFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1ha2VEaXNjbGFpbWVyRnJvbVJhbmdlQ2hhcmFjdGVyKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBJRmlsdGVyUmFuZ2VDaGFyYWN0ZXIsIGhpZGVDbG9zZSA9IGZhbHNlLFxyXG4gICAgICAgIHZhbGlkYXRlRXF1YWwgPSB0cnVlKTogUG9EaXNjbGFpbWVyIHtcclxuICAgICAgICBpZiAodmFsdWUudmFsSW5pdGlhbCA9PT0gbnVsbCB8fCB2YWx1ZS52YWxJbml0aWFsID09PSB1bmRlZmluZWQpIHsgdmFsdWUudmFsSW5pdGlhbCA9IHZhbHVlLmluaUluaXRpYWw7IH1cclxuICAgICAgICBpZiAodmFsdWUudmFsRmluYWwgPT09IG51bGwgfHwgdmFsdWUudmFsRmluYWwgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZS52YWxGaW5hbCA9IHZhbHVlLmluaUZpbmFsOyB9XHJcblxyXG4gICAgICAgIGlmICh2YWxpZGF0ZUVxdWFsICYmXHJcbiAgICAgICAgICAgIHZhbHVlLmluaUluaXRpYWwgPT09IHZhbHVlLnZhbEluaXRpYWwgJiZcclxuICAgICAgICAgICAgdmFsdWUuaW5pRmluYWwgPT09IHZhbHVlLnZhbEZpbmFsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnLCB2YWx1ZTogJycgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGhpZGVDbG9zZSxcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0oXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpdGVyYWxzWydmaWx0ZXJSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbcHJvcGVydHldLCBgJyR7dmFsdWUudmFsSW5pdGlhbH0nYCwgYCcke3ZhbHVlLnZhbEZpbmFsfSdgXSksXHJcbiAgICAgICAgICAgIHByb3BlcnR5OiBgJHtwcm9wZXJ0eX1gLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCR7dmFsdWUudmFsSW5pdGlhbH07JHt2YWx1ZS52YWxGaW5hbH1gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tUmFuZ2VOdW1iZXIocHJvcGVydHk6IHN0cmluZywgdmFsdWU6IElGaWx0ZXJSYW5nZU51bWJlciwgaGlkZUNsb3NlID0gZmFsc2UsXHJcbiAgICAgICAgdmFsaWRhdGVFcXVhbCA9IHRydWUpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGlmICh2YWx1ZS52YWxJbml0aWFsID09PSBudWxsIHx8IHZhbHVlLnZhbEluaXRpYWwgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZS52YWxJbml0aWFsID0gdmFsdWUuaW5pSW5pdGlhbDsgfVxyXG4gICAgICAgIGlmICh2YWx1ZS52YWxGaW5hbCA9PT0gbnVsbCB8fCB2YWx1ZS52YWxGaW5hbCA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlLnZhbEZpbmFsID0gdmFsdWUuaW5pRmluYWw7IH1cclxuXHJcbiAgICAgICAgaWYgKHZhbGlkYXRlRXF1YWwgJiZcclxuICAgICAgICAgICAgdmFsdWUuaW5pSW5pdGlhbCA9PT0gdmFsdWUudmFsSW5pdGlhbCAmJlxyXG4gICAgICAgICAgICB2YWx1ZS5pbmlGaW5hbCA9PT0gdmFsdWUudmFsRmluYWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGlkZUNsb3NlLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybShcclxuICAgICAgICAgICAgICAgIHRoaXMubGl0ZXJhbHNbJ2ZpbHRlclJhbmdlJ10sXHJcbiAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1twcm9wZXJ0eV0sIHZhbHVlLnZhbEluaXRpYWwsIHZhbHVlLnZhbEZpbmFsXSksXHJcbiAgICAgICAgICAgIHByb3BlcnR5OiBgJHtwcm9wZXJ0eX1gLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCR7dmFsdWUudmFsSW5pdGlhbH07JHt2YWx1ZS52YWxGaW5hbH1gXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWFrZURpc2NsYWltZXJGcm9tUmFuZ2VEYXRlKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBJRmlsdGVyUmFuZ2VEYXRlLCBoaWRlQ2xvc2UgPSBmYWxzZSwgdmFsaWRhdGVFcXVhbCA9IHRydWUpOiBQb0Rpc2NsYWltZXIge1xyXG4gICAgICAgIGxldCB2YWxJbml0RGF0ZTogRGF0ZSA9IHRoaXMuYWp1c3REYXRlKHZhbHVlLnZhbEluaXRpYWwpO1xyXG4gICAgICAgIGxldCB2YWxGaW5hbERhdGU6IERhdGUgPSB0aGlzLmFqdXN0RGF0ZSh2YWx1ZS52YWxGaW5hbCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZSh2YWxJbml0RGF0ZSkpIHtcclxuICAgICAgICAgICAgdmFsSW5pdERhdGUgPSB2YWx1ZS5pbmlJbml0aWFsO1xyXG4gICAgICAgICAgICB2YWx1ZS52YWxJbml0aWFsID0gdmFsdWUuaW5pSW5pdGlhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWREYXRlKHZhbEZpbmFsRGF0ZSkpIHtcclxuICAgICAgICAgICAgdmFsRmluYWxEYXRlID0gdmFsdWUuaW5pRmluYWw7XHJcbiAgICAgICAgICAgIHZhbHVlLnZhbEZpbmFsID0gdmFsdWUuaW5pRmluYWw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsaWRhdGVFcXVhbCAmJlxyXG4gICAgICAgICAgICB0aGlzLmRhdGVUb1F1ZXJ5UGFyYW0odmFsdWUuaW5pSW5pdGlhbCkgPT09IHRoaXMuZGF0ZVRvUXVlcnlQYXJhbSh2YWxJbml0RGF0ZSkgJiZcclxuICAgICAgICAgICAgdGhpcy5kYXRlVG9RdWVyeVBhcmFtKHZhbHVlLmluaUZpbmFsKSA9PT0gdGhpcy5kYXRlVG9RdWVyeVBhcmFtKHZhbEZpbmFsRGF0ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycsIHZhbHVlOiAnJyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGlkZUNsb3NlLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybShcclxuICAgICAgICAgICAgICAgIHRoaXMubGl0ZXJhbHNbJ2ZpbHRlclJhbmdlJ10sXHJcbiAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1twcm9wZXJ0eV0sIHZhbEluaXREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpLCB2YWxGaW5hbERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCldKSxcclxuICAgICAgICAgICAgcHJvcGVydHk6IGAke3Byb3BlcnR5fWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHt0aGlzLmRhdGVUb1F1ZXJ5UGFyYW0odmFsSW5pdERhdGUpfTske3RoaXMuZGF0ZVRvUXVlcnlQYXJhbSh2YWxGaW5hbERhdGUpfWBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpDaGFyRnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6TnVtYmVyRnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6Qm9vbGVhbkZyb21EaXNjbGFtZXIoZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gZGVmYXVsdFZhbHVlO1xyXG5cclxuICAgICAgICBpZiAoZGlzY2xhaW1lcnMgJiYgZGlzY2xhaW1lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBkaXNjbGFpbWVyRmluZCA9IGRpc2NsYWltZXJzLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KTtcclxuICAgICAgICAgICAgaWYgKGRpc2NsYWltZXJGaW5kICYmIGRpc2NsYWltZXJGaW5kLnZhbHVlICE9PSBudWxsICYmIGRpc2NsYWltZXJGaW5kLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkaXNjbGFpbWVyRmluZC52YWx1ZSA9PT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpEYXRlRnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICAgICAgbGV0IHJldHVyblZhbHVlOiBEYXRlID0gdGhpcy5hanVzdERhdGUoZGVmYXVsdFZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gdGhpcy5hanVzdERhdGUoaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0ek11bHRpU2VsZWN0Q2hhckZyb21EaXNjbGFtZXIoZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uPik6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmF0ek11bHRpU2VsZWN0RnJvbURpc2NsYW1lcignY2hhcicsIGRpc2NsYWltZXJzLCBwcm9wZXJ0eSwgZGVmYXVsdFZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6TXVsdGlTZWxlY3ROdW1iZXJGcm9tRGlzY2xhbWVyKGRpc2NsYWltZXJzOiBBcnJheTxQb0Rpc2NsYWltZXI+LCBwcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbj4pOiBBcnJheTxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hdHpNdWx0aVNlbGVjdEZyb21EaXNjbGFtZXIoJ251bWJlcicsIGRpc2NsYWltZXJzLCBwcm9wZXJ0eSwgZGVmYXVsdFZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6TXVsdGlTZWxlY3RGcm9tRGlzY2xhbWVyKHR5cGU6IHN0cmluZywgZGlzY2xhaW1lcnM6IEFycmF5PFBvRGlzY2xhaW1lcj4sIHByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uPik6IEFycmF5PGFueT4ge1xyXG5cclxuICAgICAgICBsZXQgcmV0dXJuVmFsdWUgPSBbXTtcclxuICAgICAgICBkZWZhdWx0VmFsdWUubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5wdXNoKGl0ZW0udmFsdWUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZGlzY2xhaW1lcnMgJiYgZGlzY2xhaW1lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBkaXNjbGFpbWVycy5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gbnVsbCB8fCBpdGVtLnZhbHVlID09PSAnYWxsJyB8fCBpdGVtLnZhbHVlID09PSAnbm9uZScpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS52YWx1ZS5zcGxpdCgnLCcpLmZvckVhY2goaXRlbU9wdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnY2hhcicpIHsgcmV0dXJuVmFsdWUucHVzaChpdGVtT3B0KTsgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ251bWJlcicpIHsgcmV0dXJuVmFsdWUucHVzaCgraXRlbU9wdCk7IH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0ekNoZWNrYm94RnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZyxcclxuICAgICAgICBvcHRpb25zOiBBcnJheTxQb0NoZWNrYm94R3JvdXBPcHRpb24+KTogQXJyYXk8c3RyaW5nPiB7XHJcblxyXG4gICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IFtdO1xyXG4gICAgICAgIG9wdGlvbnMubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5wdXNoKGl0ZW0udmFsdWUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZGlzY2xhaW1lcnMgJiYgZGlzY2xhaW1lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBkaXNjbGFpbWVycy5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gbnVsbCB8fCBpdGVtLnZhbHVlID09PSAnYWxsJyB8fCBpdGVtLnZhbHVlID09PSAnbm9uZScpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS52YWx1ZS5zcGxpdCgnLCcpLmZvckVhY2goaXRlbU9wdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlLnB1c2goaXRlbU9wdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpSYW5nZUNoYXJGcm9tRGlzY2xhbWVyKGRpc2NsYWltZXJzOiBBcnJheTxQb0Rpc2NsYWltZXI+LCBwcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgICAgIHJhbmdlQ2hhcjogSUZpbHRlclJhbmdlQ2hhcmFjdGVyKTogSUZpbHRlclJhbmdlQ2hhcmFjdGVyIHtcclxuICAgICAgICBsZXQgdmFsdWUgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR6UmFuZ2VDaGFyRnJvbVF1ZXJ5UGFyYW0odmFsdWUsIHJhbmdlQ2hhcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0elJhbmdlTnVtRnJvbURpc2NsYW1lcihkaXNjbGFpbWVyczogQXJyYXk8UG9EaXNjbGFpbWVyPiwgcHJvcGVydHk6IHN0cmluZyxcclxuICAgICAgICByYW5nZU51bTogSUZpbHRlclJhbmdlTnVtYmVyKTogSUZpbHRlclJhbmdlTnVtYmVyIHtcclxuICAgICAgICBsZXQgdmFsdWUgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKGRpc2NsYWltZXJzICYmIGRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZGlzY2xhaW1lcnMuZmluZCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IG51bGwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR6UmFuZ2VOdW1Gcm9tUXVlcnlQYXJhbSh2YWx1ZSwgcmFuZ2VOdW0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpSYW5nZURhdGVGcm9tRGlzY2xhbWVyKGRpc2NsYWltZXJzOiBBcnJheTxQb0Rpc2NsYWltZXI+LCBwcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgICAgIHJhbmdlRGF0ZTogSUZpbHRlclJhbmdlRGF0ZSk6IElGaWx0ZXJSYW5nZURhdGUge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9ICcnO1xyXG5cclxuICAgICAgICBpZiAoZGlzY2xhaW1lcnMgJiYgZGlzY2xhaW1lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBkaXNjbGFpbWVycy5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gbnVsbCkgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5hdHpSYW5nZURhdGVGcm9tUXVlcnlQYXJhbSh2YWx1ZSwgcmFuZ2VEYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXR6UmFuZ2VDaGFyRnJvbVF1ZXJ5UGFyYW0odmFsdWU6IHN0cmluZywgcmFuZ2VDaGFyOiBJRmlsdGVyUmFuZ2VDaGFyYWN0ZXIpOiBJRmlsdGVyUmFuZ2VDaGFyYWN0ZXIge1xyXG4gICAgICAgIHJhbmdlQ2hhci52YWxJbml0aWFsID0gcmFuZ2VDaGFyLmluaUluaXRpYWw7XHJcbiAgICAgICAgcmFuZ2VDaGFyLnZhbEZpbmFsID0gcmFuZ2VDaGFyLmluaUZpbmFsO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSAnJykgeyByZXR1cm4gcmFuZ2VDaGFyOyB9XHJcblxyXG4gICAgICAgIHJhbmdlQ2hhci52YWxJbml0aWFsID0gdmFsdWUuc3BsaXQoJzsnKVswXTtcclxuICAgICAgICByYW5nZUNoYXIudmFsRmluYWwgPSB2YWx1ZS5zcGxpdCgnOycpWzFdO1xyXG4gICAgICAgIGlmIChyYW5nZUNoYXIudmFsRmluYWwgPT09IG51bGwgfHwgcmFuZ2VDaGFyLnZhbEZpbmFsID09PSB1bmRlZmluZWQpIHsgcmFuZ2VDaGFyLnZhbEZpbmFsID0gcmFuZ2VDaGFyLmluaUZpbmFsOyB9XHJcblxyXG4gICAgICAgIHJldHVybiByYW5nZUNoYXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF0elJhbmdlTnVtRnJvbVF1ZXJ5UGFyYW0odmFsdWU6IHN0cmluZywgcmFuZ2VOdW06IElGaWx0ZXJSYW5nZU51bWJlcik6IElGaWx0ZXJSYW5nZU51bWJlciB7XHJcbiAgICAgICAgcmFuZ2VOdW0udmFsSW5pdGlhbCA9IHJhbmdlTnVtLmluaUluaXRpYWw7XHJcbiAgICAgICAgcmFuZ2VOdW0udmFsRmluYWwgPSByYW5nZU51bS5pbmlGaW5hbDtcclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHsgcmV0dXJuIHJhbmdlTnVtOyB9XHJcblxyXG4gICAgICAgIHJhbmdlTnVtLnZhbEluaXRpYWwgPSArdmFsdWUuc3BsaXQoJzsnKVswXTtcclxuICAgICAgICByYW5nZU51bS52YWxGaW5hbCA9ICt2YWx1ZS5zcGxpdCgnOycpWzFdO1xyXG4gICAgICAgIGlmIChyYW5nZU51bS52YWxGaW5hbCA9PT0gbnVsbCB8fCByYW5nZU51bS52YWxGaW5hbCA9PT0gdW5kZWZpbmVkKSB7IHJhbmdlTnVtLnZhbEZpbmFsID0gcmFuZ2VOdW0uaW5pRmluYWw7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJhbmdlTnVtO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdHpSYW5nZURhdGVGcm9tUXVlcnlQYXJhbSh2YWx1ZTogc3RyaW5nLCByYW5nZURhdGU6IElGaWx0ZXJSYW5nZURhdGUpOiBJRmlsdGVyUmFuZ2VEYXRlIHtcclxuICAgICAgICByYW5nZURhdGUudmFsSW5pdGlhbCA9IHJhbmdlRGF0ZS5pbmlJbml0aWFsO1xyXG4gICAgICAgIHJhbmdlRGF0ZS52YWxGaW5hbCA9IHJhbmdlRGF0ZS5pbmlGaW5hbDtcclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHsgcmV0dXJuIHJhbmdlRGF0ZTsgfVxyXG5cclxuICAgICAgICByYW5nZURhdGUudmFsSW5pdGlhbCA9IHRoaXMucXVlcnlQYXJhbVRvRGF0ZSh2YWx1ZS5zcGxpdCgnOycpWzBdKTtcclxuICAgICAgICByYW5nZURhdGUudmFsRmluYWwgPSB0aGlzLnF1ZXJ5UGFyYW1Ub0RhdGUodmFsdWUuc3BsaXQoJzsnKVsxXSk7XHJcbiAgICAgICAgaWYgKHJhbmdlRGF0ZS52YWxGaW5hbCA9PT0gbnVsbCB8fCByYW5nZURhdGUudmFsRmluYWwgPT09IHVuZGVmaW5lZCkgeyByYW5nZURhdGUudmFsRmluYWwgPSByYW5nZURhdGUuaW5pRmluYWw7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJhbmdlRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0ZVRvUXVlcnlQYXJhbShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBpRGF5ID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICAgICAgY29uc3QgaU1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgICAgICBjb25zdCBpWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke2lZZWFyfS0ke3RoaXMucGFkKGlNb250aCl9LSR7dGhpcy5wYWQoaURheSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcXVlcnlQYXJhbVRvRGF0ZShwYXJhbTogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgY29uc3QgaURheSA9ICtwYXJhbS5zcGxpdCgnLScpWzJdO1xyXG4gICAgICAgIGNvbnN0IGlNb250aCA9ICtwYXJhbS5zcGxpdCgnLScpWzFdO1xyXG4gICAgICAgIGNvbnN0IGlZZWFyID0gK3BhcmFtLnNwbGl0KCctJylbMF07XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShpWWVhciwgaU1vbnRoIC0gMSwgaURheSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzVmFsaWREYXRlKGRhdGU6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWp1c3REYXRlKHBhcmFtOiBhbnkpOiBEYXRlIHtcclxuICAgICAgICBpZiAocGFyYW0gaW5zdGFuY2VvZiBEYXRlKSB7IHJldHVybiBwYXJhbTsgfVxyXG4gICAgICAgIGlmICghcGFyYW0pIHsgcmV0dXJuIHBhcmFtOyB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5UGFyYW1Ub0RhdGUocGFyYW0uc3BsaXQoJ1QnKVswXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHBhZChudW1iZXIpIHtcclxuICAgICAgICBpZiAobnVtYmVyIDwgMTApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcwJyArIG51bWJlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bWJlcjtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/utils/field-validation.util.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  /*
6
7
  Versão: 1.002
@@ -271,4 +272,4 @@ if (false) {
271
272
  /** @type {?} */
272
273
  FieldValidationUtil.prototype.disclaimerUtil;
273
274
  }
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZHRzLWJhY2tvZmZpY2UtdXRpbC8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9maWVsZC12YWxpZGF0aW9uLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFNQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7O0lBTzVCLFlBQ0ksY0FBcUMsRUFDckMsVUFBc0IsRUFDdEIsUUFBZ0I7UUFQcEIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQVNmLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRyxDQUFDOzs7Ozs7SUFFTSxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNqRCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDaEcsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7Ozs7Ozs7SUFHTSxpQkFBaUIsQ0FBQyxZQUFvQixFQUFF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dEcsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSjs7O0lBek1HLDZDQUFzQzs7SUFDdEMseUNBQXVCOztJQUN2Qix1Q0FBbUI7O0lBRW5CLDZDQUErQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcblZlcnPDo286IDEuMDAyXHJcbkRhdGEgQ3JpYcOnw6NvOiAxOS8wMi8yMDE5XHJcbiovXHJcblxyXG5pbXBvcnQgeyBQb05vdGlmaWNhdGlvblNlcnZpY2UsIFBvSTE4blBpcGUgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IERpc2NsYWltZXJVdGlsIH0gZnJvbSAnLi9kaXNjbGFpbWVyLnV0aWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkVmFsaWRhdGlvblV0aWwge1xyXG4gICAgcG9Ob3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZTtcclxuICAgIHBvSTE4blBpcGU6IFBvSTE4blBpcGU7XHJcbiAgICBsaXRlcmFsczogYW55ID0ge307XHJcblxyXG4gICAgZGlzY2xhaW1lclV0aWw6IERpc2NsYWltZXJVdGlsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcG9JMThuUGlwZTogUG9JMThuUGlwZSxcclxuICAgICAgICBsaXRlcmFsczogT2JqZWN0XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uID0gcG9Ob3RpZmljYXRpb247XHJcbiAgICAgICAgdGhpcy5wb0kxOG5QaXBlID0gcG9JMThuUGlwZTtcclxuICAgICAgICB0aGlzLmxpdGVyYWxzID0gbGl0ZXJhbHM7XHJcbiAgICAgICAgdGhpcy5kaXNjbGFpbWVyVXRpbCA9IG5ldyBEaXNjbGFpbWVyVXRpbCh0aGlzLnBvTm90aWZpY2F0aW9uLCB0aGlzLnBvSTE4blBpcGUsIHRoaXMubGl0ZXJhbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZENoYXJhY3RlcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJlcXVlcmVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgY2FyYWN0ZXJlcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VDaGFyYWN0ZXIoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBzdHJpbmcsIGZpbmFsVmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFmaW5hbFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS50cmltKCkudG9VcHBlckNhc2UoKSA+IGZpbmFsVmFsdWUudHJpbSgpLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkTnVtYmVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZsZFZhbHVlID0gZmFsc2UsIHplcm9BY2NlcHQgPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2bGRWYWx1ZSAmJiAhdGhpcy52bGRWYWx1ZU9mTnVtYmVyKGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCghdmFsdWUpIHx8IHZhbHVlIDw9IDApIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSAwICYmIHplcm9BY2NlcHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSZXF1ZXJlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkVmFsdWVPZk51bWJlcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgeyBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkTnVtYmVyJ10sIFt2YWx1ZS50b1N0cmluZygpLCB0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZFBlcmNlbnQoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdmxkVmFsdWUgPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2bGRWYWx1ZSAmJiAhdGhpcy52bGRWYWx1ZU9mUGVyY2VudChmaWVsZCwgdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy52bGRGaWVsZE51bWJlcihmaWVsZCwgdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZFZhbHVlT2ZQZXJjZW50KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA+IDEwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgeyBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkTnVtYmVyJ10sIFt2YWx1ZS50b1N0cmluZygpLCB0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgbsO6bWVyb3Mgc2UgbyBpbmljaWFsIMOpIG1lbm9yIHF1ZSBmaW5hbFxyXG4gICAgcHVibGljIHZsZFJhbmdlTnVtYmVyKGluaXRpYWxGaWVsZDogc3RyaW5nLCBmaW5hbEZpZWxkOiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogbnVtYmVyLCBmaW5hbFZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSkgeyBpbml0aWFsVmFsdWUgPSAwOyB9XHJcbiAgICAgICAgaWYgKCFmaW5hbFZhbHVlKSB7IGZpbmFsVmFsdWUgPSAwOyB9XHJcblxyXG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUgPiBmaW5hbFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJhbmdlJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbaW5pdGlhbEZpZWxkXSwgdGhpcy5saXRlcmFsc1tmaW5hbEZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZERhdGUoZmllbGQ6IHN0cmluZywgdmFsdWU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB2YWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUodmFsdWUpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZGlzY2xhaW1lclV0aWwuaXNWYWxpZERhdGUodmFsRGF0ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkRGF0ZSddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGEgdW1hIGZhaXhhIGRlIGRhdGFzIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZURhdGUoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBEYXRlLCBmaW5hbFZhbHVlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2YWxJbml0aWFsRGF0ZSA9IHRoaXMuZGlzY2xhaW1lclV0aWwuYWp1c3REYXRlKGluaXRpYWxWYWx1ZSkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNvbnN0IHZhbEZpbmFsRGF0ZSA9IHRoaXMuZGlzY2xhaW1lclV0aWwuYWp1c3REYXRlKGZpbmFsVmFsdWUpLmdldFRpbWUoKTtcclxuXHJcbiAgICAgICAgaWYgKHZhbEluaXRpYWxEYXRlID4gdmFsRmluYWxEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJhbmdlJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbaW5pdGlhbEZpZWxkXSwgdGhpcy5saXRlcmFsc1tmaW5hbEZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZE11bHRpU2VsZWN0KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBBcnJheTxhbnk+KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkU2VsZWN0ZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkQ2hlY2tib3goZmllbGQ6IHN0cmluZywgdmFsdWU6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRTZWxlY3RlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGEgZm9ybWF0byBjb25mb3JtZSByZWdyYTogXCI5XCIgYXBlbmFzIG7Dum1lcm9zLCBcIlhcIiBxdWFscXVlciBjYXJhY3RlciwgXCIhXCIgYXBlbmFzIGxldHJhcyBtYWnDunNjdWxhc1xyXG4gICAgcHVibGljIHZsZEZpZWxkRm9ybWF0KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nLCByZXBsYWNlUG9pbnQgPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBsT0sgPSB0cnVlO1xyXG4gICAgICAgIGxldCBvbGRGb3JtYXQ6IHN0cmluZztcclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkgeyByZXR1cm4gbE9LOyB9XHJcblxyXG4gICAgICAgIC8qUmV0aXJhIG9zIHBvbnRvcyBkbyBmb3JtYXRvKi9cclxuICAgICAgICBpZiAocmVwbGFjZVBvaW50KSB7XHJcbiAgICAgICAgICAgIG9sZEZvcm1hdCA9IGZvcm1hdDtcclxuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoL1xcLi9nLCAnJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoICE9PSBmb3JtYXQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxPSyA9IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGZvcm1hdC5sZW5ndGg7IGlkeCsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZm9ybWF0W2lkeF0gPT09ICc5Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVtpZHhdLnJlcGxhY2UoL1swLTldLywgJzknKSAhPT0gJzknKSB7IGxPSyA9IGZhbHNlOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRbaWR4XSA9PT0gJyEnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW2lkeF0ucmVwbGFjZSgvW0EtWl0vLCAnQScpICE9PSAnQScpIHsgbE9LID0gZmFsc2U7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXBsYWNlUG9pbnQpIHtcclxuICAgICAgICAgICAgZm9ybWF0ID0gb2xkRm9ybWF0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsT0spIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkRm9ybWF0J10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXSwgZm9ybWF0XSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbE9LO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjMvcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvZmllbGQtdmFsaWRhdGlvbi51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sbUJBQW1COzs7Ozs7SUFPNUIsWUFDSSxjQUFxQyxFQUNyQyxVQUFzQixFQUN0QixRQUFnQjtRQVBwQixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBU2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7Ozs7OztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFD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QUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN0RyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKOzs7SUF6TUcsNkNBQXNDOztJQUN0Qyx5Q0FBdUI7O0lBQ3ZCLHVDQUFtQjs7SUFFbkIsNkNBQStCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDJcclxuRGF0YSBDcmlhw6fDo286IDE5LzAyLzIwMTlcclxuKi9cclxuXHJcbmltcG9ydCB7IFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9JMThuUGlwZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRGlzY2xhaW1lclV0aWwgfSBmcm9tICcuL2Rpc2NsYWltZXIudXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRWYWxpZGF0aW9uVXRpbCB7XHJcbiAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlO1xyXG4gICAgcG9JMThuUGlwZTogUG9JMThuUGlwZTtcclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBkaXNjbGFpbWVyVXRpbDogRGlzY2xhaW1lclV0aWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcG9Ob3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlLFxyXG4gICAgICAgIGxpdGVyYWxzOiBPYmplY3RcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24gPSBwb05vdGlmaWNhdGlvbjtcclxuICAgICAgICB0aGlzLnBvSTE4blBpcGUgPSBwb0kxOG5QaXBlO1xyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMgPSBsaXRlcmFscztcclxuICAgICAgICB0aGlzLmRpc2NsYWltZXJVdGlsID0gbmV3IERpc2NsYWltZXJVdGlsKHRoaXMucG9Ob3RpZmljYXRpb24sIHRoaXMucG9JMThuUGlwZSwgdGhpcy5saXRlcmFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkQ2hhcmFjdGVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmVxdWVyZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBjYXJhY3RlcmVzIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZUNoYXJhY3Rlcihpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IHN0cmluZywgZmluYWxWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpID4gZmluYWxWYWx1ZS50cmltKCkudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW2luaXRpYWxGaWVsZF0sIHRoaXMubGl0ZXJhbHNbZmluYWxGaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGROdW1iZXIoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdmxkVmFsdWUgPSBmYWxzZSwgemVyb0FjY2VwdCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZOdW1iZXIoZmllbGQsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKCF2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IDAgJiYgemVyb0FjY2VwdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJlcXVlcmVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRWYWx1ZU9mTnVtYmVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkUGVyY2VudChmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB2bGRWYWx1ZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZQZXJjZW50KGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnZsZEZpZWxkTnVtYmVyKGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkVmFsdWVPZlBlcmNlbnQoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcihcclxuICAgICAgICAgICAgICAgIHsgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZE51bWJlciddLCBbdmFsdWUudG9TdHJpbmcoKSwgdGhpcy5saXRlcmFsc1tmaWVsZF1dKSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlID4gMTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBuw7ptZXJvcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VOdW1iZXIoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBudW1iZXIsIGZpbmFsVmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlKSB7IGluaXRpYWxWYWx1ZSA9IDA7IH1cclxuICAgICAgICBpZiAoIWZpbmFsVmFsdWUpIHsgZmluYWxWYWx1ZSA9IDA7IH1cclxuXHJcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA+IGZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkRGF0ZShmaWVsZDogc3RyaW5nLCB2YWx1ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHZhbERhdGUgPSB0aGlzLmRpc2NsYWltZXJVdGlsLmFqdXN0RGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNjbGFpbWVyVXRpbC5pc1ZhbGlkRGF0ZSh2YWxEYXRlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGREYXRlJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgZGF0YXMgc2UgbyBpbmljaWFsIMOpIG1lbm9yIHF1ZSBmaW5hbFxyXG4gICAgcHVibGljIHZsZFJhbmdlRGF0ZShpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IERhdGUsIGZpbmFsVmFsdWU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSB8fCAhZmluYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbEluaXRpYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoaW5pdGlhbFZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgY29uc3QgdmFsRmluYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoZmluYWxWYWx1ZSkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodmFsSW5pdGlhbERhdGUgPiB2YWxGaW5hbERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkTXVsdGlTZWxlY3QoZmllbGQ6IHN0cmluZywgdmFsdWU6IEFycmF5PGFueT4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRTZWxlY3RlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGRDaGVja2JveChmaWVsZDogc3RyaW5nLCB2YWx1ZTogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFNlbGVjdGVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSBmb3JtYXRvIGNvbmZvcm1lIHJlZ3JhOiBcIjlcIiBhcGVuYXMgbsO6bWVyb3MsIFwiWFwiIHF1YWxxdWVyIGNhcmFjdGVyLCBcIiFcIiBhcGVuYXMgbGV0cmFzIG1hacO6c2N1bGFzXHJcbiAgICBwdWJsaWMgdmxkRmllbGRGb3JtYXQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIHJlcGxhY2VQb2ludCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGxPSyA9IHRydWU7XHJcbiAgICAgICAgbGV0IG9sZEZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7IHJldHVybiBsT0s7IH1cclxuXHJcbiAgICAgICAgLypSZXRpcmEgb3MgcG9udG9zIGRvIGZvcm1hdG8qL1xyXG4gICAgICAgIGlmIChyZXBsYWNlUG9pbnQpIHtcclxuICAgICAgICAgICAgb2xkRm9ybWF0ID0gZm9ybWF0O1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgvXFwuL2csICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IGZvcm1hdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbE9LID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZm9ybWF0Lmxlbmd0aDsgaWR4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRbaWR4XSA9PT0gJzknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW2lkeF0ucmVwbGFjZSgvWzAtOV0vLCAnOScpICE9PSAnOScpIHsgbE9LID0gZmFsc2U7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdFtpZHhdID09PSAnIScpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbaWR4XS5yZXBsYWNlKC9bQS1aXS8sICdBJykgIT09ICdBJykgeyBsT0sgPSBmYWxzZTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlcGxhY2VQb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBvbGRGb3JtYXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWxPSykge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRGb3JtYXQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdLCBmb3JtYXRdKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsT0s7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/utils/file.util.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  export class FileUtil {
6
7
  constructor() { }
@@ -220,4 +221,4 @@ if (false) {
220
221
  /** @type {?} */
221
222
  DownloadDataParams.prototype.columnExclude;
222
223
  }
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZHRzLWJhY2tvZmZpY2UtdXRpbC8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9maWxlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE1BQU0sT0FBTyxRQUFRO0lBRWpCLGdCQUNJLENBQUM7Ozs7Ozs7O0lBRUwsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFvQixFQUFFLE1BQWdCO1FBQ25GLE1BQU0sR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7O2NBQ3JDLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7OztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBZ0IsRUFBRSxnQkFBcUMsSUFBSTtRQUMzRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTztTQUFFO1FBRXRCLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFBRSxhQUFhLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1NBQUU7UUFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFBRSxhQUFhLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztTQUFFO1FBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQUUsYUFBYSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7U0FBRTtRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRTtZQUFFLGFBQWEsQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO1NBQUU7UUFDNUUsSUFBSSxDQUFDLGFB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QUVoQyxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0NBQ0o7Ozs7QUFFRCx5Q0FNQzs7O0lBTEcsdUNBQWlCOztJQUNqQix1Q0FBYzs7SUFDZCw4Q0FBd0I7O0lBQ3hCLHlDQUEwQjs7SUFDMUIsNENBQTZCOztBQUdqQyxNQUFNLE9BQU8sa0JBQWtCO0NBTTlCOzs7SUFMRyxzQ0FBaUI7O0lBQ2pCLHNDQUFjOztJQUNkLDZDQUF3Qjs7SUFDeEIsd0NBQTBCOztJQUMxQiwyQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRmlsZVV0aWwge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBzdGF0aWMgZG93bmxvYWRGaWxlKGRhdGE6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgY29udGVudFR5cGU/OiBzdHJpbmcsIGJhc2U2ND86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBiYXNlNjQgPSAoYmFzZTY0ID09PSBmYWxzZSkgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgY29uc3QgZGF0YUJsb2IgPSBiYXNlNjQgPyB0aGlzLmI2NHRvQmxvYihkYXRhLCBjb250ZW50VHlwZSkgOiBkYXRhO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWQoZGF0YUJsb2IsIGZpbGVOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZG93bmxvYWREYXRhKGRhdGE6IEFycmF5PGFueT4sIGR3bGREYXRhUGFyYW06IElEb3dubG9hZERhdGFQYXJhbXMgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFkYXRhKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0pIHsgZHdsZERhdGFQYXJhbSA9IG5ldyBEb3dubG9hZERhdGFQYXJhbXMoKTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5maWxlTmFtZSkgeyBkd2xkRGF0YVBhcmFtLmZpbGVOYW1lID0gJ2RhdGEuY3N2JzsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5saXRlcmFscykgeyBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzID0ge307IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyKSB7IGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyID0gJzsnOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0ID0gW107IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSkgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUgPSBbXTsgfVxyXG5cclxuICAgICAgICBjb25zdCBkYXRhYjY0ID0gYnRvYSh0aGlzLmpzb25Ub1N0cmluZyhkYXRhLCBkd2xkRGF0YVBhcmFtKSk7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUoZGF0YWI2NCwgZHdsZERhdGFQYXJhbS5maWxlTmFtZSwgJ3RleHQvY3N2Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZG93bmxvYWQoZmlsZTogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJpbmFyeURhdGEgPSBbZmlsZV07XHJcbiAgICAgICAgY29uc3QgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgIGNvbnN0IHVybERvd25sb2FkID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoYmluYXJ5RGF0YSwgeyB0eXBlOiBmaWxlLnR5cGUgfSkpO1xyXG5cclxuICAgICAgICAvKipWZXJpZmljYSBzZSDDqSBpZSBvdSBlZGdlLCBwb2lzIG8gbWVzbW8gdGVtIHRyYXRhbWVudG8gcHLDs3ByaW8gcGFyYSBhcnF1aXZvcyBibG9iICovXHJcbiAgICAgICAgaWYgKG5hdmlnYXRvci51c2VyQWdlbnQudG9VcHBlckNhc2UoKS5pbmRleE9mKCcuTkVUJykgPiAwIHx8IG5hdmlnYXRvci51c2VyQWdlbnQudG9VcHBlckNhc2UoKS5pbmRleE9mKCdFREdFJykgPiAwKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihmaWxlLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSB1cmxEb3dubG9hZDtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybERvd25sb2FkKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBiNjR0b0Jsb2IoYjY0RGF0YTogYW55LCBjb250ZW50VHlwZT86IHN0cmluZywgc2xpY2VTaXplPzogbnVtYmVyKTogQmxvYiB7XHJcbiAgICAgICAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCAnJztcclxuICAgICAgICBzbGljZVNpemUgPSBzbGljZVNpemUgfHwgNTEyO1xyXG5cclxuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYjY0RGF0YSk7XHJcbiAgICAgICAgY29uc3QgYnl0ZUFycmF5cyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IG9mZnNldCArPSBzbGljZVNpemUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2xpY2UgPSBieXRlQ2hhcmFjdGVycy5zbGljZShvZmZzZXQsIG9mZnNldCArIHNsaWNlU2l6ZSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShzbGljZS5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IHNsaWNlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgICAgICAgICAgYnl0ZUFycmF5cy5wdXNoKGJ5dGVBcnJheSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoYnl0ZUFycmF5cywgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcclxuICAgICAgICByZXR1cm4gYmxvYjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBqc29uVG9TdHJpbmcoanNvbkRhdGE6IEFycmF5PGFueT4sIGR3bGREYXRhUGFyYW06IElEb3dubG9hZERhdGFQYXJhbXMpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghanNvbkRhdGEgfHwganNvbkRhdGEubGVuZ3RoID09PSAwKSB7IHJldHVybiAnJzsgfVxyXG5cclxuICAgICAgICBjb25zdCBsaW5lRGVsaW1pdGVyID0gJ1xcbic7XHJcblxyXG4gICAgICAgIGxldCBjb2x1bW5PcmlnID0gbnVsbDtcclxuICAgICAgICBsZXQgY29sdW1uSGVhZGVyID0gbnVsbDtcclxuICAgICAgICBjb25zdCBrZXlzID0gW107XHJcbiAgICAgICAgbGV0IGluY2x1ZGVLZXk6IGJvb2xlYW47XHJcblxyXG4gICAgICAgIGlmIChkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QgJiZcclxuICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29sdW1uT3JpZyA9IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb2x1bW5PcmlnID0gT2JqZWN0LmtleXMoanNvbkRhdGFbMF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29sdW1uT3JpZy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGluY2x1ZGVLZXkgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSAmJlxyXG4gICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZS5pbmRleE9mKGtleSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBpbmNsdWRlS2V5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmNsdWRlS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlciA9ICghY29sdW1uSGVhZGVyKSA/ICcnIDogY29sdW1uSGVhZGVyICsgZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIgKz0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNba2V5XSkgPyBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2tleV0gOiBrZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgbGluZVN0ciA9IGpzb25EYXRhLnJlZHVjZSgoYWNjTGluZVN0ciwgY3VycmVudEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IGNvbHVtblZhbHVlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkgeyBhY2NMaW5lU3RyICs9IGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBjdXJyZW50SXRlbVtrZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtblZhbHVlID09PSBudWxsIHx8IGNvbHVtblZhbHVlID09PSB1bmRlZmluZWQpIHsgY29sdW1uVmFsdWUgPSAnJzsgfVxyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgKGNvbHVtblZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gY29sdW1uVmFsdWUudG9Mb2NhbGVTdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0pID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0gOiBjb2x1bW5WYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBKU09OLnN0cmluZ2lmeShjb2x1bW5WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhY2NMaW5lU3RyICs9IGNvbHVtblZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGFjY0xpbmVTdHIgKyBsaW5lRGVsaW1pdGVyO1xyXG5cclxuICAgICAgICB9LCBjb2x1bW5IZWFkZXIgKyBsaW5lRGVsaW1pdGVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGxpbmVTdHI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURvd25sb2FkRGF0YVBhcmFtcyB7XHJcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgbGl0ZXJhbHM6IGFueTtcclxuICAgIGNvbHVtbkRlbGltaXRlcjogc3RyaW5nO1xyXG4gICAgY29sdW1uTGlzdDogQXJyYXk8c3RyaW5nPjtcclxuICAgIGNvbHVtbkV4Y2x1ZGU6IEFycmF5PHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZERhdGFQYXJhbXMgaW1wbGVtZW50cyBJRG93bmxvYWREYXRhUGFyYW1zIHtcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBsaXRlcmFsczogYW55O1xyXG4gICAgY29sdW1uRGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBjb2x1bW5MaXN0OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29sdW1uRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcclxufVxyXG4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjMvcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvZmlsZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTSxPQUFPLFFBQVE7SUFFakIsZ0JBQ0ksQ0FBQzs7Ozs7Ozs7SUFFTCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVMsRUFBRSxRQUFnQixFQUFFLFdBQW9CLEVBQUUsTUFBZ0I7UUFDbkYsTUFBTSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs7Y0FDckMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7Ozs7O0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFnQixFQUFFLGdCQUFxQyxJQUFJO1FBQzNFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFdEIsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUFFLGFBQWEsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7U0FBRTtRQUNqRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1NBQUU7UUFDckUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFBRSxhQUFhLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUFFO1FBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFO1lBQUUsYUFBYSxD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YUFBYSxDQUFDO1FBRXRDLENBQUMsR0FBRSxZQUFZLEdBQUcsYUFBYSxDQUFDO1FBRWhDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSjs7OztBQUVELHlDQU1DOzs7SUFMRyx1Q0FBaUI7O0lBQ2pCLHVDQUFjOztJQUNkLDhDQUF3Qjs7SUFDeEIseUNBQTBCOztJQUMxQiw0Q0FBNkI7O0FBR2pDLE1BQU0sT0FBTyxrQkFBa0I7Q0FNOUI7OztJQUxHLHNDQUFpQjs7SUFDakIsc0NBQWM7O0lBQ2QsNkNBQXdCOztJQUN4Qix3Q0FBMEI7O0lBQzFCLDJDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGaWxlVXRpbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHN0YXRpYyBkb3dubG9hZEZpbGUoZGF0YTogYW55LCBmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50VHlwZT86IHN0cmluZywgYmFzZTY0PzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGJhc2U2NCA9IChiYXNlNjQgPT09IGZhbHNlKSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgICBjb25zdCBkYXRhQmxvYiA9IGJhc2U2NCA/IHRoaXMuYjY0dG9CbG9iKGRhdGEsIGNvbnRlbnRUeXBlKSA6IGRhdGE7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZChkYXRhQmxvYiwgZmlsZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkb3dubG9hZERhdGEoZGF0YTogQXJyYXk8YW55PiwgZHdsZERhdGFQYXJhbTogSURvd25sb2FkRGF0YVBhcmFtcyA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRhdGEpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbSkgeyBkd2xkRGF0YVBhcmFtID0gbmV3IERvd25sb2FkRGF0YVBhcmFtcygpOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmZpbGVOYW1lKSB7IGR3bGREYXRhUGFyYW0uZmlsZU5hbWUgPSAnZGF0YS5jc3YnOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmxpdGVyYWxzKSB7IGR3bGREYXRhUGFyYW0ubGl0ZXJhbHMgPSB7fTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXIpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXIgPSAnOyc7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCkgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QgPSBbXTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlKSB7IGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSA9IFtdOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGFiNjQgPSBidG9hKHRoaXMuanNvblRvU3RyaW5nKGRhdGEsIGR3bGREYXRhUGFyYW0pKTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShkYXRhYjY0LCBkd2xkRGF0YVBhcmFtLmZpbGVOYW1lLCAndGV4dC9jc3YnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBkb3dubG9hZChmaWxlOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYmluYXJ5RGF0YSA9IFtmaWxlXTtcclxuICAgICAgICBjb25zdCBkb3dubG9hZExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgY29uc3QgdXJsRG93bmxvYWQgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihiaW5hcnlEYXRhLCB7IHR5cGU6IGZpbGUudHlwZSB9KSk7XHJcblxyXG4gICAgICAgIC8qKlZlcmlmaWNhIHNlIMOpIGllIG91IGVkZ2UsIHBvaXMgbyBtZXNtbyB0ZW0gdHJhdGFtZW50byBwcsOzcHJpbyBwYXJhIGFycXVpdm9zIGJsb2IgKi9cclxuICAgICAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC50b1VwcGVyQ2FzZSgpLmluZGV4T2YoJy5ORVQnKSA+IDAgfHwgbmF2aWdhdG9yLnVzZXJBZ2VudC50b1VwcGVyQ2FzZSgpLmluZGV4T2YoJ0VER0UnKSA+IDApIHtcclxuICAgICAgICAgICAgd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGZpbGUsIGZpbGVOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuaHJlZiA9IHVybERvd25sb2FkO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVOYW1lKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZExpbmspO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcclxuICAgICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsRG93bmxvYWQpO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGI2NHRvQmxvYihiNjREYXRhOiBhbnksIGNvbnRlbnRUeXBlPzogc3RyaW5nLCBzbGljZVNpemU/OiBudW1iZXIpOiBCbG9iIHtcclxuICAgICAgICBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlIHx8ICcnO1xyXG4gICAgICAgIHNsaWNlU2l6ZSA9IHNsaWNlU2l6ZSB8fCA1MTI7XHJcblxyXG4gICAgICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiNjREYXRhKTtcclxuICAgICAgICBjb25zdCBieXRlQXJyYXlzID0gW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgb2Zmc2V0ICs9IHNsaWNlU2l6ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBzbGljZSA9IGJ5dGVDaGFyYWN0ZXJzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2xpY2VTaXplKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KHNsaWNlLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2UubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xyXG4gICAgICAgICAgICBieXRlQXJyYXlzLnB1c2goYnl0ZUFycmF5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihieXRlQXJyYXlzLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xyXG4gICAgICAgIHJldHVybiBibG9iO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGpzb25Ub1N0cmluZyhqc29uRGF0YTogQXJyYXk8YW55PiwgZHdsZERhdGFQYXJhbTogSURvd25sb2FkRGF0YVBhcmFtcyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFqc29uRGF0YSB8fCBqc29uRGF0YS5sZW5ndGggPT09IDApIHsgcmV0dXJuICcnOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IGxpbmVEZWxpbWl0ZXIgPSAnXFxuJztcclxuXHJcbiAgICAgICAgbGV0IGNvbHVtbk9yaWcgPSBudWxsO1xyXG4gICAgICAgIGxldCBjb2x1bW5IZWFkZXIgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBbXTtcclxuICAgICAgICBsZXQgaW5jbHVkZUtleTogYm9vbGVhbjtcclxuXHJcbiAgICAgICAgaWYgKGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCAmJlxyXG4gICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb2x1bW5PcmlnID0gZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk9yaWcgPSBPYmplY3Qua2V5cyhqc29uRGF0YVswXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb2x1bW5PcmlnLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaW5jbHVkZUtleSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBpZiAoZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlICYmXHJcbiAgICAgICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGluY2x1ZGVLZXkgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGluY2x1ZGVLZXkpIHtcclxuICAgICAgICAgICAgICAgIGtleXMucHVzaChrZXkpO1xyXG4gICAgICAgICAgICAgICAgY29sdW1uSGVhZGVyID0gKCFjb2x1bW5IZWFkZXIpID8gJycgOiBjb2x1bW5IZWFkZXIgKyBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcjtcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlciArPSAoZHdsZERhdGFQYXJhbS5saXRlcmFsc1trZXldKSA/IGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNba2V5XSA6IGtleTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBsaW5lU3RyID0ganNvbkRhdGEucmVkdWNlKChhY2NMaW5lU3RyLCBjdXJyZW50SXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZmlyc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICBsZXQgY29sdW1uVmFsdWUgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSB7IGFjY0xpbmVTdHIgKz0gZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXI7IH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IGN1cnJlbnRJdGVtW2tleV07XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uVmFsdWUgPT09IG51bGwgfHwgY29sdW1uVmFsdWUgPT09IHVuZGVmaW5lZCkgeyBjb2x1bW5WYWx1ZSA9ICcnOyB9XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiAoY29sdW1uVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBjb2x1bW5WYWx1ZS50b0xvY2FsZVN0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSAoZHdsZERhdGFQYXJhbS5saXRlcmFsc1tgJHtjb2x1bW5WYWx1ZX1gXSkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5saXRlcmFsc1tgJHtjb2x1bW5WYWx1ZX1gXSA6IGNvbHVtblZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdvYmplY3QnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IEpTT04uc3RyaW5naWZ5KGNvbHVtblZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFjY0xpbmVTdHIgKz0gY29sdW1uVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYWNjTGluZVN0ciArIGxpbmVEZWxpbWl0ZXI7XHJcblxyXG4gICAgICAgIH0sIGNvbHVtbkhlYWRlciArIGxpbmVEZWxpbWl0ZXIpO1xyXG5cclxuICAgICAgICByZXR1cm4gbGluZVN0cjtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRG93bmxvYWREYXRhUGFyYW1zIHtcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBsaXRlcmFsczogYW55O1xyXG4gICAgY29sdW1uRGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBjb2x1bW5MaXN0OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29sdW1uRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERvd25sb2FkRGF0YVBhcmFtcyBpbXBsZW1lbnRzIElEb3dubG9hZERhdGFQYXJhbXMge1xyXG4gICAgZmlsZU5hbWU6IHN0cmluZztcclxuICAgIGxpdGVyYWxzOiBhbnk7XHJcbiAgICBjb2x1bW5EZWxpbWl0ZXI6IHN0cmluZztcclxuICAgIGNvbHVtbkxpc3Q6IEFycmF5PHN0cmluZz47XHJcbiAgICBjb2x1bW5FeGNsdWRlOiBBcnJheTxzdHJpbmc+O1xyXG59XHJcbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * Generated from: lib/utils/filter-range.util.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
5
  */
5
6
  /*
6
7
  Versão: 1.000
@@ -49,4 +50,4 @@ export class FilterRangeUtil {
49
50
  };
50
51
  }
51
52
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJhbmdlLnV0aWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kdHMtYmFja29mZmljZS11dGlsLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2ZpbHRlci1yYW5nZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBT0EsTUFBTSxPQUFPLGVBQWU7SUFFeEI7SUFDQSxDQUFDOzs7Ozs7SUFFTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUN2RSxPQUFPO1lBQ0gsVUFBVTtZQUNWLFFBQVE7WUFDUixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDO0lBQ04sQ0FBQzs7Ozs7O0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQWtCLEVBQUUsUUFBZ0I7UUFDcEUsT0FBTztZQUNILFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztJQUNOLENBQUM7Ozs7OztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFnQixFQUFFLFFBQWM7UUFDOUQsT0FBTztZQUNILFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcblZlcnPDo286IDEuMDAwXHJcbkRhdGEgQ3JpYcOnw6NvOiAwNi8wOC8yMDE4XHJcbiovXHJcblxyXG5pbXBvcnQgeyBJRmlsdGVyUmFuZ2VDaGFyYWN0ZXIsIElGaWx0ZXJSYW5nZU51bWJlciwgSUZpbHRlclJhbmdlRGF0ZSB9IGZyb20gJy4uLy4uL2xpYi9pbnRlcmZhY2VzL2ZpbHRlci1yYW5nZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlclJhbmdlVXRpbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBtYWtlRmlsdGVyUmFuZ2VDaGFyYWN0ZXIoaW5pSW5pdGlhbDogc3RyaW5nLCBpbmlGaW5hbDogc3RyaW5nKTogSUZpbHRlclJhbmdlQ2hhcmFjdGVyIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICBpbmlGaW5hbCxcclxuICAgICAgICAgICAgdmFsSW5pdGlhbDogaW5pSW5pdGlhbCxcclxuICAgICAgICAgICAgdmFsRmluYWw6IGluaUZpbmFsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG1ha2VGaWx0ZXJSYW5nZU51bWJlcihpbmlJbml0aWFsOiBudW1iZXIsIGluaUZpbmFsOiBudW1iZXIpOiBJRmlsdGVyUmFuZ2VOdW1iZXIge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIGluaUZpbmFsLFxyXG4gICAgICAgICAgICB2YWxJbml0aWFsOiBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICB2YWxGaW5hbDogaW5pRmluYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbWFrZUZpbHRlclJhbmdlRGF0ZShpbmlJbml0aWFsOiBEYXRlLCBpbmlGaW5hbDogRGF0ZSk6IElGaWx0ZXJSYW5nZURhdGUge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIGluaUZpbmFsLFxyXG4gICAgICAgICAgICB2YWxJbml0aWFsOiBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICB2YWxGaW5hbDogaW5pRmluYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJhbmdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiQzovRGF0YXN1bC9USEYvZHRzLWJhY2tvZmZpY2UtdXRpbC12My9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9maWx0ZXItcmFuZ2UudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFPQSxNQUFNLE9BQU8sZUFBZTtJQUV4QjtJQUNBLENBQUM7Ozs7OztJQUVNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLFFBQWdCO1FBQ3ZFLE9BQU87WUFDSCxVQUFVO1lBQ1YsUUFBUTtZQUNSLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFFBQVEsRUFBRSxRQUFRO1NBQ3JCLENBQUM7SUFDTixDQUFDOzs7Ozs7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUNwRSxPQUFPO1lBQ0gsVUFBVTtZQUNWLFFBQVE7WUFDUixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDO0lBQ04sQ0FBQzs7Ozs7O0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQWdCLEVBQUUsUUFBYztRQUM5RCxPQUFPO1lBQ0gsVUFBVTtZQUNWLFFBQVE7WUFDUixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDBcclxuRGF0YSBDcmlhw6fDo286IDA2LzA4LzIwMThcclxuKi9cclxuXHJcbmltcG9ydCB7IElGaWx0ZXJSYW5nZUNoYXJhY3RlciwgSUZpbHRlclJhbmdlTnVtYmVyLCBJRmlsdGVyUmFuZ2VEYXRlIH0gZnJvbSAnLi4vLi4vbGliL2ludGVyZmFjZXMvZmlsdGVyLXJhbmdlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyUmFuZ2VVdGlsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG1ha2VGaWx0ZXJSYW5nZUNoYXJhY3RlcihpbmlJbml0aWFsOiBzdHJpbmcsIGluaUZpbmFsOiBzdHJpbmcpOiBJRmlsdGVyUmFuZ2VDaGFyYWN0ZXIge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIGluaUZpbmFsLFxyXG4gICAgICAgICAgICB2YWxJbml0aWFsOiBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICB2YWxGaW5hbDogaW5pRmluYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbWFrZUZpbHRlclJhbmdlTnVtYmVyKGluaUluaXRpYWw6IG51bWJlciwgaW5pRmluYWw6IG51bWJlcik6IElGaWx0ZXJSYW5nZU51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaW5pSW5pdGlhbCxcclxuICAgICAgICAgICAgaW5pRmluYWwsXHJcbiAgICAgICAgICAgIHZhbEluaXRpYWw6IGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIHZhbEZpbmFsOiBpbmlGaW5hbFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBtYWtlRmlsdGVyUmFuZ2VEYXRlKGluaUluaXRpYWw6IERhdGUsIGluaUZpbmFsOiBEYXRlKTogSUZpbHRlclJhbmdlRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaW5pSW5pdGlhbCxcclxuICAgICAgICAgICAgaW5pRmluYWwsXHJcbiAgICAgICAgICAgIHZhbEluaXRpYWw6IGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIHZhbEZpbmFsOiBpbmlGaW5hbFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19