@xsolla/payment-client-core 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay-cart/apple-pay-cart.service.mjs +17 -9
  2. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +20 -10
  3. package/esm2022/lib/core/sdk-payment-systems/apple-pay/external-window-communication/external-window-communication.service.mjs +19 -8
  4. package/esm2022/lib/core/sdk-payment-systems/apple-pay/session-handlers/braintree.handler.mjs +40 -15
  5. package/esm2022/lib/core/sdk-payment-systems/apple-pay/session-handlers/checkout.handler.mjs +32 -13
  6. package/esm2022/lib/core/sdk-payment-systems/apple-pay/session-handlers/session-handler.abstract.mjs +8 -1
  7. package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +14 -8
  8. package/esm2022/lib/core/sdk-payment-systems/google-pay/payment/google-pay-checkout-payment.service.mjs +21 -9
  9. package/esm2022/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +2 -1
  10. package/esm2022/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +1 -1
  11. package/esm2022/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +1 -1
  12. package/esm2022/lib/version.mjs +2 -2
  13. package/fesm2022/xsolla-payment-client-core.mjs +154 -55
  14. package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
  15. package/lib/core/sdk-payment-systems/apple-pay/apple-pay-cart/apple-pay-cart.service.d.ts +4 -3
  16. package/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.d.ts +4 -3
  17. package/lib/core/sdk-payment-systems/apple-pay/external-window-communication/external-window-communication.service.d.ts +4 -3
  18. package/lib/core/sdk-payment-systems/apple-pay/session-handlers/braintree.handler.d.ts +1 -3
  19. package/lib/core/sdk-payment-systems/apple-pay/session-handlers/checkout.handler.d.ts +1 -3
  20. package/lib/core/sdk-payment-systems/apple-pay/session-handlers/session-handler.abstract.d.ts +4 -0
  21. package/lib/core/sdk-payment-systems/google-pay/google-pay.service.d.ts +4 -3
  22. package/lib/core/sdk-payment-systems/google-pay/payment/google-pay-checkout-payment.service.d.ts +5 -3
  23. package/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.d.ts +1 -0
  24. package/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.d.ts +12 -0
  25. package/lib/version.d.ts +1 -1
  26. package/package.json +1 -1
@@ -7,17 +7,16 @@ import { ApplePaySessionHandlerAbstract } from './session-handler.abstract';
7
7
  import { take } from 'rxjs';
8
8
  import { TaggedError } from '../../../exceptions-handling/errors/tagged-error.class';
9
9
  import { UserBehaviourEventName } from '../../../user-behaviour-analytics/user-behaviour-event-name.enum';
10
+ import { userBehaviourEventTypes } from '../../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "../../../exceptions-handling/logger/logger.service";
12
13
  import * as i2 from "../apple-pay-cart/apple-pay-cart.service";
13
- import * as i3 from "../../../user-behaviour-analytics/user-behaviour-analytics.service";
14
14
  export class BraintreeHandler extends ApplePaySessionHandlerAbstract {
15
- constructor(window, loggerService, applePayCartService, userBehaviourAnalyticsService) {
15
+ constructor(window, loggerService, applePayCartService) {
16
16
  super();
17
17
  this.window = window;
18
18
  this.loggerService = loggerService;
19
19
  this.applePayCartService = applePayCartService;
20
- this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
21
20
  this.paymentClient = null;
22
21
  }
23
22
  setClient(client) {
@@ -47,18 +46,30 @@ export class BraintreeHandler extends ApplePaySessionHandlerAbstract {
47
46
  if (!session)
48
47
  return;
49
48
  const { isApplePayInstantFlowEnabled, topLevelDomain } = additionalParams;
50
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreeStartSession, 'manual');
49
+ this.emitAnalyticsEvent({
50
+ eventName: UserBehaviourEventName.applePayBraintreeStartSession,
51
+ eventType: userBehaviourEventTypes.manual,
52
+ });
51
53
  session.onshippingcontactselected = (event) => {
52
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreeSelectShipping, 'manual');
54
+ this.emitAnalyticsEvent({
55
+ eventName: UserBehaviourEventName.applePayBraintreeSelectShipping,
56
+ eventType: userBehaviourEventTypes.manual,
57
+ });
53
58
  this.applePayCartService.cartSuccessfulRecalculated$
54
59
  .pipe(take(1))
55
60
  .subscribe((updatedPrice) => {
56
61
  const contactUpdate = this.applePayCartService.buildShippingContactUpdate(params, updatedPrice);
57
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreeCartSuccessfulRecalculated, 'manual');
62
+ this.emitAnalyticsEvent({
63
+ eventName: UserBehaviourEventName.applePayBraintreeCartSuccessfulRecalculated,
64
+ eventType: userBehaviourEventTypes.manual,
65
+ });
58
66
  session.completeShippingContactSelection(contactUpdate);
59
67
  });
60
68
  this.applePayCartService.cartErrorRecalculated$.subscribe((error) => {
61
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreeCartErrorRecalculated, 'manual');
69
+ this.emitAnalyticsEvent({
70
+ eventName: UserBehaviourEventName.applePayBraintreeCartErrorRecalculated,
71
+ eventType: userBehaviourEventTypes.manual,
72
+ });
62
73
  session.completeShippingContactSelection({
63
74
  errors: [error],
64
75
  newTotal: {
@@ -71,7 +82,9 @@ export class BraintreeHandler extends ApplePaySessionHandlerAbstract {
71
82
  this.applePayCartService.recalculateCartTaxes(event.shippingContact);
72
83
  };
73
84
  session.onvalidatemerchant = (event) => {
74
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreeValidateMerchant, 'manual', {
85
+ this.emitAnalyticsEvent({
86
+ eventName: UserBehaviourEventName.applePayBraintreeValidateMerchant,
87
+ eventType: userBehaviourEventTypes.manual,
75
88
  value: event.validationURL,
76
89
  extraValue: params.totalLabel,
77
90
  });
@@ -89,14 +102,20 @@ export class BraintreeHandler extends ApplePaySessionHandlerAbstract {
89
102
  session.completeMerchantValidation(merchantSession);
90
103
  })
91
104
  .catch((error) => {
92
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreeValidateMerchantError, 'manual');
105
+ this.emitAnalyticsEvent({
106
+ eventName: UserBehaviourEventName.applePayBraintreeValidateMerchantError,
107
+ eventType: userBehaviourEventTypes.manual,
108
+ });
93
109
  console.error(ApplePayErrors.merchantValidationError, error);
94
110
  session.abort();
95
111
  applePayFinallyCallback();
96
112
  });
97
113
  };
98
114
  session.onpaymentauthorized = (event) => {
99
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreePaymentAuthorized, 'manual');
115
+ this.emitAnalyticsEvent({
116
+ eventName: UserBehaviourEventName.applePayBraintreePaymentAuthorized,
117
+ eventType: userBehaviourEventTypes.manual,
118
+ });
100
119
  this.paymentClient
101
120
  ?.tokenize({ token: event.payment.token })
102
121
  .then((response) => {
@@ -109,21 +128,27 @@ export class BraintreeHandler extends ApplePaySessionHandlerAbstract {
109
128
  session.completePayment(this.window.ApplePaySession.STATUS_SUCCESS);
110
129
  })
111
130
  .catch((error) => {
112
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreePaymentTokenizationError, 'manual');
131
+ this.emitAnalyticsEvent({
132
+ eventName: UserBehaviourEventName.applePayBraintreePaymentTokenizationError,
133
+ eventType: userBehaviourEventTypes.manual,
134
+ });
113
135
  console.error('Apple Pay: Tokenization error', error);
114
136
  session.completePayment(this.window.ApplePaySession.STATUS_FAILURE);
115
137
  applePayFinallyCallback();
116
138
  });
117
139
  };
118
140
  session.oncancel = (event) => {
119
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayBraintreePaymentCancel, 'manual');
141
+ this.emitAnalyticsEvent({
142
+ eventName: UserBehaviourEventName.applePayBraintreePaymentCancel,
143
+ eventType: userBehaviourEventTypes.manual,
144
+ });
120
145
  console.error(ApplePayErrors.cancelled, event);
121
146
  this.emitError(ApplePayErrors.cancelled);
122
147
  applePayFinallyCallback();
123
148
  };
124
149
  session.begin();
125
150
  }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BraintreeHandler, deps: [{ token: windowToken }, { token: i1.LoggerService }, { token: i2.ApplePayCartService }, { token: i3.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BraintreeHandler, deps: [{ token: windowToken }, { token: i1.LoggerService }, { token: i2.ApplePayCartService }], target: i0.ɵɵFactoryTarget.Injectable }); }
127
152
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BraintreeHandler }); }
128
153
  }
129
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BraintreeHandler, decorators: [{
@@ -131,5 +156,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
131
156
  }], ctorParameters: () => [{ type: undefined, decorators: [{
132
157
  type: Inject,
133
158
  args: [windowToken]
134
- }] }, { type: i1.LoggerService }, { type: i2.ApplePayCartService }, { type: i3.UserBehaviourAnalyticsService }] });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhaW50cmVlLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9hcHBsZS1wYXkvc2Vzc2lvbi1oYW5kbGVycy9icmFpbnRyZWUuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7O0FBRzFHLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSw4QkFBOEI7SUFHbEUsWUFDd0MsTUFBc0IsRUFDM0MsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLDZCQUE0RDtRQUU3RSxLQUFLLEVBQUUsQ0FBQztRQUw4QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7UUFOdkUsa0JBQWEsR0FBb0IsSUFBSSxDQUFDO0lBUzlDLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBZ0I7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVNLFlBQVksQ0FDakIsTUFBc0IsRUFDdEIsZ0JBQW9DLEVBQ3BDLHVCQUFtQztRQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRTtnQkFDdkQsU0FBUyxDQUFDLFFBQVE7YUFDbkIsQ0FBQyxDQUNILENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpFLElBQUksT0FBTyxHQUEyQixJQUFJLENBQUM7UUFFM0MsSUFBSSxDQUFDO1lBQ0gsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQ3ZDLGVBQWUsRUFDZixlQUFlLENBQ2hCLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFjLEVBQUUsQ0FBQztZQUN4QixNQUFNLFlBQVksR0FDaEIsT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDdkIsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztZQUUzQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUN0QixJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDcEQsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsTUFBTSxFQUFFLDRCQUE0QixFQUFFLGNBQWMsRUFBRSxHQUFHLGdCQUFnQixDQUFDO1FBRTFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ3JDLHNCQUFzQixDQUFDLDZCQUE2QixFQUNwRCxRQUFRLENBQ1QsQ0FBQztRQUVGLE9BQU8sQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ3JDLHNCQUFzQixDQUFDLCtCQUErQixFQUN0RCxRQUFRLENBQ1QsQ0FBQztZQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkI7aUJBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2IsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sYUFBYSxHQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQ2pELE1BQU0sRUFDTixZQUFZLENBQ2IsQ0FBQztnQkFFSixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUNyQyxzQkFBc0IsQ0FBQywyQ0FBMkMsRUFDbEUsUUFBUSxDQUNULENBQUM7Z0JBRUYsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQyxDQUFDO1lBRUwsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FDdkQsQ0FBQyxLQUFvQixFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ3JDLHNCQUFzQixDQUFDLHNDQUFzQyxFQUM3RCxRQUFRLENBQ1QsQ0FBQztnQkFFRixPQUFPLENBQUMsZ0NBQWdDLENBQUM7b0JBQ3ZDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztvQkFDZixRQUFRLEVBQUU7d0JBQ1IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVO3dCQUN4QixNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUU7cUJBQ3ZDO29CQUNELE1BQU0sRUFBRSxnQkFBZ0I7aUJBQ3pCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FDRixDQUFDO1lBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUNyQyxzQkFBc0IsQ0FBQyxpQ0FBaUMsRUFDeEQsUUFBUSxFQUNSO2dCQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDMUIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2FBQzlCLENBQ0YsQ0FBQztZQUVGLE1BQU0sZ0JBQWdCLEdBQUc7Z0JBQ3ZCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDbEMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxVQUFVO2FBQy9CLENBQUM7WUFFRixJQUFJLDRCQUE0QixJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuRCxvQ0FBb0M7Z0JBQ3BDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUM7WUFDL0MsQ0FBQztZQUVELElBQUksQ0FBQyxhQUFhO2dCQUNoQixFQUFFLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDO2lCQUNwQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUNyQyxzQkFBc0IsQ0FBQyxzQ0FBc0MsRUFDN0QsUUFBUSxDQUNULENBQUM7Z0JBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzdELE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsdUJBQXVCLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ3JDLHNCQUFzQixDQUFDLGtDQUFrQyxFQUN6RCxRQUFRLENBQ1QsQ0FBQztZQUVGLElBQUksQ0FBQyxhQUFhO2dCQUNoQixFQUFFLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN6QyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDYixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUM1QixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsWUFBWSxJQUFJLElBQUk7b0JBQ3pELFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxVQUFVLElBQUksSUFBSTtvQkFDNUQsYUFBYSxFQUNYLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFlBQVksSUFBSSxJQUFJO2lCQUN0RCxDQUFDLENBQ0gsQ0FBQztnQkFDRixPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUNyQyxzQkFBc0IsQ0FBQyx5Q0FBeUMsRUFDaEUsUUFBUSxDQUNULENBQUM7Z0JBRUYsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDcEUsdUJBQXVCLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUNyQyxzQkFBc0IsQ0FBQyw4QkFBOEIsRUFDckQsUUFBUSxDQUNULENBQUM7WUFFRixPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekMsdUJBQXVCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQzsrR0ExTFUsZ0JBQWdCLGtCQUlqQixXQUFXO21IQUpWLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBsZVBheSB9IGZyb20gJ2JyYWludHJlZS13ZWInO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IEFwcGxlUGF5UGFyYW1zIH0gZnJvbSAnLi4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYXBwbGVQYXlWZXJzaW9uIH0gZnJvbSAnLi4vYXBwbGUtcGF5LmNvbnN0JztcbmltcG9ydCB7IEFwcGxlUGF5RXJyb3JzIH0gZnJvbSAnLi4vYXBwbGUtcGF5LmVycm9ycy5lbnVtJztcbmltcG9ydCB7IEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXJBYnN0cmFjdCB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVyLmFic3RyYWN0JztcbmltcG9ydCB7IFN0YXJ0U2Vzc2lvblBhcmFtcyB9IGZyb20gJy4vc3RhcnQtc2Vzc2lvbi1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5Q2FydFNlcnZpY2UgfSBmcm9tICcuLi9hcHBsZS1wYXktY2FydC9hcHBsZS1wYXktY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcGxlUGF5RXJyb3IsIEFwcGxlUGF5U2Vzc2lvbiB9IGZyb20gJy4vYXBwbGUtcGF5LXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3RhZ2dlZC1lcnJvci5jbGFzcyc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnROYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50LW5hbWUuZW51bSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCcmFpbnRyZWVIYW5kbGVyIGV4dGVuZHMgQXBwbGVQYXlTZXNzaW9uSGFuZGxlckFic3RyYWN0IHtcbiAgcHJpdmF0ZSBwYXltZW50Q2xpZW50OiBBcHBsZVBheSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlDYXJ0U2VydmljZTogQXBwbGVQYXlDYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDbGllbnQoY2xpZW50OiBBcHBsZVBheSk6IHZvaWQge1xuICAgIHRoaXMucGF5bWVudENsaWVudCA9IGNsaWVudDtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFNlc3Npb24oXG4gICAgcGFyYW1zOiBBcHBsZVBheVBhcmFtcyxcbiAgICBhZGRpdGlvbmFsUGFyYW1zOiBTdGFydFNlc3Npb25QYXJhbXMsXG4gICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2s6ICgpID0+IHZvaWQsXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYXltZW50Q2xpZW50KSB7XG4gICAgICBjb25zb2xlLmVycm9yKEFwcGxlUGF5RXJyb3JzLmJyYWludHJlZUluaXRpYWxpemVFcnJvcik7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihBcHBsZVBheUVycm9ycy5icmFpbnRyZWVJbml0aWFsaXplRXJyb3IsIFtcbiAgICAgICAgICBFcnJvclRhZ3MuQVBQTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5idWlsZFBheW1lbnRSZXF1ZXN0KHBhcmFtcyk7XG4gICAgY29uc3QgYXBwbGVQYXlSZXF1ZXN0ID0gdGhpcy5wYXltZW50Q2xpZW50LmNyZWF0ZVBheW1lbnRSZXF1ZXN0KHJlcXVlc3QpO1xuXG4gICAgbGV0IHNlc3Npb246IEFwcGxlUGF5U2Vzc2lvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHNlc3Npb24gPSBuZXcgdGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uKFxuICAgICAgICBhcHBsZVBheVZlcnNpb24sXG4gICAgICAgIGFwcGxlUGF5UmVxdWVzdCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICAgIHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGVycm9yXG4gICAgICAgICAgOiBBcHBsZVBheUVycm9ycy5jcmVhdGVQYXlTZXNzaW9uRXJyb3I7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKGVycm9yTWVzc2FnZSwgW0Vycm9yVGFncy5BUFBMRVBBWV0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXNlc3Npb24pIHJldHVybjtcblxuICAgIGNvbnN0IHsgaXNBcHBsZVBheUluc3RhbnRGbG93RW5hYmxlZCwgdG9wTGV2ZWxEb21haW4gfSA9IGFkZGl0aW9uYWxQYXJhbXM7XG5cbiAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5QnJhaW50cmVlU3RhcnRTZXNzaW9uLFxuICAgICAgJ21hbnVhbCcsXG4gICAgKTtcblxuICAgIHNlc3Npb24ub25zaGlwcGluZ2NvbnRhY3RzZWxlY3RlZCA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5QnJhaW50cmVlU2VsZWN0U2hpcHBpbmcsXG4gICAgICAgICdtYW51YWwnLFxuICAgICAgKTtcblxuICAgICAgdGhpcy5hcHBsZVBheUNhcnRTZXJ2aWNlLmNhcnRTdWNjZXNzZnVsUmVjYWxjdWxhdGVkJFxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCh1cGRhdGVkUHJpY2UpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250YWN0VXBkYXRlID1cbiAgICAgICAgICAgIHRoaXMuYXBwbGVQYXlDYXJ0U2VydmljZS5idWlsZFNoaXBwaW5nQ29udGFjdFVwZGF0ZShcbiAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICB1cGRhdGVkUHJpY2UsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUJyYWludHJlZUNhcnRTdWNjZXNzZnVsUmVjYWxjdWxhdGVkLFxuICAgICAgICAgICAgJ21hbnVhbCcsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHNlc3Npb24uY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29udGFjdFVwZGF0ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFwcGxlUGF5Q2FydFNlcnZpY2UuY2FydEVycm9yUmVjYWxjdWxhdGVkJC5zdWJzY3JpYmUoXG4gICAgICAgIChlcnJvcjogQXBwbGVQYXlFcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlCcmFpbnRyZWVDYXJ0RXJyb3JSZWNhbGN1bGF0ZWQsXG4gICAgICAgICAgICAnbWFudWFsJyxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgc2Vzc2lvbi5jb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih7XG4gICAgICAgICAgICBlcnJvcnM6IFtlcnJvcl0sXG4gICAgICAgICAgICBuZXdUb3RhbDoge1xuICAgICAgICAgICAgICBsYWJlbDogcGFyYW1zLnRvdGFsTGFiZWwsXG4gICAgICAgICAgICAgIGFtb3VudDogcGFyYW1zLnRvdGFsQW1vdW50Py50b1N0cmluZygpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXR1czogJ1NUQVRVU19GQUlMVVJFJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuYXBwbGVQYXlDYXJ0U2VydmljZS5yZWNhbGN1bGF0ZUNhcnRUYXhlcyhldmVudC5zaGlwcGluZ0NvbnRhY3QpO1xuICAgIH07XG5cbiAgICBzZXNzaW9uLm9udmFsaWRhdGVtZXJjaGFudCA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5QnJhaW50cmVlVmFsaWRhdGVNZXJjaGFudCxcbiAgICAgICAgJ21hbnVhbCcsXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogZXZlbnQudmFsaWRhdGlvblVSTCxcbiAgICAgICAgICBleHRyYVZhbHVlOiBwYXJhbXMudG90YWxMYWJlbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRpb25QYXJhbXMgPSB7XG4gICAgICAgIHZhbGlkYXRpb25VUkw6IGV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBwYXJhbXMudG90YWxMYWJlbCxcbiAgICAgIH07XG5cbiAgICAgIGlmIChpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkICYmIHRvcExldmVsRG9tYWluKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdW5rbm93biBwcm9wZXJ0eVxuICAgICAgICB2YWxpZGF0aW9uUGFyYW1zLmRvbWFpbk5hbWUgPSB0b3BMZXZlbERvbWFpbjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50XG4gICAgICAgID8ucGVyZm9ybVZhbGlkYXRpb24odmFsaWRhdGlvblBhcmFtcylcbiAgICAgICAgLnRoZW4oKG1lcmNoYW50U2Vzc2lvbikgPT4ge1xuICAgICAgICAgIHNlc3Npb24uY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24obWVyY2hhbnRTZXNzaW9uKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlCcmFpbnRyZWVWYWxpZGF0ZU1lcmNoYW50RXJyb3IsXG4gICAgICAgICAgICAnbWFudWFsJyxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoQXBwbGVQYXlFcnJvcnMubWVyY2hhbnRWYWxpZGF0aW9uRXJyb3IsIGVycm9yKTtcbiAgICAgICAgICBzZXNzaW9uLmFib3J0KCk7XG4gICAgICAgICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2soKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHNlc3Npb24ub25wYXltZW50YXV0aG9yaXplZCA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5QnJhaW50cmVlUGF5bWVudEF1dGhvcml6ZWQsXG4gICAgICAgICdtYW51YWwnLFxuICAgICAgKTtcblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50XG4gICAgICAgID8udG9rZW5pemUoeyB0b2tlbjogZXZlbnQucGF5bWVudC50b2tlbiB9KVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLnBheW1lbnQubmV4dChcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgdG9rZW46IHJlc3BvbnNlPy5ub25jZSA/PyAnJyxcbiAgICAgICAgICAgICAgZW1haWw6IGV2ZW50LnBheW1lbnQuYmlsbGluZ0NvbnRhY3Q/LmVtYWlsQWRkcmVzcyA/PyBudWxsLFxuICAgICAgICAgICAgICBwb3N0YWxDb2RlOiBldmVudC5wYXltZW50LmJpbGxpbmdDb250YWN0Py5wb3N0YWxDb2RlID8/IG51bGwsXG4gICAgICAgICAgICAgIHNoaXBwaW5nRW1haWw6XG4gICAgICAgICAgICAgICAgZXZlbnQucGF5bWVudC5zaGlwcGluZ0NvbnRhY3Q/LmVtYWlsQWRkcmVzcyA/PyBudWxsLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudCh0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24uU1RBVFVTX1NVQ0NFU1MpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUJyYWludHJlZVBheW1lbnRUb2tlbml6YXRpb25FcnJvcixcbiAgICAgICAgICAgICdtYW51YWwnLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdBcHBsZSBQYXk6IFRva2VuaXphdGlvbiBlcnJvcicsIGVycm9yKTtcbiAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudCh0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24uU1RBVFVTX0ZBSUxVUkUpO1xuICAgICAgICAgIGFwcGxlUGF5RmluYWxseUNhbGxiYWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBzZXNzaW9uLm9uY2FuY2VsID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlCcmFpbnRyZWVQYXltZW50Q2FuY2VsLFxuICAgICAgICAnbWFudWFsJyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoQXBwbGVQYXlFcnJvcnMuY2FuY2VsbGVkLCBldmVudCk7XG4gICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5jYW5jZWxsZWQpO1xuICAgICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2soKTtcbiAgICB9O1xuXG4gICAgc2Vzc2lvbi5iZWdpbigpO1xuICB9XG59XG4iXX0=
159
+ }] }, { type: i1.LoggerService }, { type: i2.ApplePayCartService }] });
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhaW50cmVlLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9hcHBsZS1wYXkvc2Vzc2lvbi1oYW5kbGVycy9icmFpbnRyZWUuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7Ozs7QUFHNUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLDhCQUE4QjtJQUdsRSxZQUN3QyxNQUFzQixFQUMzQyxhQUE0QixFQUM1QixtQkFBd0M7UUFFekQsS0FBSyxFQUFFLENBQUM7UUFKOEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUxuRCxrQkFBYSxHQUFvQixJQUFJLENBQUM7SUFROUMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFnQjtRQUMvQixJQUFJLENB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QWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGtCQUFrQixDQUFDO29CQUN0QixTQUFTLEVBQ1Asc0JBQXNCLENBQUMseUNBQXlDO29CQUNsRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDMUMsQ0FBQyxDQUFDO2dCQUVILE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RELE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3BFLHVCQUF1QixFQUFFLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUN0QixTQUFTLEVBQUUsc0JBQXNCLENBQUMsOEJBQThCO2dCQUNoRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUMxQyxDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekMsdUJBQXVCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQzsrR0EzTFUsZ0JBQWdCLGtCQUlqQixXQUFXO21IQUpWLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBsZVBheSB9IGZyb20gJ2JyYWludHJlZS13ZWInO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IEFwcGxlUGF5UGFyYW1zIH0gZnJvbSAnLi4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYXBwbGVQYXlWZXJzaW9uIH0gZnJvbSAnLi4vYXBwbGUtcGF5LmNvbnN0JztcbmltcG9ydCB7IEFwcGxlUGF5RXJyb3JzIH0gZnJvbSAnLi4vYXBwbGUtcGF5LmVycm9ycy5lbnVtJztcbmltcG9ydCB7IEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXJBYnN0cmFjdCB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVyLmFic3RyYWN0JztcbmltcG9ydCB7IFN0YXJ0U2Vzc2lvblBhcmFtcyB9IGZyb20gJy4vc3RhcnQtc2Vzc2lvbi1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5Q2FydFNlcnZpY2UgfSBmcm9tICcuLi9hcHBsZS1wYXktY2FydC9hcHBsZS1wYXktY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcGxlUGF5RXJyb3IsIEFwcGxlUGF5U2Vzc2lvbiB9IGZyb20gJy4vYXBwbGUtcGF5LXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3RhZ2dlZC1lcnJvci5jbGFzcyc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnROYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50LW5hbWUuZW51bSc7XG5pbXBvcnQgeyB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCcmFpbnRyZWVIYW5kbGVyIGV4dGVuZHMgQXBwbGVQYXlTZXNzaW9uSGFuZGxlckFic3RyYWN0IHtcbiAgcHJpdmF0ZSBwYXltZW50Q2xpZW50OiBBcHBsZVBheSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlDYXJ0U2VydmljZTogQXBwbGVQYXlDYXJ0U2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDbGllbnQoY2xpZW50OiBBcHBsZVBheSk6IHZvaWQge1xuICAgIHRoaXMucGF5bWVudENsaWVudCA9IGNsaWVudDtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFNlc3Npb24oXG4gICAgcGFyYW1zOiBBcHBsZVBheVBhcmFtcyxcbiAgICBhZGRpdGlvbmFsUGFyYW1zOiBTdGFydFNlc3Npb25QYXJhbXMsXG4gICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2s6ICgpID0+IHZvaWQsXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYXltZW50Q2xpZW50KSB7XG4gICAgICBjb25zb2xlLmVycm9yKEFwcGxlUGF5RXJyb3JzLmJyYWludHJlZUluaXRpYWxpemVFcnJvcik7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihBcHBsZVBheUVycm9ycy5icmFpbnRyZWVJbml0aWFsaXplRXJyb3IsIFtcbiAgICAgICAgICBFcnJvclRhZ3MuQVBQTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5idWlsZFBheW1lbnRSZXF1ZXN0KHBhcmFtcyk7XG4gICAgY29uc3QgYXBwbGVQYXlSZXF1ZXN0ID0gdGhpcy5wYXltZW50Q2xpZW50LmNyZWF0ZVBheW1lbnRSZXF1ZXN0KHJlcXVlc3QpO1xuXG4gICAgbGV0IHNlc3Npb246IEFwcGxlUGF5U2Vzc2lvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHNlc3Npb24gPSBuZXcgdGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uKFxuICAgICAgICBhcHBsZVBheVZlcnNpb24sXG4gICAgICAgIGFwcGxlUGF5UmVxdWVzdCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICAgIHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGVycm9yXG4gICAgICAgICAgOiBBcHBsZVBheUVycm9ycy5jcmVhdGVQYXlTZXNzaW9uRXJyb3I7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKGVycm9yTWVzc2FnZSwgW0Vycm9yVGFncy5BUFBMRVBBWV0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXNlc3Npb24pIHJldHVybjtcblxuICAgIGNvbnN0IHsgaXNBcHBsZVBheUluc3RhbnRGbG93RW5hYmxlZCwgdG9wTGV2ZWxEb21haW4gfSA9IGFkZGl0aW9uYWxQYXJhbXM7XG5cbiAgICB0aGlzLmVtaXRBbmFseXRpY3NFdmVudCh7XG4gICAgICBldmVudE5hbWU6IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlCcmFpbnRyZWVTdGFydFNlc3Npb24sXG4gICAgICBldmVudFR5cGU6IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICB9KTtcblxuICAgIHNlc3Npb24ub25zaGlwcGluZ2NvbnRhY3RzZWxlY3RlZCA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy5lbWl0QW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlCcmFpbnRyZWVTZWxlY3RTaGlwcGluZyxcbiAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5hcHBsZVBheUNhcnRTZXJ2aWNlLmNhcnRTdWNjZXNzZnVsUmVjYWxjdWxhdGVkJFxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCh1cGRhdGVkUHJpY2UpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250YWN0VXBkYXRlID1cbiAgICAgICAgICAgIHRoaXMuYXBwbGVQYXlDYXJ0U2VydmljZS5idWlsZFNoaXBwaW5nQ29udGFjdFVwZGF0ZShcbiAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICB1cGRhdGVkUHJpY2UsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5lbWl0QW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICAgICAgZXZlbnROYW1lOlxuICAgICAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5QnJhaW50cmVlQ2FydFN1Y2Nlc3NmdWxSZWNhbGN1bGF0ZWQsXG4gICAgICAgICAgICBldmVudFR5cGU6IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHNlc3Npb24uY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29udGFjdFVwZGF0ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFwcGxlUGF5Q2FydFNlcnZpY2UuY2FydEVycm9yUmVjYWxjdWxhdGVkJC5zdWJzY3JpYmUoXG4gICAgICAgIChlcnJvcjogQXBwbGVQYXlFcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuZW1pdEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTpcbiAgICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUJyYWludHJlZUNhcnRFcnJvclJlY2FsY3VsYXRlZCxcbiAgICAgICAgICAgIGV2ZW50VHlwZTogdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc2Vzc2lvbi5jb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih7XG4gICAgICAgICAgICBlcnJvcnM6IFtlcnJvcl0sXG4gICAgICAgICAgICBuZXdUb3RhbDoge1xuICAgICAgICAgICAgICBsYWJlbDogcGFyYW1zLnRvdGFsTGFiZWwsXG4gICAgICAgICAgICAgIGFtb3VudDogcGFyYW1zLnRvdGFsQW1vdW50Py50b1N0cmluZygpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXR1czogJ1NUQVRVU19GQUlMVVJFJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuYXBwbGVQYXlDYXJ0U2VydmljZS5yZWNhbGN1bGF0ZUNhcnRUYXhlcyhldmVudC5zaGlwcGluZ0NvbnRhY3QpO1xuICAgIH07XG5cbiAgICBzZXNzaW9uLm9udmFsaWRhdGVtZXJjaGFudCA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy5lbWl0QW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlCcmFpbnRyZWVWYWxpZGF0ZU1lcmNoYW50LFxuICAgICAgICBldmVudFR5cGU6IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgdmFsdWU6IGV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgIGV4dHJhVmFsdWU6IHBhcmFtcy50b3RhbExhYmVsLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRpb25QYXJhbXMgPSB7XG4gICAgICAgIHZhbGlkYXRpb25VUkw6IGV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBwYXJhbXMudG90YWxMYWJlbCxcbiAgICAgIH07XG5cbiAgICAgIGlmIChpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkICYmIHRvcExldmVsRG9tYWluKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdW5rbm93biBwcm9wZXJ0eVxuICAgICAgICB2YWxpZGF0aW9uUGFyYW1zLmRvbWFpbk5hbWUgPSB0b3BMZXZlbERvbWFpbjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50XG4gICAgICAgID8ucGVyZm9ybVZhbGlkYXRpb24odmFsaWRhdGlvblBhcmFtcylcbiAgICAgICAgLnRoZW4oKG1lcmNoYW50U2Vzc2lvbikgPT4ge1xuICAgICAgICAgIHNlc3Npb24uY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24obWVyY2hhbnRTZXNzaW9uKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuZW1pdEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTpcbiAgICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUJyYWludHJlZVZhbGlkYXRlTWVyY2hhbnRFcnJvcixcbiAgICAgICAgICAgIGV2ZW50VHlwZTogdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoQXBwbGVQYXlFcnJvcnMubWVyY2hhbnRWYWxpZGF0aW9uRXJyb3IsIGVycm9yKTtcbiAgICAgICAgICBzZXNzaW9uLmFib3J0KCk7XG4gICAgICAgICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2soKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHNlc3Npb24ub25wYXltZW50YXV0aG9yaXplZCA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy5lbWl0QW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlCcmFpbnRyZWVQYXltZW50QXV0aG9yaXplZCxcbiAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50XG4gICAgICAgID8udG9rZW5pemUoeyB0b2tlbjogZXZlbnQucGF5bWVudC50b2tlbiB9KVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLnBheW1lbnQubmV4dChcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgdG9rZW46IHJlc3BvbnNlPy5ub25jZSA/PyAnJyxcbiAgICAgICAgICAgICAgZW1haWw6IGV2ZW50LnBheW1lbnQuYmlsbGluZ0NvbnRhY3Q/LmVtYWlsQWRkcmVzcyA/PyBudWxsLFxuICAgICAgICAgICAgICBwb3N0YWxDb2RlOiBldmVudC5wYXltZW50LmJpbGxpbmdDb250YWN0Py5wb3N0YWxDb2RlID8/IG51bGwsXG4gICAgICAgICAgICAgIHNoaXBwaW5nRW1haWw6XG4gICAgICAgICAgICAgICAgZXZlbnQucGF5bWVudC5zaGlwcGluZ0NvbnRhY3Q/LmVtYWlsQWRkcmVzcyA/PyBudWxsLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudCh0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24uU1RBVFVTX1NVQ0NFU1MpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbWl0QW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICAgICAgZXZlbnROYW1lOlxuICAgICAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5QnJhaW50cmVlUGF5bWVudFRva2VuaXphdGlvbkVycm9yLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdBcHBsZSBQYXk6IFRva2VuaXphdGlvbiBlcnJvcicsIGVycm9yKTtcbiAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudCh0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24uU1RBVFVTX0ZBSUxVUkUpO1xuICAgICAgICAgIGFwcGxlUGF5RmluYWxseUNhbGxiYWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBzZXNzaW9uLm9uY2FuY2VsID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmVtaXRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUJyYWludHJlZVBheW1lbnRDYW5jZWwsXG4gICAgICAgIGV2ZW50VHlwZTogdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoQXBwbGVQYXlFcnJvcnMuY2FuY2VsbGVkLCBldmVudCk7XG4gICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5jYW5jZWxsZWQpO1xuICAgICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2soKTtcbiAgICB9O1xuXG4gICAgc2Vzc2lvbi5iZWdpbigpO1xuICB9XG59XG4iXX0=
@@ -6,21 +6,20 @@ import { ApplePayErrors } from '../apple-pay.errors.enum';
6
6
  import { ApplePaySessionHandlerAbstract } from './session-handler.abstract';
7
7
  import { take } from 'rxjs';
8
8
  import { UserBehaviourEventName } from '../../../user-behaviour-analytics/user-behaviour-event-name.enum';
9
+ import { userBehaviourEventTypes } from '../../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
9
10
  import { ErrorTags } from '../../../exceptions-handling/errors/elk-error-types.enum';
10
11
  import { TaggedError } from '../../../exceptions-handling/errors/tagged-error.class';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@angular/common/http";
13
14
  import * as i2 from "../../../exceptions-handling/logger/logger.service";
14
15
  import * as i3 from "../apple-pay-cart/apple-pay-cart.service";
15
- import * as i4 from "../../../user-behaviour-analytics/user-behaviour-analytics.service";
16
16
  export class CheckoutHandler extends ApplePaySessionHandlerAbstract {
17
- constructor(window, http, loggerService, applePayCartService, userBehaviourAnalyticsService) {
17
+ constructor(window, http, loggerService, applePayCartService) {
18
18
  super();
19
19
  this.window = window;
20
20
  this.http = http;
21
21
  this.loggerService = loggerService;
22
22
  this.applePayCartService = applePayCartService;
23
- this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
24
23
  }
25
24
  startSession(params, additionalParams, applePayFinallyCallback) {
26
25
  const request = this.buildPaymentRequest(params);
@@ -38,16 +37,25 @@ export class CheckoutHandler extends ApplePaySessionHandlerAbstract {
38
37
  if (!session)
39
38
  return;
40
39
  session.onshippingcontactselected = (event) => {
41
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayCheckoutSelectShipping, 'manual');
40
+ this.emitAnalyticsEvent({
41
+ eventName: UserBehaviourEventName.applePayCheckoutSelectShipping,
42
+ eventType: userBehaviourEventTypes.manual,
43
+ });
42
44
  this.applePayCartService.cartSuccessfulRecalculated$
43
45
  .pipe(take(1))
44
46
  .subscribe((updatedPrice) => {
45
47
  const contactUpdate = this.applePayCartService.buildShippingContactUpdate(params, updatedPrice);
46
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayCheckoutCartSuccessfulRecalculated, 'manual');
48
+ this.emitAnalyticsEvent({
49
+ eventName: UserBehaviourEventName.applePayCheckoutCartSuccessfulRecalculated,
50
+ eventType: userBehaviourEventTypes.manual,
51
+ });
47
52
  session.completeShippingContactSelection(contactUpdate);
48
53
  });
49
54
  this.applePayCartService.cartErrorRecalculated$.subscribe((error) => {
50
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayCheckoutCartErrorRecalculated, 'manual');
55
+ this.emitAnalyticsEvent({
56
+ eventName: UserBehaviourEventName.applePayCheckoutCartErrorRecalculated,
57
+ eventType: userBehaviourEventTypes.manual,
58
+ });
51
59
  session.completeShippingContactSelection({
52
60
  errors: [error],
53
61
  newTotal: {
@@ -60,7 +68,9 @@ export class CheckoutHandler extends ApplePaySessionHandlerAbstract {
60
68
  this.applePayCartService.recalculateCartTaxes(event.shippingContact);
61
69
  };
62
70
  session.onvalidatemerchant = (event) => {
63
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayCheckoutValidateMerchant, 'manual', {
71
+ this.emitAnalyticsEvent({
72
+ eventName: UserBehaviourEventName.applePayCheckoutValidateMerchant,
73
+ eventType: userBehaviourEventTypes.manual,
64
74
  value: event.validationURL,
65
75
  extraValue: params.totalLabel,
66
76
  });
@@ -83,7 +93,10 @@ export class CheckoutHandler extends ApplePaySessionHandlerAbstract {
83
93
  session.completeMerchantValidation(response.merchantSession);
84
94
  },
85
95
  error: (error) => {
86
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayCheckoutValidateMerchantError, 'manual');
96
+ this.emitAnalyticsEvent({
97
+ eventName: UserBehaviourEventName.applePayCheckoutValidateMerchantError,
98
+ eventType: userBehaviourEventTypes.manual,
99
+ });
87
100
  console.error(ApplePayErrors.merchantValidationError, error);
88
101
  session.abort();
89
102
  applePayFinallyCallback();
@@ -91,7 +104,10 @@ export class CheckoutHandler extends ApplePaySessionHandlerAbstract {
91
104
  });
92
105
  };
93
106
  session.onpaymentauthorized = (event) => {
94
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayCheckoutPaymentAuthorized, 'manual');
107
+ this.emitAnalyticsEvent({
108
+ eventName: UserBehaviourEventName.applePayCheckoutPaymentAuthorized,
109
+ eventType: userBehaviourEventTypes.manual,
110
+ });
95
111
  this.payment.next(JSON.stringify({
96
112
  token: event.payment.token ?? '',
97
113
  email: event.payment.billingContact?.emailAddress ?? null,
@@ -101,14 +117,17 @@ export class CheckoutHandler extends ApplePaySessionHandlerAbstract {
101
117
  session.completePayment(this.window.ApplePaySession.STATUS_SUCCESS);
102
118
  };
103
119
  session.oncancel = (event) => {
104
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.applePayCheckoutPaymentCancel, 'manual');
120
+ this.emitAnalyticsEvent({
121
+ eventName: UserBehaviourEventName.applePayCheckoutPaymentCancel,
122
+ eventType: userBehaviourEventTypes.manual,
123
+ });
105
124
  console.error(ApplePayErrors.cancelled, event);
106
125
  this.emitError(ApplePayErrors.cancelled);
107
126
  applePayFinallyCallback();
108
127
  };
109
128
  session.begin();
110
129
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckoutHandler, deps: [{ token: windowToken }, { token: i1.HttpClient }, { token: i2.LoggerService }, { token: i3.ApplePayCartService }, { token: i4.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckoutHandler, deps: [{ token: windowToken }, { token: i1.HttpClient }, { token: i2.LoggerService }, { token: i3.ApplePayCartService }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
131
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckoutHandler }); }
113
132
  }
114
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckoutHandler, decorators: [{
@@ -116,5 +135,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
116
135
  }], ctorParameters: () => [{ type: undefined, decorators: [{
117
136
  type: Inject,
118
137
  args: [windowToken]
119
- }] }, { type: i1.HttpClient }, { type: i2.LoggerService }, { type: i3.ApplePayCartService }, { type: i4.UserBehaviourAnalyticsService }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9zZXNzaW9uLWhhbmRsZXJzL2NoZWNrb3V0LmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU9wRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7O0FBSXJGLE1BQU0sT0FBTyxlQUFnQixTQUFRLDhCQUE4QjtJQUNqRSxZQUN3QyxNQUFzQixFQUMzQyxJQUFnQixFQUNoQixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsNkJBQTREO1FBRTdFLEtBQUssRUFBRSxDQUFDO1FBTjhCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQzNDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQ0FBNkIsR0FBN0IsNkJBQTZC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Q2YsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDYixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDaEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFlBQVksSUFBSSxJQUFJO2dCQUN6RCxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxJQUFJLElBQUk7Z0JBQzVELGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxZQUFZLElBQUksSUFBSTthQUNuRSxDQUFDLENBQ0gsQ0FBQztZQUVGLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDO1FBRUYsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ3JDLHNCQUFzQixDQUFDLDZCQUE2QixFQUNwRCxRQUFRLENBQ1QsQ0FBQztZQUVGLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6Qyx1QkFBdUIsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQixDQUFDOytHQTdKVSxlQUFlLGtCQUVoQixXQUFXO21IQUZWLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeHRlbmRlZFdpbmRvdyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuZGVkLXdpbmRvdy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXMgfSBmcm9tICcuLi9hcHBsZS1wYXktcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBBcHBsZVBheUVycm9yLFxuICBBcHBsZVBheVNlc3Npb24sXG4gIEdldE1lcmNoYW50U2Vzc2lvblJlc3BvbnNlLFxufSBmcm9tICcuL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBhcHBsZVBheVZlcnNpb24gfSBmcm9tICcuLi9hcHBsZS1wYXkuY29uc3QnO1xuaW1wb3J0IHsgQXBwbGVQYXlFcnJvcnMgfSBmcm9tICcuLi9hcHBsZS1wYXkuZXJyb3JzLmVudW0nO1xuaW1wb3J0IHsgQXBwbGVQYXlTZXNzaW9uSGFuZGxlckFic3RyYWN0IH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXIuYWJzdHJhY3QnO1xuaW1wb3J0IHsgU3RhcnRTZXNzaW9uUGFyYW1zIH0gZnJvbSAnLi9zdGFydC1zZXNzaW9uLXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGVQYXlDYXJ0U2VydmljZSB9IGZyb20gJy4uL2FwcGxlLXBheS1jYXJ0L2FwcGxlLXBheS1jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgVGFnZ2VkRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy90YWdnZWQtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0SGFuZGxlciBleHRlbmRzIEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXJBYnN0cmFjdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyU2VydmljZTogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5Q2FydFNlcnZpY2U6IEFwcGxlUGF5Q2FydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnRTZXNzaW9uKFxuICAgIHBhcmFtczogQXBwbGVQYXlQYXJhbXMsXG4gICAgYWRkaXRpb25hbFBhcmFtczogU3RhcnRTZXNzaW9uUGFyYW1zLFxuICAgIGFwcGxlUGF5RmluYWxseUNhbGxiYWNrOiAoKSA9PiB2b2lkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5idWlsZFBheW1lbnRSZXF1ZXN0KHBhcmFtcyk7XG5cbiAgICBsZXQgc2Vzc2lvbjogQXBwbGVQYXlTZXNzaW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgc2Vzc2lvbiA9IG5ldyB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24oYXBwbGVQYXlWZXJzaW9uLCByZXF1ZXN0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgdHlwZW9mIGVycm9yID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gZXJyb3JcbiAgICAgICAgICA6IEFwcGxlUGF5RXJyb3JzLmNyZWF0ZVBheVNlc3Npb25FcnJvcjtcblxuICAgICAgY29uc29sZS5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoZXJyb3JNZXNzYWdlLCBbRXJyb3JUYWdzLkFQUExFUEFZXSksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghc2Vzc2lvbikgcmV0dXJuO1xuXG4gICAgc2Vzc2lvbi5vbnNoaXBwaW5nY29udGFjdHNlbGVjdGVkID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlDaGVja291dFNlbGVjdFNoaXBwaW5nLFxuICAgICAgICAnbWFudWFsJyxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuYXBwbGVQYXlDYXJ0U2VydmljZS5jYXJ0U3VjY2Vzc2Z1bFJlY2FsY3VsYXRlZCRcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgodXBkYXRlZFByaWNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGFjdFVwZGF0ZSA9XG4gICAgICAgICAgICB0aGlzLmFwcGxlUGF5Q2FydFNlcnZpY2UuYnVpbGRTaGlwcGluZ0NvbnRhY3RVcGRhdGUoXG4gICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgdXBkYXRlZFByaWNlLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlDaGVja291dENhcnRTdWNjZXNzZnVsUmVjYWxjdWxhdGVkLFxuICAgICAgICAgICAgJ21hbnVhbCcsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHNlc3Npb24uY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29udGFjdFVwZGF0ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFwcGxlUGF5Q2FydFNlcnZpY2UuY2FydEVycm9yUmVjYWxjdWxhdGVkJC5zdWJzY3JpYmUoXG4gICAgICAgIChlcnJvcjogQXBwbGVQYXlFcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlDaGVja291dENhcnRFcnJvclJlY2FsY3VsYXRlZCxcbiAgICAgICAgICAgICdtYW51YWwnLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHtcbiAgICAgICAgICAgIGVycm9yczogW2Vycm9yXSxcbiAgICAgICAgICAgIG5ld1RvdGFsOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBwYXJhbXMudG90YWxMYWJlbCxcbiAgICAgICAgICAgICAgYW1vdW50OiBwYXJhbXMudG90YWxBbW91bnQ/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzOiAnU1RBVFVTX0ZBSUxVUkUnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5hcHBsZVBheUNhcnRTZXJ2aWNlLnJlY2FsY3VsYXRlQ2FydFRheGVzKGV2ZW50LnNoaXBwaW5nQ29udGFjdCk7XG4gICAgfTtcblxuICAgIHNlc3Npb24ub252YWxpZGF0ZW1lcmNoYW50ID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlDaGVja291dFZhbGlkYXRlTWVyY2hhbnQsXG4gICAgICAgICdtYW51YWwnLFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IGV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgICAgZXh0cmFWYWx1ZTogcGFyYW1zLnRvdGFsTGFiZWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB2YWxpZGF0aW9uUGFyYW1zID0ge1xuICAgICAgICB2YWxpZGF0aW9uVVJMOiBldmVudC52YWxpZGF0aW9uVVJMLFxuICAgICAgICBhY2NvdW50SWQ6IHBhcmFtcy5wYXlJbnN0YW5jZUFjY291bnRJZCxcbiAgICAgICAgaXNTYW5kYm94OiBwYXJhbXMuaXNTYW5kYm94LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgeyBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkLCB0b3BMZXZlbERvbWFpbiB9ID0gYWRkaXRpb25hbFBhcmFtcztcblxuICAgICAgaWYgKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQgJiYgdG9wTGV2ZWxEb21haW4pIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciB1bmtub3duIHByb3BlcnR5XG4gICAgICAgIHZhbGlkYXRpb25QYXJhbXMuZG9tYWluTmFtZSA9IHRvcExldmVsRG9tYWluO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8R2V0TWVyY2hhbnRTZXNzaW9uUmVzcG9uc2U+KFxuICAgICAgICAgIHBhcmFtcy5nZXRBcHBsZVBheVNlc3Npb25VcmwsXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodmFsaWRhdGlvblBhcmFtcyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHJlc3BvbnNlLm1lcmNoYW50U2Vzc2lvbik7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlDaGVja291dFZhbGlkYXRlTWVyY2hhbnRFcnJvcixcbiAgICAgICAgICAgICAgJ21hbnVhbCcsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihBcHBsZVBheUVycm9ycy5tZXJjaGFudFZhbGlkYXRpb25FcnJvciwgZXJyb3IpO1xuICAgICAgICAgICAgc2Vzc2lvbi5hYm9ydCgpO1xuICAgICAgICAgICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2soKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgc2Vzc2lvbi5vbnBheW1lbnRhdXRob3JpemVkID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlDaGVja291dFBheW1lbnRBdXRob3JpemVkLFxuICAgICAgICAnbWFudWFsJyxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMucGF5bWVudC5uZXh0KFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgdG9rZW46IGV2ZW50LnBheW1lbnQudG9rZW4gPz8gJycsXG4gICAgICAgICAgZW1haWw6IGV2ZW50LnBheW1lbnQuYmlsbGluZ0NvbnRhY3Q/LmVtYWlsQWRkcmVzcyA/PyBudWxsLFxuICAgICAgICAgIHBvc3RhbENvZGU6IGV2ZW50LnBheW1lbnQuYmlsbGluZ0NvbnRhY3Q/LnBvc3RhbENvZGUgPz8gbnVsbCxcbiAgICAgICAgICBzaGlwcGluZ0VtYWlsOiBldmVudC5wYXltZW50LnNoaXBwaW5nQ29udGFjdD8uZW1haWxBZGRyZXNzID8/IG51bGwsXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgc2Vzc2lvbi5jb21wbGV0ZVBheW1lbnQodGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uLlNUQVRVU19TVUNDRVNTKTtcbiAgICB9O1xuXG4gICAgc2Vzc2lvbi5vbmNhbmNlbCA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5Q2hlY2tvdXRQYXltZW50Q2FuY2VsLFxuICAgICAgICAnbWFudWFsJyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoQXBwbGVQYXlFcnJvcnMuY2FuY2VsbGVkLCBldmVudCk7XG4gICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5jYW5jZWxsZWQpO1xuICAgICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2soKTtcbiAgICB9O1xuXG4gICAgc2Vzc2lvbi5iZWdpbigpO1xuICB9XG59XG4iXX0=
138
+ }] }, { type: i1.HttpClient }, { type: i2.LoggerService }, { type: i3.ApplePayCartService }] });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9zZXNzaW9uLWhhbmRsZXJzL2NoZWNrb3V0LmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU9wRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDNUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7QUFJckYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsOEJBQThCO0lBQ2pFLFlBQ3dDLE1BQXNCLEVBQzNDLElBQWdCLEVBQ2hCLGFBQTRCLEVBQzVCLG1CQUF3QztRQUV6RCxLQUFLLEVBQUUsQ0FBQztRQUw4QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUMzQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFHM0QsQ0FBQztJQUVNLFlBQVksQ0FDakIsTUFBc0IsRUFDdEIsZ0JBQW9DLEVBQ3BDLHVCQUFtQztRQUVuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQsSUFBSSxPQUFPLEdBQTJCLElBQUksQ0FBQztRQUUzQyxJQUFJLENBQUM7WUFDSCxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFlBQVksR0FDaEIsT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDdkIsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztZQUUzQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUN0QixJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDcEQsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsT0FBTyxDQUFDLHlCQUF5QixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUN0QixTQUFTLEVBQUUsc0JBQXNCLENBQUMsOEJBQThCO2dCQUNoRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUMxQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsMkJBQTJCO2lCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUMxQixNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQixDQUNqRCxNQUFNLEVBQ04sWUFBWSxDQUNiLENBQUM7Z0JBRUosSUFBSSxDQUFDLGtCQUFrQixDQUFDO29CQUN0QixTQUFTLEVBQ1Asc0JBQXNCLENBQUMsMENBQTBDO29CQUNuRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDMUMsQ0FBQyxDQUFDO2dCQUVILE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsQ0FBQztZQUVMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQ3ZELENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUM7b0JBQ3RCLFNBQVMsRUFDUCxzQkFBc0IsQ0FBQyxxQ0FBcUM7b0JBQzlELFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMxQyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO29CQUN2QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7b0JBQ2YsUUFBUSxFQUFFO3dCQUNSLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVTt3QkFDeEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFO3FCQUN2QztvQkFDRCxNQUFNLEVBQUUsZ0JBQWdCO2lCQUN6QixDQUFDLENBQUM7WUFDTCxDQUFDLENBQ0YsQ0FBQztZQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDO1FBRUYsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUN0QixTQUFTLEVBQUUsc0JBQXNCLENBQUMsZ0NBQWdDO2dCQUNsRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDekMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhO2dCQUMxQixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7YUFDOUIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxnQkFBZ0IsR0FBRztnQkFDdkIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO2dCQUNsQyxTQUFTLEVBQUUsTUFBTSxDQUFDLG9CQUFvQjtnQkFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO2FBQzVCLENBQUM7WUFFRixNQUFNLEVBQUUsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7WUFFMUUsSUFBSSw0QkFBNEIsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkQsb0NBQW9DO2dCQUNwQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDO1lBQy9DLENBQUM7WUFFRCxJQUFJLENBQUMsSUFBSTtpQkFDTixJQUFJLENBQ0gsTUFBTSxDQUFDLHFCQUFxQixFQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQ2hDO2dCQUNFLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUM7YUFDbkUsQ0FDRjtpQkFDQSxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ2pCLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQy9ELENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLGtCQUFrQixDQUFDO3dCQUN0QixTQUFTLEVBQ1Asc0JBQXNCLENBQUMscUNBQXFDO3dCQUM5RCxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtxQkFDMUMsQ0FBQyxDQUFDO29CQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUM3RCxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2hCLHVCQUF1QixFQUFFLENBQUM7Z0JBQzVCLENBQUM7YUFDRixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3RCLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyxpQ0FBaUM7Z0JBQ25FLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQzFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2hDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxZQUFZLElBQUksSUFBSTtnQkFDekQsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsSUFBSSxJQUFJO2dCQUM1RCxhQUFhLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsWUFBWSxJQUFJLElBQUk7YUFDbkUsQ0FBQyxDQUNILENBQUM7WUFFRixPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3RCLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyw2QkFBNkI7Z0JBQy9ELFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQzFDLENBQUMsQ0FBQztZQUVILE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6Qyx1QkFBdUIsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQixDQUFDOytHQTdKVSxlQUFlLGtCQUVoQixXQUFXO21IQUZWLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeHRlbmRlZFdpbmRvdyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuZGVkLXdpbmRvdy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXMgfSBmcm9tICcuLi9hcHBsZS1wYXktcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBBcHBsZVBheUVycm9yLFxuICBBcHBsZVBheVNlc3Npb24sXG4gIEdldE1lcmNoYW50U2Vzc2lvblJlc3BvbnNlLFxufSBmcm9tICcuL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBhcHBsZVBheVZlcnNpb24gfSBmcm9tICcuLi9hcHBsZS1wYXkuY29uc3QnO1xuaW1wb3J0IHsgQXBwbGVQYXlFcnJvcnMgfSBmcm9tICcuLi9hcHBsZS1wYXkuZXJyb3JzLmVudW0nO1xuaW1wb3J0IHsgQXBwbGVQYXlTZXNzaW9uSGFuZGxlckFic3RyYWN0IH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXIuYWJzdHJhY3QnO1xuaW1wb3J0IHsgU3RhcnRTZXNzaW9uUGFyYW1zIH0gZnJvbSAnLi9zdGFydC1zZXNzaW9uLXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGVQYXlDYXJ0U2VydmljZSB9IGZyb20gJy4uL2FwcGxlLXBheS1jYXJ0L2FwcGxlLXBheS1jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgVGFnZ2VkRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy90YWdnZWQtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0SGFuZGxlciBleHRlbmRzIEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXJBYnN0cmFjdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyU2VydmljZTogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5Q2FydFNlcnZpY2U6IEFwcGxlUGF5Q2FydFNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnRTZXNzaW9uKFxuICAgIHBhcmFtczogQXBwbGVQYXlQYXJhbXMsXG4gICAgYWRkaXRpb25hbFBhcmFtczogU3RhcnRTZXNzaW9uUGFyYW1zLFxuICAgIGFwcGxlUGF5RmluYWxseUNhbGxiYWNrOiAoKSA9PiB2b2lkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5idWlsZFBheW1lbnRSZXF1ZXN0KHBhcmFtcyk7XG5cbiAgICBsZXQgc2Vzc2lvbjogQXBwbGVQYXlTZXNzaW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgc2Vzc2lvbiA9IG5ldyB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24oYXBwbGVQYXlWZXJzaW9uLCByZXF1ZXN0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgdHlwZW9mIGVycm9yID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gZXJyb3JcbiAgICAgICAgICA6IEFwcGxlUGF5RXJyb3JzLmNyZWF0ZVBheVNlc3Npb25FcnJvcjtcblxuICAgICAgY29uc29sZS5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoZXJyb3JNZXNzYWdlLCBbRXJyb3JUYWdzLkFQUExFUEFZXSksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghc2Vzc2lvbikgcmV0dXJuO1xuXG4gICAgc2Vzc2lvbi5vbnNoaXBwaW5nY29udGFjdHNlbGVjdGVkID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmVtaXRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUNoZWNrb3V0U2VsZWN0U2hpcHBpbmcsXG4gICAgICAgIGV2ZW50VHlwZTogdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuYXBwbGVQYXlDYXJ0U2VydmljZS5jYXJ0U3VjY2Vzc2Z1bFJlY2FsY3VsYXRlZCRcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgodXBkYXRlZFByaWNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGFjdFVwZGF0ZSA9XG4gICAgICAgICAgICB0aGlzLmFwcGxlUGF5Q2FydFNlcnZpY2UuYnVpbGRTaGlwcGluZ0NvbnRhY3RVcGRhdGUoXG4gICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgdXBkYXRlZFByaWNlLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuZW1pdEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTpcbiAgICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUNoZWNrb3V0Q2FydFN1Y2Nlc3NmdWxSZWNhbGN1bGF0ZWQsXG4gICAgICAgICAgICBldmVudFR5cGU6IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHNlc3Npb24uY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29udGFjdFVwZGF0ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFwcGxlUGF5Q2FydFNlcnZpY2UuY2FydEVycm9yUmVjYWxjdWxhdGVkJC5zdWJzY3JpYmUoXG4gICAgICAgIChlcnJvcjogQXBwbGVQYXlFcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuZW1pdEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTpcbiAgICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUNoZWNrb3V0Q2FydEVycm9yUmVjYWxjdWxhdGVkLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHtcbiAgICAgICAgICAgIGVycm9yczogW2Vycm9yXSxcbiAgICAgICAgICAgIG5ld1RvdGFsOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBwYXJhbXMudG90YWxMYWJlbCxcbiAgICAgICAgICAgICAgYW1vdW50OiBwYXJhbXMudG90YWxBbW91bnQ/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzOiAnU1RBVFVTX0ZBSUxVUkUnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5hcHBsZVBheUNhcnRTZXJ2aWNlLnJlY2FsY3VsYXRlQ2FydFRheGVzKGV2ZW50LnNoaXBwaW5nQ29udGFjdCk7XG4gICAgfTtcblxuICAgIHNlc3Npb24ub252YWxpZGF0ZW1lcmNoYW50ID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmVtaXRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUNoZWNrb3V0VmFsaWRhdGVNZXJjaGFudCxcbiAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgIHZhbHVlOiBldmVudC52YWxpZGF0aW9uVVJMLFxuICAgICAgICBleHRyYVZhbHVlOiBwYXJhbXMudG90YWxMYWJlbCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB2YWxpZGF0aW9uUGFyYW1zID0ge1xuICAgICAgICB2YWxpZGF0aW9uVVJMOiBldmVudC52YWxpZGF0aW9uVVJMLFxuICAgICAgICBhY2NvdW50SWQ6IHBhcmFtcy5wYXlJbnN0YW5jZUFjY291bnRJZCxcbiAgICAgICAgaXNTYW5kYm94OiBwYXJhbXMuaXNTYW5kYm94LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgeyBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkLCB0b3BMZXZlbERvbWFpbiB9ID0gYWRkaXRpb25hbFBhcmFtcztcblxuICAgICAgaWYgKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQgJiYgdG9wTGV2ZWxEb21haW4pIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciB1bmtub3duIHByb3BlcnR5XG4gICAgICAgIHZhbGlkYXRpb25QYXJhbXMuZG9tYWluTmFtZSA9IHRvcExldmVsRG9tYWluO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8R2V0TWVyY2hhbnRTZXNzaW9uUmVzcG9uc2U+KFxuICAgICAgICAgIHBhcmFtcy5nZXRBcHBsZVBheVNlc3Npb25VcmwsXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodmFsaWRhdGlvblBhcmFtcyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHJlc3BvbnNlLm1lcmNoYW50U2Vzc2lvbik7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVtaXRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgICAgICAgIGV2ZW50TmFtZTpcbiAgICAgICAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5Q2hlY2tvdXRWYWxpZGF0ZU1lcmNoYW50RXJyb3IsXG4gICAgICAgICAgICAgIGV2ZW50VHlwZTogdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKEFwcGxlUGF5RXJyb3JzLm1lcmNoYW50VmFsaWRhdGlvbkVycm9yLCBlcnJvcik7XG4gICAgICAgICAgICBzZXNzaW9uLmFib3J0KCk7XG4gICAgICAgICAgICBhcHBsZVBheUZpbmFsbHlDYWxsYmFjaygpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBzZXNzaW9uLm9ucGF5bWVudGF1dGhvcml6ZWQgPSAoZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuZW1pdEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5Q2hlY2tvdXRQYXltZW50QXV0aG9yaXplZCxcbiAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wYXltZW50Lm5leHQoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICB0b2tlbjogZXZlbnQucGF5bWVudC50b2tlbiA/PyAnJyxcbiAgICAgICAgICBlbWFpbDogZXZlbnQucGF5bWVudC5iaWxsaW5nQ29udGFjdD8uZW1haWxBZGRyZXNzID8/IG51bGwsXG4gICAgICAgICAgcG9zdGFsQ29kZTogZXZlbnQucGF5bWVudC5iaWxsaW5nQ29udGFjdD8ucG9zdGFsQ29kZSA/PyBudWxsLFxuICAgICAgICAgIHNoaXBwaW5nRW1haWw6IGV2ZW50LnBheW1lbnQuc2hpcHBpbmdDb250YWN0Py5lbWFpbEFkZHJlc3MgPz8gbnVsbCxcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudCh0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24uU1RBVFVTX1NVQ0NFU1MpO1xuICAgIH07XG5cbiAgICBzZXNzaW9uLm9uY2FuY2VsID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmVtaXRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUNoZWNrb3V0UGF5bWVudENhbmNlbCxcbiAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB9KTtcblxuICAgICAgY29uc29sZS5lcnJvcihBcHBsZVBheUVycm9ycy5jYW5jZWxsZWQsIGV2ZW50KTtcbiAgICAgIHRoaXMuZW1pdEVycm9yKEFwcGxlUGF5RXJyb3JzLmNhbmNlbGxlZCk7XG4gICAgICBhcHBsZVBheUZpbmFsbHlDYWxsYmFjaygpO1xuICAgIH07XG5cbiAgICBzZXNzaW9uLmJlZ2luKCk7XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,7 @@ export class ApplePaySessionHandlerAbstract {
3
3
  constructor() {
4
4
  this.payment = new Subject();
5
5
  this._errorSubject = new Subject();
6
+ this._analyticsEventSubject = new Subject();
6
7
  }
7
8
  get error$() {
8
9
  return this._errorSubject.asObservable();
@@ -10,9 +11,15 @@ export class ApplePaySessionHandlerAbstract {
10
11
  get payment$() {
11
12
  return this.payment.asObservable();
12
13
  }
14
+ get analyticsEvent$() {
15
+ return this._analyticsEventSubject.asObservable();
16
+ }
13
17
  emitError(error) {
14
18
  this._errorSubject.next(error);
15
19
  }
20
+ emitAnalyticsEvent(event) {
21
+ this._analyticsEventSubject.next(event);
22
+ }
16
23
  buildPaymentRequest(params) {
17
24
  return {
18
25
  total: {
@@ -28,4 +35,4 @@ export class ApplePaySessionHandlerAbstract {
28
35
  };
29
36
  }
30
37
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1oYW5kbGVyLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L3Nlc3Npb24taGFuZGxlcnMvc2Vzc2lvbi1oYW5kbGVyLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNM0MsTUFBTSxPQUFnQiw4QkFBOEI7SUFBcEQ7UUFDcUIsWUFBTyxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7SUFvQ2pFLENBQUM7SUFsQ0MsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFRUyxTQUFTLENBQUMsS0FBcUI7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVTLG1CQUFtQixDQUMzQixNQUFzQjtRQUV0QixPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDeEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXO2FBQzNCO1lBQ0QsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1lBQ2pDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixvQkFBb0IsRUFBRSxNQUFNLENBQUMsb0JBQW9CO1lBQ2pELDRCQUE0QixFQUFFLE1BQU0sQ0FBQyw0QkFBNEI7WUFDakUsNkJBQTZCLEVBQUUsTUFBTSxDQUFDLDZCQUE2QjtZQUNuRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsaUJBQWlCO1NBQzVDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4uL2FwcGxlLXBheS1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5RXJyb3JzIH0gZnJvbSAnLi4vYXBwbGUtcGF5LmVycm9ycy5lbnVtJztcbmltcG9ydCB7IEFwcGxlUGF5UGF5bWVudFJlcXVlc3QgfSBmcm9tICcuL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGFydFNlc3Npb25QYXJhbXMgfSBmcm9tICcuL3N0YXJ0LXNlc3Npb24tcGFyYW1zLmludGVyZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBsZVBheVNlc3Npb25IYW5kbGVyQWJzdHJhY3Qge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGF5bWVudDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXJyb3JTdWJqZWN0ID0gbmV3IFN1YmplY3Q8QXBwbGVQYXlFcnJvcnM+KCk7XG5cbiAgcHVibGljIGdldCBlcnJvciQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUVycm9ycz4ge1xuICAgIHJldHVybiB0aGlzLl9lcnJvclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnQkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBzdGFydFNlc3Npb24oXG4gICAgcGFyYW1zOiBBcHBsZVBheVBhcmFtcyxcbiAgICBhZGRpdGlvbmFsUGFyYW1zOiBTdGFydFNlc3Npb25QYXJhbXMsXG4gICAgYXBwbGVQYXlGaW5hbGx5Q2FsbGJhY2s6ICgpID0+IHZvaWQsXG4gICk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGVtaXRFcnJvcihlcnJvcjogQXBwbGVQYXlFcnJvcnMpOiB2b2lkIHtcbiAgICB0aGlzLl9lcnJvclN1YmplY3QubmV4dChlcnJvcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRQYXltZW50UmVxdWVzdChcbiAgICBwYXJhbXM6IEFwcGxlUGF5UGFyYW1zLFxuICApOiBBcHBsZVBheVBheW1lbnRSZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgdG90YWw6IHtcbiAgICAgICAgbGFiZWw6IHBhcmFtcy50b3RhbExhYmVsLFxuICAgICAgICBhbW91bnQ6IHBhcmFtcy50b3RhbEFtb3VudCxcbiAgICAgIH0sXG4gICAgICBjdXJyZW5jeUNvZGU6IHBhcmFtcy5jdXJyZW5jeUNvZGUsXG4gICAgICBjb3VudHJ5Q29kZTogcGFyYW1zLmNvdW50cnlDb2RlLFxuICAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IHBhcmFtcy5tZXJjaGFudENhcGFiaWxpdGllcyxcbiAgICAgIHJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHM6IHBhcmFtcy5yZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzLFxuICAgICAgcmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHM6IHBhcmFtcy5yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkcyxcbiAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBwYXJhbXMuc3VwcG9ydGVkTmV0d29ya3MsXG4gICAgfTtcbiAgfVxufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1oYW5kbGVyLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L3Nlc3Npb24taGFuZGxlcnMvc2Vzc2lvbi1oYW5kbGVyLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPM0MsTUFBTSxPQUFnQiw4QkFBOEI7SUFBcEQ7UUFDcUIsWUFBTyxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDOUMsMkJBQXNCLEdBQ3JDLElBQUksT0FBTyxFQUF5QixDQUFDO0lBNEN6QyxDQUFDO0lBMUNDLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFRUyxTQUFTLENBQUMsS0FBcUI7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVTLGtCQUFrQixDQUFDLEtBQTRCO1FBQ3ZELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLG1CQUFtQixDQUMzQixNQUFzQjtRQUV0QixPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDeEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXO2FBQzNCO1lBQ0QsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1lBQ2pDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixvQkFBb0IsRUFBRSxNQUFNLENBQUMsb0JBQW9CO1lBQ2pELDRCQUE0QixFQUFFLE1BQU0sQ0FBQyw0QkFBNEI7WUFDakUsNkJBQTZCLEVBQUUsTUFBTSxDQUFDLDZCQUE2QjtZQUNuRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsaUJBQWlCO1NBQzVDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4uL2FwcGxlLXBheS1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5RXJyb3JzIH0gZnJvbSAnLi4vYXBwbGUtcGF5LmVycm9ycy5lbnVtJztcbmltcG9ydCB7IEFwcGxlUGF5UGF5bWVudFJlcXVlc3QgfSBmcm9tICcuL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGFydFNlc3Npb25QYXJhbXMgfSBmcm9tICcuL3N0YXJ0LXNlc3Npb24tcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBbmFseXRpY3NFdmVudFBheWxvYWQgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLmludGVyZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBsZVBheVNlc3Npb25IYW5kbGVyQWJzdHJhY3Qge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGF5bWVudDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXJyb3JTdWJqZWN0ID0gbmV3IFN1YmplY3Q8QXBwbGVQYXlFcnJvcnM+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FuYWx5dGljc0V2ZW50U3ViamVjdCA9XG4gICAgbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHB1YmxpYyBnZXQgZXJyb3IkKCk6IE9ic2VydmFibGU8QXBwbGVQYXlFcnJvcnM+IHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFuYWx5dGljc0V2ZW50JCgpOiBPYnNlcnZhYmxlPEFuYWx5dGljc0V2ZW50UGF5bG9hZD4ge1xuICAgIHJldHVybiB0aGlzLl9hbmFseXRpY3NFdmVudFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3Qgc3RhcnRTZXNzaW9uKFxuICAgIHBhcmFtczogQXBwbGVQYXlQYXJhbXMsXG4gICAgYWRkaXRpb25hbFBhcmFtczogU3RhcnRTZXNzaW9uUGFyYW1zLFxuICAgIGFwcGxlUGF5RmluYWxseUNhbGxiYWNrOiAoKSA9PiB2b2lkLFxuICApOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBlbWl0RXJyb3IoZXJyb3I6IEFwcGxlUGF5RXJyb3JzKTogdm9pZCB7XG4gICAgdGhpcy5fZXJyb3JTdWJqZWN0Lm5leHQoZXJyb3IpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRBbmFseXRpY3NFdmVudChldmVudDogQW5hbHl0aWNzRXZlbnRQYXlsb2FkKTogdm9pZCB7XG4gICAgdGhpcy5fYW5hbHl0aWNzRXZlbnRTdWJqZWN0Lm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUGF5bWVudFJlcXVlc3QoXG4gICAgcGFyYW1zOiBBcHBsZVBheVBhcmFtcyxcbiAgKTogQXBwbGVQYXlQYXltZW50UmVxdWVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvdGFsOiB7XG4gICAgICAgIGxhYmVsOiBwYXJhbXMudG90YWxMYWJlbCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMudG90YWxBbW91bnQsXG4gICAgICB9LFxuICAgICAgY3VycmVuY3lDb2RlOiBwYXJhbXMuY3VycmVuY3lDb2RlLFxuICAgICAgY291bnRyeUNvZGU6IHBhcmFtcy5jb3VudHJ5Q29kZSxcbiAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBwYXJhbXMubWVyY2hhbnRDYXBhYmlsaXRpZXMsXG4gICAgICByZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzOiBwYXJhbXMucmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkcyxcbiAgICAgIHJlcXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzOiBwYXJhbXMucmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHMsXG4gICAgICBzdXBwb3J0ZWROZXR3b3JrczogcGFyYW1zLnN1cHBvcnRlZE5ldHdvcmtzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==