@ondewo/csi-client-angular 5.0.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/api/ondewo/csi/conversation.pb.d.ts +4 -1
  2. package/api/ondewo/s2t/speech-to-text.pb.d.ts +5 -1
  3. package/fesm2022/ondewo-csi-client-angular.mjs +60 -53
  4. package/fesm2022/ondewo-csi-client-angular.mjs.map +1 -1
  5. package/package.json +1 -3
  6. package/esm2022/api/google/api/annotations.pb.mjs +0 -2
  7. package/esm2022/api/google/api/http.pb.mjs +0 -524
  8. package/esm2022/api/google/rpc/status.pb.mjs +0 -138
  9. package/esm2022/api/google/type/latlng.pb.mjs +0 -119
  10. package/esm2022/api/ondewo/csi/conversation.pb.mjs +0 -2070
  11. package/esm2022/api/ondewo/csi/conversation.pbconf.mjs +0 -13
  12. package/esm2022/api/ondewo/csi/conversation.pbsc.mjs +0 -315
  13. package/esm2022/api/ondewo/nlu/agent.pb.mjs +0 -11502
  14. package/esm2022/api/ondewo/nlu/agent.pbconf.mjs +0 -13
  15. package/esm2022/api/ondewo/nlu/agent.pbsc.mjs +0 -1246
  16. package/esm2022/api/ondewo/nlu/aiservices.pb.mjs +0 -5313
  17. package/esm2022/api/ondewo/nlu/aiservices.pbconf.mjs +0 -13
  18. package/esm2022/api/ondewo/nlu/aiservices.pbsc.mjs +0 -374
  19. package/esm2022/api/ondewo/nlu/ccai-project.pb.mjs +0 -2691
  20. package/esm2022/api/ondewo/nlu/ccai-project.pbconf.mjs +0 -13
  21. package/esm2022/api/ondewo/nlu/ccai-project.pbsc.mjs +0 -224
  22. package/esm2022/api/ondewo/nlu/common.pb.mjs +0 -1963
  23. package/esm2022/api/ondewo/nlu/context.pb.mjs +0 -1380
  24. package/esm2022/api/ondewo/nlu/context.pbconf.mjs +0 -13
  25. package/esm2022/api/ondewo/nlu/context.pbsc.mjs +0 -225
  26. package/esm2022/api/ondewo/nlu/entity-type.pb.mjs +0 -3909
  27. package/esm2022/api/ondewo/nlu/entity-type.pbconf.mjs +0 -13
  28. package/esm2022/api/ondewo/nlu/entity-type.pbsc.mjs +0 -526
  29. package/esm2022/api/ondewo/nlu/intent.pb.mjs +0 -11252
  30. package/esm2022/api/ondewo/nlu/intent.pbconf.mjs +0 -13
  31. package/esm2022/api/ondewo/nlu/intent.pbsc.mjs +0 -856
  32. package/esm2022/api/ondewo/nlu/operation-metadata.pb.mjs +0 -487
  33. package/esm2022/api/ondewo/nlu/operations.pb.mjs +0 -1003
  34. package/esm2022/api/ondewo/nlu/operations.pbconf.mjs +0 -13
  35. package/esm2022/api/ondewo/nlu/operations.pbsc.mjs +0 -165
  36. package/esm2022/api/ondewo/nlu/project-role.pb.mjs +0 -1061
  37. package/esm2022/api/ondewo/nlu/project-role.pbconf.mjs +0 -13
  38. package/esm2022/api/ondewo/nlu/project-role.pbsc.mjs +0 -195
  39. package/esm2022/api/ondewo/nlu/project-statistics.pb.mjs +0 -460
  40. package/esm2022/api/ondewo/nlu/project-statistics.pbconf.mjs +0 -13
  41. package/esm2022/api/ondewo/nlu/project-statistics.pbsc.mjs +0 -285
  42. package/esm2022/api/ondewo/nlu/server-statistics.pb.mjs +0 -103
  43. package/esm2022/api/ondewo/nlu/server-statistics.pbconf.mjs +0 -13
  44. package/esm2022/api/ondewo/nlu/server-statistics.pbsc.mjs +0 -136
  45. package/esm2022/api/ondewo/nlu/session.pb.mjs +0 -13750
  46. package/esm2022/api/ondewo/nlu/session.pbconf.mjs +0 -13
  47. package/esm2022/api/ondewo/nlu/session.pbsc.mjs +0 -1246
  48. package/esm2022/api/ondewo/nlu/user.pb.mjs +0 -3865
  49. package/esm2022/api/ondewo/nlu/user.pbconf.mjs +0 -13
  50. package/esm2022/api/ondewo/nlu/user.pbsc.mjs +0 -706
  51. package/esm2022/api/ondewo/nlu/utility.pb.mjs +0 -3302
  52. package/esm2022/api/ondewo/nlu/utility.pbconf.mjs +0 -13
  53. package/esm2022/api/ondewo/nlu/utility.pbsc.mjs +0 -284
  54. package/esm2022/api/ondewo/nlu/webhook.pb.mjs +0 -1596
  55. package/esm2022/api/ondewo/nlu/webhook.pbconf.mjs +0 -13
  56. package/esm2022/api/ondewo/nlu/webhook.pbsc.mjs +0 -225
  57. package/esm2022/api/ondewo/s2t/speech-to-text.pb.mjs +0 -8346
  58. package/esm2022/api/ondewo/s2t/speech-to-text.pbconf.mjs +0 -13
  59. package/esm2022/api/ondewo/s2t/speech-to-text.pbsc.mjs +0 -495
  60. package/esm2022/api/ondewo/t2s/text-to-speech.pb.mjs +0 -7974
  61. package/esm2022/api/ondewo/t2s/text-to-speech.pbconf.mjs +0 -13
  62. package/esm2022/api/ondewo/t2s/text-to-speech.pbsc.mjs +0 -525
  63. package/esm2022/ondewo-csi-client-angular.mjs +0 -5
  64. package/esm2022/public-api.mjs +0 -58
@@ -1,13 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- // @ts-nocheck
4
- //
5
- // THIS IS A GENERATED FILE
6
- // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
- import { InjectionToken } from '@angular/core';
8
- /**
9
- * Specific GrpcClientSettings for EntityTypes.
10
- * Use it only if your default settings are not set or the service requires other settings.
11
- */
12
- export const GRPC_ENTITY_TYPES_CLIENT_SETTINGS = new InjectionToken('GRPC_ENTITY_TYPES_CLIENT_SETTINGS');
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXR5cGUucGJjb25mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBpL29uZGV3by9ubHUvZW50aXR5LXR5cGUucGJjb25mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsY0FBYztBQUNkLEVBQUU7QUFDRiwyQkFBMkI7QUFDM0IsOENBQThDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxjQUFjLENBQ2pFLG1DQUFtQyxDQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy9cbi8vIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRVxuLy8gRE8gTk9UIE1PRElGWSBJVCEgWU9VUiBDSEFOR0VTIFdJTEwgQkUgTE9TVFxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpYyBHcnBjQ2xpZW50U2V0dGluZ3MgZm9yIEVudGl0eVR5cGVzLlxuICogVXNlIGl0IG9ubHkgaWYgeW91ciBkZWZhdWx0IHNldHRpbmdzIGFyZSBub3Qgc2V0IG9yIHRoZSBzZXJ2aWNlIHJlcXVpcmVzIG90aGVyIHNldHRpbmdzLlxuICovXG5leHBvcnQgY29uc3QgR1JQQ19FTlRJVFlfVFlQRVNfQ0xJRU5UX1NFVFRJTkdTID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oXG4gICdHUlBDX0VOVElUWV9UWVBFU19DTElFTlRfU0VUVElOR1MnXG4pO1xuIl19
@@ -1,526 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- // @ts-nocheck
4
- //
5
- // THIS IS A GENERATED FILE
6
- // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
- import { Inject, Injectable, Optional } from '@angular/core';
8
- import { GrpcCallType, GrpcMetadata } from '@ngx-grpc/common';
9
- import { GRPC_CLIENT_FACTORY, takeMessages, throwStatusErrors } from '@ngx-grpc/core';
10
- import * as thisProto from './entity-type.pb';
11
- import * as googleProtobuf006 from '@ngx-grpc/well-known-types';
12
- import * as ondewoNlu010 from '../../ondewo/nlu/operations.pb';
13
- import { GRPC_ENTITY_TYPES_CLIENT_SETTINGS } from './entity-type.pbconf';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@ngx-grpc/core";
16
- /**
17
- * Service client implementation for ondewo.nlu.EntityTypes
18
- */
19
- export class EntityTypesClient {
20
- constructor(settings, clientFactory, handler) {
21
- this.handler = handler;
22
- /**
23
- * Raw RPC implementation for each service client method.
24
- * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata.
25
- * Attention: these methods do not throw errors when non-zero status codes are received.
26
- */
27
- this.$raw = {
28
- /**
29
- * Unary call: /ondewo.nlu.EntityTypes/ListEntityTypes
30
- *
31
- * @param requestMessage Request message
32
- * @param requestMetadata Request metadata
33
- * @returns Observable<GrpcEvent<thisProto.ListEntityTypesResponse>>
34
- */
35
- listEntityTypes: (requestData, requestMetadata = new GrpcMetadata()) => {
36
- return this.handler.handle({
37
- type: GrpcCallType.unary,
38
- client: this.client,
39
- path: '/ondewo.nlu.EntityTypes/ListEntityTypes',
40
- requestData,
41
- requestMetadata,
42
- requestClass: thisProto.ListEntityTypesRequest,
43
- responseClass: thisProto.ListEntityTypesResponse
44
- });
45
- },
46
- /**
47
- * Unary call: /ondewo.nlu.EntityTypes/GetEntityType
48
- *
49
- * @param requestMessage Request message
50
- * @param requestMetadata Request metadata
51
- * @returns Observable<GrpcEvent<thisProto.EntityType>>
52
- */
53
- getEntityType: (requestData, requestMetadata = new GrpcMetadata()) => {
54
- return this.handler.handle({
55
- type: GrpcCallType.unary,
56
- client: this.client,
57
- path: '/ondewo.nlu.EntityTypes/GetEntityType',
58
- requestData,
59
- requestMetadata,
60
- requestClass: thisProto.GetEntityTypeRequest,
61
- responseClass: thisProto.EntityType
62
- });
63
- },
64
- /**
65
- * Unary call: /ondewo.nlu.EntityTypes/CreateEntityType
66
- *
67
- * @param requestMessage Request message
68
- * @param requestMetadata Request metadata
69
- * @returns Observable<GrpcEvent<thisProto.EntityType>>
70
- */
71
- createEntityType: (requestData, requestMetadata = new GrpcMetadata()) => {
72
- return this.handler.handle({
73
- type: GrpcCallType.unary,
74
- client: this.client,
75
- path: '/ondewo.nlu.EntityTypes/CreateEntityType',
76
- requestData,
77
- requestMetadata,
78
- requestClass: thisProto.CreateEntityTypeRequest,
79
- responseClass: thisProto.EntityType
80
- });
81
- },
82
- /**
83
- * Unary call: /ondewo.nlu.EntityTypes/UpdateEntityType
84
- *
85
- * @param requestMessage Request message
86
- * @param requestMetadata Request metadata
87
- * @returns Observable<GrpcEvent<thisProto.EntityType>>
88
- */
89
- updateEntityType: (requestData, requestMetadata = new GrpcMetadata()) => {
90
- return this.handler.handle({
91
- type: GrpcCallType.unary,
92
- client: this.client,
93
- path: '/ondewo.nlu.EntityTypes/UpdateEntityType',
94
- requestData,
95
- requestMetadata,
96
- requestClass: thisProto.UpdateEntityTypeRequest,
97
- responseClass: thisProto.EntityType
98
- });
99
- },
100
- /**
101
- * Unary call: /ondewo.nlu.EntityTypes/DeleteEntityType
102
- *
103
- * @param requestMessage Request message
104
- * @param requestMetadata Request metadata
105
- * @returns Observable<GrpcEvent<googleProtobuf006.Empty>>
106
- */
107
- deleteEntityType: (requestData, requestMetadata = new GrpcMetadata()) => {
108
- return this.handler.handle({
109
- type: GrpcCallType.unary,
110
- client: this.client,
111
- path: '/ondewo.nlu.EntityTypes/DeleteEntityType',
112
- requestData,
113
- requestMetadata,
114
- requestClass: thisProto.DeleteEntityTypeRequest,
115
- responseClass: googleProtobuf006.Empty
116
- });
117
- },
118
- /**
119
- * Unary call: /ondewo.nlu.EntityTypes/BatchUpdateEntityTypes
120
- *
121
- * @param requestMessage Request message
122
- * @param requestMetadata Request metadata
123
- * @returns Observable<GrpcEvent<ondewoNlu010.Operation>>
124
- */
125
- batchUpdateEntityTypes: (requestData, requestMetadata = new GrpcMetadata()) => {
126
- return this.handler.handle({
127
- type: GrpcCallType.unary,
128
- client: this.client,
129
- path: '/ondewo.nlu.EntityTypes/BatchUpdateEntityTypes',
130
- requestData,
131
- requestMetadata,
132
- requestClass: thisProto.BatchUpdateEntityTypesRequest,
133
- responseClass: ondewoNlu010.Operation
134
- });
135
- },
136
- /**
137
- * Unary call: /ondewo.nlu.EntityTypes/BatchDeleteEntityTypes
138
- *
139
- * @param requestMessage Request message
140
- * @param requestMetadata Request metadata
141
- * @returns Observable<GrpcEvent<ondewoNlu010.Operation>>
142
- */
143
- batchDeleteEntityTypes: (requestData, requestMetadata = new GrpcMetadata()) => {
144
- return this.handler.handle({
145
- type: GrpcCallType.unary,
146
- client: this.client,
147
- path: '/ondewo.nlu.EntityTypes/BatchDeleteEntityTypes',
148
- requestData,
149
- requestMetadata,
150
- requestClass: thisProto.BatchDeleteEntityTypesRequest,
151
- responseClass: ondewoNlu010.Operation
152
- });
153
- },
154
- /**
155
- * Unary call: /ondewo.nlu.EntityTypes/GetEntity
156
- *
157
- * @param requestMessage Request message
158
- * @param requestMetadata Request metadata
159
- * @returns Observable<GrpcEvent<thisProto.EntityType.Entity>>
160
- */
161
- getEntity: (requestData, requestMetadata = new GrpcMetadata()) => {
162
- return this.handler.handle({
163
- type: GrpcCallType.unary,
164
- client: this.client,
165
- path: '/ondewo.nlu.EntityTypes/GetEntity',
166
- requestData,
167
- requestMetadata,
168
- requestClass: thisProto.GetEntityRequest,
169
- responseClass: thisProto.EntityType.Entity
170
- });
171
- },
172
- /**
173
- * Unary call: /ondewo.nlu.EntityTypes/CreateEntity
174
- *
175
- * @param requestMessage Request message
176
- * @param requestMetadata Request metadata
177
- * @returns Observable<GrpcEvent<thisProto.EntityType.Entity>>
178
- */
179
- createEntity: (requestData, requestMetadata = new GrpcMetadata()) => {
180
- return this.handler.handle({
181
- type: GrpcCallType.unary,
182
- client: this.client,
183
- path: '/ondewo.nlu.EntityTypes/CreateEntity',
184
- requestData,
185
- requestMetadata,
186
- requestClass: thisProto.CreateEntityRequest,
187
- responseClass: thisProto.EntityType.Entity
188
- });
189
- },
190
- /**
191
- * Unary call: /ondewo.nlu.EntityTypes/UpdateEntity
192
- *
193
- * @param requestMessage Request message
194
- * @param requestMetadata Request metadata
195
- * @returns Observable<GrpcEvent<thisProto.EntityType.Entity>>
196
- */
197
- updateEntity: (requestData, requestMetadata = new GrpcMetadata()) => {
198
- return this.handler.handle({
199
- type: GrpcCallType.unary,
200
- client: this.client,
201
- path: '/ondewo.nlu.EntityTypes/UpdateEntity',
202
- requestData,
203
- requestMetadata,
204
- requestClass: thisProto.UpdateEntityRequest,
205
- responseClass: thisProto.EntityType.Entity
206
- });
207
- },
208
- /**
209
- * Unary call: /ondewo.nlu.EntityTypes/DeleteEntity
210
- *
211
- * @param requestMessage Request message
212
- * @param requestMetadata Request metadata
213
- * @returns Observable<GrpcEvent<thisProto.DeleteEntityStatus>>
214
- */
215
- deleteEntity: (requestData, requestMetadata = new GrpcMetadata()) => {
216
- return this.handler.handle({
217
- type: GrpcCallType.unary,
218
- client: this.client,
219
- path: '/ondewo.nlu.EntityTypes/DeleteEntity',
220
- requestData,
221
- requestMetadata,
222
- requestClass: thisProto.DeleteEntityRequest,
223
- responseClass: thisProto.DeleteEntityStatus
224
- });
225
- },
226
- /**
227
- * Unary call: /ondewo.nlu.EntityTypes/BatchCreateEntities
228
- *
229
- * @param requestMessage Request message
230
- * @param requestMetadata Request metadata
231
- * @returns Observable<GrpcEvent<thisProto.BatchEntitiesResponse>>
232
- */
233
- batchCreateEntities: (requestData, requestMetadata = new GrpcMetadata()) => {
234
- return this.handler.handle({
235
- type: GrpcCallType.unary,
236
- client: this.client,
237
- path: '/ondewo.nlu.EntityTypes/BatchCreateEntities',
238
- requestData,
239
- requestMetadata,
240
- requestClass: thisProto.BatchCreateEntitiesRequest,
241
- responseClass: thisProto.BatchEntitiesResponse
242
- });
243
- },
244
- /**
245
- * Unary call: /ondewo.nlu.EntityTypes/BatchUpdateEntities
246
- *
247
- * @param requestMessage Request message
248
- * @param requestMetadata Request metadata
249
- * @returns Observable<GrpcEvent<thisProto.BatchEntitiesResponse>>
250
- */
251
- batchUpdateEntities: (requestData, requestMetadata = new GrpcMetadata()) => {
252
- return this.handler.handle({
253
- type: GrpcCallType.unary,
254
- client: this.client,
255
- path: '/ondewo.nlu.EntityTypes/BatchUpdateEntities',
256
- requestData,
257
- requestMetadata,
258
- requestClass: thisProto.BatchUpdateEntitiesRequest,
259
- responseClass: thisProto.BatchEntitiesResponse
260
- });
261
- },
262
- /**
263
- * Unary call: /ondewo.nlu.EntityTypes/BatchGetEntities
264
- *
265
- * @param requestMessage Request message
266
- * @param requestMetadata Request metadata
267
- * @returns Observable<GrpcEvent<thisProto.BatchEntitiesResponse>>
268
- */
269
- batchGetEntities: (requestData, requestMetadata = new GrpcMetadata()) => {
270
- return this.handler.handle({
271
- type: GrpcCallType.unary,
272
- client: this.client,
273
- path: '/ondewo.nlu.EntityTypes/BatchGetEntities',
274
- requestData,
275
- requestMetadata,
276
- requestClass: thisProto.BatchGetEntitiesRequest,
277
- responseClass: thisProto.BatchEntitiesResponse
278
- });
279
- },
280
- /**
281
- * Unary call: /ondewo.nlu.EntityTypes/BatchDeleteEntities
282
- *
283
- * @param requestMessage Request message
284
- * @param requestMetadata Request metadata
285
- * @returns Observable<GrpcEvent<thisProto.BatchDeleteEntitiesResponse>>
286
- */
287
- batchDeleteEntities: (requestData, requestMetadata = new GrpcMetadata()) => {
288
- return this.handler.handle({
289
- type: GrpcCallType.unary,
290
- client: this.client,
291
- path: '/ondewo.nlu.EntityTypes/BatchDeleteEntities',
292
- requestData,
293
- requestMetadata,
294
- requestClass: thisProto.BatchDeleteEntitiesRequest,
295
- responseClass: thisProto.BatchDeleteEntitiesResponse
296
- });
297
- },
298
- /**
299
- * Unary call: /ondewo.nlu.EntityTypes/ListEntities
300
- *
301
- * @param requestMessage Request message
302
- * @param requestMetadata Request metadata
303
- * @returns Observable<GrpcEvent<thisProto.ListEntitiesResponse>>
304
- */
305
- listEntities: (requestData, requestMetadata = new GrpcMetadata()) => {
306
- return this.handler.handle({
307
- type: GrpcCallType.unary,
308
- client: this.client,
309
- path: '/ondewo.nlu.EntityTypes/ListEntities',
310
- requestData,
311
- requestMetadata,
312
- requestClass: thisProto.ListEntitiesRequest,
313
- responseClass: thisProto.ListEntitiesResponse
314
- });
315
- }
316
- };
317
- this.client = clientFactory.createClient('ondewo.nlu.EntityTypes', settings);
318
- }
319
- /**
320
- * Unary call @/ondewo.nlu.EntityTypes/ListEntityTypes
321
- *
322
- * @param requestMessage Request message
323
- * @param requestMetadata Request metadata
324
- * @returns Observable<thisProto.ListEntityTypesResponse>
325
- */
326
- listEntityTypes(requestData, requestMetadata = new GrpcMetadata()) {
327
- return this.$raw
328
- .listEntityTypes(requestData, requestMetadata)
329
- .pipe(throwStatusErrors(), takeMessages());
330
- }
331
- /**
332
- * Unary call @/ondewo.nlu.EntityTypes/GetEntityType
333
- *
334
- * @param requestMessage Request message
335
- * @param requestMetadata Request metadata
336
- * @returns Observable<thisProto.EntityType>
337
- */
338
- getEntityType(requestData, requestMetadata = new GrpcMetadata()) {
339
- return this.$raw
340
- .getEntityType(requestData, requestMetadata)
341
- .pipe(throwStatusErrors(), takeMessages());
342
- }
343
- /**
344
- * Unary call @/ondewo.nlu.EntityTypes/CreateEntityType
345
- *
346
- * @param requestMessage Request message
347
- * @param requestMetadata Request metadata
348
- * @returns Observable<thisProto.EntityType>
349
- */
350
- createEntityType(requestData, requestMetadata = new GrpcMetadata()) {
351
- return this.$raw
352
- .createEntityType(requestData, requestMetadata)
353
- .pipe(throwStatusErrors(), takeMessages());
354
- }
355
- /**
356
- * Unary call @/ondewo.nlu.EntityTypes/UpdateEntityType
357
- *
358
- * @param requestMessage Request message
359
- * @param requestMetadata Request metadata
360
- * @returns Observable<thisProto.EntityType>
361
- */
362
- updateEntityType(requestData, requestMetadata = new GrpcMetadata()) {
363
- return this.$raw
364
- .updateEntityType(requestData, requestMetadata)
365
- .pipe(throwStatusErrors(), takeMessages());
366
- }
367
- /**
368
- * Unary call @/ondewo.nlu.EntityTypes/DeleteEntityType
369
- *
370
- * @param requestMessage Request message
371
- * @param requestMetadata Request metadata
372
- * @returns Observable<googleProtobuf006.Empty>
373
- */
374
- deleteEntityType(requestData, requestMetadata = new GrpcMetadata()) {
375
- return this.$raw
376
- .deleteEntityType(requestData, requestMetadata)
377
- .pipe(throwStatusErrors(), takeMessages());
378
- }
379
- /**
380
- * Unary call @/ondewo.nlu.EntityTypes/BatchUpdateEntityTypes
381
- *
382
- * @param requestMessage Request message
383
- * @param requestMetadata Request metadata
384
- * @returns Observable<ondewoNlu010.Operation>
385
- */
386
- batchUpdateEntityTypes(requestData, requestMetadata = new GrpcMetadata()) {
387
- return this.$raw
388
- .batchUpdateEntityTypes(requestData, requestMetadata)
389
- .pipe(throwStatusErrors(), takeMessages());
390
- }
391
- /**
392
- * Unary call @/ondewo.nlu.EntityTypes/BatchDeleteEntityTypes
393
- *
394
- * @param requestMessage Request message
395
- * @param requestMetadata Request metadata
396
- * @returns Observable<ondewoNlu010.Operation>
397
- */
398
- batchDeleteEntityTypes(requestData, requestMetadata = new GrpcMetadata()) {
399
- return this.$raw
400
- .batchDeleteEntityTypes(requestData, requestMetadata)
401
- .pipe(throwStatusErrors(), takeMessages());
402
- }
403
- /**
404
- * Unary call @/ondewo.nlu.EntityTypes/GetEntity
405
- *
406
- * @param requestMessage Request message
407
- * @param requestMetadata Request metadata
408
- * @returns Observable<thisProto.EntityType.Entity>
409
- */
410
- getEntity(requestData, requestMetadata = new GrpcMetadata()) {
411
- return this.$raw
412
- .getEntity(requestData, requestMetadata)
413
- .pipe(throwStatusErrors(), takeMessages());
414
- }
415
- /**
416
- * Unary call @/ondewo.nlu.EntityTypes/CreateEntity
417
- *
418
- * @param requestMessage Request message
419
- * @param requestMetadata Request metadata
420
- * @returns Observable<thisProto.EntityType.Entity>
421
- */
422
- createEntity(requestData, requestMetadata = new GrpcMetadata()) {
423
- return this.$raw
424
- .createEntity(requestData, requestMetadata)
425
- .pipe(throwStatusErrors(), takeMessages());
426
- }
427
- /**
428
- * Unary call @/ondewo.nlu.EntityTypes/UpdateEntity
429
- *
430
- * @param requestMessage Request message
431
- * @param requestMetadata Request metadata
432
- * @returns Observable<thisProto.EntityType.Entity>
433
- */
434
- updateEntity(requestData, requestMetadata = new GrpcMetadata()) {
435
- return this.$raw
436
- .updateEntity(requestData, requestMetadata)
437
- .pipe(throwStatusErrors(), takeMessages());
438
- }
439
- /**
440
- * Unary call @/ondewo.nlu.EntityTypes/DeleteEntity
441
- *
442
- * @param requestMessage Request message
443
- * @param requestMetadata Request metadata
444
- * @returns Observable<thisProto.DeleteEntityStatus>
445
- */
446
- deleteEntity(requestData, requestMetadata = new GrpcMetadata()) {
447
- return this.$raw
448
- .deleteEntity(requestData, requestMetadata)
449
- .pipe(throwStatusErrors(), takeMessages());
450
- }
451
- /**
452
- * Unary call @/ondewo.nlu.EntityTypes/BatchCreateEntities
453
- *
454
- * @param requestMessage Request message
455
- * @param requestMetadata Request metadata
456
- * @returns Observable<thisProto.BatchEntitiesResponse>
457
- */
458
- batchCreateEntities(requestData, requestMetadata = new GrpcMetadata()) {
459
- return this.$raw
460
- .batchCreateEntities(requestData, requestMetadata)
461
- .pipe(throwStatusErrors(), takeMessages());
462
- }
463
- /**
464
- * Unary call @/ondewo.nlu.EntityTypes/BatchUpdateEntities
465
- *
466
- * @param requestMessage Request message
467
- * @param requestMetadata Request metadata
468
- * @returns Observable<thisProto.BatchEntitiesResponse>
469
- */
470
- batchUpdateEntities(requestData, requestMetadata = new GrpcMetadata()) {
471
- return this.$raw
472
- .batchUpdateEntities(requestData, requestMetadata)
473
- .pipe(throwStatusErrors(), takeMessages());
474
- }
475
- /**
476
- * Unary call @/ondewo.nlu.EntityTypes/BatchGetEntities
477
- *
478
- * @param requestMessage Request message
479
- * @param requestMetadata Request metadata
480
- * @returns Observable<thisProto.BatchEntitiesResponse>
481
- */
482
- batchGetEntities(requestData, requestMetadata = new GrpcMetadata()) {
483
- return this.$raw
484
- .batchGetEntities(requestData, requestMetadata)
485
- .pipe(throwStatusErrors(), takeMessages());
486
- }
487
- /**
488
- * Unary call @/ondewo.nlu.EntityTypes/BatchDeleteEntities
489
- *
490
- * @param requestMessage Request message
491
- * @param requestMetadata Request metadata
492
- * @returns Observable<thisProto.BatchDeleteEntitiesResponse>
493
- */
494
- batchDeleteEntities(requestData, requestMetadata = new GrpcMetadata()) {
495
- return this.$raw
496
- .batchDeleteEntities(requestData, requestMetadata)
497
- .pipe(throwStatusErrors(), takeMessages());
498
- }
499
- /**
500
- * Unary call @/ondewo.nlu.EntityTypes/ListEntities
501
- *
502
- * @param requestMessage Request message
503
- * @param requestMetadata Request metadata
504
- * @returns Observable<thisProto.ListEntitiesResponse>
505
- */
506
- listEntities(requestData, requestMetadata = new GrpcMetadata()) {
507
- return this.$raw
508
- .listEntities(requestData, requestMetadata)
509
- .pipe(throwStatusErrors(), takeMessages());
510
- }
511
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: EntityTypesClient, deps: [{ token: GRPC_ENTITY_TYPES_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
512
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: EntityTypesClient, providedIn: 'any' }); }
513
- }
514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: EntityTypesClient, decorators: [{
515
- type: Injectable,
516
- args: [{ providedIn: 'any' }]
517
- }], ctorParameters: () => [{ type: undefined, decorators: [{
518
- type: Optional
519
- }, {
520
- type: Inject,
521
- args: [GRPC_ENTITY_TYPES_CLIENT_SETTINGS]
522
- }] }, { type: undefined, decorators: [{
523
- type: Inject,
524
- args: [GRPC_CLIENT_FACTORY]
525
- }] }, { type: i1.GrpcHandler }] });
526
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXR5cGUucGJzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwaS9vbmRld28vbmx1L2VudGl0eS10eXBlLnBic2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixjQUFjO0FBQ2QsRUFBRTtBQUNGLDJCQUEyQjtBQUMzQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFDTCxZQUFZLEVBSVosWUFBWSxFQUNiLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQU85QyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sNEJBQTRCLENBQUM7QUFJaEUsT0FBTyxLQUFLLFlBQVksTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBQ3pFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQTJWNUIsWUFDeUQsUUFBYSxFQUN2QyxhQUFxQyxFQUMxRCxPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBM1Y5Qjs7OztXQUlHO1FBQ0gsU0FBSSxHQUFHO1lBQ0w7Ozs7OztlQU1HO1lBQ0gsZUFBZSxFQUFFLENBQ2YsV0FBNkMsRUFDN0MsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFLEVBQ3NCLEVBQUU7Z0JBQzVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixJQUFJLEVBQUUs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QUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQ1YsV0FBMEMsRUFDMUMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixZQUFZLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUMxQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7K0dBcG1CVSxpQkFBaUIsa0JBNFZOLGlDQUFpQyw2QkFDN0MsbUJBQW1CO21IQTdWbEIsaUJBQWlCLGNBREosS0FBSzs7NEZBQ2xCLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUU7OzBCQTZWNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQ0FBaUM7OzBCQUNwRCxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vXG4vLyBUSElTIElTIEEgR0VORVJBVEVEIEZJTEVcbi8vIERPIE5PVCBNT0RJRlkgSVQhIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIExPU1RcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEdycGNDYWxsVHlwZSxcbiAgR3JwY0NsaWVudCxcbiAgR3JwY0NsaWVudEZhY3RvcnksXG4gIEdycGNFdmVudCxcbiAgR3JwY01ldGFkYXRhXG59IGZyb20gJ0BuZ3gtZ3JwYy9jb21tb24nO1xuaW1wb3J0IHtcbiAgR1JQQ19DTElFTlRfRkFDVE9SWSxcbiAgR3JwY0hhbmRsZXIsXG4gIHRha2VNZXNzYWdlcyxcbiAgdGhyb3dTdGF0dXNFcnJvcnNcbn0gZnJvbSAnQG5neC1ncnBjL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgdGhpc1Byb3RvIGZyb20gJy4vZW50aXR5LXR5cGUucGInO1xuaW1wb3J0ICogYXMgZ29vZ2xlQXBpMDAwIGZyb20gJy4uLy4uL2dvb2dsZS9hcGkvaHR0cC5wYic7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwMSBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwMiBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwMyBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBnb29nbGVBcGkwMDQgZnJvbSAnLi4vLi4vZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wYic7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwNSBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwNiBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBnb29nbGVScGMwMDcgZnJvbSAnLi4vLi4vZ29vZ2xlL3JwYy9zdGF0dXMucGInO1xuaW1wb3J0ICogYXMgb25kZXdvTmx1MDA4IGZyb20gJy4uLy4uL29uZGV3by9ubHUvb3BlcmF0aW9uLW1ldGFkYXRhLnBiJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAwOSBmcm9tICcuLi8uLi9vbmRld28vbmx1L2NvbW1vbi5wYic7XG5pbXBvcnQgKiBhcyBvbmRld29ObHUwMTAgZnJvbSAnLi4vLi4vb25kZXdvL25sdS9vcGVyYXRpb25zLnBiJztcbmltcG9ydCB7IEdSUENfRU5USVRZX1RZUEVTX0NMSUVOVF9TRVRUSU5HUyB9IGZyb20gJy4vZW50aXR5LXR5cGUucGJjb25mJztcbi8qKlxuICogU2VydmljZSBjbGllbnQgaW1wbGVtZW50YXRpb24gZm9yIG9uZGV3by5ubHUuRW50aXR5VHlwZXNcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAnYW55JyB9KVxuZXhwb3J0IGNsYXNzIEVudGl0eVR5cGVzQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEdycGNDbGllbnQ8YW55PjtcblxuICAvKipcbiAgICogUmF3IFJQQyBpbXBsZW1lbnRhdGlvbiBmb3IgZWFjaCBzZXJ2aWNlIGNsaWVudCBtZXRob2QuXG4gICAqIFRoZSByYXcgbWV0aG9kcyBwcm92aWRlIG1vcmUgY29udHJvbCBvbiB0aGUgaW5jb21pbmcgZGF0YSBhbmQgZXZlbnRzLiBFLmcuIHRoZXkgY2FuIGJlIHVzZWZ1bCB0byByZWFkIHN0YXR1cyBgT0tgIG1ldGFkYXRhLlxuICAgKiBBdHRlbnRpb246IHRoZXNlIG1ldGhvZHMgZG8gbm90IHRocm93IGVycm9ycyB3aGVuIG5vbi16ZXJvIHN0YXR1cyBjb2RlcyBhcmUgcmVjZWl2ZWQuXG4gICAqL1xuICAkcmF3ID0ge1xuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkVudGl0eVR5cGVzL0xpc3RFbnRpdHlUeXBlc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0RW50aXR5VHlwZXNSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdEVudGl0eVR5cGVzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RFbnRpdHlUeXBlc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdEVudGl0eVR5cGVzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkVudGl0eVR5cGVzL0xpc3RFbnRpdHlUeXBlcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RFbnRpdHlUeXBlc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0RW50aXR5VHlwZXNSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9HZXRFbnRpdHlUeXBlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkVudGl0eVR5cGU+PlxuICAgICAqL1xuICAgIGdldEVudGl0eVR5cGU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0RW50aXR5VHlwZVJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRW50aXR5VHlwZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuRW50aXR5VHlwZXMvR2V0RW50aXR5VHlwZScsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkdldEVudGl0eVR5cGVSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uRW50aXR5VHlwZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9DcmVhdGVFbnRpdHlUeXBlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkVudGl0eVR5cGU+PlxuICAgICAqL1xuICAgIGNyZWF0ZUVudGl0eVR5cGU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQ3JlYXRlRW50aXR5VHlwZVJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRW50aXR5VHlwZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQ3JlYXRlRW50aXR5VHlwZScsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkNyZWF0ZUVudGl0eVR5cGVSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uRW50aXR5VHlwZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9VcGRhdGVFbnRpdHlUeXBlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkVudGl0eVR5cGU+PlxuICAgICAqL1xuICAgIHVwZGF0ZUVudGl0eVR5cGU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVXBkYXRlRW50aXR5VHlwZVJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRW50aXR5VHlwZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuRW50aXR5VHlwZXMvVXBkYXRlRW50aXR5VHlwZScsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlVwZGF0ZUVudGl0eVR5cGVSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uRW50aXR5VHlwZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9EZWxldGVFbnRpdHlUeXBlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+PlxuICAgICAqL1xuICAgIGRlbGV0ZUVudGl0eVR5cGU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRGVsZXRlRW50aXR5VHlwZVJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuRW50aXR5VHlwZXMvRGVsZXRlRW50aXR5VHlwZScsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkRlbGV0ZUVudGl0eVR5cGVSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBnb29nbGVQcm90b2J1ZjAwNi5FbXB0eVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9CYXRjaFVwZGF0ZUVudGl0eVR5cGVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDEwLk9wZXJhdGlvbj4+XG4gICAgICovXG4gICAgYmF0Y2hVcGRhdGVFbnRpdHlUeXBlczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5CYXRjaFVwZGF0ZUVudGl0eVR5cGVzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAxMC5PcGVyYXRpb24+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkVudGl0eVR5cGVzL0JhdGNoVXBkYXRlRW50aXR5VHlwZXMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5CYXRjaFVwZGF0ZUVudGl0eVR5cGVzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogb25kZXdvTmx1MDEwLk9wZXJhdGlvblxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9CYXRjaERlbGV0ZUVudGl0eVR5cGVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDEwLk9wZXJhdGlvbj4+XG4gICAgICovXG4gICAgYmF0Y2hEZWxldGVFbnRpdHlUeXBlczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5CYXRjaERlbGV0ZUVudGl0eVR5cGVzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAxMC5PcGVyYXRpb24+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkVudGl0eVR5cGVzL0JhdGNoRGVsZXRlRW50aXR5VHlwZXMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5CYXRjaERlbGV0ZUVudGl0eVR5cGVzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogb25kZXdvTmx1MDEwLk9wZXJhdGlvblxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9HZXRFbnRpdHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRW50aXR5VHlwZS5FbnRpdHk+PlxuICAgICAqL1xuICAgIGdldEVudGl0eTogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRFbnRpdHlSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkVudGl0eVR5cGUuRW50aXR5Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9HZXRFbnRpdHknLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5HZXRFbnRpdHlSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uRW50aXR5VHlwZS5FbnRpdHlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQ3JlYXRlRW50aXR5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkVudGl0eVR5cGUuRW50aXR5Pj5cbiAgICAgKi9cbiAgICBjcmVhdGVFbnRpdHk6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQ3JlYXRlRW50aXR5UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5FbnRpdHlUeXBlLkVudGl0eT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQ3JlYXRlRW50aXR5JyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQ3JlYXRlRW50aXR5UmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkVudGl0eVR5cGUuRW50aXR5XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkVudGl0eVR5cGVzL1VwZGF0ZUVudGl0eVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5FbnRpdHlUeXBlLkVudGl0eT4+XG4gICAgICovXG4gICAgdXBkYXRlRW50aXR5OiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlVwZGF0ZUVudGl0eVJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRW50aXR5VHlwZS5FbnRpdHk+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkVudGl0eVR5cGVzL1VwZGF0ZUVudGl0eScsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlVwZGF0ZUVudGl0eVJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5FbnRpdHlUeXBlLkVudGl0eVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9EZWxldGVFbnRpdHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRGVsZXRlRW50aXR5U3RhdHVzPj5cbiAgICAgKi9cbiAgICBkZWxldGVFbnRpdHk6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRGVsZXRlRW50aXR5UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5EZWxldGVFbnRpdHlTdGF0dXM+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkVudGl0eVR5cGVzL0RlbGV0ZUVudGl0eScsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkRlbGV0ZUVudGl0eVJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5EZWxldGVFbnRpdHlTdGF0dXNcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hDcmVhdGVFbnRpdGllc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGJhdGNoQ3JlYXRlRW50aXRpZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hDcmVhdGVFbnRpdGllc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQmF0Y2hFbnRpdGllc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9CYXRjaENyZWF0ZUVudGl0aWVzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQmF0Y2hDcmVhdGVFbnRpdGllc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hVcGRhdGVFbnRpdGllc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGJhdGNoVXBkYXRlRW50aXRpZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hVcGRhdGVFbnRpdGllc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQmF0Y2hFbnRpdGllc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9CYXRjaFVwZGF0ZUVudGl0aWVzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQmF0Y2hVcGRhdGVFbnRpdGllc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hHZXRFbnRpdGllc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGJhdGNoR2V0RW50aXRpZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hHZXRFbnRpdGllc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQmF0Y2hFbnRpdGllc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9CYXRjaEdldEVudGl0aWVzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQmF0Y2hHZXRFbnRpdGllc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hEZWxldGVFbnRpdGllc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5CYXRjaERlbGV0ZUVudGl0aWVzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGJhdGNoRGVsZXRlRW50aXRpZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hEZWxldGVFbnRpdGllc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQmF0Y2hEZWxldGVFbnRpdGllc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9CYXRjaERlbGV0ZUVudGl0aWVzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQmF0Y2hEZWxldGVFbnRpdGllc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5CYXRjaERlbGV0ZUVudGl0aWVzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuRW50aXR5VHlwZXMvTGlzdEVudGl0aWVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RFbnRpdGllc1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsaXN0RW50aXRpZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdEVudGl0aWVzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0RW50aXRpZXNSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuRW50aXR5VHlwZXMvTGlzdEVudGl0aWVzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uTGlzdEVudGl0aWVzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkxpc3RFbnRpdGllc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChHUlBDX0VOVElUWV9UWVBFU19DTElFTlRfU0VUVElOR1MpIHNldHRpbmdzOiBhbnksXG4gICAgQEluamVjdChHUlBDX0NMSUVOVF9GQUNUT1JZKSBjbGllbnRGYWN0b3J5OiBHcnBjQ2xpZW50RmFjdG9yeTxhbnk+LFxuICAgIHByaXZhdGUgaGFuZGxlcjogR3JwY0hhbmRsZXJcbiAgKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRGYWN0b3J5LmNyZWF0ZUNsaWVudChcbiAgICAgICdvbmRld28ubmx1LkVudGl0eVR5cGVzJyxcbiAgICAgIHNldHRpbmdzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9MaXN0RW50aXR5VHlwZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdEVudGl0eVR5cGVzUmVzcG9uc2U+XG4gICAqL1xuICBsaXN0RW50aXR5VHlwZXMoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5MaXN0RW50aXR5VHlwZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0RW50aXR5VHlwZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5saXN0RW50aXR5VHlwZXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9HZXRFbnRpdHlUeXBlXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkVudGl0eVR5cGU+XG4gICAqL1xuICBnZXRFbnRpdHlUeXBlKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0RW50aXR5VHlwZVJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkVudGl0eVR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZ2V0RW50aXR5VHlwZShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkVudGl0eVR5cGVzL0NyZWF0ZUVudGl0eVR5cGVcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uRW50aXR5VHlwZT5cbiAgICovXG4gIGNyZWF0ZUVudGl0eVR5cGUoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DcmVhdGVFbnRpdHlUeXBlUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uRW50aXR5VHlwZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5jcmVhdGVFbnRpdHlUeXBlKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuRW50aXR5VHlwZXMvVXBkYXRlRW50aXR5VHlwZVxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5FbnRpdHlUeXBlPlxuICAgKi9cbiAgdXBkYXRlRW50aXR5VHlwZShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlVwZGF0ZUVudGl0eVR5cGVSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5FbnRpdHlUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLnVwZGF0ZUVudGl0eVR5cGUocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5FbnRpdHlUeXBlcy9EZWxldGVFbnRpdHlUeXBlXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+XG4gICAqL1xuICBkZWxldGVFbnRpdHlUeXBlKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRGVsZXRlRW50aXR5VHlwZVJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZGVsZXRlRW50aXR5VHlwZShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkVudGl0eVR5cGVzL0JhdGNoVXBkYXRlRW50aXR5VHlwZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxvbmRld29ObHUwMTAuT3BlcmF0aW9uPlxuICAgKi9cbiAgYmF0Y2hVcGRhdGVFbnRpdHlUeXBlcyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkJhdGNoVXBkYXRlRW50aXR5VHlwZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPG9uZGV3b05sdTAxMC5PcGVyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuYmF0Y2hVcGRhdGVFbnRpdHlUeXBlcyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkVudGl0eVR5cGVzL0JhdGNoRGVsZXRlRW50aXR5VHlwZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxvbmRld29ObHUwMTAuT3BlcmF0aW9uPlxuICAgKi9cbiAgYmF0Y2hEZWxldGVFbnRpdHlUeXBlcyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkJhdGNoRGVsZXRlRW50aXR5VHlwZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPG9uZGV3b05sdTAxMC5PcGVyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuYmF0Y2hEZWxldGVFbnRpdHlUeXBlcyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkVudGl0eVR5cGVzL0dldEVudGl0eVxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5FbnRpdHlUeXBlLkVudGl0eT5cbiAgICovXG4gIGdldEVudGl0eShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkdldEVudGl0eVJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkVudGl0eVR5cGUuRW50aXR5PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmdldEVudGl0eShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkVudGl0eVR5cGVzL0NyZWF0ZUVudGl0eVxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5FbnRpdHlUeXBlLkVudGl0eT5cbiAgICovXG4gIGNyZWF0ZUVudGl0eShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkNyZWF0ZUVudGl0eVJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkVudGl0eVR5cGUuRW50aXR5PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmNyZWF0ZUVudGl0eShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkVudGl0eVR5cGVzL1VwZGF0ZUVudGl0eVxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5FbnRpdHlUeXBlLkVudGl0eT5cbiAgICovXG4gIHVwZGF0ZUVudGl0eShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlVwZGF0ZUVudGl0eVJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkVudGl0eVR5cGUuRW50aXR5PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLnVwZGF0ZUVudGl0eShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkVudGl0eVR5cGVzL0RlbGV0ZUVudGl0eVxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5EZWxldGVFbnRpdHlTdGF0dXM+XG4gICAqL1xuICBkZWxldGVFbnRpdHkoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5EZWxldGVFbnRpdHlSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5EZWxldGVFbnRpdHlTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZGVsZXRlRW50aXR5KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hDcmVhdGVFbnRpdGllc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2U+XG4gICAqL1xuICBiYXRjaENyZWF0ZUVudGl0aWVzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hDcmVhdGVFbnRpdGllc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkJhdGNoRW50aXRpZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5iYXRjaENyZWF0ZUVudGl0aWVzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hVcGRhdGVFbnRpdGllc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2U+XG4gICAqL1xuICBiYXRjaFVwZGF0ZUVudGl0aWVzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hVcGRhdGVFbnRpdGllc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkJhdGNoRW50aXRpZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5iYXRjaFVwZGF0ZUVudGl0aWVzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hHZXRFbnRpdGllc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5CYXRjaEVudGl0aWVzUmVzcG9uc2U+XG4gICAqL1xuICBiYXRjaEdldEVudGl0aWVzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hHZXRFbnRpdGllc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkJhdGNoRW50aXRpZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5iYXRjaEdldEVudGl0aWVzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuRW50aXR5VHlwZXMvQmF0Y2hEZWxldGVFbnRpdGllc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5CYXRjaERlbGV0ZUVudGl0aWVzUmVzcG9uc2U+XG4gICAqL1xuICBiYXRjaERlbGV0ZUVudGl0aWVzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQmF0Y2hEZWxldGVFbnRpdGllc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkJhdGNoRGVsZXRlRW50aXRpZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5iYXRjaERlbGV0ZUVudGl0aWVzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuRW50aXR5VHlwZXMvTGlzdEVudGl0aWVzXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RFbnRpdGllc1Jlc3BvbnNlPlxuICAgKi9cbiAgbGlzdEVudGl0aWVzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdEVudGl0aWVzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdEVudGl0aWVzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAubGlzdEVudGl0aWVzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cbn1cbiJdfQ==