@revxui/intellibid-client-ts 1.0.65 → 1.0.67
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.
- package/README.md +2 -2
- package/api/advertiserController.service.d.ts +11 -11
- package/api/audienceController.service.d.ts +25 -5
- package/esm2020/api/advertiserController.service.mjs +33 -33
- package/esm2020/api/audienceController.service.mjs +47 -9
- package/esm2020/model/childAudience.mjs +1 -1
- package/esm2020/model/createBucketizedCustomAudienceRequest.mjs +1 -1
- package/esm2020/model/createDsCustomQueryAudienceRequest.mjs +1 -1
- package/esm2020/model/goalResponse.mjs +1 -1
- package/esm2020/model/models.mjs +2 -2
- package/esm2020/model/validateDsQueryRequest.mjs +13 -0
- package/fesm2015/revxui-intellibid-client-ts.mjs +79 -77
- package/fesm2015/revxui-intellibid-client-ts.mjs.map +1 -1
- package/fesm2020/revxui-intellibid-client-ts.mjs +91 -77
- package/fesm2020/revxui-intellibid-client-ts.mjs.map +1 -1
- package/model/childAudience.d.ts +2 -1
- package/model/createBucketizedCustomAudienceRequest.d.ts +2 -1
- package/model/createDsCustomQueryAudienceRequest.d.ts +2 -0
- package/model/goalResponse.d.ts +0 -3
- package/model/models.d.ts +1 -1
- package/model/validateDsQueryRequest.d.ts +14 -0
- package/package.json +1 -1
- package/esm2020/model/audienceSearchRequest.mjs +0 -36
- package/model/audienceSearchRequest.d.ts +0 -45
|
@@ -160,13 +160,22 @@ export class AudienceControllerService {
|
|
|
160
160
|
reportProgress: reportProgress
|
|
161
161
|
});
|
|
162
162
|
}
|
|
163
|
-
getAllAudiences(
|
|
164
|
-
if (
|
|
165
|
-
throw new Error('Required parameter
|
|
163
|
+
getAllAudiences(advertiserId, groupType, sourcePlatform, audienceType, audienceSource, observe = 'body', reportProgress = false) {
|
|
164
|
+
if (advertiserId === null || advertiserId === undefined) {
|
|
165
|
+
throw new Error('Required parameter advertiserId was null or undefined when calling getAllAudiences.');
|
|
166
166
|
}
|
|
167
167
|
let queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
|
|
168
|
-
if (
|
|
169
|
-
queryParameters = queryParameters.set('
|
|
168
|
+
if (groupType !== undefined && groupType !== null) {
|
|
169
|
+
queryParameters = queryParameters.set('groupType', groupType);
|
|
170
|
+
}
|
|
171
|
+
if (sourcePlatform !== undefined && sourcePlatform !== null) {
|
|
172
|
+
queryParameters = queryParameters.set('sourcePlatform', sourcePlatform);
|
|
173
|
+
}
|
|
174
|
+
if (audienceType !== undefined && audienceType !== null) {
|
|
175
|
+
queryParameters = queryParameters.set('audienceType', audienceType);
|
|
176
|
+
}
|
|
177
|
+
if (audienceSource !== undefined && audienceSource !== null) {
|
|
178
|
+
queryParameters = queryParameters.set('audienceSource', audienceSource);
|
|
170
179
|
}
|
|
171
180
|
let headers = this.defaultHeaders;
|
|
172
181
|
// to determine the Accept header
|
|
@@ -179,7 +188,7 @@ export class AudienceControllerService {
|
|
|
179
188
|
}
|
|
180
189
|
// to determine the Content-Type header
|
|
181
190
|
const consumes = [];
|
|
182
|
-
return this.httpClient.request('get', `${this.basePath}/api/audiences`, {
|
|
191
|
+
return this.httpClient.request('get', `${this.basePath}/api/audiences/advertiser/${encodeURIComponent(String(advertiserId))}`, {
|
|
183
192
|
params: queryParameters,
|
|
184
193
|
withCredentials: this.configuration.withCredentials,
|
|
185
194
|
headers: headers,
|
|
@@ -233,7 +242,7 @@ export class AudienceControllerService {
|
|
|
233
242
|
if (httpContentTypeSelected != undefined) {
|
|
234
243
|
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
235
244
|
}
|
|
236
|
-
return this.httpClient.request('
|
|
245
|
+
return this.httpClient.request('post', `${this.basePath}/api/audiences/groups/${encodeURIComponent(String(groupId))}/custom/ds-query/sql`, {
|
|
237
246
|
body: body,
|
|
238
247
|
withCredentials: this.configuration.withCredentials,
|
|
239
248
|
headers: headers,
|
|
@@ -265,7 +274,36 @@ export class AudienceControllerService {
|
|
|
265
274
|
if (httpContentTypeSelected != undefined) {
|
|
266
275
|
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
267
276
|
}
|
|
268
|
-
return this.httpClient.request('
|
|
277
|
+
return this.httpClient.request('post', `${this.basePath}/api/audiences/groups/${encodeURIComponent(String(groupId))}/name`, {
|
|
278
|
+
body: body,
|
|
279
|
+
withCredentials: this.configuration.withCredentials,
|
|
280
|
+
headers: headers,
|
|
281
|
+
observe: observe,
|
|
282
|
+
reportProgress: reportProgress
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
validateDsQuery(body, observe = 'body', reportProgress = false) {
|
|
286
|
+
if (body === null || body === undefined) {
|
|
287
|
+
throw new Error('Required parameter body was null or undefined when calling validateDsQuery.');
|
|
288
|
+
}
|
|
289
|
+
let headers = this.defaultHeaders;
|
|
290
|
+
// to determine the Accept header
|
|
291
|
+
let httpHeaderAccepts = [
|
|
292
|
+
'*/*'
|
|
293
|
+
];
|
|
294
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
295
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
296
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
297
|
+
}
|
|
298
|
+
// to determine the Content-Type header
|
|
299
|
+
const consumes = [
|
|
300
|
+
'application/json'
|
|
301
|
+
];
|
|
302
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
303
|
+
if (httpContentTypeSelected != undefined) {
|
|
304
|
+
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
305
|
+
}
|
|
306
|
+
return this.httpClient.request('post', `${this.basePath}/api/audiences/validate-ds-query`, {
|
|
269
307
|
body: body,
|
|
270
308
|
withCredentials: this.configuration.withCredentials,
|
|
271
309
|
headers: headers,
|
|
@@ -286,4 +324,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
286
324
|
}] }, { type: i2.Configuration, decorators: [{
|
|
287
325
|
type: Optional
|
|
288
326
|
}] }]; } });
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaWVuY2VDb250cm9sbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvYXVkaWVuY2VDb250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRyxDQUFBLHVEQUF1RDtBQUUxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBMkIsZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUNWLE1BQWdDLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUE2QixZQUFZLENBQUM7QUFhL0UsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7Ozs7QUFJckYsTUFBTSxPQUFPLHlCQUF5QjtJQU1sQyxZQUFzQixVQUFzQixFQUFnQyxRQUFnQixFQUFjLGFBQTRCO1FBQWhILGVBQVUsR0FBVixVQUFVLENBQVk7UUFKbEMsYUFBUSxHQUFHLG9DQUFvQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFHdkMsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztTQUM1QjtRQUNELElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZFO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxRQUFrQjtRQUNyQyxNQUFNLElBQUksR0FBRyxxQkFBcUIsQ0FBQztRQUNu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Q0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQ3hJO1lBQ0ksSUFBSSxFQUFFLElBQUk7WUFDVixlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlO1lBQ25ELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQ0osQ0FBQztJQUNOLENBQUM7O3VIQXpaUSx5QkFBeUIsNENBTStCLFNBQVM7MkhBTmpFLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQURyQyxVQUFVOzswQkFPd0MsUUFBUTs7MEJBQUcsTUFBTTsyQkFBQyxTQUFTOzswQkFBcUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZWxsaWJpZCBBUElcbiAqIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUgSW50ZWxsaWJpZCBwbGF0Zm9ybVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi8vKiB0c2xpbnQ6ZGlzYWJsZTpuby11bnVzZWQtdmFyaWFibGUgbWVtYmVyLW9yZGVyaW5nICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLFxuICAgICAgICAgSHR0cFJlc3BvbnNlLCBIdHRwRXZlbnQgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjIH0gICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9lbmNvZGVyJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdWRpZW5jZVJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWwvYXVkaWVuY2VSZXNwb25zZSc7XG5pbXBvcnQgeyBBdWRpZW5jZVNlYXJjaFJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9hdWRpZW5jZVNlYXJjaFJlcXVlc3QnO1xuaW1wb3J0IHsgQ3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZVJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9jcmVhdGVCbG9ja2VkTGl2ZUF1ZGllbmNlUmVxdWVzdCc7XG5pbXBvcnQgeyBDcmVhdGVCdWNrZXRpemVkQ3VzdG9tQXVkaWVuY2VSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvY3JlYXRlQnVja2V0aXplZEN1c3RvbUF1ZGllbmNlUmVxdWVzdCc7XG5pbXBvcnQgeyBDcmVhdGVCdWNrZXRpemVkTGl2ZUF1ZGllbmNlUmVxdWVzdCB9IGZyb20gJy4uL21vZGVsL2NyZWF0ZUJ1Y2tldGl6ZWRMaXZlQXVkaWVuY2VSZXF1ZXN0JztcbmltcG9ydCB7IENyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9jcmVhdGVEc0N1c3RvbVF1ZXJ5QXVkaWVuY2VSZXF1ZXN0JztcbmltcG9ydCB7IFVwZGF0ZUF1ZGllbmNlTmFtZVJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC91cGRhdGVBdWRpZW5jZU5hbWVSZXF1ZXN0JztcbmltcG9ydCB7IFVwZGF0ZURzQ3VzdG9tUXVlcnlTcWxSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvdXBkYXRlRHNDdXN0b21RdWVyeVNxbFJlcXVlc3QnO1xuXG5pbXBvcnQgeyBCQVNFX1BBVEgsIENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXVkaWVuY2VDb250cm9sbGVyU2VydmljZSB7XG5cbiAgICBwcm90ZWN0ZWQgYmFzZVBhdGggPSAnaHR0cDovL2RldjEtaW50ZWxsaWJpZC1zdmMucmV2eC5pbyc7XG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmcsIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgaWYgKGJhc2VQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGggfHwgY29uZmlndXJhdGlvbi5iYXNlUGF0aCB8fCB0aGlzLmJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGNvbnN1bWVzIHN0cmluZ1tdIG1pbWUtdHlwZXNcbiAgICAgKiBAcmV0dXJuIHRydWU6IGNvbnN1bWVzIGNvbnRhaW5zICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2U6IG90aGVyd2lzZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2FuQ29uc3VtZUZvcm0oY29uc3VtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICAgIGZvciAoY29uc3QgY29uc3VtZSBvZiBjb25zdW1lcykge1xuICAgICAgICAgICAgaWYgKGZvcm0gPT09IGNvbnN1bWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZShib2R5OiBDcmVhdGVCbG9ja2VkTGl2ZUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBdWRpZW5jZVJlc3BvbnNlPjtcbiAgICBwdWJsaWMgY3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZShib2R5OiBDcmVhdGVCbG9ja2VkTGl2ZUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgY3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZShib2R5OiBDcmVhdGVCbG9ja2VkTGl2ZUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGNyZWF0ZUJsb2NrZWRMaXZlQXVkaWVuY2UoYm9keTogQ3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGNyZWF0ZUJsb2NrZWRMaXZlQXVkaWVuY2UuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXVkaWVuY2VSZXNwb25zZT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2FwaS9hdWRpZW5jZXMvbGl2ZS9ibG9ja2VkYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGJvZHkgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUJ1Y2tldGl6ZWRDdXN0b20oYm9keTogQ3JlYXRlQnVja2V0aXplZEN1c3RvbUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBdWRpZW5jZVJlc3BvbnNlPjtcbiAgICBwdWJsaWMgY3JlYXRlQnVja2V0aXplZEN1c3RvbShib2R5OiBDcmVhdGVCdWNrZXRpemVkQ3VzdG9tQXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVCdWNrZXRpemVkQ3VzdG9tKGJvZHk6IENyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVCdWNrZXRpemVkQ3VzdG9tKGJvZHk6IENyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGNyZWF0ZUJ1Y2tldGl6ZWRDdXN0b20uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXVkaWVuY2VSZXNwb25zZT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2FwaS9hdWRpZW5jZXMvY3VzdG9tL2J1Y2tldGl6ZWRgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlQnVja2V0aXplZExpdmUoYm9keTogQ3JlYXRlQnVja2V0aXplZExpdmVBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXVkaWVuY2VSZXNwb25zZT47XG4gICAgcHVibGljIGNyZWF0ZUJ1Y2tldGl6ZWRMaXZlKGJvZHk6IENyZWF0ZUJ1Y2tldGl6ZWRMaXZlQXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVCdWNrZXRpemVkTGl2ZShib2R5OiBDcmVhdGVCdWNrZXRpemVkTGl2ZUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGNyZWF0ZUJ1Y2tldGl6ZWRMaXZlKGJvZHk6IENyZWF0ZUJ1Y2tldGl6ZWRMaXZlQXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBjcmVhdGVCdWNrZXRpemVkTGl2ZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBdWRpZW5jZVJlc3BvbnNlPigncG9zdCcsYCR7dGhpcy5iYXNlUGF0aH0vYXBpL2F1ZGllbmNlcy9saXZlL2J1Y2tldGl6ZWRgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRHNDdXN0b21RdWVyeShib2R5OiBDcmVhdGVEc0N1c3RvbVF1ZXJ5QXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEF1ZGllbmNlUmVzcG9uc2U+O1xuICAgIHB1YmxpYyBjcmVhdGVEc0N1c3RvbVF1ZXJ5KGJvZHk6IENyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGNyZWF0ZURzQ3VzdG9tUXVlcnkoYm9keTogQ3JlYXRlRHNDdXN0b21RdWVyeUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGNyZWF0ZURzQ3VzdG9tUXVlcnkoYm9keTogQ3JlYXRlRHNDdXN0b21RdWVyeUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBib2R5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgY3JlYXRlRHNDdXN0b21RdWVyeS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBdWRpZW5jZVJlc3BvbnNlPigncG9zdCcsYCR7dGhpcy5iYXNlUGF0aH0vYXBpL2F1ZGllbmNlcy9jdXN0b20vZHMtcXVlcnlgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gc2VhcmNoUmVxdWVzdCBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsQXVkaWVuY2VzKHNlYXJjaFJlcXVlc3Q6IEF1ZGllbmNlU2VhcmNoUmVxdWVzdCwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcnJheTxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGdldEFsbEF1ZGllbmNlcyhzZWFyY2hSZXF1ZXN0OiBBdWRpZW5jZVNlYXJjaFJlcXVlc3QsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcnJheTxBdWRpZW5jZVJlc3BvbnNlPj4+O1xuICAgIHB1YmxpYyBnZXRBbGxBdWRpZW5jZXMoc2VhcmNoUmVxdWVzdDogQXVkaWVuY2VTZWFyY2hSZXF1ZXN0LCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFycmF5PEF1ZGllbmNlUmVzcG9uc2U+Pj47XG4gICAgcHVibGljIGdldEFsbEF1ZGllbmNlcyhzZWFyY2hSZXF1ZXN0OiBBdWRpZW5jZVNlYXJjaFJlcXVlc3QsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChzZWFyY2hSZXF1ZXN0ID09PSBudWxsIHx8IHNlYXJjaFJlcXVlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgc2VhcmNoUmVxdWVzdCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGdldEFsbEF1ZGllbmNlcy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjKCl9KTtcbiAgICAgICAgaWYgKHNlYXJjaFJlcXVlc3QgIT09IHVuZGVmaW5lZCAmJiBzZWFyY2hSZXF1ZXN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdzZWFyY2hSZXF1ZXN0JywgPGFueT5zZWFyY2hSZXF1ZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBcnJheTxBdWRpZW5jZVJlc3BvbnNlPj4oJ2dldCcsYCR7dGhpcy5iYXNlUGF0aH0vYXBpL2F1ZGllbmNlc2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gZ3JvdXBJZCBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0R3JvdXBTdGF0dXMoZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEF1ZGllbmNlUmVzcG9uc2U+O1xuICAgIHB1YmxpYyBnZXRHcm91cFN0YXR1cyhncm91cElkOiBudW1iZXIsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGdldEdyb3VwU3RhdHVzKGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGdldEdyb3VwU3RhdHVzKGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGdyb3VwSWQgPT09IG51bGwgfHwgZ3JvdXBJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBncm91cElkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgZ2V0R3JvdXBTdGF0dXMuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXVkaWVuY2VSZXNwb25zZT4oJ2dldCcsYCR7dGhpcy5iYXNlUGF0aH0vYXBpL2F1ZGllbmNlcy9ncm91cHMvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGdyb3VwSWQpKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGJvZHkgXG4gICAgICogQHBhcmFtIGdyb3VwSWQgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZURzQ3VzdG9tUXVlcnlTcWwoYm9keTogVXBkYXRlRHNDdXN0b21RdWVyeVNxbFJlcXVlc3QsIGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBdWRpZW5jZVJlc3BvbnNlPjtcbiAgICBwdWJsaWMgdXBkYXRlRHNDdXN0b21RdWVyeVNxbChib2R5OiBVcGRhdGVEc0N1c3RvbVF1ZXJ5U3FsUmVxdWVzdCwgZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGRhdGVEc0N1c3RvbVF1ZXJ5U3FsKGJvZHk6IFVwZGF0ZURzQ3VzdG9tUXVlcnlTcWxSZXF1ZXN0LCBncm91cElkOiBudW1iZXIsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGRhdGVEc0N1c3RvbVF1ZXJ5U3FsKGJvZHk6IFVwZGF0ZURzQ3VzdG9tUXVlcnlTcWxSZXF1ZXN0LCBncm91cElkOiBudW1iZXIsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHVwZGF0ZURzQ3VzdG9tUXVlcnlTcWwuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBJZCA9PT0gbnVsbCB8fCBncm91cElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGdyb3VwSWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVEc0N1c3RvbVF1ZXJ5U3FsLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PEF1ZGllbmNlUmVzcG9uc2U+KCdwYXRjaCcsYCR7dGhpcy5iYXNlUGF0aH0vYXBpL2F1ZGllbmNlcy9ncm91cHMvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGdyb3VwSWQpKX0vY3VzdG9tL2RzLXF1ZXJ5L3NxbGAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBib2R5IFxuICAgICAqIEBwYXJhbSBncm91cElkIFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVOYW1lKGJvZHk6IFVwZGF0ZUF1ZGllbmNlTmFtZVJlcXVlc3QsIGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBdWRpZW5jZVJlc3BvbnNlPjtcbiAgICBwdWJsaWMgdXBkYXRlTmFtZShib2R5OiBVcGRhdGVBdWRpZW5jZU5hbWVSZXF1ZXN0LCBncm91cElkOiBudW1iZXIsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIHVwZGF0ZU5hbWUoYm9keTogVXBkYXRlQXVkaWVuY2VOYW1lUmVxdWVzdCwgZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgdXBkYXRlTmFtZShib2R5OiBVcGRhdGVBdWRpZW5jZU5hbWVSZXF1ZXN0LCBncm91cElkOiBudW1iZXIsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHVwZGF0ZU5hbWUuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBJZCA9PT0gbnVsbCB8fCBncm91cElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGdyb3VwSWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVOYW1lLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PEF1ZGllbmNlUmVzcG9uc2U+KCdwYXRjaCcsYCR7dGhpcy5iYXNlUGF0aH0vYXBpL2F1ZGllbmNlcy9ncm91cHMvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGdyb3VwSWQpKX0vbmFtZWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaWVuY2VDb250cm9sbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvYXVkaWVuY2VDb250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRyxDQUFBLHVEQUF1RDtBQUUxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBMkIsZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUNWLE1BQWdDLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUE2QixZQUFZLENBQUM7QUFhL0UsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7Ozs7QUFJckYsTUFBTSxPQUFPLHlCQUF5QjtJQU1sQyxZQUFzQixVQUFzQixFQUFnQyxRQUFnQixFQUFjLGFBQTRCO1FBQWhILGVBQVUsR0FBVixVQUFVLENBQVk7UUFKbEMsYUFBUSxHQUFHLG9DQUFvQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFHdkMsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztTQUM1QjtRQUNELElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZFO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxRQUFrQjtRQUNyQyxNQUFNLElBQUksR0FBRyxxQkFBcUIsQ0FBQztRQUNu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Q0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RyxJQUFJLHdCQUF3QixJQUFJLFNBQVMsRUFBRTtZQUN2QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztTQUM3RDtRQUVELHVDQUF1QztRQUN2QyxNQUFNLFFBQVEsR0FBYTtZQUN2QixrQkFBa0I7U0FDckIsQ0FBQztRQUNGLE1BQU0sdUJBQXVCLEdBQXVCLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekcsSUFBSSx1QkFBdUIsSUFBSSxTQUFTLEVBQUU7WUFDdEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLHVCQUF1QixDQUFDLENBQUM7U0FDbEU7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUE2QixNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxrQ0FBa0MsRUFDaEg7WUFDSSxJQUFJLEVBQUUsSUFBSTtZQUNWLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWU7WUFDbkQsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsY0FBYyxFQUFFLGNBQWM7U0FDakMsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7dUhBemRRLHlCQUF5Qiw0Q0FNK0IsU0FBUzsySEFOakUseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVU7OzBCQU93QyxRQUFROzswQkFBRyxNQUFNOzJCQUFDLFNBQVM7OzBCQUFxQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlbGxpYmlkIEFQSVxuICogQVBJIGRvY3VtZW50YXRpb24gZm9yIHRoZSBJbnRlbGxpYmlkIHBsYXRmb3JtXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqLy8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2VuY29kZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF1ZGllbmNlUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbC9hdWRpZW5jZVJlc3BvbnNlJztcbmltcG9ydCB7IENyZWF0ZUJsb2NrZWRMaXZlQXVkaWVuY2VSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvY3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZVJlcXVlc3QnO1xuaW1wb3J0IHsgQ3JlYXRlQnVja2V0aXplZEN1c3RvbUF1ZGllbmNlUmVxdWVzdCB9IGZyb20gJy4uL21vZGVsL2NyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QnO1xuaW1wb3J0IHsgQ3JlYXRlQnVja2V0aXplZExpdmVBdWRpZW5jZVJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9jcmVhdGVCdWNrZXRpemVkTGl2ZUF1ZGllbmNlUmVxdWVzdCc7XG5pbXBvcnQgeyBDcmVhdGVEc0N1c3RvbVF1ZXJ5QXVkaWVuY2VSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvY3JlYXRlRHNDdXN0b21RdWVyeUF1ZGllbmNlUmVxdWVzdCc7XG5pbXBvcnQgeyBVcGRhdGVBdWRpZW5jZU5hbWVSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvdXBkYXRlQXVkaWVuY2VOYW1lUmVxdWVzdCc7XG5pbXBvcnQgeyBVcGRhdGVEc0N1c3RvbVF1ZXJ5U3FsUmVxdWVzdCB9IGZyb20gJy4uL21vZGVsL3VwZGF0ZURzQ3VzdG9tUXVlcnlTcWxSZXF1ZXN0JztcbmltcG9ydCB7IFZhbGlkYXRlRHNRdWVyeVJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC92YWxpZGF0ZURzUXVlcnlSZXF1ZXN0JztcblxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1ZGllbmNlQ29udHJvbGxlclNlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIGJhc2VQYXRoID0gJ2h0dHA6Ly9kZXYxLWludGVsbGliaWQtc3ZjLnJldnguaW8nO1xuICAgIHB1YmxpYyBkZWZhdWx0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIHB1YmxpYyBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKUBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIGlmIChiYXNlUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoIHx8IGNvbmZpZ3VyYXRpb24uYmFzZVBhdGggfHwgdGhpcy5iYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjb25zdW1lcyBzdHJpbmdbXSBtaW1lLXR5cGVzXG4gICAgICogQHJldHVybiB0cnVlOiBjb25zdW1lcyBjb250YWlucyAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlOiBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbkNvbnN1bWVGb3JtKGNvbnN1bWVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtID0gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbnN1bWUgb2YgY29uc3VtZXMpIHtcbiAgICAgICAgICAgIGlmIChmb3JtID09PSBjb25zdW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGJvZHkgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUJsb2NrZWRMaXZlQXVkaWVuY2UoYm9keTogQ3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXVkaWVuY2VSZXNwb25zZT47XG4gICAgcHVibGljIGNyZWF0ZUJsb2NrZWRMaXZlQXVkaWVuY2UoYm9keTogQ3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIGNyZWF0ZUJsb2NrZWRMaXZlQXVkaWVuY2UoYm9keTogQ3JlYXRlQmxvY2tlZExpdmVBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVCbG9ja2VkTGl2ZUF1ZGllbmNlKGJvZHk6IENyZWF0ZUJsb2NrZWRMaXZlQXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBjcmVhdGVCbG9ja2VkTGl2ZUF1ZGllbmNlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PEF1ZGllbmNlUmVzcG9uc2U+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS9hcGkvYXVkaWVuY2VzL2xpdmUvYmxvY2tlZGAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBib2R5IFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVCdWNrZXRpemVkQ3VzdG9tKGJvZHk6IENyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXVkaWVuY2VSZXNwb25zZT47XG4gICAgcHVibGljIGNyZWF0ZUJ1Y2tldGl6ZWRDdXN0b20oYm9keTogQ3JlYXRlQnVja2V0aXplZEN1c3RvbUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgY3JlYXRlQnVja2V0aXplZEN1c3RvbShib2R5OiBDcmVhdGVCdWNrZXRpemVkQ3VzdG9tQXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgY3JlYXRlQnVja2V0aXplZEN1c3RvbShib2R5OiBDcmVhdGVCdWNrZXRpemVkQ3VzdG9tQXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBjcmVhdGVCdWNrZXRpemVkQ3VzdG9tLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PEF1ZGllbmNlUmVzcG9uc2U+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS9hcGkvYXVkaWVuY2VzL2N1c3RvbS9idWNrZXRpemVkYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGJvZHkgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUJ1Y2tldGl6ZWRMaXZlKGJvZHk6IENyZWF0ZUJ1Y2tldGl6ZWRMaXZlQXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEF1ZGllbmNlUmVzcG9uc2U+O1xuICAgIHB1YmxpYyBjcmVhdGVCdWNrZXRpemVkTGl2ZShib2R5OiBDcmVhdGVCdWNrZXRpemVkTGl2ZUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgY3JlYXRlQnVja2V0aXplZExpdmUoYm9keTogQ3JlYXRlQnVja2V0aXplZExpdmVBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVCdWNrZXRpemVkTGl2ZShib2R5OiBDcmVhdGVCdWNrZXRpemVkTGl2ZUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBib2R5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgY3JlYXRlQnVja2V0aXplZExpdmUuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXVkaWVuY2VSZXNwb25zZT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2FwaS9hdWRpZW5jZXMvbGl2ZS9idWNrZXRpemVkYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGJvZHkgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZURzQ3VzdG9tUXVlcnkoYm9keTogQ3JlYXRlRHNDdXN0b21RdWVyeUF1ZGllbmNlUmVxdWVzdCwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBdWRpZW5jZVJlc3BvbnNlPjtcbiAgICBwdWJsaWMgY3JlYXRlRHNDdXN0b21RdWVyeShib2R5OiBDcmVhdGVEc0N1c3RvbVF1ZXJ5QXVkaWVuY2VSZXF1ZXN0LCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVEc0N1c3RvbVF1ZXJ5KGJvZHk6IENyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVEc0N1c3RvbVF1ZXJ5KGJvZHk6IENyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGNyZWF0ZURzQ3VzdG9tUXVlcnkuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXVkaWVuY2VSZXNwb25zZT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2FwaS9hdWRpZW5jZXMvY3VzdG9tL2RzLXF1ZXJ5YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGFkdmVydGlzZXJJZCBcbiAgICAgKiBAcGFyYW0gZ3JvdXBUeXBlIFxuICAgICAqIEBwYXJhbSBzb3VyY2VQbGF0Zm9ybSBcbiAgICAgKiBAcGFyYW0gYXVkaWVuY2VUeXBlIFxuICAgICAqIEBwYXJhbSBhdWRpZW5jZVNvdXJjZSBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsQXVkaWVuY2VzKGFkdmVydGlzZXJJZDogbnVtYmVyLCBncm91cFR5cGU/OiBzdHJpbmcsIHNvdXJjZVBsYXRmb3JtPzogc3RyaW5nLCBhdWRpZW5jZVR5cGU/OiBzdHJpbmcsIGF1ZGllbmNlU291cmNlPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFycmF5PEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgZ2V0QWxsQXVkaWVuY2VzKGFkdmVydGlzZXJJZDogbnVtYmVyLCBncm91cFR5cGU/OiBzdHJpbmcsIHNvdXJjZVBsYXRmb3JtPzogc3RyaW5nLCBhdWRpZW5jZVR5cGU/OiBzdHJpbmcsIGF1ZGllbmNlU291cmNlPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXJyYXk8QXVkaWVuY2VSZXNwb25zZT4+PjtcbiAgICBwdWJsaWMgZ2V0QWxsQXVkaWVuY2VzKGFkdmVydGlzZXJJZDogbnVtYmVyLCBncm91cFR5cGU/OiBzdHJpbmcsIHNvdXJjZVBsYXRmb3JtPzogc3RyaW5nLCBhdWRpZW5jZVR5cGU/OiBzdHJpbmcsIGF1ZGllbmNlU291cmNlPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFycmF5PEF1ZGllbmNlUmVzcG9uc2U+Pj47XG4gICAgcHVibGljIGdldEFsbEF1ZGllbmNlcyhhZHZlcnRpc2VySWQ6IG51bWJlciwgZ3JvdXBUeXBlPzogc3RyaW5nLCBzb3VyY2VQbGF0Zm9ybT86IHN0cmluZywgYXVkaWVuY2VUeXBlPzogc3RyaW5nLCBhdWRpZW5jZVNvdXJjZT86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGFkdmVydGlzZXJJZCA9PT0gbnVsbCB8fCBhZHZlcnRpc2VySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYWR2ZXJ0aXNlcklkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgZ2V0QWxsQXVkaWVuY2VzLicpO1xuICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChncm91cFR5cGUgIT09IHVuZGVmaW5lZCAmJiBncm91cFR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ2dyb3VwVHlwZScsIDxhbnk+Z3JvdXBUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc291cmNlUGxhdGZvcm0gIT09IHVuZGVmaW5lZCAmJiBzb3VyY2VQbGF0Zm9ybSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnc291cmNlUGxhdGZvcm0nLCA8YW55PnNvdXJjZVBsYXRmb3JtKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXVkaWVuY2VUeXBlICE9PSB1bmRlZmluZWQgJiYgYXVkaWVuY2VUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdhdWRpZW5jZVR5cGUnLCA8YW55PmF1ZGllbmNlVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF1ZGllbmNlU291cmNlICE9PSB1bmRlZmluZWQgJiYgYXVkaWVuY2VTb3VyY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ2F1ZGllbmNlU291cmNlJywgPGFueT5hdWRpZW5jZVNvdXJjZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXJyYXk8QXVkaWVuY2VSZXNwb25zZT4+KCdnZXQnLGAke3RoaXMuYmFzZVBhdGh9L2FwaS9hdWRpZW5jZXMvYWR2ZXJ0aXNlci8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYWR2ZXJ0aXNlcklkKSl9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBncm91cElkIFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRHcm91cFN0YXR1cyhncm91cElkOiBudW1iZXIsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXVkaWVuY2VSZXNwb25zZT47XG4gICAgcHVibGljIGdldEdyb3VwU3RhdHVzKGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgZ2V0R3JvdXBTdGF0dXMoZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEF1ZGllbmNlUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgZ2V0R3JvdXBTdGF0dXMoZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoZ3JvdXBJZCA9PT0gbnVsbCB8fCBncm91cElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGdyb3VwSWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRHcm91cFN0YXR1cy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBdWRpZW5jZVJlc3BvbnNlPignZ2V0JyxgJHt0aGlzLmJhc2VQYXRofS9hcGkvYXVkaWVuY2VzL2dyb3Vwcy8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZ3JvdXBJZCkpfWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gZ3JvdXBJZCBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlRHNDdXN0b21RdWVyeVNxbChib2R5OiBVcGRhdGVEc0N1c3RvbVF1ZXJ5U3FsUmVxdWVzdCwgZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEF1ZGllbmNlUmVzcG9uc2U+O1xuICAgIHB1YmxpYyB1cGRhdGVEc0N1c3RvbVF1ZXJ5U3FsKGJvZHk6IFVwZGF0ZURzQ3VzdG9tUXVlcnlTcWxSZXF1ZXN0LCBncm91cElkOiBudW1iZXIsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIHVwZGF0ZURzQ3VzdG9tUXVlcnlTcWwoYm9keTogVXBkYXRlRHNDdXN0b21RdWVyeVNxbFJlcXVlc3QsIGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIHVwZGF0ZURzQ3VzdG9tUXVlcnlTcWwoYm9keTogVXBkYXRlRHNDdXN0b21RdWVyeVNxbFJlcXVlc3QsIGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBib2R5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlRHNDdXN0b21RdWVyeVNxbC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChncm91cElkID09PSBudWxsIHx8IGdyb3VwSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgZ3JvdXBJZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHVwZGF0ZURzQ3VzdG9tUXVlcnlTcWwuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXVkaWVuY2VSZXNwb25zZT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2FwaS9hdWRpZW5jZXMvZ3JvdXBzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhncm91cElkKSl9L2N1c3RvbS9kcy1xdWVyeS9zcWxgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gZ3JvdXBJZCBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlTmFtZShib2R5OiBVcGRhdGVBdWRpZW5jZU5hbWVSZXF1ZXN0LCBncm91cElkOiBudW1iZXIsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXVkaWVuY2VSZXNwb25zZT47XG4gICAgcHVibGljIHVwZGF0ZU5hbWUoYm9keTogVXBkYXRlQXVkaWVuY2VOYW1lUmVxdWVzdCwgZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXVkaWVuY2VSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGRhdGVOYW1lKGJvZHk6IFVwZGF0ZUF1ZGllbmNlTmFtZVJlcXVlc3QsIGdyb3VwSWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBdWRpZW5jZVJlc3BvbnNlPj47XG4gICAgcHVibGljIHVwZGF0ZU5hbWUoYm9keTogVXBkYXRlQXVkaWVuY2VOYW1lUmVxdWVzdCwgZ3JvdXBJZDogbnVtYmVyLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVOYW1lLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdyb3VwSWQgPT09IG51bGwgfHwgZ3JvdXBJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBncm91cElkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlTmFtZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBdWRpZW5jZVJlc3BvbnNlPigncG9zdCcsYCR7dGhpcy5iYXNlUGF0aH0vYXBpL2F1ZGllbmNlcy9ncm91cHMvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGdyb3VwSWQpKX0vbmFtZWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBib2R5IFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURzUXVlcnkoYm9keTogVmFsaWRhdGVEc1F1ZXJ5UmVxdWVzdCwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZzsgfT47XG4gICAgcHVibGljIHZhbGlkYXRlRHNRdWVyeShib2R5OiBWYWxpZGF0ZURzUXVlcnlSZXF1ZXN0LCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8eyBba2V5OiBzdHJpbmddOiBzdHJpbmc7IH0+PjtcbiAgICBwdWJsaWMgdmFsaWRhdGVEc1F1ZXJ5KGJvZHk6IFZhbGlkYXRlRHNRdWVyeVJlcXVlc3QsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8eyBba2V5OiBzdHJpbmddOiBzdHJpbmc7IH0+PjtcbiAgICBwdWJsaWMgdmFsaWRhdGVEc1F1ZXJ5KGJvZHk6IFZhbGlkYXRlRHNRdWVyeVJlcXVlc3QsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHZhbGlkYXRlRHNRdWVyeS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDx7IFtrZXk6IHN0cmluZ106IHN0cmluZzsgfT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2FwaS9hdWRpZW5jZXMvdmFsaWRhdGUtZHMtcXVlcnlgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -35,4 +35,4 @@ export var ChildAudience;
|
|
|
35
35
|
EQ: 'EQ'
|
|
36
36
|
};
|
|
37
37
|
})(ChildAudience || (ChildAudience = {}));
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRBdWRpZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL2NoaWxkQXVkaWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQThCSCxNQUFNLEtBQVcsYUFBYSxDQTZCN0I7QUE3QkQsV0FBaUIsYUFBYTtJQUViLDhCQUFnQixHQUFHO1FBQzVCLE9BQU8sRUFBRSxTQUE2QjtRQUN0QyxTQUFTLEVBQUUsV0FBK0I7S0FDN0MsQ0FBQztJQUVXLGdDQUFrQixHQUFHO1FBQzlCLFVBQVUsRUFBRSxZQUFrQztRQUM5QyxFQUFFLEVBQUUsSUFBMEI7S0FDakMsQ0FBQztJQUVXLDRCQUFjLEdBQUc7UUFDMUIsR0FBRyxFQUFFLEtBQXVCO1FBQzVCLEdBQUcsRUFBRSxLQUF1QjtLQUMvQixDQUFDO0lBRVcsaUNBQW1CLEdBQUc7UUFDL0IsSUFBSSxFQUFFLE1BQTZCO1FBQ25DLEtBQUssRUFBRSxPQUE4QjtRQUNyQyxPQUFPLEVBQUUsVUFBaUM7UUFDMUMsTUFBTSxFQUFFLFFBQStCO1FBQ3ZDLE9BQU8sRUFBRSxTQUFnQztLQUM1QyxDQUFDO0lBRVcsa0NBQW9CLEdBQUc7UUFDaEMsR0FBRyxFQUFFLEtBQTZCO1FBQ2xDLEVBQUUsRUFBRSxJQUE0QjtLQUNuQyxDQUFDO0FBQ04sQ0FBQyxFQTdCZ0IsYUFBYSxLQUFiLGFBQWEsUUE2QjdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlbGxpYmlkIEFQSVxuICogQVBJIGRvY3VtZW50YXRpb24gZm9yIHRoZSBJbnRlbGxpYmlkIHBsYXRmb3JtXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIENoaWxkQXVkaWVuY2UgeyBcbiAgICBpZD86IG51bWJlcjtcbiAgICBhZEFjY291bnRJZD86IHN0cmluZztcbiAgICBwbGF0Zm9ybUlkPzogbnVtYmVyO1xuICAgIHVzZXJHaXZlbk5hbWU/OiBzdHJpbmc7XG4gICAgdXNlckRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGdlbmVyYXRlZE5hbWU/OiBzdHJpbmc7XG4gICAgZ2VuZXJhdGVkRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgcGxhdGZvcm1BdWRpZW5jZUlkPzogc3RyaW5nO1xuICAgIGNyZWF0aW9uU3RhdHVzPzogc3RyaW5nO1xuICAgIGNyZWF0ZWRBdD86IERhdGU7XG4gICAgdXBkYXRlZEF0PzogRGF0ZTtcbiAgICBhdWRpZW5jZVR5cGU/OiBDaGlsZEF1ZGllbmNlLkF1ZGllbmNlVHlwZUVudW07XG4gICAgcHJvZHVjdFNldElkPzogc3RyaW5nO1xuICAgIGV2ZW50TmFtZT86IHN0cmluZztcbiAgICBhdWRpZW5jZVNvdXJjZT86IENoaWxkQXVkaWVuY2UuQXVkaWVuY2VTb3VyY2VFbnVtO1xuICAgIHVwbG9hZE1vZGU/OiBDaGlsZEF1ZGllbmNlLlVwbG9hZE1vZGVFbnVtO1xuICAgIHVwbG9hZEZyZXF1ZW5jeT86IENoaWxkQXVkaWVuY2UuVXBsb2FkRnJlcXVlbmN5RW51bTtcbiAgICBsYXN0UnVuQXQ/OiBEYXRlO1xuICAgIG5leHRSdW5BdD86IERhdGU7XG4gICAgbGFzdFJ1blN0YXR1cz86IHN0cmluZztcbiAgICBsYXN0UnVuRXJyb3I/OiBzdHJpbmc7XG4gICAgZHNTcWw/OiBzdHJpbmc7XG4gICAgYmxvY2tlZEV2ZW50Q29uZmlnSWQ/OiBudW1iZXI7XG4gICAgYmxvY2tpbmdPcGVyYXRvcj86IENoaWxkQXVkaWVuY2UuQmxvY2tpbmdPcGVyYXRvckVudW07XG4gICAgYmxvY2tlZFBvc2l0aW9uPzogbnVtYmVyO1xuICAgIGJsb2NraW5nRGF5cz86IG51bWJlcjtcbn1cbmV4cG9ydCBuYW1lc3BhY2UgQ2hpbGRBdWRpZW5jZSB7XG4gICAgZXhwb3J0IHR5cGUgQXVkaWVuY2VUeXBlRW51bSA9ICdEWU5BTUlDJyB8ICdDQVRBTE9HVUUnO1xuICAgIGV4cG9ydCBjb25zdCBBdWRpZW5jZVR5cGVFbnVtID0ge1xuICAgICAgICBEWU5BTUlDOiAnRFlOQU1JQycgYXMgQXVkaWVuY2VUeXBlRW51bSxcbiAgICAgICAgQ0FUQUxPR1VFOiAnQ0FUQUxPR1VFJyBhcyBBdWRpZW5jZVR5cGVFbnVtXG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBBdWRpZW5jZVNvdXJjZUVudW0gPSAnSU5URUxMSUJJRCcgfCAnRFMnO1xuICAgIGV4cG9ydCBjb25zdCBBdWRpZW5jZVNvdXJjZUVudW0gPSB7XG4gICAgICAgIElOVEVMTElCSUQ6ICdJTlRFTExJQklEJyBhcyBBdWRpZW5jZVNvdXJjZUVudW0sXG4gICAgICAgIERTOiAnRFMnIGFzIEF1ZGllbmNlU291cmNlRW51bVxuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgVXBsb2FkTW9kZUVudW0gPSAnQVBJJyB8ICdDU1YnO1xuICAgIGV4cG9ydCBjb25zdCBVcGxvYWRNb2RlRW51bSA9IHtcbiAgICAgICAgQVBJOiAnQVBJJyBhcyBVcGxvYWRNb2RlRW51bSxcbiAgICAgICAgQ1NWOiAnQ1NWJyBhcyBVcGxvYWRNb2RlRW51bVxuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgVXBsb2FkRnJlcXVlbmN5RW51bSA9ICdPTkNFJyB8ICdEQUlMWScgfCAnRVZFUllfMkQnIHwgJ1dFRUtMWScgfCAnTU9OVEhMWSc7XG4gICAgZXhwb3J0IGNvbnN0IFVwbG9hZEZyZXF1ZW5jeUVudW0gPSB7XG4gICAgICAgIE9OQ0U6ICdPTkNFJyBhcyBVcGxvYWRGcmVxdWVuY3lFbnVtLFxuICAgICAgICBEQUlMWTogJ0RBSUxZJyBhcyBVcGxvYWRGcmVxdWVuY3lFbnVtLFxuICAgICAgICBFVkVSWTJEOiAnRVZFUllfMkQnIGFzIFVwbG9hZEZyZXF1ZW5jeUVudW0sXG4gICAgICAgIFdFRUtMWTogJ1dFRUtMWScgYXMgVXBsb2FkRnJlcXVlbmN5RW51bSxcbiAgICAgICAgTU9OVEhMWTogJ01PTlRITFknIGFzIFVwbG9hZEZyZXF1ZW5jeUVudW1cbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIEJsb2NraW5nT3BlcmF0b3JFbnVtID0gJ0dURScgfCAnRVEnO1xuICAgIGV4cG9ydCBjb25zdCBCbG9ja2luZ09wZXJhdG9yRW51bSA9IHtcbiAgICAgICAgR1RFOiAnR1RFJyBhcyBCbG9ja2luZ09wZXJhdG9yRW51bSxcbiAgICAgICAgRVE6ICdFUScgYXMgQmxvY2tpbmdPcGVyYXRvckVudW1cbiAgICB9O1xufSJdfQ==
|
|
@@ -34,4 +34,4 @@ export var CreateBucketizedCustomAudienceRequest;
|
|
|
34
34
|
MONTHLY: 'MONTHLY'
|
|
35
35
|
};
|
|
36
36
|
})(CreateBucketizedCustomAudienceRequest || (CreateBucketizedCustomAudienceRequest = {}));
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQnVja2V0aXplZEN1c3RvbUF1ZGllbmNlUmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL2NyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQW1CSCxNQUFNLEtBQVcscUNBQXFDLENBMkJyRDtBQTNCRCxXQUFpQixxQ0FBcUM7SUFFckMsd0RBQWtCLEdBQUc7UUFDOUIsSUFBSSxFQUFFLE1BQTRCO1FBQ2xDLE1BQU0sRUFBRSxRQUE4QjtRQUN0QyxRQUFRLEVBQUUsVUFBZ0M7UUFDMUMsTUFBTSxFQUFFLFFBQThCO1FBQ3RDLEtBQUssRUFBRSxPQUE2QjtLQUN2QyxDQUFDO0lBRVcsd0RBQWtCLEdBQUc7UUFDOUIsVUFBVSxFQUFFLFlBQWtDO1FBQzlDLEVBQUUsRUFBRSxJQUEwQjtLQUNqQyxDQUFDO0lBRVcsb0RBQWMsR0FBRztRQUMxQixHQUFHLEVBQUUsS0FBdUI7UUFDNUIsR0FBRyxFQUFFLEtBQXVCO0tBQy9CLENBQUM7SUFFVyx5REFBbUIsR0FBRztRQUMvQixJQUFJLEVBQUUsTUFBNkI7UUFDbkMsS0FBSyxFQUFFLE9BQThCO1FBQ3JDLE9BQU8sRUFBRSxVQUFpQztRQUMxQyxNQUFNLEVBQUUsUUFBK0I7UUFDdkMsT0FBTyxFQUFFLFNBQWdDO0tBQzVDLENBQUM7QUFDTixDQUFDLEVBM0JnQixxQ0FBcUMsS0FBckMscUNBQXFDLFFBMkJyRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZWxsaWJpZCBBUElcbiAqIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUgSW50ZWxsaWJpZCBwbGF0Zm9ybVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVCdWNrZXRpemVkQ3VzdG9tQXVkaWVuY2VSZXF1ZXN0IHsgXG4gICAgYWR2ZXJ0aXNlcklkOiBudW1iZXI7XG4gICAgc291cmNlUGxhdGZvcm06IENyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QuU291cmNlUGxhdGZvcm1FbnVtO1xuICAgIGFkQWNjb3VudElkOiBzdHJpbmc7XG4gICAgYXVkaWVuY2VTb3VyY2U6IENyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QuQXVkaWVuY2VTb3VyY2VFbnVtO1xuICAgIGJ1c2luZXNzWm9uZUlkOiBudW1iZXI7XG4gICAgZ29hbEV2ZW50TmFtZUlkOiBudW1iZXI7XG4gICAgb3NJZDogbnVtYmVyO1xuICAgIGNvdW50cnlJZHM/OiBBcnJheTxudW1iZXI+O1xuICAgIHRhcmdldFB1cmNoYXNlcnNPbmx5PzogYm9vbGVhbjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgdXBsb2FkTW9kZTogQ3JlYXRlQnVja2V0aXplZEN1c3RvbUF1ZGllbmNlUmVxdWVzdC5VcGxvYWRNb2RlRW51bTtcbiAgICB1cGxvYWRGcmVxdWVuY3k6IENyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QuVXBsb2FkRnJlcXVlbmN5RW51bTtcbiAgICBkc1NxbD86IHN0cmluZztcbiAgICBuZXh0UnVuQXQ/OiBEYXRlO1xufVxuZXhwb3J0IG5hbWVzcGFjZSBDcmVhdGVCdWNrZXRpemVkQ3VzdG9tQXVkaWVuY2VSZXF1ZXN0IHtcbiAgICBleHBvcnQgdHlwZSBTb3VyY2VQbGF0Zm9ybUVudW0gPSAnTUVUQScgfCAnVElLVE9LJyB8ICdTTkFQQ0hBVCcgfCAnR09PR0xFJyB8ICdMWUFEUyc7XG4gICAgZXhwb3J0IGNvbnN0IFNvdXJjZVBsYXRmb3JtRW51bSA9IHtcbiAgICAgICAgTUVUQTogJ01FVEEnIGFzIFNvdXJjZVBsYXRmb3JtRW51bSxcbiAgICAgICAgVElLVE9LOiAnVElLVE9LJyBhcyBTb3VyY2VQbGF0Zm9ybUVudW0sXG4gICAgICAgIFNOQVBDSEFUOiAnU05BUENIQVQnIGFzIFNvdXJjZVBsYXRmb3JtRW51bSxcbiAgICAgICAgR09PR0xFOiAnR09PR0xFJyBhcyBTb3VyY2VQbGF0Zm9ybUVudW0sXG4gICAgICAgIExZQURTOiAnTFlBRFMnIGFzIFNvdXJjZVBsYXRmb3JtRW51bVxuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgQXVkaWVuY2VTb3VyY2VFbnVtID0gJ0lOVEVMTElCSUQnIHwgJ0RTJztcbiAgICBleHBvcnQgY29uc3QgQXVkaWVuY2VTb3VyY2VFbnVtID0ge1xuICAgICAgICBJTlRFTExJQklEOiAnSU5URUxMSUJJRCcgYXMgQXVkaWVuY2VTb3VyY2VFbnVtLFxuICAgICAgICBEUzogJ0RTJyBhcyBBdWRpZW5jZVNvdXJjZUVudW1cbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFVwbG9hZE1vZGVFbnVtID0gJ0FQSScgfCAnQ1NWJztcbiAgICBleHBvcnQgY29uc3QgVXBsb2FkTW9kZUVudW0gPSB7XG4gICAgICAgIEFQSTogJ0FQSScgYXMgVXBsb2FkTW9kZUVudW0sXG4gICAgICAgIENTVjogJ0NTVicgYXMgVXBsb2FkTW9kZUVudW1cbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFVwbG9hZEZyZXF1ZW5jeUVudW0gPSAnT05DRScgfCAnREFJTFknIHwgJ0VWRVJZXzJEJyB8ICdXRUVLTFknIHwgJ01PTlRITFknO1xuICAgIGV4cG9ydCBjb25zdCBVcGxvYWRGcmVxdWVuY3lFbnVtID0ge1xuICAgICAgICBPTkNFOiAnT05DRScgYXMgVXBsb2FkRnJlcXVlbmN5RW51bSxcbiAgICAgICAgREFJTFk6ICdEQUlMWScgYXMgVXBsb2FkRnJlcXVlbmN5RW51bSxcbiAgICAgICAgRVZFUlkyRDogJ0VWRVJZXzJEJyBhcyBVcGxvYWRGcmVxdWVuY3lFbnVtLFxuICAgICAgICBXRUVLTFk6ICdXRUVLTFknIGFzIFVwbG9hZEZyZXF1ZW5jeUVudW0sXG4gICAgICAgIE1PTlRITFk6ICdNT05USExZJyBhcyBVcGxvYWRGcmVxdWVuY3lFbnVtXG4gICAgfTtcbn0iXX0=
|
|
@@ -30,4 +30,4 @@ export var CreateDsCustomQueryAudienceRequest;
|
|
|
30
30
|
MONTHLY: 'MONTHLY'
|
|
31
31
|
};
|
|
32
32
|
})(CreateDsCustomQueryAudienceRequest || (CreateDsCustomQueryAudienceRequest = {}));
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRHNDdXN0b21RdWVyeUF1ZGllbmNlUmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL2NyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQWdCSCxNQUFNLEtBQVcsa0NBQWtDLENBc0JsRDtBQXRCRCxXQUFpQixrQ0FBa0M7SUFFbEMscURBQWtCLEdBQUc7UUFDOUIsSUFBSSxFQUFFLE1BQTRCO1FBQ2xDLE1BQU0sRUFBRSxRQUE4QjtRQUN0QyxRQUFRLEVBQUUsVUFBZ0M7UUFDMUMsTUFBTSxFQUFFLFFBQThCO1FBQ3RDLEtBQUssRUFBRSxPQUE2QjtLQUN2QyxDQUFDO0lBRVcsaURBQWMsR0FBRztRQUMxQixHQUFHLEVBQUUsS0FBdUI7UUFDNUIsR0FBRyxFQUFFLEtBQXVCO0tBQy9CLENBQUM7SUFFVyxzREFBbUIsR0FBRztRQUMvQixJQUFJLEVBQUUsTUFBNkI7UUFDbkMsS0FBSyxFQUFFLE9BQThCO1FBQ3JDLE9BQU8sRUFBRSxVQUFpQztRQUMxQyxNQUFNLEVBQUUsUUFBK0I7UUFDdkMsT0FBTyxFQUFFLFNBQWdDO0tBQzVDLENBQUM7QUFDTixDQUFDLEVBdEJnQixrQ0FBa0MsS0FBbEMsa0NBQWtDLFFBc0JsRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZWxsaWJpZCBBUElcbiAqIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUgSW50ZWxsaWJpZCBwbGF0Zm9ybVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVEc0N1c3RvbVF1ZXJ5QXVkaWVuY2VSZXF1ZXN0IHsgXG4gICAgYWR2ZXJ0aXNlcklkOiBudW1iZXI7XG4gICAgc291cmNlUGxhdGZvcm06IENyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QuU291cmNlUGxhdGZvcm1FbnVtO1xuICAgIGFkQWNjb3VudElkOiBzdHJpbmc7XG4gICAgYnVzaW5lc3Nab25lSWQ6IG51bWJlcjtcbiAgICBnb2FsRXZlbnROYW1lSWQ6IG51bWJlcjtcbiAgICBvc0lkOiBudW1iZXI7XG4gICAgZHNTcWw6IHN0cmluZztcbiAgICB0YXJnZXRQdXJjaGFzZXJzT25seT86IGJvb2xlYW47XG4gICAgdXBsb2FkTW9kZTogQ3JlYXRlRHNDdXN0b21RdWVyeUF1ZGllbmNlUmVxdWVzdC5VcGxvYWRNb2RlRW51bTtcbiAgICB1cGxvYWRGcmVxdWVuY3k6IENyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QuVXBsb2FkRnJlcXVlbmN5RW51bTtcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBuZXh0UnVuQXQ6IERhdGU7XG59XG5leHBvcnQgbmFtZXNwYWNlIENyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3Qge1xuICAgIGV4cG9ydCB0eXBlIFNvdXJjZVBsYXRmb3JtRW51bSA9ICdNRVRBJyB8ICdUSUtUT0snIHwgJ1NOQVBDSEFUJyB8ICdHT09HTEUnIHwgJ0xZQURTJztcbiAgICBleHBvcnQgY29uc3QgU291cmNlUGxhdGZvcm1FbnVtID0ge1xuICAgICAgICBNRVRBOiAnTUVUQScgYXMgU291cmNlUGxhdGZvcm1FbnVtLFxuICAgICAgICBUSUtUT0s6ICdUSUtUT0snIGFzIFNvdXJjZVBsYXRmb3JtRW51bSxcbiAgICAgICAgU05BUENIQVQ6ICdTTkFQQ0hBVCcgYXMgU291cmNlUGxhdGZvcm1FbnVtLFxuICAgICAgICBHT09HTEU6ICdHT09HTEUnIGFzIFNvdXJjZVBsYXRmb3JtRW51bSxcbiAgICAgICAgTFlBRFM6ICdMWUFEUycgYXMgU291cmNlUGxhdGZvcm1FbnVtXG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBVcGxvYWRNb2RlRW51bSA9ICdBUEknIHwgJ0NTVic7XG4gICAgZXhwb3J0IGNvbnN0IFVwbG9hZE1vZGVFbnVtID0ge1xuICAgICAgICBBUEk6ICdBUEknIGFzIFVwbG9hZE1vZGVFbnVtLFxuICAgICAgICBDU1Y6ICdDU1YnIGFzIFVwbG9hZE1vZGVFbnVtXG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBVcGxvYWRGcmVxdWVuY3lFbnVtID0gJ09OQ0UnIHwgJ0RBSUxZJyB8ICdFVkVSWV8yRCcgfCAnV0VFS0xZJyB8ICdNT05USExZJztcbiAgICBleHBvcnQgY29uc3QgVXBsb2FkRnJlcXVlbmN5RW51bSA9IHtcbiAgICAgICAgT05DRTogJ09OQ0UnIGFzIFVwbG9hZEZyZXF1ZW5jeUVudW0sXG4gICAgICAgIERBSUxZOiAnREFJTFknIGFzIFVwbG9hZEZyZXF1ZW5jeUVudW0sXG4gICAgICAgIEVWRVJZMkQ6ICdFVkVSWV8yRCcgYXMgVXBsb2FkRnJlcXVlbmN5RW51bSxcbiAgICAgICAgV0VFS0xZOiAnV0VFS0xZJyBhcyBVcGxvYWRGcmVxdWVuY3lFbnVtLFxuICAgICAgICBNT05USExZOiAnTU9OVEhMWScgYXMgVXBsb2FkRnJlcXVlbmN5RW51bVxuICAgIH07XG59Il19
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29hbFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvZ29hbFJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVsbGliaWQgQVBJXG4gKiBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEludGVsbGliaWQgcGxhdGZvcm1cbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgR29hbFJlc3BvbnNlIHsgXG4gICAgaW50ZWxsaWJpZEV2ZW50SWQ/OiBudW1iZXI7XG4gICAgaW50ZWxsaWJpZEV2ZW50TmFtZT86IHN0cmluZztcbn0iXX0=
|
package/esm2020/model/models.mjs
CHANGED
|
@@ -3,7 +3,6 @@ export * from './advertiserMmpConversionEventResponse';
|
|
|
3
3
|
export * from './advertiserResponse';
|
|
4
4
|
export * from './advertiserSearchResponse';
|
|
5
5
|
export * from './audienceResponse';
|
|
6
|
-
export * from './audienceSearchRequest';
|
|
7
6
|
export * from './blockedEventResponse';
|
|
8
7
|
export * from './businessZoneResponse';
|
|
9
8
|
export * from './campaignChangeLogResponse';
|
|
@@ -32,4 +31,5 @@ export * from './scheduledUpdates';
|
|
|
32
31
|
export * from './sortObject';
|
|
33
32
|
export * from './updateAudienceNameRequest';
|
|
34
33
|
export * from './updateDsCustomQuerySqlRequest';
|
|
35
|
-
|
|
34
|
+
export * from './validateDsQueryRequest';
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRBY2NvdW50UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyTW1wQ29udmVyc2lvbkV2ZW50UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyU2VhcmNoUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpZW5jZVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmxvY2tlZEV2ZW50UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9idXNpbmVzc1pvbmVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhbXBhaWduQ2hhbmdlTG9nUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnbkluc2lnaHRSZWNvcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnbkluc2lnaHRzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnblJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnblJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vY2FtcGFpZ25TZWFyY2hSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2NoaWxkQXVkaWVuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3VudHJ5UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVCbG9ja2VkTGl2ZUF1ZGllbmNlUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZUJ1Y2tldGl6ZWRDdXN0b21BdWRpZW5jZVJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVCdWNrZXRpemVkTGl2ZUF1ZGllbmNlUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZURzQ3VzdG9tUXVlcnlBdWRpZW5jZVJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9nb2FsUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vU1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZUFkdmVydGlzZXJSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VDYW1wYWlnbkNoYW5nZUxvZ1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZUNhbXBhaWduUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlYWJsZU9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL3BsYXRmb3JtUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0U2V0UmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3RTZXRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkdWxlVXBkYXRlUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkdWxlZFVwZGF0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3J0T2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkYXRlQXVkaWVuY2VOYW1lUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3VwZGF0ZURzQ3VzdG9tUXVlcnlTcWxSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGVEc1F1ZXJ5UmVxdWVzdCc7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intellibid API
|
|
3
|
+
* API documentation for the Intellibid platform
|
|
4
|
+
*
|
|
5
|
+
* OpenAPI spec version: 1.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by the swagger code generator program.
|
|
9
|
+
* https://github.com/swagger-api/swagger-codegen.git
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVEc1F1ZXJ5UmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL3ZhbGlkYXRlRHNRdWVyeVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZWxsaWJpZCBBUElcbiAqIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUgSW50ZWxsaWJpZCBwbGF0Zm9ybVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0ZURzUXVlcnlSZXF1ZXN0IHsgXG4gICAgcXVlcnk6IHN0cmluZztcbn0iXX0=
|
|
@@ -124,6 +124,38 @@ class AdvertiserControllerService {
|
|
|
124
124
|
}
|
|
125
125
|
return false;
|
|
126
126
|
}
|
|
127
|
+
addProductSet(body, id, observe = 'body', reportProgress = false) {
|
|
128
|
+
if (body === null || body === undefined) {
|
|
129
|
+
throw new Error('Required parameter body was null or undefined when calling addProductSet.');
|
|
130
|
+
}
|
|
131
|
+
if (id === null || id === undefined) {
|
|
132
|
+
throw new Error('Required parameter id was null or undefined when calling addProductSet.');
|
|
133
|
+
}
|
|
134
|
+
let headers = this.defaultHeaders;
|
|
135
|
+
// to determine the Accept header
|
|
136
|
+
let httpHeaderAccepts = [
|
|
137
|
+
'*/*'
|
|
138
|
+
];
|
|
139
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
140
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
141
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
142
|
+
}
|
|
143
|
+
// to determine the Content-Type header
|
|
144
|
+
const consumes = [
|
|
145
|
+
'application/json'
|
|
146
|
+
];
|
|
147
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
148
|
+
if (httpContentTypeSelected != undefined) {
|
|
149
|
+
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
150
|
+
}
|
|
151
|
+
return this.httpClient.request('post', `${this.basePath}/api/advertiser/${encodeURIComponent(String(id))}/product-sets`, {
|
|
152
|
+
body: body,
|
|
153
|
+
withCredentials: this.configuration.withCredentials,
|
|
154
|
+
headers: headers,
|
|
155
|
+
observe: observe,
|
|
156
|
+
reportProgress: reportProgress
|
|
157
|
+
});
|
|
158
|
+
}
|
|
127
159
|
getAdAccounts(id, observe = 'body', reportProgress = false) {
|
|
128
160
|
if (id === null || id === undefined) {
|
|
129
161
|
throw new Error('Required parameter id was null or undefined when calling getAdAccounts.');
|
|
@@ -332,38 +364,6 @@ class AdvertiserControllerService {
|
|
|
332
364
|
reportProgress: reportProgress
|
|
333
365
|
});
|
|
334
366
|
}
|
|
335
|
-
upsertProductSet(body, id, observe = 'body', reportProgress = false) {
|
|
336
|
-
if (body === null || body === undefined) {
|
|
337
|
-
throw new Error('Required parameter body was null or undefined when calling upsertProductSet.');
|
|
338
|
-
}
|
|
339
|
-
if (id === null || id === undefined) {
|
|
340
|
-
throw new Error('Required parameter id was null or undefined when calling upsertProductSet.');
|
|
341
|
-
}
|
|
342
|
-
let headers = this.defaultHeaders;
|
|
343
|
-
// to determine the Accept header
|
|
344
|
-
let httpHeaderAccepts = [
|
|
345
|
-
'*/*'
|
|
346
|
-
];
|
|
347
|
-
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
348
|
-
if (httpHeaderAcceptSelected != undefined) {
|
|
349
|
-
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
350
|
-
}
|
|
351
|
-
// to determine the Content-Type header
|
|
352
|
-
const consumes = [
|
|
353
|
-
'application/json'
|
|
354
|
-
];
|
|
355
|
-
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
356
|
-
if (httpContentTypeSelected != undefined) {
|
|
357
|
-
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
358
|
-
}
|
|
359
|
-
return this.httpClient.request('post', `${this.basePath}/api/advertiser/${encodeURIComponent(String(id))}/product-sets`, {
|
|
360
|
-
body: body,
|
|
361
|
-
withCredentials: this.configuration.withCredentials,
|
|
362
|
-
headers: headers,
|
|
363
|
-
observe: observe,
|
|
364
|
-
reportProgress: reportProgress
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
367
|
}
|
|
368
368
|
AdvertiserControllerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvertiserControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
369
369
|
AdvertiserControllerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvertiserControllerService });
|
|
@@ -534,13 +534,22 @@ class AudienceControllerService {
|
|
|
534
534
|
reportProgress: reportProgress
|
|
535
535
|
});
|
|
536
536
|
}
|
|
537
|
-
getAllAudiences(
|
|
538
|
-
if (
|
|
539
|
-
throw new Error('Required parameter
|
|
537
|
+
getAllAudiences(advertiserId, groupType, sourcePlatform, audienceType, audienceSource, observe = 'body', reportProgress = false) {
|
|
538
|
+
if (advertiserId === null || advertiserId === undefined) {
|
|
539
|
+
throw new Error('Required parameter advertiserId was null or undefined when calling getAllAudiences.');
|
|
540
540
|
}
|
|
541
541
|
let queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
|
|
542
|
-
if (
|
|
543
|
-
queryParameters = queryParameters.set('
|
|
542
|
+
if (groupType !== undefined && groupType !== null) {
|
|
543
|
+
queryParameters = queryParameters.set('groupType', groupType);
|
|
544
|
+
}
|
|
545
|
+
if (sourcePlatform !== undefined && sourcePlatform !== null) {
|
|
546
|
+
queryParameters = queryParameters.set('sourcePlatform', sourcePlatform);
|
|
547
|
+
}
|
|
548
|
+
if (audienceType !== undefined && audienceType !== null) {
|
|
549
|
+
queryParameters = queryParameters.set('audienceType', audienceType);
|
|
550
|
+
}
|
|
551
|
+
if (audienceSource !== undefined && audienceSource !== null) {
|
|
552
|
+
queryParameters = queryParameters.set('audienceSource', audienceSource);
|
|
544
553
|
}
|
|
545
554
|
let headers = this.defaultHeaders;
|
|
546
555
|
// to determine the Accept header
|
|
@@ -553,7 +562,7 @@ class AudienceControllerService {
|
|
|
553
562
|
}
|
|
554
563
|
// to determine the Content-Type header
|
|
555
564
|
const consumes = [];
|
|
556
|
-
return this.httpClient.request('get', `${this.basePath}/api/audiences`, {
|
|
565
|
+
return this.httpClient.request('get', `${this.basePath}/api/audiences/advertiser/${encodeURIComponent(String(advertiserId))}`, {
|
|
557
566
|
params: queryParameters,
|
|
558
567
|
withCredentials: this.configuration.withCredentials,
|
|
559
568
|
headers: headers,
|
|
@@ -607,7 +616,7 @@ class AudienceControllerService {
|
|
|
607
616
|
if (httpContentTypeSelected != undefined) {
|
|
608
617
|
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
609
618
|
}
|
|
610
|
-
return this.httpClient.request('
|
|
619
|
+
return this.httpClient.request('post', `${this.basePath}/api/audiences/groups/${encodeURIComponent(String(groupId))}/custom/ds-query/sql`, {
|
|
611
620
|
body: body,
|
|
612
621
|
withCredentials: this.configuration.withCredentials,
|
|
613
622
|
headers: headers,
|
|
@@ -639,7 +648,36 @@ class AudienceControllerService {
|
|
|
639
648
|
if (httpContentTypeSelected != undefined) {
|
|
640
649
|
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
641
650
|
}
|
|
642
|
-
return this.httpClient.request('
|
|
651
|
+
return this.httpClient.request('post', `${this.basePath}/api/audiences/groups/${encodeURIComponent(String(groupId))}/name`, {
|
|
652
|
+
body: body,
|
|
653
|
+
withCredentials: this.configuration.withCredentials,
|
|
654
|
+
headers: headers,
|
|
655
|
+
observe: observe,
|
|
656
|
+
reportProgress: reportProgress
|
|
657
|
+
});
|
|
658
|
+
}
|
|
659
|
+
validateDsQuery(body, observe = 'body', reportProgress = false) {
|
|
660
|
+
if (body === null || body === undefined) {
|
|
661
|
+
throw new Error('Required parameter body was null or undefined when calling validateDsQuery.');
|
|
662
|
+
}
|
|
663
|
+
let headers = this.defaultHeaders;
|
|
664
|
+
// to determine the Accept header
|
|
665
|
+
let httpHeaderAccepts = [
|
|
666
|
+
'*/*'
|
|
667
|
+
];
|
|
668
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
669
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
670
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
671
|
+
}
|
|
672
|
+
// to determine the Content-Type header
|
|
673
|
+
const consumes = [
|
|
674
|
+
'application/json'
|
|
675
|
+
];
|
|
676
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
677
|
+
if (httpContentTypeSelected != undefined) {
|
|
678
|
+
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
679
|
+
}
|
|
680
|
+
return this.httpClient.request('post', `${this.basePath}/api/audiences/validate-ds-query`, {
|
|
643
681
|
body: body,
|
|
644
682
|
withCredentials: this.configuration.withCredentials,
|
|
645
683
|
headers: headers,
|
|
@@ -1231,42 +1269,6 @@ var AudienceResponse;
|
|
|
1231
1269
|
};
|
|
1232
1270
|
})(AudienceResponse || (AudienceResponse = {}));
|
|
1233
1271
|
|
|
1234
|
-
/**
|
|
1235
|
-
* Intellibid API
|
|
1236
|
-
* API documentation for the Intellibid platform
|
|
1237
|
-
*
|
|
1238
|
-
* OpenAPI spec version: 1.0
|
|
1239
|
-
*
|
|
1240
|
-
*
|
|
1241
|
-
* NOTE: This class is auto generated by the swagger code generator program.
|
|
1242
|
-
* https://github.com/swagger-api/swagger-codegen.git
|
|
1243
|
-
* Do not edit the class manually.
|
|
1244
|
-
*/
|
|
1245
|
-
var AudienceSearchRequest;
|
|
1246
|
-
(function (AudienceSearchRequest) {
|
|
1247
|
-
AudienceSearchRequest.GroupTypeEnum = {
|
|
1248
|
-
BUCKETIZEDLIVE: 'BUCKETIZED_LIVE',
|
|
1249
|
-
BLOCKEDLIVE: 'BLOCKED_LIVE',
|
|
1250
|
-
BUCKETIZEDCUSTOM: 'BUCKETIZED_CUSTOM',
|
|
1251
|
-
DSCUSTOMQUERY: 'DS_CUSTOM_QUERY'
|
|
1252
|
-
};
|
|
1253
|
-
AudienceSearchRequest.SourcePlatformEnum = {
|
|
1254
|
-
META: 'META',
|
|
1255
|
-
TIKTOK: 'TIKTOK',
|
|
1256
|
-
SNAPCHAT: 'SNAPCHAT',
|
|
1257
|
-
GOOGLE: 'GOOGLE',
|
|
1258
|
-
LYADS: 'LYADS'
|
|
1259
|
-
};
|
|
1260
|
-
AudienceSearchRequest.AudienceTypeEnum = {
|
|
1261
|
-
DYNAMIC: 'DYNAMIC',
|
|
1262
|
-
CATALOGUE: 'CATALOGUE'
|
|
1263
|
-
};
|
|
1264
|
-
AudienceSearchRequest.AudienceSourceEnum = {
|
|
1265
|
-
INTELLIBID: 'INTELLIBID',
|
|
1266
|
-
DS: 'DS'
|
|
1267
|
-
};
|
|
1268
|
-
})(AudienceSearchRequest || (AudienceSearchRequest = {}));
|
|
1269
|
-
|
|
1270
1272
|
/**
|
|
1271
1273
|
* Intellibid API
|
|
1272
1274
|
* API documentation for the Intellibid platform
|
|
@@ -1688,5 +1690,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1688
1690
|
* Generated bundle index. Do not edit.
|
|
1689
1691
|
*/
|
|
1690
1692
|
|
|
1691
|
-
export { APIS, AdAccountResponse, AdvertiserControllerService, ApiModule, AudienceControllerService, AudienceResponse,
|
|
1693
|
+
export { APIS, AdAccountResponse, AdvertiserControllerService, ApiModule, AudienceControllerService, AudienceResponse, BASE_PATH, COLLECTION_FORMATS, CampaignChangeLogResponse, CampaignControllerService, CampaignInsightRecord, CampaignRequest, CampaignResponse, ChildAudience, Configuration, CreateBlockedLiveAudienceRequest, CreateBucketizedCustomAudienceRequest, CreateBucketizedLiveAudienceRequest, CreateDsCustomQueryAudienceRequest, InsightsControllerService, LookupDataControllerService, ProductSetRequest, ProductSetResponse, ScheduleUpdateRequest, UpdateAudienceNameRequest, UpdateDsCustomQuerySqlRequest };
|
|
1692
1694
|
//# sourceMappingURL=revxui-intellibid-client-ts.mjs.map
|