@seniorsistemas/angular-components 17.1.6 → 17.1.7

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.
@@ -90,7 +90,7 @@ let LookupComponent = LookupComponent_1 = class LookupComponent {
90
90
  }
91
91
  printRecordTotalizer() {
92
92
  var _a, _b, _c;
93
- return ((_a = this.searchTotalRecordsLabel) !== null && _a !== void 0 ? _a : this.searchTotalRecords === 1) ? (_b = this.recordLabel) !== null && _b !== void 0 ? _b : this.translateService.instant("platform.angular_components.record", { count: this.searchTotalRecords }) : (_c = this.recordsLabel) !== null && _c !== void 0 ? _c : this.translateService.instant("platform.angular_components.records", { count: this.searchTotalRecords });
93
+ return ((_a = this.searchTotalRecordsLabel) !== null && _a !== void 0 ? _a : this.searchTotalRecords === 1) ? (_b = this.recordLabel) !== null && _b !== void 0 ? _b : this.translateService.instant("platform.angular_components.total_record", { count: this.searchTotalRecords }) : (_c = this.recordsLabel) !== null && _c !== void 0 ? _c : this.translateService.instant("platform.angular_components.total_records", { count: this.searchTotalRecords });
94
94
  }
95
95
  _convertToMomentHourFormat(hourFormat, format) {
96
96
  if (format === "dd/mm/yy") { // valor padrão para o format.
@@ -531,4 +531,4 @@ LookupComponent = LookupComponent_1 = __decorate([
531
531
  })
532
532
  ], LookupComponent);
533
533
  export { LookupComponent };
534
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDOUssT0FBTyxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFp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eSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgTWFza0NvbmZpZyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgSG90a2V5LCBIb3RrZXlzU2VydmljZSB9IGZyb20gXCJhbmd1bGFyMi1ob3RrZXlzXCI7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gXCJiaWdudW1iZXIuanNcIjtcbmltcG9ydCB7IFNvcnRNZXRhIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGUgfSBmcm9tIFwicHJpbWVuZy9hdXRvY29tcGxldGVcIjtcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gXCJwcmltZW5nL2RpYWxvZ1wiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciB9IGZyb20gXCIuL21vZGVscy9kZWZhdWx0LWZpbHRlclwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uLy4uXCI7XG5pbXBvcnQgeyBCb29sZWFuT3B0aW9uc0xhYmVsIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ib29sZWFuLWZpZWxkXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgQ2FsZW5kYXJMb2NhbGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL2xvY2FsZS9vcHRpb25zL2NhbGVuZGFyXCI7XG5pbXBvcnQgeyBCaWdudW1iZXJGaWVsZENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvYmlnbnVtYmVyLWZpZWxkXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtbG9va3VwXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9sb29rdXAuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vbG9va3VwLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvb2t1cENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKFwiY29sbGFwc2VDb250ZW50XCIsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiaGlkZGVuXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMHB4XCIsXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcInZpc2libGVcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIipcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCJ2aXNpYmxlIDw9PiBoaWRkZW5cIiwgW2dyb3VwKFtxdWVyeShcIkBjaGlsZENvbGxhcHNlQ29udGVudFwiLCBhbmltYXRlQ2hpbGQoKSksIGFuaW1hdGUoXCJ7e3RyYW5zaXRpb25QYXJhbXN9fVwiKV0pXSksXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKFwiY2hpbGRDb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCI6bGVhdmVcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjplbnRlclwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCIqIDw9PiAqXCIsIGFuaW1hdGUoXCJ7e3RyYW5zaXRpb25QYXJhbXN9fVwiKSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIExvb2t1cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtbG9va3VwLSR7TG9va3VwQ29tcG9uZW50Lm5leHRJZCsrfWA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvY29tcGxldGVGb3JjZVNlbGVjdGlvbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRhdGFLZXk6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dTZWFyY2ggPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwU3VnZ2VzdGlvbnM6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwRGlzcGxheUZpZWxkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGRUb29sdGlwOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwRW1wdHlNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBBcHBlbmRUbyA9IFwiYm9keVwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoR3JpZERhdGE6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRmllbGRzOiBGb3JtRmllbGRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpU29ydE1ldGE6IFNvcnRNZXRhW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc29ydGFibGVDb2x1bW5zRGlzYWJsZWQ6IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwUm93UHJvcHM6IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVmYXVsdEZpbHRlcjogRGVmYXVsdEZpbHRlcltdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uTG9va3VwUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlYXJjaFJlcXVlc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25LZXlVcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uQ2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKFRhYmxlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChEaWFsb2csIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkaWFsb2c6IERpYWxvZztcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlclRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xlYXJMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdExhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXB0eUZpZWxkTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlY29yZExhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIHB1YmxpYyB2YWx1ZTogYW55O1xuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBhbmltYXRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XG4gICAgcHVibGljIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBmb3JtR3JvdXBEaWFsb2c6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgdHJhbnNpdGlvbk9wdGlvbnMgPSBcIjQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKVwiO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb247XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgb3JpZ2luYWxGb3JtVmFsdWVzID0ge307XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hHcmlkRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEZpZWxkcy5tYXAoaXRlbSA9PiBuZXcgRm9ybUZpZWxkKHsgLi4uaXRlbSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChcbiAgICAgICAgICAgICh2YWx1ZTogRm9ybUZpZWxkKSA9PiBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBzaXplOiB7IHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIsIHhsOiAxMiB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEdyaWRGaWVsZHMubWFwKChncmlkRmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgZ3JpZEZpZWxkW1wid2lkdGhcIl0gPSB0aGlzLmdldENvbFdpZHRoKGdyaWRGaWVsZC5sYWJlbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IG5ldyBDYWxlbmRhckxvY2FsZU9wdGlvbnMoeyAuLi5ncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zIH0pO1xuXG4gICAgICAgICAgICBpZiAoY2FsZW5kYXJPcHRpb25zPy5kYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChncmlkRmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5ob3VyRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zID0gY2FsZW5kYXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZ3JpZEZpZWxkO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLnNlYXJjaEZpZWxkcy5yZWR1Y2UoKHJlc3VsdDogYW55LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKGZpZWxkLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsRm9ybVZhbHVlc1tmaWVsZC5uYW1lXSA9IGZpZWxkLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZyA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwKTtcblxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9hZGluZyA9IHRydWUpKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25VbnNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25DbGVhci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgfHwgdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25Gb2N1cy5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25CbHVyLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWVbdGhpcy5sb29rdXBEaXNwbGF5RmllbGRdO1xuICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSB8fCAhY3VycmVudFZhbHVlIHx8IGN1cnJlbnRWYWx1ZSA9PSB2YWx1ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJpbnRSZWNvcmRUb3RhbGl6ZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoVG90YWxSZWNvcmRzTGFiZWwgPz8gdGhpcy5zZWFyY2hUb3RhbFJlY29yZHMgPT09IDFcbiAgICAgICAgICAgID8gdGhpcy5yZWNvcmRMYWJlbCA/PyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5yZWNvcmRcIiwgeyBjb3VudDogdGhpcy5zZWFyY2hUb3RhbFJlY29yZHMgfSlcbiAgICAgICAgICAgIDogdGhpcy5yZWNvcmRzTGFiZWwgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVjb3Jkc1wiLCB7IGNvdW50OiB0aGlzLnNlYXJjaFRvdGFsUmVjb3JkcyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KGhvdXJGb3JtYXQ6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJkZC9tbS95eVwiKSB7IC8vIHZhbG9yIHBhZHLDo28gcGFyYSBvIGZvcm1hdC5cbiAgICAgICAgICAgIHJldHVybiBcIkxUU1wiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdXJGb3JtYXQgPT09IFwiMTJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJIXFxiLywgXCJoXCIpICAgICAvLyBob3VyICgxMiBob3VyIHRpbWUpIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYkhIXFxiLywgXCJoaFwiKTsgIC8vIGhvdXIgKDEyIGhvdXIgdGltZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChob3VyRm9ybWF0ID09PSBcIjI0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiaFxcYi8sIFwiSFwiKSAgICAgLy8gaG91ciAoMjQgaG91ciB0aW1lKSAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJoaFxcYi8sIFwiSEhcIik7ICAvLyBob3VyICgyNCBob3VyIHRpbWUpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnZlcnRUb01vbWVudERhdGVGb3JtYXQoZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBBIG9yZGVtIGRvcyByZXBsYWNlcyDDqSBpbXBvcnRhbnRlLlxuICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiZFxcYi8sIFwiRFwiKSAgICAgIC8vIGRheSBvZiBtb250aCAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmRkXFxiLywgXCJERFwiKSAgICAvLyBkYXkgb2YgbW9udGhcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJvXFxiLywgXCJERERcIikgICAgLy8gZGF5IG9mIHRoZSB5ZWFyIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxib29cXGIvLCBcIkRERERcIikgIC8vIGRheSBvZiB0aGUgeWVhclxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYk1cXGIvLCBcIk1NTVwiKSAgICAvLyBtb250aCBuYW1lIHNob3J0XG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiTU1cXGIvLCBcIk1NTU1cIikgIC8vIG1vbnRoIG5hbWUgbG9uZ1xuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm1cXGIvLCBcIk1cIikgICAgICAvLyBtb250aCBvZiB5ZWFyIChubyBsZWFkaW5nKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm1tXFxiLywgXCJNTVwiKSAgICAvLyBtb250aCBvZiB5ZWFyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxieVxcYi8sIFwiWVlcIikgICAgIC8vIHllYXIgKHR3byBkaWdpdHMpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxieXlcXGIvLCBcIllZWVlcIik7IC8vIHllYXIgKGZvdXIgZGlnaXRzKVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLm9uT3ZlcmxheUFuaW1hdGlvbkRvbmUgPSAoZXZlbnQpID0+IHsgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dWaXNpYmxlICYmIGNoYW5nZXMuc2VhcmNoR3JpZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Rm9jdXNGaWx0ZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoR3JpZERhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExvb2t1cFN1Z2dlc3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb29rdXBTdWdnZXN0aW9ucztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbWFrZVNlYXJjaFJlcXVlc3RQYXJhbXMoZXZlbnQ6IGFueSkge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5mb3JtR3JvdXBEaWFsb2cuZ2V0UmF3VmFsdWUoKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi5ldmVudCwgZmlsdGVyRGF0YTogZmlsdGVycyB9O1xuICAgICAgICBjb25zdCB7IG11bHRpU29ydE1ldGEgfSA9IGV2ZW50O1xuICAgICAgICB0aGlzLm11bHRpU29ydE1ldGEgPSBtdWx0aVNvcnRNZXRhIHx8IHRoaXMubXVsdGlTb3J0TWV0YTtcblxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBsYXp5TG9hZEdyaWQoZXZlbnQ6IGFueSkge1xuICAgICAgICAvLyBBbyBkZWZpbmlyIHVtYSBvcmRlbmHDp8OjbyBuYSB0YWJlbGEgZG8gbG9va3VwIGVzc2UgbcOpdG9kbyDDqSBjaGFtYWRvIDIgdmV6ZXMgaHR0cHM6Ly9naXRodWIuY29tL3ByaW1lZmFjZXMvcHJpbWVuZy9pc3N1ZXMvNTQ4MFxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLm1ha2VTZWFyY2hSZXF1ZXN0UGFyYW1zKGV2ZW50KTtcbiAgICAgICAgdGhpcy5vblNlYXJjaFJlcXVlc3QubmV4dChwYXJhbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBsYXp5TG9hZExvb2t1cChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMub25Mb29rdXBSZXF1ZXN0Lm5leHQoZXZlbnQucXVlcnkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREZWZhdWx0RmlsdGVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRGaWx0ZXIpIHJldHVybjtcblxuICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHsgZmllbGQgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXBEaWFsb2cuY29udGFpbnMoZmllbGQpICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmZvcm1Hcm91cERpYWxvZy5nZXQoW2ZpZWxkXSkuZGlydHlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mb3JFYWNoKCh7IHZhbHVlLCBmaWVsZCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXBEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgLmdldChbZmllbGRdKVxuICAgICAgICAgICAgICAgICAgICAucGF0Y2hWYWx1ZSh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uID8gdmFsdWUoKSA6IHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RGlhbG9nKCkge1xuICAgICAgICB0aGlzLnNldERlZmF1bHRGaWx0ZXJzKCk7XG4gICAgICAgIHRoaXMuc2VhcmNoR3JpZERhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UucGF1c2UoWy4uLnRoaXMuaG90a2V5c1NlcnZpY2UuaG90a2V5c10pO1xuICAgICAgICB0aGlzLnNldEhvdGtleXMoKTtcblxuICAgICAgICBsZXQgc2VsZWN0ZWQ6IGFueSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IHNlbGVjdGVkLmNvbmNhdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGlkZURpYWxvZygpIHtcbiAgICAgICAgY29uc3QgeyBpbnB1dEVMLCBtdWx0aUlucHV0RUwgfSA9IHRoaXMuYXV0b2NvbXBsZXRlO1xuICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS51bnBhdXNlKFsuLi50aGlzLmhvdGtleXNTZXJ2aWNlLnBhdXNlZEhvdGtleXNdKTtcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkgbXVsdGlJbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgZWxzZSBpbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoKCkge1xuICAgICAgICB0aGlzLnJlc2V0VGFibGUoKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpYWxvZy5tb3ZlT25Ub3AoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwRGlhbG9nLnJlc2V0KHRoaXMub3JpZ2luYWxGb3JtVmFsdWVzKTtcbiAgICAgICAgdGhpcy5yZXNldFRhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0VGFibGUoKSB7XG4gICAgICAgIHRoaXMudGFibGUucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0KCkge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWQubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkICYmICh0aGlzLm11bHRpcGxlID8gdGhpcy5zZWxlY3RlZCA6IHRoaXMuc2VsZWN0ZWRbMF0pO1xuICAgICAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMub25TZWxlY3QubmV4dChzZWxlY3RlZCk7XG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZDogYW55KSB7XG4gICAgICAgIGlmICghc2VsZWN0ZWQpIHJldHVybjtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpKSB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIGVsc2UgdGhpcy5zZWxlY3RlZCA9IFtzZWxlY3RlZF07XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAodmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgZm4odmFsKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWVsZFZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0LCBwcm9wKSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGFiZWxGb3JWYWx1ZSh2YWx1ZTogYW55LCBvcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdKSB7XG4gICAgICAgIGlmICghb3B0aW9ucykgcmV0dXJuIHZhbHVlO1xuICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xuICAgICAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQm9vbGVhblZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEZpZWxkVmFsdWUob2JqLCBwYXRoKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCb29sZWFuTGFiZWwob2JqOiBhbnksIHBhdGg6IHN0cmluZywgb3B0aW9uc0xhYmVsOiBCb29sZWFuT3B0aW9uc0xhYmVsKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG9wdGlvbnNMYWJlbC50cnVlO1xuICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiBvcHRpb25zTGFiZWwuZmFsc2U7XG4gICAgICAgIGVsc2UgcmV0dXJuIHRoaXMuZW1wdHlGaWVsZExhYmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc051bWJlcihvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiAhKG5ldyBCaWdOdW1iZXIodGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCkpLmlzTmFOKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIb3RrZXlzKCkge1xuICAgICAgICBjb25zdCBjbGVhckhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2xcIiwgdGhpcy5jbGVhci5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3QgZmluZEhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2ZcIiwgdGhpcy5zZWFyY2guYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IGhpZGVIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtjXCIsIHRoaXMuaGlkZURpYWxvZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0SG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrc1wiLCB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpKTtcblxuICAgICAgICBjb25zdCBiaW5kZWRIb3RrZXlzID0gW2NsZWFySG90a2V5LCBmaW5kSG90a2V5LCBoaWRlSG90a2V5LCBzZWxlY3RIb3RrZXldO1xuICAgICAgICBiaW5kZWRIb3RrZXlzLmZvckVhY2goKGhvdGtleTogSG90a2V5KSA9PiB0aGlzLmhvdGtleXNTZXJ2aWNlLmFkZChob3RrZXkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5ld0hvdGtleShjb21ibzogc3RyaW5nLCBmbjogRnVuY3Rpb24pOiBIb3RrZXkge1xuICAgICAgICByZXR1cm4gbmV3IEhvdGtleShcbiAgICAgICAgICAgIGNvbWJvLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtcIklOUFVUXCIsIFwiU0VMRUNUXCIsIFwiVEVYVEFSRUFcIl1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsdGVyVG9nZ2xlKCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpbmcpIHJldHVybjtcblxuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZURvbmUoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSB0YWJsZSBjb2x1bW4gc2l6ZS4gVGhlIG1pbmltdW0gdmFsdWUgaXMgMTQuMjg2ZW0sIHdoaWNoIGlzIGVxdWFscyB0byAyMDBweCBkdW8gdG8gdGhlIGN1cnJlbnQgZm9udCBzaXplLlxuICAgICAqIEBwYXJhbSBsYWJlbCBDb2x1bW4gbmFtZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sV2lkdGgobGFiZWw6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzaXplID0gbGFiZWwubGVuZ3RoO1xuICAgICAgICBpZiAoc2l6ZSA8IDE0LjI4NikgcmV0dXJuIGAxNC4yODZlbWA7XG4gICAgICAgIHJldHVybiBgJHtzaXplfWVtYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2NhbGUoc2NhbGU6IGFueSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRnVuY3Rpb24oc2NhbGUpID8gc2NhbGUoKSA6IHNjYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbnRlZ2VyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogMCxcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RG91YmxlTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TW9uZXlNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpOiBNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjYWxlOiB0aGlzLmdldFNjYWxlKGNvbC5zY2FsZSksXG4gICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sLFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE51bWJlck1hc2tDb25maWcoY29sOiBCaWdudW1iZXJGaWVsZENvbmZpZyk6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NhbGU6IHRoaXMuZ2V0U2NhbGUoY29sLnNjYWxlKSxcbiAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2xcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJsZVJvd0RvdWJsZUNsaWNrKHJvd0RhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gW3Jvd0RhdGFdO1xuICAgICAgICB0aGlzLnNlbGVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEZvY3VzRmlsdGVyKCkge1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dWaXNpYmxlICYmICF0aGlzLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmRpYWxvZz8uY29udGVudFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudD8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07XG5cbiAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICAgIChpbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
534
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDOUssT0FBTyxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFp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eSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgTWFza0NvbmZpZyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgSG90a2V5LCBIb3RrZXlzU2VydmljZSB9IGZyb20gXCJhbmd1bGFyMi1ob3RrZXlzXCI7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gXCJiaWdudW1iZXIuanNcIjtcbmltcG9ydCB7IFNvcnRNZXRhIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGUgfSBmcm9tIFwicHJpbWVuZy9hdXRvY29tcGxldGVcIjtcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gXCJwcmltZW5nL2RpYWxvZ1wiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciB9IGZyb20gXCIuL21vZGVscy9kZWZhdWx0LWZpbHRlclwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uLy4uXCI7XG5pbXBvcnQgeyBCb29sZWFuT3B0aW9uc0xhYmVsIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ib29sZWFuLWZpZWxkXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgQ2FsZW5kYXJMb2NhbGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL2xvY2FsZS9vcHRpb25zL2NhbGVuZGFyXCI7XG5pbXBvcnQgeyBCaWdudW1iZXJGaWVsZENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvYmlnbnVtYmVyLWZpZWxkXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtbG9va3VwXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9sb29rdXAuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vbG9va3VwLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvb2t1cENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKFwiY29sbGFwc2VDb250ZW50XCIsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiaGlkZGVuXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMHB4XCIsXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcInZpc2libGVcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIipcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCJ2aXNpYmxlIDw9PiBoaWRkZW5cIiwgW2dyb3VwKFtxdWVyeShcIkBjaGlsZENvbGxhcHNlQ29udGVudFwiLCBhbmltYXRlQ2hpbGQoKSksIGFuaW1hdGUoXCJ7e3RyYW5zaXRpb25QYXJhbXN9fVwiKV0pXSksXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKFwiY2hpbGRDb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCI6bGVhdmVcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjplbnRlclwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCIqIDw9PiAqXCIsIGFuaW1hdGUoXCJ7e3RyYW5zaXRpb25QYXJhbXN9fVwiKSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIExvb2t1cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtbG9va3VwLSR7TG9va3VwQ29tcG9uZW50Lm5leHRJZCsrfWA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvY29tcGxldGVGb3JjZVNlbGVjdGlvbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRhdGFLZXk6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dTZWFyY2ggPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwU3VnZ2VzdGlvbnM6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwRGlzcGxheUZpZWxkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGRUb29sdGlwOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwRW1wdHlNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBBcHBlbmRUbyA9IFwiYm9keVwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoR3JpZERhdGE6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRmllbGRzOiBGb3JtRmllbGRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpU29ydE1ldGE6IFNvcnRNZXRhW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc29ydGFibGVDb2x1bW5zRGlzYWJsZWQ6IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9va3VwUm93UHJvcHM6IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVmYXVsdEZpbHRlcjogRGVmYXVsdEZpbHRlcltdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uTG9va3VwUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlYXJjaFJlcXVlc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25LZXlVcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uQ2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKFRhYmxlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChEaWFsb2csIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkaWFsb2c6IERpYWxvZztcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlclRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xlYXJMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdExhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXB0eUZpZWxkTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlY29yZExhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIHB1YmxpYyB2YWx1ZTogYW55O1xuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBhbmltYXRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XG4gICAgcHVibGljIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBmb3JtR3JvdXBEaWFsb2c6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgdHJhbnNpdGlvbk9wdGlvbnMgPSBcIjQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKVwiO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb247XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgb3JpZ2luYWxGb3JtVmFsdWVzID0ge307XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hHcmlkRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEZpZWxkcy5tYXAoaXRlbSA9PiBuZXcgRm9ybUZpZWxkKHsgLi4uaXRlbSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChcbiAgICAgICAgICAgICh2YWx1ZTogRm9ybUZpZWxkKSA9PiBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBzaXplOiB7IHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIsIHhsOiAxMiB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEdyaWRGaWVsZHMubWFwKChncmlkRmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgZ3JpZEZpZWxkW1wid2lkdGhcIl0gPSB0aGlzLmdldENvbFdpZHRoKGdyaWRGaWVsZC5sYWJlbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IG5ldyBDYWxlbmRhckxvY2FsZU9wdGlvbnMoeyAuLi5ncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zIH0pO1xuXG4gICAgICAgICAgICBpZiAoY2FsZW5kYXJPcHRpb25zPy5kYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChncmlkRmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5ob3VyRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zID0gY2FsZW5kYXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZ3JpZEZpZWxkO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLnNlYXJjaEZpZWxkcy5yZWR1Y2UoKHJlc3VsdDogYW55LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKGZpZWxkLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsRm9ybVZhbHVlc1tmaWVsZC5uYW1lXSA9IGZpZWxkLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZyA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwKTtcblxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9hZGluZyA9IHRydWUpKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25VbnNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25DbGVhci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgfHwgdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25Gb2N1cy5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25CbHVyLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWVbdGhpcy5sb29rdXBEaXNwbGF5RmllbGRdO1xuICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSB8fCAhY3VycmVudFZhbHVlIHx8IGN1cnJlbnRWYWx1ZSA9PSB2YWx1ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJpbnRSZWNvcmRUb3RhbGl6ZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoVG90YWxSZWNvcmRzTGFiZWwgPz8gdGhpcy5zZWFyY2hUb3RhbFJlY29yZHMgPT09IDFcbiAgICAgICAgICAgID8gdGhpcy5yZWNvcmRMYWJlbCA/PyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50b3RhbF9yZWNvcmRcIiwgeyBjb3VudDogdGhpcy5zZWFyY2hUb3RhbFJlY29yZHMgfSlcbiAgICAgICAgICAgIDogdGhpcy5yZWNvcmRzTGFiZWwgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudG90YWxfcmVjb3Jkc1wiLCB7IGNvdW50OiB0aGlzLnNlYXJjaFRvdGFsUmVjb3JkcyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KGhvdXJGb3JtYXQ6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJkZC9tbS95eVwiKSB7IC8vIHZhbG9yIHBhZHLDo28gcGFyYSBvIGZvcm1hdC5cbiAgICAgICAgICAgIHJldHVybiBcIkxUU1wiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdXJGb3JtYXQgPT09IFwiMTJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJIXFxiLywgXCJoXCIpICAgICAvLyBob3VyICgxMiBob3VyIHRpbWUpIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYkhIXFxiLywgXCJoaFwiKTsgIC8vIGhvdXIgKDEyIGhvdXIgdGltZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChob3VyRm9ybWF0ID09PSBcIjI0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiaFxcYi8sIFwiSFwiKSAgICAgLy8gaG91ciAoMjQgaG91ciB0aW1lKSAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJoaFxcYi8sIFwiSEhcIik7ICAvLyBob3VyICgyNCBob3VyIHRpbWUpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnZlcnRUb01vbWVudERhdGVGb3JtYXQoZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBBIG9yZGVtIGRvcyByZXBsYWNlcyDDqSBpbXBvcnRhbnRlLlxuICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiZFxcYi8sIFwiRFwiKSAgICAgIC8vIGRheSBvZiBtb250aCAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmRkXFxiLywgXCJERFwiKSAgICAvLyBkYXkgb2YgbW9udGhcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJvXFxiLywgXCJERERcIikgICAgLy8gZGF5IG9mIHRoZSB5ZWFyIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxib29cXGIvLCBcIkRERERcIikgIC8vIGRheSBvZiB0aGUgeWVhclxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYk1cXGIvLCBcIk1NTVwiKSAgICAvLyBtb250aCBuYW1lIHNob3J0XG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiTU1cXGIvLCBcIk1NTU1cIikgIC8vIG1vbnRoIG5hbWUgbG9uZ1xuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm1cXGIvLCBcIk1cIikgICAgICAvLyBtb250aCBvZiB5ZWFyIChubyBsZWFkaW5nKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm1tXFxiLywgXCJNTVwiKSAgICAvLyBtb250aCBvZiB5ZWFyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxieVxcYi8sIFwiWVlcIikgICAgIC8vIHllYXIgKHR3byBkaWdpdHMpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxieXlcXGIvLCBcIllZWVlcIik7IC8vIHllYXIgKGZvdXIgZGlnaXRzKVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLm9uT3ZlcmxheUFuaW1hdGlvbkRvbmUgPSAoZXZlbnQpID0+IHsgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dWaXNpYmxlICYmIGNoYW5nZXMuc2VhcmNoR3JpZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Rm9jdXNGaWx0ZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoR3JpZERhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExvb2t1cFN1Z2dlc3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb29rdXBTdWdnZXN0aW9ucztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbWFrZVNlYXJjaFJlcXVlc3RQYXJhbXMoZXZlbnQ6IGFueSkge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5mb3JtR3JvdXBEaWFsb2cuZ2V0UmF3VmFsdWUoKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi5ldmVudCwgZmlsdGVyRGF0YTogZmlsdGVycyB9O1xuICAgICAgICBjb25zdCB7IG11bHRpU29ydE1ldGEgfSA9IGV2ZW50O1xuICAgICAgICB0aGlzLm11bHRpU29ydE1ldGEgPSBtdWx0aVNvcnRNZXRhIHx8IHRoaXMubXVsdGlTb3J0TWV0YTtcblxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBsYXp5TG9hZEdyaWQoZXZlbnQ6IGFueSkge1xuICAgICAgICAvLyBBbyBkZWZpbmlyIHVtYSBvcmRlbmHDp8OjbyBuYSB0YWJlbGEgZG8gbG9va3VwIGVzc2UgbcOpdG9kbyDDqSBjaGFtYWRvIDIgdmV6ZXMgaHR0cHM6Ly9naXRodWIuY29tL3ByaW1lZmFjZXMvcHJpbWVuZy9pc3N1ZXMvNTQ4MFxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLm1ha2VTZWFyY2hSZXF1ZXN0UGFyYW1zKGV2ZW50KTtcbiAgICAgICAgdGhpcy5vblNlYXJjaFJlcXVlc3QubmV4dChwYXJhbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBsYXp5TG9hZExvb2t1cChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMub25Mb29rdXBSZXF1ZXN0Lm5leHQoZXZlbnQucXVlcnkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREZWZhdWx0RmlsdGVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRGaWx0ZXIpIHJldHVybjtcblxuICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHsgZmllbGQgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXBEaWFsb2cuY29udGFpbnMoZmllbGQpICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmZvcm1Hcm91cERpYWxvZy5nZXQoW2ZpZWxkXSkuZGlydHlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mb3JFYWNoKCh7IHZhbHVlLCBmaWVsZCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXBEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgLmdldChbZmllbGRdKVxuICAgICAgICAgICAgICAgICAgICAucGF0Y2hWYWx1ZSh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uID8gdmFsdWUoKSA6IHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RGlhbG9nKCkge1xuICAgICAgICB0aGlzLnNldERlZmF1bHRGaWx0ZXJzKCk7XG4gICAgICAgIHRoaXMuc2VhcmNoR3JpZERhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UucGF1c2UoWy4uLnRoaXMuaG90a2V5c1NlcnZpY2UuaG90a2V5c10pO1xuICAgICAgICB0aGlzLnNldEhvdGtleXMoKTtcblxuICAgICAgICBsZXQgc2VsZWN0ZWQ6IGFueSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IHNlbGVjdGVkLmNvbmNhdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGlkZURpYWxvZygpIHtcbiAgICAgICAgY29uc3QgeyBpbnB1dEVMLCBtdWx0aUlucHV0RUwgfSA9IHRoaXMuYXV0b2NvbXBsZXRlO1xuICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS51bnBhdXNlKFsuLi50aGlzLmhvdGtleXNTZXJ2aWNlLnBhdXNlZEhvdGtleXNdKTtcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkgbXVsdGlJbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgZWxzZSBpbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoKCkge1xuICAgICAgICB0aGlzLnJlc2V0VGFibGUoKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpYWxvZy5tb3ZlT25Ub3AoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwRGlhbG9nLnJlc2V0KHRoaXMub3JpZ2luYWxGb3JtVmFsdWVzKTtcbiAgICAgICAgdGhpcy5yZXNldFRhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0VGFibGUoKSB7XG4gICAgICAgIHRoaXMudGFibGUucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0KCkge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWQubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkICYmICh0aGlzLm11bHRpcGxlID8gdGhpcy5zZWxlY3RlZCA6IHRoaXMuc2VsZWN0ZWRbMF0pO1xuICAgICAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMub25TZWxlY3QubmV4dChzZWxlY3RlZCk7XG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZDogYW55KSB7XG4gICAgICAgIGlmICghc2VsZWN0ZWQpIHJldHVybjtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpKSB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIGVsc2UgdGhpcy5zZWxlY3RlZCA9IFtzZWxlY3RlZF07XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAodmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgZm4odmFsKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWVsZFZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0LCBwcm9wKSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGFiZWxGb3JWYWx1ZSh2YWx1ZTogYW55LCBvcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdKSB7XG4gICAgICAgIGlmICghb3B0aW9ucykgcmV0dXJuIHZhbHVlO1xuICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xuICAgICAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQm9vbGVhblZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEZpZWxkVmFsdWUob2JqLCBwYXRoKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCb29sZWFuTGFiZWwob2JqOiBhbnksIHBhdGg6IHN0cmluZywgb3B0aW9uc0xhYmVsOiBCb29sZWFuT3B0aW9uc0xhYmVsKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG9wdGlvbnNMYWJlbC50cnVlO1xuICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiBvcHRpb25zTGFiZWwuZmFsc2U7XG4gICAgICAgIGVsc2UgcmV0dXJuIHRoaXMuZW1wdHlGaWVsZExhYmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc051bWJlcihvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiAhKG5ldyBCaWdOdW1iZXIodGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCkpLmlzTmFOKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIb3RrZXlzKCkge1xuICAgICAgICBjb25zdCBjbGVhckhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2xcIiwgdGhpcy5jbGVhci5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3QgZmluZEhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2ZcIiwgdGhpcy5zZWFyY2guYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IGhpZGVIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtjXCIsIHRoaXMuaGlkZURpYWxvZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0SG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrc1wiLCB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpKTtcblxuICAgICAgICBjb25zdCBiaW5kZWRIb3RrZXlzID0gW2NsZWFySG90a2V5LCBmaW5kSG90a2V5LCBoaWRlSG90a2V5LCBzZWxlY3RIb3RrZXldO1xuICAgICAgICBiaW5kZWRIb3RrZXlzLmZvckVhY2goKGhvdGtleTogSG90a2V5KSA9PiB0aGlzLmhvdGtleXNTZXJ2aWNlLmFkZChob3RrZXkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5ld0hvdGtleShjb21ibzogc3RyaW5nLCBmbjogRnVuY3Rpb24pOiBIb3RrZXkge1xuICAgICAgICByZXR1cm4gbmV3IEhvdGtleShcbiAgICAgICAgICAgIGNvbWJvLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtcIklOUFVUXCIsIFwiU0VMRUNUXCIsIFwiVEVYVEFSRUFcIl1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsdGVyVG9nZ2xlKCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpbmcpIHJldHVybjtcblxuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZURvbmUoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSB0YWJsZSBjb2x1bW4gc2l6ZS4gVGhlIG1pbmltdW0gdmFsdWUgaXMgMTQuMjg2ZW0sIHdoaWNoIGlzIGVxdWFscyB0byAyMDBweCBkdW8gdG8gdGhlIGN1cnJlbnQgZm9udCBzaXplLlxuICAgICAqIEBwYXJhbSBsYWJlbCBDb2x1bW4gbmFtZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sV2lkdGgobGFiZWw6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzaXplID0gbGFiZWwubGVuZ3RoO1xuICAgICAgICBpZiAoc2l6ZSA8IDE0LjI4NikgcmV0dXJuIGAxNC4yODZlbWA7XG4gICAgICAgIHJldHVybiBgJHtzaXplfWVtYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2NhbGUoc2NhbGU6IGFueSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRnVuY3Rpb24oc2NhbGUpID8gc2NhbGUoKSA6IHNjYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbnRlZ2VyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogMCxcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RG91YmxlTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TW9uZXlNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpOiBNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjYWxlOiB0aGlzLmdldFNjYWxlKGNvbC5zY2FsZSksXG4gICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sLFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE51bWJlck1hc2tDb25maWcoY29sOiBCaWdudW1iZXJGaWVsZENvbmZpZyk6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NhbGU6IHRoaXMuZ2V0U2NhbGUoY29sLnNjYWxlKSxcbiAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2xcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJsZVJvd0RvdWJsZUNsaWNrKHJvd0RhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gW3Jvd0RhdGFdO1xuICAgICAgICB0aGlzLnNlbGVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEZvY3VzRmlsdGVyKCkge1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dWaXNpYmxlICYmICF0aGlzLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmRpYWxvZz8uY29udGVudFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudD8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07XG5cbiAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICAgIChpbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -91,7 +91,7 @@ var LookupComponent = /** @class */ (function () {
91
91
  };
92
92
  LookupComponent.prototype.printRecordTotalizer = function () {
93
93
  var _a, _b, _c;
94
- return ((_a = this.searchTotalRecordsLabel) !== null && _a !== void 0 ? _a : this.searchTotalRecords === 1) ? (_b = this.recordLabel) !== null && _b !== void 0 ? _b : this.translateService.instant("platform.angular_components.record", { count: this.searchTotalRecords }) : (_c = this.recordsLabel) !== null && _c !== void 0 ? _c : this.translateService.instant("platform.angular_components.records", { count: this.searchTotalRecords });
94
+ return ((_a = this.searchTotalRecordsLabel) !== null && _a !== void 0 ? _a : this.searchTotalRecords === 1) ? (_b = this.recordLabel) !== null && _b !== void 0 ? _b : this.translateService.instant("platform.angular_components.total_record", { count: this.searchTotalRecords }) : (_c = this.recordsLabel) !== null && _c !== void 0 ? _c : this.translateService.instant("platform.angular_components.total_records", { count: this.searchTotalRecords });
95
95
  };
96
96
  LookupComponent.prototype._convertToMomentHourFormat = function (hourFormat, format) {
97
97
  if (format === "dd/mm/yy") { // valor padrão para o format.
@@ -541,4 +541,4 @@ var LookupComponent = /** @class */ (function () {
541
541
  return LookupComponent;
542
542
  }());
543
543
  export { LookupComponent };
544
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdHLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLFNBQVMsRUFBRSxpQkFBaUIsR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUM5SyxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlD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SyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDO3FCQUNiLENBQUMsQ0FDTDtvQkFDRCxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2lCQUN6RCxDQUFDO2FBQ0w7O1NBQ0osQ0FBQztPQUNXLGVBQWUsQ0FnakIzQjtJQUFELHNCQUFDO0NBQUEsQUFoakJELElBZ2pCQztTQWhqQlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGVDaGlsZCwgZ3JvdXAsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBNYXNrQ29uZmlnIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9uZzItY3VycmVuY3ktbWFza1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBIb3RrZXksIEhvdGtleXNTZXJ2aWNlIH0gZnJvbSBcImFuZ3VsYXIyLWhvdGtleXNcIjtcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSBcImJpZ251bWJlci5qc1wiO1xuaW1wb3J0IHsgU29ydE1ldGEgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSB9IGZyb20gXCJwcmltZW5nL2F1dG9jb21wbGV0ZVwiO1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSBcInByaW1lbmcvZGlhbG9nXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBEZWZhdWx0RmlsdGVyIH0gZnJvbSBcIi4vbW9kZWxzL2RlZmF1bHQtZmlsdGVyXCI7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IEJvb2xlYW5PcHRpb25zTGFiZWwgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2Jvb2xlYW4tZmllbGRcIjtcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9ucy9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBDYWxlbmRhckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlL29wdGlvbnMvY2FsZW5kYXJcIjtcbmltcG9ydCB7IEJpZ251bWJlckZpZWxkQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9iaWdudW1iZXItZmllbGRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1sb29rdXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2xvb2t1cC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9sb29rdXAuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9va3VwQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJjb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZpc2libGUgPD0+IGhpZGRlblwiLCBbZ3JvdXAoW3F1ZXJ5KFwiQGNoaWxkQ29sbGFwc2VDb250ZW50XCIsIGFuaW1hdGVDaGlsZCgpKSwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpXSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJjaGlsZENvbGxhcHNlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjpsZWF2ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiOmVudGVyXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPD0+ICpcIiwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9va3VwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1sb29rdXAtJHtMb29rdXBDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZUZvcmNlU2VsZWN0aW9uID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YUtleTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1NlYXJjaCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uczogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cERpc3BsYXlGaWVsZFRvb2x0aXA6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBFbXB0eU1lc3NhZ2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cEFwcGVuZFRvID0gXCJib2R5XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRGF0YTogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUb3RhbFJlY29yZHM6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlYXJjaEZpZWxkczogRm9ybUZpZWxkW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlYXJjaEdyaWRGaWVsZHM6IEZvcm1GaWVsZFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXVsdGlTb3J0TWV0YTogU29ydE1ldGFbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzb3J0YWJsZUNvbHVtbnNEaXNhYmxlZDogc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBSb3dQcm9wczogc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0RmlsdGVyOiBEZWZhdWx0RmlsdGVyW107XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Mb29rdXBSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VhcmNoUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleVVwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uVW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25DbGVhciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoVGFibGUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBAVmlld0NoaWxkKERpYWxvZywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIGRpYWxvZzogRGlhbG9nO1xuXG4gICAgQFZpZXdDaGlsZChBdXRvQ29tcGxldGUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBhdXRvY29tcGxldGU6IEF1dG9Db21wbGV0ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlYXJjaFRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eVRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUb3RhbFJlY29yZHNMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyVGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlckxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjbGVhckxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5jZWxMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VsZWN0TGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVtcHR5RmllbGRMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3JkTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlY29yZHNMYWJlbDogc3RyaW5nO1xuXG4gICAgcHVibGljIHZhbHVlOiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIGFuaW1hdGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBjb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2VsZWN0ZWQ6IGFueVtdID0gW107XG4gICAgcHVibGljIGZvcm1Hcm91cERpYWxvZzogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyB0cmFuc2l0aW9uT3B0aW9ucyA9IFwiNDAwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpXCI7XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogRnVuY3Rpb247XG4gICAgcHJpdmF0ZSBvcmlnaW5hbEZvcm1WYWx1ZXMgPSB7fTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaG90a2V5c1NlcnZpY2U6IEhvdGtleXNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEdyaWRGaWVsZHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoR3JpZEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChpdGVtID0+IG5ldyBGb3JtRmllbGQoeyAuLi5pdGVtIH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoRmllbGRzID0gdGhpcy5zZWFyY2hGaWVsZHMubWFwKFxuICAgICAgICAgICAgKHZhbHVlOiBGb3JtRmllbGQpID0+IG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNpemU6IHsgc206IDEyLCBtZDogMTIsIGxnOiAxMiwgeGw6IDEyIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoR3JpZEZpZWxkcyA9IHRoaXMuc2VhcmNoR3JpZEZpZWxkcy5tYXAoKGdyaWRGaWVsZDogRm9ybUZpZWxkKSA9PiB7XG4gICAgICAgICAgICBncmlkRmllbGRbXCJ3aWR0aFwiXSA9IHRoaXMuZ2V0Q29sV2lkdGgoZ3JpZEZpZWxkLmxhYmVsKTtcblxuICAgICAgICAgICAgY29uc3QgY2FsZW5kYXJPcHRpb25zID0gbmV3IENhbGVuZGFyTG9jYWxlT3B0aW9ucyh7IC4uLmdyaWRGaWVsZC5jYWxlbmRhckxvY2FsZU9wdGlvbnMgfSk7XG5cbiAgICAgICAgICAgIGlmIChjYWxlbmRhck9wdGlvbnM/LmRhdGVGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGdyaWRGaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhck9wdGlvbnMuZGF0ZUZvcm1hdCA9IHRoaXMuX2NvbnZlcnRUb01vbWVudERhdGVGb3JtYXQoY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLlRpbWU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhck9wdGlvbnMuZGF0ZUZvcm1hdCA9IHRoaXMuX2NvbnZlcnRUb01vbWVudEhvdXJGb3JtYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmhvdXJGb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGdyaWRGaWVsZC5jYWxlbmRhckxvY2FsZU9wdGlvbnMgPSBjYWxlbmRhck9wdGlvbnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBncmlkRmllbGQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuc2VhcmNoRmllbGRzLnJlZHVjZSgocmVzdWx0OiBhbnksIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICByZXN1bHRbZmllbGQubmFtZV0gPSBuZXcgRm9ybUNvbnRyb2woZmllbGQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxGb3JtVmFsdWVzW2ZpZWxkLm5hbWVdID0gZmllbGQuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwRGlhbG9nID0gbmV3IEZvcm1Hcm91cChmb3JtR3JvdXApO1xuXG4gICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gdHJ1ZSkpO1xuICAgICAgICB0aGlzLm9uU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgdGhpcy5vblVuc2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgdGhpcy5vbkNsZWFyLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSB8fCB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkJsdXIucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZVt0aGlzLmxvb2t1cERpc3BsYXlGaWVsZF07XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpcGxlIHx8ICFjdXJyZW50VmFsdWUgfHwgY3VycmVudFZhbHVlID09IHZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmludFJlY29yZFRvdGFsaXplcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hUb3RhbFJlY29yZHNMYWJlbCA/PyB0aGlzLnNlYXJjaFRvdGFsUmVjb3JkcyA9PT0gMVxuICAgICAgICAgICAgPyB0aGlzLnJlY29yZExhYmVsID8/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnJlY29yZFwiLCB7IGNvdW50OiB0aGlzLnNlYXJjaFRvdGFsUmVjb3JkcyB9KVxuICAgICAgICAgICAgOiB0aGlzLnJlY29yZHNMYWJlbCA/PyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5yZWNvcmRzXCIsIHsgY291bnQ6IHRoaXMuc2VhcmNoVG90YWxSZWNvcmRzIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnZlcnRUb01vbWVudEhvdXJGb3JtYXQoaG91ckZvcm1hdDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImRkL21tL3l5XCIpIHsgLy8gdmFsb3IgcGFkcsOjbyBwYXJhIG8gZm9ybWF0LlxuICAgICAgICAgICAgcmV0dXJuIFwiTFRTXCI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG91ckZvcm1hdCA9PT0gXCIxMlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYkhcXGIvLCBcImhcIikgICAgIC8vIGhvdXIgKDEyIGhvdXIgdGltZSkgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiSEhcXGIvLCBcImhoXCIpOyAgLy8gaG91ciAoMTIgaG91ciB0aW1lKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdXJGb3JtYXQgPT09IFwiMjRcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJoXFxiLywgXCJIXCIpICAgICAvLyBob3VyICgyNCBob3VyIHRpbWUpIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmhoXFxiLywgXCJISFwiKTsgIC8vIGhvdXIgKDI0IGhvdXIgdGltZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIEEgb3JkZW0gZG9zIHJlcGxhY2VzIMOpIGltcG9ydGFudGUuXG4gICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJkXFxiLywgXCJEXCIpICAgICAgLy8gZGF5IG9mIG1vbnRoIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiZGRcXGIvLCBcIkREXCIpICAgIC8vIGRheSBvZiBtb250aFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm9cXGIvLCBcIkRERFwiKSAgICAvLyBkYXkgb2YgdGhlIHllYXIgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJvb1xcYi8sIFwiRERERFwiKSAgLy8gZGF5IG9mIHRoZSB5ZWFyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiTVxcYi8sIFwiTU1NXCIpICAgIC8vIG1vbnRoIG5hbWUgc2hvcnRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJNTVxcYi8sIFwiTU1NTVwiKSAgLy8gbW9udGggbmFtZSBsb25nXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibVxcYi8sIFwiTVwiKSAgICAgIC8vIG1vbnRoIG9mIHllYXIgKG5vIGxlYWRpbmcpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibW1cXGIvLCBcIk1NXCIpICAgIC8vIG1vbnRoIG9mIHllYXJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5XFxiLywgXCJZWVwiKSAgICAgLy8geWVhciAodHdvIGRpZ2l0cylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5eVxcYi8sIFwiWVlZWVwiKTsgLy8geWVhciAoZm91ciBkaWdpdHMpXG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGUub25PdmVybGF5QW5pbWF0aW9uRG9uZSA9IChldmVudCkgPT4geyB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1Zpc2libGUgJiYgY2hhbmdlcy5zZWFyY2hHcmlkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRGb2N1c0ZpbHRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdyaWREYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hHcmlkRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9va3VwU3VnZ2VzdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvb2t1cFN1Z2dlc3Rpb25zO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBtYWtlU2VhcmNoUmVxdWVzdFBhcmFtcyhldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZvcm1Hcm91cERpYWxvZy5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmV2ZW50LCBmaWx0ZXJEYXRhOiBmaWx0ZXJzIH07XG4gICAgICAgIGNvbnN0IHsgbXVsdGlTb3J0TWV0YSB9ID0gZXZlbnQ7XG4gICAgICAgIHRoaXMubXVsdGlTb3J0TWV0YSA9IG11bHRpU29ydE1ldGEgfHwgdGhpcy5tdWx0aVNvcnRNZXRhO1xuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIGxhenlMb2FkR3JpZChldmVudDogYW55KSB7XG4gICAgICAgIC8vIEFvIGRlZmluaXIgdW1hIG9yZGVuYcOnw6NvIG5hIHRhYmVsYSBkbyBsb29rdXAgZXNzZSBtw6l0b2RvIMOpIGNoYW1hZG8gMiB2ZXplcyBodHRwczovL2dpdGh1Yi5jb20vcHJpbWVmYWNlcy9wcmltZW5nL2lzc3Vlcy81NDgwXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMubWFrZVNlYXJjaFJlcXVlc3RQYXJhbXMoZXZlbnQpO1xuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5uZXh0KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGxhenlMb2FkTG9va3VwKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkxvb2t1cFJlcXVlc3QubmV4dChldmVudC5xdWVyeSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERlZmF1bHRGaWx0ZXJzKCkge1xuICAgICAgICBpZiAoIXRoaXMuZGVmYXVsdEZpbHRlcikgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclxuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoeyBmaWVsZCB9KSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZy5jb250YWlucyhmaWVsZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZm9ybUdyb3VwRGlhbG9nLmdldChbZmllbGRdKS5kaXJ0eVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKHsgdmFsdWUsIGZpZWxkIH0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAuZ2V0KFtmaWVsZF0pXG4gICAgICAgICAgICAgICAgICAgIC5wYXRjaFZhbHVlKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24gPyB2YWx1ZSgpIDogdmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdEZpbHRlcnMoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hHcmlkRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5ob3RrZXlzXSk7XG4gICAgICAgIHRoaXMuc2V0SG90a2V5cygpO1xuXG4gICAgICAgIGxldCBzZWxlY3RlZDogYW55ID0gW107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gc2VsZWN0ZWQuY29uY2F0KHRoaXMudmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gW3RoaXMudmFsdWVdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaWRlRGlhbG9nKCkge1xuICAgICAgICBjb25zdCB7IGlucHV0RUwsIG11bHRpSW5wdXRFTCB9ID0gdGhpcy5hdXRvY29tcGxldGU7XG4gICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhvdGtleXNTZXJ2aWNlLnVucGF1c2UoWy4uLnRoaXMuaG90a2V5c1NlcnZpY2UucGF1c2VkSG90a2V5c10pO1xuXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSBtdWx0aUlucHV0RUwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICBlbHNlIGlucHV0RUwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2goKSB7XG4gICAgICAgIHRoaXMucmVzZXRUYWJsZSgpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlhbG9nLm1vdmVPblRvcCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXBEaWFsb2cucmVzZXQodGhpcy5vcmlnaW5hbEZvcm1WYWx1ZXMpO1xuICAgICAgICB0aGlzLnJlc2V0VGFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzZXRUYWJsZSgpIHtcbiAgICAgICAgdGhpcy50YWJsZS5yZXNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3QoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZC5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQgJiYgKHRoaXMubXVsdGlwbGUgPyB0aGlzLnNlbGVjdGVkIDogdGhpcy5zZWxlY3RlZFswXSk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZDtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5uZXh0KHNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5oaWRlRGlhbG9nKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGVkOiBhbnkpIHtcbiAgICAgICAgaWYgKCFzZWxlY3RlZCkgcmV0dXJuO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RlZCkpIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgZWxzZSB0aGlzLnNlbGVjdGVkID0gW3NlbGVjdGVkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9ICh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbCk7XG4gICAgICAgICAgICBmbih2YWwpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpZWxkVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQsIHByb3ApID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCA/IFwiXCIgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMYWJlbEZvclZhbHVlKHZhbHVlOiBhbnksIG9wdGlvbnM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9W10pIHtcbiAgICAgICAgaWYgKCFvcHRpb25zKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZmluZChvcHQgPT4gb3B0LnZhbHVlID09PSB2YWx1ZSk7XG4gICAgICAgIHJldHVybiBvcHRpb24gPyBvcHRpb24ubGFiZWwgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNCb29sZWFuVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJvb2xlYW5MYWJlbChvYmo6IGFueSwgcGF0aDogc3RyaW5nLCBvcHRpb25zTGFiZWw6IEJvb2xlYW5PcHRpb25zTGFiZWwpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEZpZWxkVmFsdWUob2JqLCBwYXRoKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSByZXR1cm4gb3B0aW9uc0xhYmVsLnRydWU7XG4gICAgICAgIGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkgcmV0dXJuIG9wdGlvbnNMYWJlbC5mYWxzZTtcbiAgICAgICAgZWxzZSByZXR1cm4gdGhpcy5lbXB0eUZpZWxkTGFiZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTnVtYmVyKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuICEobmV3IEJpZ051bWJlcih0aGlzLmdldEZpZWxkVmFsdWUob2JqLCBwYXRoKSkuaXNOYU4oKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhvdGtleXMoKSB7XG4gICAgICAgIGNvbnN0IGNsZWFySG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrbFwiLCB0aGlzLmNsZWFyLmJpbmQodGhpcykpO1xuICAgICAgICBjb25zdCBmaW5kSG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrZlwiLCB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3QgaGlkZUhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2NcIiwgdGhpcy5oaWRlRGlhbG9nLmJpbmQodGhpcykpO1xuICAgICAgICBjb25zdCBzZWxlY3RIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtzXCIsIHRoaXMuc2VsZWN0LmJpbmQodGhpcykpO1xuXG4gICAgICAgIGNvbnN0IGJpbmRlZEhvdGtleXMgPSBbY2xlYXJIb3RrZXksIGZpbmRIb3RrZXksIGhpZGVIb3RrZXksIHNlbGVjdEhvdGtleV07XG4gICAgICAgIGJpbmRlZEhvdGtleXMuZm9yRWFjaCgoaG90a2V5OiBIb3RrZXkpID0+IHRoaXMuaG90a2V5c1NlcnZpY2UuYWRkKGhvdGtleSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbmV3SG90a2V5KGNvbWJvOiBzdHJpbmcsIGZuOiBGdW5jdGlvbik6IEhvdGtleSB7XG4gICAgICAgIHJldHVybiBuZXcgSG90a2V5KFxuICAgICAgICAgICAgY29tYm8sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1wiSU5QVVRcIiwgXCJTRUxFQ1RcIiwgXCJURVhUQVJFQVwiXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXJUb2dnbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVG9nZ2xlRG9uZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGUgdGhlIHRhYmxlIGNvbHVtbiBzaXplLiBUaGUgbWluaW11bSB2YWx1ZSBpcyAxNC4yODZlbSwgd2hpY2ggaXMgZXF1YWxzIHRvIDIwMHB4IGR1byB0byB0aGUgY3VycmVudCBmb250IHNpemUuXG4gICAgICogQHBhcmFtIGxhYmVsIENvbHVtbiBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2xXaWR0aChsYWJlbDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNpemUgPSBsYWJlbC5sZW5ndGg7XG4gICAgICAgIGlmIChzaXplIDwgMTQuMjg2KSByZXR1cm4gYDE0LjI4NmVtYDtcbiAgICAgICAgcmV0dXJuIGAke3NpemV9ZW1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTY2FsZShzY2FsZTogYW55KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGdW5jdGlvbihzY2FsZSkgPyBzY2FsZSgpIDogc2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldEludGVnZXJNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpOiBNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjYWxlOiAwLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREb3VibGVNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpOiBNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjYWxlOiB0aGlzLmdldFNjYWxlKGNvbC5zY2FsZSksXG4gICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNb25leU1hc2tDb25maWcoY29sOiBCaWdudW1iZXJGaWVsZENvbmZpZyk6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NhbGU6IHRoaXMuZ2V0U2NhbGUoY29sLnNjYWxlKSxcbiAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TnVtYmVyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlUm93RG91YmxlQ2xpY2socm93RGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBbcm93RGF0YV07XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Rm9jdXNGaWx0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1Zpc2libGUgJiYgIXRoaXMuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZGlhbG9nPy5jb250ZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50Py5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTtcblxuICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgKGlucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
544
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdHLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLFNBQVMsRUFBRSxpQkFBaUIsR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUM5SyxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlD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SyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDO3FCQUNiLENBQUMsQ0FDTDtvQkFDRCxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2lCQUN6RCxDQUFDO2FBQ0w7O1NBQ0osQ0FBQztPQUNXLGVBQWUsQ0FnakIzQjtJQUFELHNCQUFDO0NBQUEsQUFoakJELElBZ2pCQztTQWhqQlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGVDaGlsZCwgZ3JvdXAsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBNYXNrQ29uZmlnIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9uZzItY3VycmVuY3ktbWFza1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBIb3RrZXksIEhvdGtleXNTZXJ2aWNlIH0gZnJvbSBcImFuZ3VsYXIyLWhvdGtleXNcIjtcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSBcImJpZ251bWJlci5qc1wiO1xuaW1wb3J0IHsgU29ydE1ldGEgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSB9IGZyb20gXCJwcmltZW5nL2F1dG9jb21wbGV0ZVwiO1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSBcInByaW1lbmcvZGlhbG9nXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBEZWZhdWx0RmlsdGVyIH0gZnJvbSBcIi4vbW9kZWxzL2RlZmF1bHQtZmlsdGVyXCI7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IEJvb2xlYW5PcHRpb25zTGFiZWwgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2Jvb2xlYW4tZmllbGRcIjtcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9ucy9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBDYWxlbmRhckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlL29wdGlvbnMvY2FsZW5kYXJcIjtcbmltcG9ydCB7IEJpZ251bWJlckZpZWxkQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9iaWdudW1iZXItZmllbGRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1sb29rdXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2xvb2t1cC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9sb29rdXAuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9va3VwQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJjb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZpc2libGUgPD0+IGhpZGRlblwiLCBbZ3JvdXAoW3F1ZXJ5KFwiQGNoaWxkQ29sbGFwc2VDb250ZW50XCIsIGFuaW1hdGVDaGlsZCgpKSwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpXSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJjaGlsZENvbGxhcHNlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjpsZWF2ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiOmVudGVyXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPD0+ICpcIiwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9va3VwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1sb29rdXAtJHtMb29rdXBDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZUZvcmNlU2VsZWN0aW9uID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YUtleTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1NlYXJjaCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uczogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cERpc3BsYXlGaWVsZFRvb2x0aXA6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBFbXB0eU1lc3NhZ2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cEFwcGVuZFRvID0gXCJib2R5XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRGF0YTogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUb3RhbFJlY29yZHM6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlYXJjaEZpZWxkczogRm9ybUZpZWxkW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlYXJjaEdyaWRGaWVsZHM6IEZvcm1GaWVsZFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXVsdGlTb3J0TWV0YTogU29ydE1ldGFbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzb3J0YWJsZUNvbHVtbnNEaXNhYmxlZDogc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBSb3dQcm9wczogc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0RmlsdGVyOiBEZWZhdWx0RmlsdGVyW107XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Mb29rdXBSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VhcmNoUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleVVwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uVW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25DbGVhciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoVGFibGUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBAVmlld0NoaWxkKERpYWxvZywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIGRpYWxvZzogRGlhbG9nO1xuXG4gICAgQFZpZXdDaGlsZChBdXRvQ29tcGxldGUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBhdXRvY29tcGxldGU6IEF1dG9Db21wbGV0ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlYXJjaFRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eVRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUb3RhbFJlY29yZHNMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyVGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlckxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjbGVhckxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBMb29rdXAgY2FuIGRvIHRoaXMgZm9yIHlvdS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5jZWxMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VsZWN0TGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVtcHR5RmllbGRMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTG9va3VwIGNhbiBkbyB0aGlzIGZvciB5b3UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3JkTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIExvb2t1cCBjYW4gZG8gdGhpcyBmb3IgeW91LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlY29yZHNMYWJlbDogc3RyaW5nO1xuXG4gICAgcHVibGljIHZhbHVlOiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIGFuaW1hdGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBjb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2VsZWN0ZWQ6IGFueVtdID0gW107XG4gICAgcHVibGljIGZvcm1Hcm91cERpYWxvZzogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyB0cmFuc2l0aW9uT3B0aW9ucyA9IFwiNDAwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpXCI7XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogRnVuY3Rpb247XG4gICAgcHJpdmF0ZSBvcmlnaW5hbEZvcm1WYWx1ZXMgPSB7fTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaG90a2V5c1NlcnZpY2U6IEhvdGtleXNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEdyaWRGaWVsZHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoR3JpZEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChpdGVtID0+IG5ldyBGb3JtRmllbGQoeyAuLi5pdGVtIH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoRmllbGRzID0gdGhpcy5zZWFyY2hGaWVsZHMubWFwKFxuICAgICAgICAgICAgKHZhbHVlOiBGb3JtRmllbGQpID0+IG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNpemU6IHsgc206IDEyLCBtZDogMTIsIGxnOiAxMiwgeGw6IDEyIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoR3JpZEZpZWxkcyA9IHRoaXMuc2VhcmNoR3JpZEZpZWxkcy5tYXAoKGdyaWRGaWVsZDogRm9ybUZpZWxkKSA9PiB7XG4gICAgICAgICAgICBncmlkRmllbGRbXCJ3aWR0aFwiXSA9IHRoaXMuZ2V0Q29sV2lkdGgoZ3JpZEZpZWxkLmxhYmVsKTtcblxuICAgICAgICAgICAgY29uc3QgY2FsZW5kYXJPcHRpb25zID0gbmV3IENhbGVuZGFyTG9jYWxlT3B0aW9ucyh7IC4uLmdyaWRGaWVsZC5jYWxlbmRhckxvY2FsZU9wdGlvbnMgfSk7XG5cbiAgICAgICAgICAgIGlmIChjYWxlbmRhck9wdGlvbnM/LmRhdGVGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGdyaWRGaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhck9wdGlvbnMuZGF0ZUZvcm1hdCA9IHRoaXMuX2NvbnZlcnRUb01vbWVudERhdGVGb3JtYXQoY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLlRpbWU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhck9wdGlvbnMuZGF0ZUZvcm1hdCA9IHRoaXMuX2NvbnZlcnRUb01vbWVudEhvdXJGb3JtYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmhvdXJGb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGdyaWRGaWVsZC5jYWxlbmRhckxvY2FsZU9wdGlvbnMgPSBjYWxlbmRhck9wdGlvbnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBncmlkRmllbGQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuc2VhcmNoRmllbGRzLnJlZHVjZSgocmVzdWx0OiBhbnksIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICByZXN1bHRbZmllbGQubmFtZV0gPSBuZXcgRm9ybUNvbnRyb2woZmllbGQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxGb3JtVmFsdWVzW2ZpZWxkLm5hbWVdID0gZmllbGQuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwRGlhbG9nID0gbmV3IEZvcm1Hcm91cChmb3JtR3JvdXApO1xuXG4gICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gdHJ1ZSkpO1xuICAgICAgICB0aGlzLm9uU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgdGhpcy5vblVuc2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgdGhpcy5vbkNsZWFyLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSB8fCB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkJsdXIucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZVt0aGlzLmxvb2t1cERpc3BsYXlGaWVsZF07XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpcGxlIHx8ICFjdXJyZW50VmFsdWUgfHwgY3VycmVudFZhbHVlID09IHZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmludFJlY29yZFRvdGFsaXplcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hUb3RhbFJlY29yZHNMYWJlbCA/PyB0aGlzLnNlYXJjaFRvdGFsUmVjb3JkcyA9PT0gMVxuICAgICAgICAgICAgPyB0aGlzLnJlY29yZExhYmVsID8/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRvdGFsX3JlY29yZFwiLCB7IGNvdW50OiB0aGlzLnNlYXJjaFRvdGFsUmVjb3JkcyB9KVxuICAgICAgICAgICAgOiB0aGlzLnJlY29yZHNMYWJlbCA/PyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50b3RhbF9yZWNvcmRzXCIsIHsgY291bnQ6IHRoaXMuc2VhcmNoVG90YWxSZWNvcmRzIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnZlcnRUb01vbWVudEhvdXJGb3JtYXQoaG91ckZvcm1hdDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImRkL21tL3l5XCIpIHsgLy8gdmFsb3IgcGFkcsOjbyBwYXJhIG8gZm9ybWF0LlxuICAgICAgICAgICAgcmV0dXJuIFwiTFRTXCI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG91ckZvcm1hdCA9PT0gXCIxMlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYkhcXGIvLCBcImhcIikgICAgIC8vIGhvdXIgKDEyIGhvdXIgdGltZSkgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiSEhcXGIvLCBcImhoXCIpOyAgLy8gaG91ciAoMTIgaG91ciB0aW1lKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdXJGb3JtYXQgPT09IFwiMjRcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJoXFxiLywgXCJIXCIpICAgICAvLyBob3VyICgyNCBob3VyIHRpbWUpIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmhoXFxiLywgXCJISFwiKTsgIC8vIGhvdXIgKDI0IGhvdXIgdGltZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIEEgb3JkZW0gZG9zIHJlcGxhY2VzIMOpIGltcG9ydGFudGUuXG4gICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJkXFxiLywgXCJEXCIpICAgICAgLy8gZGF5IG9mIG1vbnRoIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiZGRcXGIvLCBcIkREXCIpICAgIC8vIGRheSBvZiBtb250aFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm9cXGIvLCBcIkRERFwiKSAgICAvLyBkYXkgb2YgdGhlIHllYXIgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJvb1xcYi8sIFwiRERERFwiKSAgLy8gZGF5IG9mIHRoZSB5ZWFyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiTVxcYi8sIFwiTU1NXCIpICAgIC8vIG1vbnRoIG5hbWUgc2hvcnRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJNTVxcYi8sIFwiTU1NTVwiKSAgLy8gbW9udGggbmFtZSBsb25nXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibVxcYi8sIFwiTVwiKSAgICAgIC8vIG1vbnRoIG9mIHllYXIgKG5vIGxlYWRpbmcpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibW1cXGIvLCBcIk1NXCIpICAgIC8vIG1vbnRoIG9mIHllYXJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5XFxiLywgXCJZWVwiKSAgICAgLy8geWVhciAodHdvIGRpZ2l0cylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5eVxcYi8sIFwiWVlZWVwiKTsgLy8geWVhciAoZm91ciBkaWdpdHMpXG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGUub25PdmVybGF5QW5pbWF0aW9uRG9uZSA9IChldmVudCkgPT4geyB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1Zpc2libGUgJiYgY2hhbmdlcy5zZWFyY2hHcmlkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRGb2N1c0ZpbHRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdyaWREYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hHcmlkRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9va3VwU3VnZ2VzdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvb2t1cFN1Z2dlc3Rpb25zO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBtYWtlU2VhcmNoUmVxdWVzdFBhcmFtcyhldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZvcm1Hcm91cERpYWxvZy5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmV2ZW50LCBmaWx0ZXJEYXRhOiBmaWx0ZXJzIH07XG4gICAgICAgIGNvbnN0IHsgbXVsdGlTb3J0TWV0YSB9ID0gZXZlbnQ7XG4gICAgICAgIHRoaXMubXVsdGlTb3J0TWV0YSA9IG11bHRpU29ydE1ldGEgfHwgdGhpcy5tdWx0aVNvcnRNZXRhO1xuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIGxhenlMb2FkR3JpZChldmVudDogYW55KSB7XG4gICAgICAgIC8vIEFvIGRlZmluaXIgdW1hIG9yZGVuYcOnw6NvIG5hIHRhYmVsYSBkbyBsb29rdXAgZXNzZSBtw6l0b2RvIMOpIGNoYW1hZG8gMiB2ZXplcyBodHRwczovL2dpdGh1Yi5jb20vcHJpbWVmYWNlcy9wcmltZW5nL2lzc3Vlcy81NDgwXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMubWFrZVNlYXJjaFJlcXVlc3RQYXJhbXMoZXZlbnQpO1xuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5uZXh0KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGxhenlMb2FkTG9va3VwKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkxvb2t1cFJlcXVlc3QubmV4dChldmVudC5xdWVyeSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERlZmF1bHRGaWx0ZXJzKCkge1xuICAgICAgICBpZiAoIXRoaXMuZGVmYXVsdEZpbHRlcikgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclxuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoeyBmaWVsZCB9KSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZy5jb250YWlucyhmaWVsZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZm9ybUdyb3VwRGlhbG9nLmdldChbZmllbGRdKS5kaXJ0eVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKHsgdmFsdWUsIGZpZWxkIH0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAuZ2V0KFtmaWVsZF0pXG4gICAgICAgICAgICAgICAgICAgIC5wYXRjaFZhbHVlKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24gPyB2YWx1ZSgpIDogdmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdEZpbHRlcnMoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hHcmlkRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5ob3RrZXlzXSk7XG4gICAgICAgIHRoaXMuc2V0SG90a2V5cygpO1xuXG4gICAgICAgIGxldCBzZWxlY3RlZDogYW55ID0gW107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gc2VsZWN0ZWQuY29uY2F0KHRoaXMudmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gW3RoaXMudmFsdWVdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaWRlRGlhbG9nKCkge1xuICAgICAgICBjb25zdCB7IGlucHV0RUwsIG11bHRpSW5wdXRFTCB9ID0gdGhpcy5hdXRvY29tcGxldGU7XG4gICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhvdGtleXNTZXJ2aWNlLnVucGF1c2UoWy4uLnRoaXMuaG90a2V5c1NlcnZpY2UucGF1c2VkSG90a2V5c10pO1xuXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSBtdWx0aUlucHV0RUwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICBlbHNlIGlucHV0RUwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2goKSB7XG4gICAgICAgIHRoaXMucmVzZXRUYWJsZSgpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlhbG9nLm1vdmVPblRvcCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXBEaWFsb2cucmVzZXQodGhpcy5vcmlnaW5hbEZvcm1WYWx1ZXMpO1xuICAgICAgICB0aGlzLnJlc2V0VGFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzZXRUYWJsZSgpIHtcbiAgICAgICAgdGhpcy50YWJsZS5yZXNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3QoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZC5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQgJiYgKHRoaXMubXVsdGlwbGUgPyB0aGlzLnNlbGVjdGVkIDogdGhpcy5zZWxlY3RlZFswXSk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZDtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5uZXh0KHNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5oaWRlRGlhbG9nKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGVkOiBhbnkpIHtcbiAgICAgICAgaWYgKCFzZWxlY3RlZCkgcmV0dXJuO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RlZCkpIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgZWxzZSB0aGlzLnNlbGVjdGVkID0gW3NlbGVjdGVkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9ICh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbCk7XG4gICAgICAgICAgICBmbih2YWwpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpZWxkVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQsIHByb3ApID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCA/IFwiXCIgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMYWJlbEZvclZhbHVlKHZhbHVlOiBhbnksIG9wdGlvbnM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9W10pIHtcbiAgICAgICAgaWYgKCFvcHRpb25zKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZmluZChvcHQgPT4gb3B0LnZhbHVlID09PSB2YWx1ZSk7XG4gICAgICAgIHJldHVybiBvcHRpb24gPyBvcHRpb24ubGFiZWwgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNCb29sZWFuVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJvb2xlYW5MYWJlbChvYmo6IGFueSwgcGF0aDogc3RyaW5nLCBvcHRpb25zTGFiZWw6IEJvb2xlYW5PcHRpb25zTGFiZWwpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEZpZWxkVmFsdWUob2JqLCBwYXRoKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSByZXR1cm4gb3B0aW9uc0xhYmVsLnRydWU7XG4gICAgICAgIGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkgcmV0dXJuIG9wdGlvbnNMYWJlbC5mYWxzZTtcbiAgICAgICAgZWxzZSByZXR1cm4gdGhpcy5lbXB0eUZpZWxkTGFiZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTnVtYmVyKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuICEobmV3IEJpZ051bWJlcih0aGlzLmdldEZpZWxkVmFsdWUob2JqLCBwYXRoKSkuaXNOYU4oKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhvdGtleXMoKSB7XG4gICAgICAgIGNvbnN0IGNsZWFySG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrbFwiLCB0aGlzLmNsZWFyLmJpbmQodGhpcykpO1xuICAgICAgICBjb25zdCBmaW5kSG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrZlwiLCB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3QgaGlkZUhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2NcIiwgdGhpcy5oaWRlRGlhbG9nLmJpbmQodGhpcykpO1xuICAgICAgICBjb25zdCBzZWxlY3RIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtzXCIsIHRoaXMuc2VsZWN0LmJpbmQodGhpcykpO1xuXG4gICAgICAgIGNvbnN0IGJpbmRlZEhvdGtleXMgPSBbY2xlYXJIb3RrZXksIGZpbmRIb3RrZXksIGhpZGVIb3RrZXksIHNlbGVjdEhvdGtleV07XG4gICAgICAgIGJpbmRlZEhvdGtleXMuZm9yRWFjaCgoaG90a2V5OiBIb3RrZXkpID0+IHRoaXMuaG90a2V5c1NlcnZpY2UuYWRkKGhvdGtleSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbmV3SG90a2V5KGNvbWJvOiBzdHJpbmcsIGZuOiBGdW5jdGlvbik6IEhvdGtleSB7XG4gICAgICAgIHJldHVybiBuZXcgSG90a2V5KFxuICAgICAgICAgICAgY29tYm8sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1wiSU5QVVRcIiwgXCJTRUxFQ1RcIiwgXCJURVhUQVJFQVwiXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXJUb2dnbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVG9nZ2xlRG9uZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGUgdGhlIHRhYmxlIGNvbHVtbiBzaXplLiBUaGUgbWluaW11bSB2YWx1ZSBpcyAxNC4yODZlbSwgd2hpY2ggaXMgZXF1YWxzIHRvIDIwMHB4IGR1byB0byB0aGUgY3VycmVudCBmb250IHNpemUuXG4gICAgICogQHBhcmFtIGxhYmVsIENvbHVtbiBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2xXaWR0aChsYWJlbDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNpemUgPSBsYWJlbC5sZW5ndGg7XG4gICAgICAgIGlmIChzaXplIDwgMTQuMjg2KSByZXR1cm4gYDE0LjI4NmVtYDtcbiAgICAgICAgcmV0dXJuIGAke3NpemV9ZW1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTY2FsZShzY2FsZTogYW55KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGdW5jdGlvbihzY2FsZSkgPyBzY2FsZSgpIDogc2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldEludGVnZXJNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpOiBNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjYWxlOiAwLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREb3VibGVNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpOiBNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjYWxlOiB0aGlzLmdldFNjYWxlKGNvbC5zY2FsZSksXG4gICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNb25leU1hc2tDb25maWcoY29sOiBCaWdudW1iZXJGaWVsZENvbmZpZyk6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NhbGU6IHRoaXMuZ2V0U2NhbGUoY29sLnNjYWxlKSxcbiAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TnVtYmVyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlUm93RG91YmxlQ2xpY2socm93RGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBbcm93RGF0YV07XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Rm9jdXNGaWx0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1Zpc2libGUgJiYgIXRoaXMuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZGlhbG9nPy5jb250ZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50Py5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTtcblxuICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgKGlucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -3219,7 +3219,7 @@ let LookupComponent = LookupComponent_1 = class LookupComponent {
3219
3219
  }
3220
3220
  printRecordTotalizer() {
3221
3221
  var _a, _b, _c;
3222
- return ((_a = this.searchTotalRecordsLabel) !== null && _a !== void 0 ? _a : this.searchTotalRecords === 1) ? (_b = this.recordLabel) !== null && _b !== void 0 ? _b : this.translateService.instant("platform.angular_components.record", { count: this.searchTotalRecords }) : (_c = this.recordsLabel) !== null && _c !== void 0 ? _c : this.translateService.instant("platform.angular_components.records", { count: this.searchTotalRecords });
3222
+ return ((_a = this.searchTotalRecordsLabel) !== null && _a !== void 0 ? _a : this.searchTotalRecords === 1) ? (_b = this.recordLabel) !== null && _b !== void 0 ? _b : this.translateService.instant("platform.angular_components.total_record", { count: this.searchTotalRecords }) : (_c = this.recordsLabel) !== null && _c !== void 0 ? _c : this.translateService.instant("platform.angular_components.total_records", { count: this.searchTotalRecords });
3223
3223
  }
3224
3224
  _convertToMomentHourFormat(hourFormat, format) {
3225
3225
  if (format === "dd/mm/yy") { // valor padrão para o format.