UNPKG

@aneoconsultingfr/armonik.api.angular

Version:

gRPC API to interact with ArmoniK built for Angular

254 lines 33.8 kB
/* tslint:disable */ /* eslint-disable */ // @ts-nocheck // // THIS IS A GENERATED FILE // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST import { Inject, Injectable, Optional } from '@angular/core'; import { GrpcCallType, GrpcMetadata } from '@ngx-grpc/common'; import { GRPC_CLIENT_FACTORY, takeMessages, throwStatusErrors } from '@ngx-grpc/core'; import * as armonikApiGrpcV1Tasks007 from './tasks-common.pb'; import { GRPC_TASKS_CLIENT_SETTINGS } from './tasks-service.pbconf'; import * as i0 from "@angular/core"; import * as i1 from "@ngx-grpc/core"; /** * Service client implementation for armonik.api.grpc.v1.tasks.Tasks */ export class TasksClient { constructor(settings, clientFactory, handler) { this.handler = handler; /** * Raw RPC implementation for each service client method. * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata. * Attention: these methods do not throw errors when non-zero status codes are received. */ this.$raw = { /** * Unary call: /armonik.api.grpc.v1.tasks.Tasks/ListTasks * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<GrpcEvent<armonikApiGrpcV1Tasks007.ListTasksResponse>> */ listTasks: (requestData, requestMetadata = new GrpcMetadata()) => { return this.handler.handle({ type: GrpcCallType.unary, client: this.client, path: '/armonik.api.grpc.v1.tasks.Tasks/ListTasks', requestData, requestMetadata, requestClass: armonikApiGrpcV1Tasks007.ListTasksRequest, responseClass: armonikApiGrpcV1Tasks007.ListTasksResponse }); }, /** * Unary call: /armonik.api.grpc.v1.tasks.Tasks/ListTasksDetailed * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<GrpcEvent<armonikApiGrpcV1Tasks007.ListTasksDetailedResponse>> */ listTasksDetailed: (requestData, requestMetadata = new GrpcMetadata()) => { return this.handler.handle({ type: GrpcCallType.unary, client: this.client, path: '/armonik.api.grpc.v1.tasks.Tasks/ListTasksDetailed', requestData, requestMetadata, requestClass: armonikApiGrpcV1Tasks007.ListTasksRequest, responseClass: armonikApiGrpcV1Tasks007.ListTasksDetailedResponse }); }, /** * Unary call: /armonik.api.grpc.v1.tasks.Tasks/GetTask * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<GrpcEvent<armonikApiGrpcV1Tasks007.GetTaskResponse>> */ getTask: (requestData, requestMetadata = new GrpcMetadata()) => { return this.handler.handle({ type: GrpcCallType.unary, client: this.client, path: '/armonik.api.grpc.v1.tasks.Tasks/GetTask', requestData, requestMetadata, requestClass: armonikApiGrpcV1Tasks007.GetTaskRequest, responseClass: armonikApiGrpcV1Tasks007.GetTaskResponse }); }, /** * Unary call: /armonik.api.grpc.v1.tasks.Tasks/CancelTasks * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<GrpcEvent<armonikApiGrpcV1Tasks007.CancelTasksResponse>> */ cancelTasks: (requestData, requestMetadata = new GrpcMetadata()) => { return this.handler.handle({ type: GrpcCallType.unary, client: this.client, path: '/armonik.api.grpc.v1.tasks.Tasks/CancelTasks', requestData, requestMetadata, requestClass: armonikApiGrpcV1Tasks007.CancelTasksRequest, responseClass: armonikApiGrpcV1Tasks007.CancelTasksResponse }); }, /** * Unary call: /armonik.api.grpc.v1.tasks.Tasks/GetResultIds * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<GrpcEvent<armonikApiGrpcV1Tasks007.GetResultIdsResponse>> */ getResultIds: (requestData, requestMetadata = new GrpcMetadata()) => { return this.handler.handle({ type: GrpcCallType.unary, client: this.client, path: '/armonik.api.grpc.v1.tasks.Tasks/GetResultIds', requestData, requestMetadata, requestClass: armonikApiGrpcV1Tasks007.GetResultIdsRequest, responseClass: armonikApiGrpcV1Tasks007.GetResultIdsResponse }); }, /** * Unary call: /armonik.api.grpc.v1.tasks.Tasks/CountTasksByStatus * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<GrpcEvent<armonikApiGrpcV1Tasks007.CountTasksByStatusResponse>> */ countTasksByStatus: (requestData, requestMetadata = new GrpcMetadata()) => { return this.handler.handle({ type: GrpcCallType.unary, client: this.client, path: '/armonik.api.grpc.v1.tasks.Tasks/CountTasksByStatus', requestData, requestMetadata, requestClass: armonikApiGrpcV1Tasks007.CountTasksByStatusRequest, responseClass: armonikApiGrpcV1Tasks007.CountTasksByStatusResponse }); }, /** * Unary call: /armonik.api.grpc.v1.tasks.Tasks/SubmitTasks * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<GrpcEvent<armonikApiGrpcV1Tasks007.SubmitTasksResponse>> */ submitTasks: (requestData, requestMetadata = new GrpcMetadata()) => { return this.handler.handle({ type: GrpcCallType.unary, client: this.client, path: '/armonik.api.grpc.v1.tasks.Tasks/SubmitTasks', requestData, requestMetadata, requestClass: armonikApiGrpcV1Tasks007.SubmitTasksRequest, responseClass: armonikApiGrpcV1Tasks007.SubmitTasksResponse }); } }; this.client = clientFactory.createClient('armonik.api.grpc.v1.tasks.Tasks', settings); } /** * Unary call @/armonik.api.grpc.v1.tasks.Tasks/ListTasks * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<armonikApiGrpcV1Tasks007.ListTasksResponse> */ listTasks(requestData, requestMetadata = new GrpcMetadata()) { return this.$raw .listTasks(requestData, requestMetadata) .pipe(throwStatusErrors(), takeMessages()); } /** * Unary call @/armonik.api.grpc.v1.tasks.Tasks/ListTasksDetailed * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<armonikApiGrpcV1Tasks007.ListTasksDetailedResponse> */ listTasksDetailed(requestData, requestMetadata = new GrpcMetadata()) { return this.$raw .listTasksDetailed(requestData, requestMetadata) .pipe(throwStatusErrors(), takeMessages()); } /** * Unary call @/armonik.api.grpc.v1.tasks.Tasks/GetTask * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<armonikApiGrpcV1Tasks007.GetTaskResponse> */ getTask(requestData, requestMetadata = new GrpcMetadata()) { return this.$raw .getTask(requestData, requestMetadata) .pipe(throwStatusErrors(), takeMessages()); } /** * Unary call @/armonik.api.grpc.v1.tasks.Tasks/CancelTasks * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<armonikApiGrpcV1Tasks007.CancelTasksResponse> */ cancelTasks(requestData, requestMetadata = new GrpcMetadata()) { return this.$raw .cancelTasks(requestData, requestMetadata) .pipe(throwStatusErrors(), takeMessages()); } /** * Unary call @/armonik.api.grpc.v1.tasks.Tasks/GetResultIds * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<armonikApiGrpcV1Tasks007.GetResultIdsResponse> */ getResultIds(requestData, requestMetadata = new GrpcMetadata()) { return this.$raw .getResultIds(requestData, requestMetadata) .pipe(throwStatusErrors(), takeMessages()); } /** * Unary call @/armonik.api.grpc.v1.tasks.Tasks/CountTasksByStatus * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<armonikApiGrpcV1Tasks007.CountTasksByStatusResponse> */ countTasksByStatus(requestData, requestMetadata = new GrpcMetadata()) { return this.$raw .countTasksByStatus(requestData, requestMetadata) .pipe(throwStatusErrors(), takeMessages()); } /** * Unary call @/armonik.api.grpc.v1.tasks.Tasks/SubmitTasks * * @param requestMessage Request message * @param requestMetadata Request metadata * @returns Observable<armonikApiGrpcV1Tasks007.SubmitTasksResponse> */ submitTasks(requestData, requestMetadata = new GrpcMetadata()) { return this.$raw .submitTasks(requestData, requestMetadata) .pipe(throwStatusErrors(), takeMessages()); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TasksClient, deps: [{ token: GRPC_TASKS_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TasksClient, providedIn: 'any' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TasksClient, decorators: [{ type: Injectable, args: [{ providedIn: 'any' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GRPC_TASKS_CLIENT_SETTINGS] }] }, { type: undefined, decorators: [{ type: Inject, args: [GRPC_CLIENT_FACTORY] }] }, { type: i1.GrpcHandler }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3Mtc2VydmljZS5wYnNjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5lb2NvbnN1bHRpbmdmci9hcm1vbmlrLmFwaS5hbmd1bGFyL3NyYy9saWIvZ2VuZXJhdGVkL3Rhc2tzLXNlcnZpY2UucGJzYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLGNBQWM7QUFDZCxFQUFFO0FBQ0YsMkJBQTJCO0FBQzNCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLFlBQVksRUFJWixZQUFZLEVBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQVV4QixPQUFPLEtBQUssd0JBQXdCLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUNwRTs7R0FFRztBQUVILE1BQU0sT0FBTyxXQUFXO0lBa0t0QixZQUNrRCxRQUFhLEVBQ2hDLGFBQXFDLEVBQzFELE9BQW9CO1FBQXBCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFsSzlCOzs7O1dBSUc7UUFDSCxTQUFJLEdBQUc7WUFDTDs7Ozs7O2VBTUc7WUFDSCxTQUFTLEVBQUUsQ0FDVCxXQUFzRCxFQUN0RCxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsRUFDK0IsRUFBRTtnQkFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDekIsSUFBSSxFQUFFLFlBQVksQ0FBQyxLQUFLO29CQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLElBQUksRUFBRSw0Q0FBNEM7b0JBQ2xELFdBQVc7b0JB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cEtsQixXQUFXLGNBREUsS0FBSzs7MkZBQ2xCLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFOzswQkFvSzVCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDN0MsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEB0cy1ub2NoZWNrXG4vL1xuLy8gVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFXG4vLyBETyBOT1QgTU9ESUZZIElUISBZT1VSIENIQU5HRVMgV0lMTCBCRSBMT1NUXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHcnBjQ2FsbFR5cGUsXG4gIEdycGNDbGllbnQsXG4gIEdycGNDbGllbnRGYWN0b3J5LFxuICBHcnBjRXZlbnQsXG4gIEdycGNNZXRhZGF0YVxufSBmcm9tICdAbmd4LWdycGMvY29tbW9uJztcbmltcG9ydCB7XG4gIEdSUENfQ0xJRU5UX0ZBQ1RPUlksXG4gIEdycGNIYW5kbGVyLFxuICB0YWtlTWVzc2FnZXMsXG4gIHRocm93U3RhdHVzRXJyb3JzXG59IGZyb20gJ0BuZ3gtZ3JwYy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIHRoaXNQcm90byBmcm9tICcuL3Rhc2tzLXNlcnZpY2UucGInO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDAgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDEgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgYXJtb25pa0FwaUdycGNWMTAwMiBmcm9tICcuL29iamVjdHMucGInO1xuaW1wb3J0ICogYXMgYXJtb25pa0FwaUdycGNWMVNvcnRfZGlyZWN0aW9uMDAzIGZyb20gJy4vc29ydC1kaXJlY3Rpb24ucGInO1xuaW1wb3J0ICogYXMgYXJtb25pa0FwaUdycGNWMVRhc2tfc3RhdHVzMDA0IGZyb20gJy4vdGFzay1zdGF0dXMucGInO1xuaW1wb3J0ICogYXMgYXJtb25pa0FwaUdycGNWMVRhc2tzMDA1IGZyb20gJy4vdGFza3MtZmllbGRzLnBiJztcbmltcG9ydCAqIGFzIGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNiBmcm9tICcuL3Rhc2tzLWZpbHRlcnMucGInO1xuaW1wb3J0ICogYXMgYXJtb25pa0FwaUdycGNWMVRhc2tzMDA3IGZyb20gJy4vdGFza3MtY29tbW9uLnBiJztcbmltcG9ydCB7IEdSUENfVEFTS1NfQ0xJRU5UX1NFVFRJTkdTIH0gZnJvbSAnLi90YXNrcy1zZXJ2aWNlLnBiY29uZic7XG4vKipcbiAqIFNlcnZpY2UgY2xpZW50IGltcGxlbWVudGF0aW9uIGZvciBhcm1vbmlrLmFwaS5ncnBjLnYxLnRhc2tzLlRhc2tzXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbmV4cG9ydCBjbGFzcyBUYXNrc0NsaWVudCB7XG4gIHByaXZhdGUgY2xpZW50OiBHcnBjQ2xpZW50PGFueT47XG5cbiAgLyoqXG4gICAqIFJhdyBSUEMgaW1wbGVtZW50YXRpb24gZm9yIGVhY2ggc2VydmljZSBjbGllbnQgbWV0aG9kLlxuICAgKiBUaGUgcmF3IG1ldGhvZHMgcHJvdmlkZSBtb3JlIGNvbnRyb2wgb24gdGhlIGluY29taW5nIGRhdGEgYW5kIGV2ZW50cy4gRS5nLiB0aGV5IGNhbiBiZSB1c2VmdWwgdG8gcmVhZCBzdGF0dXMgYE9LYCBtZXRhZGF0YS5cbiAgICogQXR0ZW50aW9uOiB0aGVzZSBtZXRob2RzIGRvIG5vdCB0aHJvdyBlcnJvcnMgd2hlbiBub24temVybyBzdGF0dXMgY29kZXMgYXJlIHJlY2VpdmVkLlxuICAgKi9cbiAgJHJhdyA9IHtcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9MaXN0VGFza3NcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuTGlzdFRhc2tzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGxpc3RUYXNrczogKFxuICAgICAgcmVxdWVzdERhdGE6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5MaXN0VGFza3NSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3Lkxpc3RUYXNrc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9MaXN0VGFza3MnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5MaXN0VGFza3NSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuTGlzdFRhc2tzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvTGlzdFRhc2tzRGV0YWlsZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuTGlzdFRhc2tzRGV0YWlsZWRSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdFRhc2tzRGV0YWlsZWQ6IChcbiAgICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuTGlzdFRhc2tzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8XG4gICAgICBHcnBjRXZlbnQ8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3Lkxpc3RUYXNrc0RldGFpbGVkUmVzcG9uc2U+XG4gICAgPiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9hcm1vbmlrLmFwaS5ncnBjLnYxLnRhc2tzLlRhc2tzL0xpc3RUYXNrc0RldGFpbGVkJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuTGlzdFRhc2tzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogYXJtb25pa0FwaUdycGNWMVRhc2tzMDA3Lkxpc3RUYXNrc0RldGFpbGVkUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvR2V0VGFza1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5HZXRUYXNrUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGdldFRhc2s6IChcbiAgICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0VGFza1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0VGFza1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9HZXRUYXNrJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0VGFza1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5HZXRUYXNrUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvQ2FuY2VsVGFza3NcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ2FuY2VsVGFza3NSZXNwb25zZT4+XG4gICAgICovXG4gICAgY2FuY2VsVGFza3M6IChcbiAgICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ2FuY2VsVGFza3NSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LkNhbmNlbFRhc2tzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9hcm1vbmlrLmFwaS5ncnBjLnYxLnRhc2tzLlRhc2tzL0NhbmNlbFRhc2tzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ2FuY2VsVGFza3NSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ2FuY2VsVGFza3NSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9HZXRSZXN1bHRJZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0UmVzdWx0SWRzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGdldFJlc3VsdElkczogKFxuICAgICAgcmVxdWVzdERhdGE6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5HZXRSZXN1bHRJZHNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LkdldFJlc3VsdElkc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9HZXRSZXN1bHRJZHMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5HZXRSZXN1bHRJZHNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0UmVzdWx0SWRzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvQ291bnRUYXNrc0J5U3RhdHVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LkNvdW50VGFza3NCeVN0YXR1c1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBjb3VudFRhc2tzQnlTdGF0dXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ291bnRUYXNrc0J5U3RhdHVzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8XG4gICAgICBHcnBjRXZlbnQ8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LkNvdW50VGFza3NCeVN0YXR1c1Jlc3BvbnNlPlxuICAgID4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9Db3VudFRhc2tzQnlTdGF0dXMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5Db3VudFRhc2tzQnlTdGF0dXNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ291bnRUYXNrc0J5U3RhdHVzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvU3VibWl0VGFza3NcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuU3VibWl0VGFza3NSZXNwb25zZT4+XG4gICAgICovXG4gICAgc3VibWl0VGFza3M6IChcbiAgICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuU3VibWl0VGFza3NSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LlN1Ym1pdFRhc2tzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9hcm1vbmlrLmFwaS5ncnBjLnYxLnRhc2tzLlRhc2tzL1N1Ym1pdFRhc2tzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuU3VibWl0VGFza3NSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuU3VibWl0VGFza3NSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoR1JQQ19UQVNLU19DTElFTlRfU0VUVElOR1MpIHNldHRpbmdzOiBhbnksXG4gICAgQEluamVjdChHUlBDX0NMSUVOVF9GQUNUT1JZKSBjbGllbnRGYWN0b3J5OiBHcnBjQ2xpZW50RmFjdG9yeTxhbnk+LFxuICAgIHByaXZhdGUgaGFuZGxlcjogR3JwY0hhbmRsZXJcbiAgKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRGYWN0b3J5LmNyZWF0ZUNsaWVudChcbiAgICAgICdhcm1vbmlrLmFwaS5ncnBjLnYxLnRhc2tzLlRhc2tzJyxcbiAgICAgIHNldHRpbmdzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9MaXN0VGFza3NcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuTGlzdFRhc2tzUmVzcG9uc2U+XG4gICAqL1xuICBsaXN0VGFza3MoXG4gICAgcmVxdWVzdERhdGE6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5MaXN0VGFza3NSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5MaXN0VGFza3NSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5saXN0VGFza3MocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvYXJtb25pay5hcGkuZ3JwYy52MS50YXNrcy5UYXNrcy9MaXN0VGFza3NEZXRhaWxlZFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5MaXN0VGFza3NEZXRhaWxlZFJlc3BvbnNlPlxuICAgKi9cbiAgbGlzdFRhc2tzRGV0YWlsZWQoXG4gICAgcmVxdWVzdERhdGE6IGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5MaXN0VGFza3NSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5MaXN0VGFza3NEZXRhaWxlZFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RUYXNrc0RldGFpbGVkKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvR2V0VGFza1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5HZXRUYXNrUmVzcG9uc2U+XG4gICAqL1xuICBnZXRUYXNrKFxuICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0VGFza1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LkdldFRhc2tSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5nZXRUYXNrKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvQ2FuY2VsVGFza3NcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ2FuY2VsVGFza3NSZXNwb25zZT5cbiAgICovXG4gIGNhbmNlbFRhc2tzKFxuICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ2FuY2VsVGFza3NSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5DYW5jZWxUYXNrc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmNhbmNlbFRhc2tzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvR2V0UmVzdWx0SWRzXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LkdldFJlc3VsdElkc1Jlc3BvbnNlPlxuICAgKi9cbiAgZ2V0UmVzdWx0SWRzKFxuICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0UmVzdWx0SWRzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuR2V0UmVzdWx0SWRzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZ2V0UmVzdWx0SWRzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvQ291bnRUYXNrc0J5U3RhdHVzXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YXJtb25pa0FwaUdycGNWMVRhc2tzMDA3LkNvdW50VGFza3NCeVN0YXR1c1Jlc3BvbnNlPlxuICAgKi9cbiAgY291bnRUYXNrc0J5U3RhdHVzKFxuICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ291bnRUYXNrc0J5U3RhdHVzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuQ291bnRUYXNrc0J5U3RhdHVzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuY291bnRUYXNrc0J5U3RhdHVzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL2FybW9uaWsuYXBpLmdycGMudjEudGFza3MuVGFza3MvU3VibWl0VGFza3NcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuU3VibWl0VGFza3NSZXNwb25zZT5cbiAgICovXG4gIHN1Ym1pdFRhc2tzKFxuICAgIHJlcXVlc3REYXRhOiBhcm1vbmlrQXBpR3JwY1YxVGFza3MwMDcuU3VibWl0VGFza3NSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFUYXNrczAwNy5TdWJtaXRUYXNrc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLnN1Ym1pdFRhc2tzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cbn1cbiJdfQ==