@xsolla/payment-client-core 0.2.81 → 0.2.83
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/esm2022/lib/core/payment/actions/redirect/acquirers-with-redirect-in-new-window.const.mjs +5 -0
- package/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +14 -1
- package/esm2022/lib/core/payment/actions/redirect/redirect.action.type.mjs +1 -1
- package/esm2022/lib/core/payment/credit-card-payment-methods-id.variable.mjs +3 -3
- package/esm2022/lib/core/payment/payment.service.mjs +7 -4
- package/esm2022/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +7 -2
- package/esm2022/lib/core/payment/xps-api/xps-api.service.mjs +2 -2
- package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay-button-configuration.interface.mjs +2 -0
- package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.mjs +1 -1
- package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +46 -3
- package/esm2022/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +1 -1
- package/esm2022/lib/shared/translate/translate.helper.mjs +3 -3
- package/fesm2022/xsolla-payment-client-core.mjs +80 -14
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/payment/actions/redirect/acquirers-with-redirect-in-new-window.const.d.ts +2 -0
- package/lib/core/payment/actions/redirect/redirect.action.class.d.ts +1 -0
- package/lib/core/payment/actions/redirect/redirect.action.type.d.ts +1 -0
- package/lib/core/payment/credit-card-payment-methods-id.variable.d.ts +1 -1
- package/lib/core/payment/payment.service.d.ts +3 -1
- package/lib/core/sdk-payment-systems/google-pay/google-pay-button-configuration.interface.d.ts +5 -0
- package/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.d.ts +1 -0
- package/lib/core/sdk-payment-systems/google-pay/google-pay.service.d.ts +3 -2
- package/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.d.ts +1 -0
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.2.83.tgz +0 -0
- package/xsolla-payment-client-core-0.2.81.tgz +0 -0
package/esm2022/lib/core/payment/actions/redirect/acquirers-with-redirect-in-new-window.const.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const softBankContrId = 1303;
|
|
2
|
+
export const acquirersWithRedirectInNewWindow = new Set([
|
|
3
|
+
softBankContrId,
|
|
4
|
+
]);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNxdWlyZXJzLXdpdGgtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9hY3F1aXJlcnMtd2l0aC1yZWRpcmVjdC1pbi1uZXctd2luZG93LmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxHQUFHLENBQVM7SUFDOUQsZUFBZTtDQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc29mdEJhbmtDb250cklkID0gMTMwMztcblxuZXhwb3J0IGNvbnN0IGFjcXVpcmVyc1dpdGhSZWRpcmVjdEluTmV3V2luZG93ID0gbmV3IFNldDxudW1iZXI+KFtcbiAgc29mdEJhbmtDb250cklkLFxuXSk7XG4iXX0=
|
|
@@ -2,6 +2,8 @@ import { XpsCommand } from '../../xps-comand.enum';
|
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
3
|
import { pagesRoutes } from './ps4-pages/pages-routes.const';
|
|
4
4
|
import { payStation4Url, sandboxPayStationUrl } from './pay-station4-url.const';
|
|
5
|
+
import { acquirersWithRedirectInNewWindow } from './acquirers-with-redirect-in-new-window.const';
|
|
6
|
+
import { cardsWith3ds } from '../../credit-card-payment-methods-id.variable';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
import * as i1 from "../../../settings/settings.service";
|
|
7
9
|
export class RedirectActionCreator {
|
|
@@ -29,6 +31,7 @@ export class RedirectActionCreator {
|
|
|
29
31
|
getRedirect(submitResponse) {
|
|
30
32
|
return {
|
|
31
33
|
redirectUrl: this.getRedirectUrl(submitResponse),
|
|
34
|
+
isNewWindowRequired: this.getIsNewWindowRequired(submitResponse),
|
|
32
35
|
data: submitResponse.parameters.checkout.data,
|
|
33
36
|
};
|
|
34
37
|
}
|
|
@@ -44,6 +47,16 @@ export class RedirectActionCreator {
|
|
|
44
47
|
}
|
|
45
48
|
return this.preparePagesUrl(pagesPath);
|
|
46
49
|
}
|
|
50
|
+
getIsNewWindowRequired(submitResponse) {
|
|
51
|
+
if (!cardsWith3ds.has(submitResponse?.parameters?.pid)) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const acquirer = submitResponse?.userSession?.payment_method_contr_id ?? null;
|
|
55
|
+
const isAcquirerWithRedirectInNewWindow = acquirer && acquirersWithRedirectInNewWindow.has(acquirer);
|
|
56
|
+
const cardBinCountry = submitResponse.parameters.cardBinCountry;
|
|
57
|
+
const isJapanCard = cardBinCountry === 'JP';
|
|
58
|
+
return isAcquirerWithRedirectInNewWindow || isJapanCard;
|
|
59
|
+
}
|
|
47
60
|
preparePagesUrl(pagesPath) {
|
|
48
61
|
const isSandbox = this.settingsService.isSandboxMode();
|
|
49
62
|
const token = this.settingsService.token;
|
|
@@ -56,4 +69,4 @@ export class RedirectActionCreator {
|
|
|
56
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RedirectActionCreator, decorators: [{
|
|
57
70
|
type: Injectable
|
|
58
71
|
}], ctorParameters: () => [{ type: i1.SettingsService }] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuYWN0aW9uLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3JlZGlyZWN0LmFjdGlvbi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7O0FBRzdFLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBb0MsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRnBELFNBQUksR0FBdUIsVUFBVSxDQUFDO0lBRWlCLENBQUM7SUFFakUsYUFBYSxDQUFDLGNBQThCO1FBQ2pELE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNO2dCQUM3QixNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07Z0JBQzdCLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUTtnQkFDakMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxPQUFPO2dCQUM3QixTQUFTLEVBQUUsY0FBYyxDQUFDLFVBQVU7Z0JBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQzthQUMzQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVSxDQUFDLFFBQXdCO1FBQ3hDLE9BQU8sQ0FDTCxRQUFRLENBQUMsY0FBYyxLQUFLLFVBQVUsQ0FBQyxRQUFRO1lBQy9DLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVPLFdBQVcsQ0FDakIsY0FBOEI7UUFFOUIsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQztZQUNoRCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDO1lBQ2hFLElBQUksRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUFDLGNBQThCO1FBQ25ELE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXRFLE1BQU0sR0FBRyxHQUFHLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUN0QyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQ2pDLEVBQUUsS0FBSyxDQUFDO1FBQ1QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLG1CQUFtQixDQUFDO1FBQzdCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLGNBQThCO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FDWixjQUFjLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixJQUFJLElBQUksQ0FBQztRQUMvRCxNQUFNLGlDQUFpQyxHQUNyQyxRQUFRLElBQUksZ0NBQWdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLGNBQWMsS0FBSyxJQUFJLENBQUM7UUFFNUMsT0FBTyxpQ0FBaUMsSUFBSSxXQUFXLENBQUM7SUFDMUQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUFpQjtRQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBRXpDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUN4RSxPQUFPLEdBQUcsYUFBYSxNQUFNLFNBQVMsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUMxRCxDQUFDOzhHQTVFVSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vcmVxdWVzdHMvc3VibWl0L3Jlc3BvbnNlL3N1Ym1pdC1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi4vYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBSZWRpcmVjdEFjdGlvbixcbiAgUmVkaXJlY3RBY3Rpb25EYXRhLFxuICBSZWRpcmVjdEFjdGlvblR5cGUsXG59IGZyb20gJy4vcmVkaXJlY3QuYWN0aW9uLnR5cGUnO1xuaW1wb3J0IHsgWHBzQ29tbWFuZCB9IGZyb20gJy4uLy4uL3hwcy1jb21hbmQuZW51bSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4vcHM0LXBhZ2VzL3BhZ2VzLXJvdXRlcy5jb25zdCc7XG5pbXBvcnQgeyBwYXlTdGF0aW9uNFVybCwgc2FuZGJveFBheVN0YXRpb25VcmwgfSBmcm9tICcuL3BheS1zdGF0aW9uNC11cmwuY29uc3QnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBhY3F1aXJlcnNXaXRoUmVkaXJlY3RJbk5ld1dpbmRvdyB9IGZyb20gJy4vYWNxdWlyZXJzLXdpdGgtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5jb25zdCc7XG5pbXBvcnQgeyBjYXJkc1dpdGgzZHMgfSBmcm9tICcuLi8uLi9jcmVkaXQtY2FyZC1wYXltZW50LW1ldGhvZHMtaWQudmFyaWFibGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RBY3Rpb25DcmVhdG9yIGltcGxlbWVudHMgQWN0aW9uQ3JlYXRvciB7XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBSZWRpcmVjdEFjdGlvblR5cGUgPSAncmVkaXJlY3QnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXRBY3Rpb25EYXRhKHN1Ym1pdFJlc3BvbnNlOiBTdWJtaXRSZXNwb25zZSk6IFJlZGlyZWN0QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgZGF0YToge1xuICAgICAgICBmaWVsZHM6IHN1Ym1pdFJlc3BvbnNlLmZpZWxkcyxcbiAgICAgICAgZXJyb3JzOiBzdWJtaXRSZXNwb25zZS5lcnJvcnMsXG4gICAgICAgIG1lc3NhZ2VzOiBzdWJtaXRSZXNwb25zZS5tZXNzYWdlcyxcbiAgICAgICAgb3JkZXI6IHN1Ym1pdFJlc3BvbnNlLnN1bW1hcnksXG4gICAgICAgIGludm9pY2VJZDogc3VibWl0UmVzcG9uc2UuZml4SW52b2ljZSxcbiAgICAgICAgcmVkaXJlY3Q6IHRoaXMuZ2V0UmVkaXJlY3Qoc3VibWl0UmVzcG9uc2UpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGlzU3VpdGFibGUocmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJlc3BvbnNlLmN1cnJlbnRDb21tYW5kID09PSBYcHNDb21tYW5kLmNoZWNrb3V0ICYmXG4gICAgICBCb29sZWFuKHJlc3BvbnNlLnBhcmFtZXRlcnMuY2hlY2tvdXQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVkaXJlY3QoXG4gICAgc3VibWl0UmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlXG4gICk6IFJlZGlyZWN0QWN0aW9uRGF0YVsncmVkaXJlY3QnXSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZGlyZWN0VXJsOiB0aGlzLmdldFJlZGlyZWN0VXJsKHN1Ym1pdFJlc3BvbnNlKSxcbiAgICAgIGlzTmV3V2luZG93UmVxdWlyZWQ6IHRoaXMuZ2V0SXNOZXdXaW5kb3dSZXF1aXJlZChzdWJtaXRSZXNwb25zZSksXG4gICAgICBkYXRhOiBzdWJtaXRSZXNwb25zZS5wYXJhbWV0ZXJzLmNoZWNrb3V0LmRhdGEsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVkaXJlY3RVcmwoc3VibWl0UmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXNwb25zZVJlZGlyZWN0VXJsID0gc3VibWl0UmVzcG9uc2UucGFyYW1ldGVycy5jaGVja291dC5hY3Rpb247XG5cbiAgICBjb25zdCBwaWQgPSBzdWJtaXRSZXNwb25zZT8uZmllbGRzPy5maW5kKFxuICAgICAgKHsgbmFtZSB9KSA9PiBuYW1lID09PSAnZml4X3BpZCdcbiAgICApPy52YWx1ZTtcbiAgICBpZiAoIXBpZCkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlUmVkaXJlY3RVcmw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZXNQYXRoID0gcGFnZXNSb3V0ZXMuZ2V0KE51bWJlcihwaWQpKTtcbiAgICBpZiAoIXBhZ2VzUGF0aCkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlUmVkaXJlY3RVcmw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJlcGFyZVBhZ2VzVXJsKHBhZ2VzUGF0aCk7XG4gIH1cblxuICBwcml2YXRlIGdldElzTmV3V2luZG93UmVxdWlyZWQoc3VibWl0UmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjYXJkc1dpdGgzZHMuaGFzKHN1Ym1pdFJlc3BvbnNlPy5wYXJhbWV0ZXJzPy5waWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYWNxdWlyZXIgPVxuICAgICAgc3VibWl0UmVzcG9uc2U/LnVzZXJTZXNzaW9uPy5wYXltZW50X21ldGhvZF9jb250cl9pZCA/PyBudWxsO1xuICAgIGNvbnN0IGlzQWNxdWlyZXJXaXRoUmVkaXJlY3RJbk5ld1dpbmRvdyA9XG4gICAgICBhY3F1aXJlciAmJiBhY3F1aXJlcnNXaXRoUmVkaXJlY3RJbk5ld1dpbmRvdy5oYXMoYWNxdWlyZXIpO1xuXG4gICAgY29uc3QgY2FyZEJpbkNvdW50cnkgPSBzdWJtaXRSZXNwb25zZS5wYXJhbWV0ZXJzLmNhcmRCaW5Db3VudHJ5O1xuICAgIGNvbnN0IGlzSmFwYW5DYXJkID0gY2FyZEJpbkNvdW50cnkgPT09ICdKUCc7XG5cbiAgICByZXR1cm4gaXNBY3F1aXJlcldpdGhSZWRpcmVjdEluTmV3V2luZG93IHx8IGlzSmFwYW5DYXJkO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlUGFnZXNVcmwocGFnZXNQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlzU2FuZGJveCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmlzU2FuZGJveE1vZGUoKTtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuO1xuXG4gICAgY29uc3QgcGF5U3RhdGlvblVybCA9IGlzU2FuZGJveCA/IHNhbmRib3hQYXlTdGF0aW9uVXJsIDogcGF5U3RhdGlvbjRVcmw7XG4gICAgcmV0dXJuIGAke3BheVN0YXRpb25Vcmx9L2VuJHtwYWdlc1BhdGh9P3Rva2VuPSR7dG9rZW59YDtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuYWN0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcmVkaXJlY3QuYWN0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzRXJyb3IgfSBmcm9tICcuLi8uLi94cHMtZXJyb3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc01lc3NhZ2UgfSBmcm9tICcuLi8uLi94cHMtbWVzc2FnZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBSZWRpcmVjdEFjdGlvblR5cGUgPSAncmVkaXJlY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZGlyZWN0QWN0aW9uRGF0YSB7XG4gIGZpZWxkczogRmllbGRbXTtcbiAgZXJyb3JzOiBYcHNFcnJvcltdIHwgbnVsbDtcbiAgbWVzc2FnZXM6IFhwc01lc3NhZ2VbXSB8IHVuZGVmaW5lZDtcbiAgaW52b2ljZUlkPzogc3RyaW5nO1xuICBvcmRlcj86IG9iamVjdDtcbiAgcmVkaXJlY3Q6IHtcbiAgICByZWRpcmVjdFVybDogc3RyaW5nO1xuICAgIGlzTmV3V2luZG93UmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGRhdGE6IG9iamVjdDtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUmVkaXJlY3RBY3Rpb24gPSBBY3Rpb248UmVkaXJlY3RBY3Rpb25UeXBlLCBSZWRpcmVjdEFjdGlvbkRhdGE+O1xuIl19
|
|
@@ -8,9 +8,9 @@ export const specialCards = [
|
|
|
8
8
|
masterCardAndVisaPaymentMethodId,
|
|
9
9
|
americanExpressMethodId,
|
|
10
10
|
];
|
|
11
|
-
export const cardsWith3ds = [
|
|
11
|
+
export const cardsWith3ds = new Set([
|
|
12
12
|
masterCardAndVisaPaymentMethodId,
|
|
13
13
|
maestroPaymentMethodId,
|
|
14
14
|
creditCardPaymentMethodId,
|
|
15
|
-
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
]);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LWNhcmQtcGF5bWVudC1tZXRob2RzLWlkLnZhcmlhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9jcmVkaXQtY2FyZC1wYXltZW50LW1ldGhvZHMtaWQudmFyaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsRUFBRSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQUMxQywrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBYSxDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWE7SUFDcEMsc0JBQXNCO0lBQ3RCLGdDQUFnQztJQUNoQyx1QkFBdUI7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBUztJQUMxQyxnQ0FBZ0M7SUFDaEMsc0JBQXNCO0lBQ3RCLHlCQUF5QjtDQUMxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgbWFzdGVyQ2FyZEFuZFZpc2FQYXltZW50TWV0aG9kSWQgPSAyNjtcbmV4cG9ydCBjb25zdCBtYWVzdHJvUGF5bWVudE1ldGhvZElkID0gNDkwO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1tYWdpYy1udW1iZXJzXG5leHBvcnQgY29uc3QgY3JlZGl0Q2FyZFBheW1lbnRNZXRob2RJZCA9IDEzODAgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgYW1lcmljYW5FeHByZXNzTWV0aG9kSWQgPSA3MTQ7XG5cbmV4cG9ydCBjb25zdCBzcGVjaWFsQ2FyZHM6IG51bWJlcltdID0gW1xuICBtYWVzdHJvUGF5bWVudE1ldGhvZElkLFxuICBtYXN0ZXJDYXJkQW5kVmlzYVBheW1lbnRNZXRob2RJZCxcbiAgYW1lcmljYW5FeHByZXNzTWV0aG9kSWQsXG5dO1xuXG5leHBvcnQgY29uc3QgY2FyZHNXaXRoM2RzID0gbmV3IFNldDxudW1iZXI+KFtcbiAgbWFzdGVyQ2FyZEFuZFZpc2FQYXltZW50TWV0aG9kSWQsXG4gIG1hZXN0cm9QYXltZW50TWV0aG9kSWQsXG4gIGNyZWRpdENhcmRQYXltZW50TWV0aG9kSWQsXG5dKTtcbiJdfQ==
|
|
@@ -33,6 +33,7 @@ import * as i15 from "../country/country.service";
|
|
|
33
33
|
import * as i16 from "./actions/check-status/check-status.action.class";
|
|
34
34
|
import * as i17 from "../xsolla-number/api/print-instruction/print-instruction.service";
|
|
35
35
|
import * as i18 from "./payment-behaviour/payment-behaviour.service";
|
|
36
|
+
import * as i19 from "@ngx-translate/core";
|
|
36
37
|
export class PaymentService {
|
|
37
38
|
get formFieldsStatus$() {
|
|
38
39
|
return this.formFieldsStatusSubject.asObservable().pipe(filter(Boolean));
|
|
@@ -46,7 +47,7 @@ export class PaymentService {
|
|
|
46
47
|
get formResponseValue() {
|
|
47
48
|
return this._formResponse$.getValue();
|
|
48
49
|
}
|
|
49
|
-
constructor(loggerService, initializeService, submitService, syncService, formService, statusService, financeDetailsService, creditCardStateService, nextActionService, initializeNextActionService, controlConfigService, threeDsService, formMessagesService, settingsService, countryService, checkStatusActionCreator, printInstructionService, paymentBehaviourService) {
|
|
50
|
+
constructor(loggerService, initializeService, submitService, syncService, formService, statusService, financeDetailsService, creditCardStateService, nextActionService, initializeNextActionService, controlConfigService, threeDsService, formMessagesService, settingsService, countryService, checkStatusActionCreator, printInstructionService, paymentBehaviourService, translateService) {
|
|
50
51
|
this.loggerService = loggerService;
|
|
51
52
|
this.initializeService = initializeService;
|
|
52
53
|
this.submitService = submitService;
|
|
@@ -65,6 +66,7 @@ export class PaymentService {
|
|
|
65
66
|
this.checkStatusActionCreator = checkStatusActionCreator;
|
|
66
67
|
this.printInstructionService = printInstructionService;
|
|
67
68
|
this.paymentBehaviourService = paymentBehaviourService;
|
|
69
|
+
this.translateService = translateService;
|
|
68
70
|
this.form = null;
|
|
69
71
|
this.data = null;
|
|
70
72
|
this.financeDetails = null;
|
|
@@ -207,6 +209,7 @@ export class PaymentService {
|
|
|
207
209
|
fields: sdkPaymentData.fields,
|
|
208
210
|
submitResponse: isSubmitResponse(this.data) ? this.data : null,
|
|
209
211
|
summary: sdkPaymentData.summary,
|
|
212
|
+
locale: this.translateService.getCurrentLang(),
|
|
210
213
|
});
|
|
211
214
|
}
|
|
212
215
|
getQrCode() {
|
|
@@ -513,7 +516,7 @@ export class PaymentService {
|
|
|
513
516
|
return;
|
|
514
517
|
updateAfterErrorRules.forEach((rule) => rule.apply(submitResponse, this.form));
|
|
515
518
|
}
|
|
516
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, deps: [{ token: i1.LoggerService }, { token: i2.InitializeService }, { token: i3.SubmitService }, { token: i4.SyncService }, { token: i5.FormService }, { token: i6.StatusService }, { token: i7.FinanceDetailsService }, { token: i8.CreditCardStateService }, { token: i9.NextActionService }, { token: i10.InitializeNextActionService }, { token: i11.ControlConfigService }, { token: i12.ThreeDsService }, { token: i13.FormMessagesService }, { token: i14.SettingsService }, { token: i15.CountryService }, { token: i16.CheckStatusActionCreator }, { token: i17.PrintInstructionService }, { token: i18.PaymentBehaviourService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
519
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, deps: [{ token: i1.LoggerService }, { token: i2.InitializeService }, { token: i3.SubmitService }, { token: i4.SyncService }, { token: i5.FormService }, { token: i6.StatusService }, { token: i7.FinanceDetailsService }, { token: i8.CreditCardStateService }, { token: i9.NextActionService }, { token: i10.InitializeNextActionService }, { token: i11.ControlConfigService }, { token: i12.ThreeDsService }, { token: i13.FormMessagesService }, { token: i14.SettingsService }, { token: i15.CountryService }, { token: i16.CheckStatusActionCreator }, { token: i17.PrintInstructionService }, { token: i18.PaymentBehaviourService }, { token: i19.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
517
520
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, providedIn: 'root' }); }
|
|
518
521
|
}
|
|
519
522
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, decorators: [{
|
|
@@ -521,5 +524,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
521
524
|
args: [{
|
|
522
525
|
providedIn: 'root',
|
|
523
526
|
}]
|
|
524
|
-
}], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.InitializeService }, { type: i3.SubmitService }, { type: i4.SyncService }, { type: i5.FormService }, { type: i6.StatusService }, { type: i7.FinanceDetailsService }, { type: i8.CreditCardStateService }, { type: i9.NextActionService }, { type: i10.InitializeNextActionService }, { type: i11.ControlConfigService }, { type: i12.ThreeDsService }, { type: i13.FormMessagesService }, { type: i14.SettingsService }, { type: i15.CountryService }, { type: i16.CheckStatusActionCreator }, { type: i17.PrintInstructionService }, { type: i18.PaymentBehaviourService }] });
|
|
525
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBRU4sT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBcUIsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUVsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQWdCOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFJakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFjaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUseUJBQXlCLEVB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cixcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sU3RhdHVzLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4vcmVxdWVzdHMvc3VibWl0L3Jlc3BvbnNlL3N1Ym1pdC1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4vZm9ybS9mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZVJlc3BvbnNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9pbml0aWFsaXplL3Jlc3BvbnNlL2luaXRpYWxpemUtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZVNlcnZpY2UgfSBmcm9tICcuL3JlcXVlc3RzL2luaXRpYWxpemUvaW5pdGlhbGl6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3VibWl0U2VydmljZSB9IGZyb20gJy4vcmVxdWVzdHMvc3VibWl0L3N1Ym1pdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN5bmNTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9zeW5jL3N5bmMuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuL2luaXRpYWxpemUtYWN0aW9ucy9pbml0aWFsaXplLW5leHQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbENvbmZpZyB9IGZyb20gJy4vZm9ybS9jb250cm9scy9jb250cm9sLWNvbmZpZyc7XG5pbXBvcnQgeyBDb250cm9sQ29uZmlnU2VydmljZSB9IGZyb20gJy4vZm9ybS9jb250cm9scy9jb250cm9sLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzIH0gZnJvbSAnLi9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaW5hbmNlRGV0YWlsc1NlcnZpY2UgfSBmcm9tICcuL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL25leHQtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNTdW1tYXJ5IH0gZnJvbSAnLi94cHMtc3VtbWFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXltZW50Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vcGF5bWVudC1jb25maWd1cmF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBpc1N1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9zdWJtaXQvaXMtc3VibWl0LXJlc3BvbnNlLmZ1bmN0aW9uJztcbmltcG9ydCB7IFhwc0Jvb2xlYW4gfSBmcm9tICcuLi94cHMtYm9vbGVhbi5lbnVtJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuL2Zvcm0vdmFsaWRhdG9ycy92YWxpZGF0aW9uLWVycm9ycy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW5wdXRFdmVudE5hbWUgfSBmcm9tICcuL2Zvcm0vaW5wdXQtZXZlbnQuZW51bSc7XG5pbXBvcnQgeyBGb3JtRmllbGRzU3RhdHVzIH0gZnJvbSAnLi9mb3JtL2Zvcm0tZmllbGRzLXN0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGhyZWVEc1NlcnZpY2UgfSBmcm9tICcuL3RocmVlLWRzL3RocmVlLWRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzQ29tbWFuZCB9IGZyb20gJy4veHBzLWNvbWFuZC5lbnVtJztcbmltcG9ydCB7IENyZWRpdENhcmRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2NyZWRpdC1jYXJkLXN0YXRlL2NyZWRpdC1jYXJkLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGROYW1lcyB9IGZyb20gJy4vZmllbGQtbmFtZXMuZW51bSc7XG5pbXBvcnQgeyBGb3JtU3RhdGUgfSBmcm9tICcuL2Zvcm0vZm9ybS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybU1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4vZm9ybS1tZXNzYWdlcy9mb3JtLW1lc3NhZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzTWVzc2FnZSB9IGZyb20gJy4veHBzLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ291bnRyeVNlcnZpY2UgfSBmcm9tICcuLi9jb3VudHJ5L2NvdW50cnkuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtQYXltZW50U3lzdGVtc0luaXRpYWxEYXRhIH0gZnJvbSAnLi4vc2RrLXBheW1lbnQtc3lzdGVtcy9zZGstcGF5bWVudC1zeXN0ZW1zLWluaXRpYWwtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybVJlc3BvbnNlIH0gZnJvbSAnLi9mb3JtLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IgfSBmcm9tICcuL2FjdGlvbnMvY2hlY2stc3RhdHVzL2NoZWNrLXN0YXR1cy5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgQ29udHJvbFN0YXR1cyB9IGZyb20gJy4vZm9ybS9jb250cm9sLXN0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZWRGb3JtIH0gZnJvbSAnLi9pbml0aWFsaXplZC1mb3JtLmludGVmYWNlJztcbmltcG9ydCB7IENhc2hQYXltZW50RGF0YSB9IGZyb20gJy4vY2FzaC1wYXltZW50LWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4veHNvbGxhLW51bWJlci9hcGkvcHJpbnQtaW5zdHJ1Y3Rpb24vcHJpbnQtaW5zdHJ1Y3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTeW5jUmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3RzL3N5bmMvcmVzcG9uc2Uvc3luYy1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBFcnJvclRhZ3MgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9lbGstZXJyb3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBCZWhhdmlvdXJTdHJhdGVneSB9IGZyb20gJy4vcGF5bWVudC1iZWhhdmlvdXIvc3RyYXRlZ2llcy9iZWhhdmlvdXItc3RyYXRlZ3kuYWJzdHJhY3QnO1xuaW1wb3J0IHsgUGF5bWVudEJlaGF2aW91clNlcnZpY2UgfSBmcm9tICcuL3BheW1lbnQtYmVoYXZpb3VyL3BheW1lbnQtYmVoYXZpb3VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmllbGRzQWxsb3dlZFRvT3ZlcnJpZGUgfSBmcm9tICcuL2Zvcm0vb3ZlcnJpZGVkLWZpZWxkcy9maWVsZHMtYWxsb3dlZC10by1vdmVycmlkZSc7XG5pbXBvcnQgeyBvdmVycmlkZUZpZWxkQ29uZmlncyB9IGZyb20gJy4vZm9ybS9vdmVycmlkZWQtZmllbGRzL292ZXJyaWRlLWZpZWxkLWNvbmZpZyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFnZ2VkRXJyb3IgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycyc7XG5pbXBvcnQgeyB1cGRhdGVBZnRlckVycm9yUnVsZXMgfSBmcm9tICcuL3VwZGF0ZS1zdWJtaXQtcmVzcG9uc2UvdXBkYXRlLWFmdGVyLWVycm9yLXJ1bGVzLmNvbnN0JztcbmltcG9ydCB7IGZpZWxkc0FsbG93ZWRUb0V4dGVybmFsQ2hhbmdlIH0gZnJvbSAnLi9leHRlcm5hbC1jaGFuZ2UtZmllbGRzLmNvbnN0JztcbmltcG9ydCB7IGNyZWRpdENhcmRQYXltZW50TWV0aG9kSWQgfSBmcm9tICcuL2NyZWRpdC1jYXJkLXBheW1lbnQtbWV0aG9kcy1pZC52YXJpYWJsZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50U2VydmljZSB7XG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBmb3JtRmllbGRzU3RhdHVzJCgpOiBPYnNlcnZhYmxlPEZvcm1GaWVsZHNTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihCb29sZWFuKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRGb3JtJCgpOiBPYnNlcnZhYmxlPEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9wYXltZW50Rm9ybSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZSQoKTogT2JzZXJ2YWJsZTxGb3JtUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1SZXNwb25zZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZVZhbHVlKCk6IEZvcm1SZXNwb25zZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9mb3JtUmVzcG9uc2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIGRhdGE6IEluaXRpYWxpemVSZXNwb25zZSB8IFN1Ym1pdFJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmluYW5jZURldGFpbHM6IEZpbmFuY2VEZXRhaWxzIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZm9jdXNGaWVsZE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGNvbmZpZyE6IFBheW1lbnRDb25maWd1cmF0aW9uO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGZvcm1EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BheW1lbnRGb3JtJCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtQ29udHJvbFN0YXR1cyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZHNTdGF0dXNTdWJqZWN0ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1GaWVsZHNTdGF0dXMgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybVJlc3BvbnNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybVJlc3BvbnNlIHwgbnVsbD4oXG4gICAgbnVsbFxuICApO1xuXG4gIHByaXZhdGUgaXNTYXZpbmdNZXRob2RNb2RlID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyU2VydmljZTogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxpemVTZXJ2aWNlOiBJbml0aWFsaXplU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1Ym1pdFNlcnZpY2U6IFN1Ym1pdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeW5jU2VydmljZTogU3luY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNTZXJ2aWNlOiBTdGF0dXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmluYW5jZURldGFpbHNTZXJ2aWNlOiBGaW5hbmNlRGV0YWlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjcmVkaXRDYXJkU3RhdGVTZXJ2aWNlOiBDcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV4dEFjdGlvblNlcnZpY2U6IE5leHRBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbGl6ZU5leHRBY3Rpb25TZXJ2aWNlOiBJbml0aWFsaXplTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sQ29uZmlnU2VydmljZTogQ29udHJvbENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aHJlZURzU2VydmljZTogVGhyZWVEc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtTWVzc2FnZXNTZXJ2aWNlOiBGb3JtTWVzc2FnZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudHJ5U2VydmljZTogQ291bnRyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja1N0YXR1c0FjdGlvbkNyZWF0b3I6IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlOiBQcmludEluc3RydWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlOiBQYXltZW50QmVoYXZpb3VyU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoXG4gICAgY29uZmlnOiBQYXltZW50Q29uZmlndXJhdGlvblxuICApOiBQcm9taXNlPEluaXRpYWxpemVkRm9ybT4ge1xuICAgIHRoaXMuZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHRoaXMubGlzdGVuRmluYW5jZURldGFpbHMoKTtcblxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuZGF0YSA9IGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVNlcnZpY2UucmVxdWVzdChjb25maWcpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpO1xuXG4gICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZ2V0RmllbGRzKCk7XG4gICAgdGhpcy5zZXR1cEluaXRpYWxGaWVsZFZhbHVlcygpO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtU2VydmljZS5jcmVhdGVGb3JtKHRoaXMuZmllbGRzKTtcblxuICAgIHRoaXMudXBkYXRlUGlkQ29uZmlnKCk7XG4gICAgdGhpcy5zZXR1cFN5bmNTZXJ2aWNlKHRoaXMuZm9ybSwgdGhpcy5maWVsZHMsIGNvbmZpZyk7XG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyh0aGlzLmZvcm0pO1xuXG4gICAgY29uc3QgaXNOZWVkQXV0b1N1Ym1pdCA9IHRoaXMuY2FuQXV0b1N1Ym1pdCgpO1xuXG4gICAgaWYgKGlzTmVlZEF1dG9TdWJtaXQpIHtcbiAgICAgIGNvbnN0IG5leHRBY3Rpb24gPSBhd2FpdCB0aGlzLnN1Ym1pdCgpO1xuXG4gICAgICBpZiAobmV4dEFjdGlvbikge1xuICAgICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhuZXh0QWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyh0aGlzLmRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkpO1xuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcblxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyh0aGlzLmdldEluaXRpYWxpemVNZXNzYWdlcygpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkOiBGaWVsZCkgPT4gZmllbGQ/LmlzVmlzaWJsZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgICApLFxuICAgICAgaXNGb3JtQXV0b1N1Ym1pdHRlZDogaXNOZWVkQXV0b1N1Ym1pdCxcbiAgICAgIG5leHRBY3Rpb246IHRoaXMuaW5pdGlhbGl6ZU5leHRBY3Rpb25TZXJ2aWNlLmdldE5leHRBY3Rpb24odGhpcy5kYXRhKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN1Ym1pdCgpOiBQcm9taXNlPE5leHRBY3Rpb24gfCBudWxsIHwgdm9pZD4ge1xuICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Zvcm0gaXMgZW1wdHkhJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUgPSB0aGlzLmZpZWxkcy5zb21lKFxuICAgICAgKHsgbmFtZSwgdmFsdWUgfSkgPT5cbiAgICAgICAgbmFtZSA9PT0gJ3NhdmVQc0FjY291bnRPbmx5JyAmJiB2YWx1ZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgICBjb25zdCBzdWJtaXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0U2VydmljZS5yZXF1ZXN0KFxuICAgICAgdGhpcy5maWVsZHMsXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICB0aGlzLmhhbmRsZVN1Ym1pdFdpdGhFcnJvcnMoc3VibWl0UmVzcG9uc2UpO1xuXG4gICAgdGhpcy5kYXRhID0gc3VibWl0UmVzcG9uc2U7XG4gICAgdGhpcy5pbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpO1xuXG4gICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICBpZiAoIXRoaXMuaXNTYXZpbmdNZXRob2RNb2RlKSB7XG4gICAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyhzdWJtaXRSZXNwb25zZS5zdW1tYXJ5KTtcbiAgICB9XG4gICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHN1Ym1pdFJlc3BvbnNlLm1lc3NhZ2VzKTtcblxuICAgIC8vIEhhbmRsZSAzZHMgZmxvd1xuICAgIGlmIChcbiAgICAgIHN1Ym1pdFJlc3BvbnNlLmN1cnJlbnRDb21tYW5kID09PSBYcHNDb21tYW5kLmNyZWF0ZSAmJlxuICAgICAgc3VibWl0UmVzcG9uc2UucGFyYW1ldGVycy50aHJlZURTRm9ybVxuICAgICkge1xuICAgICAgdGhpcy5ydW5UaHJlZURzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLmdldEZpZWxkcygpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNlcnZpY2UuY3JlYXRlRm9ybSh0aGlzLmZpZWxkcyk7XG5cbiAgICB0aGlzLmxpc3RlbkZvcm1TdGF0dXNDaGFuZ2VzKHRoaXMuZm9ybSk7XG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cCh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCB0aGlzLmNvbmZpZyk7XG5cbiAgICByZXR1cm4gdGhpcy5uZXh0QWN0aW9uU2VydmljZS5nZXROZXh0QWN0aW9uKHN1Ym1pdFJlc3BvbnNlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXRXaXRoRmllbGRzKGZpZWxkcz86IEZpZWxkW10pOiBQcm9taXNlPFN1Ym1pdFJlc3BvbnNlPiB7XG4gICAgaWYgKCF0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdzdWJtaXQgZXJyb3I6IHRyeWluZyB0byBzdWJtaXQgd2l0aCBubyBmb3JtJywgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JtIGlzIGVtcHR5IScpO1xuICAgIH1cblxuICAgIHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlID0gdGhpcy5maWVsZHMuc29tZShcbiAgICAgICh7IG5hbWUsIHZhbHVlIH0pID0+XG4gICAgICAgIG5hbWUgPT09ICdzYXZlUHNBY2NvdW50T25seScgJiYgdmFsdWUgPT09IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICk7XG4gICAgY29uc3Qgc3VibWl0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLnN1Ym1pdFNlcnZpY2UucmVxdWVzdChcbiAgICAgIGZpZWxkcyA/PyB0aGlzLmZpZWxkcyxcbiAgICAgIHRoaXMuZm9ybSxcbiAgICAgIHRoaXMuY29uZmlnXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YSA9IHN1Ym1pdFJlc3BvbnNlO1xuICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgaWYgKCF0aGlzLmlzU2F2aW5nTWV0aG9kTW9kZSkge1xuICAgICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHMoc3VibWl0UmVzcG9uc2Uuc3VtbWFyeSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyhzdWJtaXRSZXNwb25zZS5tZXNzYWdlcyk7XG5cbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZ2V0RmllbGRzKCk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtU2VydmljZS5jcmVhdGVGb3JtKHRoaXMuZmllbGRzKTtcblxuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAodGhpcy5mb3JtLCB0aGlzLmZpZWxkcywgdGhpcy5jb25maWcpO1xuXG4gICAgcmV0dXJuIHN1Ym1pdFJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIHNldHVwSW5pdGlhbEZpZWxkVmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpZWxkc1RvT3ZlcnJpZGUgPSB0aGlzLmNvbmZpZy5vdmVycmlkZUZvcm1GaWVsZHM7XG4gICAgaWYgKCFmaWVsZHNUb092ZXJyaWRlKSByZXR1cm47XG5cbiAgICBjb25zdCBvdmVycmlkYWJsZU5hbWVzID0gbmV3IFNldChcbiAgICAgIE9iamVjdC5rZXlzKGZpZWxkc1RvT3ZlcnJpZGUpLmZpbHRlcigobmFtZSkgPT5cbiAgICAgICAgZmllbGRzQWxsb3dlZFRvT3ZlcnJpZGUuaGFzKG5hbWUgYXMgRmllbGROYW1lcylcbiAgICAgIClcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmZpZWxkcykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGQubmFtZTtcbiAgICAgIGlmICghb3ZlcnJpZGFibGVOYW1lcy5oYXMoZmllbGROYW1lKSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IG92ZXJyaWRlRmllbGRDb25maWdzW2ZpZWxkTmFtZV07XG4gICAgICBpZiAoIWNvbmZpZykgY29udGludWU7XG5cbiAgICAgIGNvbnN0IG92ZXJyaWRkZW5WYWx1ZSA9IGZpZWxkc1RvT3ZlcnJpZGVbZmllbGROYW1lXT8uaW5pdGlhbFZhbHVlO1xuXG4gICAgICBmaWVsZC52YWx1ZSA9IFN0cmluZyhcbiAgICAgICAgY29uZmlnLnZhbGlkYXRvcihvdmVycmlkZGVuVmFsdWUpXG4gICAgICAgICAgPyBvdmVycmlkZGVuVmFsdWVcbiAgICAgICAgICA6IGNvbmZpZy5kZWZhdWx0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmllbGRzID8/IFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBheW1lbnRGb3JtPy5maWVsZHMgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbFN0YXR1cyhuYW1lOiBGaWVsZE5hbWVzKTogQ29udHJvbFN0YXR1cyB8IG51bGwge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgIHN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRJbml0aWFsRGF0YUZvclNka1BheW1lbnRTeXN0ZW1zKCk6IFByb21pc2U8U2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YT4ge1xuICAgIGlmICghdGhpcy5kYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNka1BheW1lbnREYXRhID0gdGhpcy5nZXRTZGtQYXltZW50RGF0YUZyb21SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICBkYXRhOiBzZGtQYXltZW50RGF0YS5jaGVja291dERhdGEsXG4gICAgICBzYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKClcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgICAgY291bnRyeTogdGhpcy5jb3VudHJ5U2VydmljZS5nZXRDb3VudHJ5KCksXG4gICAgICBmaWVsZHM6IHNka1BheW1lbnREYXRhLmZpZWxkcyxcbiAgICAgIHN1Ym1pdFJlc3BvbnNlOiBpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkgPyB0aGlzLmRhdGEgOiBudWxsLFxuICAgICAgc3VtbWFyeTogc2RrUGF5bWVudERhdGEuc3VtbWFyeSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRckNvZGUoKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuZm9ybS5xci50aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNoUGF5bWVudERhdGEoKTogQ2FzaFBheW1lbnREYXRhIHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYXNoSW5zdHJ1Y3Rpb25GaWVsZCA9IHRoaXMuZGF0YS5maWVsZHMuZmluZChcbiAgICAgIChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ3BheW1lbnRfaW5zdHJ1Y3Rpb24nXG4gICAgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGlzQ2FzaFBheW1lbnRNZXRob2Q6ICEhY2FzaEluc3RydWN0aW9uRmllbGQsXG4gICAgICB4c29sbGFOdW1iZXI6IHRoaXMuZGF0YS54c29sbGFOdW1iZXIuYWNjb3VudFhzb2xsYSxcbiAgICAgIHBpZDogdGhpcy5kYXRhLnBhcmFtZXRlcnMucGlkLFxuICAgICAgcHVibGljSWQ6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLnB1YmxpY19pZCxcbiAgICAgIHRpdGxlOiB0aGlzLmRhdGEucGFyYW1ldGVycy50aXRsZSxcbiAgICAgIHByb2plY3ROYW1lOiB0aGlzLnNldHRpbmdzU2VydmljZS5wcm9qZWN0Lm5hbWUsXG4gICAgICBpbnN0cnVjdGlvbjogY2FzaEluc3RydWN0aW9uRmllbGQ/LnRpdGxlLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHByaW50VXJsOiB0aGlzLnByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlLmdldFByaW50SW5zdHJ1Y3Rpb25VcmwocGFyYW1zKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFBpZCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5waWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIEluaXRpYWxpemVSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5wYXltZW50Rm9ybT8ucGlkID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3VibWl0QnV0dG9uVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5idXlEYXRhLnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGF5bWVudEZvcm0/LmJ1eURhdGEudmFsdWUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZShmaWVsZDogRmllbGQpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgY29uc3Qgc3luY0Vycm9ycyA9IHRoaXMuc3luY1NlcnZpY2UuZ2V0U3luY1ZhbGlkYXRpb25FcnJvcnMoZmllbGQpO1xuXG4gICAgaWYgKHN5bmNFcnJvcnMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3luY0Vycm9ycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3luY1NlcnZpY2UudmFsaWRhdGUoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbGN1bGF0ZUZpZWxkKFxuICAgIGNoYW5nZWRGaWVsZDogRmllbGQsXG4gICAgZmllbGRzOiBGaWVsZFtdXG4gICk6IFByb21pc2U8U3luY1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3luY1NlcnZpY2UucmVxdWVzdChjaGFuZ2VkRmllbGQsIGZpZWxkcywgbmV3IEZvcm1Hcm91cCh7fSkpO1xuICB9XG5cbiAgcHVibGljIHJ1blRocmVlRHMoKTogdm9pZCB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5jaGVja1RocmVlRHModGhpcy5kYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaW5hbmNlRGV0YWlscygpOiBGaW5hbmNlRGV0YWlscyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmZpbmFuY2VEZXRhaWxzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpZWxkRm9ybVN0YXRlKGZpZWxkTmFtZTogc3RyaW5nLCBmb3JtU3RhdGU6IEZvcm1TdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlRmllbGRGb3JtU3RhdGUoXG4gICAgICAgIHRoaXMuZm9ybSxcbiAgICAgICAgdGhpcy5maWVsZHMsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgZm9ybVN0YXRlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IEZpZWxkTmFtZXMpOiBGb3JtU3RhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2VydmljZS5nZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YXR1cygpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogU3RhdHVzUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIHBpZDogdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkLFxuICAgICAgaW52b2ljZTogcGFyc2VJbnQodGhpcy5kYXRhLmZpeEludm9pY2UgPz8gJycpLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLmRhdGEuc2lnbmF0dXJlID8/ICcnLFxuICAgICAgbG9jYWxlOlxuICAgICAgICB0aGlzLmRhdGEuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAnbG9jYWxlJyk/LnZhbHVlID8/XG4gICAgICAgICdlbicsXG4gICAgICBpc1NhdmVQYXltZW50QWNjb3VudDogdGhpcy5pc1NhdmluZ01ldGhvZE1vZGVcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzU2VydmljZS5nZXRTdGF0dXMocGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsaXN0ZW5GaW5hbFN0YXR1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGludm9pY2UgfSA9IGF3YWl0IHRoaXMuZ2V0U3RhdHVzKCk7XG5cbiAgICB0aGlzLnN0YXR1c1NlcnZpY2VcbiAgICAgIC5saXN0ZW5GaW5hbFN0YXR1cyhpbnZvaWNlIGFzIHVua25vd24gYXMgbnVtYmVyKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgICAgICB0aGlzLmNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvci5nZXRBY3Rpb25EYXRhKClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkQ29uZmlnKGZpZWxkOiBGaWVsZCk6IENvbnRyb2xDb25maWcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sQ29uZmlnU2VydmljZS5nZXRDb25maWcoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkVmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGV4dGVybmFsQ2hhbmdlRmllbGRWYWx1ZShuYW1lOiBGaWVsZE5hbWVzLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaXNGaWVsZEFsbG93ZWRGb3JFeHRlcm5hbENoYW5nZSA9XG4gICAgICBmaWVsZHNBbGxvd2VkVG9FeHRlcm5hbENoYW5nZS5oYXMobmFtZSk7XG5cbiAgICBjb25zdCBpc0V4dGVybmFsVmF1bHQgPVxuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZFNldHRpbmdzPy51c2VFeHRlcm5hbFZhdWx0ICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXltZW50TWV0aG9kSWQgPT09IGNyZWRpdENhcmRQYXltZW50TWV0aG9kSWQ7XG5cbiAgICBpZiAoIWlzRmllbGRBbGxvd2VkRm9yRXh0ZXJuYWxDaGFuZ2UgfHwgIWlzRXh0ZXJuYWxWYXVsdCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkU3RhdGUobmFtZTogc3RyaW5nLCBzdGF0ZTogSW5wdXRFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5ibHVyOiB7XG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5mb2N1czoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeHRyYUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSGF2ZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZC5uYW1lID09PSBuYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzSGF2ZUZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGQgPSB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgZXhhbXBsZTogJycsXG4gICAgICBpc01hbmRhdG9yeTogWHBzQm9vbGVhbi50cnVlLFxuICAgICAgaXNWaXNpYmxlOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH0gYXMgRmllbGQ7XG5cbiAgICB0aGlzLmZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveUJlaGF2aW91clN0cmF0ZWdpZXModGhpcy5jb25maWcpO1xuXG4gICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzID0gbnVsbDtcbiAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgIHRoaXMuZmllbGRzID0gW107XG4gICAgdGhpcy5mb3JtRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5zdG9wQ2hlY2tpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZpbmFuY2VEZXRhaWxzKHN1bW1hcnk/OiBYcHNTdW1tYXJ5KTogdm9pZCB7XG4gICAgdGhpcy5maW5hbmNlRGV0YWlsc1NlcnZpY2UuZW1pdFdpdGhTdW1tYXJ5KHN1bW1hcnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q3JlZGl0Q2FyZFN0YXRlKHtcbiAgICBpZENhcmRUeXBlLFxuICAgIGNhcmRCaW5Db3VudHJ5LFxuICB9OiB7XG4gICAgaWRDYXJkVHlwZTogc3RyaW5nO1xuICAgIGNhcmRCaW5Db3VudHJ5Pzogc3RyaW5nO1xuICB9KTogdm9pZCB7XG4gICAgdGhpcy5jcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLmVtaXQoeyBpZENhcmRUeXBlLCBjYXJkQmluQ291bnRyeSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1GaWVsZHNTdGF0dXMoZm9ybTogVW50eXBlZEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZHNTdGF0dXM6IEZvcm1GaWVsZHNTdGF0dXMgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW25hbWVdO1xuICAgICAgZm9ybUZpZWxkc1N0YXR1c1tuYW1lXSA9IHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgdmFsaWRhdGlvblN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgICAgIGVycm9yczogY29udHJvbC5lcnJvcnMsXG4gICAgICAgIGlzRm9jdXNlZDogdGhpcy5mb2N1c0ZpZWxkTmFtZSA9PT0gbmFtZSxcbiAgICAgICAgaXNUb3VjaGVkOiBjb250cm9sLnRvdWNoZWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5uZXh0KGZvcm1GaWVsZHNTdGF0dXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybU1lc3NhZ2VzKG1lc3NhZ2VzPzogWHBzTWVzc2FnZVtdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtTWVzc2FnZXNTZXJ2aWNlLmVtaXRPblJlc3BvbnNlKG1lc3NhZ2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTeW5jU2VydmljZShcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uXG4gICk6IHZvaWQge1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAoZm9ybSwgZmllbGRzLCBjb25maWcpO1xuICAgIHRoaXMuc3luY1NlcnZpY2UuZGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHJlc3BvbnNlLnN1bW1hcnkpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMocmVzcG9uc2UubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmZpZWxkQXN5bmNWYWxpZGF0aW9uJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmllbGRBc3luY1ZhbGlkYXRpb24pID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWVsZEFzeW5jVmFsaWRhdGlvbi5maWVsZC5uYW1lKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZE5hbWVzLmNhcmROdW1iZXI6XG4gICAgICAgICAgICB0aGlzLmVtaXRDcmVkaXRDYXJkU3RhdGUoe1xuICAgICAgICAgICAgICBpZENhcmRUeXBlOiBmaWVsZEFzeW5jVmFsaWRhdGlvbi5yZXNwb25zZS5wYXJhbWV0ZXJzLmlkQ2FyZFR5cGUsXG4gICAgICAgICAgICAgIGNhcmRCaW5Db3VudHJ5OlxuICAgICAgICAgICAgICAgIGZpZWxkQXN5bmNWYWxpZGF0aW9uLnJlc3BvbnNlLnBhcmFtZXRlcnMuY2FyZEJpbkNvdW50cnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZpbmFuY2VEZXRhaWxzKCk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChmaW5hbmNlRGV0YWlscykgPT4gKHRoaXMuZmluYW5jZURldGFpbHMgPSBmaW5hbmNlRGV0YWlscykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm0pO1xuICAgICAgICB0aGlzLl9wYXltZW50Rm9ybSQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBpbiBjYXNlIHRoZSBmb3JtIHBpZCBjaGFuZ2VzIGRlc3BpdGUgdGhlIG9uZSBwYXNzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAqICAqL1xuICBwcml2YXRlIHVwZGF0ZVBpZENvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UGlkID0gdGhpcy5nZXRQaWQoKTtcbiAgICBpZiAoY3VycmVudFBpZCkge1xuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkID0gY3VycmVudFBpZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtUmVzcG9uc2UoZGF0YTogRm9ybVJlc3BvbnNlWydkYXRhJ10pOiB2b2lkIHtcbiAgICBsZXQgdHlwZTogRm9ybVJlc3BvbnNlWyd0eXBlJ107XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnaW5pdGlhbGl6ZSc7XG4gICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnc3VibWl0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9ICdzeW5jJztcbiAgICB9XG4gICAgdGhpcy5fZm9ybVJlc3BvbnNlJC5uZXh0KHtcbiAgICAgIHR5cGUsXG4gICAgICBkYXRhLFxuICAgICAgdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgaXNTYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxpemVNZXNzYWdlcygpOiBYcHNNZXNzYWdlW10ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gKHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpLnBheW1lbnRGb3JtPy5tZXNzYWdlcztcbiAgICBjb25zdCBrb3JlYU5vdGlmaWNhdGlvbiA9ICh0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKS5wYXltZW50Rm9ybVxuICAgICAgPy5rb3JlYU5vdGlmaWNhdGlvbjtcbiAgICBpZiAoa29yZWFOb3RpZmljYXRpb24pIHtcbiAgICAgIG1lc3NhZ2VzPy5wdXNoKHsgY29kZTogJzAnLCBtZXNzYWdlOiBrb3JlYU5vdGlmaWNhdGlvbj8udGl0bGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlcyA/PyBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuQXV0b1N1Ym1pdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2U7XG4gICAgaWYgKCFyZXNwb25zZS5wYXltZW50Rm9ybSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzUmVkaXJlY3RNZXRob2QgPSByZXNwb25zZS5wYXltZW50Rm9ybS5pc0NoZWNrb3V0O1xuICAgIGNvbnN0IGNhblNraXBGb3JtID0gcmVzcG9uc2UucGF5bWVudEZvcm0uc2tpcEZvcm07XG5cbiAgICBjb25zdCBpc1N1aXRhYmxlQnlTdHJhdGVneSA9IHRoaXMuYXV0b1N1Ym1pdEJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICByZXR1cm4gKCFpc1JlZGlyZWN0TWV0aG9kICYmIGNhblNraXBGb3JtKSB8fCBpc1N1aXRhYmxlQnlTdHJhdGVneTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2RrUGF5bWVudERhdGFGcm9tUmVzcG9uc2UoXG4gICAgZGF0YTogU3VibWl0UmVzcG9uc2UgfCBJbml0aWFsaXplUmVzcG9uc2VcbiAgKToge1xuICAgIGNoZWNrb3V0RGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWVsZHM6IEZpZWxkW107XG4gICAgc3VtbWFyeTogWHBzU3VtbWFyeSB8IG51bGw7XG4gIH0ge1xuICAgIGlmIChpc1N1Ym1pdFJlc3BvbnNlKGRhdGEpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGVja291dERhdGE6IGRhdGEucGFyYW1ldGVycz8uY2hlY2tvdXQuZGF0YS5kYXRhLFxuICAgICAgICBmaWVsZHM6IGRhdGEuZmllbGRzLFxuICAgICAgICBzdW1tYXJ5OiBkYXRhLnN1bW1hcnksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjaGVja291dERhdGE6IG51bGwsXG4gICAgICBmaWVsZHM6IGRhdGEucGF5bWVudEZvcm0/LmZpZWxkcyA/PyBbXSxcbiAgICAgIHN1bW1hcnk6IGRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkgPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgdGhpcy5jb25maWdcbiAgICAgICk7XG5cbiAgICBiZWhhdmlvdXJTdHJhdGVnaWVzLmZvckVhY2goKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgc3RyYXRlZ3kub25Jbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lCZWhhdmlvdXJTdHJhdGVnaWVzKGNvbmZpZzogUGF5bWVudENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgY29uZmlnXG4gICAgICApO1xuXG4gICAgYmVoYXZpb3VyU3RyYXRlZ2llcy5mb3JFYWNoKChzdHJhdGVneTogQmVoYXZpb3VyU3RyYXRlZ3kpID0+IHtcbiAgICAgIHN0cmF0ZWd5Lm9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU3VibWl0QmVoYXZpb3VyU3RyYXRlZ2llcyhjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYmVoYXZpb3VyU3RyYXRlZ2llcyA9XG4gICAgICB0aGlzLnBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlLmdldEFwcGxpY2FibGVCZWhhdmlvdXJTdHJhdGVnaWVzKFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgIGNvbmZpZ1xuICAgICAgKTtcblxuICAgIHJldHVybiBiZWhhdmlvdXJTdHJhdGVnaWVzLnNvbWUoKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgcmV0dXJuIHN0cmF0ZWd5LmNhbkF1dG9TdWJtaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3VibWl0V2l0aEVycm9ycyhzdWJtaXRSZXNwb25zZTogU3VibWl0UmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAoIXN1Ym1pdFJlc3BvbnNlLmVycm9ycz8ubGVuZ3RoKSByZXR1cm47XG5cbiAgICB1cGRhdGVBZnRlckVycm9yUnVsZXMuZm9yRWFjaCgocnVsZSkgPT5cbiAgICAgIHJ1bGUuYXBwbHkoc3VibWl0UmVzcG9uc2UsIHRoaXMuZm9ybSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
527
|
+
}], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.InitializeService }, { type: i3.SubmitService }, { type: i4.SyncService }, { type: i5.FormService }, { type: i6.StatusService }, { type: i7.FinanceDetailsService }, { type: i8.CreditCardStateService }, { type: i9.NextActionService }, { type: i10.InitializeNextActionService }, { type: i11.ControlConfigService }, { type: i12.ThreeDsService }, { type: i13.FormMessagesService }, { type: i14.SettingsService }, { type: i15.CountryService }, { type: i16.CheckStatusActionCreator }, { type: i17.PrintInstructionService }, { type: i18.PaymentBehaviourService }, { type: i19.TranslateService }] });
|
|
528
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBRU4sT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBcUIsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUVsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQWdCOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFJakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFjaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTXRGLE1BQU0sT0FBTyxjQUFjO0lBR3pCLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFvQkQsWUFDbUIsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLHFCQUE0QyxFQUM1QyxzQkFBOEMsRUFDOUMsaUJBQW9DLEVBQ3BDLDJCQUF3RCxFQUN4RCxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsbUJBQXdDLEVBQ3hDLGVBQWdDLEVBQ2hDLGNBQThCLEVBQzlCLHdCQUFrRCxFQUNsRCx1QkFBZ0QsRUFDaEQsdUJBQWdELEVBQ2hELGdCQUFrQztRQWxCbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBdkQ5QyxTQUFJLEdBQTRCLElBQUksQ0FBQztRQWtCcEMsU0FBSSxHQUErQyxJQUFJLENBQUM7UUFDeEQsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO1FBQzdDLG1CQUFjLEdBQWtCLElBQUksQ0FBQztRQUNyQyxXQUFNLEdBQVksRUFBRSxDQUFDO1FBR3JCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMxQixrQkFBYSxHQUM1QixJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFDckMsNEJBQXVCLEdBQ3RDLElBQUksZUFBZSxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUNwQyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUNuRCxJQUFJLENBQ0wsQ0FBQztRQUVNLHVCQUFrQixHQUFHLEtBQUssQ0FBQztJQXNCaEMsQ0FBQztJQUVHLEtBQUssQ0FBQyxVQUFVLENBQ3JCLE1BQTRCO1FBRTVCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFeEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTlDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV2QyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUVwRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN4QixDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsOEJBQW9CLENBQ3ZEO1lBQ0QsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLFVBQVUsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ2xCLElBQUksS0FBSyxtQkFBbUIsSUFBSSxLQUFLLDhCQUFvQixDQUM1RCxDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDckQsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxNQUFNLENBQ1osQ0FBQztRQUVGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUMzQixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUVyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLGtCQUFrQjtRQUNsQixJQUNFLGNBQWMsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFDLE1BQU07WUFDbkQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQ3JDLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBZ0I7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUN0QixJQUFJLFdBQVcsQ0FBQyw2Q0FBNkMsRUFBRTtnQkFDN0QsU0FBUyxDQUFDLFNBQVM7YUFDcEIsQ0FBQyxDQUNILENBQUM7WUFDRixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ2xCLElBQUksS0FBSyxtQkFBbUIsSUFBSSxLQUFLLDhCQUFvQixDQUM1RCxDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDckQsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1FBQ3hELElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRTlCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUM1Qyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBa0IsQ0FBQyxDQUNoRCxDQUNGLENBQUM7UUFFRixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO2dCQUFFLFNBQVM7WUFFL0MsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLE1BQU07Z0JBQUUsU0FBUztZQUV0QixNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLENBQUM7WUFFbEUsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO2dCQUMvQixDQUFDLENBQUMsZUFBZTtnQkFDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksY0FBYyxFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBZ0I7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTztZQUNMLElBQUk7WUFDSixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLGtDQUFrQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNyQixJQUFJLEVBQUUsY0FBYyxDQUFDLFlBQVk7WUFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFO2dCQUMzQyxDQUFDO2dCQUNELENBQUMsMkJBQWlCO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRTtZQUN6QyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07WUFDN0IsY0FBYyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUM5RCxPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU87WUFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUU7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQzVDLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUNoRCxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUc7WUFDYixtQkFBbUIsRUFBRSxDQUFDLENBQUMsb0JBQW9CO1lBQzNDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhO1lBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQzlDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxLQUFLO1NBQ3pDLENBQUM7UUFDRixPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsUUFBUSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7U0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxZQUFZLGNBQWMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksY0FBYyxFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQVk7UUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxLQUFLLENBQUMsY0FBYyxDQUN6QixZQUFtQixFQUNuQixNQUFlO1FBRWYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLFNBQWlCLEVBQUUsU0FBb0I7UUFDakUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUNuQyxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxTQUFxQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUF3QjtZQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO1lBQ2hDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1lBQzdDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ3BDLE1BQU0sRUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLEVBQUUsS0FBSztnQkFDaEUsSUFBSTtZQUNOLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzNDLENBQUM7Z0JBQ0QsQ0FBQywyQkFBaUI7U0FDckIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxhQUFhO2FBQ2YsaUJBQWlCLENBQUMsT0FBNEIsQ0FBQzthQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsQ0FDOUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFZO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sd0JBQXdCLENBQUMsSUFBZ0IsRUFBRSxLQUFhO1FBQzdELE1BQU0sK0JBQStCLEdBQ25DLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxNQUFNLGVBQWUsR0FDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxnQkFBZ0I7WUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEtBQUsseUJBQXlCLENBQUM7UUFFNUQsSUFBSSxDQUFDLCtCQUErQixJQUFJLENBQUMsZUFBZTtZQUFFLE9BQU87UUFFakUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEtBQXFCO1FBQ3pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxRQUFRLEtBQUssRUFBRSxDQUFDO1lBQ2QsS0FBSyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDekIsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDM0IsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM3QyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDeEIsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLENBQUM7Z0JBRUQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUc7WUFDWixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsTUFBTTtZQUNaLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVywyQkFBaUI7WUFDNUIsU0FBUyw0QkFBa0I7U0FDbkIsQ0FBQztRQUVYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsT0FBb0I7UUFDN0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsRUFDMUIsVUFBVSxFQUNWLGNBQWMsR0FJZjtRQUNDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFBc0I7UUFDakQsTUFBTSxnQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJO2dCQUNWLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUNoQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUk7Z0JBQ3ZDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTzthQUMzQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQXVCO1FBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixJQUFzQixFQUN0QixNQUFlLEVBQ2YsTUFBNEI7UUFFNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7YUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCO2FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLEVBQUU7WUFDbEMsUUFBUSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLEtBQUssVUFBVSxDQUFDLFVBQVU7b0JBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQzt3QkFDdkIsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVTt3QkFDL0QsY0FBYyxFQUNaLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYztxQkFDMUQsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSzthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxJQUFzQjtRQUNwRCxJQUFJLENBQUMsYUFBYTthQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLE1BQXlCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O1VBRU07SUFDRSxlQUFlO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBMEI7UUFDakQsSUFBSSxJQUEwQixDQUFDO1FBQy9CLElBQUksSUFBSSxZQUFZLGtCQUFrQixFQUFFLENBQUM7WUFDdkMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxJQUFJLFlBQVksY0FBYyxFQUFFLENBQUM7WUFDMUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLElBQUk7WUFDSixJQUFJO1lBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUU7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsSUFBMkIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO1FBQ3pFLE1BQU0saUJBQWlCLEdBQUksSUFBSSxDQUFDLElBQTJCLENBQUMsV0FBVztZQUNyRSxFQUFFLGlCQUFpQixDQUFDO1FBQ3RCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUEwQixDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUN6RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUVsRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FDN0QsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1FBRUYsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLElBQUksV0FBVyxDQUFDLElBQUksb0JBQW9CLENBQUM7SUFDcEUsQ0FBQztJQUVPLDZCQUE2QixDQUNuQyxJQUF5QztRQU16QyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTztnQkFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQ2pELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJO1lBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sSUFBSSxFQUFFO1lBQ3RDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxJQUFJO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRU8sNkJBQTZCO1FBQ25DLE1BQU0sbUJBQW1CLEdBQ3ZCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsQ0FDM0QsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsTUFBTSxDQUNaLENBQUM7UUFFSixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUEyQixFQUFFLEVBQUU7WUFDMUQsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLDBCQUEwQixDQUFDLE1BQTRCO1FBQzdELE1BQU0sbUJBQW1CLEdBQ3ZCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsQ0FDM0QsSUFBSSxDQUFDLElBQUksRUFDVCxNQUFNLENBQ1AsQ0FBQztRQUVKLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQTJCLEVBQUUsRUFBRTtZQUMxRCxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sNkJBQTZCLENBQUMsTUFBNEI7UUFDaEUsTUFBTSxtQkFBbUIsR0FDdkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdDQUFnQyxDQUMzRCxJQUFJLENBQUMsSUFBSSxFQUNULE1BQU0sQ0FDUCxDQUFDO1FBRUosT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUEyQixFQUFFLEVBQUU7WUFDOUQsT0FBTyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsY0FBOEI7UUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTTtZQUFFLE9BQU87UUFFM0MscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQzs4R0FycUJVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3VibWl0UmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3RzL3N1Ym1pdC9yZXNwb25zZS9zdWJtaXQtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuL2Zvcm0vZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEluaXRpYWxpemVSZXNwb25zZSB9IGZyb20gJy4vcmVxdWVzdHMvaW5pdGlhbGl6ZS9yZXNwb25zZS9pbml0aWFsaXplLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEluaXRpYWxpemVTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9pbml0aWFsaXplL2luaXRpYWxpemUuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN1Ym1pdFNlcnZpY2UgfSBmcm9tICcuL3JlcXVlc3RzL3N1Ym1pdC9zdWJtaXQuc2VydmljZSc7XG5pbXBvcnQgeyBTeW5jU2VydmljZSB9IGZyb20gJy4vcmVxdWVzdHMvc3luYy9zeW5jLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzU2VydmljZSB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5leHRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9hY3Rpb25zL25leHQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZU5leHRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9pbml0aWFsaXplLWFjdGlvbnMvaW5pdGlhbGl6ZS1uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xDb25maWcgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcnO1xuaW1wb3J0IHsgQ29udHJvbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5hbmNlRGV0YWlscyB9IGZyb20gJy4vZmluYW5jZS1kZXRhaWxzL2ZpbmFuY2UtZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHNTZXJ2aWNlIH0gZnJvbSAnLi9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzU3VtbWFyeSB9IGZyb20gJy4veHBzLXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGF5bWVudENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3BheW1lbnQtY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4vcmVxdWVzdHMvc3VibWl0L2lzLXN1Ym1pdC1yZXNwb25zZS5mdW5jdGlvbic7XG5pbXBvcnQgeyBYcHNCb29sZWFuIH0gZnJvbSAnLi4veHBzLWJvb2xlYW4uZW51bSc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3QtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi9mb3JtL3ZhbGlkYXRvcnMvdmFsaWRhdGlvbi1lcnJvcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElucHV0RXZlbnROYW1lIH0gZnJvbSAnLi9mb3JtL2lucHV0LWV2ZW50LmVudW0nO1xuaW1wb3J0IHsgRm9ybUZpZWxkc1N0YXR1cyB9IGZyb20gJy4vZm9ybS9mb3JtLWZpZWxkcy1zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRocmVlRHNTZXJ2aWNlIH0gZnJvbSAnLi90aHJlZS1kcy90aHJlZS1kcy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc0NvbW1hbmQgfSBmcm9tICcuL3hwcy1jb21hbmQuZW51bSc7XG5pbXBvcnQgeyBDcmVkaXRDYXJkU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jcmVkaXQtY2FyZC1zdGF0ZS9jcmVkaXQtY2FyZC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuL2ZpZWxkLW5hbWVzLmVudW0nO1xuaW1wb3J0IHsgRm9ybVN0YXRlIH0gZnJvbSAnLi9mb3JtL2Zvcm0tc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1NZXNzYWdlc1NlcnZpY2UgfSBmcm9tICcuL2Zvcm0tbWVzc2FnZXMvZm9ybS1tZXNzYWdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc01lc3NhZ2UgfSBmcm9tICcuL3hwcy1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IENvdW50cnlTZXJ2aWNlIH0gZnJvbSAnLi4vY291bnRyeS9jb3VudHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YSB9IGZyb20gJy4uL3Nkay1wYXltZW50LXN5c3RlbXMvc2RrLXBheW1lbnQtc3lzdGVtcy1pbml0aWFsLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1SZXNwb25zZSB9IGZyb20gJy4vZm9ybS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi9hY3Rpb25zL2NoZWNrLXN0YXR1cy9jaGVjay1zdGF0dXMuYWN0aW9uLmNsYXNzJztcbmltcG9ydCB7IENvbnRyb2xTdGF0dXMgfSBmcm9tICcuL2Zvcm0vY29udHJvbC1zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEluaXRpYWxpemVkRm9ybSB9IGZyb20gJy4vaW5pdGlhbGl6ZWQtZm9ybS5pbnRlZmFjZSc7XG5pbXBvcnQgeyBDYXNoUGF5bWVudERhdGEgfSBmcm9tICcuL2Nhc2gtcGF5bWVudC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcmludEluc3RydWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3hzb2xsYS1udW1iZXIvYXBpL3ByaW50LWluc3RydWN0aW9uL3ByaW50LWluc3RydWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1Jlc3BvbnNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9zeW5jL3Jlc3BvbnNlL3N5bmMtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgQmVoYXZpb3VyU3RyYXRlZ3kgfSBmcm9tICcuL3BheW1lbnQtYmVoYXZpb3VyL3N0cmF0ZWdpZXMvYmVoYXZpb3VyLXN0cmF0ZWd5LmFic3RyYWN0JztcbmltcG9ydCB7IFBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlIH0gZnJvbSAnLi9wYXltZW50LWJlaGF2aW91ci9wYXltZW50LWJlaGF2aW91ci5zZXJ2aWNlJztcbmltcG9ydCB7IGZpZWxkc0FsbG93ZWRUb092ZXJyaWRlIH0gZnJvbSAnLi9mb3JtL292ZXJyaWRlZC1maWVsZHMvZmllbGRzLWFsbG93ZWQtdG8tb3ZlcnJpZGUnO1xuaW1wb3J0IHsgb3ZlcnJpZGVGaWVsZENvbmZpZ3MgfSBmcm9tICcuL2Zvcm0vb3ZlcnJpZGVkLWZpZWxkcy9vdmVycmlkZS1maWVsZC1jb25maWcnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhZ2dlZEVycm9yIH0gZnJvbSAnLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMnO1xuaW1wb3J0IHsgdXBkYXRlQWZ0ZXJFcnJvclJ1bGVzIH0gZnJvbSAnLi91cGRhdGUtc3VibWl0LXJlc3BvbnNlL3VwZGF0ZS1hZnRlci1lcnJvci1ydWxlcy5jb25zdCc7XG5pbXBvcnQgeyBmaWVsZHNBbGxvd2VkVG9FeHRlcm5hbENoYW5nZSB9IGZyb20gJy4vZXh0ZXJuYWwtY2hhbmdlLWZpZWxkcy5jb25zdCc7XG5pbXBvcnQgeyBjcmVkaXRDYXJkUGF5bWVudE1ldGhvZElkIH0gZnJvbSAnLi9jcmVkaXQtY2FyZC1wYXltZW50LW1ldGhvZHMtaWQudmFyaWFibGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFNlcnZpY2Uge1xuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgZm9ybUZpZWxkc1N0YXR1cyQoKTogT2JzZXJ2YWJsZTxGb3JtRmllbGRzU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoQm9vbGVhbikpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50Rm9ybSQoKTogT2JzZXJ2YWJsZTxGb3JtQ29udHJvbFN0YXR1cyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fcGF5bWVudEZvcm0kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmb3JtUmVzcG9uc2UkKCk6IE9ic2VydmFibGU8Rm9ybVJlc3BvbnNlIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtUmVzcG9uc2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmb3JtUmVzcG9uc2VWYWx1ZSgpOiBGb3JtUmVzcG9uc2UgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybVJlc3BvbnNlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRhOiBJbml0aWFsaXplUmVzcG9uc2UgfCBTdWJtaXRSZXNwb25zZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpbmFuY2VEZXRhaWxzOiBGaW5hbmNlRGV0YWlscyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZvY3VzRmllbGROYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBmaWVsZHM6IEZpZWxkW10gPSBbXTtcbiAgcHJpdmF0ZSBjb25maWchOiBQYXltZW50Q29uZmlndXJhdGlvbjtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBmb3JtRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXltZW50Rm9ybSQgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUNvbnRyb2xTdGF0dXMgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtRmllbGRzU3RhdHVzU3ViamVjdCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRmllbGRzU3RhdHVzIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1SZXNwb25zZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1SZXNwb25zZSB8IG51bGw+KFxuICAgIG51bGxcbiAgKTtcblxuICBwcml2YXRlIGlzU2F2aW5nTWV0aG9kTW9kZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplU2VydmljZTogSW5pdGlhbGl6ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJtaXRTZXJ2aWNlOiBTdWJtaXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3luY1NlcnZpY2U6IFN5bmNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzU2VydmljZTogU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbmFuY2VEZXRhaWxzU2VydmljZTogRmluYW5jZURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3JlZGl0Q2FyZFN0YXRlU2VydmljZTogQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxpemVOZXh0QWN0aW9uU2VydmljZTogSW5pdGlhbGl6ZU5leHRBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbENvbmZpZ1NlcnZpY2U6IENvbnRyb2xDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGhyZWVEc1NlcnZpY2U6IFRocmVlRHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybU1lc3NhZ2VzU2VydmljZTogRm9ybU1lc3NhZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY291bnRyeVNlcnZpY2U6IENvdW50cnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yOiBDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmludEluc3RydWN0aW9uU2VydmljZTogUHJpbnRJbnN0cnVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50QmVoYXZpb3VyU2VydmljZTogUGF5bWVudEJlaGF2aW91clNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICBjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uXG4gICk6IFByb21pc2U8SW5pdGlhbGl6ZWRGb3JtPiB7XG4gICAgdGhpcy5kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy5mb3JtRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgdGhpcy5saXN0ZW5GaW5hbmNlRGV0YWlscygpO1xuXG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5kYXRhID0gYXdhaXQgdGhpcy5pbml0aWFsaXplU2VydmljZS5yZXF1ZXN0KGNvbmZpZyk7XG5cbiAgICB0aGlzLmluaXRpYWxpemVCZWhhdmlvdXJTdHJhdGVnaWVzKCk7XG5cbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLnNldHVwSW5pdGlhbEZpZWxkVmFsdWVzKCk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy51cGRhdGVQaWRDb25maWcoKTtcbiAgICB0aGlzLnNldHVwU3luY1NlcnZpY2UodGhpcy5mb3JtLCB0aGlzLmZpZWxkcywgY29uZmlnKTtcbiAgICB0aGlzLmxpc3RlbkZvcm1TdGF0dXNDaGFuZ2VzKHRoaXMuZm9ybSk7XG5cbiAgICBjb25zdCBpc05lZWRBdXRvU3VibWl0ID0gdGhpcy5jYW5BdXRvU3VibWl0KCk7XG5cbiAgICBpZiAoaXNOZWVkQXV0b1N1Ym1pdCkge1xuICAgICAgY29uc3QgbmV4dEFjdGlvbiA9IGF3YWl0IHRoaXMuc3VibWl0KCk7XG5cbiAgICAgIGlmIChuZXh0QWN0aW9uKSB7XG4gICAgICAgIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZW1pdEZsb3dVcGRhdGVzKG5leHRBY3Rpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHRoaXMuZGF0YS5wYXltZW50Rm9ybT8uc3VtbWFyeSk7XG4gICAgdGhpcy5lbWl0Rm9ybUZpZWxkc1N0YXR1cyh0aGlzLmZvcm0pO1xuXG4gICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHRoaXMuZ2V0SW5pdGlhbGl6ZU1lc3NhZ2VzKCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpZWxkczogdGhpcy5maWVsZHMuZmlsdGVyKFxuICAgICAgICAoZmllbGQ6IEZpZWxkKSA9PiBmaWVsZD8uaXNWaXNpYmxlID09PSBYcHNCb29sZWFuLnRydWVcbiAgICAgICksXG4gICAgICBpc0Zvcm1BdXRvU3VibWl0dGVkOiBpc05lZWRBdXRvU3VibWl0LFxuICAgICAgbmV4dEFjdGlvbjogdGhpcy5pbml0aWFsaXplTmV4dEFjdGlvblNlcnZpY2UuZ2V0TmV4dEFjdGlvbih0aGlzLmRhdGEpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3VibWl0KCk6IFByb21pc2U8TmV4dEFjdGlvbiB8IG51bGwgfCB2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmZvcm0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZm9ybSBpcyBlbXB0eSEnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzU2F2aW5nTWV0aG9kTW9kZSA9IHRoaXMuZmllbGRzLnNvbWUoXG4gICAgICAoeyBuYW1lLCB2YWx1ZSB9KSA9PlxuICAgICAgICBuYW1lID09PSAnc2F2ZVBzQWNjb3VudE9ubHknICYmIHZhbHVlID09PSBYcHNCb29sZWFuLnRydWVcbiAgICApO1xuICAgIGNvbnN0IHN1Ym1pdFJlc3BvbnNlID0gYXdhaXQgdGhpcy5zdWJtaXRTZXJ2aWNlLnJlcXVlc3QoXG4gICAgICB0aGlzLmZpZWxkcyxcbiAgICAgIHRoaXMuZm9ybSxcbiAgICAgIHRoaXMuY29uZmlnXG4gICAgKTtcblxuICAgIHRoaXMuaGFuZGxlU3VibWl0V2l0aEVycm9ycyhzdWJtaXRSZXNwb25zZSk7XG5cbiAgICB0aGlzLmRhdGEgPSBzdWJtaXRSZXNwb25zZTtcbiAgICB0aGlzLmluaXRpYWxpemVCZWhhdmlvdXJTdHJhdGVnaWVzKCk7XG5cbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIGlmICghdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUpIHtcbiAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHN1Ym1pdFJlc3BvbnNlLnN1bW1hcnkpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMoc3VibWl0UmVzcG9uc2UubWVzc2FnZXMpO1xuXG4gICAgLy8gSGFuZGxlIDNkcyBmbG93XG4gICAgaWYgKFxuICAgICAgc3VibWl0UmVzcG9uc2UuY3VycmVudENvbW1hbmQgPT09IFhwc0NvbW1hbmQuY3JlYXRlICYmXG4gICAgICBzdWJtaXRSZXNwb25zZS5wYXJhbWV0ZXJzLnRocmVlRFNGb3JtXG4gICAgKSB7XG4gICAgICB0aGlzLnJ1blRocmVlRHMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZ2V0RmllbGRzKCk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtU2VydmljZS5jcmVhdGVGb3JtKHRoaXMuZmllbGRzKTtcblxuICAgIHRoaXMubGlzdGVuRm9ybVN0YXR1c0NoYW5nZXModGhpcy5mb3JtKTtcbiAgICB0aGlzLnN5bmNTZXJ2aWNlLnNldHVwKHRoaXMuZm9ybSwgdGhpcy5maWVsZHMsIHRoaXMuY29uZmlnKTtcblxuICAgIHJldHVybiB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmdldE5leHRBY3Rpb24oc3VibWl0UmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN1Ym1pdFdpdGhGaWVsZHMoZmllbGRzPzogRmllbGRbXSk6IFByb21pc2U8U3VibWl0UmVzcG9uc2U+IHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoJ3N1Ym1pdCBlcnJvcjogdHJ5aW5nIHRvIHN1Ym1pdCB3aXRoIG5vIGZvcm0nLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkdPT0dMRVBBWSxcbiAgICAgICAgXSlcbiAgICAgICk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Zvcm0gaXMgZW1wdHkhJyk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUgPSB0aGlzLmZpZWxkcy5zb21lKFxuICAgICAgKHsgbmFtZSwgdmFsdWUgfSkgPT5cbiAgICAgICAgbmFtZSA9PT0gJ3NhdmVQc0FjY291bnRPbmx5JyAmJiB2YWx1ZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgICBjb25zdCBzdWJtaXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0U2VydmljZS5yZXF1ZXN0KFxuICAgICAgZmllbGRzID8/IHRoaXMuZmllbGRzLFxuICAgICAgdGhpcy5mb3JtLFxuICAgICAgdGhpcy5jb25maWdcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhID0gc3VibWl0UmVzcG9uc2U7XG4gICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICBpZiAoIXRoaXMuaXNTYXZpbmdNZXRob2RNb2RlKSB7XG4gICAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyhzdWJtaXRSZXNwb25zZS5zdW1tYXJ5KTtcbiAgICB9XG4gICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHN1Ym1pdFJlc3BvbnNlLm1lc3NhZ2VzKTtcblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cCh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCB0aGlzLmNvbmZpZyk7XG5cbiAgICByZXR1cm4gc3VibWl0UmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgc2V0dXBJbml0aWFsRmllbGRWYWx1ZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZmllbGRzVG9PdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlRm9ybUZpZWxkcztcbiAgICBpZiAoIWZpZWxkc1RvT3ZlcnJpZGUpIHJldHVybjtcblxuICAgIGNvbnN0IG92ZXJyaWRhYmxlTmFtZXMgPSBuZXcgU2V0KFxuICAgICAgT2JqZWN0LmtleXMoZmllbGRzVG9PdmVycmlkZSkuZmlsdGVyKChuYW1lKSA9PlxuICAgICAgICBmaWVsZHNBbGxvd2VkVG9PdmVycmlkZS5oYXMobmFtZSBhcyBGaWVsZE5hbWVzKVxuICAgICAgKVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMuZmllbGRzKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZC5uYW1lO1xuICAgICAgaWYgKCFvdmVycmlkYWJsZU5hbWVzLmhhcyhmaWVsZE5hbWUpKSBjb250aW51ZTtcblxuICAgICAgY29uc3QgY29uZmlnID0gb3ZlcnJpZGVGaWVsZENvbmZpZ3NbZmllbGROYW1lXTtcbiAgICAgIGlmICghY29uZmlnKSBjb250aW51ZTtcblxuICAgICAgY29uc3Qgb3ZlcnJpZGRlblZhbHVlID0gZmllbGRzVG9PdmVycmlkZVtmaWVsZE5hbWVdPy5pbml0aWFsVmFsdWU7XG5cbiAgICAgIGZpZWxkLnZhbHVlID0gU3RyaW5nKFxuICAgICAgICBjb25maWcudmFsaWRhdG9yKG92ZXJyaWRkZW5WYWx1ZSlcbiAgICAgICAgICA/IG92ZXJyaWRkZW5WYWx1ZVxuICAgICAgICAgIDogY29uZmlnLmRlZmF1bHRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRzKCk6IEZpZWxkW10ge1xuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBTdWJtaXRSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maWVsZHMgPz8gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucGF5bWVudEZvcm0/LmZpZWxkcyA/PyBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sU3RhdHVzKG5hbWU6IEZpZWxkTmFtZXMpOiBDb250cm9sU3RhdHVzIHwgbnVsbCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzLFxuICAgICAgc3RhdHVzOiBjb250cm9sLnN0YXR1cyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEluaXRpYWxEYXRhRm9yU2RrUGF5bWVudFN5c3RlbXMoKTogUHJvbWlzZTxTZGtQYXltZW50U3lzdGVtc0luaXRpYWxEYXRhPiB7XG4gICAgaWYgKCF0aGlzLmRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2RrUGF5bWVudERhdGEgPSB0aGlzLmdldFNka1BheW1lbnREYXRhRnJvbVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIGRhdGE6IHNka1BheW1lbnREYXRhLmNoZWNrb3V0RGF0YSxcbiAgICAgIHNhbmRib3g6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmlzU2FuZGJveE1vZGUoKVxuICAgICAgICA/IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICAgICA6IFhwc0Jvb2xlYW4uZmFsc2UsXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICAgIGZpZWxkczogc2RrUGF5bWVudERhdGEuZmllbGRzLFxuICAgICAgc3VibWl0UmVzcG9uc2U6IGlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSA/IHRoaXMuZGF0YSA6IG51bGwsXG4gICAgICBzdW1tYXJ5OiBzZGtQYXltZW50RGF0YS5zdW1tYXJ5LFxuICAgICAgbG9jYWxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0Q3VycmVudExhbmcoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRckNvZGUoKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuZm9ybS5xci50aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNoUGF5bWVudERhdGEoKTogQ2FzaFBheW1lbnREYXRhIHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYXNoSW5zdHJ1Y3Rpb25GaWVsZCA9IHRoaXMuZGF0YS5maWVsZHMuZmluZChcbiAgICAgIChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ3BheW1lbnRfaW5zdHJ1Y3Rpb24nXG4gICAgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGlzQ2FzaFBheW1lbnRNZXRob2Q6ICEhY2FzaEluc3RydWN0aW9uRmllbGQsXG4gICAgICB4c29sbGFOdW1iZXI6IHRoaXMuZGF0YS54c29sbGFOdW1iZXIuYWNjb3VudFhzb2xsYSxcbiAgICAgIHBpZDogdGhpcy5kYXRhLnBhcmFtZXRlcnMucGlkLFxuICAgICAgcHVibGljSWQ6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLnB1YmxpY19pZCxcbiAgICAgIHRpdGxlOiB0aGlzLmRhdGEucGFyYW1ldGVycy50aXRsZSxcbiAgICAgIHByb2plY3ROYW1lOiB0aGlzLnNldHRpbmdzU2VydmljZS5wcm9qZWN0Lm5hbWUsXG4gICAgICBpbnN0cnVjdGlvbjogY2FzaEluc3RydWN0aW9uRmllbGQ/LnRpdGxlLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHByaW50VXJsOiB0aGlzLnByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlLmdldFByaW50SW5zdHJ1Y3Rpb25VcmwocGFyYW1zKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFBpZCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5waWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIEluaXRpYWxpemVSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5wYXltZW50Rm9ybT8ucGlkID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3VibWl0QnV0dG9uVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5idXlEYXRhLnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGF5bWVudEZvcm0/LmJ1eURhdGEudmFsdWUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZShmaWVsZDogRmllbGQpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgY29uc3Qgc3luY0Vycm9ycyA9IHRoaXMuc3luY1NlcnZpY2UuZ2V0U3luY1ZhbGlkYXRpb25FcnJvcnMoZmllbGQpO1xuXG4gICAgaWYgKHN5bmNFcnJvcnMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3luY0Vycm9ycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3luY1NlcnZpY2UudmFsaWRhdGUoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbGN1bGF0ZUZpZWxkKFxuICAgIGNoYW5nZWRGaWVsZDogRmllbGQsXG4gICAgZmllbGRzOiBGaWVsZFtdXG4gICk6IFByb21pc2U8U3luY1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3luY1NlcnZpY2UucmVxdWVzdChjaGFuZ2VkRmllbGQsIGZpZWxkcywgbmV3IEZvcm1Hcm91cCh7fSkpO1xuICB9XG5cbiAgcHVibGljIHJ1blRocmVlRHMoKTogdm9pZCB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5jaGVja1RocmVlRHModGhpcy5kYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaW5hbmNlRGV0YWlscygpOiBGaW5hbmNlRGV0YWlscyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmZpbmFuY2VEZXRhaWxzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpZWxkRm9ybVN0YXRlKGZpZWxkTmFtZTogc3RyaW5nLCBmb3JtU3RhdGU6IEZvcm1TdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlRmllbGRGb3JtU3RhdGUoXG4gICAgICAgIHRoaXMuZm9ybSxcbiAgICAgICAgdGhpcy5maWVsZHMsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgZm9ybVN0YXRlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IEZpZWxkTmFtZXMpOiBGb3JtU3RhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2VydmljZS5nZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YXR1cygpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogU3RhdHVzUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIHBpZDogdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkLFxuICAgICAgaW52b2ljZTogcGFyc2VJbnQodGhpcy5kYXRhLmZpeEludm9pY2UgPz8gJycpLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLmRhdGEuc2lnbmF0dXJlID8/ICcnLFxuICAgICAgbG9jYWxlOlxuICAgICAgICB0aGlzLmRhdGEuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAnbG9jYWxlJyk/LnZhbHVlID8/XG4gICAgICAgICdlbicsXG4gICAgICBpc1NhdmVQYXltZW50QWNjb3VudDogdGhpcy5pc1NhdmluZ01ldGhvZE1vZGVcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzU2VydmljZS5nZXRTdGF0dXMocGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsaXN0ZW5GaW5hbFN0YXR1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGludm9pY2UgfSA9IGF3YWl0IHRoaXMuZ2V0U3RhdHVzKCk7XG5cbiAgICB0aGlzLnN0YXR1c1NlcnZpY2VcbiAgICAgIC5saXN0ZW5GaW5hbFN0YXR1cyhpbnZvaWNlIGFzIHVua25vd24gYXMgbnVtYmVyKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgICAgICB0aGlzLmNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvci5nZXRBY3Rpb25EYXRhKClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkQ29uZmlnKGZpZWxkOiBGaWVsZCk6IENvbnRyb2xDb25maWcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sQ29uZmlnU2VydmljZS5nZXRDb25maWcoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkVmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGV4dGVybmFsQ2hhbmdlRmllbGRWYWx1ZShuYW1lOiBGaWVsZE5hbWVzLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaXNGaWVsZEFsbG93ZWRGb3JFeHRlcm5hbENoYW5nZSA9XG4gICAgICBmaWVsZHNBbGxvd2VkVG9FeHRlcm5hbENoYW5nZS5oYXMobmFtZSk7XG5cbiAgICBjb25zdCBpc0V4dGVybmFsVmF1bHQgPVxuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZFNldHRpbmdzPy51c2VFeHRlcm5hbFZhdWx0ICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXltZW50TWV0aG9kSWQgPT09IGNyZWRpdENhcmRQYXltZW50TWV0aG9kSWQ7XG5cbiAgICBpZiAoIWlzRmllbGRBbGxvd2VkRm9yRXh0ZXJuYWxDaGFuZ2UgfHwgIWlzRXh0ZXJuYWxWYXVsdCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkU3RhdGUobmFtZTogc3RyaW5nLCBzdGF0ZTogSW5wdXRFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5ibHVyOiB7XG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5mb2N1czoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeHRyYUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSGF2ZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZC5uYW1lID09PSBuYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzSGF2ZUZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGQgPSB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgZXhhbXBsZTogJycsXG4gICAgICBpc01hbmRhdG9yeTogWHBzQm9vbGVhbi50cnVlLFxuICAgICAgaXNWaXNpYmxlOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH0gYXMgRmllbGQ7XG5cbiAgICB0aGlzLmZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveUJlaGF2aW91clN0cmF0ZWdpZXModGhpcy5jb25maWcpO1xuXG4gICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzID0gbnVsbDtcbiAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgIHRoaXMuZmllbGRzID0gW107XG4gICAgdGhpcy5mb3JtRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5zdG9wQ2hlY2tpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZpbmFuY2VEZXRhaWxzKHN1bW1hcnk/OiBYcHNTdW1tYXJ5KTogdm9pZCB7XG4gICAgdGhpcy5maW5hbmNlRGV0YWlsc1NlcnZpY2UuZW1pdFdpdGhTdW1tYXJ5KHN1bW1hcnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q3JlZGl0Q2FyZFN0YXRlKHtcbiAgICBpZENhcmRUeXBlLFxuICAgIGNhcmRCaW5Db3VudHJ5LFxuICB9OiB7XG4gICAgaWRDYXJkVHlwZTogc3RyaW5nO1xuICAgIGNhcmRCaW5Db3VudHJ5Pzogc3RyaW5nO1xuICB9KTogdm9pZCB7XG4gICAgdGhpcy5jcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLmVtaXQoeyBpZENhcmRUeXBlLCBjYXJkQmluQ291bnRyeSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1GaWVsZHNTdGF0dXMoZm9ybTogVW50eXBlZEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZHNTdGF0dXM6IEZvcm1GaWVsZHNTdGF0dXMgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW25hbWVdO1xuICAgICAgZm9ybUZpZWxkc1N0YXR1c1tuYW1lXSA9IHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgdmFsaWRhdGlvblN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgICAgIGVycm9yczogY29udHJvbC5lcnJvcnMsXG4gICAgICAgIGlzRm9jdXNlZDogdGhpcy5mb2N1c0ZpZWxkTmFtZSA9PT0gbmFtZSxcbiAgICAgICAgaXNUb3VjaGVkOiBjb250cm9sLnRvdWNoZWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5uZXh0KGZvcm1GaWVsZHNTdGF0dXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybU1lc3NhZ2VzKG1lc3NhZ2VzPzogWHBzTWVzc2FnZVtdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtTWVzc2FnZXNTZXJ2aWNlLmVtaXRPblJlc3BvbnNlKG1lc3NhZ2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTeW5jU2VydmljZShcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uXG4gICk6IHZvaWQge1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAoZm9ybSwgZmllbGRzLCBjb25maWcpO1xuICAgIHRoaXMuc3luY1NlcnZpY2UuZGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHJlc3BvbnNlLnN1bW1hcnkpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMocmVzcG9uc2UubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmZpZWxkQXN5bmNWYWxpZGF0aW9uJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmllbGRBc3luY1ZhbGlkYXRpb24pID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWVsZEFzeW5jVmFsaWRhdGlvbi5maWVsZC5uYW1lKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZE5hbWVzLmNhcmROdW1iZXI6XG4gICAgICAgICAgICB0aGlzLmVtaXRDcmVkaXRDYXJkU3RhdGUoe1xuICAgICAgICAgICAgICBpZENhcmRUeXBlOiBmaWVsZEFzeW5jVmFsaWRhdGlvbi5yZXNwb25zZS5wYXJhbWV0ZXJzLmlkQ2FyZFR5cGUsXG4gICAgICAgICAgICAgIGNhcmRCaW5Db3VudHJ5OlxuICAgICAgICAgICAgICAgIGZpZWxkQXN5bmNWYWxpZGF0aW9uLnJlc3BvbnNlLnBhcmFtZXRlcnMuY2FyZEJpbkNvdW50cnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZpbmFuY2VEZXRhaWxzKCk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChmaW5hbmNlRGV0YWlscykgPT4gKHRoaXMuZmluYW5jZURldGFpbHMgPSBmaW5hbmNlRGV0YWlscykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm0pO1xuICAgICAgICB0aGlzLl9wYXltZW50Rm9ybSQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBpbiBjYXNlIHRoZSBmb3JtIHBpZCBjaGFuZ2VzIGRlc3BpdGUgdGhlIG9uZSBwYXNzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAqICAqL1xuICBwcml2YXRlIHVwZGF0ZVBpZENvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UGlkID0gdGhpcy5nZXRQaWQoKTtcbiAgICBpZiAoY3VycmVudFBpZCkge1xuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkID0gY3VycmVudFBpZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtUmVzcG9uc2UoZGF0YTogRm9ybVJlc3BvbnNlWydkYXRhJ10pOiB2b2lkIHtcbiAgICBsZXQgdHlwZTogRm9ybVJlc3BvbnNlWyd0eXBlJ107XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnaW5pdGlhbGl6ZSc7XG4gICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnc3VibWl0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9ICdzeW5jJztcbiAgICB9XG4gICAgdGhpcy5fZm9ybVJlc3BvbnNlJC5uZXh0KHtcbiAgICAgIHR5cGUsXG4gICAgICBkYXRhLFxuICAgICAgdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgaXNTYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxpemVNZXNzYWdlcygpOiBYcHNNZXNzYWdlW10ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gKHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpLnBheW1lbnRGb3JtPy5tZXNzYWdlcztcbiAgICBjb25zdCBrb3JlYU5vdGlmaWNhdGlvbiA9ICh0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKS5wYXltZW50Rm9ybVxuICAgICAgPy5rb3JlYU5vdGlmaWNhdGlvbjtcbiAgICBpZiAoa29yZWFOb3RpZmljYXRpb24pIHtcbiAgICAgIG1lc3NhZ2VzPy5wdXNoKHsgY29kZTogJzAnLCBtZXNzYWdlOiBrb3JlYU5vdGlmaWNhdGlvbj8udGl0bGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlcyA/PyBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuQXV0b1N1Ym1pdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2U7XG4gICAgaWYgKCFyZXNwb25zZS5wYXltZW50Rm9ybSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzUmVkaXJlY3RNZXRob2QgPSByZXNwb25zZS5wYXltZW50Rm9ybS5pc0NoZWNrb3V0O1xuICAgIGNvbnN0IGNhblNraXBGb3JtID0gcmVzcG9uc2UucGF5bWVudEZvcm0uc2tpcEZvcm07XG5cbiAgICBjb25zdCBpc1N1aXRhYmxlQnlTdHJhdGVneSA9IHRoaXMuYXV0b1N1Ym1pdEJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICByZXR1cm4gKCFpc1JlZGlyZWN0TWV0aG9kICYmIGNhblNraXBGb3JtKSB8fCBpc1N1aXRhYmxlQnlTdHJhdGVneTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2RrUGF5bWVudERhdGFGcm9tUmVzcG9uc2UoXG4gICAgZGF0YTogU3VibWl0UmVzcG9uc2UgfCBJbml0aWFsaXplUmVzcG9uc2VcbiAgKToge1xuICAgIGNoZWNrb3V0RGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWVsZHM6IEZpZWxkW107XG4gICAgc3VtbWFyeTogWHBzU3VtbWFyeSB8IG51bGw7XG4gIH0ge1xuICAgIGlmIChpc1N1Ym1pdFJlc3BvbnNlKGRhdGEpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGVja291dERhdGE6IGRhdGEucGFyYW1ldGVycz8uY2hlY2tvdXQuZGF0YS5kYXRhLFxuICAgICAgICBmaWVsZHM6IGRhdGEuZmllbGRzLFxuICAgICAgICBzdW1tYXJ5OiBkYXRhLnN1bW1hcnksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjaGVja291dERhdGE6IG51bGwsXG4gICAgICBmaWVsZHM6IGRhdGEucGF5bWVudEZvcm0/LmZpZWxkcyA/PyBbXSxcbiAgICAgIHN1bW1hcnk6IGRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkgPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgdGhpcy5jb25maWdcbiAgICAgICk7XG5cbiAgICBiZWhhdmlvdXJTdHJhdGVnaWVzLmZvckVhY2goKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgc3RyYXRlZ3kub25Jbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lCZWhhdmlvdXJTdHJhdGVnaWVzKGNvbmZpZzogUGF5bWVudENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgY29uZmlnXG4gICAgICApO1xuXG4gICAgYmVoYXZpb3VyU3RyYXRlZ2llcy5mb3JFYWNoKChzdHJhdGVneTogQmVoYXZpb3VyU3RyYXRlZ3kpID0+IHtcbiAgICAgIHN0cmF0ZWd5Lm9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU3VibWl0QmVoYXZpb3VyU3RyYXRlZ2llcyhjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYmVoYXZpb3VyU3RyYXRlZ2llcyA9XG4gICAgICB0aGlzLnBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlLmdldEFwcGxpY2FibGVCZWhhdmlvdXJTdHJhdGVnaWVzKFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgIGNvbmZpZ1xuICAgICAgKTtcblxuICAgIHJldHVybiBiZWhhdmlvdXJTdHJhdGVnaWVzLnNvbWUoKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgcmV0dXJuIHN0cmF0ZWd5LmNhbkF1dG9TdWJtaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3VibWl0V2l0aEVycm9ycyhzdWJtaXRSZXNwb25zZTogU3VibWl0UmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAoIXN1Ym1pdFJlc3BvbnNlLmVycm9ycz8ubGVuZ3RoKSByZXR1cm47XG5cbiAgICB1cGRhdGVBZnRlckVycm9yUnVsZXMuZm9yRWFjaCgocnVsZSkgPT5cbiAgICAgIHJ1bGUuYXBwbHkoc3VibWl0UmVzcG9uc2UsIHRoaXMuZm9ybSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -34,15 +34,20 @@ export class DfpCollectService {
|
|
|
34
34
|
const attributes = {
|
|
35
35
|
name: this.iframeName,
|
|
36
36
|
id: this.iframeName,
|
|
37
|
-
src: '
|
|
37
|
+
src: 'about:blank',
|
|
38
38
|
style: 'display:none',
|
|
39
39
|
};
|
|
40
40
|
const iFrame = this.window.document.createElement('iframe');
|
|
41
41
|
this.setAttributes(iFrame, attributes);
|
|
42
42
|
this.window.document.body.appendChild(iFrame);
|
|
43
|
+
// dynamically created iframe triggers onload event twice
|
|
44
|
+
let isAlreadySent = false;
|
|
43
45
|
if (isNeedNotifyAfterLoad) {
|
|
44
46
|
this.window.document.getElementById(this.iframeName).onload = () => {
|
|
47
|
+
if (isAlreadySent)
|
|
48
|
+
return;
|
|
45
49
|
this.notifyDfpStatusService.request(threeDsTrXid, true);
|
|
50
|
+
isAlreadySent = true;
|
|
46
51
|
};
|
|
47
52
|
}
|
|
48
53
|
}
|
|
@@ -102,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
102
107
|
type: Inject,
|
|
103
108
|
args: [windowToken]
|
|
104
109
|
}] }, { type: i1.NotifyDfpStatusService }] });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZwLWNvbGxlY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvdGhyZWUtZHMvZGZwLWNvbGxlY3QvZGZwLWNvbGxlY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQVFwRCxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBRW1CLE1BQXNCLEVBQ3RCLHNCQUE4QztRQUQ5QyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBTmhELGVBQVUsR0FBRyxXQUFXLENBQUM7UUFDekIsYUFBUSxHQUFHLFNBQVMsQ0FBQztJQU1uQyxDQUFDO0lBRUcsZ0JBQWdCLENBQUMsV0FBd0I7UUFDOUMsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFRDs7U0FFSztJQUNHLHlCQUF5QixDQUMvQixXQUF3QixFQUN4QixxQkFBOEI7UUFFOUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxXQUFX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RyxRQUFRLENBQUM7UUFDdEIsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O1NBRUs7SUFDRyxhQUFhLENBQ25CLE9BQW9CLEVBQ3BCLFVBQXFDO1FBRXJDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTlIVSxpQkFBaUIsa0JBS2xCLFdBQVc7a0hBTFYsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vdGlmeURmcFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbm90aWZ5LWRmcC1zdGF0dXMvbm90aWZ5LWRmcC1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBUaHJlZURzRm9ybSB9IGZyb20gJy4uL3RocmVlLWRzLWZvcm0uaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERmcENvbGxlY3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpZnJhbWVOYW1lID0gJ2lmcmFtZURGUCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybU5hbWUgPSAnZm9ybURGUCc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZ5RGZwU3RhdHVzU2VydmljZTogTm90aWZ5RGZwU3RhdHVzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGNvbGxlY3REZnBTdGF0dXModGhyZWVEc0Zvcm06IFRocmVlRHNGb3JtKTogdm9pZCB7XG4gICAgaWYgKHRocmVlRHNGb3JtLndhaXRDYWxsYmFjaykge1xuICAgICAgdGhpcy5vcGVuSWZyYW1lV2l0aFBvc3RSZXF1ZXN0KHRocmVlRHNGb3JtLCBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbklmcmFtZVdpdGhQb3N0UmVxdWVzdCh0aHJlZURzRm9ybSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogVGhpcyBtZXRob2QgY3JlYXRlIGludmlzaWJsZSBpZnJhbWUgd2l0aCByZXF1aXJlZCBwYXJhbXMgYW5kIGFmdGVyIHRoYXQgaXQgc3VibWl0IGZvcm0gaW4gaWZyYW1lXG4gICAqICovXG4gIHByaXZhdGUgb3BlbklmcmFtZVdpdGhQb3N0UmVxdWVzdChcbiAgICB0aHJlZURzRm9ybTogVGhyZWVEc0Zvcm0sXG4gICAgaXNOZWVkTm90aWZ5QWZ0ZXJMb2FkOiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGlGcmFtZUVsZW1lbnQgPSB0aGlzLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlmcmFtZU5hbWUpO1xuICAgIGlmICghaUZyYW1lRWxlbWVudCkge1xuICAgICAgdGhpcy5jcmVhdGVJZnJhbWUoaXNOZWVkTm90aWZ5QWZ0ZXJMb2FkLCB0aHJlZURzRm9ybS50aHJlZURTVHJYaWQpO1xuICAgICAgdGhpcy5wb3N0Rm9ybVRvSWZyYW1lKFxuICAgICAgICB0aHJlZURzRm9ybS50aHJlZURTTWV0aG9kLFxuICAgICAgICB0aHJlZURzRm9ybS50aHJlZURTTWV0aG9kRGF0YVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBpc05lZWROb3RpZnlBZnRlckxvYWQgaXMgbmVlZCB0byBzZW5kIG5vdGlmaWNhdGlvbiBvZiBkZnQgdG8gc2VydmVyXG4gICAqICovXG4gIHByaXZhdGUgY3JlYXRlSWZyYW1lKFxuICAgIGlzTmVlZE5vdGlmeUFmdGVyTG9hZDogYm9vbGVhbixcbiAgICB0aHJlZURzVHJYaWQ6IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgbmFtZTogdGhpcy5pZnJhbWVOYW1lLFxuICAgICAgaWQ6IHRoaXMuaWZyYW1lTmFtZSxcbiAgICAgIHNyYzogJ2Fib3V0OmJsYW5rJyxcbiAgICAgIHN0eWxlOiAnZGlzcGxheTpub25lJyxcbiAgICB9O1xuXG4gICAgY29uc3QgaUZyYW1lID0gdGhpcy53aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVzKGlGcmFtZSwgYXR0cmlidXRlcyk7XG4gICAgdGhpcy53aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpRnJhbWUpO1xuXG4gICAgLy8gZHluYW1pY2FsbHkgY3JlYXRlZCBpZnJhbWUgdHJpZ2dlcnMgb25sb2FkIGV2ZW50IHR3aWNlXG4gICAgbGV0IGlzQWxyZWFkeVNlbnQgPSBmYWxzZTtcblxuICAgIGlmIChpc05lZWROb3RpZnlBZnRlckxvYWQpIHtcbiAgICAgIChcbiAgICAgICAgdGhpcy53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgdGhpcy5pZnJhbWVOYW1lXG4gICAgICAgICkgYXMgSFRNTElGcmFtZUVsZW1lbnRcbiAgICAgICkub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAoaXNBbHJlYWR5U2VudCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMubm90aWZ5RGZwU3RhdHVzU2VydmljZS5yZXF1ZXN0KHRocmVlRHNUclhpZCwgdHJ1ZSk7XG4gICAgICAgIGlzQWxyZWFkeVNlbnQgPSB0cnVlO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIHN1Ym1pdCBmb3JtIGluIG91ciBpZnJhbWUuIEZvcm0gd2lsbCBiZSBjcmVhdGVkLCBpZiBpdCdzIGRvbid0IGV4aXN0XG4gICAqICovXG4gIHByaXZhdGUgcG9zdEZvcm1Ub0lmcmFtZSh1cmw6IHN0cmluZywgdGhyZWVEc01ldGhvZDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGZvcm0gPSB0aGlzLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgIHRoaXMuZm9ybU5hbWVcbiAgICApIGFzIEhUTUxGb3JtRWxlbWVudDtcblxuICAgIGlmICghZm9ybSkge1xuICAgICAgZm9ybSA9IHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgdGhpcy53aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcbiAgICB9XG5cbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgnYWN0aW9uJywgdXJsKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgdGhpcy5pZnJhbWVOYW1lKTtcbiAgICBmb3JtLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSW5wdXQoJ3RocmVlRFNNZXRob2REYXRhJywgdGhyZWVEc01ldGhvZCkpO1xuXG4gICAgZm9ybS5zdWJtaXQoKTtcbiAgfVxuXG4gIC8qXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgY3JlYXRlIGludmlzaWJsZSBmb3JtIHdpdGggcmVxdWlyZWQgcGFyYW1zXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHtcbiAgICBjb25zdCBmb3JtID0gdGhpcy53aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICAgIGNvbnN0IGluaXRBdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgbmFtZTogdGhpcy5mb3JtTmFtZSxcbiAgICAgIGlkOiB0aGlzLmZvcm1OYW1lLFxuICAgICAgc3R5bGU6ICdkaXNwbGF5Om5vbmUnLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBlbmN0eXBlOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICB9O1xuXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVzKGZvcm0sIGluaXRBdHRyaWJ1dGVzKTtcblxuICAgIHJldHVybiBmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnB1dChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgaW5wdXQudHlwZSA9ICdoaWRkZW4nO1xuICAgIGlucHV0Lm5hbWUgPSBuYW1lO1xuICAgIGlucHV0LnZhbHVlID0gdmFsdWU7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG5cbiAgLypcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBzZXQgYXR0cmlidXRlcyB0byBmb3JtL2lmcmFtZVxuICAgKiAqL1xuICBwcml2YXRlIHNldEF0dHJpYnV0ZXMoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgYXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICApOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCBhdHRyaWJ1dGVzW25hbWVdKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -48,7 +48,7 @@ export class XpsApiService {
|
|
|
48
48
|
return parameters;
|
|
49
49
|
}
|
|
50
50
|
/* If payment method with 3DSecure */
|
|
51
|
-
if (cardsWith3ds.
|
|
51
|
+
if (cardsWith3ds.has(Number(paymentMethodId))) {
|
|
52
52
|
parameters.container3DS = JSON.stringify({
|
|
53
53
|
browserjavaenabled: this.window.navigator.javaEnabled(),
|
|
54
54
|
browserlanguage: this.window.navigator.language,
|
|
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
82
82
|
type: Inject,
|
|
83
83
|
args: [windowToken]
|
|
84
84
|
}] }, { type: i1.SecureApiClient }, { type: i2.SettingsService }, { type: i3.CountryService }, { type: i4.UserAgentService }] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHBzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC94cHMtYXBpL3hwcy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7QUFPMUUsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFFbUIsTUFBc0IsRUFDdEIsZUFBZ0MsRUFDaEMsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsZ0JBQWtDO1FBSmxDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFScEMsMEJBQXFCLEdBQUcsZUFBZSxDQUFDO0lBU3RELENBQUM7SUFFRyxLQUFLLENBQUMsb0JBQW9CLENBQy9CLFVBQXNCO1FBRXRCLE1BQU0sR0FBRyxHQUNQLFVBQVUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFO1lBQ3pCLFVBQVUsQ0FBQyxXQUFrQztZQUM5QyxFQUFFLENBQUM7UUFDTCxNQUFNLHNCQUFzQixHQUMxQixVQUFVLENBQUMsc0JBQXNCO1lBQ2hDLFVBQVUsQ0FBQywwQkFBaUQ7WUFDN0QsRUFBRSxDQUFDO1FBRUwsTUFBTSxh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O2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFNlY3VyZUFwaUNsaWVudCB9IGZyb20gJy4uLy4uL2h0dHAvc2VjdXJlLWFwaS9zZWN1cmUtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzQm9vbGVhbiB9IGZyb20gJy4uLy4uL3hwcy1ib29sZWFuLmVudW0nO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzUmVxdWVzdCB9IGZyb20gJy4uL3hwcy1yZXF1ZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4uL3hwcy1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY2FyZHNXaXRoM2RzIH0gZnJvbSAnLi4vY3JlZGl0LWNhcmQtcGF5bWVudC1tZXRob2RzLWlkLnZhcmlhYmxlJztcbmltcG9ydCB7IENvdW50cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY291bnRyeS9jb3VudHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckFnZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItYWdlbnQvdXNlci1hZ2VudC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFhwc0FwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpcmVjdFBheW1lbnRBcGlSb3V0ZSA9ICdkaXJlY3RwYXltZW50JztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWN1cmVBcGlDbGllbnQ6IFNlY3VyZUFwaUNsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY291bnRyeVNlcnZpY2U6IENvdW50cnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckFnZW50U2VydmljZTogVXNlckFnZW50U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGRpcmVjdFBheW1lbnRSZXF1ZXN0KFxuICAgIHBhcmFtZXRlcnM6IFhwc1JlcXVlc3RcbiAgKTogUHJvbWlzZTxYcHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHBpZCA9XG4gICAgICBwYXJhbWV0ZXJzLnBpZD8udG9TdHJpbmcoKSA/P1xuICAgICAgKHBhcmFtZXRlcnMueHBzX2ZpeF9waWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/P1xuICAgICAgJyc7XG4gICAgY29uc3QgcGF5bWVudFdpdGhTYXZlZE1ldGhvZCA9XG4gICAgICBwYXJhbWV0ZXJzLnBheW1lbnRXaXRoU2F2ZWRNZXRob2QgPz9cbiAgICAgIChwYXJhbWV0ZXJzLnhwc19wYXltZW50V2l0aFNhdmVkTWV0aG9kIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz9cbiAgICAgICcnO1xuXG4gICAgY29uc3QgcmVxdWVzdFBhcmFtczogWHBzUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIC4uLnRoaXMuY29sbGVjdEFuYWx5dGljc1BhcmFtZXRlcnMocGlkLCBwYXltZW50V2l0aFNhdmVkTWV0aG9kKSxcbiAgICAgIC4uLnRoaXMuY29sbGVjdFVzZXJTZXNzaW9uSWQoKSxcbiAgICAgIGNvdW50cnk6IHRoaXMuY291bnRyeVNlcnZpY2UuZ2V0Q291bnRyeSgpLFxuICAgICAgcmVmZXI6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnJlZmVyLFxuICAgICAgLi4ucGFyYW1ldGVycyxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudXNlckFnZW50U2VydmljZS5pc01vYmlsZURldmljZSkge1xuICAgICAgcmVxdWVzdFBhcmFtcy5tb2JpbGUgPSBYcHNCb29sZWFuLnRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLnNlY3VyZUFwaUNsaWVudC5wb3N0PFhwc1Jlc3BvbnNlPihcbiAgICAgICAgdGhpcy5kaXJlY3RQYXltZW50QXBpUm91dGUsXG4gICAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMoeyAuLi5yZXF1ZXN0UGFyYW1zIH0gYXMgdW5rbm93biBhcyB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD11dGYtOCdcbiAgICAgICAgICApLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGVjdEFuYWx5dGljc1BhcmFtZXRlcnMoXG4gICAgcGF5bWVudE1ldGhvZElkPzogc3RyaW5nLFxuICAgIHBheW1lbnRXaXRoU2F2ZWRNZXRob2Q/OiBYcHNCb29sZWFuIHwgc3RyaW5nXG4gICk6IHtcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBYcHNSZXF1ZXN0UGFyYW1zID0ge307XG5cbiAgICBwYXJhbWV0ZXJzLnBheW1lbnRXaXRoU2F2ZWRNZXRob2QgPSBwYXltZW50V2l0aFNhdmVkTWV0aG9kXG4gICAgICA/IHBheW1lbnRXaXRoU2F2ZWRNZXRob2RcbiAgICAgIDogWHBzQm9vbGVhbi5mYWxzZTtcblxuICAgIGlmICghcGF5bWVudE1ldGhvZElkKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9XG5cbiAgICAvKiBJZiBwYXltZW50IG1ldGhvZCB3aXRoIDNEU2VjdXJlICovXG4gICAgaWYgKGNhcmRzV2l0aDNkcy5oYXMoTnVtYmVyKHBheW1lbnRNZXRob2RJZCkpKSB7XG4gICAgICBwYXJhbWV0ZXJzLmNvbnRhaW5lcjNEUyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgYnJvd3NlcmphdmFlbmFibGVkOiB0aGlzLndpbmRvdy5uYXZpZ2F0b3IuamF2YUVuYWJsZWQoKSxcbiAgICAgICAgYnJvd3Nlcmxhbmd1YWdlOiB0aGlzLndpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2UsXG4gICAgICAgIGJyb3dzZXJjb2xvcmRlcHRoOiB0aGlzLndpbmRvdy5zY3JlZW4uY29sb3JEZXB0aCxcbiAgICAgICAgYnJvd3NlcnNjcmVlbmhlaWdodDogdGhpcy53aW5kb3cuc2NyZWVuLmF2YWlsSGVpZ2h0LFxuICAgICAgICBicm93c2Vyc2NyZWVud2lkdGg6IHRoaXMud2luZG93LnNjcmVlbi5hdmFpbFdpZHRoLFxuICAgICAgICBicm93c2VydHo6IG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSxcbiAgICAgICAgYnJvd3NlcmFwcG5hbWU6IHRoaXMud2luZG93Lm5hdmlnYXRvci5hcHBOYW1lLFxuICAgICAgICBicm93c2VybG9jYWx0aW1lOiBuZXcgRGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICAgIGJyb3dzZXJwbGF0Zm9ybTogdGhpcy53aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtIHx8ICcnLFxuICAgICAgICBicm93c2VyY29va2llc2VuYWJsZWQ6IHRoaXMud2luZG93Lm5hdmlnYXRvci5jb29raWVFbmFibGVkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RVc2VyU2Vzc2lvbklkKCk6IFhwc1JlcXVlc3RQYXJhbXMge1xuICAgIGNvbnN0IHBhcmFtZXRlcnM6IFhwc1JlcXVlc3RQYXJhbXMgPSB7fTtcblxuICAgIHBhcmFtZXRlcnMueHBzX2lkVXNlclNlc3Npb24gPSB0aGlzLnNldHRpbmdzU2VydmljZS51c2VyLnNlc3Npb25faWQgPz8gJyc7XG4gICAgcGFyYW1ldGVycy51c2VyX3Nlc3Npb25faWQgPSB0aGlzLnNldHRpbmdzU2VydmljZS51c2VyLnNlc3Npb25faWQgPz8gJyc7XG5cbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1idXR0b24tY29uZmlndXJhdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2dvb2dsZS1wYXkvZ29vZ2xlLXBheS1idXR0b24tY29uZmlndXJhdGlvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdvb2dsZVBheUJ1dHRvbkNvbG9yVHlwZSB9IGZyb20gJy4vZ29vZ2xlLXBheS1idXR0b24tY29sb3IudHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGF5QnV0dG9uQ29uZmlndXJhdGlvbiB7XG4gIGxvY2FsZTogc3RyaW5nO1xuICBjb2xvcj86IEdvb2dsZVBheUJ1dHRvbkNvbG9yVHlwZTtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvZ29vZ2xlLXBheS9nb29nbGUtcGF5LWxpYnJhcnkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIEFwaVZlcnNpb24gPSBudW1iZXI7XG50eXBlIEFwaVZlcnNpb25NaW5vciA9IG51bWJlcjtcblxuaW50ZXJmYWNlIEFkZHJlc3Mge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFkZHJlc3MxOiBzdHJpbmc7XG4gIGFkZHJlc3MyOiBzdHJpbmc7XG4gIGFkZHJlc3MzOiBzdHJpbmc7XG4gIGxvY2FsaXR5OiBzdHJpbmc7XG4gIGFkbWluaXN0cmF0aXZlQXJlYTogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwb3N0YWxDb2RlOiBzdHJpbmc7XG4gIHNvcnRpbmdDb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlJdGVtcyA9IEFycmF5PHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBwcmljZTogc3RyaW5nO1xufT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25JbmZvIHtcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xuICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gIHRvdGFsUHJpY2U/OiBudW1iZXIgfCBzdHJpbmc7XG4gIGNvdW50cnlDb2RlPzogc3RyaW5nO1xuICB0b3RhbFByaWNlTGFiZWw/OiBzdHJpbmc7XG4gIGRpc3BsYXlJdGVtcz86IERpc3BsYXlJdGVtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxvd2VkUGF5bWVudE1ldGhvZCB7XG4gIHR5cGU6IHN0cmluZztcbiAgcGFyYW1ldGVyczoge1xuICAgIGFsbG93ZWRBdXRoTWV0aG9kczogc3RyaW5nW107XG4gICAgYWxsb3dlZENhcmROZXR3b3Jrczogc3RyaW5nW107XG4gICAgYWxsb3dQcmVwYWlkQ2FyZHM6IGJvb2xlYW47XG4gICAgYmlsbGluZ0FkZHJlc3NSZXF1aXJlZDogYm9vbGVhbjtcbiAgICBiaWxsaW5nQWRkcmVzc1BhcmFtZXRlcnM6IHtcbiAgICAgIGZvcm1hdDogc3RyaW5nO1xuICAgICAgcGhvbmVOdW1iZXJSZXF1aXJlZDogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICB0b2tlbml6YXRpb25TcGVjaWZpY2F0aW9uOiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIGdhdGV3YXk6IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRQYXlQYWdlSWQnPzogc3RyaW5nO1xuICAgICAgJ3ZhbnRpdjptZXJjaGFudE9yZGVySWQnPzogc3RyaW5nO1xuICAgICAgJ3ZhbnRpdjptZXJjaGFudFRyYW5zYWN0aW9uSWQnPzogc3RyaW5nO1xuICAgICAgJ3ZhbnRpdjptZXJjaGFudFJlcG9ydEdyb3VwJz86IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElzUmVhZHlUb1BheVJlcXVlc3Qge1xuICBhcGlWZXJzaW9uOiBBcGlWZXJzaW9uO1xuICBhcGlWZXJzaW9uTWlub3I6IEFwaVZlcnNpb25NaW5vcjtcbiAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBBbGxvd2VkUGF5bWVudE1ldGhvZFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0IHtcbiAgYXBpVmVyc2lvbjogQXBpVmVyc2lvbjtcbiAgYXBpVmVyc2lvbk1pbm9yOiBBcGlWZXJzaW9uTWlub3I7XG4gIG1lcmNoYW50SW5mbzoge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgfTtcbiAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBBbGxvd2VkUGF5bWVudE1ldGhvZFtdO1xuICB0cmFuc2FjdGlvbkluZm86IFRyYW5zYWN0aW9uSW5mbztcbiAgZW1haWxSZXF1aXJlZDogYm9vbGVhbjtcbiAgc2hpcHBpbmdBZGRyZXNzUmVxdWlyZWQ6IGJvb2xlYW47XG4gIGNhbGxiYWNrSW50ZW50czogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQge1xuICB0cmFuc2FjdGlvblN0YXRlOiAnU1VDQ0VTUycgfCAnRVJST1InO1xuICBlcnJvcj86IHtcbiAgICByZWFzb246IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgaW50ZW50OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudERhdGEge1xuICBhcGlWZXJzaW9uOiBudW1iZXI7XG4gIGFwaVZlcnNpb25NaW5vcjogbnVtYmVyO1xuICBwYXltZW50TWV0aG9kRGF0YToge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGluZm86IHtcbiAgICAgIGNhcmREZXRhaWxzOiBzdHJpbmc7XG4gICAgICBhc3N1cmFuY2VEZXRhaWxzOiB7XG4gICAgICAgIGFjY291bnRWZXJpZmllZDogYm9vbGVhbjtcbiAgICAgICAgY2FyZEhvbGRlckF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gICAgICB9O1xuICAgICAgY2FyZE5ldHdvcms6IHN0cmluZztcbiAgICAgIGJpbGxpbmdBZGRyZXNzPzogQWRkcmVzcztcbiAgICB9O1xuICAgIHRva2VuaXphdGlvbkRhdGE6IHtcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIHRva2VuPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGVtYWlsPzogc3RyaW5nO1xuICBzaGlwcGluZ0FkZHJlc3M/OiBBZGRyZXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhUmVxdWVzdFVwZGF0ZSB7XG4gIG5ld1RyYW5zYWN0aW9uSW5mbz86IHtcbiAgICBkaXNwbGF5SXRlbXM/OiBBcnJheTx7XG4gICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgcHJpY2U6IHN0cmluZztcbiAgICB9PjtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICBjb3VudHJ5Q29kZT86IHN0cmluZztcbiAgICB0cmFuc2FjdGlvbklkPzogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2VTdGF0dXM6IHN0cmluZztcbiAgICB0b3RhbFByaWNlOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZUxhYmVsPzogc3RyaW5nO1xuICAgIGNoZWNrb3V0T3B0aW9uPzogc3RyaW5nO1xuICB9O1xuICBuZXdTaGlwcGluZ09wdGlvblBhcmFtZXRlcnM/OiB7XG4gICAgZGVmYXVsdFNlbGVjdGVkT3B0aW9uSWQ6IHN0cmluZztcbiAgICBzaGlwcGluZ09wdGlvbnM/OiBBcnJheTx7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIH0+O1xuICB9O1xuICBuZXdPZmZlckluZm8/OiB7XG4gICAgb2ZmZXJzOiBBcnJheTx7XG4gICAgICByZWRlbXB0aW9uQ29kZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB9PjtcbiAgfTtcbiAgZXJyb3I/OiB7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGludGVudDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZUluaXREYXRhIHtcbiAgaXNSZWFkeVRvUGF5UmVxdWVzdDogSXNSZWFkeVRvUGF5UmVxdWVzdDtcbiAgcGF5bWVudERhdGFSZXF1ZXN0OiBHb29nbGVQYXlQYXltZW50UmVxdWVzdDtcbiAgYW1leENhcmROb3RpZmljYXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJtZWRpYXRlUGF5bWVudERhdGEge1xuICBjYWxsYmFja1RyaWdnZXI/OiAnSU5JVElBTElaRScgfCAnU0hJUFBJTkdfQUREUkVTUycgfCAnU0hJUFBJTkdfT1BUSU9OJztcbiAgc2hpcHBpbmdBZGRyZXNzPzoge1xuICAgIGFkbWluaXN0cmF0aXZlQXJlYTogc3RyaW5nO1xuICAgIGNvdW50cnlDb2RlOiBzdHJpbmc7XG4gICAgbG9jYWxpdHk6IHN0cmluZztcbiAgICBwb3N0YWxDb2RlOiBzdHJpbmc7XG4gIH07XG4gIHNoaXBwaW5nT3B0aW9uRGF0YT86IHtcbiAgICBpZDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyID0gKFxuICBpbnRlcm1lZGlhdGVQYXltZW50RGF0YTogSW50ZXJtZWRpYXRlUGF5bWVudERhdGFcbikgPT4gUHJvbWlzZTxQYXltZW50RGF0YVJlcXVlc3RVcGRhdGU+O1xuXG5leHBvcnQgdHlwZSBQYXltZW50QXV0aG9yaXplZEhhbmRsZXIgPSAoXG4gIHBheW1lbnREYXRhOiBQYXltZW50RGF0YVxuKSA9PiBQcm9taXNlPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PjtcblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0RGF0YSB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHBheW1lbnREYXRhQ2FsbGJhY2tzPzoge1xuICAgIG9uUGF5bWVudERhdGFDaGFuZ2VkOiBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyO1xuICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IFBheW1lbnRBdXRob3JpemVkSGFuZGxlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0IHtcbiAgbmV3IChvcHRpb25zOiBHb29nbGVQYXlDbGllbnRJbml0RGF0YSk6IEdvb2dsZVBheUNsaWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3Qge1xuICB0cmFuc2FjdGlvbkluZm86IHtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhUmVzcG9uc2Uge1xuICBwYXltZW50TWV0aG9kRGF0YToge1xuICAgIHRva2VuaXphdGlvbkRhdGE6IHtcbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdXR0b25PcHRpb25zIHtcbiAgb25DbGljaygpOiB2b2lkO1xuICBhbGxvd2VkUGF5bWVudE1ldGhvZHM6IEFsbG93ZWRQYXltZW50TWV0aG9kW107XG4gIGJ1dHRvbkNvbG9yPzogJ2RlZmF1bHQnIHwgJ2JsYWNrJyB8ICd3aGl0ZSc7XG4gIGJ1dHRvblR5cGU/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvZ29vZ2xlLXBheS9nb29nbGUtcGF5LWxpYnJhcnkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIEFwaVZlcnNpb24gPSBudW1iZXI7XG50eXBlIEFwaVZlcnNpb25NaW5vciA9IG51bWJlcjtcblxuaW50ZXJmYWNlIEFkZHJlc3Mge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFkZHJlc3MxOiBzdHJpbmc7XG4gIGFkZHJlc3MyOiBzdHJpbmc7XG4gIGFkZHJlc3MzOiBzdHJpbmc7XG4gIGxvY2FsaXR5OiBzdHJpbmc7XG4gIGFkbWluaXN0cmF0aXZlQXJlYTogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwb3N0YWxDb2RlOiBzdHJpbmc7XG4gIHNvcnRpbmdDb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlJdGVtcyA9IEFycmF5PHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBwcmljZTogc3RyaW5nO1xufT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25JbmZvIHtcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xuICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gIHRvdGFsUHJpY2U/OiBudW1iZXIgfCBzdHJpbmc7XG4gIGNvdW50cnlDb2RlPzogc3RyaW5nO1xuICB0b3RhbFByaWNlTGFiZWw/OiBzdHJpbmc7XG4gIGRpc3BsYXlJdGVtcz86IERpc3BsYXlJdGVtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxvd2VkUGF5bWVudE1ldGhvZCB7XG4gIHR5cGU6IHN0cmluZztcbiAgcGFyYW1ldGVyczoge1xuICAgIGFsbG93ZWRBdXRoTWV0aG9kczogc3RyaW5nW107XG4gICAgYWxsb3dlZENhcmROZXR3b3Jrczogc3RyaW5nW107XG4gICAgYWxsb3dQcmVwYWlkQ2FyZHM6IGJvb2xlYW47XG4gICAgYmlsbGluZ0FkZHJlc3NSZXF1aXJlZDogYm9vbGVhbjtcbiAgICBiaWxsaW5nQWRkcmVzc1BhcmFtZXRlcnM6IHtcbiAgICAgIGZvcm1hdDogc3RyaW5nO1xuICAgICAgcGhvbmVOdW1iZXJSZXF1aXJlZDogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICB0b2tlbml6YXRpb25TcGVjaWZpY2F0aW9uOiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIGdhdGV3YXk6IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRQYXlQYWdlSWQnPzogc3RyaW5nO1xuICAgICAgJ3ZhbnRpdjptZXJjaGFudE9yZGVySWQnPzogc3RyaW5nO1xuICAgICAgJ3ZhbnRpdjptZXJjaGFudFRyYW5zYWN0aW9uSWQnPzogc3RyaW5nO1xuICAgICAgJ3ZhbnRpdjptZXJjaGFudFJlcG9ydEdyb3VwJz86IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElzUmVhZHlUb1BheVJlcXVlc3Qge1xuICBhcGlWZXJzaW9uOiBBcGlWZXJzaW9uO1xuICBhcGlWZXJzaW9uTWlub3I6IEFwaVZlcnNpb25NaW5vcjtcbiAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBBbGxvd2VkUGF5bWVudE1ldGhvZFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0IHtcbiAgYXBpVmVyc2lvbjogQXBpVmVyc2lvbjtcbiAgYXBpVmVyc2lvbk1pbm9yOiBBcGlWZXJzaW9uTWlub3I7XG4gIG1lcmNoYW50SW5mbzoge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgfTtcbiAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBBbGxvd2VkUGF5bWVudE1ldGhvZFtdO1xuICB0cmFuc2FjdGlvbkluZm86IFRyYW5zYWN0aW9uSW5mbztcbiAgZW1haWxSZXF1aXJlZDogYm9vbGVhbjtcbiAgc2hpcHBpbmdBZGRyZXNzUmVxdWlyZWQ6IGJvb2xlYW47XG4gIGNhbGxiYWNrSW50ZW50czogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQge1xuICB0cmFuc2FjdGlvblN0YXRlOiAnU1VDQ0VTUycgfCAnRVJST1InO1xuICBlcnJvcj86IHtcbiAgICByZWFzb246IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgaW50ZW50OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudERhdGEge1xuICBhcGlWZXJzaW9uOiBudW1iZXI7XG4gIGFwaVZlcnNpb25NaW5vcjogbnVtYmVyO1xuICBwYXltZW50TWV0aG9kRGF0YToge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGluZm86IHtcbiAgICAgIGNhcmREZXRhaWxzOiBzdHJpbmc7XG4gICAgICBhc3N1cmFuY2VEZXRhaWxzOiB7XG4gICAgICAgIGFjY291bnRWZXJpZmllZDogYm9vbGVhbjtcbiAgICAgICAgY2FyZEhvbGRlckF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gICAgICB9O1xuICAgICAgY2FyZE5ldHdvcms6IHN0cmluZztcbiAgICAgIGJpbGxpbmdBZGRyZXNzPzogQWRkcmVzcztcbiAgICB9O1xuICAgIHRva2VuaXphdGlvbkRhdGE6IHtcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIHRva2VuPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGVtYWlsPzogc3RyaW5nO1xuICBzaGlwcGluZ0FkZHJlc3M/OiBBZGRyZXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhUmVxdWVzdFVwZGF0ZSB7XG4gIG5ld1RyYW5zYWN0aW9uSW5mbz86IHtcbiAgICBkaXNwbGF5SXRlbXM/OiBBcnJheTx7XG4gICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgcHJpY2U6IHN0cmluZztcbiAgICB9PjtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICBjb3VudHJ5Q29kZT86IHN0cmluZztcbiAgICB0cmFuc2FjdGlvbklkPzogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2VTdGF0dXM6IHN0cmluZztcbiAgICB0b3RhbFByaWNlOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZUxhYmVsPzogc3RyaW5nO1xuICAgIGNoZWNrb3V0T3B0aW9uPzogc3RyaW5nO1xuICB9O1xuICBuZXdTaGlwcGluZ09wdGlvblBhcmFtZXRlcnM/OiB7XG4gICAgZGVmYXVsdFNlbGVjdGVkT3B0aW9uSWQ6IHN0cmluZztcbiAgICBzaGlwcGluZ09wdGlvbnM/OiBBcnJheTx7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIH0+O1xuICB9O1xuICBuZXdPZmZlckluZm8/OiB7XG4gICAgb2ZmZXJzOiBBcnJheTx7XG4gICAgICByZWRlbXB0aW9uQ29kZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB9PjtcbiAgfTtcbiAgZXJyb3I/OiB7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGludGVudDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZUluaXREYXRhIHtcbiAgaXNSZWFkeVRvUGF5UmVxdWVzdDogSXNSZWFkeVRvUGF5UmVxdWVzdDtcbiAgcGF5bWVudERhdGFSZXF1ZXN0OiBHb29nbGVQYXlQYXltZW50UmVxdWVzdDtcbiAgYW1leENhcmROb3RpZmljYXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJtZWRpYXRlUGF5bWVudERhdGEge1xuICBjYWxsYmFja1RyaWdnZXI/OiAnSU5JVElBTElaRScgfCAnU0hJUFBJTkdfQUREUkVTUycgfCAnU0hJUFBJTkdfT1BUSU9OJztcbiAgc2hpcHBpbmdBZGRyZXNzPzoge1xuICAgIGFkbWluaXN0cmF0aXZlQXJlYTogc3RyaW5nO1xuICAgIGNvdW50cnlDb2RlOiBzdHJpbmc7XG4gICAgbG9jYWxpdHk6IHN0cmluZztcbiAgICBwb3N0YWxDb2RlOiBzdHJpbmc7XG4gIH07XG4gIHNoaXBwaW5nT3B0aW9uRGF0YT86IHtcbiAgICBpZDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyID0gKFxuICBpbnRlcm1lZGlhdGVQYXltZW50RGF0YTogSW50ZXJtZWRpYXRlUGF5bWVudERhdGFcbikgPT4gUHJvbWlzZTxQYXltZW50RGF0YVJlcXVlc3RVcGRhdGU+O1xuXG5leHBvcnQgdHlwZSBQYXltZW50QXV0aG9yaXplZEhhbmRsZXIgPSAoXG4gIHBheW1lbnREYXRhOiBQYXltZW50RGF0YVxuKSA9PiBQcm9taXNlPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PjtcblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0RGF0YSB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHBheW1lbnREYXRhQ2FsbGJhY2tzPzoge1xuICAgIG9uUGF5bWVudERhdGFDaGFuZ2VkOiBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyO1xuICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IFBheW1lbnRBdXRob3JpemVkSGFuZGxlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0IHtcbiAgbmV3IChvcHRpb25zOiBHb29nbGVQYXlDbGllbnRJbml0RGF0YSk6IEdvb2dsZVBheUNsaWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3Qge1xuICB0cmFuc2FjdGlvbkluZm86IHtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhUmVzcG9uc2Uge1xuICBwYXltZW50TWV0aG9kRGF0YToge1xuICAgIHRva2VuaXphdGlvbkRhdGE6IHtcbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdXR0b25PcHRpb25zIHtcbiAgb25DbGljaygpOiB2b2lkO1xuICBhbGxvd2VkUGF5bWVudE1ldGhvZHM6IEFsbG93ZWRQYXltZW50TWV0aG9kW107XG4gIGJ1dHRvbkNvbG9yPzogJ2RlZmF1bHQnIHwgJ2JsYWNrJyB8ICd3aGl0ZSc7XG4gIGJ1dHRvblR5cGU/OiAncGxhaW4nIHwgJ2J1eSc7XG4gIGJ1dHRvblNpemVNb2RlPzogJ3N0YXRpYycgfCAnZmlsbCc7XG4gIGJ1dHRvbkxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlMaWJyYXJ5IHtcbiAgcGF5bWVudHM6IHtcbiAgICBhcGk6IHtcbiAgICAgIFBheW1lbnRzQ2xpZW50OiBHb29nbGVQYXlDbGllbnRJbml0O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEdvb2dsZVBheUNsaWVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiB7IGVudmlyb25tZW50OiBzdHJpbmcgfSk7XG5cbiAgcHVibGljIGlzUmVhZHlUb1BheShcbiAgICBpc1JlYWR5VG9QYXlSZXF1ZXN0OiBJc1JlYWR5VG9QYXlSZXF1ZXN0XG4gICk6IFByb21pc2U8eyByZXN1bHQ6IGJvb2xlYW4gfT47XG5cbiAgcHVibGljIGNyZWF0ZUJ1dHRvbihvcHRpb25zOiBCdXR0b25PcHRpb25zKTogSFRNTEJ1dHRvbkVsZW1lbnQ7XG5cbiAgcHVibGljIGxvYWRQYXltZW50RGF0YShcbiAgICBwYXltZW50RGF0YVJlcXVlc3Q6IEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0XG4gICk6IFByb21pc2U8UGF5bWVudERhdGFSZXNwb25zZT47XG5cbiAgcHVibGljIHByZWZldGNoUGF5bWVudERhdGEocGF5bWVudERhdGFSZXF1ZXN0OiBHb29nbGVQYXlQYXltZW50UmVxdWVzdCk6IHZvaWQ7XG59XG4iXX0=
|