@esolve/ng-esolve-connect 0.30.2 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/cart/esolve-cart.service.mjs +7 -4
- package/esm2020/lib/coupons/esolve-coupons.service.mjs +3 -2
- package/esm2020/lib/payment/esolve-payment.service.mjs +7 -6
- package/esm2020/lib/session/esolve-session-metadata.service.mjs +77 -0
- package/esm2020/lib/session/index.mjs +2 -1
- package/esm2020/lib/shared/geocoder/esolve-geocoder.service.mjs +5 -3
- package/esm2020/lib/shared/response/esolve-get-response.interface.mjs +1 -1
- package/esm2020/lib/stock/esolve-stock.service.mjs +3 -2
- package/esm2020/media/lib/classes/esolve-media-article.model.mjs +8 -6
- package/esm2020/survey/esolve-ng-esolve-connect-survey.mjs +5 -0
- package/esm2020/survey/index.mjs +6 -0
- package/esm2020/survey/lib/classes/esolve-survey-answer-result.model.mjs +11 -0
- package/esm2020/survey/lib/classes/esolve-survey-check-question.model.mjs +11 -0
- package/esm2020/survey/lib/classes/esolve-survey-input-question.model.mjs +11 -0
- package/esm2020/survey/lib/classes/esolve-survey-options-question.model.mjs +21 -0
- package/esm2020/survey/lib/classes/esolve-survey-question.model.mjs +10 -0
- package/esm2020/survey/lib/classes/esolve-survey-radio-question.model.mjs +11 -0
- package/esm2020/survey/lib/classes/esolve-survey-rating-question.model.mjs +17 -0
- package/esm2020/survey/lib/classes/esolve-survey-select-question.model.mjs +17 -0
- package/esm2020/survey/lib/classes/esolve-survey-text-question.model.mjs +10 -0
- package/esm2020/survey/lib/classes/esolve-survey-textarea-question.model.mjs +11 -0
- package/esm2020/survey/lib/classes/esolve-survey-values-question.model.mjs +11 -0
- package/esm2020/survey/lib/classes/esolve-survey.model.mjs +60 -0
- package/esm2020/survey/lib/classes/index.mjs +13 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-answer-response.interface.mjs +2 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-option.interface.mjs +2 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-options-question-record.interface.mjs +2 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-options.interface.mjs +2 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-question-record.type.mjs +2 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-record.interface.mjs +2 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-text-question-record.interface.mjs +2 -0
- package/esm2020/survey/lib/interfaces/esolve-survey-values-question-record.interface.mjs +2 -0
- package/esm2020/survey/lib/interfaces/index.mjs +9 -0
- package/esm2020/survey/lib/ng-esolve-connect-survey.module.mjs +15 -0
- package/esm2020/survey/lib/services/esolve-survey.service.mjs +105 -0
- package/esm2020/survey/lib/services/index.mjs +2 -0
- package/esm2020/survey/lib/types/esolve-survey-options-question-type.type.mjs +2 -0
- package/esm2020/survey/lib/types/esolve-survey-question-record-list.type.mjs +2 -0
- package/esm2020/survey/lib/types/esolve-survey-question-type.type.mjs +2 -0
- package/esm2020/survey/lib/types/esolve-survey-text-question-type.type.mjs +2 -0
- package/esm2020/survey/lib/types/esolve-survey-type.type.mjs +2 -0
- package/esm2020/survey/lib/types/esolve-survey-values-question-type.type.mjs +2 -0
- package/esm2020/survey/lib/types/index.mjs +7 -0
- package/fesm2015/esolve-ng-esolve-connect-media.mjs +6 -5
- package/fesm2015/esolve-ng-esolve-connect-media.mjs.map +1 -1
- package/fesm2015/esolve-ng-esolve-connect-survey.mjs +310 -0
- package/fesm2015/esolve-ng-esolve-connect-survey.mjs.map +1 -0
- package/fesm2015/esolve-ng-esolve-connect.mjs +89 -12
- package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
- package/fesm2020/esolve-ng-esolve-connect-media.mjs +6 -5
- package/fesm2020/esolve-ng-esolve-connect-media.mjs.map +1 -1
- package/fesm2020/esolve-ng-esolve-connect-survey.mjs +308 -0
- package/fesm2020/esolve-ng-esolve-connect-survey.mjs.map +1 -0
- package/fesm2020/esolve-ng-esolve-connect.mjs +87 -12
- package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
- package/lib/session/esolve-session-metadata.service.d.ts +19 -0
- package/lib/session/index.d.ts +1 -0
- package/lib/shared/response/esolve-get-response.interface.d.ts +1 -1
- package/media/lib/classes/esolve-media-article.model.d.ts +1 -1
- package/package.json +9 -1
- package/survey/README.md +3 -0
- package/survey/index.d.ts +5 -0
- package/survey/lib/classes/esolve-survey-answer-result.model.d.ts +6 -0
- package/survey/lib/classes/esolve-survey-check-question.model.d.ts +6 -0
- package/survey/lib/classes/esolve-survey-input-question.model.d.ts +6 -0
- package/survey/lib/classes/esolve-survey-options-question.model.d.ts +7 -0
- package/survey/lib/classes/esolve-survey-question.model.d.ts +11 -0
- package/survey/lib/classes/esolve-survey-radio-question.model.d.ts +6 -0
- package/survey/lib/classes/esolve-survey-rating-question.model.d.ts +7 -0
- package/survey/lib/classes/esolve-survey-select-question.model.d.ts +7 -0
- package/survey/lib/classes/esolve-survey-text-question.model.d.ts +7 -0
- package/survey/lib/classes/esolve-survey-textarea-question.model.d.ts +6 -0
- package/survey/lib/classes/esolve-survey-values-question.model.d.ts +6 -0
- package/survey/lib/classes/esolve-survey.model.d.ts +15 -0
- package/survey/lib/classes/index.d.ts +12 -0
- package/survey/lib/interfaces/esolve-survey-answer-response.interface.d.ts +4 -0
- package/survey/lib/interfaces/esolve-survey-option.interface.d.ts +4 -0
- package/survey/lib/interfaces/esolve-survey-options-question-record.interface.d.ts +7 -0
- package/survey/lib/interfaces/esolve-survey-options.interface.d.ts +5 -0
- package/survey/lib/interfaces/esolve-survey-question-record.type.d.ts +9 -0
- package/survey/lib/interfaces/esolve-survey-record.interface.d.ts +9 -0
- package/survey/lib/interfaces/esolve-survey-text-question-record.interface.d.ts +7 -0
- package/survey/lib/interfaces/esolve-survey-values-question-record.interface.d.ts +6 -0
- package/survey/lib/interfaces/index.d.ts +8 -0
- package/survey/lib/ng-esolve-connect-survey.module.d.ts +7 -0
- package/survey/lib/services/esolve-survey.service.d.ts +84 -0
- package/survey/lib/services/index.d.ts +1 -0
- package/survey/lib/types/esolve-survey-options-question-type.type.d.ts +1 -0
- package/survey/lib/types/esolve-survey-question-record-list.type.d.ts +2 -0
- package/survey/lib/types/esolve-survey-question-type.type.d.ts +4 -0
- package/survey/lib/types/esolve-survey-text-question-type.type.d.ts +1 -0
- package/survey/lib/types/esolve-survey-type.type.d.ts +1 -0
- package/survey/lib/types/esolve-survey-values-question-type.type.d.ts +1 -0
- package/survey/lib/types/index.d.ts +6 -0
|
@@ -102,7 +102,8 @@ export class EsolveCartService {
|
|
|
102
102
|
},
|
|
103
103
|
})
|
|
104
104
|
.pipe(map((response) => {
|
|
105
|
-
if (response.records === undefined
|
|
105
|
+
if (response.records === undefined ||
|
|
106
|
+
Array.isArray(response.records)) {
|
|
106
107
|
throw response;
|
|
107
108
|
}
|
|
108
109
|
return this.processCartTotals(response.records);
|
|
@@ -117,7 +118,8 @@ export class EsolveCartService {
|
|
|
117
118
|
return iif(() => this._cached_tracking > 0, of(this._cached_tracking), this.http
|
|
118
119
|
.get(`${this.config.api_url}/get-checkout-tracking.php`)
|
|
119
120
|
.pipe(map((response) => {
|
|
120
|
-
if (response.records === undefined
|
|
121
|
+
if (response.records === undefined ||
|
|
122
|
+
Array.isArray(response.records)) {
|
|
121
123
|
throw response;
|
|
122
124
|
}
|
|
123
125
|
this._cached_tracking = response.records.tracking;
|
|
@@ -139,7 +141,8 @@ export class EsolveCartService {
|
|
|
139
141
|
},
|
|
140
142
|
})
|
|
141
143
|
.pipe(map((response) => {
|
|
142
|
-
if (response.records === undefined
|
|
144
|
+
if (response.records === undefined ||
|
|
145
|
+
Array.isArray(response.records)) {
|
|
143
146
|
throw response;
|
|
144
147
|
}
|
|
145
148
|
return new EsolveTransactionAnalyticsData(response.records);
|
|
@@ -226,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
226
229
|
type: Inject,
|
|
227
230
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
228
231
|
}] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }, { type: i4.EsolveCouponsService }]; } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2Vzb2x2ZS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBRUgsNEJBQTRCLEdBRS9CLE1BQU0sb0JBQW9CLENBQUM7QUFHNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWxELE9BQU8sRUFDSCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsOEJBQThCLEdBQ2pDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFvQm5CLE1BQU0sT0FBTyxpQkFBaUI7SUFHMUIsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0IsRUFDaEIsWUFBdUMsRUFDdkMsZUFBNkMsRUFDN0MsT0FBNkI7UUFKRSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7UUFDN0MsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFQakMs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QkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgSHR0cENsaWVudCxcclxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgSHR0cFBhcmFtcyxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBpaWYsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3JzL2Vzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXHJcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgRXNvbHZlU2V0UmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjY291bnQnO1xyXG5pbXBvcnQgeyBFc29sdmVDb3Vwb25zU2VydmljZSB9IGZyb20gJy4uL2NvdXBvbnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZUNhcnRJdGVtLFxyXG4gICAgRXNvbHZlQ2FydFRvdGFscyxcclxuICAgIEVzb2x2ZUNoZWNrb3V0UmVzdWx0LFxyXG4gICAgRXNvbHZlRW1wdHlDYXJ0UmVzdWx0LFxyXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhLFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVBZGRpdGlvbmFsV2hlcmUsXHJcbiAgICBFc29sdmVDYXJ0SXRlbVJlY29yZCxcclxuICAgIEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2UsXHJcbiAgICBFc29sdmVDYXJ0U2V0SXRlbSxcclxuICAgIEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXHJcbiAgICBFc29sdmVDaGVja291dFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlVHJhY2tpbmdDb2RlLFxyXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDYXJ0LFxyXG4gICAgRXNvbHZlQ2FydFNldEFjdGlvbixcclxuICAgIEVzb2x2ZUNhcnRFbXB0eVJlc3BvbnNlLFxyXG59IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2FydFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBfY2FjaGVkX3RyYWNraW5nID0gMDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY291cG9uczogRXNvbHZlQ291cG9uc1NlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY2FydFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIGNhcnQgaXRlbXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldENhcnQoKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0PiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvdXBvbnMgPSB0aGlzLmNvdXBvbnMuZ2V0QXBwbGllZENvdXBvbktleXMoKTtcclxuXHJcbiAgICAgICAgaWYgKGNvdXBvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdjb3Vwb25zJywgY291cG9ucy5qb2luKCcsJykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydChyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgY2FydCBieSBwcmVmb3JtaW5nIHZhcmlvdXMgYWN0aW9ucywgc3VjaCBhcyBhZGRpbmcsIGVkaXRpbmcgb3IgcmVtb3ZpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2Ygb3B0aW9ucyB0byB1cGRhdGUgdGhlIGNhcnRcclxuICAgICAqIEBwYXJhbSBhY3Rpb24gVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHByZWZvcm1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiByZXNwb25zZXMgdGhhdCBnaXZlcyBmZWVkYmFjayBvbiB0aGUgcmVxdWVzdGVkIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldENhcnQoXHJcbiAgICAgICAgaXRlbXM6IEVzb2x2ZUNhcnRTZXRJdGVtW10sXHJcbiAgICAgICAgYWN0aW9uOiBFc29sdmVDYXJ0U2V0QWN0aW9uID0gJ2FkZCcsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2VbXT4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLFxyXG4gICAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1pdGVtLnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3BvbnNlcztcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRDYXJ0RW1wdHkoXHJcbiAgICAgICAgdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxyXG4gICAgICAgIGFkZGl0aW9uYWxfd2hlcmU6IEVzb2x2ZUFkZGl0aW9uYWxXaGVyZVtdLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVFbXB0eUNhcnRSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICBhZGRpdGlvbmFsX3doZXJlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEVtcHR5UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWVtcHR5LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUVtcHR5Q2FydFJlc3VsdChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC1jYXJ0LWVtcHR5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSB0b3RhbHMgb2YgdGhlIGNhcnQgd2l0aCBhbGwgdGhlIHRvdGFscyBjYWxjdWxhdGVkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFRvdGFscyhcclxuICAgICAgICB0eXBlPzogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0VG90YWxzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LXRvdGFscy5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydFRvdGFscyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgdHJhY2tpbmcgY29kZSBmb3IgdGhlIGNhcnRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgY2FydCB0cmFja2luZyBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUcmFja2luZ0NvZGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gaWlmKFxyXG4gICAgICAgICAgICAoKSA9PiB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPiAwLFxyXG4gICAgICAgICAgICBvZih0aGlzLl9jYWNoZWRfdHJhY2tpbmcpLFxyXG4gICAgICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhY2tpbmdDb2RlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNoZWNrb3V0LXRyYWNraW5nLnBocGAsXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlY29yZHMudHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGRhdGEgb2YgdGhlIHRyYW5zYWN0aW9uIGZvciB0aGUgYW5hbHl0aWNzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB1c2VkIGluIGVTb2x2ZVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBhbmFseXRpY3MgZGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhPFQgPSBhbnk+KFxyXG4gICAgICAgIHRyYW5zYWN0aW9uX2lkOiBudW1iZXIsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YTxUPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGFSZWNvcmQ8VD4+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmFuc2FjdGlvbi1hbmFseXRpY3MtZGF0YS5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pZCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VD4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhdGVzIGNoZWNrb3V0IG9mIHRoZSBjYXJ0IGl0ZW1zXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIGNhcnQgdHlwZSB0aGF0IG5lZWRzIHRvIGJlIGNoZWNrZWQgb3V0XHJcbiAgICAgKiBAcGFyYW0gYWRkcmVzc2VzX2lkIFRoZSBJRCBvZiB0aGUgZGVsaXZlcnkgYWRkcmVzc1xyXG4gICAgICogQHBhcmFtIHNoaXBwaW5nX2lkIFRoZSBJRCBvZiB0aGUgc2hpcHBpbmcgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RfaWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGxvY2F0aW9uX2lkIFRoZSBJRCBvZiB0aGUgc2VsZWN0ZWQgYnJhbmNoIGZyb20gd2l0aCBzaGlwcGluZyBuZWVkcyB0byBiZSBjYWxjdWxhdGVkXHJcbiAgICAgKiBAcGFyYW0gY29tbWVudHMgQWRkaXRpb25hbCBjb21tZW50cyBvbiB0aGUgY2FydFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSB0cmFuc2FjdGlvbiBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hlY2tvdXQoXHJcbiAgICAgICAgdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxyXG4gICAgICAgIGFkZHJlc3Nlc19pZDogbnVtYmVyLFxyXG4gICAgICAgIHNoaXBwaW5nX2lkOiBudW1iZXIsXHJcbiAgICAgICAgcGF5bWVudF9tZXRob2RfaWQgPSAwLFxyXG4gICAgICAgIGxvY2F0aW9uX2lkID0gMCxcclxuICAgICAgICBjb21tZW50cyA9ICcnLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDaGVja291dFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgIGFkZHJlc3Nlc19pZCxcclxuICAgICAgICAgICAgc2hpcHBpbmdfaWQsXHJcbiAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kX2lkLFxyXG4gICAgICAgICAgICBsb2NhdGlvbl9pZCxcclxuICAgICAgICAgICAgY29tbWVudHMsXHJcbiAgICAgICAgICAgIHRyYWNraW5nOiAwLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNraW5nQ29kZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodHJhY2tpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0cmFja2luZyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYm9keS50cmFja2luZyA9IHRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDaGVja291dFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jaGVja291dC5waHBgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3Vwb25zLnJlc2V0KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUNoZWNrb3V0UmVzdWx0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2V0LWNoZWNrb3V0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2FydF9pdGVtX3JlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgY2FydCBpdGVtc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0KGNhcnRfaXRlbV9yZWNvcmRzOiBFc29sdmVDYXJ0SXRlbVJlY29yZFtdKTogRXNvbHZlQ2FydCB7XHJcbiAgICAgICAgY29uc3QgY2FydF9pdGVtczogRXNvbHZlQ2FydEl0ZW1bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoY2FydF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJ0X2l0ZW1fcmVjb3JkIG9mIGNhcnRfaXRlbV9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1zLnB1c2gobmV3IEVzb2x2ZUNhcnRJdGVtKGNhcnRfaXRlbV9yZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgRGF0YSB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydFRvdGFscyhcclxuICAgICAgICByZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXHJcbiAgICApOiBFc29sdmVDYXJ0VG90YWxzIHtcclxuICAgICAgICBjb25zdCBjYXJ0X3RvdGFscyA9IG5ldyBFc29sdmVDYXJ0VG90YWxzKFxyXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXHJcbiAgICAgICAgICAgICtyZWNvcmQuaXRlbXMsXHJcbiAgICAgICAgICAgICtyZWNvcmQudG90YWwsXHJcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxyXG4gICAgICAgICAgICArcmVjb3JkLmRpc2NvdW50LFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBjYXJ0X3RvdGFscztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2Vzb2x2ZS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBRUgsNEJBQTRCLEdBRS9CLE1BQU0sb0JBQW9CLENBQUM7QUFHNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWxELE9BQU8sRUFDSCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsOEJBQThCLEdBQ2pDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFvQm5CLE1BQU0sT0FBTyxpQkFBaUI7SUFHMUIsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0IsRUFDaEIsWUFBdUMsRUFDdkMsZUFBNkMsRUFDN0MsT0FBNkI7UUFKRSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7UUFDN0MsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFQakMs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TUFBTSxDQUFDLFFBQVEsQ0FDbkIsQ0FBQztRQUVGLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OzhHQTFVUSxpQkFBaUIsa0JBSWQscUJBQXFCO2tIQUp4QixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgSHR0cENsaWVudCxcclxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgSHR0cFBhcmFtcyxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBpaWYsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3JzL2Vzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXHJcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgRXNvbHZlU2V0UmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjY291bnQnO1xyXG5pbXBvcnQgeyBFc29sdmVDb3Vwb25zU2VydmljZSB9IGZyb20gJy4uL2NvdXBvbnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZUNhcnRJdGVtLFxyXG4gICAgRXNvbHZlQ2FydFRvdGFscyxcclxuICAgIEVzb2x2ZUNoZWNrb3V0UmVzdWx0LFxyXG4gICAgRXNvbHZlRW1wdHlDYXJ0UmVzdWx0LFxyXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhLFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVBZGRpdGlvbmFsV2hlcmUsXHJcbiAgICBFc29sdmVDYXJ0SXRlbVJlY29yZCxcclxuICAgIEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2UsXHJcbiAgICBFc29sdmVDYXJ0U2V0SXRlbSxcclxuICAgIEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXHJcbiAgICBFc29sdmVDaGVja291dFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlVHJhY2tpbmdDb2RlLFxyXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDYXJ0LFxyXG4gICAgRXNvbHZlQ2FydFNldEFjdGlvbixcclxuICAgIEVzb2x2ZUNhcnRFbXB0eVJlc3BvbnNlLFxyXG59IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2FydFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBfY2FjaGVkX3RyYWNraW5nID0gMDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY291cG9uczogRXNvbHZlQ291cG9uc1NlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY2FydFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIGNhcnQgaXRlbXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldENhcnQoKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0PiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvdXBvbnMgPSB0aGlzLmNvdXBvbnMuZ2V0QXBwbGllZENvdXBvbktleXMoKTtcclxuXHJcbiAgICAgICAgaWYgKGNvdXBvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdjb3Vwb25zJywgY291cG9ucy5qb2luKCcsJykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydChyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgY2FydCBieSBwcmVmb3JtaW5nIHZhcmlvdXMgYWN0aW9ucywgc3VjaCBhcyBhZGRpbmcsIGVkaXRpbmcgb3IgcmVtb3ZpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2Ygb3B0aW9ucyB0byB1cGRhdGUgdGhlIGNhcnRcclxuICAgICAqIEBwYXJhbSBhY3Rpb24gVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHByZWZvcm1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiByZXNwb25zZXMgdGhhdCBnaXZlcyBmZWVkYmFjayBvbiB0aGUgcmVxdWVzdGVkIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldENhcnQoXHJcbiAgICAgICAgaXRlbXM6IEVzb2x2ZUNhcnRTZXRJdGVtW10sXHJcbiAgICAgICAgYWN0aW9uOiBFc29sdmVDYXJ0U2V0QWN0aW9uID0gJ2FkZCcsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2VbXT4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLFxyXG4gICAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1pdGVtLnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3BvbnNlcztcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRDYXJ0RW1wdHkoXHJcbiAgICAgICAgdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxyXG4gICAgICAgIGFkZGl0aW9uYWxfd2hlcmU6IEVzb2x2ZUFkZGl0aW9uYWxXaGVyZVtdLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVFbXB0eUNhcnRSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICBhZGRpdGlvbmFsX3doZXJlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEVtcHR5UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWVtcHR5LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUVtcHR5Q2FydFJlc3VsdChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC1jYXJ0LWVtcHR5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSB0b3RhbHMgb2YgdGhlIGNhcnQgd2l0aCBhbGwgdGhlIHRvdGFscyBjYWxjdWxhdGVkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFRvdGFscyhcclxuICAgICAgICB0eXBlPzogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0VG90YWxzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LXRvdGFscy5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVjb3JkcylcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydFRvdGFscyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgdHJhY2tpbmcgY29kZSBmb3IgdGhlIGNhcnRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgY2FydCB0cmFja2luZyBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUcmFja2luZ0NvZGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gaWlmKFxyXG4gICAgICAgICAgICAoKSA9PiB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPiAwLFxyXG4gICAgICAgICAgICBvZih0aGlzLl9jYWNoZWRfdHJhY2tpbmcpLFxyXG4gICAgICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhY2tpbmdDb2RlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNoZWNrb3V0LXRyYWNraW5nLnBocGAsXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlY29yZHMudHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGRhdGEgb2YgdGhlIHRyYW5zYWN0aW9uIGZvciB0aGUgYW5hbHl0aWNzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB1c2VkIGluIGVTb2x2ZVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBhbmFseXRpY3MgZGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhPFQgPSBhbnk+KFxyXG4gICAgICAgIHRyYW5zYWN0aW9uX2lkOiBudW1iZXIsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YTxUPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGFSZWNvcmQ8VD4+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmFuc2FjdGlvbi1hbmFseXRpY3MtZGF0YS5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pZCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VD4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhdGVzIGNoZWNrb3V0IG9mIHRoZSBjYXJ0IGl0ZW1zXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIGNhcnQgdHlwZSB0aGF0IG5lZWRzIHRvIGJlIGNoZWNrZWQgb3V0XHJcbiAgICAgKiBAcGFyYW0gYWRkcmVzc2VzX2lkIFRoZSBJRCBvZiB0aGUgZGVsaXZlcnkgYWRkcmVzc1xyXG4gICAgICogQHBhcmFtIHNoaXBwaW5nX2lkIFRoZSBJRCBvZiB0aGUgc2hpcHBpbmcgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RfaWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGxvY2F0aW9uX2lkIFRoZSBJRCBvZiB0aGUgc2VsZWN0ZWQgYnJhbmNoIGZyb20gd2l0aCBzaGlwcGluZyBuZWVkcyB0byBiZSBjYWxjdWxhdGVkXHJcbiAgICAgKiBAcGFyYW0gY29tbWVudHMgQWRkaXRpb25hbCBjb21tZW50cyBvbiB0aGUgY2FydFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSB0cmFuc2FjdGlvbiBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hlY2tvdXQoXHJcbiAgICAgICAgdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxyXG4gICAgICAgIGFkZHJlc3Nlc19pZDogbnVtYmVyLFxyXG4gICAgICAgIHNoaXBwaW5nX2lkOiBudW1iZXIsXHJcbiAgICAgICAgcGF5bWVudF9tZXRob2RfaWQgPSAwLFxyXG4gICAgICAgIGxvY2F0aW9uX2lkID0gMCxcclxuICAgICAgICBjb21tZW50cyA9ICcnLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDaGVja291dFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgIGFkZHJlc3Nlc19pZCxcclxuICAgICAgICAgICAgc2hpcHBpbmdfaWQsXHJcbiAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kX2lkLFxyXG4gICAgICAgICAgICBsb2NhdGlvbl9pZCxcclxuICAgICAgICAgICAgY29tbWVudHMsXHJcbiAgICAgICAgICAgIHRyYWNraW5nOiAwLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNraW5nQ29kZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodHJhY2tpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0cmFja2luZyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYm9keS50cmFja2luZyA9IHRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDaGVja291dFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jaGVja291dC5waHBgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3Vwb25zLnJlc2V0KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUNoZWNrb3V0UmVzdWx0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2V0LWNoZWNrb3V0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2FydF9pdGVtX3JlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgY2FydCBpdGVtc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0KGNhcnRfaXRlbV9yZWNvcmRzOiBFc29sdmVDYXJ0SXRlbVJlY29yZFtdKTogRXNvbHZlQ2FydCB7XHJcbiAgICAgICAgY29uc3QgY2FydF9pdGVtczogRXNvbHZlQ2FydEl0ZW1bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoY2FydF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJ0X2l0ZW1fcmVjb3JkIG9mIGNhcnRfaXRlbV9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1zLnB1c2gobmV3IEVzb2x2ZUNhcnRJdGVtKGNhcnRfaXRlbV9yZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgRGF0YSB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydFRvdGFscyhcclxuICAgICAgICByZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXHJcbiAgICApOiBFc29sdmVDYXJ0VG90YWxzIHtcclxuICAgICAgICBjb25zdCBjYXJ0X3RvdGFscyA9IG5ldyBFc29sdmVDYXJ0VG90YWxzKFxyXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXHJcbiAgICAgICAgICAgICtyZWNvcmQuaXRlbXMsXHJcbiAgICAgICAgICAgICtyZWNvcmQudG90YWwsXHJcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxyXG4gICAgICAgICAgICArcmVjb3JkLmRpc2NvdW50LFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBjYXJ0X3RvdGFscztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -37,7 +37,8 @@ export class EsolveCouponsService {
|
|
|
37
37
|
},
|
|
38
38
|
})
|
|
39
39
|
.pipe(map((response) => {
|
|
40
|
-
if (response.records === undefined
|
|
40
|
+
if (response.records === undefined ||
|
|
41
|
+
Array.isArray(response.records)) {
|
|
41
42
|
throw response;
|
|
42
43
|
}
|
|
43
44
|
const valid = response.records.valid;
|
|
@@ -226,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
226
227
|
type: Inject,
|
|
227
228
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
228
229
|
}] }, { type: i1.HttpClient }, { type: i2.EsolveCookieService }]; } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvdXBvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jb3Vwb25zL2Vzb2x2ZS1jb3Vwb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQVl6QyxNQUFNLE9BQU8sb0JBQW9CO0lBUzdCLFlBQ2lDLFVBQWtCLEVBQ1IsTUFBMkIsRUFDMUQsSUFBZ0IsRUFDaEIsYUFBa0M7UUFIYixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ1IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFadEMsZ0JBQVcsR0FBRyxrQkFBa0IsQ0FBQztRQUNqQyxrQkFBYSxHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUMvQyxxQkFBZ0IsR0FB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bW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Nvb2tpZS9lc29sdmUtY29va2llLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb3Vwb24gfSBmcm9tICcuL2NsYXNzZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQ291cG9uUmVjb3JkLFxyXG4gICAgRXNvbHZlQ291cG9uVmFsaWRhdGlvbixcclxuICAgIEVzb2x2ZUNvdXBvblZhbGlkYXRpb25FcnJvcixcclxuICAgIEVzb2x2ZUNvdXBvblZhbGlkYXRpb25SZXN1bHQsXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlQ291cG9uc0NhY2hlIH0gZnJvbSAnLi90eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVDb3Vwb25zU2VydmljZSB7XHJcbiAgICBwcml2YXRlIHN0b3JhZ2Vfa2V5ID0gJ19uZ19lc2x2X2NvdXBvbnMnO1xyXG4gICAgcHJpdmF0ZSBjb3Vwb25zX2NhY2hlOiBFc29sdmVDb3Vwb25zQ2FjaGUgPSBuZXcgTWFwKCk7XHJcbiAgICBwcml2YXRlIGFwcGxpZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XHJcbiAgICBwcml2YXRlIHZhbGlkYXRpb25fZXJyb3IgPSBuZXcgU3ViamVjdDxcclxuICAgICAgICBFc29sdmVDb3Vwb25WYWxpZGF0aW9uRXJyb3IgfCB1bmRlZmluZWRcclxuICAgID4oKTtcclxuICAgIHByaXZhdGUgaXNfYnJvd3NlcjogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdCxcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgY29va2llU2VydmljZTogRXNvbHZlQ29va2llU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RvcmFnZUtleSgpO1xyXG4gICAgICAgIHRoaXMuY291cG9uc19jYWNoZSA9IHRoaXMucmV0cmlldmVDYWNoZSgpO1xyXG4gICAgICAgIHRoaXMuaXNfYnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVmFsaWRhdGlvbkVycm9yKCk6IE9ic2VydmFibGU8XHJcbiAgICAgICAgRXNvbHZlQ291cG9uVmFsaWRhdGlvbkVycm9yIHwgdW5kZWZpbmVkXHJcbiAgICA+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uX2Vycm9yLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkFwcGxpZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGllZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmFsaWRhdGUoXHJcbiAgICAgICAgY291cG9uX2tleTogc3RyaW5nLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDb3Vwb25WYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNvdXBvblZhbGlkYXRpb24+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC12YWxpZGF0ZS1jb3Vwb24ucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY291cG9uX2tleSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWQgPSByZXNwb25zZS5yZWNvcmRzLnZhbGlkO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IEVzb2x2ZUNvdXBvblZhbGlkYXRpb25SZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSByZXNwb25zZS5yZWNvcmRzLmVycm9yO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25fZXJyb3IubmV4dChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaWQgPSByZXNwb25zZS5yZWNvcmRzLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uX2Vycm9yLm5leHQodW5kZWZpbmVkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHsgdmFsaWQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGFwcGx5Q291cG9uKGNvdXBvbl9rZXk6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChjb3Vwb25fa2V5LnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy52YWxpZGF0ZShjb3Vwb25fa2V5KSk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzdWx0LnZhbGlkICYmIHJlc3VsdC5pZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRDb3Vwb24ocmVzdWx0LmlkLCBjb3Vwb25fa2V5KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC52YWxpZDtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVDb3Vwb24oaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY291cG9uc19jYWNoZS5kZWxldGUoaWQpO1xyXG5cclxuICAgICAgICB0aGlzLmNhY2hlQ291cG9ucygpO1xyXG4gICAgICAgIHRoaXMuYXBwbGllZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFwcGxpZWRDb3Vwb25LZXlzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuY291cG9uc19jYWNoZS52YWx1ZXMoKV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFwcGxpZWRDb3Vwb25zKCk6IE9ic2VydmFibGU8RXNvbHZlQ291cG9uW10+IHtcclxuICAgICAgICBjb25zdCBjb3Vwb25faWRzID0gWy4uLnRoaXMuY291cG9uc19jYWNoZS5rZXlzKCldO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ291cG9uUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1hcHBsaWVkLWNvdXBvbnMucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY291cG9uczogY291cG9uX2lkcy5qb2luKCcsJyksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDb3Vwb25zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlQ291cG9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmV0cmlldmVDYWNoZSgpOiBFc29sdmVDb3Vwb25zQ2FjaGUge1xyXG4gICAgICAgIGlmICh0aGlzLmNvb2tpZVNlcnZpY2UuY2hlY2sodGhpcy5zdG9yYWdlX2tleSkgfHwgdGhpcy5nZXRCYWNrdXAoKSkge1xyXG4gICAgICAgICAgICBsZXQgY291cG9uc19qc29uID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldCh0aGlzLnN0b3JhZ2Vfa2V5KTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjb3Vwb25zX2pzb24gPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbF9zdG9yZV9kYXRhID0gdGhpcy5nZXRCYWNrdXAoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxfc3RvcmVfZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdXBvbnNfanNvbiA9IGxvY2FsX3N0b3JlX2RhdGE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5qc29uRGVjb2RlTWFwKGNvdXBvbnNfanNvbik7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBzb2Z0IGVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgTWFwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWNoZUNvdXBvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY291cG9uc19jYWNoZS5zaXplID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjb3Vwb25zX2pzb24gPSB0aGlzLmpzb25FbmNvZGVNYXAodGhpcy5jb3Vwb25zX2NhY2hlKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29va2llU2VydmljZS5zZXQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Vfa2V5LFxyXG4gICAgICAgICAgICAgICAgY291cG9uc19qc29uLFxyXG4gICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgJy8nLFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZXRCYWNrdXAoY291cG9uc19qc29uKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUNvdXBvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZWxldGVDb3Vwb25zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY291cG9uc19jYWNoZS5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUodGhpcy5zdG9yYWdlX2tleSwgJy8nKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW1vdmVCYWNrdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEJhY2t1cCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNfYnJvd3Nlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0QmFja3VwKGRhdGE6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc19icm93c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXksIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlQmFja3VwKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc19icm93c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc3RvcmFnZV9rZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkQ291cG9uKGlkOiBudW1iZXIsIGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvdXBvbnNfY2FjaGUuaGFzKGlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvdXBvbnNfY2FjaGUuc2V0KGlkLCBrZXkpO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlQ291cG9ucygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hcHBsaWVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFN0b3JhZ2VLZXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5jb25maWcuY291cG9uX3N0b3JhZ2Vfa2V5ID09PSAnc3RyaW5nJyAmJlxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5jb3Vwb25fc3RvcmFnZV9rZXkgIT09ICcnXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZV9rZXkgPSB0aGlzLmNvbmZpZy5jb3Vwb25fc3RvcmFnZV9rZXk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUganNvbkVuY29kZU1hcChkYXRhOiBFc29sdmVDb3Vwb25zQ2FjaGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghKGRhdGEgaW5zdGFuY2VvZiBNYXApKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBtYXAgdHlwZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEsIChrZXksIHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ01hcCcsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFsuLi52YWx1ZV0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBqc29uRGVjb2RlTWFwKGpzb25fZGF0YTogc3RyaW5nKTogRXNvbHZlQ291cG9uc0NhY2hlIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShqc29uX2RhdGEsIChrZXksIHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUuZGF0YVR5cGUgPT09ICdNYXAnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNYXAodmFsdWUudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgTWFwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hcCB0eXBlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ291cG9ucyhyZWNvcmRzOiBFc29sdmVDb3Vwb25SZWNvcmRbXSk6IEVzb2x2ZUNvdXBvbltdIHtcclxuICAgICAgICBjb25zdCBjb3Vwb25zOiBFc29sdmVDb3Vwb25bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb3Vwb24gPSBuZXcgRXNvbHZlQ291cG9uKHJlY29yZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY291cG9ucy5wdXNoKGNvdXBvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb3Vwb25zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvdXBvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jb3Vwb25zL2Vzb2x2ZS1jb3Vwb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQVl6QyxNQUFNLE9BQU8sb0JBQW9CO0lBUzdCLFlBQ2lDLFVBQWtCLEVBQ1IsTUFBMkIsRUFDMUQsSUFBZ0IsRUFDaEIsYUFBa0M7UUFIYixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ1IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFadEMsZ0JBQVcsR0FBRyxrQkFBa0IsQ0FBQztRQUNqQyxrQkFBYSxHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUMvQyxxQkFBZ0IsR0FB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aW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvY29va2llL2Vzb2x2ZS1jb29raWUuc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvdXBvbiB9IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDb3Vwb25SZWNvcmQsXHJcbiAgICBFc29sdmVDb3Vwb25WYWxpZGF0aW9uLFxyXG4gICAgRXNvbHZlQ291cG9uVmFsaWRhdGlvbkVycm9yLFxyXG4gICAgRXNvbHZlQ291cG9uVmFsaWRhdGlvblJlc3VsdCxcclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVDb3Vwb25zQ2FjaGUgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNvdXBvbnNTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgc3RvcmFnZV9rZXkgPSAnX25nX2VzbHZfY291cG9ucyc7XHJcbiAgICBwcml2YXRlIGNvdXBvbnNfY2FjaGU6IEVzb2x2ZUNvdXBvbnNDYWNoZSA9IG5ldyBNYXAoKTtcclxuICAgIHByaXZhdGUgYXBwbGllZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcclxuICAgIHByaXZhdGUgdmFsaWRhdGlvbl9lcnJvciA9IG5ldyBTdWJqZWN0PFxyXG4gICAgICAgIEVzb2x2ZUNvdXBvblZhbGlkYXRpb25FcnJvciB8IHVuZGVmaW5lZFxyXG4gICAgPigpO1xyXG4gICAgcHJpdmF0ZSBpc19icm93c2VyOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0LFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBFc29sdmVDb29raWVTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdG9yYWdlS2V5KCk7XHJcbiAgICAgICAgdGhpcy5jb3Vwb25zX2NhY2hlID0gdGhpcy5yZXRyaWV2ZUNhY2hlKCk7XHJcbiAgICAgICAgdGhpcy5pc19icm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25WYWxpZGF0aW9uRXJyb3IoKTogT2JzZXJ2YWJsZTxcclxuICAgICAgICBFc29sdmVDb3Vwb25WYWxpZGF0aW9uRXJyb3IgfCB1bmRlZmluZWRcclxuICAgID4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25fZXJyb3IuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQXBwbGllZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcHBsaWVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZShcclxuICAgICAgICBjb3Vwb25fa2V5OiBzdHJpbmcsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNvdXBvblZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ291cG9uVmFsaWRhdGlvbj4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXZhbGlkYXRlLWNvdXBvbi5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25fa2V5LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVjb3JkcylcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZCA9IHJlc3BvbnNlLnJlY29yZHMudmFsaWQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogRXNvbHZlQ291cG9uVmFsaWRhdGlvblJlc3VsdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHJlc3BvbnNlLnJlY29yZHMuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbl9lcnJvci5uZXh0KGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pZCA9IHJlc3BvbnNlLnJlY29yZHMuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25fZXJyb3IubmV4dCh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoeyB2YWxpZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgYXBwbHlDb3Vwb24oY291cG9uX2tleTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGNvdXBvbl9rZXkudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnZhbGlkYXRlKGNvdXBvbl9rZXkpKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQudmFsaWQgJiYgcmVzdWx0LmlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZENvdXBvbihyZXN1bHQuaWQsIGNvdXBvbl9rZXkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LnZhbGlkO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUNvdXBvbihpZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb3Vwb25zX2NhY2hlLmRlbGV0ZShpZCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FjaGVDb3Vwb25zKCk7XHJcbiAgICAgICAgdGhpcy5hcHBsaWVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QXBwbGllZENvdXBvbktleXMoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy5jb3Vwb25zX2NhY2hlLnZhbHVlcygpXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QXBwbGllZENvdXBvbnMoKTogT2JzZXJ2YWJsZTxFc29sdmVDb3Vwb25bXT4ge1xyXG4gICAgICAgIGNvbnN0IGNvdXBvbl9pZHMgPSBbLi4udGhpcy5jb3Vwb25zX2NhY2hlLmtleXMoKV07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDb3Vwb25SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWFwcGxpZWQtY291cG9ucy5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25zOiBjb3Vwb25faWRzLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NvdXBvbnMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVDb3Vwb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXRyaWV2ZUNhY2hlKCk6IEVzb2x2ZUNvdXBvbnNDYWNoZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29va2llU2VydmljZS5jaGVjayh0aGlzLnN0b3JhZ2Vfa2V5KSB8fCB0aGlzLmdldEJhY2t1cCgpKSB7XHJcbiAgICAgICAgICAgIGxldCBjb3Vwb25zX2pzb24gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuc3RvcmFnZV9rZXkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGNvdXBvbnNfanNvbiA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsX3N0b3JlX2RhdGEgPSB0aGlzLmdldEJhY2t1cCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsb2NhbF9zdG9yZV9kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY291cG9uc19qc29uID0gbG9jYWxfc3RvcmVfZGF0YTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmpzb25EZWNvZGVNYXAoY291cG9uc19qc29uKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIC8vIHNvZnQgZXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhY2hlQ291cG9ucygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb3Vwb25zX2NhY2hlLnNpemUgPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvdXBvbnNfanNvbiA9IHRoaXMuanNvbkVuY29kZU1hcCh0aGlzLmNvdXBvbnNfY2FjaGUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZV9rZXksXHJcbiAgICAgICAgICAgICAgICBjb3Vwb25zX2pzb24sXHJcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAnLycsXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNldEJhY2t1cChjb3Vwb25zX2pzb24pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlQ291cG9ucygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlbGV0ZUNvdXBvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb3Vwb25zX2NhY2hlLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZSh0aGlzLnN0b3JhZ2Vfa2V5LCAnLycpO1xyXG5cclxuICAgICAgICB0aGlzLnJlbW92ZUJhY2t1cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0QmFja3VwKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICghdGhpcy5pc19icm93c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlX2tleSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRCYWNrdXAoZGF0YTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzX2Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlX2tleSwgZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVCYWNrdXAoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzX2Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zdG9yYWdlX2tleSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRDb3Vwb24oaWQ6IG51bWJlciwga2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuY291cG9uc19jYWNoZS5oYXMoaWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291cG9uc19jYWNoZS5zZXQoaWQsIGtleSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVDb3Vwb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFwcGxpZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U3RvcmFnZUtleSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLmNvbmZpZy5jb3Vwb25fc3RvcmFnZV9rZXkgPT09ICdzdHJpbmcnICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmNvdXBvbl9zdG9yYWdlX2tleSAhPT0gJydcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlX2tleSA9IHRoaXMuY29uZmlnLmNvdXBvbl9zdG9yYWdlX2tleTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBqc29uRW5jb2RlTWFwKGRhdGE6IEVzb2x2ZUNvdXBvbnNDYWNoZSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIE1hcCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hcCB0eXBlJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgKGtleSwgdmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnTWFwJyxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogWy4uLnZhbHVlXSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGpzb25EZWNvZGVNYXAoanNvbl9kYXRhOiBzdHJpbmcpOiBFc29sdmVDb3Vwb25zQ2FjaGUge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGpzb25fZGF0YSwgKGtleSwgdmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5kYXRhVHlwZSA9PT0gJ01hcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1hcCh2YWx1ZS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBNYXApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbWFwIHR5cGUnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NDb3Vwb25zKHJlY29yZHM6IEVzb2x2ZUNvdXBvblJlY29yZFtdKTogRXNvbHZlQ291cG9uW10ge1xyXG4gICAgICAgIGNvbnN0IGNvdXBvbnM6IEVzb2x2ZUNvdXBvbltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvdXBvbiA9IG5ldyBFc29sdmVDb3Vwb24ocmVjb3JkKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb3Vwb25zLnB1c2goY291cG9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvdXBvbnM7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
2
|
+
import { HttpClient, HttpParams, } from '@angular/common/http';
|
|
3
3
|
import { catchError, map } from 'rxjs/operators';
|
|
4
4
|
import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';
|
|
5
5
|
import { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';
|
|
@@ -45,7 +45,8 @@ export class EsolvePaymentService {
|
|
|
45
45
|
return this.http
|
|
46
46
|
.get(`${this.config.api_url}/get-payment-status.php`, { params: { cart_id: transaction_id } })
|
|
47
47
|
.pipe(map((response) => {
|
|
48
|
-
if (response.records === undefined
|
|
48
|
+
if (response.records === undefined ||
|
|
49
|
+
Array.isArray(response.records)) {
|
|
49
50
|
throw response;
|
|
50
51
|
}
|
|
51
52
|
return response.records.success;
|
|
@@ -117,9 +118,9 @@ export class EsolvePaymentService {
|
|
|
117
118
|
observe: 'body',
|
|
118
119
|
})
|
|
119
120
|
.pipe(map((http_response) => {
|
|
120
|
-
if (
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
if (http_response.result === undefined ||
|
|
122
|
+
http_response.result === null ||
|
|
123
|
+
http_response.result.status !== 'success') {
|
|
123
124
|
throw http_response;
|
|
124
125
|
}
|
|
125
126
|
return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);
|
|
@@ -230,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
230
231
|
type: Inject,
|
|
231
232
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
232
233
|
}] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9wYXltZW50L2Vzb2x2ZS1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBcUIsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUdILDRCQUE0QixHQUUvQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsR0FDeEIsTUFBTSxXQUFXLENBQUM7Ozs7O0FBZ0JuQixNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCLEVBQ2hCLFlBQXVDLEVBQ3ZDLGVBQTZDO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsb0JBQWUsR0FBZixlQUFlLENBQThCO0lBQ3JELENBQUM7SUFFTDs7Ozs7O09BTUc7SUFDSSxpQkFBaUIsQ0FBQyxPQUFvQztRQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0s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QW9CLGNBRmpCLE1BQU07MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycy9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXHJcbiAgICBFc29sdmVHZXRSZXNwb25zZSxcclxuICAgIEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UsXHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2QsXHJcbiAgICBFc29sdmVQYXltZW50UmVzdWx0LFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtLFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtUmVzdWx0LFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDYXJkRGF0YSxcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2RPcHRpb25zLFxyXG4gICAgRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZCxcclxuICAgIEVzb2x2ZVBheW1lbnRSZWRpcmVjdExpbmtzLFxyXG4gICAgRXNvbHZlUGF5bWVudFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlVmF1bHRSZWNvcmQsXHJcbiAgICBFc29sdmVWYXVsdFJlc3BvbnNlLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRTZXRCb2R5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Vzb2x2ZS1wYXltZW50LXNldC1ib2R5LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRTdGF0dXMgfSBmcm9tICcuL2ludGVyZmFjZXMvZXNvbHZlLXBheW1lbnQtc3RhdHVzLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVQYXltZW50U2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgcGF5bWVudCBtZXRob2RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgcGF5bWVudCBtZXRob2RzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQYXltZW50TWV0aG9kcyhvcHRpb25zPzogRXNvbHZlUGF5bWVudE1ldGhvZE9wdGlvbnMpOiBPYnNlcnZhYmxlPEVzb2x2ZVBheW1lbnRNZXRob2RbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVQYXltZW50TWV0aG9kUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1wYXltZW50LW1ldGhvZHMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IC4uLm9wdGlvbnMgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUGF5bWVudE1ldGhvZHMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIHRoZSBwYXltZW50IHN0YXR1cyBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zYWN0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIElEIG9mIHRoZSB0cmFuc2FjdGlvblxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBzdWNjZXNzIHN0YXR1cyBvZiB0aGUgcGF5bWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGF5bWVudFN0YXR1cyh0cmFuc2FjdGlvbl9pZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVBheW1lbnRTdGF0dXM+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1wYXltZW50LXN0YXR1cy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXM6IHsgY2FydF9pZDogdHJhbnNhY3Rpb25faWQgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3Jkcy5zdWNjZXNzO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHNhdmVkIGNhcmRzIGZyb20gdGhlIHZhdWx0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgZVNvbHZlIElEIG9mIGEgcGF5bWVudCBtZXRob2RcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBzYXZlZCBiYW5rIGNhcmRzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRWYXVsdChwYXltZW50X21ldGhvZHNfaWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPEVzb2x2ZVZhdWx0SXRlbVtdPiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcGF5bWVudF9tZXRob2RzX2lkICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYXltZW50X21ldGhvZHNfaWQnLCBwYXltZW50X21ldGhvZHNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVZhdWx0UmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC12YXVsdC5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1ZhdWx0SXRlbXMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYSBuZXcgY2FyZCBpbiB0aGUgdmF1bHQgT1IgdXBkYXRlcyBhbiBleGlzdGluZyBvbmUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kc19pZCBTZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBJbmZvcm1hdGlvbiBvZiBiYW5rIGNhcmRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSB2YXVsdCBzZXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYXVsdEl0ZW0oXHJcbiAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkOiBudW1iZXIsXHJcbiAgICAgICAgY2FyZF9kYXRhOiBFc29sdmVDYXJkRGF0YSxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVmF1bHRJdGVtUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgdmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgICAgIGNhcmRfbnVtYmVyOiBjYXJkX2RhdGEuY2FyZF9udW1iZXIsXHJcbiAgICAgICAgICAgICAgICBjYXJkX25hbWU6IGNhcmRfZGF0YS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgY2FyZF9jdnY6IGNhcmRfZGF0YS5jdnYsXHJcbiAgICAgICAgICAgICAgICBjYXJkX2V4cGlyeTogdGhpcy5nZW5lcmF0ZUV4cGlyeShjYXJkX2RhdGEpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlVmF1bHRSZXNwb25zZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LXZhdWx0LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVWYXVsdEl0ZW1SZXN1bHQocmVzcG9uc2UpLFxyXG4gICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LXZhdWx0JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWxldGUgYSBjYXJkIGluIHRoZSB2YXVsdFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgdmF1bHQgaXRlbVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHZhdWx0IGRlbGV0ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlbGV0ZVZhdWx0SXRlbShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZGVsZXRlLXZhdWx0LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IGlkIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gbnVsbCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyAhPT0gJ3N1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVSZXN1bHQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cERlbGV0ZUVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLXZhdWx0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcGF5bWVudCBmb3IgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvbiB1c2luZyBzZWxlY3RlZCBwYXltZW50XHJcbiAgICAgKiBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIGVTb2x2ZSBJRCB0byB0aGUgdHJhbnNhY3Rpb25cclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgZVNvbHZlIElEIHRvIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGNhcmQgSUQgb2Ygc2VsZWN0ZWQgY2FyZCBmcm9tIHRoZSB2YXVsdCBvciBpbmZvcm1hdGlvbiB0byBhIGJyYW5kIG5ldyBjYXJkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgcGF5bWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0UGF5bWVudChcclxuICAgICAgICB0cmFuc2FjdGlvbl9pZDogbnVtYmVyLFxyXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyLFxyXG4gICAgICAgIGNhcmQ/OiBFc29sdmVDYXJkRGF0YSB8IG51bWJlcixcclxuICAgICAgICBsaW5rcz86IEVzb2x2ZVBheW1lbnRSZWRpcmVjdExpbmtzLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVQYXltZW50UmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keTogRXNvbHZlUGF5bWVudFNldEJvZHkgPSB7XHJcbiAgICAgICAgICAgIHBheW1lbnQ6IHtcclxuICAgICAgICAgICAgICAgIGNhcnRfaWQ6IHRyYW5zYWN0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChjYXJkKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2FyZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgIGJvZHkucGF5bWVudC51c2VyX3ZhdWx0X2lkID0gY2FyZDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGJvZHkuY2FyZCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBjYXJkX251bWJlcjogY2FyZC5jYXJkX251bWJlcixcclxuICAgICAgICAgICAgICAgICAgICBjYXJkX25hbWU6IGNhcmQubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZC5jdnYsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9leHBpcnk6IHRoaXMuZ2VuZXJhdGVFeHBpcnkoY2FyZCksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobGlua3MpIHtcclxuICAgICAgICAgICAgYm9keS5saW5rcyA9IGxpbmtzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQYXltZW50UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1wYXltZW50LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVQYXltZW50UmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1wYXltZW50JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBwYXltZW50IG1ldGhvZCByZWNvcmRzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBwYXltZW50IG1ldGhvZHMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1BheW1lbnRNZXRob2RzKHJlY29yZHM6IEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmRbXSk6IEVzb2x2ZVBheW1lbnRNZXRob2RbXSB7XHJcbiAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2RzOiBFc29sdmVQYXltZW50TWV0aG9kW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2QgPSBuZXcgRXNvbHZlUGF5bWVudE1ldGhvZChyZWNvcmQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kcy5wdXNoKHBheW1lbnRfbWV0aG9kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBheW1lbnRfbWV0aG9kcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHZhdWx0IHJlY29yZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHZhdWx0IGl0ZW1zIChhLmsuYS4gY2FyZHMpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1ZhdWx0SXRlbXMocmVjb3JkczogRXNvbHZlVmF1bHRSZWNvcmRbXSk6IEVzb2x2ZVZhdWx0SXRlbVtdIHtcclxuICAgICAgICBjb25zdCB2YXVsdDogRXNvbHZlVmF1bHRJdGVtW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmF1bHRfaXRlbSA9IG5ldyBFc29sdmVWYXVsdEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLnBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQubGFzdDQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmJyYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5leHBpcnlfdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXVsdC5wdXNoKHZhdWx0X2l0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZSBhIGNvbmNhdGVuYXRlZCBzdHJpbmcgd2l0aCB0aGUgZXhwaXJ5IG1vbnRoIGFuZCB5ZWFyXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBDcmVkaXQgY2FyZCBkYXRhXHJcbiAgICAgKlxyXG4gICAgICogIEByZXR1cm5zIEV4cGlyeSBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUV4cGlyeShjYXJkX2RhdGE6IEVzb2x2ZUNhcmREYXRhKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBtb250aF9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X21vbnRoLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgeWVhcl9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X3llYXIucGFkU3RhcnQoNCwgJzAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke21vbnRoX3N0cmluZ30ke3llYXJfc3RyaW5nfWA7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9wYXltZW50L2Vzb2x2ZS1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBR0gsNEJBQTRCLEdBRS9CLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHFCQUFxQixHQUN4QixNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFnQm5CLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0IsRUFDaEIsWUFBdUMsRUFDdkMsZUFBNkM7UUFIZCxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7SUFDdEQsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNJLGlCQUFpQixDQUNwQixPQUFvQztRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0s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akIscUJBQXFCO3FIQUZ4QixvQkFBb0IsY0FGakIsTUFBTTsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSHR0cENsaWVudCxcclxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgSHR0cFBhcmFtcyxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycy9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXHJcbiAgICBFc29sdmVHZXRSZXNwb25zZSxcclxuICAgIEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UsXHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2QsXHJcbiAgICBFc29sdmVQYXltZW50UmVzdWx0LFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtLFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtUmVzdWx0LFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDYXJkRGF0YSxcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2RPcHRpb25zLFxyXG4gICAgRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZCxcclxuICAgIEVzb2x2ZVBheW1lbnRSZWRpcmVjdExpbmtzLFxyXG4gICAgRXNvbHZlUGF5bWVudFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlVmF1bHRSZWNvcmQsXHJcbiAgICBFc29sdmVWYXVsdFJlc3BvbnNlLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRTZXRCb2R5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Vzb2x2ZS1wYXltZW50LXNldC1ib2R5LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRTdGF0dXMgfSBmcm9tICcuL2ludGVyZmFjZXMvZXNvbHZlLXBheW1lbnQtc3RhdHVzLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVQYXltZW50U2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBwYXltZW50IG1ldGhvZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgRmlsdGVyIG9wdGlvbnNcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBwYXltZW50IG1ldGhvZHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBheW1lbnRNZXRob2RzKFxyXG4gICAgICAgIG9wdGlvbnM/OiBFc29sdmVQYXltZW50TWV0aG9kT3B0aW9ucyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUGF5bWVudE1ldGhvZFtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXBheW1lbnQtbWV0aG9kcy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXM6IHsgLi4ub3B0aW9ucyB9IH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQYXltZW50TWV0aG9kcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIHBheW1lbnQgc3RhdHVzIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb25cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25faWQgSUQgb2YgdGhlIHRyYW5zYWN0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHN1Y2Nlc3Mgc3RhdHVzIG9mIHRoZSBwYXltZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQYXltZW50U3RhdHVzKHRyYW5zYWN0aW9uX2lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUGF5bWVudFN0YXR1cz4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXBheW1lbnQtc3RhdHVzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBjYXJ0X2lkOiB0cmFuc2FjdGlvbl9pZCB9IH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzLnN1Y2Nlc3M7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc2F2ZWQgY2FyZHMgZnJvbSB0aGUgdmF1bHQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kc19pZCBlU29sdmUgSUQgb2YgYSBwYXltZW50IG1ldGhvZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHNhdmVkIGJhbmsgY2FyZHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFZhdWx0KFxyXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZD86IG51bWJlcixcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVmF1bHRJdGVtW10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBwYXltZW50X21ldGhvZHNfaWQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BheW1lbnRfbWV0aG9kc19pZCcsIHBheW1lbnRfbWV0aG9kc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVmF1bHRSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXZhdWx0LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVmF1bHRJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhIG5ldyBjYXJkIGluIHRoZSB2YXVsdCBPUiB1cGRhdGVzIGFuIGV4aXN0aW5nIG9uZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RzX2lkIFNlbGVjdGVkIHBheW1lbnQgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0gY2FyZF9kYXRhIEluZm9ybWF0aW9uIG9mIGJhbmsgY2FyZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHZhdWx0IHNldC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhdWx0SXRlbShcclxuICAgICAgICBwYXltZW50X21ldGhvZHNfaWQ6IG51bWJlcixcclxuICAgICAgICBjYXJkX2RhdGE6IEVzb2x2ZUNhcmREYXRhLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVWYXVsdEl0ZW1SZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB2YXVsdDoge1xyXG4gICAgICAgICAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkLFxyXG4gICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmRfZGF0YS5jYXJkX251bWJlcixcclxuICAgICAgICAgICAgICAgIGNhcmRfbmFtZTogY2FyZF9kYXRhLm5hbWUsXHJcbiAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZF9kYXRhLmN2dixcclxuICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5OiB0aGlzLmdlbmVyYXRlRXhwaXJ5KGNhcmRfZGF0YSksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVWYXVsdFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtdmF1bHQucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiBuZXcgRXNvbHZlVmF1bHRJdGVtUmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2V0LXZhdWx0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlIGEgY2FyZCBpbiB0aGUgdmF1bHRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHZhdWx0IGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSB2YXVsdCBkZWxldGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxldGVWYXVsdEl0ZW0oaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZGVsZXRlPEVzb2x2ZURlbGV0ZVJlc3BvbnNlPihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2RlbGV0ZS12YXVsdC5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBpZCB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQgPT09IG51bGwgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuc3RhdHVzICE9PSAnc3VjY2VzcydcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgaHR0cF9yZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlUmVzdWx0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0Lm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBEZWxldGVFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS12YXVsdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHBheW1lbnQgZm9yIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24gdXNpbmcgc2VsZWN0ZWQgcGF5bWVudFxyXG4gICAgICogbWV0aG9kLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBlU29sdmUgSUQgdG8gdGhlIHRyYW5zYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RzX2lkIGVTb2x2ZSBJRCB0byB0aGUgc2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcclxuICAgICAqIEBwYXJhbSBjYXJkIElEIG9mIHNlbGVjdGVkIGNhcmQgZnJvbSB0aGUgdmF1bHQgb3IgaW5mb3JtYXRpb24gdG8gYSBicmFuZCBuZXcgY2FyZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHBheW1lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFBheW1lbnQoXHJcbiAgICAgICAgdHJhbnNhY3Rpb25faWQ6IG51bWJlcixcclxuICAgICAgICBwYXltZW50X21ldGhvZHNfaWQ6IG51bWJlcixcclxuICAgICAgICBjYXJkPzogRXNvbHZlQ2FyZERhdGEgfCBudW1iZXIsXHJcbiAgICAgICAgbGlua3M/OiBFc29sdmVQYXltZW50UmVkaXJlY3RMaW5rcyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUGF5bWVudFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZVBheW1lbnRTZXRCb2R5ID0ge1xyXG4gICAgICAgICAgICBwYXltZW50OiB7XHJcbiAgICAgICAgICAgICAgICBjYXJ0X2lkOiB0cmFuc2FjdGlvbl9pZCxcclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoY2FyZCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhcmQgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICBib2R5LnBheW1lbnQudXNlcl92YXVsdF9pZCA9IGNhcmQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBib2R5LmNhcmQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmQuY2FyZF9udW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9uYW1lOiBjYXJkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9jdnY6IGNhcmQuY3Z2LFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5OiB0aGlzLmdlbmVyYXRlRXhwaXJ5KGNhcmQpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGxpbmtzKSB7XHJcbiAgICAgICAgICAgIGJvZHkubGlua3MgPSBsaW5rcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlUGF5bWVudFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtcGF5bWVudC5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVQYXltZW50UmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2V0LXBheW1lbnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBwYXltZW50IG1ldGhvZCByZWNvcmRzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBwYXltZW50IG1ldGhvZHMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1BheW1lbnRNZXRob2RzKFxyXG4gICAgICAgIHJlY29yZHM6IEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmRbXSxcclxuICAgICk6IEVzb2x2ZVBheW1lbnRNZXRob2RbXSB7XHJcbiAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2RzOiBFc29sdmVQYXltZW50TWV0aG9kW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2QgPSBuZXcgRXNvbHZlUGF5bWVudE1ldGhvZChyZWNvcmQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kcy5wdXNoKHBheW1lbnRfbWV0aG9kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBheW1lbnRfbWV0aG9kcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHZhdWx0IHJlY29yZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHZhdWx0IGl0ZW1zIChhLmsuYS4gY2FyZHMpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1ZhdWx0SXRlbXMocmVjb3JkczogRXNvbHZlVmF1bHRSZWNvcmRbXSk6IEVzb2x2ZVZhdWx0SXRlbVtdIHtcclxuICAgICAgICBjb25zdCB2YXVsdDogRXNvbHZlVmF1bHRJdGVtW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmF1bHRfaXRlbSA9IG5ldyBFc29sdmVWYXVsdEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLnBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQubGFzdDQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmJyYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5leHBpcnlfdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXVsdC5wdXNoKHZhdWx0X2l0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZSBhIGNvbmNhdGVuYXRlZCBzdHJpbmcgd2l0aCB0aGUgZXhwaXJ5IG1vbnRoIGFuZCB5ZWFyXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBDcmVkaXQgY2FyZCBkYXRhXHJcbiAgICAgKlxyXG4gICAgICogIEByZXR1cm5zIEV4cGlyeSBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUV4cGlyeShjYXJkX2RhdGE6IEVzb2x2ZUNhcmREYXRhKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBtb250aF9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X21vbnRoLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgeWVhcl9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X3llYXIucGFkU3RhcnQoNCwgJzAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke21vbnRoX3N0cmluZ30ke3llYXJfc3RyaW5nfWA7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable, Inject } from '@angular/core';
|
|
3
|
+
import { map, catchError } from 'rxjs/operators';
|
|
4
|
+
import { EsolveResponseHandlerService, EsolveResponseResult, } from '../shared/response';
|
|
5
|
+
import { EsolveErrorHandlerService } from '../shared/errors';
|
|
6
|
+
import { EsolveResult } from '../shared/esolve-result.model';
|
|
7
|
+
import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common/http";
|
|
10
|
+
import * as i2 from "../shared/errors";
|
|
11
|
+
import * as i3 from "../shared/response";
|
|
12
|
+
export class EsolveSessionMetadataService {
|
|
13
|
+
constructor(config, http, errorHandler, responseHandler) {
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.http = http;
|
|
16
|
+
this.errorHandler = errorHandler;
|
|
17
|
+
this.responseHandler = responseHandler;
|
|
18
|
+
}
|
|
19
|
+
set(type, metadata) {
|
|
20
|
+
return this.http
|
|
21
|
+
.post(`${this.config.api_url}/set-sessions-metadata.php`, metadata, {
|
|
22
|
+
headers: {
|
|
23
|
+
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',
|
|
24
|
+
},
|
|
25
|
+
responseType: 'json',
|
|
26
|
+
observe: 'body',
|
|
27
|
+
params: { type },
|
|
28
|
+
})
|
|
29
|
+
.pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveResponseResult(response))), catchError((errorRes) => {
|
|
30
|
+
return this.errorHandler.handleHttpPostError('set-sessions-metadata', errorRes);
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
get(type) {
|
|
34
|
+
return this.http
|
|
35
|
+
.get(`${this.config.api_url}/get-sessions-metadata.php`, {
|
|
36
|
+
params: { type },
|
|
37
|
+
})
|
|
38
|
+
.pipe(map((response) => {
|
|
39
|
+
if (response.records === undefined ||
|
|
40
|
+
(Array.isArray(response.records) &&
|
|
41
|
+
response.records.length === 0)) {
|
|
42
|
+
throw response;
|
|
43
|
+
}
|
|
44
|
+
return response.records;
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
delete(type) {
|
|
48
|
+
return this.http
|
|
49
|
+
.delete(`${this.config.api_url}/delete-sessions-metadata.php`, {
|
|
50
|
+
params: { type },
|
|
51
|
+
responseType: 'json',
|
|
52
|
+
observe: 'body',
|
|
53
|
+
})
|
|
54
|
+
.pipe(map((http_response) => {
|
|
55
|
+
if (http_response.result === undefined ||
|
|
56
|
+
http_response.result === null ||
|
|
57
|
+
http_response.result.status !== 'success') {
|
|
58
|
+
throw http_response;
|
|
59
|
+
}
|
|
60
|
+
return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);
|
|
61
|
+
}), catchError((errorRes) => {
|
|
62
|
+
return this.errorHandler.handleHttpDeleteError('delete-sessions-metadata', errorRes);
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
EsolveSessionMetadataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: EsolveSessionMetadataService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveErrorHandlerService }, { token: i3.EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
|
+
EsolveSessionMetadataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: EsolveSessionMetadataService, providedIn: 'root' });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: EsolveSessionMetadataService, decorators: [{
|
|
69
|
+
type: Injectable,
|
|
70
|
+
args: [{
|
|
71
|
+
providedIn: 'root',
|
|
72
|
+
}]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
74
|
+
type: Inject,
|
|
75
|
+
args: [ESOLVE_CONNECT_CONFIG]
|
|
76
|
+
}] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24tbWV0YWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zZXNzaW9uL2Vzb2x2ZS1zZXNzaW9uLW1ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFJSCw0QkFBNEIsRUFDNUIsb0JBQW9CLEdBRXZCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUsxRSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCLEVBQ2hCLFlBQXVDLEVBQ3ZDLGVBQTZDO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsb0JBQWUsR0FBZixlQUFlLENBQThCO0lBQ3RELENBQUM7SUFFRyxHQUFHLENBQUMsSUFBWSxFQUFFLFFBQWE7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLElBQUksQ0FDRCxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyw0QkFBNEIsRUFDbEQsUUFBUSxFQUNSO1lBQ0ksT0FBTyxFQUFFO2dCQUNMLGNBQWMsRUFDVixrREFBa0Q7YUFDekQ7WUFDRCxZQUFZLEVBQUUsTUFBTTtZQUNwQixPQUFPLEVBQUUsTUFBTTtZQUNmLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRTtTQUNuQixDQUNKO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQzNDLGFBQWEsRUFDYixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FDbkQsQ0FDSixFQUNELFVBQVUsQ0FBQyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQ3hDLHVCQUF1QixFQUN2QixRQUFRLENBQ1gsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRU0sR0FBRyxDQUFJLElBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyw0QkFBNEIsRUFDbEQ7WUFDSSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUU7U0FDbkIsQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQ0ksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUM5QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztvQkFDNUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQ3BDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxRQUFRLENBQUMsT0FBWSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLE1BQU0sQ0FDSCxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTywrQkFBK0IsRUFDckQ7WUFDSSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDaEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsT0FBTyxFQUFFLE1BQU07U0FDbEIsQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNsQixJQUNJLGFBQWEsQ0FBQyxNQUFNLEtBQUssU0FBUztnQkFDbEMsYUFBYSxDQUFDLE1BQU0sS0FBSyxJQUFJO2dCQUM3QixhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQzNDO2dCQUNFLE1BQU0sYUFBYSxDQUFDO2FBQ3ZCO1lBRUQsT0FBTyxJQUFJLFlBQVksQ0FDbkIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQzNCLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUN6QixhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDL0IsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQzFDLDBCQUEwQixFQUMxQixRQUFRLENBQ1gsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDOzt5SEEvRlEsNEJBQTRCLGtCQUV6QixxQkFBcUI7NkhBRnhCLDRCQUE0QixjQUZ6QixNQUFNOzJGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXHJcbiAgICBFc29sdmVHZXRSZXNwb25zZSxcclxuICAgIEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0sXHJcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgRXNvbHZlUmVzcG9uc2VSZXN1bHQsXHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycyc7XHJcbmltcG9ydCB7IEVzb2x2ZVJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzdWx0Lm1vZGVsJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU2Vzc2lvbk1ldGFkYXRhU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIHB1YmxpYyBzZXQodHlwZTogc3RyaW5nLCBtZXRhZGF0YTogYW55KTogT2JzZXJ2YWJsZTxFc29sdmVSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlUG9zdFJlc3BvbnNlSXRlbT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LXNlc3Npb25zLW1ldGFkYXRhLnBocGAsXHJcbiAgICAgICAgICAgICAgICBtZXRhZGF0YSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IHR5cGUgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4gbmV3IEVzb2x2ZVJlc3BvbnNlUmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2V0LXNlc3Npb25zLW1ldGFkYXRhJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQ8VD4odHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPFQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1zZXNzaW9ucy1tZXRhZGF0YS5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyB0eXBlIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3JkcyBhcyBUO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGV0ZSh0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZVJlc3VsdD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmRlbGV0ZTxFc29sdmVEZWxldGVSZXNwb25zZT4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9kZWxldGUtc2Vzc2lvbnMtbWV0YWRhdGEucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgdHlwZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQgPT09IG51bGwgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuc3RhdHVzICE9PSAnc3VjY2VzcydcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgaHR0cF9yZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlUmVzdWx0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0Lm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBEZWxldGVFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS1zZXNzaW9ucy1tZXRhZGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -2,4 +2,5 @@ export * from './esolve-session.model';
|
|
|
2
2
|
export * from './esolve-session-data.interface';
|
|
3
3
|
export * from './esolve-stored-session.interface';
|
|
4
4
|
export * from './esolve-session.service';
|
|
5
|
-
|
|
5
|
+
export * from './esolve-session-metadata.service';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2Vzc2lvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zZXNzaW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc2Vzc2lvbi1kYXRhLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b3JlZC1zZXNzaW9uLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXNlc3Npb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXNlc3Npb24tbWV0YWRhdGEuc2VydmljZSc7XHJcbiJdfQ==
|
|
@@ -26,7 +26,8 @@ export class EsolveGeocoderService {
|
|
|
26
26
|
},
|
|
27
27
|
})
|
|
28
28
|
.pipe(map((response) => {
|
|
29
|
-
if (response.records === undefined
|
|
29
|
+
if (response.records === undefined ||
|
|
30
|
+
Array.isArray(response.records)) {
|
|
30
31
|
throw response;
|
|
31
32
|
}
|
|
32
33
|
const record = response.records;
|
|
@@ -42,7 +43,8 @@ export class EsolveGeocoderService {
|
|
|
42
43
|
},
|
|
43
44
|
})
|
|
44
45
|
.pipe(map((response) => {
|
|
45
|
-
if (response.records === undefined
|
|
46
|
+
if (response.records === undefined ||
|
|
47
|
+
Array.isArray(response.records)) {
|
|
46
48
|
throw response;
|
|
47
49
|
}
|
|
48
50
|
const record = response.records;
|
|
@@ -67,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
67
69
|
type: Inject,
|
|
68
70
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
69
71
|
}] }, { type: i1.HttpClient }]; } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWdlb2NvZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2dlb2NvZGVyL2Vzb2x2ZS1nZW9jb2Rlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQUtqRixNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN6QixDQUFDO0lBRUcsT0FBTyxDQUNWLGFBQXFCLEVBQ3JCLE1BQWMsRUFDZCxNQUFjLEVBQ2QsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixXQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGtCQUFrQixFQUN4QztZQUNJLE1BQU0sRUFBRTtnQkFDSixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sTUFBTTtnQkFDTixJQUFJO2dCQUNKLFFBQVE7Z0JBQ1IsT0FBTztnQkFDUCxXQUFXO2FBQ2Q7U0FDSixDQUNKO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFDSSxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVM7Z0JBQzlCLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUNqQztnQkFDRSxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFFaEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFTSxjQUFjLENBQ2pCLFFBQWdCLEVBQ2hCLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sa0JBQWtCLEVBQ3hDO1lBQ0ksTUFBTSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUUsU0FBUzthQUN2QjtTQUNKLENBQ0o7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUNJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUztnQkFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQ2pDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUVoQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVPLG9CQUFvQixDQUN4QixNQUFpQztRQUVqQyxNQUFNLGVBQWUsR0FBRyxJQUFJLDBCQUEwQixDQUNsRCxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUNyQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FDN0IsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFHLElBQUkseUJBQXlCLENBQ2hELE1BQU0sQ0FBQyxRQUFRLEVBQ2YsTUFBTSxDQUFDLFNBQVMsQ0FDbkIsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFHLElBQUksbUJBQW1CLENBQzFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFDeEIsZUFBZSxFQUNmLGNBQWMsRUFDZCxNQUFNLENBQUMsTUFBTSxFQUNiLE1BQU0sQ0FBQyxRQUFRLEVBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQztRQUVGLE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7O2tIQXhHUSxxQkFBcUIsa0JBRWxCLHFCQUFxQjtzSEFGeEIscUJBQXFCLGNBRmxCLE1BQU07MkZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uLy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uLy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlR2VvY29kZVJlc3VsdFJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWdlb2NvZGUtcmVzdWx0LXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVHZW9jb2RlUmVzdWx0IH0gZnJvbSAnLi9lc29sdmUtZ2VvY29kZS1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVHZW9jb2RlQWRkcmVzc1Jlc3VsdCB9IGZyb20gJy4vZXNvbHZlLWdlb2NvZGUtYWRkcmVzcy1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVHZW9jb2RlQ29vcmRzUmVzdWx0IH0gZnJvbSAnLi9lc29sdmUtZ2VvY29kZS1jb29yZHMtcmVzdWx0Lm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUdlb2NvZGVyU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgKSB7fVxyXG5cclxuICAgIHB1YmxpYyBnZW9jb2RlKFxyXG4gICAgICAgIHN0cmVldF9udW1iZXI6IHN0cmluZyxcclxuICAgICAgICBzdHJlZXQ6IHN0cmluZyxcclxuICAgICAgICBzdWJ1cmI6IHN0cmluZyxcclxuICAgICAgICBjaXR5OiBzdHJpbmcsXHJcbiAgICAgICAgcHJvdmluY2U6IHN0cmluZyxcclxuICAgICAgICBjb3VudHJ5OiBzdHJpbmcsXHJcbiAgICAgICAgcG9zdGFsX2NvZGU6IHN0cmluZyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlR2VvY29kZVJlc3VsdD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVHZW9jb2RlUmVzdWx0UmVjb3JkPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtZ2VvY29kZS5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnVyYixcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2l0eSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmluY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RhbF9jb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVjb3JkcylcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmQgPSByZXNwb25zZS5yZWNvcmRzO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzR2VvY29kZVJlc3VsdChyZWNvcmQpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJldmVyc2VHZW9jb2RlKFxyXG4gICAgICAgIGxhdGl0dWRlOiBudW1iZXIsXHJcbiAgICAgICAgbG9uZ2l0dWRlOiBudW1iZXIsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUdlb2NvZGVSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlR2VvY29kZVJlc3VsdFJlY29yZD4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWdlb2NvZGUucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF0aXR1ZGU6IGxhdGl0dWRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb25naXR1ZGU6IGxvbmdpdHVkZSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVzcG9uc2UucmVjb3JkcztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0dlb2NvZGVSZXN1bHQocmVjb3JkKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc0dlb2NvZGVSZXN1bHQoXHJcbiAgICAgICAgcmVjb3JkOiBFc29sdmVHZW9jb2RlUmVzdWx0UmVjb3JkLFxyXG4gICAgKTogRXNvbHZlR2VvY29kZVJlc3VsdCB7XHJcbiAgICAgICAgY29uc3QgZ2VvY29kZV9hZGRyZXNzID0gbmV3IEVzb2x2ZUdlb2NvZGVBZGRyZXNzUmVzdWx0KFxyXG4gICAgICAgICAgICByZWNvcmQuYWRkcmVzcy5zdHJlZXRfbnVtYmVyLFxyXG4gICAgICAgICAgICByZWNvcmQuYWRkcmVzcy5zdHJlZXQsXHJcbiAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzLnN1YnVyYixcclxuICAgICAgICAgICAgcmVjb3JkLmFkZHJlc3MuY2l0eSxcclxuICAgICAgICAgICAgcmVjb3JkLmFkZHJlc3MucHJvdmluY2UsXHJcbiAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzLmNvdW50cnksXHJcbiAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzLnBvc3RhbF9jb2RlLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IGdlb2NvZGVfY29vcmRzID0gbmV3IEVzb2x2ZUdlb2NvZGVDb29yZHNSZXN1bHQoXHJcbiAgICAgICAgICAgIHJlY29yZC5sYXRpdHVkZSxcclxuICAgICAgICAgICAgcmVjb3JkLmxvbmdpdHVkZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBnZW9jb2RlX3Jlc3VsdCA9IG5ldyBFc29sdmVHZW9jb2RlUmVzdWx0KFxyXG4gICAgICAgICAgICByZWNvcmQuZm9ybWF0dGVkX2FkZHJlc3MsXHJcbiAgICAgICAgICAgIGdlb2NvZGVfYWRkcmVzcyxcclxuICAgICAgICAgICAgZ2VvY29kZV9jb29yZHMsXHJcbiAgICAgICAgICAgIHJlY29yZC5zdGF0dXMsXHJcbiAgICAgICAgICAgIHJlY29yZC5jaGVja3N1bSxcclxuICAgICAgICAgICAgcmVjb3JkLmNhY2hlZCxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gZ2VvY29kZV9yZXN1bHQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWdldC1yZXNwb25zZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL3Jlc3BvbnNlL2Vzb2x2ZS1nZXQtcmVzcG9uc2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVSZXNwb25zZSB9IGZyb20gJy4vZXNvbHZlLXJlc3BvbnNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUdldFJlc3BvbnNlPFQgPSBhbnk+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWdldC1yZXNwb25zZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL3Jlc3BvbnNlL2Vzb2x2ZS1nZXQtcmVzcG9uc2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVSZXNwb25zZSB9IGZyb20gJy4vZXNvbHZlLXJlc3BvbnNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUdldFJlc3BvbnNlPFQgPSBhbnk+IGV4dGVuZHMgRXNvbHZlUmVzcG9uc2Uge1xyXG4gICAgcmVjb3Jkcz86IFQgfCBuZXZlcltdO1xyXG59XHJcbiJdfQ==
|