@experteam-mx/ngx-services 18.7.29 → 18.7.31

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.
@@ -379,6 +379,80 @@ export class ApiCatalogsService {
379
379
  return this.http.get(`${this.url}/shipment-statuses`, { params })
380
380
  .pipe(map(({ data }) => data));
381
381
  }
382
+ /**
383
+ * Fetches questions from the catalogs API.
384
+ *
385
+ * Sends an HTTP GET request to `${this.url}/questions` using the supplied query parameters
386
+ * and returns the unwrapped payload (`data`) from the API response.
387
+ *
388
+ * @param params - Query parameters to include in the request (e.g. paging, filters, sorting).
389
+ * @returns An Observable that emits the QuestionsOut payload (the `data` field from ApiSuccess<QuestionsOut>).
390
+ */
391
+ getQuestions(params) {
392
+ return this.http.get(`${this.url}/questions`, { params })
393
+ .pipe(map(({ data }) => data));
394
+ }
395
+ /**
396
+ * Retrieve a single question by its id.
397
+ *
398
+ * Sends an HTTP GET request to the questions endpoint and returns an Observable that emits
399
+ * the QuestionOut payload extracted from the API success envelope.
400
+ *
401
+ * @param id - The numeric identifier of the question to fetch.
402
+ * @returns An Observable that emits the requested QuestionOut. The Observable will error
403
+ * if the HTTP request fails (for example network issues or non-2xx responses).
404
+ */
405
+ getQuestion(id) {
406
+ return this.http.get(`${this.url}/questions/${id}`)
407
+ .pipe(map(({ data }) => data));
408
+ }
409
+ /**
410
+ * Sends a POST request to create a new question and returns the created resource.
411
+ *
412
+ * The request payload is sent as an object with a `body` property containing the provided
413
+ * QuestionIn value (i.e. { body: QuestionIn }). On success the HTTP response is expected
414
+ * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`
415
+ * object and emits it as a QuestionOut.
416
+ *
417
+ * @param body - The question payload to create (QuestionIn).
418
+ * @returns Observable<QuestionOut> that emits the created question on success.
419
+ */
420
+ postQuestion(body) {
421
+ return this.http.post(`${this.url}/questions`, { body })
422
+ .pipe(map(({ data }) => data));
423
+ }
424
+ /**
425
+ * Update a question by its ID.
426
+ *
427
+ * Sends an HTTP PUT to `${this.url}/questions/${id}` with the provided payload.
428
+ * The request body is sent as an object with a `body` property containing the
429
+ * `QuestionIn` data. The server response is expected to be an `ApiSuccess<QuestionOut>`
430
+ * and this method returns an Observable that emits the unwrapped `QuestionOut`.
431
+ *
432
+ * @param id - The identifier of the question to update.
433
+ * @param body - The update payload for the question.
434
+ * @returns An Observable that emits the updated `QuestionOut` on success.
435
+ */
436
+ putQuestion(id, body) {
437
+ return this.http.put(`${this.url}/questions/${id}`, { body })
438
+ .pipe(map(({ data }) => data));
439
+ }
440
+ /**
441
+ * Deletes a question by its ID.
442
+ *
443
+ * Sends an HTTP DELETE request to the backend endpoint `/questions/{id}` and
444
+ * returns an Observable that emits the API response's `data` payload (typically an empty object).
445
+ *
446
+ * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.
447
+ *
448
+ * @param id - The numeric identifier of the question to delete.
449
+ * @returns An Observable that emits the deleted resource payload ({} expected) on success.
450
+ * The Observable will emit an error if the HTTP request fails.
451
+ */
452
+ deleteQuestion(id) {
453
+ return this.http.delete(`${this.url}/questions/${id}`)
454
+ .pipe(map(({ data }) => data));
455
+ }
382
456
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
383
457
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, providedIn: 'root' });
384
458
  }
@@ -391,4 +465,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
391
465
  type: Inject,
392
466
  args: ['env']
393
467
  }] }, { type: i1.HttpClient }] });
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUF5Q3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUUsTUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUU7WUFDNUUsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUUsSUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUUsSUFBSSxDQUFDO2FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUUsRUFBVSxFQUFFLElBQW1CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTZCLEdBQUcsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNyRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUUsRUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLENBQUM7YUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBRSxFQUFVLEVBQUUsSUFBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFFLE1BQW1CO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM3RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUUsTUFBbUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBeUIsR0FBRyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUUsTUFBbUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBdUIsR0FBRyxJQUFJLENBQUMsR0FBRyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUN4RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBRSxNQUFtQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQyxHQUFHLElBQUksQ0FBQyxHQUFHLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDN0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsc0JBQXNCLENBQUUsTUFBbUI7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUMsR0FBRyxJQUFJLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3JHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLElBQTBCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO2FBQy9GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxxQkFBcUIsQ0FBRSxFQUFVLEVBQUUsSUFBMEI7UUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBb0MsR0FBRyxJQUFJLENBQUMsR0FBRyx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBRSxNQUFtQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QixHQUFHLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBRSxNQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBRSxNQUFtQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF1QixHQUFHLElBQUksQ0FBQyxHQUFHLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFFLE1BQW1CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMzRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsQ0FBRSxNQUFtQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzQyxHQUFHLElBQUksQ0FBQyxHQUFHLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDeEcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUUsTUFBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBK0IsR0FBRyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3pGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFFLElBQW9CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2FBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxlQUFlLENBQUUsRUFBVSxFQUFFLElBQW9CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUN4RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUUsRUFBVSxFQUFFLElBQTZCO1FBQ3pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUN4RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUUsSUFBZTtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLFdBQVcsRUFBRSxJQUFJLENBQUM7YUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBRSxFQUFVLEVBQUUsSUFBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUN0RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBRSxJQUEwQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFvQyxHQUFHLElBQUksQ0FBQyxHQUFHLHdCQUF3QixFQUFFLElBQUksQ0FBQzthQUNoRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUUsRUFBVSxFQUFFLElBQTBCO1FBQzNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNyRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUUsTUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBRSxJQUFtQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGdCQUFnQixFQUFFLElBQUksQ0FBQzthQUNqRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsY0FBYyxDQUFFLEVBQVUsRUFBRSxJQUFtQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGVBQWUsQ0FBRSxFQUFVLEVBQUUsSUFBNEI7UUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ3RGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFFLE1BQW1CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMzRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBRSxNQUFtQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFrQyxHQUFHLElBQUksQ0FBQyxHQUFHLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDL0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0ExWlUsa0JBQWtCLGtCQUVuQixLQUFLOzRHQUZKLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIENhbmNlbGxhdGlvblJlYXNvbkluLFxyXG4gIENhbmNlbGxhdGlvblJlYXNvbk91dCxcclxuICBDYW5jZWxsYXRpb25SZWFzb25zT3V0LFxyXG4gIENvdW50cmllc091dCxcclxuICBDb3VudHJ5SW4sXHJcbiAgQ291bnRyeU91dCxcclxuICBDdXJyZW5jaWVzT3V0LFxyXG4gIEV4dHJhQ2hhcmdlSW4sXHJcbiAgRXh0cmFDaGFyZ2VPdXQsXHJcbiAgRXh0cmFDaGFyZ2VzT3V0LFxyXG4gIEdlbmVyaWNGb2xpb0luLFxyXG4gIEdlbmVyaWNGb2xpb091dCxcclxuICBHZW5lcmljRm9saW9zT3V0LFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZXNPdXQsXHJcbiAgTGFuZ3VhZ2VzT3V0LFxyXG4gIE1hbmFnZW1lbnRBcmVhc091dCxcclxuICBPcGVyYXRpb25UeXBlc091dCxcclxuICBQb3N0YWxMb2NhdGlvbnNPdXQsXHJcbiAgUHJvZHVjdEluLFxyXG4gIFByb2R1Y3RPdXQsXHJcbiAgUmVnaW9uc091dCxcclxuICBTaGlwbWVudENvbnRlbnRUeXBlc091dCxcclxuICBTaGlwbWVudEdyb3Vwc091dCxcclxuICBTaGlwbWVudEluY29tZVR5cGVJbixcclxuICBTaGlwbWVudEluY29tZVR5cGVPdXQsXHJcbiAgU2hpcG1lbnRJbmNvbWVUeXBlc091dCxcclxuICBTaGlwbWVudFNjb3Blc091dCxcclxuICBTaGlwbWVudFN0YXR1c2VzT3V0LFxyXG4gIFVuaXF1ZUZvbGlvSW4sXHJcbiAgVW5pcXVlRm9saW9PdXQsXHJcbiAgVW5pcXVlRm9saW9zT3V0LFxyXG4gIFVuaXRzT3V0LFxyXG4gIFpvbmVzT3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlDYXRhbG9nc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgcmVwb3J0cyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHJlcG9ydHMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQ2F0YWxvZ3NVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBjb2xsZWN0aW9uIHBheW1lbnRzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBvcGVyYXRpb24gdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25UeXBlc091dFtdPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIG9wZXJhdGlvbiB0eXBlLlxyXG4gICAqL1xyXG4gIGdldE9wZXJhdGlvblR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25UeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25UeXBlc091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24tdHlwZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBpZGVudGlmaWNhdGlvcyB0eXBlc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmZXRjaCB0aGUgaWRlbnRpZmljYXRpb24gdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVzT3V0W10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgaWRlbnRpZmljYXRpb24gdHlwZS5cclxuICAgKi9cclxuICBnZXRJZGVudGlmaWNhdGlvblR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGV4dHJhIGNoYXJnZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHJlc3VsdHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBleHRyYSBjaGFyZ2VzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RXh0cmFDaGFyZ2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFeHRyYUNoYXJnZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VzT3V0Pj4oYCR7dGhpcy51cmx9L2V4dHJhY2hhcmdlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3VibWl0cyBhbiBleHRyYSBjaGFyZ2UgcmVxdWVzdCB0byB0aGUgc2VydmVyIGFuZCByZXR1cm5zIHRoZSBjcmVhdGVkIGV4dHJhIGNoYXJnZSBkZXRhaWxzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtFeHRyYUNoYXJnZUlufSBib2R5IC0gVGhlIGRhdGEgZm9yIHRoZSBleHRyYSBjaGFyZ2UgdG8gYmUgY3JlYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZXRhaWxzIG9mIHRoZSBjcmVhdGVkIGV4dHJhIGNoYXJnZS5cclxuICAgKi9cclxuICBwb3N0RXh0cmFDaGFyZ2UgKGJvZHk6IEV4dHJhQ2hhcmdlSW4pOiBPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxFeHRyYUNoYXJnZU91dD4+KGAke3RoaXMudXJsfS9leHRyYWNoYXJnZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXh0cmEgY2hhcmdlIGVudGl0eSB3aXRoIG5ldyBkYXRhIGFuZCByZXR1cm5zIHRoZSB1cGRhdGVkIGVudGl0eS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZXh0cmEgY2hhcmdlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0V4dHJhQ2hhcmdlSW59IGJvZHkgLSBUaGUgbmV3IGRhdGEgZm9yIHRoZSBleHRyYSBjaGFyZ2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgZXh0cmEgY2hhcmdlIGVudGl0eS5cclxuICAgKi9cclxuICBwdXRFeHRyYUNoYXJnZSAoaWQ6IG51bWJlciwgYm9keTogRXh0cmFDaGFyZ2VJbik6IE9ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VPdXQ+PihgJHt0aGlzLnVybH0vZXh0cmFjaGFyZ2VzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBjb3VudHJpZXMgZnJvbSB0aGUgQVBJLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgcGFzc2VkIHRvIHRoZSBBUEkgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cmllc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbGlzdCBvZiBjb3VudHJpZXMuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyaWVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJpZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyaWVzT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGEgY291bnRyeSBiYXNlZCBvbiBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNvdW50cnkgZGF0YS5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb3VudHJ5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyaWVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBkZXRhaWxzIG9mIGEgc3BlY2lmaWMgY291bnRyeSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvdW50cnkgdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge0NvdW50cnlJbn0gYm9keSAtIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgY291bnRyeSB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBjb3VudHJ5IGRhdGEuXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeSAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeUluKTogT2JzZXJ2YWJsZTxDb3VudHJ5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENvdW50cnlPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyaWVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHBvc3RhbCBsb2NhdGlvbiBkZXRhaWxzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIGFuZCBmZXRjaCBwb3N0YWwgbG9jYXRpb24gZGF0YS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBvc3RhbExvY2F0aW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcG9zdGFsIGxvY2F0aW9uIGRldGFpbHMuXHJcbiAgICovXHJcbiAgZ2V0UG9zdGFsTG9jYXRpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQb3N0YWxMb2NhdGlvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UG9zdGFsTG9jYXRpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3Bvc3RhbC1sb2NhdGlvbnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIHJlZ2lvbnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgcmVnaW9ucy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFJlZ2lvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgcmVnaW9ucy5cclxuICAgKi9cclxuICBnZXRSZWdpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxSZWdpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFJlZ2lvbnNPdXQ+PihgJHt0aGlzLnVybH0vcmVnaW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgem9uZXMgZGF0YSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSB6b25lcyBkYXRhLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Wm9uZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgem9uZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRab25lcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Wm9uZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Wm9uZXNPdXQ+PihgJHt0aGlzLnVybH0vem9uZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIG1hbmFnZW1lbnQgYXJlYXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIG1hbmFnZW1lbnQgYXJlYXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxNYW5hZ2VtZW50QXJlYXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIG1hbmFnZW1lbnQgYXJlYXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRNYW5hZ2VtZW50QXJlYXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE1hbmFnZW1lbnRBcmVhc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxNYW5hZ2VtZW50QXJlYXNPdXQ+PihgJHt0aGlzLnVybH0vbWFuYWdlbWVudC1hcmVhc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGNhbmNlbGxhdGlvbiByZWFzb25zIGZyb20gdGhlIHNlcnZlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbnMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSByZXRyaWV2ZWQgY2FuY2VsbGF0aW9uIHJlYXNvbnMuXHJcbiAgICovXHJcbiAgZ2V0Q2FuY2VsbGF0aW9uUmVhc29ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDYW5jZWxsYXRpb25SZWFzb25zT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q2FuY2VsbGF0aW9uUmVhc29uSW59IGJvZHkgLSBUaGUgY2FuY2VsbGF0aW9uIHJlYXNvbiBvYmplY3QgdG8gYmUgc2VudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgc2VydmVyJ3MgcmVzcG9uc2Ugd2l0aCB0aGUgcHJvY2Vzc2VkIGNhbmNlbGxhdGlvbiByZWFzb24uXHJcbiAgICovXHJcbiAgcG9zdENhbmNlbGxhdGlvblJlYXNvbiAoYm9keTogQ2FuY2VsbGF0aW9uUmVhc29uSW4pOiBPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIGZvciB0aGUgc3BlY2lmaWVkIElEIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7Q2FuY2VsbGF0aW9uUmVhc29uSW59IGJvZHkgLSBUaGUgZGV0YWlscyBvZiB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbiB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIGNhbmNlbGxhdGlvbiByZWFzb24uXHJcbiAgICovXHJcbiAgcHV0Q2FuY2VsbGF0aW9uUmVhc29uIChpZDogbnVtYmVyLCBib2R5OiBDYW5jZWxsYXRpb25SZWFzb25Jbik6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENhbmNlbGxhdGlvblJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29ucy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjdXJyZW5jaWVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gY3VzdG9taXplIHRoZSBjdXJyZW5jeSByZXRyaWV2YWwgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1cnJlbmNpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBjdXJyZW5jaWVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q3VycmVuY2llcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VycmVuY2llc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXJyZW5jaWVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1cnJlbmNpZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIHBhc3Mgd2l0aCB0aGUgSFRUUCByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TGFuZ3VhZ2VzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2VzLlxyXG4gICAqL1xyXG4gIGdldExhbmd1YWdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TGFuZ3VhZ2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExhbmd1YWdlc091dD4+KGAke3RoaXMudXJsfS9sYW5ndWFnZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGF2YWlsYWJsZSB1bml0cyBmcm9tIHRoZSBBUEkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHVuaXRzIGJlaW5nIGZldGNoZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbml0c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmV0cmlldmVkIHVuaXRzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0VW5pdHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFVuaXRzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFVuaXRzT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHNoaXBtZW50IHNjb3BlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgbW9kaWZ5IHRoZSByZXF1ZXN0IGZvciBzaGlwbWVudCBzY29wZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudFNjb3Blc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgc2NvcGVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRTY29wZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50U2NvcGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50U2NvcGVzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LXNjb3Blc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgYXZhaWxhYmxlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudENvbnRlbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgY29udGVudCB0eXBlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50Q29udGVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudENvbnRlbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudENvbnRlbnRUeXBlc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1jb250ZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBnZW5lcmljIGZvbGlvcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBnZW5lcmljIGZvbGlvcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb3NPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZldGNoZWQgZ2VuZXJpYyBmb2xpb3MuXHJcbiAgICovXHJcbiAgZ2V0R2VuZXJpY0ZvbGlvcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9zT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgb3IgdXBkYXRlIGEgZ2VuZXJpYyBmb2xpby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7R2VuZXJpY0ZvbGlvSW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSBnZW5lcmljIGZvbGlvIHRvIGJlIGNyZWF0ZWQgb3IgdXBkYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0aGUgY3JlYXRlZCBvciB1cGRhdGVkIGdlbmVyaWMgZm9saW8uXHJcbiAgICovXHJcbiAgcG9zdEdlbmVyaWNGb2xpbyAoYm9keTogR2VuZXJpY0ZvbGlvSW4pOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgZ2VuZXJpYyBmb2xpbyB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgdXNpbmcgdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdlbmVyaWMgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7R2VuZXJpY0ZvbGlvSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGdlbmVyaWMgZm9saW8gd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBnZW5lcmljIGZvbGlvLlxyXG4gICAqL1xyXG4gIHB1dEdlbmVyaWNGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogR2VuZXJpY0ZvbGlvSW4pOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3MvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIGEgR2VuZXJpYyBGb2xpbyByZXNvdXJjZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgYW5kIGJvZHkgZGF0YSwgYW5kIHJldHVybnMgdGhlIHVwZGF0ZWQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEdlbmVyaWMgRm9saW8gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8R2VuZXJpY0ZvbGlvSW4+fSBib2R5IC0gVGhlIHBhcnRpYWwgZGF0YSByZXByZXNlbnRpbmcgdGhlIGNoYW5nZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgR2VuZXJpYyBGb2xpby5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBHZW5lcmljIEZvbGlvIHJlc291cmNlLlxyXG4gICAqL1xyXG4gIHBhdGhHZW5lcmljRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IFBhcnRpYWw8R2VuZXJpY0ZvbGlvSW4+KTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgcHJvZHVjdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UHJvZHVjdElufSBib2R5IC0gVGhlIHByb2R1Y3QgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQcm9kdWN0T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3JlYXRlZCBwcm9kdWN0IGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdFByb2R1Y3QgKGJvZHk6IFByb2R1Y3RJbik6IE9ic2VydmFibGU8UHJvZHVjdE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UHJvZHVjdE91dD4+KGAke3RoaXMudXJsfS9wcm9kdWN0c2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBwcm9kdWN0IHdpdGggdGhlIGdpdmVuIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9kdWN0IHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1Byb2R1Y3RJbn0gYm9keSAtIFRoZSBwcm9kdWN0IGRhdGEgdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvZHVjdE91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBwcm9kdWN0IGRhdGEuXHJcbiAgICovXHJcbiAgcHV0UHJvZHVjdCAoaWQ6IG51bWJlciwgYm9keTogUHJvZHVjdEluKTogT2JzZXJ2YWJsZTxQcm9kdWN0T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFByb2R1Y3RPdXQ+PihgJHt0aGlzLnVybH0vcHJvZHVjdHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc2hpcG1lbnQgaW5jb21lIHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudEluY29tZVR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgc2hpcG1lbnQgaW5jb21lIHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NoaXBtZW50SW5jb21lVHlwZUlufSBib2R5IFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRldGFpbHMgb2YgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgc2hpcG1lbnQgaW5jb21lIHR5cGUgZGF0YS5cclxuICAgKi9cclxuICBwb3N0U2hpcG1lbnRJbmNvbWVUeXBlIChib2R5OiBTaGlwbWVudEluY29tZVR5cGVJbik6IE9ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7U2hpcG1lbnRJbmNvbWVUeXBlSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIHNoaXBtZW50IGluY29tZSB0eXBlLlxyXG4gICAqL1xyXG4gIHB1dFNoaXBtZW50SW5jb21lVHlwZSAoaWQ6IG51bWJlciwgYm9keTogU2hpcG1lbnRJbmNvbWVUeXBlSW4pOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHVuaXF1ZSBmb2xpb3MgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBhbmQgZmV0Y2ggdW5pcXVlIGZvbGlvcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW5pcXVlIGZvbGlvcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFVuaXF1ZUZvbGlvcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VW5pcXVlRm9saW9zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFVuaXF1ZUZvbGlvc091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSB1bmlxdWUgZm9saW8uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1VuaXF1ZUZvbGlvSW59IGJvZHkgLSBUaGUgZGF0YSBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGZvciB0aGUgdW5pcXVlIGZvbGlvIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCB1bmlxdWUgZm9saW8gZGV0YWlscy5cclxuICAgKi9cclxuICBwb3N0VW5pcXVlRm9saW8gKGJvZHk6IFVuaXF1ZUZvbGlvSW4pOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgdW5pcXVlIGZvbGlvIHdpdGggdGhlIGdpdmVuIGRhdGEgdXNpbmcgdGhlIHByb3ZpZGVkIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge1VuaXF1ZUZvbGlvSW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgdW5pcXVlIGZvbGlvLlxyXG4gICAqL1xyXG4gIHB1dFVuaXF1ZUZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBVbmlxdWVGb2xpb0luKTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgdW5pcXVlIGZvbGlvIGJ5IGl0cyBpZGVudGlmaWVyIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8VW5pcXVlRm9saW9Jbj59IGJvZHkgLSBUaGUgcGFydGlhbCBkYXRhIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIHVuaXF1ZSBmb2xpbyBkYXRhLlxyXG4gICAqL1xyXG4gIHBhdGhVbmlxdWVGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogUGFydGlhbDxVbmlxdWVGb2xpb0luPik6IE9ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHNoaXBtZW50IGdyb3VwcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGdyb3Vwcy5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IGdyb3VwcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50R3JvdXBzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudEdyb3Vwc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudEdyb3Vwc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1ncm91cHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgc2hpcG1lbnQgc3RhdHVzZXMgZnJvbSB0aGUgQVBJLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBtb2RpZnkgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBzdGF0dXNlcyBvdXRwdXQuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRTdGF0dXNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRTdGF0dXNlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudFN0YXR1c2VzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LXN0YXR1c2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
468
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUE0Q3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFB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SSxDQUFDLEdBQUcsQ0FBMEIsR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDbkYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsY0FBYyxDQUFFLEVBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDO2FBQ25FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBemVVLGtCQUFrQixrQkFFbkIsS0FBSzs0R0FGSixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBDYW5jZWxsYXRpb25SZWFzb25JbixcclxuICBDYW5jZWxsYXRpb25SZWFzb25PdXQsXHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uc091dCxcclxuICBDb3VudHJpZXNPdXQsXHJcbiAgQ291bnRyeUluLFxyXG4gIENvdW50cnlPdXQsXHJcbiAgQ3VycmVuY2llc091dCxcclxuICBFeHRyYUNoYXJnZUluLFxyXG4gIEV4dHJhQ2hhcmdlT3V0LFxyXG4gIEV4dHJhQ2hhcmdlc091dCxcclxuICBHZW5lcmljRm9saW9JbixcclxuICBHZW5lcmljRm9saW9PdXQsXHJcbiAgR2VuZXJpY0ZvbGlvc091dCxcclxuICBJZGVudGlmaWNhdGlvblR5cGVzT3V0LFxyXG4gIExhbmd1YWdlc091dCxcclxuICBNYW5hZ2VtZW50QXJlYXNPdXQsXHJcbiAgT3BlcmF0aW9uVHlwZXNPdXQsXHJcbiAgUG9zdGFsTG9jYXRpb25zT3V0LFxyXG4gIFByb2R1Y3RJbixcclxuICBQcm9kdWN0T3V0LFxyXG4gIFF1ZXN0aW9uSW4sXHJcbiAgUXVlc3Rpb25PdXQsXHJcbiAgUXVlc3Rpb25zT3V0LFxyXG4gIFJlZ2lvbnNPdXQsXHJcbiAgU2hpcG1lbnRDb250ZW50VHlwZXNPdXQsXHJcbiAgU2hpcG1lbnRHcm91cHNPdXQsXHJcbiAgU2hpcG1lbnRJbmNvbWVUeXBlSW4sXHJcbiAgU2hpcG1lbnRJbmNvbWVUeXBlT3V0LFxyXG4gIFNoaXBtZW50SW5jb21lVHlwZXNPdXQsXHJcbiAgU2hpcG1lbnRTY29wZXNPdXQsXHJcbiAgU2hpcG1lbnRTdGF0dXNlc091dCxcclxuICBVbmlxdWVGb2xpb0luLFxyXG4gIFVuaXF1ZUZvbGlvT3V0LFxyXG4gIFVuaXF1ZUZvbGlvc091dCxcclxuICBVbml0c091dCxcclxuICBab25lc091dFxyXG59IGZyb20gJy4vbW9kZWxzL2FwaS1jYXRhbG9nLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpQ2F0YWxvZ3NTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIHJlcG9ydHMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSByZXBvcnRzIEFQSS5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUNhdGFsb2dzVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgY29sbGVjdGlvbiBwYXltZW50c1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmZXRjaCB0aGUgb3BlcmF0aW9uIHR5cGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uVHlwZXNPdXRbXT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBvcGVyYXRpb24gdHlwZS5cclxuICAgKi9cclxuICBnZXRPcGVyYXRpb25UeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8T3BlcmF0aW9uVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uLXR5cGVzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgaWRlbnRpZmljYXRpb3MgdHlwZXNcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmV0Y2ggdGhlIGlkZW50aWZpY2F0aW9uIHR5cGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlc091dFtdPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIGlkZW50aWZpY2F0aW9uIHR5cGUuXHJcbiAgICovXHJcbiAgZ2V0SWRlbnRpZmljYXRpb25UeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBleHRyYSBjaGFyZ2VzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSByZXN1bHRzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0cmFDaGFyZ2VzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgZXh0cmEgY2hhcmdlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEV4dHJhQ2hhcmdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RXh0cmFDaGFyZ2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEV4dHJhQ2hhcmdlc091dD4+KGAke3RoaXMudXJsfS9leHRyYWNoYXJnZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1Ym1pdHMgYW4gZXh0cmEgY2hhcmdlIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCBleHRyYSBjaGFyZ2UgZGV0YWlscy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RXh0cmFDaGFyZ2VJbn0gYm9keSAtIFRoZSBkYXRhIGZvciB0aGUgZXh0cmEgY2hhcmdlIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGV0YWlscyBvZiB0aGUgY3JlYXRlZCBleHRyYSBjaGFyZ2UuXHJcbiAgICovXHJcbiAgcG9zdEV4dHJhQ2hhcmdlIChib2R5OiBFeHRyYUNoYXJnZUluKTogT2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VPdXQ+PihgJHt0aGlzLnVybH0vZXh0cmFjaGFyZ2VzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4dHJhIGNoYXJnZSBlbnRpdHkgd2l0aCBuZXcgZGF0YSBhbmQgcmV0dXJucyB0aGUgdXBkYXRlZCBlbnRpdHkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGV4dHJhIGNoYXJnZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtFeHRyYUNoYXJnZUlufSBib2R5IC0gVGhlIG5ldyBkYXRhIGZvciB0aGUgZXh0cmEgY2hhcmdlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIGV4dHJhIGNoYXJnZSBlbnRpdHkuXHJcbiAgICovXHJcbiAgcHV0RXh0cmFDaGFyZ2UgKGlkOiBudW1iZXIsIGJvZHk6IEV4dHJhQ2hhcmdlSW4pOiBPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEV4dHJhQ2hhcmdlT3V0Pj4oYCR7dGhpcy51cmx9L2V4dHJhY2hhcmdlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgY291bnRyaWVzIGZyb20gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIHBhc3NlZCB0byB0aGUgQVBJIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgY291bnRyaWVzLlxyXG4gICAqL1xyXG4gIGdldENvdW50cmllcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyaWVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cmllc091dD4+KGAke3RoaXMudXJsfS9jb3VudHJpZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhIGNvdW50cnkgYmFzZWQgb24gaXRzIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvdW50cnkgdG8gZmV0Y2guXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjb3VudHJ5IGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q291bnRyeU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5T3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgZGV0YWlscyBvZiBhIHNwZWNpZmljIGNvdW50cnkgYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3VudHJ5IHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5SW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGNvdW50cnkgd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgY291bnRyeSBkYXRhLlxyXG4gICAqL1xyXG4gIHB1dENvdW50cnkgKGlkOiBudW1iZXIsIGJvZHk6IENvdW50cnlJbik6IE9ic2VydmFibGU8Q291bnRyeU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDb3VudHJ5T3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBwb3N0YWwgbG9jYXRpb24gZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBhbmQgZmV0Y2ggcG9zdGFsIGxvY2F0aW9uIGRhdGEuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQb3N0YWxMb2NhdGlvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBvc3RhbCBsb2NhdGlvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIGdldFBvc3RhbExvY2F0aW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UG9zdGFsTG9jYXRpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBvc3RhbExvY2F0aW9uc091dD4+KGAke3RoaXMudXJsfS9wb3N0YWwtbG9jYXRpb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiByZWdpb25zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIHJlZ2lvbnMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxSZWdpb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIHJlZ2lvbnMuXHJcbiAgICovXHJcbiAgZ2V0UmVnaW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UmVnaW9uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxSZWdpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3JlZ2lvbnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIHpvbmVzIGRhdGEgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgem9uZXMgZGF0YS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFpvbmVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBmZXRjaGVkIHpvbmVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Wm9uZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFpvbmVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFpvbmVzT3V0Pj4oYCR7dGhpcy51cmx9L3pvbmVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBtYW5hZ2VtZW50IGFyZWFzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBtYW5hZ2VtZW50IGFyZWFzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TWFuYWdlbWVudEFyZWFzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBtYW5hZ2VtZW50IGFyZWFzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0TWFuYWdlbWVudEFyZWFzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxNYW5hZ2VtZW50QXJlYXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TWFuYWdlbWVudEFyZWFzT3V0Pj4oYCR7dGhpcy51cmx9L21hbmFnZW1lbnQtYXJlYXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBjYW5jZWxsYXRpb24gcmVhc29ucyBmcm9tIHRoZSBzZXJ2ZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIGNhbmNlbGxhdGlvbiByZWFzb25zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcmV0cmlldmVkIGNhbmNlbGxhdGlvbiByZWFzb25zLlxyXG4gICAqL1xyXG4gIGdldENhbmNlbGxhdGlvblJlYXNvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uc091dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBjYW5jZWxsYXRpb24gcmVhc29uIHRvIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NhbmNlbGxhdGlvblJlYXNvbklufSBib2R5IC0gVGhlIGNhbmNlbGxhdGlvbiByZWFzb24gb2JqZWN0IHRvIGJlIHNlbnQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHNlcnZlcidzIHJlc3BvbnNlIHdpdGggdGhlIHByb2Nlc3NlZCBjYW5jZWxsYXRpb24gcmVhc29uLlxyXG4gICAqL1xyXG4gIHBvc3RDYW5jZWxsYXRpb25SZWFzb24gKGJvZHk6IENhbmNlbGxhdGlvblJlYXNvbkluKTogT2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPENhbmNlbGxhdGlvblJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29uc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbiBmb3IgdGhlIHNwZWNpZmllZCBJRCB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0NhbmNlbGxhdGlvblJlYXNvbklufSBib2R5IC0gVGhlIGRldGFpbHMgb2YgdGhlIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBjYW5jZWxsYXRpb24gcmVhc29uLlxyXG4gICAqL1xyXG4gIHB1dENhbmNlbGxhdGlvblJlYXNvbiAoaWQ6IG51bWJlciwgYm9keTogQ2FuY2VsbGF0aW9uUmVhc29uSW4pOiBPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDYW5jZWxsYXRpb25SZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vY2FuY2VsbGF0aW9uLXJlYXNvbnMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgY3VycmVuY2llcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGN1c3RvbWl6ZSB0aGUgY3VycmVuY3kgcmV0cmlldmFsIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXJyZW5jaWVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXRyaWV2ZWQgY3VycmVuY2llcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEN1cnJlbmNpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1cnJlbmNpZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VycmVuY2llc091dD4+KGAke3RoaXMudXJsfS9jdXJyZW5jaWVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBwYXNzIHdpdGggdGhlIEhUVFAgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExhbmd1YWdlc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgYXZhaWxhYmxlIGxhbmd1YWdlcy5cclxuICAgKi9cclxuICBnZXRMYW5ndWFnZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPExhbmd1YWdlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMYW5ndWFnZXNPdXQ+PihgJHt0aGlzLnVybH0vbGFuZ3VhZ2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBhdmFpbGFibGUgdW5pdHMgZnJvbSB0aGUgQVBJIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSB1bml0cyBiZWluZyBmZXRjaGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pdHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCB1bml0cyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFVuaXRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxVbml0c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxVbml0c091dD4+KGAke3RoaXMudXJsfS91bml0c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBzaGlwbWVudCBzY29wZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIG1vZGlmeSB0aGUgcmVxdWVzdCBmb3Igc2hpcG1lbnQgc2NvcGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRTY29wZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IHNjb3BlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50U2NvcGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudFNjb3Blc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudFNjb3Blc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1zY29wZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGF2YWlsYWJsZSBzaGlwbWVudCBjb250ZW50IHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBjb250ZW50IHR5cGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudENvbnRlbnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtY29udGVudC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgZ2VuZXJpYyBmb2xpb3MgYmFzZWQgb24gdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgZ2VuZXJpYyBmb2xpb3MuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9zT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmZXRjaGVkIGdlbmVyaWMgZm9saW9zLlxyXG4gICAqL1xyXG4gIGdldEdlbmVyaWNGb2xpb3MgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb3NPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvc091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIG9yIHVwZGF0ZSBhIGdlbmVyaWMgZm9saW8uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0dlbmVyaWNGb2xpb0lufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGV0YWlscyBvZiB0aGUgZ2VuZXJpYyBmb2xpbyB0byBiZSBjcmVhdGVkIG9yIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdGhlIGNyZWF0ZWQgb3IgdXBkYXRlZCBnZW5lcmljIGZvbGlvLlxyXG4gICAqL1xyXG4gIHBvc3RHZW5lcmljRm9saW8gKGJvZHk6IEdlbmVyaWNGb2xpb0luKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEdlbmVyaWNGb2xpb091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhIGdlbmVyaWMgZm9saW8gd2l0aCB0aGUgc3BlY2lmaWVkIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBnZW5lcmljIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0dlbmVyaWNGb2xpb0lufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBnZW5lcmljIGZvbGlvIHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgZ2VuZXJpYyBmb2xpby5cclxuICAgKi9cclxuICBwdXRHZW5lcmljRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IEdlbmVyaWNGb2xpb0luKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBVVCByZXF1ZXN0IHRvIHVwZGF0ZSBhIEdlbmVyaWMgRm9saW8gcmVzb3VyY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIElEIGFuZCBib2R5IGRhdGEsIGFuZCByZXR1cm5zIHRoZSB1cGRhdGVkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBHZW5lcmljIEZvbGlvIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEdlbmVyaWNGb2xpb0luPn0gYm9keSAtIFRoZSBwYXJ0aWFsIGRhdGEgcmVwcmVzZW50aW5nIHRoZSBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIEdlbmVyaWMgRm9saW8uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgR2VuZXJpYyBGb2xpbyByZXNvdXJjZS5cclxuICAgKi9cclxuICBwYXRoR2VuZXJpY0ZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBQYXJ0aWFsPEdlbmVyaWNGb2xpb0luPik6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEdlbmVyaWNGb2xpb091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHByb2R1Y3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1Byb2R1Y3RJbn0gYm9keSAtIFRoZSBwcm9kdWN0IGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdCBib2R5LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvZHVjdE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNyZWF0ZWQgcHJvZHVjdCBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RQcm9kdWN0IChib2R5OiBQcm9kdWN0SW4pOiBPYnNlcnZhYmxlPFByb2R1Y3RPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFByb2R1Y3RPdXQ+PihgJHt0aGlzLnVybH0vcHJvZHVjdHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcHJvZHVjdCB3aXRoIHRoZSBnaXZlbiBJRCB1c2luZyB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcHJvZHVjdCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQcm9kdWN0SW59IGJvZHkgLSBUaGUgcHJvZHVjdCBkYXRhIHRvIHVwZGF0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByb2R1Y3RPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgcHJvZHVjdCBkYXRhLlxyXG4gICAqL1xyXG4gIHB1dFByb2R1Y3QgKGlkOiBudW1iZXIsIGJvZHk6IFByb2R1Y3RJbik6IE9ic2VydmFibGU8UHJvZHVjdE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQcm9kdWN0T3V0Pj4oYCR7dGhpcy51cmx9L3Byb2R1Y3RzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHNoaXBtZW50IGluY29tZSB0eXBlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRJbmNvbWVUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWluY29tZS10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHNoaXBtZW50IGluY29tZSB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtTaGlwbWVudEluY29tZVR5cGVJbn0gYm9keSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB0byBiZSBjcmVhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIHNoaXBtZW50IGluY29tZSB0eXBlIGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdFNoaXBtZW50SW5jb21lVHlwZSAoYm9keTogU2hpcG1lbnRJbmNvbWVUeXBlSW4pOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWluY29tZS10eXBlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgd2l0aCB0aGUgc3BlY2lmaWVkIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1NoaXBtZW50SW5jb21lVHlwZUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBzaGlwbWVudCBpbmNvbWUgdHlwZS5cclxuICAgKi9cclxuICBwdXRTaGlwbWVudEluY29tZVR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IFNoaXBtZW50SW5jb21lVHlwZUluKTogT2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWluY29tZS10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiB1bmlxdWUgZm9saW9zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgYW5kIGZldGNoIHVuaXF1ZSBmb2xpb3MuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb3NPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVuaXF1ZSBmb2xpb3MgZGF0YS5cclxuICAgKi9cclxuICBnZXRVbmlxdWVGb2xpb3MgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb3NPdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgdW5pcXVlIGZvbGlvLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtVbmlxdWVGb2xpb0lufSBib2R5IC0gVGhlIGRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBmb3IgdGhlIHVuaXF1ZSBmb2xpbyB0byBiZSBjcmVhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgdW5pcXVlIGZvbGlvIGRldGFpbHMuXHJcbiAgICovXHJcbiAgcG9zdFVuaXF1ZUZvbGlvIChib2R5OiBVbmlxdWVGb2xpb0luKTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhIHVuaXF1ZSBmb2xpbyB3aXRoIHRoZSBnaXZlbiBkYXRhIHVzaW5nIHRoZSBwcm92aWRlZCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtVbmlxdWVGb2xpb0lufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGV0YWlscyBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIHVuaXF1ZSBmb2xpby5cclxuICAgKi9cclxuICBwdXRVbmlxdWVGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogVW5pcXVlRm9saW9Jbik6IE9ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhIHVuaXF1ZSBmb2xpbyBieSBpdHMgaWRlbnRpZmllciB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXJ0aWFsPFVuaXF1ZUZvbGlvSW4+fSBib2R5IC0gVGhlIHBhcnRpYWwgZGF0YSBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCB1bmlxdWUgZm9saW8gZGF0YS5cclxuICAgKi9cclxuICBwYXRoVW5pcXVlRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IFBhcnRpYWw8VW5pcXVlRm9saW9Jbj4pOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFVuaXF1ZUZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXF1ZS1mb2xpb3MvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBzaGlwbWVudCBncm91cHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBncm91cHMuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBncm91cHMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudEdyb3VwcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRHcm91cHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRHcm91cHNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtZ3JvdXBzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHNoaXBtZW50IHN0YXR1c2VzIGZyb20gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgbW9kaWZ5IHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgc3RhdHVzZXMgb3V0cHV0LlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50U3RhdHVzZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50U3RhdHVzZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRTdGF0dXNlc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1zdGF0dXNlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBxdWVzdGlvbnMgZnJvbSB0aGUgY2F0YWxvZ3MgQVBJLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byBgJHt0aGlzLnVybH0vcXVlc3Rpb25zYCB1c2luZyB0aGUgc3VwcGxpZWQgcXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqIGFuZCByZXR1cm5zIHRoZSB1bndyYXBwZWQgcGF5bG9hZCAoYGRhdGFgKSBmcm9tIHRoZSBBUEkgcmVzcG9uc2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IChlLmcuIHBhZ2luZywgZmlsdGVycywgc29ydGluZykuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBRdWVzdGlvbnNPdXQgcGF5bG9hZCAodGhlIGBkYXRhYCBmaWVsZCBmcm9tIEFwaVN1Y2Nlc3M8UXVlc3Rpb25zT3V0PikuXHJcbiAgICovXHJcbiAgZ2V0UXVlc3Rpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxRdWVzdGlvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UXVlc3Rpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBzaW5nbGUgcXVlc3Rpb24gYnkgaXRzIGlkLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byB0aGUgcXVlc3Rpb25zIGVuZHBvaW50IGFuZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0c1xyXG4gICAqIHRoZSBRdWVzdGlvbk91dCBwYXlsb2FkIGV4dHJhY3RlZCBmcm9tIHRoZSBBUEkgc3VjY2VzcyBlbnZlbG9wZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIGZldGNoLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVxdWVzdGVkIFF1ZXN0aW9uT3V0LiBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVycm9yXHJcbiAgICogICAgICAgICAgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscyAoZm9yIGV4YW1wbGUgbmV0d29yayBpc3N1ZXMgb3Igbm9uLTJ4eCByZXNwb25zZXMpLlxyXG4gICAqL1xyXG4gIGdldFF1ZXN0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxRdWVzdGlvbk91dD4+KGAke3RoaXMudXJsfS9xdWVzdGlvbnMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBxdWVzdGlvbiBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIFRoZSByZXF1ZXN0IHBheWxvYWQgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBwcm92aWRlZFxyXG4gICAqIFF1ZXN0aW9uSW4gdmFsdWUgKGkuZS4geyBib2R5OiBRdWVzdGlvbkluIH0pLiBPbiBzdWNjZXNzIHRoZSBIVFRQIHJlc3BvbnNlIGlzIGV4cGVjdGVkXHJcbiAgICogdG8gZm9sbG93IHRoZSBBcGlTdWNjZXNzPFQ+IHNoYXBlOyB0aGUgb3BlcmF0b3IgbWFwcyB0aGF0IHJlc3BvbnNlIHRvIHRoZSBpbm5lciBgZGF0YWBcclxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgUXVlc3Rpb25PdXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBxdWVzdGlvbiBwYXlsb2FkIHRvIGNyZWF0ZSAoUXVlc3Rpb25JbikuXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4gdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCBxdWVzdGlvbiBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHBvc3RRdWVzdGlvbiAoYm9keTogUXVlc3Rpb25Jbik6IE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9uc2AsIHsgYm9keSB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBhIHF1ZXN0aW9uIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgUFVUIHRvIGAke3RoaXMudXJsfS9xdWVzdGlvbnMvJHtpZH1gIHdpdGggdGhlIHByb3ZpZGVkIHBheWxvYWQuXHJcbiAgICogVGhlIHJlcXVlc3QgYm9keSBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlXHJcbiAgICogYFF1ZXN0aW9uSW5gIGRhdGEuIFRoZSBzZXJ2ZXIgcmVzcG9uc2UgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYEFwaVN1Y2Nlc3M8UXVlc3Rpb25PdXQ+YFxyXG4gICAqIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW53cmFwcGVkIGBRdWVzdGlvbk91dGAuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgcXVlc3Rpb24gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHVwZGF0ZSBwYXlsb2FkIGZvciB0aGUgcXVlc3Rpb24uXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGBRdWVzdGlvbk91dGAgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwdXRRdWVzdGlvbiAoaWQ6IG51bWJlciwgYm9keTogUXVlc3Rpb25Jbik6IE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8UXVlc3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zLyR7aWR9YCwgeyBib2R5IH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhIHF1ZXN0aW9uIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQgZW5kcG9pbnQgYC9xdWVzdGlvbnMve2lkfWAgYW5kXHJcbiAgICogcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEFQSSByZXNwb25zZSdzIGBkYXRhYCBwYXlsb2FkICh0eXBpY2FsbHkgYW4gZW1wdHkgb2JqZWN0KS5cclxuICAgKlxyXG4gICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtYXBzIGFuIEFwaVN1Y2Nlc3Mgd3JhcHBlciB0byBpdHMgYGRhdGFgIHByb3BlcnR5IGJlZm9yZSBlbWl0dGluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIGRlbGV0ZS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRlbGV0ZWQgcmVzb3VyY2UgcGF5bG9hZCAoe30gZXhwZWN0ZWQpIG9uIHN1Y2Nlc3MuXHJcbiAgICogICAgICAgICAgVGhlIE9ic2VydmFibGUgd2lsbCBlbWl0IGFuIGVycm9yIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMuXHJcbiAgICovXHJcbiAgZGVsZXRlUXVlc3Rpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -346,6 +346,16 @@ export class ApiInvoicesService {
346
346
  return this.http.get(`${this.url}/operation/document/requests/${id}`)
347
347
  .pipe(map(({ data }) => data));
348
348
  }
349
+ /**
350
+ * Retrieves a list of documents based on the provided query parameters.
351
+ *
352
+ * @param params - The query parameters to filter and paginate the documents
353
+ * @returns An Observable that emits the documents data when the HTTP request completes
354
+ */
355
+ getDocuments(params) {
356
+ return this.http.get(`${this.url}/documents`, { params })
357
+ .pipe(map(({ data }) => data));
358
+ }
349
359
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiInvoicesService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
350
360
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiInvoicesService, providedIn: 'root' });
351
361
  }
@@ -358,4 +368,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
358
368
  type: Inject,
359
369
  args: ['env']
360
370
  }] }, { type: i1.HttpClient }] });
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52b2ljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUF3Q3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsSUFBeUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseUJBQXlCLENBQUUsRUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxHQUFHLElBQUksQ0FBQyxHQUFHLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQzthQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsMkJBQTJCLENBQUUsSUFBK0I7UUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBeUMsR0FBRyxJQUFJLENBQUMsR0FBRyw0QkFBNEIsRUFBRSxJQUFJLENBQUM7YUFDekcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILDJCQUEyQixDQUFFLElBQTRCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsNEJBQTRCLEVBQUUsSUFBSSxDQUFDO2FBQ2pGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsMEJBQTBCLENBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLEVBQTRCO1FBQzFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsNkJBQTZCLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNwSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBRSxNQUFtQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUErQixHQUFHLElBQUksQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDekYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsd0JBQXdCLENBQUUsTUFBbUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBdUMsR0FBRyxJQUFJLENBQUMsR0FBRyxrQ0FBa0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ2xILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBRSxNQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDZCQUE2QixDQUFFLE1BQW1DO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsOEJBQThCLEVBQUUsTUFBTSxDQUFDO2FBQy9HLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9DQUFvQyxDQUFFLE1BQW1DO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsc0NBQXNDLEVBQUUsTUFBTSxDQUFDO2FBQ3ZILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLFVBQWtCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsNkJBQTZCLFVBQVUsRUFBRSxDQUFDO2FBQzlHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUN0RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUUsRUFBVSxFQUFFLElBQTBCO1FBQzNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNyRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx3QkFBd0IsQ0FBRSxFQUFVO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO2FBQ2xHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLElBQTBCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsd0JBQXdCLEVBQUUsSUFBSSxDQUFDO2FBQ2hHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFFLEVBQVU7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBb0MsR0FBRyxJQUFJLENBQUMsR0FBRywwQkFBMEIsRUFBRSxFQUFFLENBQUM7YUFDL0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsMkJBQTJCLENBQUUsTUFBbUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMEMsR0FBRyxJQUFJLENBQUMsR0FBRyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ2pILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDJCQUEyQixDQUFFLElBQStCO1FBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsOEJBQThCLEVBQUUsSUFBSSxDQUFDO2FBQzNHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCwwQkFBMEIsQ0FBRSxFQUFVLEVBQUUsSUFBK0I7UUFDckUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBeUMsR0FBRyxJQUFJLENBQUMsR0FBRyxnQ0FBZ0MsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ2hILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBRSxNQUFtQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDdkYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNEJBQTRCLENBQUUsTUFBbUI7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkMsR0FBRyxJQUFJLENBQUMsR0FBRyxnQ0FBZ0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3BILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1DQUFtQyxDQUFFLElBQWdDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDO2FBQzlHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQ0FBa0MsQ0FBRSxFQUFVLEVBQUUsSUFBZ0M7UUFDOUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMEMsR0FBRyxJQUFJLENBQUMsR0FBRyxrQ0FBa0MsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ25ILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDJCQUEyQixDQUFFLE1BQW1CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsOEJBQThCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNqSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQ0FBa0MsQ0FBRSxJQUErQjtRQUNqRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF5QyxHQUFHLElBQUksQ0FBQyxHQUFHLDhCQUE4QixFQUFFLElBQUksQ0FBQzthQUMzRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUNBQWlDLENBQUUsRUFBVSxFQUFFLElBQStCO1FBQzVFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUUsTUFBbUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNEIsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNsRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLGVBQWUsRUFBRSxFQUFFLENBQUM7YUFDM0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFFLElBQWlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsYUFBYSxFQUFFLElBQUksQ0FBQzthQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxDQUFFLEVBQVUsRUFBRSxJQUFpQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLGVBQWUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ2pGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBRSxFQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsZUFBZSxFQUFFLEVBQUUsQ0FBQzthQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBRSxFQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxDQUFDO2FBQzVHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBdFhVLGtCQUFrQixrQkFFbkIsS0FBSzs0R0FGSixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7XHJcbiAgQ2FuY2VsUGF5bWVudFJlY2VpcHRJbixcclxuICBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEluLFxyXG4gIENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0LFxyXG4gIENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dCxcclxuICBDb3VudHJ5UGF5bWVudFR5cGVJbixcclxuICBDb3VudHJ5UGF5bWVudFR5cGVPdXQsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlc091dCxcclxuICBDdXN0b21lckRvY3VtZW50VHlwZXNPdXQsXHJcbiAgQ3VzdG9tZXJzT3V0LFxyXG4gIEN1c3RvbWVyVHlwZXNPdXQsXHJcbiAgT3BlcmF0aW9uQWNjb3VudFBheW1lbnRJbixcclxuICBPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dCxcclxuICBPcGVyYXRpb25DYW5jZWxCaWxsaW5nSW4sXHJcbiAgT3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dCxcclxuICBPcGVyYXRpb25Eb2N1bWVudEluLFxyXG4gIE9wZXJhdGlvbkRvY3VtZW50T3V0LFxyXG4gIE9wZXJhdGlvbkRvY3VtZW50UmVxdWVzdHNPdXQsXHJcbiAgT3BlcmF0aW9uUHJpbnREb2N1bWVudE91dCxcclxuICBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW4sXHJcbiAgT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dCxcclxuICBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluLFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dCxcclxuICBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbixcclxuICBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQsXHJcbiAgUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dCxcclxuICBQYXltZW50VHlwZXNPdXQsXHJcbiAgUHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dCxcclxuICBUb2xlcmFuY2VJbixcclxuICBUb2xlcmFuY2VPdXQsXHJcbiAgVG9sZXJhbmNlc091dCxcclxufSBmcm9tICcuL21vZGVscy9hcGktaW52b2ljZXMudHlwZXMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaUludm9pY2VzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBBUEkgVVJMIGZvciBpbnZvaWNlcyBmcm9tIHRoZSBlbnZpcm9ubWVudHMgY29uZmlndXJhdGlvbi5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIEFQSSBVUkwgZm9yIGludm9pY2VzLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpSW52b2ljZXNVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGFuIG9wZXJhdGlvbiBkb2N1bWVudCB0byB0aGUgc2VydmVyIGFuZCBwcm9jZXNzZXMgdGhlIHJlc3BvbnNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25Eb2N1bWVudElufSBib2R5IC0gVGhlIGlucHV0IGRhdGEgZm9yIHRoZSBvcGVyYXRpb24gZG9jdW1lbnQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25Eb2N1bWVudE91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcHJvY2Vzc2VkIG9wZXJhdGlvbiBkb2N1bWVudCBvdXRwdXQuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkRvY3VtZW50IChib2R5OiBPcGVyYXRpb25Eb2N1bWVudEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25Eb2N1bWVudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uRG9jdW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2RvY3VtZW50YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFuZCByZXR1cm5zIHRoZSBjb2xsZWN0aW9uIHJlY2VpcHQgZGF0YSBmb3IgYSBnaXZlbiBjb2xsZWN0aW9uIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIGZvciB3aGljaCB0aGUgcmVjZWlwdCBuZWVkcyB0byBiZSByZXRyaWV2ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQcmludENvbGxlY3Rpb25SZWNlaXB0T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uIHJlY2VpcHQgZGF0YS5cclxuICAgKi9cclxuICBnZXRQcmludENvbGxlY3Rpb25SZWNlaXB0IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQcmludENvbGxlY3Rpb25SZWNlaXB0T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL3ByaW50L2NvbGxlY3Rpb24tcmVjZWlwdC8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgYWNjb3VudCBwYXltZW50IG9wZXJhdGlvbiBieSBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXHJcbiAgICogUHJvY2Vzc2VzIHRoZSByZXNwb25zZSBhbmQgcmV0dXJucyB0aGUgb3BlcmF0aW9uIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvbkFjY291bnRQYXltZW50SW59IGJvZHkgVGhlIHBheWxvYWQgY29udGFpbmluZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGFjY291bnQgcGF5bWVudCBvcGVyYXRpb24uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHByb2Nlc3NlZCBhY2NvdW50IHBheW1lbnQgb3BlcmF0aW9uIGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkFjY291bnRQYXltZW50IChib2R5OiBPcGVyYXRpb25BY2NvdW50UGF5bWVudEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2FjY291bnQtcGF5bWVudGAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VscyBhIHBheW1lbnQgcmVjZWlwdCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgaW5wdXQuXHJcbiAgICogVGhpcyBtZXRob2Qgc2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY2FuY2VsIGEgZG9jdW1lbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSBUaGUgZGF0YSByZXF1aXJlZCB0byBjYW5jZWwgdGhlIHBheW1lbnQgcmVjZWlwdCwgZW5jYXBzdWxhdGVkIGluIGEgQ2FuY2VsUGF5bWVudFJlY2VpcHRJbiBvYmplY3QuXHJcbiAgICogQHJldHVybiBBbiBPYnNlcnZhYmxlIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IG9mIHRoZSBjYW5jZWxsYXRpb24uIEVtaXRzIGFuIGVtcHR5IG9iamVjdCBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHBvc3RPcGVyYXRpb25DYW5jZWxEb2N1bWVudCAoYm9keTogQ2FuY2VsUGF5bWVudFJlY2VpcHRJbik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9jYW5jZWwtZG9jdW1lbnRgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNhbmNlbCBiaWxsaW5nIGZvciBhIHNwZWNpZmljIG9wZXJhdGlvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNhbmNlbGxhdGlvbiByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMuaW52b2ljZUlkIC0gVGhlIElEIG9mIHRoZSBpbnZvaWNlIHRvIGJlIGNhbmNlbGVkLlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMuYm9keSAtIEFkZGl0aW9uYWwgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25DYW5jZWxCaWxsaW5nT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzdWx0IG9mIHRoZSBjYW5jZWxsYXRpb24gb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RPcGVyYXRpb25DYW5jZWxCaWxsaW5nICh7IGludm9pY2VJZCwgLi4uYm9keSB9OiBPcGVyYXRpb25DYW5jZWxCaWxsaW5nSW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2NhbmNlbC1iaWxsaW5nLyR7aW52b2ljZUlkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgY3VzdG9tZXIgdHlwZXMgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGN1c3RvbWVyIHR5cGVzIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqL1xyXG4gIGdldEN1c3RvbWVyVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1c3RvbWVyVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJUeXBlc091dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGRvY3VtZW50IHR5cGVzIHNwZWNpZmljIHRvIGEgZ2l2ZW4gY291bnRyeS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGNvbnRhaW5pbmcgY291bnRyeS1zcGVjaWZpYyBpbmZvcm1hdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyRG9jdW1lbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGRvY3VtZW50IHR5cGVzIGF2YWlsYWJsZSBmb3IgdGhlIHNwZWNpZmllZCBjb3VudHJ5LlxyXG4gICAqL1xyXG4gIGdldEN1c3RvbWVyRG9jdW1lbnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyRG9jdW1lbnRUeXBlc091dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1jb3VudHJ5LWRvY3VtZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGN1c3RvbWVyIGludm9pY2UgZGV0YWlscyBmaWx0ZXJlZCBieSBhIGN1c3RvbSBpbnZvaWNlIHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0ludm9pY2VUeXBlQ3VzdG9tUGFyYW1zSW59IHBhcmFtcyAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmaWx0ZXIgcGFyYW1ldGVycyBmb3IgdGhlIGN1c3RvbSBpbnZvaWNlIHR5cGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lcnNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgY3VzdG9tZXIgaW52b2ljZSBkZXRhaWxzIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS5cclxuICAgKi9cclxuICBnZXRDdXN0b21lcnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1c3RvbWVyc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lcnNPdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXJzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgb3IgdXBkYXRlIGFuIGV4dGVybmFsIHNoaXBtZW50IG9wZXJhdGlvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbElufSBwYXJhbXMgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyBmb3IgdGhlIGV4dGVybmFsIHNoaXBtZW50IG9wZXJhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsIChwYXJhbXM6IE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vc2hpcG1lbnQvZXh0ZXJuYWxgLCBwYXJhbXMpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvY2Vzc2VzIGFuIGV4dGVybmFsIHBheW1lbnQgb3BlcmF0aW9uIGZvciBhIHNoaXBtZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW59IHBhcmFtcyAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciB0aGUgZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGV4dGVybmFsIHBheW1lbnQgb3BlcmF0aW9uIGZvciBhIHNoaXBtZW50LlxyXG4gICAqL1xyXG4gIHBvc3RPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsUGF5bWVudCAocGFyYW1zOiBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL3NoaXBtZW50L2V4dGVybmFsL3BheW1lbnRgLCBwYXJhbXMpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGJpbGxpbmcgb3BlcmF0aW9uIHByaW50IGRldGFpbHMgZm9yIGEgZ2l2ZW4gZG9jdW1lbnQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gZG9jdW1lbnRJZCAtIFRoZSBJRCBvZiB0aGUgZG9jdW1lbnQgZm9yIHdoaWNoIHRvIGZldGNoIHRoZSBwcmludCBiaWxsaW5nIG9wZXJhdGlvbiBkZXRhaWxzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uUHJpbnREb2N1bWVudE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHByaW50IGJpbGxpbmcgb3BlcmF0aW9uIGRldGFpbHMgZm9yIHRoZSBzcGVjaWZpZWQgZG9jdW1lbnQuXHJcbiAgICovXHJcbiAgZ2V0T3BlcmF0aW9uUHJpbnREb2N1bWVudCAoZG9jdW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25QcmludERvY3VtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL3ByaW50L2RvY3VtZW50LyR7ZG9jdW1lbnRJZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYWxsIGNvdW50cnkgcGF5bWVudCB0eXBlcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeVBheW1lbnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBjb3VudHJ5IHBheW1lbnQgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeVBheW1lbnRUeXBlSW59IGJvZHkgLSBUaGUgdXBkYXRlZCBkYXRhIGZvciB0aGUgY291bnRyeSBwYXltZW50IHR5cGUuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeVBheW1lbnRUeXBlIChpZDogbnVtYmVyLCBib2R5OiBDb3VudHJ5UGF5bWVudFR5cGVJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyBjb3VudHJ5IHBheW1lbnQgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGVDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgY291bnRyeSBwYXltZW50IHR5cGUgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUlufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGNyZWF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdENvdW50cnlQYXltZW50VHlwZSAoYm9keTogQ291bnRyeVBheW1lbnRUeXBlSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGEgY291bnRyeSBwYXltZW50IHR5cGUgZm9yIGEgZ2l2ZW4gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2Ygc2hvdyBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeVBheW1lbnRUeXBlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGRzIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnlQYXltZW50VHlwZUZpZWxkcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZS1maWVsZHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeVBheW1lbnRUeXBlRmllbGRJbn0gYm9keSAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciBjcmVhdGUgYSBuZXcgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGNyZWF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdENvdW50cnlQYXltZW50VHlwZUZpZWxkIChib2R5OiBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEluKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGUtZmllbGRzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVGaWVsZElufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeVBheW1lbnRUeXBlRmllbGQgKGlkOiBudW1iZXIsIGJvZHk6IENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlLWZpZWxkcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0UGF5bWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYWxsIHBheW1lbnQgdHlwZSBmaWVsZHMgY2FyZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBwYXltZW50IHR5cGUgZmllbGRzIGNhcmQgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1jYXJkLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgcGF5bWVudCB0eXBlIGZpZWxkIGNhcmQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1BheW1lbnRUeXBlRmllbGRDYXJkVHlwZUlufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgY2FyZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGNyZWF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdENvdW50cnlQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGUgKGJvZHk6IFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZUluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtY2FyZC10eXBlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBwYXltZW50IHR5cGUgZmllbGQgY2FyZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgcGF5bWVudCB0eXBlIGZpZWxkIGNhcmQgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW59IGJvZHkgLSBUaGUgdXBkYXRlZCBkYXRhIGZvciB0aGUgcGF5bWVudCB0eXBlIGZpZWxkIGNhcmQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeVBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSAoaWQ6IG51bWJlciwgYm9keTogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW4pOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWNhcmQtdHlwZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYWxsIHBheW1lbnQgdHlwZSBmaWVsZHMgYWNjb3VudHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBwYXltZW50IHR5cGUgZmllbGRzIGFjY291bnRzIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqL1xyXG4gIGdldFBheW1lbnRUeXBlRmllbGRBY2NvdW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtYWNjb3VudHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZEFjY291bnRJbn0gYm9keSAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciBjcmVhdGUgYSBuZXcgcGF5bWVudCB0eXBlIGZpZWxkIGFjY291bnQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGNyZWF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdENvdW50cnlQYXltZW50VHlwZUZpZWxkQWNjb3VudCAoYm9keTogUGF5bWVudFR5cGVGaWVsZEFjY291bnRJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1hY2NvdW50c2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgcGF5bWVudCB0eXBlIGZpZWxkIGFjY291bnQgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZEFjY291bnRJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSB1cGRhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHB1dENvdW50cnlQYXltZW50VHlwZUZpZWxkQWNjb3VudCAoaWQ6IG51bWJlciwgYm9keTogUGF5bWVudFR5cGVGaWVsZEFjY291bnRJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWFjY291bnRzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRvbGVyYW5jZSBkYXRhIGZyb20gdGhlIHNlcnZlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHRvIHVzZSBmb3IgcXVlcnlpbmcgdG9sZXJhbmNlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB0b2xlcmFuY2UgZGF0YS5cclxuICAgKi9cclxuICBnZXRUb2xlcmFuY2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxUb2xlcmFuY2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFRvbGVyYW5jZXNPdXQ+PihgJHt0aGlzLnVybH0vdG9sZXJhbmNlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSB0b2xlcmFuY2UgZGV0YWlsIGZvciBhIGdpdmVuIGlkZW50aWZpZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB0b2xlcmFuY2UgdG8gcmV0cmlldmUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHRvbGVyYW5jZSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFRvbGVyYW5jZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8VG9sZXJhbmNlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFRvbGVyYW5jZU91dD4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gdXBkYXRlIG9yIGNyZWF0ZSBhIHRvbGVyYW5jZSByZWNvcmQgdXNpbmcgdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1RvbGVyYW5jZUlufSBib2R5IC0gVGhlIHRvbGVyYW5jZSBpbnB1dCBvYmplY3QgY29udGFpbmluZyB0aGUgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9sZXJhbmNlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIG9yIGNyZWF0ZWQgdG9sZXJhbmNlIG91dHB1dCBvYmplY3QuXHJcbiAgICovXHJcbiAgcG9zdFRvbGVyYW5jZSAoYm9keTogVG9sZXJhbmNlSW4pOiBPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlT3V0Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHRvbGVyYW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgdXNpbmcgdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRvbGVyYW5jZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtUb2xlcmFuY2VJbn0gYm9keSAtIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgdG9sZXJhbmNlIHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgdG9sZXJhbmNlIGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIHB1dFRvbGVyYW5jZSAoaWQ6IG51bWJlciwgYm9keTogVG9sZXJhbmNlSW4pOiBPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxUb2xlcmFuY2VPdXQ+PihgJHt0aGlzLnVybH0vdG9sZXJhbmNlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyB0aGUgdG9sZXJhbmNlIGVudHJ5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0b2xlcmFuY2UgdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHt9Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgZGVsZXRlVG9sZXJhbmNlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGRvY3VtZW50IHJlcXVlc3RzIGFzc29jaWF0ZWQgd2l0aCBhIGRvY3VtZW50IElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZG9jdW1lbnQuXHJcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkb2N1bWVudCByZXF1ZXN0cyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldE9wZXJhdGlvbkRvY3VtZW50UmVxdWVzdHMgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50UmVxdWVzdHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uRG9jdW1lbnRSZXF1ZXN0c091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vZG9jdW1lbnQvcmVxdWVzdHMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
371
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52b2ljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUF5Q3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsSUFBeUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseUJBQXlCLENBQUUsRUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxHQUFHLElBQUksQ0FBQyxHQUFHLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQzthQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFD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LEVBQUUsQ0FBQzthQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBRSxFQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxDQUFDO2FBQzVHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBRSxNQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBallVLGtCQUFrQixrQkFFbkIsS0FBSzs0R0FGSixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7XHJcbiAgQ2FuY2VsUGF5bWVudFJlY2VpcHRJbixcclxuICBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEluLFxyXG4gIENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0LFxyXG4gIENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dCxcclxuICBDb3VudHJ5UGF5bWVudFR5cGVJbixcclxuICBDb3VudHJ5UGF5bWVudFR5cGVPdXQsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlc091dCxcclxuICBDdXN0b21lckRvY3VtZW50VHlwZXNPdXQsXHJcbiAgQ3VzdG9tZXJzT3V0LFxyXG4gIEN1c3RvbWVyVHlwZXNPdXQsXHJcbiAgR2V0RG9jdW1lbnRzT3V0LFxyXG4gIE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4sXHJcbiAgT3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQsXHJcbiAgT3BlcmF0aW9uQ2FuY2VsQmlsbGluZ0luLFxyXG4gIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQsXHJcbiAgT3BlcmF0aW9uRG9jdW1lbnRJbixcclxuICBPcGVyYXRpb25Eb2N1bWVudE91dCxcclxuICBPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0LFxyXG4gIE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQsXHJcbiAgT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluLFxyXG4gIE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQsXHJcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRJbixcclxuICBQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dCxcclxuICBQYXltZW50VHlwZUZpZWxkQWNjb3VudHNPdXQsXHJcbiAgUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW4sXHJcbiAgUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQsXHJcbiAgUGF5bWVudFR5cGVzT3V0LFxyXG4gIFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQsXHJcbiAgVG9sZXJhbmNlSW4sXHJcbiAgVG9sZXJhbmNlT3V0LFxyXG4gIFRvbGVyYW5jZXNPdXQsXHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWludm9pY2VzLnR5cGVzJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlJbnZvaWNlc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgQVBJIFVSTCBmb3IgaW52b2ljZXMgZnJvbSB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBBUEkgVVJMIGZvciBpbnZvaWNlcy5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUludm9pY2VzVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhbiBvcGVyYXRpb24gZG9jdW1lbnQgdG8gdGhlIHNlcnZlciBhbmQgcHJvY2Vzc2VzIHRoZSByZXNwb25zZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uRG9jdW1lbnRJbn0gYm9keSAtIFRoZSBpbnB1dCBkYXRhIGZvciB0aGUgb3BlcmF0aW9uIGRvY3VtZW50LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uRG9jdW1lbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHByb2Nlc3NlZCBvcGVyYXRpb24gZG9jdW1lbnQgb3V0cHV0LlxyXG4gICAqL1xyXG4gIHBvc3RPcGVyYXRpb25Eb2N1bWVudCAoYm9keTogT3BlcmF0aW9uRG9jdW1lbnRJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uRG9jdW1lbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE9wZXJhdGlvbkRvY3VtZW50T3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9kb2N1bWVudGAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbmQgcmV0dXJucyB0aGUgY29sbGVjdGlvbiByZWNlaXB0IGRhdGEgZm9yIGEgZ2l2ZW4gY29sbGVjdGlvbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiBmb3Igd2hpY2ggdGhlIHJlY2VpcHQgbmVlZHMgdG8gYmUgcmV0cmlldmVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgY29sbGVjdGlvbiByZWNlaXB0IGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0UHJpbnRDb2xsZWN0aW9uUmVjZWlwdCAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQcmludENvbGxlY3Rpb25SZWNlaXB0T3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9wcmludC9jb2xsZWN0aW9uLXJlY2VpcHQvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIGFjY291bnQgcGF5bWVudCBvcGVyYXRpb24gYnkgc2VuZGluZyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxyXG4gICAqIFByb2Nlc3NlcyB0aGUgcmVzcG9uc2UgYW5kIHJldHVybnMgdGhlIG9wZXJhdGlvbiBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25BY2NvdW50UGF5bWVudElufSBib2R5IFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSBhY2NvdW50IHBheW1lbnQgb3BlcmF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBwcm9jZXNzZWQgYWNjb3VudCBwYXltZW50IG9wZXJhdGlvbiBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RPcGVyYXRpb25BY2NvdW50UGF5bWVudCAoYm9keTogT3BlcmF0aW9uQWNjb3VudFBheW1lbnRJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9hY2NvdW50LXBheW1lbnRgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbHMgYSBwYXltZW50IHJlY2VpcHQgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGlucHV0LlxyXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNhbmNlbCBhIGRvY3VtZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGJvZHkgVGhlIGRhdGEgcmVxdWlyZWQgdG8gY2FuY2VsIHRoZSBwYXltZW50IHJlY2VpcHQsIGVuY2Fwc3VsYXRlZCBpbiBhIENhbmNlbFBheW1lbnRSZWNlaXB0SW4gb2JqZWN0LlxyXG4gICAqIEByZXR1cm4gQW4gT2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBvZiB0aGUgY2FuY2VsbGF0aW9uLiBFbWl0cyBhbiBlbXB0eSBvYmplY3Qgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uQ2FuY2VsRG9jdW1lbnQgKGJvZHk6IENhbmNlbFBheW1lbnRSZWNlaXB0SW4pOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vY2FuY2VsLWRvY3VtZW50YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjYW5jZWwgYmlsbGluZyBmb3IgYSBzcGVjaWZpYyBvcGVyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjYW5jZWxsYXRpb24gcmVxdWVzdC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmludm9pY2VJZCAtIFRoZSBJRCBvZiB0aGUgaW52b2ljZSB0byBiZSBjYW5jZWxlZC5cclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zLmJvZHkgLSBBZGRpdGlvbmFsIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdCBib2R5LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3VsdCBvZiB0aGUgY2FuY2VsbGF0aW9uIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uQ2FuY2VsQmlsbGluZyAoeyBpbnZvaWNlSWQsIC4uLmJvZHkgfTogT3BlcmF0aW9uQ2FuY2VsQmlsbGluZ0luKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25DYW5jZWxCaWxsaW5nT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25DYW5jZWxCaWxsaW5nT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9jYW5jZWwtYmlsbGluZy8ke2ludm9pY2VJZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGN1c3RvbWVyIHR5cGVzIGZyb20gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyVHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjdXN0b21lciB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRDdXN0b21lclR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXN0b21lclR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXItdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBkb2N1bWVudCB0eXBlcyBzcGVjaWZpYyB0byBhIGdpdmVuIGNvdW50cnkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyBjb250YWluaW5nIGNvdW50cnktc3BlY2lmaWMgaW5mb3JtYXRpb24uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lckRvY3VtZW50VHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBkb2N1bWVudCB0eXBlcyBhdmFpbGFibGUgZm9yIHRoZSBzcGVjaWZpZWQgY291bnRyeS5cclxuICAgKi9cclxuICBnZXRDdXN0b21lckRvY3VtZW50VHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1c3RvbWVyRG9jdW1lbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lckRvY3VtZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXItY291bnRyeS1kb2N1bWVudC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBjdXN0b21lciBpbnZvaWNlIGRldGFpbHMgZmlsdGVyZWQgYnkgYSBjdXN0b20gaW52b2ljZSB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtJbnZvaWNlVHlwZUN1c3RvbVBhcmFtc0lufSBwYXJhbXMgLSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZmlsdGVyIHBhcmFtZXRlcnMgZm9yIHRoZSBjdXN0b20gaW52b2ljZSB0eXBlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIGN1c3RvbWVyIGludm9pY2UgZGV0YWlscyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXN0b21lcnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIG9yIHVwZGF0ZSBhbiBleHRlcm5hbCBzaGlwbWVudCBvcGVyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbn0gcGFyYW1zIC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgZm9yIHRoZSBleHRlcm5hbCBzaGlwbWVudCBvcGVyYXRpb24uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGV4dGVybmFsIHNoaXBtZW50IG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbCAocGFyYW1zOiBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL3NoaXBtZW50L2V4dGVybmFsYCwgcGFyYW1zKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb2Nlc3NlcyBhbiBleHRlcm5hbCBwYXltZW50IG9wZXJhdGlvbiBmb3IgYSBzaGlwbWVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbElufSBwYXJhbXMgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgdGhlIGV4dGVybmFsIHBheW1lbnQgb3BlcmF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBleHRlcm5hbCBwYXltZW50IG9wZXJhdGlvbiBmb3IgYSBzaGlwbWVudC5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbFBheW1lbnQgKHBhcmFtczogT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9zaGlwbWVudC9leHRlcm5hbC9wYXltZW50YCwgcGFyYW1zKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBiaWxsaW5nIG9wZXJhdGlvbiBwcmludCBkZXRhaWxzIGZvciBhIGdpdmVuIGRvY3VtZW50IElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRvY3VtZW50SWQgLSBUaGUgSUQgb2YgdGhlIGRvY3VtZW50IGZvciB3aGljaCB0byBmZXRjaCB0aGUgcHJpbnQgYmlsbGluZyBvcGVyYXRpb24gZGV0YWlscy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBwcmludCBiaWxsaW5nIG9wZXJhdGlvbiBkZXRhaWxzIGZvciB0aGUgc3BlY2lmaWVkIGRvY3VtZW50LlxyXG4gICAqL1xyXG4gIGdldE9wZXJhdGlvblByaW50RG9jdW1lbnQgKGRvY3VtZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8T3BlcmF0aW9uUHJpbnREb2N1bWVudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25QcmludERvY3VtZW50T3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9wcmludC9kb2N1bWVudC8ke2RvY3VtZW50SWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBjb3VudHJ5IHBheW1lbnQgdHlwZXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY291bnRyeSBwYXltZW50IHR5cGVzIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnlQYXltZW50VHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlc091dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUlufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSB1cGRhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHB1dENvdW50cnlQYXltZW50VHlwZSAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeVBheW1lbnRUeXBlSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIHRvIGJlIGRlbGV0ZWQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgZGVsZXRlQ291bnRyeVBheW1lbnRUeXBlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVJbn0gYm9keSAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciBjcmVhdGUgYSBuZXcgY291bnRyeSBwYXltZW50IHR5cGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBjcmVhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RDb3VudHJ5UGF5bWVudFR5cGUgKGJvZHk6IENvdW50cnlQYXltZW50VHlwZUluKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhIGNvdW50cnkgcGF5bWVudCB0eXBlIGZvciBhIGdpdmVuIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHNob3cgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnlQYXltZW50VHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYWxsIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGUtZmllbGRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUZpZWxkSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBjcmVhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RDb3VudHJ5UGF5bWVudFR5cGVGaWVsZCAoYm9keTogQ291bnRyeVBheW1lbnRUeXBlRmllbGRJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlLWZpZWxkc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeVBheW1lbnRUeXBlRmllbGRJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSB1cGRhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHB1dENvdW50cnlQYXltZW50VHlwZUZpZWxkIChpZDogbnVtYmVyLCBib2R5OiBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEluKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZS1maWVsZHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYWxsIHBheW1lbnQgdHlwZXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBwYXltZW50IHR5cGVzIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqL1xyXG4gIGdldFBheW1lbnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UGF5bWVudFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlc091dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBwYXltZW50IHR5cGUgZmllbGRzIGNhcmQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcGF5bWVudCB0eXBlIGZpZWxkcyBjYXJkIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqL1xyXG4gIGdldFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtY2FyZC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbn0gYm9keSAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciBjcmVhdGUgYSBuZXcgcGF5bWVudCB0eXBlIGZpZWxkIGNhcmQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBjcmVhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RDb3VudHJ5UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlIChib2R5OiBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWNhcmQtdHlwZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcGF5bWVudCB0eXBlIGZpZWxkIGNhcmQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1BheW1lbnRUeXBlRmllbGRDYXJkVHlwZUlufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSB1cGRhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHB1dENvdW50cnlQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZUluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1jYXJkLXR5cGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBwYXltZW50IHR5cGUgZmllbGRzIGFjY291bnRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcGF5bWVudCB0eXBlIGZpZWxkcyBhY2NvdW50cyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRQYXltZW50VHlwZUZpZWxkQWNjb3VudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQWNjb3VudHNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWFjY291bnRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgcGF5bWVudCB0eXBlIGZpZWxkIGFjY291bnQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1BheW1lbnRUeXBlRmllbGRBY2NvdW50SW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBjcmVhdGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEFjY291bnQgKGJvZHk6IFBheW1lbnRUeXBlRmllbGRBY2NvdW50SW4pOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtYWNjb3VudHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcGF5bWVudCB0eXBlIGZpZWxkIGFjY291bnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50IHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1BheW1lbnRUeXBlRmllbGRBY2NvdW50SW59IGJvZHkgLSBUaGUgdXBkYXRlZCBkYXRhIGZvciB0aGUgcGF5bWVudCB0eXBlIGZpZWxkIGFjY291bnQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEFjY291bnQgKGlkOiBudW1iZXIsIGJvZHk6IFBheW1lbnRUeXBlRmllbGRBY2NvdW50SW4pOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1hY2NvdW50cy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0b2xlcmFuY2UgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byB1c2UgZm9yIHF1ZXJ5aW5nIHRvbGVyYW5jZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUb2xlcmFuY2VzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdG9sZXJhbmNlIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0VG9sZXJhbmNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VG9sZXJhbmNlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxUb2xlcmFuY2VzT3V0Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgdG9sZXJhbmNlIGRldGFpbCBmb3IgYSBnaXZlbiBpZGVudGlmaWVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdG9sZXJhbmNlIHRvIHJldHJpZXZlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9sZXJhbmNlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB0b2xlcmFuY2UgZGF0YS5cclxuICAgKi9cclxuICBnZXRUb2xlcmFuY2UgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxUb2xlcmFuY2VPdXQ+PihgJHt0aGlzLnVybH0vdG9sZXJhbmNlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIHVwZGF0ZSBvciBjcmVhdGUgYSB0b2xlcmFuY2UgcmVjb3JkIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtUb2xlcmFuY2VJbn0gYm9keSAtIFRoZSB0b2xlcmFuY2UgaW5wdXQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBvciBjcmVhdGVkIHRvbGVyYW5jZSBvdXRwdXQgb2JqZWN0LlxyXG4gICAqL1xyXG4gIHBvc3RUb2xlcmFuY2UgKGJvZHk6IFRvbGVyYW5jZUluKTogT2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFRvbGVyYW5jZU91dD4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSB0b2xlcmFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0b2xlcmFuY2UgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7VG9sZXJhbmNlSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIHRvbGVyYW5jZSB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9sZXJhbmNlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIHRvbGVyYW5jZSBpbmZvcm1hdGlvbi5cclxuICAgKi9cclxuICBwdXRUb2xlcmFuY2UgKGlkOiBudW1iZXIsIGJvZHk6IFRvbGVyYW5jZUluKTogT2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlT3V0Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgdGhlIHRvbGVyYW5jZSBlbnRyeSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdG9sZXJhbmNlIHRvIGJlIGRlbGV0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTx7fT59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZVRvbGVyYW5jZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vdG9sZXJhbmNlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkb2N1bWVudCByZXF1ZXN0cyBhc3NvY2lhdGVkIHdpdGggYSBkb2N1bWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRvY3VtZW50LlxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZG9jdW1lbnQgcmVxdWVzdHMgZGF0YS5cclxuICAgKi9cclxuICBnZXRPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE9wZXJhdGlvbkRvY3VtZW50UmVxdWVzdHNPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2RvY3VtZW50L3JlcXVlc3RzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGRvY3VtZW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgYW5kIHBhZ2luYXRlIHRoZSBkb2N1bWVudHNcclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRvY3VtZW50cyBkYXRhIHdoZW4gdGhlIEhUVFAgcmVxdWVzdCBjb21wbGV0ZXNcclxuICAgKi9cclxuICBnZXREb2N1bWVudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEdldERvY3VtZW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxHZXREb2N1bWVudHNPdXQ+PihgJHt0aGlzLnVybH0vZG9jdW1lbnRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktY2F0YWxvZy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW1mb255TW9kZWwsIFRyYW5zbGF0aW9ucyB9IGZyb20gJy4vYXBpLm1vZGVscydcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgY29kZUFuZE5hbWU6IHN0cmluZ1xyXG4gIGlzb0NvZGU6IHN0cmluZ1xyXG4gIGNvZGVQaG9uZTogc3RyaW5nXHJcbiAgbG9jYWxlOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGU6IExvY2F0aW9uVHlwZVxyXG4gIHVuaXQ6IFVuaXRcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIHBob25lRGlnaXRzOiBudW1iZXJcclxuICBsb2NhdGlvblR5cGVGaWVsZHM6IExvY2F0aW9uVHlwZUZpZWxkc1xyXG4gIHBvc3RhbENvZGVTdWZmaXhSZWdleDogc3RyaW5nXHJcbiAgZGVjaW1hbFBvaW50OiBudW1iZXJcclxuICBtYXhfcXVhbnRpdHlfZG9jdW1lbnRfcGllY2U6IG51bWJlclxyXG4gIG1heF9xdWFudGl0eV9wYWNrYWdlX3BpZWNlOiBudW1iZXJcclxuICB3ZWlnaHRfcmVzdHJpY3Rpb25fcGllY2U6IG51bWJlclxyXG4gIHJlc3RyaWN0aW9uX3NoaXBtZW50OiBudW1iZXJcclxuICByZXN0cmljdGlvbl9kaW1lbnNpb246IG51bWJlclxyXG4gIG1heF9kZWNsYXJlZF92YWx1ZTogbnVtYmVyXHJcbiAgZGVjaW1hbF9zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIHRob3VzYW5kc19zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIGxhYmVsX3ByaW50ZXJfbmFtZTogc3RyaW5nXHJcbiAgcmVjZWlwdF9wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIG90aGVyc19wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIHRlcnJpdG9yaWVzOiBudW1iZXJbXVxyXG4gIHVzZV9iaWxsaW5nPzogYm9vbGVhblxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBwcmlvcml0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uVHlwZUZpZWxkcyB7XHJcbiAgY2l0eTogQ2l0eVxyXG4gIHBvc3RhbENvZGU6IFBvc3RhbENvZGVcclxuICBzdWJ1cmI6IFN1YnVyYlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENpdHkge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RhbENvZGUge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1YnVyYiB7XHJcbiAgZW5hYmxlZDogYm9vbGVhblxyXG4gIHJlcXVpcmVkOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmljYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlkZW50aWZpY2F0aW9uVHlwZTogbnVtYmVyIHwgbnVsbFxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZpZXdTZWN0aW9uPzoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICB0cmFuc2xhdGlvbnM/OiBUcmFuc2xhdGlvbnNcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCb2FyZGluZ1Byb2Nlc3NTdGF0dXMge1xyXG4gIGlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjcmVhdGVkQXQ6IHN0cmluZ1xyXG4gIHVwZGF0ZWRBdDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFDaGFyZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb3N0YWxMb2NhdGlvbiBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY2l0eTogc3RyaW5nIHwgbnVsbFxyXG4gIHBvc3RhbENvZGU6IHN0cmluZyB8IG51bGxcclxuICBzdWJ1cmI6IHN0cmluZyB8IG51bGxcclxuICBzdGF0ZUNvZGU6IHN0cmluZyB8IG51bGxcclxuICBpYXRhOiBzdHJpbmdcclxuICBzdGF0ZTogU3RhdGUgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgWm9uZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRBcmVhIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FuY2VsbGF0aW9uUmVhc29uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBldmVudFJlYXNvbkNvZGU6IHN0cmluZ1xyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50U2NvcGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50Q29udGVudFR5cGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyaWNGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgYWNjb3VudE51bWJlcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAgcGFja2FnaW5nOiB0cnVlLFxyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUxOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTM6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnRyeUlkOiBudW1iZXJcclxuICBkZXN0aW5hdGlvbkNvdW50cnlDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ2l0eU5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25TdGF0ZUNvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkVtYWlsOiBzdHJpbmdcclxuICBjb3VudHJ5UmVmZXJlbmNlUHJvZHVjdElkczogbnVtYmVyW11cclxuICBwcm9kdWN0TG9jYWxDb2Rlczogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgZ2xvYmFsQ29kZTogbnVtYmVyXHJcbiAgbG9jYWxDb2RlOiBzdHJpbmdcclxuICBnbG9iYWxOYW1lOiBzdHJpbmdcclxuICBsb2NhbE5hbWU6IHN0cmluZ1xyXG4gIGlzRG9jdW1lbnQ6IHN0cmluZ1xyXG4gIHJlc3RyaWN0ZWRBY2NvdW50czoge1xyXG4gICAgaWQ6IHN0cmluZ1xyXG4gICAgbnVtYmVyOiBzdHJpbmdcclxuICAgIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgfVtdXHJcbiAgZGlzY291bnRzOiBbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50SW5jb21lVHlwZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGthZDogc3RyaW5nIHwgbnVsbFxyXG4gIGV4ZWN1dGl2ZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRHcm91cCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRTdGF0dXMgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktY2F0YWxvZy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW1mb255TW9kZWwsIFRyYW5zbGF0aW9ucyB9IGZyb20gJy4vYXBpLm1vZGVscydcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgY29kZUFuZE5hbWU6IHN0cmluZ1xyXG4gIGlzb0NvZGU6IHN0cmluZ1xyXG4gIGNvZGVQaG9uZTogc3RyaW5nXHJcbiAgbG9jYWxlOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGU6IExvY2F0aW9uVHlwZVxyXG4gIHVuaXQ6IFVuaXRcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIHBob25lRGlnaXRzOiBudW1iZXJcclxuICBsb2NhdGlvblR5cGVGaWVsZHM6IExvY2F0aW9uVHlwZUZpZWxkc1xyXG4gIHBvc3RhbENvZGVTdWZmaXhSZWdleDogc3RyaW5nXHJcbiAgZGVjaW1hbFBvaW50OiBudW1iZXJcclxuICBtYXhfcXVhbnRpdHlfZG9jdW1lbnRfcGllY2U6IG51bWJlclxyXG4gIG1heF9xdWFudGl0eV9wYWNrYWdlX3BpZWNlOiBudW1iZXJcclxuICB3ZWlnaHRfcmVzdHJpY3Rpb25fcGllY2U6IG51bWJlclxyXG4gIHJlc3RyaWN0aW9uX3NoaXBtZW50OiBudW1iZXJcclxuICByZXN0cmljdGlvbl9kaW1lbnNpb246IG51bWJlclxyXG4gIG1heF9kZWNsYXJlZF92YWx1ZTogbnVtYmVyXHJcbiAgZGVjaW1hbF9zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIHRob3VzYW5kc19zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIGxhYmVsX3ByaW50ZXJfbmFtZTogc3RyaW5nXHJcbiAgcmVjZWlwdF9wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIG90aGVyc19wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIHRlcnJpdG9yaWVzOiBudW1iZXJbXVxyXG4gIHVzZV9iaWxsaW5nPzogYm9vbGVhblxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBwcmlvcml0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uVHlwZUZpZWxkcyB7XHJcbiAgY2l0eTogQ2l0eVxyXG4gIHBvc3RhbENvZGU6IFBvc3RhbENvZGVcclxuICBzdWJ1cmI6IFN1YnVyYlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENpdHkge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RhbENvZGUge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1YnVyYiB7XHJcbiAgZW5hYmxlZDogYm9vbGVhblxyXG4gIHJlcXVpcmVkOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmljYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlkZW50aWZpY2F0aW9uVHlwZTogbnVtYmVyIHwgbnVsbFxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZpZXdTZWN0aW9uPzoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICB0cmFuc2xhdGlvbnM/OiBUcmFuc2xhdGlvbnNcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCb2FyZGluZ1Byb2Nlc3NTdGF0dXMge1xyXG4gIGlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjcmVhdGVkQXQ6IHN0cmluZ1xyXG4gIHVwZGF0ZWRBdDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFDaGFyZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb3N0YWxMb2NhdGlvbiBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY2l0eTogc3RyaW5nIHwgbnVsbFxyXG4gIHBvc3RhbENvZGU6IHN0cmluZyB8IG51bGxcclxuICBzdWJ1cmI6IHN0cmluZyB8IG51bGxcclxuICBzdGF0ZUNvZGU6IHN0cmluZyB8IG51bGxcclxuICBpYXRhOiBzdHJpbmdcclxuICBzdGF0ZTogU3RhdGUgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgWm9uZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRBcmVhIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FuY2VsbGF0aW9uUmVhc29uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBldmVudFJlYXNvbkNvZGU6IHN0cmluZ1xyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50U2NvcGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50Q29udGVudFR5cGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyaWNGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgYWNjb3VudE51bWJlcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAgcGFja2FnaW5nOiB0cnVlLFxyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUxOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTM6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnRyeUlkOiBudW1iZXJcclxuICBkZXN0aW5hdGlvbkNvdW50cnlDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ2l0eU5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25TdGF0ZUNvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkVtYWlsOiBzdHJpbmdcclxuICBjb3VudHJ5UmVmZXJlbmNlUHJvZHVjdElkczogbnVtYmVyW11cclxuICBwcm9kdWN0TG9jYWxDb2Rlczogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgZ2xvYmFsQ29kZTogbnVtYmVyXHJcbiAgbG9jYWxDb2RlOiBzdHJpbmdcclxuICBnbG9iYWxOYW1lOiBzdHJpbmdcclxuICBsb2NhbE5hbWU6IHN0cmluZ1xyXG4gIGlzRG9jdW1lbnQ6IHN0cmluZ1xyXG4gIHJlc3RyaWN0ZWRBY2NvdW50czoge1xyXG4gICAgaWQ6IHN0cmluZ1xyXG4gICAgbnVtYmVyOiBzdHJpbmdcclxuICAgIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgfVtdXHJcbiAgZGlzY291bnRzOiBbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50SW5jb21lVHlwZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGthZDogc3RyaW5nIHwgbnVsbFxyXG4gIGV4ZWN1dGl2ZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRHcm91cCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRTdGF0dXMgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgdHlwZTogc3RyaW5nXHJcbiAgcXVlc3Rpb25PcmRlcjogbnVtYmVyXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBpc1JlcXVpcmVkVmFsdWU6IGJvb2xlYW5cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uLFxyXG4gIENvdW50cnksXHJcbiAgQ3VycmVuY3ksXHJcbiAgRXh0cmFDaGFyZ2UsXHJcbiAgR2VuZXJpY0ZvbGlvLFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZSxcclxuICBMYW5ndWFnZSxcclxuICBNYW5hZ2VtZW50QXJlYSxcclxuICBPcGVyYXRpb25UeXBlLFxyXG4gIFBvc3RhbExvY2F0aW9uLFxyXG4gIFByb2R1Y3QsXHJcbiAgUmVnaW9uLFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGUsXHJcbiAgU2hpcG1lbnRHcm91cCxcclxuICBTaGlwbWVudEluY29tZVR5cGUsXHJcbiAgU2hpcG1lbnRTY29wZSxcclxuICBTaGlwbWVudFN0YXR1cyxcclxuICBVbmlxdWVGb2xpbyxcclxuICBVbml0LFxyXG4gIFpvbmVcclxufSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25UeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgb3BlcmF0aW9uVHlwZXM6IE9wZXJhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uVHlwZXNPdXQge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGVzOiBJZGVudGlmaWNhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGV4dHJhY2hhcmdlczogRXh0cmFDaGFyZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJpZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGNvdW50cmllczogQ291bnRyeVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlJbiA9IHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGVJZDogbnVtYmVyXHJcbiAgdW5pdElkOiBudW1iZXJcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgaXNvQ29kZTogc3RyaW5nXHJcbiAgY29kZVBob25lOiBzdHJpbmdcclxuICBwaG9uZURpZ2l0czogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlPdXQgPSB7XHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQb3N0YWxMb2NhdGlvbnNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHBvc3RhbExvY2F0aW9uczogUG9zdGFsTG9jYXRpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZWdpb25zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICByZWdpb25zOiBSZWdpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBab25lc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgem9uZXM6IFpvbmVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNYW5hZ2VtZW50QXJlYXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHJlZ2lvbnM6IE1hbmFnZW1lbnRBcmVhW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uczogQ2FuY2VsbGF0aW9uUmVhc29uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uSW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZXZlbnRSZWFzb25Db2RlOiBzdHJpbmcgfCBudWxsXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW5jZWxsYXRpb25SZWFzb25PdXQgPSB7XHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uOiBDYW5jZWxsYXRpb25SZWFzb25cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VycmVuY2llc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMYW5ndWFnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGxhbmd1YWdlczogTGFuZ3VhZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbml0c091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgdW5pdHM6IFVuaXRbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudFNjb3Blc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRTY29wZXM6IFNoaXBtZW50U2NvcGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudENvbnRlbnRUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRDb250ZW50VHlwZXM6IFNoaXBtZW50Q29udGVudFR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZUluID0ge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VPdXQgPSB7XHJcbiAgZXh0cmFDaGFyZ2U6IEV4dHJhQ2hhcmdlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb3NPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGdlbmVyaWNGb2xpb3M6IEdlbmVyaWNGb2xpb1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb0luID0ge1xyXG4gIGFjY291bnROdW1iZXI6IHN0cmluZ1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGNvdW50cnlSZWZlcmVuY2VQcm9kdWN0SWRzOiBudW1iZXJbXVxyXG4gIGN1c3RvbWVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTI6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUzOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkNpdHlOYW1lPzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25Db3VudHJ5SWQ6IG51bWJlclxyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZT86IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRW1haWw6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU/OiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblN0YXRlQ29kZT86IHN0cmluZ1xyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgcGFja2FnaW5nOiBib29sZWFuXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgR2VuZXJpY0ZvbGlvT3V0ID0ge1xyXG4gIGdlbmVyaWNGb2xpbzogR2VuZXJpY0ZvbGlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByb2R1Y3RJbiA9IHtcclxuICBnbG9iYWxDb2RlOiBudW1iZXJcclxuICBsb2NhbENvZGU6IHN0cmluZ1xyXG4gIGdsb2JhbE5hbWU6IHN0cmluZ1xyXG4gIGxvY2FsTmFtZTogc3RyaW5nXHJcbiAgaXNEb2N1bWVudDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9kdWN0T3V0ID0ge1xyXG4gIHByb2R1Y3Q6IFByb2R1Y3RcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlczogU2hpcG1lbnRJbmNvbWVUeXBlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlSW4gPSB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudEluY29tZVR5cGVPdXQgPSB7XHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlOiBTaGlwbWVudEluY29tZVR5cGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9JbiA9IHtcclxuICBjb2RlOiBudW1iZXJcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAga2FkOiBzdHJpbmcgfCBudWxsXHJcbiAgZXhlY3V0aXZlOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbmlxdWVGb2xpb091dCA9IHtcclxuICB1bmlxdWVGb2xpbzogVW5pcXVlRm9saW9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICB1bmlxdWVGb2xpb3M6IFVuaXF1ZUZvbGlvW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRHcm91cHNPdXQgPSB7XHJcbiAgc2hpcG1lbnRHcm91cHM6IFNoaXBtZW50R3JvdXBbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRTdGF0dXNlc091dCA9IHtcclxuICBzaGlwbWVudFN0YXR1c2VzOiBTaGlwbWVudFN0YXR1c1tdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uLFxyXG4gIENvdW50cnksXHJcbiAgQ3VycmVuY3ksXHJcbiAgRXh0cmFDaGFyZ2UsXHJcbiAgR2VuZXJpY0ZvbGlvLFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZSxcclxuICBMYW5ndWFnZSxcclxuICBNYW5hZ2VtZW50QXJlYSxcclxuICBPcGVyYXRpb25UeXBlLFxyXG4gIFBvc3RhbExvY2F0aW9uLFxyXG4gIFByb2R1Y3QsXHJcbiAgUXVlc3Rpb24sXHJcbiAgUmVnaW9uLFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGUsXHJcbiAgU2hpcG1lbnRHcm91cCxcclxuICBTaGlwbWVudEluY29tZVR5cGUsXHJcbiAgU2hpcG1lbnRTY29wZSxcclxuICBTaGlwbWVudFN0YXR1cyxcclxuICBVbmlxdWVGb2xpbyxcclxuICBVbml0LFxyXG4gIFpvbmVcclxufSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25UeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgb3BlcmF0aW9uVHlwZXM6IE9wZXJhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uVHlwZXNPdXQge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGVzOiBJZGVudGlmaWNhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGV4dHJhY2hhcmdlczogRXh0cmFDaGFyZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJpZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGNvdW50cmllczogQ291bnRyeVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlJbiA9IHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGVJZDogbnVtYmVyXHJcbiAgdW5pdElkOiBudW1iZXJcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgaXNvQ29kZTogc3RyaW5nXHJcbiAgY29kZVBob25lOiBzdHJpbmdcclxuICBwaG9uZURpZ2l0czogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlPdXQgPSB7XHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQb3N0YWxMb2NhdGlvbnNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHBvc3RhbExvY2F0aW9uczogUG9zdGFsTG9jYXRpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZWdpb25zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICByZWdpb25zOiBSZWdpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBab25lc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgem9uZXM6IFpvbmVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNYW5hZ2VtZW50QXJlYXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHJlZ2lvbnM6IE1hbmFnZW1lbnRBcmVhW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uczogQ2FuY2VsbGF0aW9uUmVhc29uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uSW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZXZlbnRSZWFzb25Db2RlOiBzdHJpbmcgfCBudWxsXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW5jZWxsYXRpb25SZWFzb25PdXQgPSB7XHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uOiBDYW5jZWxsYXRpb25SZWFzb25cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VycmVuY2llc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMYW5ndWFnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGxhbmd1YWdlczogTGFuZ3VhZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbml0c091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgdW5pdHM6IFVuaXRbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudFNjb3Blc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRTY29wZXM6IFNoaXBtZW50U2NvcGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudENvbnRlbnRUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRDb250ZW50VHlwZXM6IFNoaXBtZW50Q29udGVudFR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZUluID0ge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VPdXQgPSB7XHJcbiAgZXh0cmFDaGFyZ2U6IEV4dHJhQ2hhcmdlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb3NPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGdlbmVyaWNGb2xpb3M6IEdlbmVyaWNGb2xpb1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb0luID0ge1xyXG4gIGFjY291bnROdW1iZXI6IHN0cmluZ1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGNvdW50cnlSZWZlcmVuY2VQcm9kdWN0SWRzOiBudW1iZXJbXVxyXG4gIGN1c3RvbWVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTI6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUzOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkNpdHlOYW1lPzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25Db3VudHJ5SWQ6IG51bWJlclxyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZT86IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRW1haWw6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU/OiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblN0YXRlQ29kZT86IHN0cmluZ1xyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgcGFja2FnaW5nOiBib29sZWFuXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgR2VuZXJpY0ZvbGlvT3V0ID0ge1xyXG4gIGdlbmVyaWNGb2xpbzogR2VuZXJpY0ZvbGlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByb2R1Y3RJbiA9IHtcclxuICBnbG9iYWxDb2RlOiBudW1iZXJcclxuICBsb2NhbENvZGU6IHN0cmluZ1xyXG4gIGdsb2JhbE5hbWU6IHN0cmluZ1xyXG4gIGxvY2FsTmFtZTogc3RyaW5nXHJcbiAgaXNEb2N1bWVudDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9kdWN0T3V0ID0ge1xyXG4gIHByb2R1Y3Q6IFByb2R1Y3RcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlczogU2hpcG1lbnRJbmNvbWVUeXBlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlSW4gPSB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudEluY29tZVR5cGVPdXQgPSB7XHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlOiBTaGlwbWVudEluY29tZVR5cGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9JbiA9IHtcclxuICBjb2RlOiBudW1iZXJcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAga2FkOiBzdHJpbmcgfCBudWxsXHJcbiAgZXhlY3V0aXZlOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbmlxdWVGb2xpb091dCA9IHtcclxuICB1bmlxdWVGb2xpbzogVW5pcXVlRm9saW9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICB1bmlxdWVGb2xpb3M6IFVuaXF1ZUZvbGlvW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRHcm91cHNPdXQgPSB7XHJcbiAgc2hpcG1lbnRHcm91cHM6IFNoaXBtZW50R3JvdXBbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRTdGF0dXNlc091dCA9IHtcclxuICBzaGlwbWVudFN0YXR1c2VzOiBTaGlwbWVudFN0YXR1c1tdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBRdWVzdGlvbnNPdXQgPSB7XHJcbiAgcXVlc3Rpb25zOiBRdWVzdGlvbltdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBRdWVzdGlvbk91dCA9IHtcclxuICBxdWVzdGlvbjogUXVlc3Rpb25cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUXVlc3Rpb25JbiA9IHtcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgdHlwZTogJ21hcmtldGluZydcclxuICBxdWVzdGlvbk9yZGVyOiBudW1iZXJcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbiAgaXNSZXF1aXJlZFZhbHVlOiBib29sZWFuXHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvbW9kZWxzL2FwaS1pbnZvaWNlcy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb3VudHJ5UGF5bWVudFR5cGUsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlRmllbGQsXHJcbiAgQ3VzdG9tZXIsXHJcbiAgQ3VzdG9tZXJDb3VudHJ5RG9jdW1lbnRUeXBlLFxyXG4gIEN1c3RvbWVyVHlwZSxcclxuICBEb2N1bWVudCxcclxuICBEb2N1bWVudFJlcXVlc3RzLFxyXG4gIFBheW1lbnRUeXBlLFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50LFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSxcclxuICBUb2xlcmFuY2VcclxufSBmcm9tICcuL2FwaS1pbnZvaWNlcy5pbnRlcmZhY2VzJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25BY2NvdW50UGF5bWVudEluIHtcclxuICBkb2N1bWVudF90eXBlX3JhbmdlX2lkOiBudW1iZXIgfCBudWxsXHJcbiAgZG9jdW1lbnRfbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgb2JzZXJ2YXRpb246IHN0cmluZyB8IG51bGxcclxuICBkb2N1bWVudF9kYXRlOiBzdHJpbmcgfCBudWxsXHJcbiAgdG90YWxfYW1vdW50OiBudW1iZXJcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHtcclxuICAgIGNvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgICBmdWxsX25hbWU6IHN0cmluZ1xyXG4gICAgYWNjb3VudF9udW1iZXI6IHN0cmluZ1xyXG4gICAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgfVxyXG4gIHBheW1lbnRzOiBBY2NvdW50UGF5bWVudFtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjY291bnRQYXltZW50ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2lkOiBudW1iZXJcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgYW1vdW50OiBudW1iZXJcclxuICBleGNoYW5nZTogc3RyaW5nXHJcbiAgZHVlX2RhdGU6IHN0cmluZ1xyXG4gIHJlY2VpdmVkOiBudW1iZXJcclxuICBzdGF0dXM/OiBib29sZWFuXHJcbiAgZGV0YWlscz86IHt9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQge1xyXG4gIGRvY3VtZW50OiBEb2N1bWVudFxyXG4gIHRyYW5zYWN0aW9uX2lkOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dCA9IHtcclxuICBjb2xsZWN0aW9uX3JlY2VpcHQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW5jZWxQYXltZW50UmVjZWlwdEluID0ge1xyXG4gIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICBpc19jYW5jZWxlZF9pbnZvaWNlOiBib29sZWFuXHJcbiAgY2FuY2VsbGF0aW9uX3JlYXNvbl9pZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdJbiA9IHtcclxuICBpbnZvaWNlSWQ6IG51bWJlclxyXG4gIGNhbmNlbGxhdGlvbl9yZWFzb25faWQ6IG51bWJlclxyXG4gIGNhbmNlbF9wYXltZW50OiBib29sZWFuXHJcbiAgc2VuZF9zaGlwbWVudHM6IGJvb2xlYW5cclxuICBsb2NhbF9jYW5jZWw/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQgPSB7XHJcbiAgY3JlZGl0Tm90ZURvY3VtZW50OiBEb2N1bWVudCB8IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uRG9jdW1lbnRJbiA9IHtcclxuICBjb3VudHJ5X2RvY3VtZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICBjdXN0b21lcjoge1xyXG4gICAgY3VzdG9tZXJfdHlwZV9pZDogbnVtYmVyXHJcbiAgICBjb21wYW55X25hbWU6IHN0cmluZ1xyXG4gICAgZnVsbF9uYW1lOiBzdHJpbmdcclxuICAgIGVtYWlsOiBzdHJpbmdcclxuICAgIHBob25lX2NvZGU6IHN0cmluZyB8IG51bGxcclxuICAgIHBob25lX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gICAgYWRkcmVzc19saW5lMTogc3RyaW5nIHwgbnVsbFxyXG4gICAgYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gICAgYWRkcmVzc19saW5lMzogc3RyaW5nIHwgbnVsbFxyXG4gICAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmdcclxuICAgIGlkZW50aWZpY2F0aW9uX3R5cGVfaWQ6IG51bWJlclxyXG4gICAgcG9zdGFsX2NvZGU6IHN0cmluZyB8IG51bGxcclxuICAgIHN0YXRlOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb3VudHlfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gICAgY2l0eV9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICAgIGV4dHJhX2ZpZWxkczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gfCBudWxsXHJcbiAgfSxcclxuICBkb2N1bWVudF9leHRyYV9maWVsZHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB9IHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25Eb2N1bWVudE91dCA9IHtcclxuICBkb2N1bWVudDogRG9jdW1lbnRcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSW52b2ljZVR5cGVDdXN0b21QYXJhbXNJbiA9IHtcclxuICBpZGVudGlmaWNhdGlvbk51bWJlcjogc3RyaW5nXHJcbiAgaWRlbnRpZmljYXRpb25UeXBlaWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25QcmludERvY3VtZW50T3V0ID0ge1xyXG4gIGRvY3VtZW50OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tZXJUeXBlc091dCA9IHtcclxuICBjdXN0b21lcl90eXBlczogQ3VzdG9tZXJUeXBlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbWVyc091dCA9IHtcclxuICBjdXN0b21lcnM6IEN1c3RvbWVyW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dCA9IHtcclxuICBkb2N1bWVudDogRG9jdW1lbnRcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluID0ge1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDdXN0b21lckRvY3VtZW50VHlwZXNPdXQgPSB7XHJcbiAgY3VzdG9tZXJfY291bnRyeV9kb2N1bWVudF90eXBlczogQ3VzdG9tZXJDb3VudHJ5RG9jdW1lbnRUeXBlW107XHJcbiAgdG90YWw6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeVBheW1lbnRUeXBlc091dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZXM6IENvdW50cnlQYXltZW50VHlwZVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5UGF5bWVudFR5cGVPdXQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGU6IENvdW50cnlQYXltZW50VHlwZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5UGF5bWVudFR5cGVJbiA9IHtcclxuICBwYXltZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGJpbGxpbmdfcGF5bWVudF9jb2RlOiBzdHJpbmdcclxuICBjYW5fdG9sZXJhbmNlOiBib29sZWFuXHJcbiAgaXNfYWN0aXZlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZHM6IENvdW50cnlQYXltZW50VHlwZUZpZWxkW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkOiBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEluID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2lkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbFxyXG4gIGZvcm1hdDogc3RyaW5nXHJcbiAgaXNfcmVxdWlyZWQ6IGJvb2xlYW5cclxuICBjYXRhbG9nOiBzdHJpbmdbXSB8IG51bGxcclxuICBpc19pbnRlcmZhY2U6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGF5bWVudFR5cGVzT3V0ID0ge1xyXG4gIHBheW1lbnRfdHlwZXM6IFBheW1lbnRUeXBlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfZmllbGRfY2FyZF90eXBlczogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZUluID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkX2lkOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBhY2NvdW50YWJsZV9hY2NvdW50OiBzdHJpbmdcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkX2NhcmRfdHlwZTogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9hY2NvdW50czogUGF5bWVudFR5cGVGaWVsZEFjY291bnRbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGF5bWVudFR5cGVGaWVsZEFjY291bnRJbiA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9pZDogbnVtYmVyXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgYWNjb3VudDogc3RyaW5nXHJcbiAgYWNjb3VudGFibGVfYWNjb3VudDogc3RyaW5nXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9hY2NvdW50OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUb2xlcmFuY2VzT3V0ID0ge1xyXG4gIHRvbGVyYW5jZXM6IFRvbGVyYW5jZVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUb2xlcmFuY2VJbiA9IHtcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIHRvbGVyYW5jZV90eXBlOiBudW1iZXJcclxuICBtaW5fYW1vdW50OiBudW1iZXJcclxuICBtYXhfYW1vdW50OiBudW1iZXJcclxuICB0b2xlcmFuY2U6IG51bWJlclxyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCB0eXBlIFRvbGVyYW5jZU91dCA9IHtcclxuICB0b2xlcmFuY2U6IFRvbGVyYW5jZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0ID0ge1xyXG4gIHJlcXVlc3RzOiBEb2N1bWVudFJlcXVlc3RzW11cclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvbW9kZWxzL2FwaS1pbnZvaWNlcy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb3VudHJ5UGF5bWVudFR5cGUsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlRmllbGQsXHJcbiAgQ3VzdG9tZXIsXHJcbiAgQ3VzdG9tZXJDb3VudHJ5RG9jdW1lbnRUeXBlLFxyXG4gIEN1c3RvbWVyVHlwZSxcclxuICBEb2N1bWVudCxcclxuICBEb2N1bWVudFJlcXVlc3RzLFxyXG4gIFBheW1lbnRUeXBlLFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50LFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSxcclxuICBUb2xlcmFuY2VcclxufSBmcm9tICcuL2FwaS1pbnZvaWNlcy5pbnRlcmZhY2VzJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25BY2NvdW50UGF5bWVudEluIHtcclxuICBkb2N1bWVudF90eXBlX3JhbmdlX2lkOiBudW1iZXIgfCBudWxsXHJcbiAgZG9jdW1lbnRfbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgb2JzZXJ2YXRpb246IHN0cmluZyB8IG51bGxcclxuICBkb2N1bWVudF9kYXRlOiBzdHJpbmcgfCBudWxsXHJcbiAgdG90YWxfYW1vdW50OiBudW1iZXJcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHtcclxuICAgIGNvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgICBmdWxsX25hbWU6IHN0cmluZ1xyXG4gICAgYWNjb3VudF9udW1iZXI6IHN0cmluZ1xyXG4gICAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgfVxyXG4gIHBheW1lbnRzOiBBY2NvdW50UGF5bWVudFtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjY291bnRQYXltZW50ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2lkOiBudW1iZXJcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgYW1vdW50OiBudW1iZXJcclxuICBleGNoYW5nZTogc3RyaW5nXHJcbiAgZHVlX2RhdGU6IHN0cmluZ1xyXG4gIHJlY2VpdmVkOiBudW1iZXJcclxuICBzdGF0dXM/OiBib29sZWFuXHJcbiAgZGV0YWlscz86IHt9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQge1xyXG4gIGRvY3VtZW50OiBEb2N1bWVudFxyXG4gIHRyYW5zYWN0aW9uX2lkOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dCA9IHtcclxuICBjb2xsZWN0aW9uX3JlY2VpcHQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW5jZWxQYXltZW50UmVjZWlwdEluID0ge1xyXG4gIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICBpc19jYW5jZWxlZF9pbnZvaWNlOiBib29sZWFuXHJcbiAgY2FuY2VsbGF0aW9uX3JlYXNvbl9pZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdJbiA9IHtcclxuICBpbnZvaWNlSWQ6IG51bWJlclxyXG4gIGNhbmNlbGxhdGlvbl9yZWFzb25faWQ6IG51bWJlclxyXG4gIGNhbmNlbF9wYXltZW50OiBib29sZWFuXHJcbiAgc2VuZF9zaGlwbWVudHM6IGJvb2xlYW5cclxuICBsb2NhbF9jYW5jZWw/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQgPSB7XHJcbiAgY3JlZGl0Tm90ZURvY3VtZW50OiBEb2N1bWVudCB8IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uRG9jdW1lbnRJbiA9IHtcclxuICBjb3VudHJ5X2RvY3VtZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICBjdXN0b21lcjoge1xyXG4gICAgY3VzdG9tZXJfdHlwZV9pZDogbnVtYmVyXHJcbiAgICBjb21wYW55X25hbWU6IHN0cmluZ1xyXG4gICAgZnVsbF9uYW1lOiBzdHJpbmdcclxuICAgIGVtYWlsOiBzdHJpbmdcclxuICAgIHBob25lX2NvZGU6IHN0cmluZyB8IG51bGxcclxuICAgIHBob25lX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gICAgYWRkcmVzc19saW5lMTogc3RyaW5nIHwgbnVsbFxyXG4gICAgYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gICAgYWRkcmVzc19saW5lMzogc3RyaW5nIHwgbnVsbFxyXG4gICAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmdcclxuICAgIGlkZW50aWZpY2F0aW9uX3R5cGVfaWQ6IG51bWJlclxyXG4gICAgcG9zdGFsX2NvZGU6IHN0cmluZyB8IG51bGxcclxuICAgIHN0YXRlOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb3VudHlfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gICAgY2l0eV9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICAgIGV4dHJhX2ZpZWxkczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gfCBudWxsXHJcbiAgfSxcclxuICBkb2N1bWVudF9leHRyYV9maWVsZHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB9IHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25Eb2N1bWVudE91dCA9IHtcclxuICBkb2N1bWVudDogRG9jdW1lbnRcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSW52b2ljZVR5cGVDdXN0b21QYXJhbXNJbiA9IHtcclxuICBpZGVudGlmaWNhdGlvbk51bWJlcjogc3RyaW5nXHJcbiAgaWRlbnRpZmljYXRpb25UeXBlaWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25QcmludERvY3VtZW50T3V0ID0ge1xyXG4gIGRvY3VtZW50OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tZXJUeXBlc091dCA9IHtcclxuICBjdXN0b21lcl90eXBlczogQ3VzdG9tZXJUeXBlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbWVyc091dCA9IHtcclxuICBjdXN0b21lcnM6IEN1c3RvbWVyW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dCA9IHtcclxuICBkb2N1bWVudDogRG9jdW1lbnRcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluID0ge1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDdXN0b21lckRvY3VtZW50VHlwZXNPdXQgPSB7XHJcbiAgY3VzdG9tZXJfY291bnRyeV9kb2N1bWVudF90eXBlczogQ3VzdG9tZXJDb3VudHJ5RG9jdW1lbnRUeXBlW107XHJcbiAgdG90YWw6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeVBheW1lbnRUeXBlc091dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZXM6IENvdW50cnlQYXltZW50VHlwZVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5UGF5bWVudFR5cGVPdXQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGU6IENvdW50cnlQYXltZW50VHlwZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5UGF5bWVudFR5cGVJbiA9IHtcclxuICBwYXltZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGJpbGxpbmdfcGF5bWVudF9jb2RlOiBzdHJpbmdcclxuICBjYW5fdG9sZXJhbmNlOiBib29sZWFuXHJcbiAgaXNfYWN0aXZlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZHM6IENvdW50cnlQYXltZW50VHlwZUZpZWxkW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkOiBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZEluID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2lkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbFxyXG4gIGZvcm1hdDogc3RyaW5nXHJcbiAgaXNfcmVxdWlyZWQ6IGJvb2xlYW5cclxuICBjYXRhbG9nOiBzdHJpbmdbXSB8IG51bGxcclxuICBpc19pbnRlcmZhY2U6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGF5bWVudFR5cGVzT3V0ID0ge1xyXG4gIHBheW1lbnRfdHlwZXM6IFBheW1lbnRUeXBlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfZmllbGRfY2FyZF90eXBlczogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZUluID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkX2lkOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBhY2NvdW50YWJsZV9hY2NvdW50OiBzdHJpbmdcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkX2NhcmRfdHlwZTogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9hY2NvdW50czogUGF5bWVudFR5cGVGaWVsZEFjY291bnRbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGF5bWVudFR5cGVGaWVsZEFjY291bnRJbiA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9pZDogbnVtYmVyXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgYWNjb3VudDogc3RyaW5nXHJcbiAgYWNjb3VudGFibGVfYWNjb3VudDogc3RyaW5nXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9hY2NvdW50OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUb2xlcmFuY2VzT3V0ID0ge1xyXG4gIHRvbGVyYW5jZXM6IFRvbGVyYW5jZVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUb2xlcmFuY2VJbiA9IHtcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIHRvbGVyYW5jZV90eXBlOiBudW1iZXJcclxuICBtaW5fYW1vdW50OiBudW1iZXJcclxuICBtYXhfYW1vdW50OiBudW1iZXJcclxuICB0b2xlcmFuY2U6IG51bWJlclxyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCB0eXBlIFRvbGVyYW5jZU91dCA9IHtcclxuICB0b2xlcmFuY2U6IFRvbGVyYW5jZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0ID0ge1xyXG4gIHJlcXVlc3RzOiBEb2N1bWVudFJlcXVlc3RzW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgR2V0RG9jdW1lbnRzT3V0ID0ge1xyXG4gIGRvY3VtZW50czogRG9jdW1lbnRbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG4iXX0=