@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 Utilities.
10
- * Use it only if your default settings are not set or the service requires other settings.
11
- */
12
- export const GRPC_UTILITIES_CLIENT_SETTINGS = new InjectionToken('GRPC_UTILITIES_CLIENT_SETTINGS');
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5wYmNvbmYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9hcGkvb25kZXdvL25sdS91dGlsaXR5LnBiY29uZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLGNBQWM7QUFDZCxFQUFFO0FBQ0YsMkJBQTJCO0FBQzNCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCxnQ0FBZ0MsQ0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vXG4vLyBUSElTIElTIEEgR0VORVJBVEVEIEZJTEVcbi8vIERPIE5PVCBNT0RJRlkgSVQhIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIExPU1RcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWMgR3JwY0NsaWVudFNldHRpbmdzIGZvciBVdGlsaXRpZXMuXG4gKiBVc2UgaXQgb25seSBpZiB5b3VyIGRlZmF1bHQgc2V0dGluZ3MgYXJlIG5vdCBzZXQgb3IgdGhlIHNlcnZpY2UgcmVxdWlyZXMgb3RoZXIgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjb25zdCBHUlBDX1VUSUxJVElFU19DTElFTlRfU0VUVElOR1MgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PihcbiAgJ0dSUENfVVRJTElUSUVTX0NMSUVOVF9TRVRUSU5HUydcbik7XG4iXX0=
@@ -1,284 +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 './utility.pb';
11
- import { GRPC_UTILITIES_CLIENT_SETTINGS } from './utility.pbconf';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@ngx-grpc/core";
14
- /**
15
- * Service client implementation for ondewo.nlu.Utilities
16
- */
17
- export class UtilitiesClient {
18
- constructor(settings, clientFactory, handler) {
19
- this.handler = handler;
20
- /**
21
- * Raw RPC implementation for each service client method.
22
- * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata.
23
- * Attention: these methods do not throw errors when non-zero status codes are received.
24
- */
25
- this.$raw = {
26
- /**
27
- * Unary call: /ondewo.nlu.Utilities/ValidateRegex
28
- *
29
- * @param requestMessage Request message
30
- * @param requestMetadata Request metadata
31
- * @returns Observable<GrpcEvent<thisProto.ValidateRegexResponse>>
32
- */
33
- validateRegex: (requestData, requestMetadata = new GrpcMetadata()) => {
34
- return this.handler.handle({
35
- type: GrpcCallType.unary,
36
- client: this.client,
37
- path: '/ondewo.nlu.Utilities/ValidateRegex',
38
- requestData,
39
- requestMetadata,
40
- requestClass: thisProto.ValidateRegexRequest,
41
- responseClass: thisProto.ValidateRegexResponse
42
- });
43
- },
44
- /**
45
- * Unary call: /ondewo.nlu.Utilities/ValidateEmbeddedRegex
46
- *
47
- * @param requestMessage Request message
48
- * @param requestMetadata Request metadata
49
- * @returns Observable<GrpcEvent<thisProto.ValidateEmbeddedRegexResponse>>
50
- */
51
- validateEmbeddedRegex: (requestData, requestMetadata = new GrpcMetadata()) => {
52
- return this.handler.handle({
53
- type: GrpcCallType.unary,
54
- client: this.client,
55
- path: '/ondewo.nlu.Utilities/ValidateEmbeddedRegex',
56
- requestData,
57
- requestMetadata,
58
- requestClass: thisProto.ValidateEmbeddedRegexRequest,
59
- responseClass: thisProto.ValidateEmbeddedRegexResponse
60
- });
61
- },
62
- /**
63
- * Unary call: /ondewo.nlu.Utilities/CleanAllIntents
64
- *
65
- * @param requestMessage Request message
66
- * @param requestMetadata Request metadata
67
- * @returns Observable<GrpcEvent<thisProto.CleanAllIntentsResponse>>
68
- */
69
- cleanAllIntents: (requestData, requestMetadata = new GrpcMetadata()) => {
70
- return this.handler.handle({
71
- type: GrpcCallType.unary,
72
- client: this.client,
73
- path: '/ondewo.nlu.Utilities/CleanAllIntents',
74
- requestData,
75
- requestMetadata,
76
- requestClass: thisProto.CleanAllIntentsRequest,
77
- responseClass: thisProto.CleanAllIntentsResponse
78
- });
79
- },
80
- /**
81
- * Unary call: /ondewo.nlu.Utilities/CleanIntent
82
- *
83
- * @param requestMessage Request message
84
- * @param requestMetadata Request metadata
85
- * @returns Observable<GrpcEvent<thisProto.CleanIntentResponse>>
86
- */
87
- cleanIntent: (requestData, requestMetadata = new GrpcMetadata()) => {
88
- return this.handler.handle({
89
- type: GrpcCallType.unary,
90
- client: this.client,
91
- path: '/ondewo.nlu.Utilities/CleanIntent',
92
- requestData,
93
- requestMetadata,
94
- requestClass: thisProto.CleanIntentRequest,
95
- responseClass: thisProto.CleanIntentResponse
96
- });
97
- },
98
- /**
99
- * Unary call: /ondewo.nlu.Utilities/CleanAllEntityTypes
100
- *
101
- * @param requestMessage Request message
102
- * @param requestMetadata Request metadata
103
- * @returns Observable<GrpcEvent<thisProto.CleanAllEntityTypesResponse>>
104
- */
105
- cleanAllEntityTypes: (requestData, requestMetadata = new GrpcMetadata()) => {
106
- return this.handler.handle({
107
- type: GrpcCallType.unary,
108
- client: this.client,
109
- path: '/ondewo.nlu.Utilities/CleanAllEntityTypes',
110
- requestData,
111
- requestMetadata,
112
- requestClass: thisProto.CleanAllEntityTypesRequest,
113
- responseClass: thisProto.CleanAllEntityTypesResponse
114
- });
115
- },
116
- /**
117
- * Unary call: /ondewo.nlu.Utilities/CleanEntityType
118
- *
119
- * @param requestMessage Request message
120
- * @param requestMetadata Request metadata
121
- * @returns Observable<GrpcEvent<thisProto.CleanEntityTypeResponse>>
122
- */
123
- cleanEntityType: (requestData, requestMetadata = new GrpcMetadata()) => {
124
- return this.handler.handle({
125
- type: GrpcCallType.unary,
126
- client: this.client,
127
- path: '/ondewo.nlu.Utilities/CleanEntityType',
128
- requestData,
129
- requestMetadata,
130
- requestClass: thisProto.CleanEntityTypeRequest,
131
- responseClass: thisProto.CleanEntityTypeResponse
132
- });
133
- },
134
- /**
135
- * Unary call: /ondewo.nlu.Utilities/AddTrainingPhrases
136
- *
137
- * @param requestMessage Request message
138
- * @param requestMetadata Request metadata
139
- * @returns Observable<GrpcEvent<thisProto.AddTrainingPhrasesResponse>>
140
- */
141
- addTrainingPhrases: (requestData, requestMetadata = new GrpcMetadata()) => {
142
- return this.handler.handle({
143
- type: GrpcCallType.unary,
144
- client: this.client,
145
- path: '/ondewo.nlu.Utilities/AddTrainingPhrases',
146
- requestData,
147
- requestMetadata,
148
- requestClass: thisProto.AddTrainingPhrasesRequest,
149
- responseClass: thisProto.AddTrainingPhrasesResponse
150
- });
151
- },
152
- /**
153
- * Unary call: /ondewo.nlu.Utilities/AddTrainingPhrasesFromCSV
154
- *
155
- * @param requestMessage Request message
156
- * @param requestMetadata Request metadata
157
- * @returns Observable<GrpcEvent<thisProto.AddTrainingPhrasesResponse>>
158
- */
159
- addTrainingPhrasesFromCSV: (requestData, requestMetadata = new GrpcMetadata()) => {
160
- return this.handler.handle({
161
- type: GrpcCallType.unary,
162
- client: this.client,
163
- path: '/ondewo.nlu.Utilities/AddTrainingPhrasesFromCSV',
164
- requestData,
165
- requestMetadata,
166
- requestClass: thisProto.AddTrainingPhrasesFromCSVRequest,
167
- responseClass: thisProto.AddTrainingPhrasesResponse
168
- });
169
- }
170
- };
171
- this.client = clientFactory.createClient('ondewo.nlu.Utilities', settings);
172
- }
173
- /**
174
- * Unary call @/ondewo.nlu.Utilities/ValidateRegex
175
- *
176
- * @param requestMessage Request message
177
- * @param requestMetadata Request metadata
178
- * @returns Observable<thisProto.ValidateRegexResponse>
179
- */
180
- validateRegex(requestData, requestMetadata = new GrpcMetadata()) {
181
- return this.$raw
182
- .validateRegex(requestData, requestMetadata)
183
- .pipe(throwStatusErrors(), takeMessages());
184
- }
185
- /**
186
- * Unary call @/ondewo.nlu.Utilities/ValidateEmbeddedRegex
187
- *
188
- * @param requestMessage Request message
189
- * @param requestMetadata Request metadata
190
- * @returns Observable<thisProto.ValidateEmbeddedRegexResponse>
191
- */
192
- validateEmbeddedRegex(requestData, requestMetadata = new GrpcMetadata()) {
193
- return this.$raw
194
- .validateEmbeddedRegex(requestData, requestMetadata)
195
- .pipe(throwStatusErrors(), takeMessages());
196
- }
197
- /**
198
- * Unary call @/ondewo.nlu.Utilities/CleanAllIntents
199
- *
200
- * @param requestMessage Request message
201
- * @param requestMetadata Request metadata
202
- * @returns Observable<thisProto.CleanAllIntentsResponse>
203
- */
204
- cleanAllIntents(requestData, requestMetadata = new GrpcMetadata()) {
205
- return this.$raw
206
- .cleanAllIntents(requestData, requestMetadata)
207
- .pipe(throwStatusErrors(), takeMessages());
208
- }
209
- /**
210
- * Unary call @/ondewo.nlu.Utilities/CleanIntent
211
- *
212
- * @param requestMessage Request message
213
- * @param requestMetadata Request metadata
214
- * @returns Observable<thisProto.CleanIntentResponse>
215
- */
216
- cleanIntent(requestData, requestMetadata = new GrpcMetadata()) {
217
- return this.$raw
218
- .cleanIntent(requestData, requestMetadata)
219
- .pipe(throwStatusErrors(), takeMessages());
220
- }
221
- /**
222
- * Unary call @/ondewo.nlu.Utilities/CleanAllEntityTypes
223
- *
224
- * @param requestMessage Request message
225
- * @param requestMetadata Request metadata
226
- * @returns Observable<thisProto.CleanAllEntityTypesResponse>
227
- */
228
- cleanAllEntityTypes(requestData, requestMetadata = new GrpcMetadata()) {
229
- return this.$raw
230
- .cleanAllEntityTypes(requestData, requestMetadata)
231
- .pipe(throwStatusErrors(), takeMessages());
232
- }
233
- /**
234
- * Unary call @/ondewo.nlu.Utilities/CleanEntityType
235
- *
236
- * @param requestMessage Request message
237
- * @param requestMetadata Request metadata
238
- * @returns Observable<thisProto.CleanEntityTypeResponse>
239
- */
240
- cleanEntityType(requestData, requestMetadata = new GrpcMetadata()) {
241
- return this.$raw
242
- .cleanEntityType(requestData, requestMetadata)
243
- .pipe(throwStatusErrors(), takeMessages());
244
- }
245
- /**
246
- * Unary call @/ondewo.nlu.Utilities/AddTrainingPhrases
247
- *
248
- * @param requestMessage Request message
249
- * @param requestMetadata Request metadata
250
- * @returns Observable<thisProto.AddTrainingPhrasesResponse>
251
- */
252
- addTrainingPhrases(requestData, requestMetadata = new GrpcMetadata()) {
253
- return this.$raw
254
- .addTrainingPhrases(requestData, requestMetadata)
255
- .pipe(throwStatusErrors(), takeMessages());
256
- }
257
- /**
258
- * Unary call @/ondewo.nlu.Utilities/AddTrainingPhrasesFromCSV
259
- *
260
- * @param requestMessage Request message
261
- * @param requestMetadata Request metadata
262
- * @returns Observable<thisProto.AddTrainingPhrasesResponse>
263
- */
264
- addTrainingPhrasesFromCSV(requestData, requestMetadata = new GrpcMetadata()) {
265
- return this.$raw
266
- .addTrainingPhrasesFromCSV(requestData, requestMetadata)
267
- .pipe(throwStatusErrors(), takeMessages());
268
- }
269
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UtilitiesClient, deps: [{ token: GRPC_UTILITIES_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
270
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UtilitiesClient, providedIn: 'any' }); }
271
- }
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UtilitiesClient, decorators: [{
273
- type: Injectable,
274
- args: [{ providedIn: 'any' }]
275
- }], ctorParameters: () => [{ type: undefined, decorators: [{
276
- type: Optional
277
- }, {
278
- type: Inject,
279
- args: [GRPC_UTILITIES_CLIENT_SETTINGS]
280
- }] }, { type: undefined, decorators: [{
281
- type: Inject,
282
- args: [GRPC_CLIENT_FACTORY]
283
- }] }, { type: i1.GrpcHandler }] });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5wYnNjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBpL29uZGV3by9ubHUvdXRpbGl0eS5wYnNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsY0FBYztBQUNkLEVBQUU7QUFDRiwyQkFBMkI7QUFDM0IsOENBQThDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsWUFBWSxFQUlaLFlBQVksRUFDYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsWUFBWSxFQUNaLGlCQUFpQixFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBVzFDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFDbEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQW1MMUIsWUFDc0QsUUFBYSxFQUNwQyxhQUFxQyxFQUMxRCxPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBbkw5Qjs7OztXQUlHO1FBQ0gsU0FBSSxHQUFHO1lBQ0w7Ozs7OztlQU1HO1lBQ0gsYUFBYSxFQUFFLENBQ2IsV0FBMkMsRUFDM0MsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFLEVBQ29CLEVBQUU7Z0JBQzFELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixJQUFJLEVBQUUscUNBQXFDO29CQUMzQyxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsWUFBWSxFQUFFLFNBQVMsQ0FBQyxvQkFBb0I7b0JBQzVDLGFBQWEsRUFBRSxTQUFTLENBQUMs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SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGtCQUFrQixDQUNoQixXQUFnRCxFQUNoRCxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7YUFDaEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gseUJBQXlCLENBQ3ZCLFdBQXVELEVBQ3ZELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRTtRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IseUJBQXlCLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUN2RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7K0dBelRVLGVBQWUsa0JBb0xKLDhCQUE4Qiw2QkFDMUMsbUJBQW1CO21IQXJMbEIsZUFBZSxjQURGLEtBQUs7OzRGQUNsQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRTs7MEJBcUw1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDhCQUE4Qjs7MEJBQ2pELE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy9cbi8vIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRVxuLy8gRE8gTk9UIE1PRElGWSBJVCEgWU9VUiBDSEFOR0VTIFdJTEwgQkUgTE9TVFxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgR3JwY0NhbGxUeXBlLFxuICBHcnBjQ2xpZW50LFxuICBHcnBjQ2xpZW50RmFjdG9yeSxcbiAgR3JwY0V2ZW50LFxuICBHcnBjTWV0YWRhdGFcbn0gZnJvbSAnQG5neC1ncnBjL2NvbW1vbic7XG5pbXBvcnQge1xuICBHUlBDX0NMSUVOVF9GQUNUT1JZLFxuICBHcnBjSGFuZGxlcixcbiAgdGFrZU1lc3NhZ2VzLFxuICB0aHJvd1N0YXR1c0Vycm9yc1xufSBmcm9tICdAbmd4LWdycGMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyB0aGlzUHJvdG8gZnJvbSAnLi91dGlsaXR5LnBiJztcbmltcG9ydCAqIGFzIGdvb2dsZUFwaTAwMCBmcm9tICcuLi8uLi9nb29nbGUvYXBpL2Fubm90YXRpb25zLnBiJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAwMSBmcm9tICcuLi8uLi9vbmRld28vbmx1L2NvbnRleHQucGInO1xuaW1wb3J0ICogYXMgb25kZXdvTmx1MDAyIGZyb20gJy4uLy4uL29uZGV3by9ubHUvY29tbW9uLnBiJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAwMyBmcm9tICcuLi8uLi9vbmRld28vbmx1L29wZXJhdGlvbnMucGInO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDQgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDUgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDYgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDcgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgb25kZXdvTmx1MDA4IGZyb20gJy4uLy4uL29uZGV3by9ubHUvaW50ZW50LnBiJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAwOSBmcm9tICcuLi8uLi9vbmRld28vbmx1L2VudGl0eS10eXBlLnBiJztcbmltcG9ydCB7IEdSUENfVVRJTElUSUVTX0NMSUVOVF9TRVRUSU5HUyB9IGZyb20gJy4vdXRpbGl0eS5wYmNvbmYnO1xuLyoqXG4gKiBTZXJ2aWNlIGNsaWVudCBpbXBsZW1lbnRhdGlvbiBmb3Igb25kZXdvLm5sdS5VdGlsaXRpZXNcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAnYW55JyB9KVxuZXhwb3J0IGNsYXNzIFV0aWxpdGllc0NsaWVudCB7XG4gIHByaXZhdGUgY2xpZW50OiBHcnBjQ2xpZW50PGFueT47XG5cbiAgLyoqXG4gICAqIFJhdyBSUEMgaW1wbGVtZW50YXRpb24gZm9yIGVhY2ggc2VydmljZSBjbGllbnQgbWV0aG9kLlxuICAgKiBUaGUgcmF3IG1ldGhvZHMgcHJvdmlkZSBtb3JlIGNvbnRyb2wgb24gdGhlIGluY29taW5nIGRhdGEgYW5kIGV2ZW50cy4gRS5nLiB0aGV5IGNhbiBiZSB1c2VmdWwgdG8gcmVhZCBzdGF0dXMgYE9LYCBtZXRhZGF0YS5cbiAgICogQXR0ZW50aW9uOiB0aGVzZSBtZXRob2RzIGRvIG5vdCB0aHJvdyBlcnJvcnMgd2hlbiBub24temVybyBzdGF0dXMgY29kZXMgYXJlIHJlY2VpdmVkLlxuICAgKi9cbiAgJHJhdyA9IHtcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5VdGlsaXRpZXMvVmFsaWRhdGVSZWdleFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5WYWxpZGF0ZVJlZ2V4UmVzcG9uc2U+PlxuICAgICAqL1xuICAgIHZhbGlkYXRlUmVnZXg6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVmFsaWRhdGVSZWdleFJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uVmFsaWRhdGVSZWdleFJlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5VdGlsaXRpZXMvVmFsaWRhdGVSZWdleCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlZhbGlkYXRlUmVnZXhSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uVmFsaWRhdGVSZWdleFJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlV0aWxpdGllcy9WYWxpZGF0ZUVtYmVkZGVkUmVnZXhcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uVmFsaWRhdGVFbWJlZGRlZFJlZ2V4UmVzcG9uc2U+PlxuICAgICAqL1xuICAgIHZhbGlkYXRlRW1iZWRkZWRSZWdleDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5WYWxpZGF0ZUVtYmVkZGVkUmVnZXhSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlZhbGlkYXRlRW1iZWRkZWRSZWdleFJlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5VdGlsaXRpZXMvVmFsaWRhdGVFbWJlZGRlZFJlZ2V4JyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uVmFsaWRhdGVFbWJlZGRlZFJlZ2V4UmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlZhbGlkYXRlRW1iZWRkZWRSZWdleFJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlV0aWxpdGllcy9DbGVhbkFsbEludGVudHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQ2xlYW5BbGxJbnRlbnRzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGNsZWFuQWxsSW50ZW50czogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DbGVhbkFsbEludGVudHNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkNsZWFuQWxsSW50ZW50c1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5VdGlsaXRpZXMvQ2xlYW5BbGxJbnRlbnRzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQ2xlYW5BbGxJbnRlbnRzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkNsZWFuQWxsSW50ZW50c1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlV0aWxpdGllcy9DbGVhbkludGVudFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5DbGVhbkludGVudFJlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBjbGVhbkludGVudDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DbGVhbkludGVudFJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQ2xlYW5JbnRlbnRSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuVXRpbGl0aWVzL0NsZWFuSW50ZW50JyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQ2xlYW5JbnRlbnRSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uQ2xlYW5JbnRlbnRSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5VdGlsaXRpZXMvQ2xlYW5BbGxFbnRpdHlUeXBlc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5DbGVhbkFsbEVudGl0eVR5cGVzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGNsZWFuQWxsRW50aXR5VHlwZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQ2xlYW5BbGxFbnRpdHlUeXBlc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQ2xlYW5BbGxFbnRpdHlUeXBlc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5VdGlsaXRpZXMvQ2xlYW5BbGxFbnRpdHlUeXBlcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkNsZWFuQWxsRW50aXR5VHlwZXNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uQ2xlYW5BbGxFbnRpdHlUeXBlc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlV0aWxpdGllcy9DbGVhbkVudGl0eVR5cGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQ2xlYW5FbnRpdHlUeXBlUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGNsZWFuRW50aXR5VHlwZTogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DbGVhbkVudGl0eVR5cGVSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkNsZWFuRW50aXR5VHlwZVJlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5VdGlsaXRpZXMvQ2xlYW5FbnRpdHlUeXBlJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQ2xlYW5FbnRpdHlUeXBlUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkNsZWFuRW50aXR5VHlwZVJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlV0aWxpdGllcy9BZGRUcmFpbmluZ1BocmFzZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQWRkVHJhaW5pbmdQaHJhc2VzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGFkZFRyYWluaW5nUGhyYXNlczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5BZGRUcmFpbmluZ1BocmFzZXNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5VdGlsaXRpZXMvQWRkVHJhaW5pbmdQaHJhc2VzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQWRkVHJhaW5pbmdQaHJhc2VzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlV0aWxpdGllcy9BZGRUcmFpbmluZ1BocmFzZXNGcm9tQ1NWXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBhZGRUcmFpbmluZ1BocmFzZXNGcm9tQ1NWOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc0Zyb21DU1ZSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5VdGlsaXRpZXMvQWRkVHJhaW5pbmdQaHJhc2VzRnJvbUNTVicsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc0Zyb21DU1ZSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uQWRkVHJhaW5pbmdQaHJhc2VzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEdSUENfVVRJTElUSUVTX0NMSUVOVF9TRVRUSU5HUykgc2V0dGluZ3M6IGFueSxcbiAgICBASW5qZWN0KEdSUENfQ0xJRU5UX0ZBQ1RPUlkpIGNsaWVudEZhY3Rvcnk6IEdycGNDbGllbnRGYWN0b3J5PGFueT4sXG4gICAgcHJpdmF0ZSBoYW5kbGVyOiBHcnBjSGFuZGxlclxuICApIHtcbiAgICB0aGlzLmNsaWVudCA9IGNsaWVudEZhY3RvcnkuY3JlYXRlQ2xpZW50KCdvbmRld28ubmx1LlV0aWxpdGllcycsIHNldHRpbmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5VdGlsaXRpZXMvVmFsaWRhdGVSZWdleFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5WYWxpZGF0ZVJlZ2V4UmVzcG9uc2U+XG4gICAqL1xuICB2YWxpZGF0ZVJlZ2V4KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVmFsaWRhdGVSZWdleFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLlZhbGlkYXRlUmVnZXhSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC52YWxpZGF0ZVJlZ2V4KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuVXRpbGl0aWVzL1ZhbGlkYXRlRW1iZWRkZWRSZWdleFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5WYWxpZGF0ZUVtYmVkZGVkUmVnZXhSZXNwb25zZT5cbiAgICovXG4gIHZhbGlkYXRlRW1iZWRkZWRSZWdleChcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlZhbGlkYXRlRW1iZWRkZWRSZWdleFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLlZhbGlkYXRlRW1iZWRkZWRSZWdleFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLnZhbGlkYXRlRW1iZWRkZWRSZWdleChyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlV0aWxpdGllcy9DbGVhbkFsbEludGVudHNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uQ2xlYW5BbGxJbnRlbnRzUmVzcG9uc2U+XG4gICAqL1xuICBjbGVhbkFsbEludGVudHMoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DbGVhbkFsbEludGVudHNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5DbGVhbkFsbEludGVudHNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5jbGVhbkFsbEludGVudHMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5VdGlsaXRpZXMvQ2xlYW5JbnRlbnRcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uQ2xlYW5JbnRlbnRSZXNwb25zZT5cbiAgICovXG4gIGNsZWFuSW50ZW50KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQ2xlYW5JbnRlbnRSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5DbGVhbkludGVudFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmNsZWFuSW50ZW50KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuVXRpbGl0aWVzL0NsZWFuQWxsRW50aXR5VHlwZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uQ2xlYW5BbGxFbnRpdHlUeXBlc1Jlc3BvbnNlPlxuICAgKi9cbiAgY2xlYW5BbGxFbnRpdHlUeXBlcyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkNsZWFuQWxsRW50aXR5VHlwZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5DbGVhbkFsbEVudGl0eVR5cGVzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuY2xlYW5BbGxFbnRpdHlUeXBlcyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlV0aWxpdGllcy9DbGVhbkVudGl0eVR5cGVcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uQ2xlYW5FbnRpdHlUeXBlUmVzcG9uc2U+XG4gICAqL1xuICBjbGVhbkVudGl0eVR5cGUoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DbGVhbkVudGl0eVR5cGVSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5DbGVhbkVudGl0eVR5cGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5jbGVhbkVudGl0eVR5cGUocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5VdGlsaXRpZXMvQWRkVHJhaW5pbmdQaHJhc2VzXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc1Jlc3BvbnNlPlxuICAgKi9cbiAgYWRkVHJhaW5pbmdQaHJhc2VzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQWRkVHJhaW5pbmdQaHJhc2VzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uQWRkVHJhaW5pbmdQaHJhc2VzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuYWRkVHJhaW5pbmdQaHJhc2VzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuVXRpbGl0aWVzL0FkZFRyYWluaW5nUGhyYXNlc0Zyb21DU1ZcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uQWRkVHJhaW5pbmdQaHJhc2VzUmVzcG9uc2U+XG4gICAqL1xuICBhZGRUcmFpbmluZ1BocmFzZXNGcm9tQ1NWKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQWRkVHJhaW5pbmdQaHJhc2VzRnJvbUNTVlJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkFkZFRyYWluaW5nUGhyYXNlc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmFkZFRyYWluaW5nUGhyYXNlc0Zyb21DU1YocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxufVxuIl19