@xsolla/payment-client-core 0.5.2 → 0.5.4

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.
@@ -10,30 +10,29 @@ export class DfpCollectService {
10
10
  this.formName = 'formDFP';
11
11
  }
12
12
  collectDfpStatus(threeDsForm) {
13
- if (threeDsForm.waitCallback) {
14
- this.openIframeWithPostRequest(threeDsForm, false);
15
- }
16
- else {
17
- this.openIframeWithPostRequest(threeDsForm, true);
18
- }
19
- }
20
- /*
21
- * This method create invisible iframe with required params and after that it submit form in iframe
22
- * */
23
- openIframeWithPostRequest(threeDsForm, isNeedNotifyAfterLoad) {
24
13
  this.window.document.getElementById(this.iframeName)?.remove();
25
14
  this.window.document.getElementById(this.formName)?.remove();
26
- this.createIframe(isNeedNotifyAfterLoad, threeDsForm.threeDSTrXid);
15
+ /*
16
+ * With waitCallback (e.g. GPayments) the DFP URL is loaded directly into the
17
+ * iframe as its src, and the result is delivered back via the websocket
18
+ * callback instead of an onload notification. The legacy EMV 3DS Method flow
19
+ * posts threeDSMethodData to a blank iframe and notifies on load.
20
+ */
21
+ if (threeDsForm.waitCallback) {
22
+ this.createIframe(false, threeDsForm.threeDSTrXid, threeDsForm.threeDSMethod);
23
+ return;
24
+ }
25
+ this.createIframe(true, threeDsForm.threeDSTrXid);
27
26
  this.postFormToIframe(threeDsForm.threeDSMethod, threeDsForm.threeDSMethodData);
28
27
  }
29
28
  /*
30
29
  * isNeedNotifyAfterLoad is need to send notification of dft to server
31
30
  * */
32
- createIframe(isNeedNotifyAfterLoad, threeDsTrXid) {
31
+ createIframe(isNeedNotifyAfterLoad, threeDsTrXid, src = 'about:blank') {
33
32
  const attributes = {
34
33
  name: this.iframeName,
35
34
  id: this.iframeName,
36
- src: 'about:blank',
35
+ src,
37
36
  style: 'display:none',
38
37
  };
39
38
  const iFrame = this.window.document.createElement('iframe');
@@ -103,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
103
102
  type: Inject,
104
103
  args: [windowToken]
105
104
  }] }, { type: i1.NotifyDfpStatusService }] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZwLWNvbGxlY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9wYXltZW50L3RocmVlLWRzL2RmcC1jb2xsZWN0L2RmcC1jb2xsZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFRcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUVtQixNQUFzQixFQUN0QixzQkFBOEM7UUFEOUMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQU5oRCxlQUFVLEdBQUcsV0FBVyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxTQUFTLENBQUM7SUFNbkMsQ0FBQztJQUVHLGdCQUFnQixDQUFDLFdBQXdCO1FBQzlDLElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQ7O1NBRUs7SUFDRyx5QkFBeUIsQ0FDL0IsV0FBd0IsRUFDeEIscUJBQThCO1FBRTlCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFB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LENBQUM7SUFFRDs7U0FFSztJQUNHLGFBQWEsQ0FDbkIsT0FBb0IsRUFDcEIsVUFBcUM7UUFFckMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBdkhVLGlCQUFpQixrQkFLbEIsV0FBVzttSEFMVixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uLy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQgeyBFeHRlbmRlZFdpbmRvdyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuZGVkLXdpbmRvdy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTm90aWZ5RGZwU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL2FwaS9ub3RpZnktZGZwLXN0YXR1cy9ub3RpZnktZGZwLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IFRocmVlRHNGb3JtIH0gZnJvbSAnLi4vdGhyZWUtZHMtZm9ybS5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGZwQ29sbGVjdFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGlmcmFtZU5hbWUgPSAnaWZyYW1lREZQJztcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtTmFtZSA9ICdmb3JtREZQJztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZnlEZnBTdGF0dXNTZXJ2aWNlOiBOb3RpZnlEZnBTdGF0dXNTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGNvbGxlY3REZnBTdGF0dXModGhyZWVEc0Zvcm06IFRocmVlRHNGb3JtKTogdm9pZCB7XG4gICAgaWYgKHRocmVlRHNGb3JtLndhaXRDYWxsYmFjaykge1xuICAgICAgdGhpcy5vcGVuSWZyYW1lV2l0aFBvc3RSZXF1ZXN0KHRocmVlRHNGb3JtLCBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbklmcmFtZVdpdGhQb3N0UmVxdWVzdCh0aHJlZURzRm9ybSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogVGhpcyBtZXRob2QgY3JlYXRlIGludmlzaWJsZSBpZnJhbWUgd2l0aCByZXF1aXJlZCBwYXJhbXMgYW5kIGFmdGVyIHRoYXQgaXQgc3VibWl0IGZvcm0gaW4gaWZyYW1lXG4gICAqICovXG4gIHByaXZhdGUgb3BlbklmcmFtZVdpdGhQb3N0UmVxdWVzdChcbiAgICB0aHJlZURzRm9ybTogVGhyZWVEc0Zvcm0sXG4gICAgaXNOZWVkTm90aWZ5QWZ0ZXJMb2FkOiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlmcmFtZU5hbWUpPy5yZW1vdmUoKTtcbiAgICB0aGlzLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZvcm1OYW1lKT8ucmVtb3ZlKCk7XG4gICAgdGhpcy5jcmVhdGVJZnJhbWUoaXNOZWVkTm90aWZ5QWZ0ZXJMb2FkLCB0aHJlZURzRm9ybS50aHJlZURTVHJYaWQpO1xuICAgIHRoaXMucG9zdEZvcm1Ub0lmcmFtZShcbiAgICAgIHRocmVlRHNGb3JtLnRocmVlRFNNZXRob2QsXG4gICAgICB0aHJlZURzRm9ybS50aHJlZURTTWV0aG9kRGF0YSxcbiAgICApO1xuICB9XG5cbiAgLypcbiAgICogaXNOZWVkTm90aWZ5QWZ0ZXJMb2FkIGlzIG5lZWQgdG8gc2VuZCBub3RpZmljYXRpb24gb2YgZGZ0IHRvIHNlcnZlclxuICAgKiAqL1xuICBwcml2YXRlIGNyZWF0ZUlmcmFtZShcbiAgICBpc05lZWROb3RpZnlBZnRlckxvYWQ6IGJvb2xlYW4sXG4gICAgdGhyZWVEc1RyWGlkOiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBuYW1lOiB0aGlzLmlmcmFtZU5hbWUsXG4gICAgICBpZDogdGhpcy5pZnJhbWVOYW1lLFxuICAgICAgc3JjOiAnYWJvdXQ6YmxhbmsnLFxuICAgICAgc3R5bGU6ICdkaXNwbGF5Om5vbmUnLFxuICAgIH07XG5cbiAgICBjb25zdCBpRnJhbWUgPSB0aGlzLndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZXMoaUZyYW1lLCBhdHRyaWJ1dGVzKTtcbiAgICB0aGlzLndpbmRvdy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlGcmFtZSk7XG5cbiAgICAvLyBkeW5hbWljYWxseSBjcmVhdGVkIGlmcmFtZSB0cmlnZ2VycyBvbmxvYWQgZXZlbnQgdHdpY2VcbiAgICBsZXQgaXNBbHJlYWR5U2VudCA9IGZhbHNlO1xuXG4gICAgaWYgKGlzTmVlZE5vdGlmeUFmdGVyTG9hZCkge1xuICAgICAgKFxuICAgICAgICB0aGlzLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICB0aGlzLmlmcmFtZU5hbWUsXG4gICAgICAgICkgYXMgSFRNTElGcmFtZUVsZW1lbnRcbiAgICAgICkub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAoaXNBbHJlYWR5U2VudCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMubm90aWZ5RGZwU3RhdHVzU2VydmljZS5yZXF1ZXN0KHRocmVlRHNUclhpZCwgdHJ1ZSk7XG4gICAgICAgIGlzQWxyZWFkeVNlbnQgPSB0cnVlO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIHN1Ym1pdCBmb3JtIGluIG91ciBpZnJhbWVcbiAgICogKi9cbiAgcHJpdmF0ZSBwb3N0Rm9ybVRvSWZyYW1lKHVybDogc3RyaW5nLCB0aHJlZURzTWV0aG9kOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtID0gdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy53aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcblxuICAgIGZvcm0uc2V0QXR0cmlidXRlKCdhY3Rpb24nLCB1cmwpO1xuICAgIGZvcm0uc2V0QXR0cmlidXRlKCd0YXJnZXQnLCB0aGlzLmlmcmFtZU5hbWUpO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVJbnB1dCgndGhyZWVEU01ldGhvZERhdGEnLCB0aHJlZURzTWV0aG9kKSk7XG5cbiAgICBmb3JtLnN1Ym1pdCgpO1xuICB9XG5cbiAgLypcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBjcmVhdGUgaW52aXNpYmxlIGZvcm0gd2l0aCByZXF1aXJlZCBwYXJhbXNcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7XG4gICAgY29uc3QgaW5pdEF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBuYW1lOiB0aGlzLmZvcm1OYW1lLFxuICAgICAgaWQ6IHRoaXMuZm9ybU5hbWUsXG4gICAgICBzdHlsZTogJ2Rpc3BsYXk6bm9uZScsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGVuY3R5cGU6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgIH07XG5cbiAgICB0aGlzLnNldEF0dHJpYnV0ZXMoZm9ybSwgaW5pdEF0dHJpYnV0ZXMpO1xuXG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUlucHV0KG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy53aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7XG4gICAgaW5wdXQubmFtZSA9IG5hbWU7XG4gICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIHNldCBhdHRyaWJ1dGVzIHRvIGZvcm0vaWZyYW1lXG4gICAqICovXG4gIHByaXZhdGUgc2V0QXR0cmlidXRlcyhcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBhdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICApOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCBhdHRyaWJ1dGVzW25hbWVdKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZwLWNvbGxlY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9wYXltZW50L3RocmVlLWRzL2RmcC1jb2xsZWN0L2RmcC1jb2xsZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFRcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUVtQixNQUFzQixFQUN0QixzQkFBOEM7UUFEOUMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQU5oRCxlQUFVLEdBQUcsV0FBVyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxTQUFTLENBQUM7SUFNbkMsQ0FBQztJQUVHLGdCQUFnQixDQUFDLFdBQXdCO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUU3RDs7Ozs7V0FLRztRQUNILElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQ2YsS0FBSyxFQUNMLFdBQVcsQ0FBQyxZQUFZLEVBQ3hCLFdBQVcsQ0FBQyxhQUFhLENBQzFCLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQ25CLFdBQVcsQ0FBQyxhQUFhLEVBQ3pCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRDs7U0FFSztJQUNHLFlBQVksQ0FDbEIscUJBQThCLEVBQzlCLFlBQW9CLEVBQ3BCLEdBQUcsR0FBRyxhQUFhO1FBRW5CLE1BQU0sVUFBVSxHQUE4QjtZQUM1QyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDckIsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ25CLEdBQUc7WUFDSCxLQUFLLEVBQUUsY0FBYztTQUN0QixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUMseURBQXlEO1FBQ3pELElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUxQixJQUFJLHFCQUFxQixFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUVsQixDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxhQUFhO29CQUFFLE9BQU87Z0JBRTFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O1NBRUs7SUFDRyxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsYUFBcUI7UUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxNQUFNLGNBQWMsR0FBOEI7WUFDaEQsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNqQixLQUFLLEVBQUUsY0FBYztZQUNyQixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxtQ0FBbUM7U0FDN0MsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDdEIsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O1NBRUs7SUFDRyxhQUFhLENBQ25CLE9BQW9CLEVBQ3BCLFVBQXFDO1FBRXJDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTFIVSxpQkFBaUIsa0JBS2xCLFdBQVc7bUhBTFYsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vdGlmeURmcFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbm90aWZ5LWRmcC1zdGF0dXMvbm90aWZ5LWRmcC1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBUaHJlZURzRm9ybSB9IGZyb20gJy4uL3RocmVlLWRzLWZvcm0uaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERmcENvbGxlY3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpZnJhbWVOYW1lID0gJ2lmcmFtZURGUCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybU5hbWUgPSAnZm9ybURGUCc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZ5RGZwU3RhdHVzU2VydmljZTogTm90aWZ5RGZwU3RhdHVzU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBjb2xsZWN0RGZwU3RhdHVzKHRocmVlRHNGb3JtOiBUaHJlZURzRm9ybSk6IHZvaWQge1xuICAgIHRoaXMud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWZyYW1lTmFtZSk/LnJlbW92ZSgpO1xuICAgIHRoaXMud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZm9ybU5hbWUpPy5yZW1vdmUoKTtcblxuICAgIC8qXG4gICAgICogV2l0aCB3YWl0Q2FsbGJhY2sgKGUuZy4gR1BheW1lbnRzKSB0aGUgREZQIFVSTCBpcyBsb2FkZWQgZGlyZWN0bHkgaW50byB0aGVcbiAgICAgKiBpZnJhbWUgYXMgaXRzIHNyYywgYW5kIHRoZSByZXN1bHQgaXMgZGVsaXZlcmVkIGJhY2sgdmlhIHRoZSB3ZWJzb2NrZXRcbiAgICAgKiBjYWxsYmFjayBpbnN0ZWFkIG9mIGFuIG9ubG9hZCBub3RpZmljYXRpb24uIFRoZSBsZWdhY3kgRU1WIDNEUyBNZXRob2QgZmxvd1xuICAgICAqIHBvc3RzIHRocmVlRFNNZXRob2REYXRhIHRvIGEgYmxhbmsgaWZyYW1lIGFuZCBub3RpZmllcyBvbiBsb2FkLlxuICAgICAqL1xuICAgIGlmICh0aHJlZURzRm9ybS53YWl0Q2FsbGJhY2spIHtcbiAgICAgIHRoaXMuY3JlYXRlSWZyYW1lKFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgdGhyZWVEc0Zvcm0udGhyZWVEU1RyWGlkLFxuICAgICAgICB0aHJlZURzRm9ybS50aHJlZURTTWV0aG9kLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUlmcmFtZSh0cnVlLCB0aHJlZURzRm9ybS50aHJlZURTVHJYaWQpO1xuICAgIHRoaXMucG9zdEZvcm1Ub0lmcmFtZShcbiAgICAgIHRocmVlRHNGb3JtLnRocmVlRFNNZXRob2QsXG4gICAgICB0aHJlZURzRm9ybS50aHJlZURTTWV0aG9kRGF0YSxcbiAgICApO1xuICB9XG5cbiAgLypcbiAgICogaXNOZWVkTm90aWZ5QWZ0ZXJMb2FkIGlzIG5lZWQgdG8gc2VuZCBub3RpZmljYXRpb24gb2YgZGZ0IHRvIHNlcnZlclxuICAgKiAqL1xuICBwcml2YXRlIGNyZWF0ZUlmcmFtZShcbiAgICBpc05lZWROb3RpZnlBZnRlckxvYWQ6IGJvb2xlYW4sXG4gICAgdGhyZWVEc1RyWGlkOiBzdHJpbmcsXG4gICAgc3JjID0gJ2Fib3V0OmJsYW5rJyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIG5hbWU6IHRoaXMuaWZyYW1lTmFtZSxcbiAgICAgIGlkOiB0aGlzLmlmcmFtZU5hbWUsXG4gICAgICBzcmMsXG4gICAgICBzdHlsZTogJ2Rpc3BsYXk6bm9uZScsXG4gICAgfTtcblxuICAgIGNvbnN0IGlGcmFtZSA9IHRoaXMud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgIHRoaXMuc2V0QXR0cmlidXRlcyhpRnJhbWUsIGF0dHJpYnV0ZXMpO1xuICAgIHRoaXMud2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaUZyYW1lKTtcblxuICAgIC8vIGR5bmFtaWNhbGx5IGNyZWF0ZWQgaWZyYW1lIHRyaWdnZXJzIG9ubG9hZCBldmVudCB0d2ljZVxuICAgIGxldCBpc0FscmVhZHlTZW50ID0gZmFsc2U7XG5cbiAgICBpZiAoaXNOZWVkTm90aWZ5QWZ0ZXJMb2FkKSB7XG4gICAgICAoXG4gICAgICAgIHRoaXMud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgIHRoaXMuaWZyYW1lTmFtZSxcbiAgICAgICAgKSBhcyBIVE1MSUZyYW1lRWxlbWVudFxuICAgICAgKS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGlmIChpc0FscmVhZHlTZW50KSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5ub3RpZnlEZnBTdGF0dXNTZXJ2aWNlLnJlcXVlc3QodGhyZWVEc1RyWGlkLCB0cnVlKTtcbiAgICAgICAgaXNBbHJlYWR5U2VudCA9IHRydWU7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgc3VibWl0IGZvcm0gaW4gb3VyIGlmcmFtZVxuICAgKiAqL1xuICBwcml2YXRlIHBvc3RGb3JtVG9JZnJhbWUodXJsOiBzdHJpbmcsIHRocmVlRHNNZXRob2Q6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB0aGlzLndpbmRvdy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pO1xuXG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoJ2FjdGlvbicsIHVybCk7XG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsIHRoaXMuaWZyYW1lTmFtZSk7XG4gICAgZm9ybS5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUlucHV0KCd0aHJlZURTTWV0aG9kRGF0YScsIHRocmVlRHNNZXRob2QpKTtcblxuICAgIGZvcm0uc3VibWl0KCk7XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGNyZWF0ZSBpbnZpc2libGUgZm9ybSB3aXRoIHJlcXVpcmVkIHBhcmFtc1xuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IEhUTUxGb3JtRWxlbWVudCB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcbiAgICBjb25zdCBpbml0QXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIG5hbWU6IHRoaXMuZm9ybU5hbWUsXG4gICAgICBpZDogdGhpcy5mb3JtTmFtZSxcbiAgICAgIHN0eWxlOiAnZGlzcGxheTpub25lJyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgZW5jdHlwZTogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgfTtcblxuICAgIHRoaXMuc2V0QXR0cmlidXRlcyhmb3JtLCBpbml0QXR0cmlidXRlcyk7XG5cbiAgICByZXR1cm4gZm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSW5wdXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGlucHV0LnR5cGUgPSAnaGlkZGVuJztcbiAgICBpbnB1dC5uYW1lID0gbmFtZTtcbiAgICBpbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuXG4gIC8qXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgc2V0IGF0dHJpYnV0ZXMgdG8gZm9ybS9pZnJhbWVcbiAgICogKi9cbiAgcHJpdmF0ZSBzZXRBdHRyaWJ1dGVzKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICk6IHZvaWQge1xuICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIGF0dHJpYnV0ZXNbbmFtZV0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -28,6 +28,7 @@ export class ThreeDs20Service {
28
28
  this.latestDfpParameters = null;
29
29
  this.notifyDfpTimerId = 'notify-dfp';
30
30
  this.notifyDfpTimeoutMs = 10000;
31
+ this.waitCallbackNotifyDfpTimeoutMs = 20000;
31
32
  this.statusThreeDsTimerId = 'status-three-ds';
32
33
  this.statusThreeDsTimeoutMs = 180000;
33
34
  }
@@ -38,7 +39,9 @@ export class ThreeDs20Service {
38
39
  this.clearLatestDfpParameters();
39
40
  this.reinsuranceCheckService.addTimer({
40
41
  id: this.notifyDfpTimerId,
41
- timeoutMs: this.notifyDfpTimeoutMs,
42
+ timeoutMs: threeDsForm.waitCallback
43
+ ? this.waitCallbackNotifyDfpTimeoutMs
44
+ : this.notifyDfpTimeoutMs,
42
45
  callback: () => {
43
46
  const threeDsTransactionId = this.latestDfpParameters?.threeDSTrXid ?? threeDsForm.threeDSTrXid;
44
47
  this.notifyDfpStatusService.request(threeDsTransactionId, false);
@@ -134,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
134
137
  providedIn: 'root',
135
138
  }]
136
139
  }], ctorParameters: () => [{ type: i1.StatusThreeDsService }, { type: i2.NotifyDfpStatusService }, { type: i3.WebSocketFactory }, { type: i4.DfpCollectService }, { type: i5.ReinsuranceCheckService }, { type: i6.UserBehaviourAnalyticsService }] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtZHMyMC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3BheW1lbnQvdGhyZWUtZHMvdGhyZWUtZHMtMjAvdGhyZWUtZHMyMC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFLekQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFLOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDNUgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7O0FBSzFHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBaUJELFlBQ21CLG9CQUEwQyxFQUMxQyxzQkFBOEMsRUFDOUMsZ0JBQWtDLEVBQ2xDLGlCQUFvQyxFQUNwQyx1QkFBZ0QsRUFDaEQsNkJBQTREO1FBTDVELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO1FBbkJ2RSxvQkFBZSxHQUEyQixJQUFJLENBQUM7UUFFdEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUVyRCw4QkFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJTb2NrZXRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmZhY3RvcnknO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNUaHJlZURzU2VydmljZSB9IGZyb20gJy4uL2FwaS9zdGF0dXMtdGhyZWUtZHMvc3RhdHVzLXRocmVlLWRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZ5RGZwU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL2FwaS9ub3RpZnktZGZwLXN0YXR1cy9ub3RpZnktZGZwLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IFRocmVlRHNTdGF0dXNXZWJTb2NrZXRUeXBlcyB9IGZyb20gJy4uL3RocmVlLWRzLXN0YXR1cy13ZWJzb2NrZXQtdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBUaHJlZURzRm9ybSB9IGZyb20gJy4uL3RocmVlLWRzLWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRocmVlRHNTdGF0dXNUeXBlcyB9IGZyb20gJy4uL2FwaS9zdGF0dXMtdGhyZWUtZHMvc3RhdHVzLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRGZwQ29sbGVjdFNlcnZpY2UgfSBmcm9tICcuLi9kZnAtY29sbGVjdC9kZnAtY29sbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlIH0gZnJvbSAnLi4vcmVpbnN1cmFuY2UtY2hlY2svcmVpbnN1cmFuY2UtY2hlY2suc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNVcGRhdGUgfSBmcm9tICcuL3N0YXR1cy11cGRhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRocmVlRHMyMFNlcnZpY2Uge1xuICBwdWJsaWMgZ2V0IHN0YXR1c1VwZGF0ZXMkKCk6IE9ic2VydmFibGU8U3RhdHVzVXBkYXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzVXBkYXRlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2ViU29ja2V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgd2ViU29ja2V0UmVjb25uZWN0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgd2ViU29ja2V0Q2xpZW50OiBXZWJTb2NrZXRDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1VwZGF0ZXMgPSBuZXcgU3ViamVjdDxTdGF0dXNVcGRhdGU+KCk7XG5cbiAgcHJpdmF0ZSBzdGF0dXNSZXF1ZXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsYXRlc3REZnBQYXJhbWV0ZXJzOiBUaHJlZURzRm9ybSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZ5RGZwVGltZXJJZCA9ICdub3RpZnktZGZwJztcbiAgcHJpdmF0ZSByZWFkb25seSBub3RpZnlEZnBUaW1lb3V0TXMgPSAxMDAwMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1RocmVlRHNUaW1lcklkID0gJ3N0YXR1cy10aHJlZS1kcyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzVGhyZWVEc1RpbWVvdXRNcyA9IDE4MDAwMDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNUaHJlZURzU2VydmljZTogU3RhdHVzVGhyZWVEc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZnlEZnBTdGF0dXNTZXJ2aWNlOiBOb3RpZnlEZnBTdGF0dXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2ViU29ja2V0RmFjdG9yeTogV2ViU29ja2V0RmFjdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRmcENvbGxlY3RTZXJ2aWNlOiBEZnBDb2xsZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlOiBSZWluc3VyYW5jZUNoZWNrU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBjaGVja1RocmVlRHMyMCh0aHJlZURzRm9ybTogVGhyZWVEc0Zvcm0gfCBudWxsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aHJlZURzRm9ybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xlYXJMYXRlc3REZnBQYXJhbWV0ZXJzKCk7XG5cbiAgICB0aGlzLnJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlLmFkZFRpbWVyKHtcbiAgICAgIGlkOiB0aGlzLm5vdGlmeURmcFRpbWVySWQsXG4gICAgICB0aW1lb3V0TXM6IHRoaXMubm90aWZ5RGZwVGltZW91dE1zLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgY29uc3QgdGhyZWVEc1RyYW5zYWN0aW9uSWQgPVxuICAgICAgICAgIHRoaXMubGF0ZXN0RGZwUGFyYW1ldGVycz8udGhyZWVEU1RyWGlkID8/IHRocmVlRHNGb3JtLnRocmVlRFNUclhpZDtcbiAgICAgICAgdGhpcy5ub3RpZnlEZnBTdGF0dXNTZXJ2aWNlLnJlcXVlc3QodGhyZWVEc1RyYW5zYWN0aW9uSWQsIGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLndlYlNvY2tldENsaWVudCA9IHRoaXMud2ViU29ja2V0RmFjdG9yeS5jcmVhdGVXZWJTb2NrZXRDbGllbnQoXG4gICAgICB0aHJlZURzRm9ybS53ZWJTb2NrZXRDaGFubmVsVXJsLFxuICAgICAgdGhyZWVEc0Zvcm0ud2ViU29ja2V0Q2xpZW50VHlwZSxcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy53ZWJTb2NrZXRDbGllbnQub3BlbihcbiAgICAgIHRocmVlRHNGb3JtLndlYlNvY2tldENoYW5uZWxVcmwsXG4gICAgICB0aHJlZURzRm9ybS53ZWJTb2NrZXRDbGllbnRUeXBlLFxuICAgICk7XG4gICAgdGhpcy53ZWJTb2NrZXRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLndlYlNvY2tldFN1YnNjcmlwdGlvbiA9IHRoaXMud2ViU29ja2V0Q2xpZW50Lm1lc3NhZ2VzJC5zdWJzY3JpYmUoXG4gICAgICAobWVzc2FnZSkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZSAhPT0gVGhyZWVEc1N0YXR1c1dlYlNvY2tldFR5cGVzLnN0YXR1czNEU19jaGFuZ2VkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0VGhyZWVEc1N0YXR1cyh0aHJlZURzRm9ybSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLndlYlNvY2tldFJlY29ubmVjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLndlYlNvY2tldFJlY29ubmVjdGlvblN1YnNjcmlwdGlvbiA9XG4gICAgICB0aGlzLndlYlNvY2tldENsaWVudC5zdWJzY3JpYmVPblN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb24oKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVlc3RUaHJlZURzU3RhdHVzKHRocmVlRHNGb3JtKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5oYW5kbGVUaHJlZURzVXBkYXRlcyh0aHJlZURzRm9ybSk7XG4gICAgdGhpcy5yZXF1ZXN0VGhyZWVEc1N0YXR1cyh0aHJlZURzRm9ybSk7XG5cbiAgICB0aGlzLnJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlLmFkZFRpbWVyKHtcbiAgICAgIGlkOiB0aGlzLnN0YXR1c1RocmVlRHNUaW1lcklkLFxuICAgICAgdGltZW91dE1zOiB0aGlzLnN0YXR1c1RocmVlRHNUaW1lb3V0TXMsXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVlc3RUaHJlZURzU3RhdHVzKHRocmVlRHNGb3JtKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlcXVlc3RUaHJlZURzU3RhdHVzKHRocmVlRHNGb3JtOiBUaHJlZURzRm9ybSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdHVzVGhyZWVEc1NlcnZpY2UucmVxdWVzdCh0aGlzLmxhdGVzdERmcFBhcmFtZXRlcnMgPz8gdGhyZWVEc0Zvcm0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUaHJlZURzVXBkYXRlcyh0aHJlZURzRm9ybTogVGhyZWVEc0Zvcm0pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0dXNSZXF1ZXN0U3Vic2NyaXB0aW9uID1cbiAgICAgIHRoaXMuc3RhdHVzVGhyZWVEc1NlcnZpY2UucmVzcG9uc2UkLnN1YnNjcmliZSgodGhyZWVEc1N0YXR1cykgPT4ge1xuICAgICAgICBpZiAoIXRocmVlRHNTdGF0dXMpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhyZWVEc1N0YXR1cy5jb2xsZWN0RGZwUGFyYW1ldGVycykge1xuICAgICAgICAgIHRoaXMubGF0ZXN0RGZwUGFyYW1ldGVycyA9IHRocmVlRHNTdGF0dXMuY29sbGVjdERmcFBhcmFtZXRlcnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhyZWVEc1N0YXR1cy5zdGF0dXMgPT09IFRocmVlRHNTdGF0dXNUeXBlcy5jb21wbGV0ZWQpIHtcbiAgICAgICAgICB0aGlzLnN0b3BSZWluc3VyYW5jZU1ldGhvZHMoKTtcblxuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUudGhyZWVEczJjb21wbGV0ZSxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5zdGF0dXNVcGRhdGVzLm5leHQoe1xuICAgICAgICAgICAgdHlwZTogJ2NvbXBsZXRlJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgc3RhdHVzVXJsOiB0aHJlZURzRm9ybS5zdGF0dXNVcmwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aHJlZURzU3RhdHVzLnN0YXR1cyA9PT0gVGhyZWVEc1N0YXR1c1R5cGVzLmNoYWxsZW5nZSAmJlxuICAgICAgICAgIHRocmVlRHNTdGF0dXMuY2hlY2tvdXRGb3JtXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuc3RvcFJlaW5zdXJhbmNlTWV0aG9kcygpO1xuXG4gICAgICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS50aHJlZURzMmNoYWxsZW5nZSxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5zdGF0dXNVcGRhdGVzLm5leHQoe1xuICAgICAgICAgICAgdHlwZTogJ2NoYWxsZW5nZScsXG4gICAgICAgICAgICBkYXRhOiB0aHJlZURzU3RhdHVzLmNoZWNrb3V0Rm9ybSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aHJlZURzU3RhdHVzLnN0YXR1cyA9PT0gVGhyZWVEc1N0YXR1c1R5cGVzLmNvbGxlY3REZnApIHtcbiAgICAgICAgICB0aGlzLmRmcENvbGxlY3RTZXJ2aWNlLmNvbGxlY3REZnBTdGF0dXMoXG4gICAgICAgICAgICB0aGlzLmxhdGVzdERmcFBhcmFtZXRlcnMgPz8gdGhyZWVEc0Zvcm0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnRocmVlRHMyY29sbGVjdERmcCxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRocmVlRHNTdGF0dXMuc3RhdHVzID09PSBUaHJlZURzU3RhdHVzVHlwZXMuY2hlY2tvdXQgJiZcbiAgICAgICAgICB0aHJlZURzU3RhdHVzLmNoZWNrb3V0Rm9ybVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnN0b3BSZWluc3VyYW5jZU1ldGhvZHMoKTtcblxuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUudGhyZWVEczJjaGVja291dCxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5zdGF0dXNVcGRhdGVzLm5leHQoe1xuICAgICAgICAgICAgdHlwZTogJ2NoZWNrb3V0JyxcbiAgICAgICAgICAgIGRhdGE6IHRocmVlRHNTdGF0dXMuY2hlY2tvdXRGb3JtLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFJlaW5zdXJhbmNlTWV0aG9kcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlLnJlbW92ZVRpbWVyKHRoaXMubm90aWZ5RGZwVGltZXJJZCk7XG4gICAgdGhpcy5yZWluc3VyYW5jZUNoZWNrU2VydmljZS5yZW1vdmVUaW1lcih0aGlzLnN0YXR1c1RocmVlRHNUaW1lcklkKTtcbiAgICB0aGlzLndlYlNvY2tldENsaWVudD8uY2xvc2UoKTtcbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTGF0ZXN0RGZwUGFyYW1ldGVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxhdGVzdERmcFBhcmFtZXRlcnMgPSBudWxsO1xuICB9XG59XG4iXX0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtZHMyMC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3BheW1lbnQvdGhyZWUtZHMvdGhyZWUtZHMtMjAvdGhyZWUtZHMyMC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFLekQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFLOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDNUgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7O0FBSzFHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBa0JELFlBQ21CLG9CQUEwQyxFQUMxQyxzQkFBOEMsRUFDOUMsZ0JBQWtDLEVBQ2xDLGlCQUFvQyxFQUNwQyx1QkFBZ0QsRUFDaEQsNkJBQTREO1FBTDVELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO1FBcEJ2RSxvQkFBZSxHQUEyQixJQUFJLENBQUM7UUFFdEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUVyRCw4QkFB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aExVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2ViU29ja2V0RmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvd2ViLXNvY2tldC5mYWN0b3J5JztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3RhdHVzVGhyZWVEc1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvc3RhdHVzLXRocmVlLWRzL3N0YXR1cy10aHJlZS1kcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmeURmcFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbm90aWZ5LWRmcC1zdGF0dXMvbm90aWZ5LWRmcC1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBUaHJlZURzU3RhdHVzV2ViU29ja2V0VHlwZXMgfSBmcm9tICcuLi90aHJlZS1kcy1zdGF0dXMtd2Vic29ja2V0LXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgVGhyZWVEc0Zvcm0gfSBmcm9tICcuLi90aHJlZS1kcy1mb3JtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHJlZURzU3RhdHVzVHlwZXMgfSBmcm9tICcuLi9hcGkvc3RhdHVzLXRocmVlLWRzL3N0YXR1cy10eXBlcy5lbnVtJztcbmltcG9ydCB7IERmcENvbGxlY3RTZXJ2aWNlIH0gZnJvbSAnLi4vZGZwLWNvbGxlY3QvZGZwLWNvbGxlY3Quc2VydmljZSc7XG5pbXBvcnQgeyBSZWluc3VyYW5jZUNoZWNrU2VydmljZSB9IGZyb20gJy4uL3JlaW5zdXJhbmNlLWNoZWNrL3JlaW5zdXJhbmNlLWNoZWNrLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzVXBkYXRlIH0gZnJvbSAnLi9zdGF0dXMtdXBkYXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnROYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50LW5hbWUuZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaHJlZURzMjBTZXJ2aWNlIHtcbiAgcHVibGljIGdldCBzdGF0dXNVcGRhdGVzJCgpOiBPYnNlcnZhYmxlPFN0YXR1c1VwZGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1c1VwZGF0ZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIHdlYlNvY2tldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHdlYlNvY2tldFJlY29ubmVjdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHdlYlNvY2tldENsaWVudDogV2ViU29ja2V0Q2xpZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNVcGRhdGVzID0gbmV3IFN1YmplY3Q8U3RhdHVzVXBkYXRlPigpO1xuXG4gIHByaXZhdGUgc3RhdHVzUmVxdWVzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbGF0ZXN0RGZwUGFyYW1ldGVyczogVGhyZWVEc0Zvcm0gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmeURmcFRpbWVySWQgPSAnbm90aWZ5LWRmcCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZ5RGZwVGltZW91dE1zID0gMTAwMDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2FpdENhbGxiYWNrTm90aWZ5RGZwVGltZW91dE1zID0gMjAwMDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNUaHJlZURzVGltZXJJZCA9ICdzdGF0dXMtdGhyZWUtZHMnO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1RocmVlRHNUaW1lb3V0TXMgPSAxODAwMDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzVGhyZWVEc1NlcnZpY2U6IFN0YXR1c1RocmVlRHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZ5RGZwU3RhdHVzU2VydmljZTogTm90aWZ5RGZwU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdlYlNvY2tldEZhY3Rvcnk6IFdlYlNvY2tldEZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZnBDb2xsZWN0U2VydmljZTogRGZwQ29sbGVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWluc3VyYW5jZUNoZWNrU2VydmljZTogUmVpbnN1cmFuY2VDaGVja1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgY2hlY2tUaHJlZURzMjAodGhyZWVEc0Zvcm06IFRocmVlRHNGb3JtIHwgbnVsbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhyZWVEc0Zvcm0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNsZWFyTGF0ZXN0RGZwUGFyYW1ldGVycygpO1xuXG4gICAgdGhpcy5yZWluc3VyYW5jZUNoZWNrU2VydmljZS5hZGRUaW1lcih7XG4gICAgICBpZDogdGhpcy5ub3RpZnlEZnBUaW1lcklkLFxuICAgICAgdGltZW91dE1zOiB0aHJlZURzRm9ybS53YWl0Q2FsbGJhY2tcbiAgICAgICAgPyB0aGlzLndhaXRDYWxsYmFja05vdGlmeURmcFRpbWVvdXRNc1xuICAgICAgICA6IHRoaXMubm90aWZ5RGZwVGltZW91dE1zLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgY29uc3QgdGhyZWVEc1RyYW5zYWN0aW9uSWQgPVxuICAgICAgICAgIHRoaXMubGF0ZXN0RGZwUGFyYW1ldGVycz8udGhyZWVEU1RyWGlkID8/IHRocmVlRHNGb3JtLnRocmVlRFNUclhpZDtcbiAgICAgICAgdGhpcy5ub3RpZnlEZnBTdGF0dXNTZXJ2aWNlLnJlcXVlc3QodGhyZWVEc1RyYW5zYWN0aW9uSWQsIGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLndlYlNvY2tldENsaWVudCA9IHRoaXMud2ViU29ja2V0RmFjdG9yeS5jcmVhdGVXZWJTb2NrZXRDbGllbnQoXG4gICAgICB0aHJlZURzRm9ybS53ZWJTb2NrZXRDaGFubmVsVXJsLFxuICAgICAgdGhyZWVEc0Zvcm0ud2ViU29ja2V0Q2xpZW50VHlwZSxcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy53ZWJTb2NrZXRDbGllbnQub3BlbihcbiAgICAgIHRocmVlRHNGb3JtLndlYlNvY2tldENoYW5uZWxVcmwsXG4gICAgICB0aHJlZURzRm9ybS53ZWJTb2NrZXRDbGllbnRUeXBlLFxuICAgICk7XG4gICAgdGhpcy53ZWJTb2NrZXRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLndlYlNvY2tldFN1YnNjcmlwdGlvbiA9IHRoaXMud2ViU29ja2V0Q2xpZW50Lm1lc3NhZ2VzJC5zdWJzY3JpYmUoXG4gICAgICAobWVzc2FnZSkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZSAhPT0gVGhyZWVEc1N0YXR1c1dlYlNvY2tldFR5cGVzLnN0YXR1czNEU19jaGFuZ2VkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0VGhyZWVEc1N0YXR1cyh0aHJlZURzRm9ybSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLndlYlNvY2tldFJlY29ubmVjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLndlYlNvY2tldFJlY29ubmVjdGlvblN1YnNjcmlwdGlvbiA9XG4gICAgICB0aGlzLndlYlNvY2tldENsaWVudC5zdWJzY3JpYmVPblN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb24oKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVlc3RUaHJlZURzU3RhdHVzKHRocmVlRHNGb3JtKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5oYW5kbGVUaHJlZURzVXBkYXRlcyh0aHJlZURzRm9ybSk7XG4gICAgdGhpcy5yZXF1ZXN0VGhyZWVEc1N0YXR1cyh0aHJlZURzRm9ybSk7XG5cbiAgICB0aGlzLnJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlLmFkZFRpbWVyKHtcbiAgICAgIGlkOiB0aGlzLnN0YXR1c1RocmVlRHNUaW1lcklkLFxuICAgICAgdGltZW91dE1zOiB0aGlzLnN0YXR1c1RocmVlRHNUaW1lb3V0TXMsXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVlc3RUaHJlZURzU3RhdHVzKHRocmVlRHNGb3JtKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlcXVlc3RUaHJlZURzU3RhdHVzKHRocmVlRHNGb3JtOiBUaHJlZURzRm9ybSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdHVzVGhyZWVEc1NlcnZpY2UucmVxdWVzdCh0aGlzLmxhdGVzdERmcFBhcmFtZXRlcnMgPz8gdGhyZWVEc0Zvcm0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUaHJlZURzVXBkYXRlcyh0aHJlZURzRm9ybTogVGhyZWVEc0Zvcm0pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0dXNSZXF1ZXN0U3Vic2NyaXB0aW9uID1cbiAgICAgIHRoaXMuc3RhdHVzVGhyZWVEc1NlcnZpY2UucmVzcG9uc2UkLnN1YnNjcmliZSgodGhyZWVEc1N0YXR1cykgPT4ge1xuICAgICAgICBpZiAoIXRocmVlRHNTdGF0dXMpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhyZWVEc1N0YXR1cy5jb2xsZWN0RGZwUGFyYW1ldGVycykge1xuICAgICAgICAgIHRoaXMubGF0ZXN0RGZwUGFyYW1ldGVycyA9IHRocmVlRHNTdGF0dXMuY29sbGVjdERmcFBhcmFtZXRlcnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhyZWVEc1N0YXR1cy5zdGF0dXMgPT09IFRocmVlRHNTdGF0dXNUeXBlcy5jb21wbGV0ZWQpIHtcbiAgICAgICAgICB0aGlzLnN0b3BSZWluc3VyYW5jZU1ldGhvZHMoKTtcblxuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUudGhyZWVEczJjb21wbGV0ZSxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5zdGF0dXNVcGRhdGVzLm5leHQoe1xuICAgICAgICAgICAgdHlwZTogJ2NvbXBsZXRlJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgc3RhdHVzVXJsOiB0aHJlZURzRm9ybS5zdGF0dXNVcmwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aHJlZURzU3RhdHVzLnN0YXR1cyA9PT0gVGhyZWVEc1N0YXR1c1R5cGVzLmNoYWxsZW5nZSAmJlxuICAgICAgICAgIHRocmVlRHNTdGF0dXMuY2hlY2tvdXRGb3JtXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuc3RvcFJlaW5zdXJhbmNlTWV0aG9kcygpO1xuXG4gICAgICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS50aHJlZURzMmNoYWxsZW5nZSxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5zdGF0dXNVcGRhdGVzLm5leHQoe1xuICAgICAgICAgICAgdHlwZTogJ2NoYWxsZW5nZScsXG4gICAgICAgICAgICBkYXRhOiB0aHJlZURzU3RhdHVzLmNoZWNrb3V0Rm9ybSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aHJlZURzU3RhdHVzLnN0YXR1cyA9PT0gVGhyZWVEc1N0YXR1c1R5cGVzLmNvbGxlY3REZnApIHtcbiAgICAgICAgICB0aGlzLmRmcENvbGxlY3RTZXJ2aWNlLmNvbGxlY3REZnBTdGF0dXMoXG4gICAgICAgICAgICB0aGlzLmxhdGVzdERmcFBhcmFtZXRlcnMgPz8gdGhyZWVEc0Zvcm0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnRocmVlRHMyY29sbGVjdERmcCxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRocmVlRHNTdGF0dXMuc3RhdHVzID09PSBUaHJlZURzU3RhdHVzVHlwZXMuY2hlY2tvdXQgJiZcbiAgICAgICAgICB0aHJlZURzU3RhdHVzLmNoZWNrb3V0Rm9ybVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnN0b3BSZWluc3VyYW5jZU1ldGhvZHMoKTtcblxuICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUudGhyZWVEczJjaGVja291dCxcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5zdGF0dXNVcGRhdGVzLm5leHQoe1xuICAgICAgICAgICAgdHlwZTogJ2NoZWNrb3V0JyxcbiAgICAgICAgICAgIGRhdGE6IHRocmVlRHNTdGF0dXMuY2hlY2tvdXRGb3JtLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFJlaW5zdXJhbmNlTWV0aG9kcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlLnJlbW92ZVRpbWVyKHRoaXMubm90aWZ5RGZwVGltZXJJZCk7XG4gICAgdGhpcy5yZWluc3VyYW5jZUNoZWNrU2VydmljZS5yZW1vdmVUaW1lcih0aGlzLnN0YXR1c1RocmVlRHNUaW1lcklkKTtcbiAgICB0aGlzLndlYlNvY2tldENsaWVudD8uY2xvc2UoKTtcbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTGF0ZXN0RGZwUGFyYW1ldGVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxhdGVzdERmcFBhcmFtZXRlcnMgPSBudWxsO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2dvb2dsZS1wYXkvZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBcGlWZXJzaW9uID0gbnVtYmVyO1xudHlwZSBBcGlWZXJzaW9uTWlub3IgPSBudW1iZXI7XG5cbmludGVyZmFjZSBBZGRyZXNzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzMTogc3RyaW5nO1xuICBhZGRyZXNzMjogc3RyaW5nO1xuICBhZGRyZXNzMzogc3RyaW5nO1xuICBsb2NhbGl0eTogc3RyaW5nO1xuICBhZG1pbmlzdHJhdGl2ZUFyZWE6IHN0cmluZztcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcG9zdGFsQ29kZTogc3RyaW5nO1xuICBzb3J0aW5nQ29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEaXNwbGF5SXRlbXMgPSBBcnJheTx7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpY2U6IHN0cmluZztcbn0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSW5mbyB7XG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZVN0YXR1czogc3RyaW5nO1xuICB0b3RhbFByaWNlPzogbnVtYmVyIHwgc3RyaW5nO1xuICBjb3VudHJ5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZUxhYmVsPzogc3RyaW5nO1xuICBkaXNwbGF5SXRlbXM/OiBEaXNwbGF5SXRlbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb3dlZFBheW1lbnRNZXRob2Qge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHtcbiAgICBhbGxvd2VkQXV0aE1ldGhvZHM6IHN0cmluZ1tdO1xuICAgIGFsbG93ZWRDYXJkTmV0d29ya3M6IHN0cmluZ1tdO1xuICAgIGFsbG93UHJlcGFpZENhcmRzOiBib29sZWFuO1xuICAgIGJpbGxpbmdBZGRyZXNzUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgYmlsbGluZ0FkZHJlc3NQYXJhbWV0ZXJzOiB7XG4gICAgICBmb3JtYXQ6IHN0cmluZztcbiAgICAgIHBob25lTnVtYmVyUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgdG9rZW5pemF0aW9uU3BlY2lmaWNhdGlvbjoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBnYXRld2F5OiBzdHJpbmc7XG4gICAgICAndmFudGl2Om1lcmNoYW50UGF5UGFnZUlkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRPcmRlcklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRUcmFuc2FjdGlvbklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRSZXBvcnRHcm91cCc/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc1JlYWR5VG9QYXlSZXF1ZXN0IHtcbiAgYXBpVmVyc2lvbjogQXBpVmVyc2lvbjtcbiAgYXBpVmVyc2lvbk1pbm9yOiBBcGlWZXJzaW9uTWlub3I7XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlQYXltZW50UmVxdWVzdCB7XG4gIGFwaVZlcnNpb246IEFwaVZlcnNpb247XG4gIGFwaVZlcnNpb25NaW5vcjogQXBpVmVyc2lvbk1pbm9yO1xuICBtZXJjaGFudEluZm86IHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gIH07XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbiAgdHJhbnNhY3Rpb25JbmZvOiBUcmFuc2FjdGlvbkluZm87XG4gIGVtYWlsUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHNoaXBwaW5nQWRkcmVzc1JlcXVpcmVkOiBib29sZWFuO1xuICBjYWxsYmFja0ludGVudHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IHtcbiAgdHJhbnNhY3Rpb25TdGF0ZTogJ1NVQ0NFU1MnIHwgJ0VSUk9SJztcbiAgZXJyb3I/OiB7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGludGVudDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhIHtcbiAgYXBpVmVyc2lvbjogbnVtYmVyO1xuICBhcGlWZXJzaW9uTWlub3I6IG51bWJlcjtcbiAgcGF5bWVudE1ldGhvZERhdGE6IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpbmZvOiB7XG4gICAgICBjYXJkRGV0YWlsczogc3RyaW5nO1xuICAgICAgYXNzdXJhbmNlRGV0YWlsczoge1xuICAgICAgICBhY2NvdW50VmVyaWZpZWQ6IGJvb2xlYW47XG4gICAgICAgIGNhcmRIb2xkZXJBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICAgICAgfTtcbiAgICAgIGNhcmROZXR3b3JrOiBzdHJpbmc7XG4gICAgICBiaWxsaW5nQWRkcmVzcz86IEFkZHJlc3M7XG4gICAgfTtcbiAgICB0b2tlbml6YXRpb25EYXRhOiB7XG4gICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICB0b2tlbj86IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBlbWFpbD86IHN0cmluZztcbiAgc2hpcHBpbmdBZGRyZXNzPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3RVcGRhdGUge1xuICBuZXdUcmFuc2FjdGlvbkluZm8/OiB7XG4gICAgZGlzcGxheUl0ZW1zPzogQXJyYXk8e1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIHByaWNlOiBzdHJpbmc7XG4gICAgfT47XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG4gICAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2VMYWJlbD86IHN0cmluZztcbiAgICBjaGVja291dE9wdGlvbj86IHN0cmluZztcbiAgfTtcbiAgbmV3U2hpcHBpbmdPcHRpb25QYXJhbWV0ZXJzPzoge1xuICAgIGRlZmF1bHRTZWxlY3RlZE9wdGlvbklkOiBzdHJpbmc7XG4gICAgc2hpcHBpbmdPcHRpb25zPzogQXJyYXk8e1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB9PjtcbiAgfTtcbiAgbmV3T2ZmZXJJbmZvPzoge1xuICAgIG9mZmVyczogQXJyYXk8e1xuICAgICAgcmVkZW1wdGlvbkNvZGU6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgfT47XG4gIH07XG4gIGVycm9yPzoge1xuICAgIHJlYXNvbjogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBpbnRlbnQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVJbml0RGF0YSB7XG4gIGlzUmVhZHlUb1BheVJlcXVlc3Q6IElzUmVhZHlUb1BheVJlcXVlc3Q7XG4gIHBheW1lbnREYXRhUmVxdWVzdDogR29vZ2xlUGF5UGF5bWVudFJlcXVlc3Q7XG4gIGFtZXhDYXJkTm90aWZpY2F0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybWVkaWF0ZVBheW1lbnREYXRhIHtcbiAgY2FsbGJhY2tUcmlnZ2VyPzogJ0lOSVRJQUxJWkUnIHwgJ1NISVBQSU5HX0FERFJFU1MnIHwgJ1NISVBQSU5HX09QVElPTic7XG4gIHNoaXBwaW5nQWRkcmVzcz86IHtcbiAgICBhZG1pbmlzdHJhdGl2ZUFyZWE6IHN0cmluZztcbiAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgIGxvY2FsaXR5OiBzdHJpbmc7XG4gICAgcG9zdGFsQ29kZTogc3RyaW5nO1xuICB9O1xuICBzaGlwcGluZ09wdGlvbkRhdGE/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUGF5bWVudERhdGFDaGFuZ2VkSGFuZGxlciA9IChcbiAgaW50ZXJtZWRpYXRlUGF5bWVudERhdGE6IEludGVybWVkaWF0ZVBheW1lbnREYXRhLFxuKSA9PiBQcm9taXNlPFBheW1lbnREYXRhUmVxdWVzdFVwZGF0ZT47XG5cbmV4cG9ydCB0eXBlIFBheW1lbnRBdXRob3JpemVkSGFuZGxlciA9IChcbiAgcGF5bWVudERhdGE6IFBheW1lbnREYXRhLFxuKSA9PiBQcm9taXNlPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PjtcblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0RGF0YSB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHBheW1lbnREYXRhQ2FsbGJhY2tzPzoge1xuICAgIG9uUGF5bWVudERhdGFDaGFuZ2VkOiBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyO1xuICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IFBheW1lbnRBdXRob3JpemVkSGFuZGxlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0IHtcbiAgbmV3IChvcHRpb25zOiBHb29nbGVQYXlDbGllbnRJbml0RGF0YSk6IEdvb2dsZVBheUNsaWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3Qge1xuICB0cmFuc2FjdGlvbkluZm86IHtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhUmVzcG9uc2Uge1xuICBwYXltZW50TWV0aG9kRGF0YToge1xuICAgIHRva2VuaXphdGlvbkRhdGE6IHtcbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdXR0b25PcHRpb25zIHtcbiAgb25DbGljaygpOiB2b2lkO1xuICBhbGxvd2VkUGF5bWVudE1ldGhvZHM6IEFsbG93ZWRQYXltZW50TWV0aG9kW107XG4gIGJ1dHRvbkNvbG9yPzogJ2RlZmF1bHQnIHwgJ2JsYWNrJyB8ICd3aGl0ZSc7XG4gIGJ1dHRvblR5cGU/OiAncGxhaW4nIHwgJ2J1eSc7XG4gIGJ1dHRvblNpemVNb2RlPzogJ3N0YXRpYycgfCAnZmlsbCc7XG4gIGJ1dHRvbkxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlMaWJyYXJ5IHtcbiAgcGF5bWVudHM6IHtcbiAgICBhcGk6IHtcbiAgICAgIFBheW1lbnRzQ2xpZW50OiBHb29nbGVQYXlDbGllbnRJbml0O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEdvb2dsZVBheUNsaWVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiB7IGVudmlyb25tZW50OiBzdHJpbmcgfSk7XG5cbiAgcHVibGljIGlzUmVhZHlUb1BheShcbiAgICBpc1JlYWR5VG9QYXlSZXF1ZXN0OiBJc1JlYWR5VG9QYXlSZXF1ZXN0LFxuICApOiBQcm9taXNlPHsgcmVzdWx0OiBib29sZWFuIH0+O1xuXG4gIHB1YmxpYyBjcmVhdGVCdXR0b24ob3B0aW9uczogQnV0dG9uT3B0aW9ucyk6IEhUTUxCdXR0b25FbGVtZW50O1xuXG4gIHB1YmxpYyBsb2FkUGF5bWVudERhdGEoXG4gICAgcGF5bWVudERhdGFSZXF1ZXN0OiBHb29nbGVQYXlQYXltZW50UmVxdWVzdCxcbiAgKTogUHJvbWlzZTxQYXltZW50RGF0YVJlc3BvbnNlPjtcblxuICBwdWJsaWMgcHJlZmV0Y2hQYXltZW50RGF0YShwYXltZW50RGF0YVJlcXVlc3Q6IEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0KTogdm9pZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2dvb2dsZS1wYXkvZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBcGlWZXJzaW9uID0gbnVtYmVyO1xudHlwZSBBcGlWZXJzaW9uTWlub3IgPSBudW1iZXI7XG5cbmludGVyZmFjZSBBZGRyZXNzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzMTogc3RyaW5nO1xuICBhZGRyZXNzMjogc3RyaW5nO1xuICBhZGRyZXNzMzogc3RyaW5nO1xuICBsb2NhbGl0eTogc3RyaW5nO1xuICBhZG1pbmlzdHJhdGl2ZUFyZWE6IHN0cmluZztcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcG9zdGFsQ29kZTogc3RyaW5nO1xuICBzb3J0aW5nQ29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEaXNwbGF5SXRlbXMgPSBBcnJheTx7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpY2U6IHN0cmluZztcbn0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSW5mbyB7XG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZVN0YXR1czogc3RyaW5nO1xuICB0b3RhbFByaWNlPzogbnVtYmVyIHwgc3RyaW5nO1xuICBjb3VudHJ5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZUxhYmVsPzogc3RyaW5nO1xuICBkaXNwbGF5SXRlbXM/OiBEaXNwbGF5SXRlbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb3dlZFBheW1lbnRNZXRob2Qge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHtcbiAgICBhbGxvd2VkQXV0aE1ldGhvZHM6IHN0cmluZ1tdO1xuICAgIGFsbG93ZWRDYXJkTmV0d29ya3M6IHN0cmluZ1tdO1xuICAgIGFsbG93UHJlcGFpZENhcmRzOiBib29sZWFuO1xuICAgIGJpbGxpbmdBZGRyZXNzUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgYmlsbGluZ0FkZHJlc3NQYXJhbWV0ZXJzOiB7XG4gICAgICBmb3JtYXQ6IHN0cmluZztcbiAgICAgIHBob25lTnVtYmVyUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgdG9rZW5pemF0aW9uU3BlY2lmaWNhdGlvbjoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBnYXRld2F5OiBzdHJpbmc7XG4gICAgICAndmFudGl2Om1lcmNoYW50UGF5UGFnZUlkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRPcmRlcklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRUcmFuc2FjdGlvbklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRSZXBvcnRHcm91cCc/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc1JlYWR5VG9QYXlSZXF1ZXN0IHtcbiAgYXBpVmVyc2lvbjogQXBpVmVyc2lvbjtcbiAgYXBpVmVyc2lvbk1pbm9yOiBBcGlWZXJzaW9uTWlub3I7XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlQYXltZW50UmVxdWVzdCB7XG4gIGFwaVZlcnNpb246IEFwaVZlcnNpb247XG4gIGFwaVZlcnNpb25NaW5vcjogQXBpVmVyc2lvbk1pbm9yO1xuICBtZXJjaGFudEluZm86IHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gIH07XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbiAgdHJhbnNhY3Rpb25JbmZvOiBUcmFuc2FjdGlvbkluZm87XG4gIGVtYWlsUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHNoaXBwaW5nQWRkcmVzc1JlcXVpcmVkOiBib29sZWFuO1xuICBjYWxsYmFja0ludGVudHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IHtcbiAgdHJhbnNhY3Rpb25TdGF0ZTogJ1NVQ0NFU1MnIHwgJ0VSUk9SJztcbiAgZXJyb3I/OiB7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGludGVudDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhIHtcbiAgYXBpVmVyc2lvbjogbnVtYmVyO1xuICBhcGlWZXJzaW9uTWlub3I6IG51bWJlcjtcbiAgcGF5bWVudE1ldGhvZERhdGE6IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpbmZvOiB7XG4gICAgICBjYXJkRGV0YWlsczogc3RyaW5nO1xuICAgICAgYXNzdXJhbmNlRGV0YWlsczoge1xuICAgICAgICBhY2NvdW50VmVyaWZpZWQ6IGJvb2xlYW47XG4gICAgICAgIGNhcmRIb2xkZXJBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICAgICAgfTtcbiAgICAgIGNhcmROZXR3b3JrOiBzdHJpbmc7XG4gICAgICBiaWxsaW5nQWRkcmVzcz86IEFkZHJlc3M7XG4gICAgfTtcbiAgICB0b2tlbml6YXRpb25EYXRhOiB7XG4gICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICB0b2tlbj86IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBlbWFpbD86IHN0cmluZztcbiAgc2hpcHBpbmdBZGRyZXNzPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3RVcGRhdGUge1xuICBuZXdUcmFuc2FjdGlvbkluZm8/OiB7XG4gICAgZGlzcGxheUl0ZW1zPzogQXJyYXk8e1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIHByaWNlOiBzdHJpbmc7XG4gICAgfT47XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG4gICAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2VMYWJlbD86IHN0cmluZztcbiAgICBjaGVja291dE9wdGlvbj86IHN0cmluZztcbiAgfTtcbiAgbmV3U2hpcHBpbmdPcHRpb25QYXJhbWV0ZXJzPzoge1xuICAgIGRlZmF1bHRTZWxlY3RlZE9wdGlvbklkOiBzdHJpbmc7XG4gICAgc2hpcHBpbmdPcHRpb25zPzogQXJyYXk8e1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB9PjtcbiAgfTtcbiAgbmV3T2ZmZXJJbmZvPzoge1xuICAgIG9mZmVyczogQXJyYXk8e1xuICAgICAgcmVkZW1wdGlvbkNvZGU6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgfT47XG4gIH07XG4gIGVycm9yPzoge1xuICAgIHJlYXNvbjogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBpbnRlbnQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVJbml0RGF0YSB7XG4gIGlzUmVhZHlUb1BheVJlcXVlc3Q6IElzUmVhZHlUb1BheVJlcXVlc3Q7XG4gIHBheW1lbnREYXRhUmVxdWVzdDogR29vZ2xlUGF5UGF5bWVudFJlcXVlc3Q7XG4gIGFtZXhDYXJkTm90aWZpY2F0aW9uPzogc3RyaW5nO1xuICBlbnZpcm9ubWVudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm1lZGlhdGVQYXltZW50RGF0YSB7XG4gIGNhbGxiYWNrVHJpZ2dlcj86ICdJTklUSUFMSVpFJyB8ICdTSElQUElOR19BRERSRVNTJyB8ICdTSElQUElOR19PUFRJT04nO1xuICBzaGlwcGluZ0FkZHJlc3M/OiB7XG4gICAgYWRtaW5pc3RyYXRpdmVBcmVhOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBsb2NhbGl0eTogc3RyaW5nO1xuICAgIHBvc3RhbENvZGU6IHN0cmluZztcbiAgfTtcbiAgc2hpcHBpbmdPcHRpb25EYXRhPzoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFBheW1lbnREYXRhQ2hhbmdlZEhhbmRsZXIgPSAoXG4gIGludGVybWVkaWF0ZVBheW1lbnREYXRhOiBJbnRlcm1lZGlhdGVQYXltZW50RGF0YSxcbikgPT4gUHJvbWlzZTxQYXltZW50RGF0YVJlcXVlc3RVcGRhdGU+O1xuXG5leHBvcnQgdHlwZSBQYXltZW50QXV0aG9yaXplZEhhbmRsZXIgPSAoXG4gIHBheW1lbnREYXRhOiBQYXltZW50RGF0YSxcbikgPT4gUHJvbWlzZTxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBwYXltZW50RGF0YUNhbGxiYWNrcz86IHtcbiAgICBvblBheW1lbnREYXRhQ2hhbmdlZDogUGF5bWVudERhdGFDaGFuZ2VkSGFuZGxlcjtcbiAgICBvblBheW1lbnRBdXRob3JpemVkOiBQYXltZW50QXV0aG9yaXplZEhhbmRsZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGF5Q2xpZW50SW5pdCB7XG4gIG5ldyAob3B0aW9uczogR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEpOiBHb29nbGVQYXlDbGllbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudERhdGFSZXF1ZXN0IHtcbiAgdHJhbnNhY3Rpb25JbmZvOiB7XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZVN0YXR1czogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2U6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlc3BvbnNlIHtcbiAgcGF5bWVudE1ldGhvZERhdGE6IHtcbiAgICB0b2tlbml6YXRpb25EYXRhOiB7XG4gICAgICB0b2tlbjogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uT3B0aW9ucyB7XG4gIG9uQ2xpY2soKTogdm9pZDtcbiAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBBbGxvd2VkUGF5bWVudE1ldGhvZFtdO1xuICBidXR0b25Db2xvcj86ICdkZWZhdWx0JyB8ICdibGFjaycgfCAnd2hpdGUnO1xuICBidXR0b25UeXBlPzogJ3BsYWluJyB8ICdidXknO1xuICBidXR0b25TaXplTW9kZT86ICdzdGF0aWMnIHwgJ2ZpbGwnO1xuICBidXR0b25Mb2NhbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGF5TGlicmFyeSB7XG4gIHBheW1lbnRzOiB7XG4gICAgYXBpOiB7XG4gICAgICBQYXltZW50c0NsaWVudDogR29vZ2xlUGF5Q2xpZW50SW5pdDtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBHb29nbGVQYXlDbGllbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogeyBlbnZpcm9ubWVudDogc3RyaW5nIH0pO1xuXG4gIHB1YmxpYyBpc1JlYWR5VG9QYXkoXG4gICAgaXNSZWFkeVRvUGF5UmVxdWVzdDogSXNSZWFkeVRvUGF5UmVxdWVzdCxcbiAgKTogUHJvbWlzZTx7IHJlc3VsdDogYm9vbGVhbiB9PjtcblxuICBwdWJsaWMgY3JlYXRlQnV0dG9uKG9wdGlvbnM6IEJ1dHRvbk9wdGlvbnMpOiBIVE1MQnV0dG9uRWxlbWVudDtcblxuICBwdWJsaWMgbG9hZFBheW1lbnREYXRhKFxuICAgIHBheW1lbnREYXRhUmVxdWVzdDogR29vZ2xlUGF5UGF5bWVudFJlcXVlc3QsXG4gICk6IFByb21pc2U8UGF5bWVudERhdGFSZXNwb25zZT47XG5cbiAgcHVibGljIHByZWZldGNoUGF5bWVudERhdGEocGF5bWVudERhdGFSZXF1ZXN0OiBHb29nbGVQYXlQYXltZW50UmVxdWVzdCk6IHZvaWQ7XG59XG4iXX0=
@@ -35,6 +35,8 @@ export class GooglePayService {
35
35
  this.analyticsEvent = new Subject();
36
36
  this.paymentInProgress = false;
37
37
  this.googlePaymentClient = null;
38
+ this.googlePayClientEnvironment = null;
39
+ this.serverEnvironment = null;
38
40
  this.paymentService = null;
39
41
  }
40
42
  get readyToPay$() {
@@ -87,6 +89,8 @@ export class GooglePayService {
87
89
  this.loggerService.error(new TaggedError('No initialization data', [ErrorTags.GOOGLEPAY]));
88
90
  throw new AppError('Google Pay: no initialization data');
89
91
  }
92
+ this.serverEnvironment = initData.environment ?? null;
93
+ this.setupGooglePayClient();
90
94
  this.googlePaymentClient
91
95
  .isReadyToPay(initData.isReadyToPayRequest)
92
96
  .then((response) => {
@@ -111,6 +115,7 @@ export class GooglePayService {
111
115
  });
112
116
  }
113
117
  async proceedCheckout() {
118
+ this.setupGooglePayClient();
114
119
  if (!this.googlePaymentClient) {
115
120
  this.loggerService.error(new TaggedError('Google payment client is not initialized to proceed checkout', [ErrorTags.GOOGLEPAY]));
116
121
  throw new AppError(`Google Pay. proceedCheckout: no google payment client`);
@@ -185,6 +190,12 @@ export class GooglePayService {
185
190
  buttonLocale: this.getLocaleForButton(configuration.locale),
186
191
  });
187
192
  }
193
+ resolveGooglePayEnvironment() {
194
+ if (this.serverEnvironment) {
195
+ return this.serverEnvironment;
196
+ }
197
+ return this.initParams.isSandbox ? 'TEST' : 'PRODUCTION';
198
+ }
188
199
  setupGooglePayClient() {
189
200
  if (!this.window.google) {
190
201
  this.loggerService.error(new TaggedError('Google Pay library is not available on window', [
@@ -192,7 +203,11 @@ export class GooglePayService {
192
203
  ]));
193
204
  return;
194
205
  }
195
- const environment = this.initParams.isSandbox ? 'TEST' : 'PRODUCTION';
206
+ const environment = this.resolveGooglePayEnvironment();
207
+ if (this.googlePaymentClient &&
208
+ this.googlePayClientEnvironment === environment) {
209
+ return;
210
+ }
196
211
  const googlePaymentClientData = {
197
212
  environment,
198
213
  };
@@ -204,6 +219,7 @@ export class GooglePayService {
204
219
  }
205
220
  this.googlePaymentClient =
206
221
  new this.window.google.payments.api.PaymentsClient(googlePaymentClientData);
222
+ this.googlePayClientEnvironment = environment;
207
223
  }
208
224
  onLoadScript() {
209
225
  if (!this.window.google) {
@@ -288,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
288
304
  type: Inject,
289
305
  args: [windowToken]
290
306
  }] }, { type: i1.LoggerService }, { type: i2.PaymentSystemProcessingService }, { type: i3.GooglePayCheckoutPaymentService }, { type: i4.GooglePayInstantPaymentService }, { type: i0.Injector }] });
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvZ29vZ2xlLXBheS9nb29nbGUtcGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUVMLE9BQU8sRUFDUCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRWxGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBR3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFFekgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOzs7Ozs7QUFLcEcsTUFBTSxPQUFPLGdCQUFnQjtJQWtCM0IsSUFBWSxxQkFBcUI7UUFDL0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVksaUNBQWlDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFFbUIsTUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsOEJBQThELEVBQzlELCtCQUFnRSxFQUNo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UUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3hFLENBQUM7K0dBM1lVLGdCQUFnQixrQkEyQmpCLFdBQVc7bUhBM0JWLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTRCSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGZpbHRlcixcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2UsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9hcHAtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDaGVja1N0YXR1c0FjdGlvbiB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi50eXBlJztcbmltcG9ydCB7IE5leHRBY3Rpb24gfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvbmV4dC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlY2tQYXltZW50RGV2aWNlRGF0YSB9IGZyb20gJy4vY2hlY2stcGF5bWVudC1kZXZpY2UtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5SW5pdFBhcmFtcyB9IGZyb20gJy4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgR29vZ2xlUGF5Q2xpZW50LFxuICBHb29nbGVQYXlDbGllbnRJbml0RGF0YSxcbiAgUGF5bWVudEF1dGhvcml6ZWRIYW5kbGVyLFxuICBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyLFxufSBmcm9tICcuL2dvb2dsZS1wYXktbGlicmFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXRQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LWNoZWNrb3V0LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2UgfSBmcm9tICcuL3BheW1lbnQvZ29vZ2xlLXBheS1pbnN0YW50LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LXBheW1lbnQtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhZ2dlZEVycm9yIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMnO1xuaW1wb3J0IHsgR29vZ2xlUGF5QnV0dG9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZ29vZ2xlLXBheS1idXR0b24tY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzRXZlbnRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ29vZ2xlUGF5IH0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BzNC1wYWdlcy9wYWdlcy1wYXltZW50LW1ldGhvZHMtaWQuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlUGF5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ29vZ2xlUGF5U2NyaXB0VXJsID0gJ2h0dHBzOi8vcGF5Lmdvb2dsZS5jb20vZ3AvcC9qcy9wYXkuanMnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlUb1BheSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbiB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRXaW5kb3dJc1JlYWR5ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50V2luZG93SXNDbG9zZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3IgPSBuZXcgU3ViamVjdDx1bmtub3duPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHByaXZhdGUgcGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIGdvb2dsZVBheW1lbnRDbGllbnQ6IEdvb2dsZVBheUNsaWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGluaXRQYXJhbXMhOiBHb29nbGVQYXlJbml0UGFyYW1zO1xuICBwcml2YXRlIHBheW1lbnRTZXJ2aWNlOiBHb29nbGVQYXlQYXltZW50U2VydmljZSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgb25QYXltZW50RGF0YUNoYW5nZWQhOiBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyO1xuICBwcml2YXRlIG9uUGF5bWVudEF1dGhvcml6ZWQhOiBQYXltZW50QXV0aG9yaXplZEhhbmRsZXI7XG5cbiAgcHJpdmF0ZSBnZXQgbGlicmFyeVdhc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMud2luZG93Lmdvb2dsZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGdvb2dsZVBheW1lbnRDbGllbnRXYXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQ7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlOiBQYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBnb29nbGVQYXlDaGVja291dFBheW1lbnRTZXJ2aWNlOiBHb29nbGVQYXlDaGVja291dFBheW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ29vZ2xlUGF5SW5zdGFudFBheW1lbnRTZXJ2aWNlOiBHb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge31cblxuICBwdWJsaWMgZ2V0IHJlYWR5VG9QYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVRvUGF5LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50V2luZG93SXNSZWFkeSQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudFdpbmRvd0lzUmVhZHkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRXaW5kb3dJc0Nsb3NlJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50V2luZG93SXNDbG9zZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXJyb3IkKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhbmFseXRpY3NFdmVudCQoKTogT2JzZXJ2YWJsZTxBbmFseXRpY3NFdmVudFBheWxvYWQ+IHtcbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICB0aGlzLmFuYWx5dGljc0V2ZW50LmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgdGhpcy5nb29nbGVQYXlDaGVja291dFBheW1lbnRTZXJ2aWNlLmFuYWx5dGljc0V2ZW50JCxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGlzUmVhZHlUb1BheSgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVhZHlUb1BheS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXRHb29nbGVQYXlMaWJyYXJ5KGRhdGE6IEdvb2dsZVBheUluaXRQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRQYXJhbXMgPSBkYXRhO1xuICAgIHRoaXMub25QYXltZW50RGF0YUNoYW5nZWQgPSBkYXRhLm9uUGF5bWVudERhdGFDaGFuZ2VkO1xuICAgIHRoaXMub25QYXltZW50QXV0aG9yaXplZCA9IGRhdGEub25QYXltZW50QXV0aG9yaXplZDtcblxuICAgIGlmICh0aGlzLmxpYnJhcnlXYXNJbml0aWFsaXplZCAmJiB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnRXYXNJbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpYnJhcnlXYXNJbml0aWFsaXplZCAmJiAhdGhpcy5nb29nbGVQYXltZW50Q2xpZW50V2FzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5sb2FkU2NyaXB0KFxuICAgICAgdGhpcy5nb29nbGVQYXlTY3JpcHRVcmwsXG4gICAgICB0aGlzLm9uTG9hZFNjcmlwdC5iaW5kKHRoaXMpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tQYXltZW50RGV2aWNlKGRhdGE6IENoZWNrUGF5bWVudERldmljZURhdGEpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5pbml0aWFsaXplJFxuICAgICAgLnBpcGUoZmlsdGVyKEJvb2xlYW4pLCB0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5nb29nbGVQYXltZW50Q2xpZW50KSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdHb29nbGUgcGF5bWVudCBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkJywgW1xuICAgICAgICAgICAgICBFcnJvclRhZ3MuR09PR0xFUEFZLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoXG4gICAgICAgICAgICBgR29vZ2xlIFBheTogR29vZ2xlIHBheW1lbnQgY2xpZW50IGlzIG5vdCBpbml0aWFsaXplZGAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UgPSB0aGlzLmdldFBheW1lbnRTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGluaXREYXRhID0gdGhpcy5wYXltZW50U2VydmljZS5wcmVwYXJlUGF5bWVudCh7XG4gICAgICAgICAgaW5pdFBhcmFtczogdGhpcy5pbml0UGFyYW1zLFxuICAgICAgICAgIGNoZWNrRGV2aWNlRGF0YTogZGF0YSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFpbml0RGF0YSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgIG5ldyBUYWdnZWRFcnJvcignTm8gaW5pdGlhbGl6YXRpb24gZGF0YScsIFtFcnJvclRhZ3MuR09PR0xFUEFZXSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoJ0dvb2dsZSBQYXk6IG5vIGluaXRpYWxpemF0aW9uIGRhdGEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudFxuICAgICAgICAgIC5pc1JlYWR5VG9QYXkoaW5pdERhdGEuaXNSZWFkeVRvUGF5UmVxdWVzdClcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQgJiYgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudC5wcmVmZXRjaFBheW1lbnREYXRhKFxuICAgICAgICAgICAgICAgIGluaXREYXRhLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkeVRvUGF5Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVhZHlUb1BheS5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdD8udG9TdHJpbmcoKSA/PyAnJztcbiAgICAgICAgICAgIGNvbnN0IGlzSGF2ZVBheW1lbnRDbGllbnQgPSBCb29sZWFuKFxuICAgICAgICAgICAgICB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQsXG4gICAgICAgICAgICApLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgR29vZ2xlIFBheTogcG9zc2libHkgbm8gcmVzcG9uc2UucmVzdWx0IG9yIGdvb2dsZVBheW1lbnRDbGllbnQgaXMgbWlzc2luZywgcmVzdWx0IC0gJHtyZXN1bHR9LCBpc0hhdmVQYXltZW50Q2xpZW50IC0gJHtpc0hhdmVQYXltZW50Q2xpZW50fWA7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgIG5ldyBUYWdnZWRFcnJvcihtZXNzYWdlLCBbRXJyb3JUYWdzLkdPT0dMRVBBWV0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVhZHlUb1BheS5uZXh0KGZhbHNlKTtcblxuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAoZXJyb3IgYXMgc3RyaW5nKSA/PyAnJztcblxuICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICAgICAgIGBHb29nbGUgUGF5OiBkZXZpY2UgaXMgbm90IHJlYWR5IHRvIHBheSwgJHttZXNzYWdlfWAsXG4gICAgICAgICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHByb2NlZWRDaGVja291dCgpOiBQcm9taXNlPENoZWNrU3RhdHVzQWN0aW9uIHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5nb29nbGVQYXltZW50Q2xpZW50KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihcbiAgICAgICAgICAnR29vZ2xlIHBheW1lbnQgY2xpZW50IGlzIG5vdCBpbml0aWFsaXplZCB0byBwcm9jZWVkIGNoZWNrb3V0JyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKFxuICAgICAgICBgR29vZ2xlIFBheS4gcHJvY2VlZENoZWNrb3V0OiBubyBnb29nbGUgcGF5bWVudCBjbGllbnRgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGF5bWVudFNlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgcGF5bWVudCBzZXJ2aWNlIGlzIG5vdCBpbml0aWFsaXplZCB0byBwcm9jZWVkIGNoZWNrb3V0JyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKFxuICAgICAgICBgR29vZ2xlIFBheS4gcHJvY2VlZENoZWNrb3V0OiBubyBnb29nbGUgcGF5bWVudCBzZXJ2aWNlYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZ29vZ2xlIHN1cHBvcnQgb25seSBvbmUgcGF5bWVudCBpbiB0aW1lXG4gICAgaWYgKHRoaXMucGF5bWVudEluUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KSB7XG4gICAgICB0aGlzLmFuYWx5dGljc0V2ZW50Lm5leHQoe1xuICAgICAgICBldmVudE5hbWU6IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuc3lzSW5zdGFudEZsb3dPcGVuLFxuICAgICAgICBldmVudFR5cGU6IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm9wZW4sXG4gICAgICAgIGluc3RhbmNlSWQ6IGdvb2dsZVBheSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHBheW1lbnREYXRhUmVxdWVzdCA9IHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0UGF5bWVudFJlcXVlc3QoKTtcblxuICAgIGlmICghcGF5bWVudERhdGFSZXF1ZXN0KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignTm8gZGF0YSBmb3IgcGF5bWVudCBkYXRhIHJlcXVlc3QnLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkdPT0dMRVBBWSxcbiAgICAgICAgXSksXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKGBHb29nbGUgUGF5OiBObyBkYXRhIGZvciBwYXltZW50IGRhdGEgcmVxdWVzdGApO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrU3RhdHVzQWN0aW9uOiBOZXh0QWN0aW9uID0gdGhpcy5pbmplY3RvclxuICAgICAgLmdldDxDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3I+KENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcilcbiAgICAgIC5nZXRBY3Rpb25EYXRhKCk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5wYXltZW50SW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICAgIHRoaXMucGF5bWVudFdpbmRvd0lzUmVhZHkubmV4dCgpO1xuXG4gICAgICBjb25zdCBwYXltZW50RGF0YSA9XG4gICAgICAgIGF3YWl0IHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudC5sb2FkUGF5bWVudERhdGEocGF5bWVudERhdGFSZXF1ZXN0KTtcblxuICAgICAgaWYgKCFwYXltZW50RGF0YT8ucGF5bWVudE1ldGhvZERhdGE/LnRva2VuaXphdGlvbkRhdGE/LnRva2VuKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoJ1Rva2VuIGlzIG1pc3NpbmcnLCBbRXJyb3JUYWdzLkdPT0dMRVBBWV0pLFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoJ0dvb2dsZSBQYXk6IHRva2VuIGlzIG1pc3NpbmcnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wYXltZW50U2VydmljZS5oYW5kbGVTdWNjZXNzZnVsUGF5bWVudD8uKHBheW1lbnREYXRhKTtcblxuICAgICAgdGhpcy5wYXltZW50V2luZG93SXNDbG9zZS5uZXh0KCk7XG5cbiAgICAgIHRoaXMucGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNoZWNrU3RhdHVzQWN0aW9uO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICB0aGlzLnBheW1lbnRJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuaGFuZGxlRmFpbGVkUGF5bWVudD8uKGVycm9yKTtcbiAgICAgIHRoaXMucGF5bWVudFdpbmRvd0lzQ2xvc2UubmV4dCgpO1xuICAgICAgdGhpcy5lcnJvci5uZXh0KGVycm9yKTtcblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gKGVycm9yIGFzIHsgbWVzc2FnZTogc3RyaW5nIH0pPy5tZXNzYWdlID8/ICcnO1xuICAgICAgY29uc3QgZXJyb3JTdGF0dXNDb2RlID1cbiAgICAgICAgKGVycm9yIGFzIHsgc3RhdHVzQ29kZTogc3RyaW5nIH0pPy5zdGF0dXNDb2RlID8/ICcnO1xuXG4gICAgICBjb25zdCBpc0Nsb3NlZEJ5VXNlciA9IHRoaXMuaXNDbG9zZWRCeVVzZXIoZXJyb3JNZXNzYWdlKTtcbiAgICAgIGNvbnN0IGlzQ2FuY2VsZWRTdGF0dXMgPSB0aGlzLmlzQ2FuY2VsZWRTdGF0dXMoZXJyb3JTdGF0dXNDb2RlKTtcblxuICAgICAgaWYgKGlzQ2xvc2VkQnlVc2VyIHx8IGlzQ2FuY2VsZWRTdGF0dXMpIHJldHVybiBudWxsO1xuXG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihgR29vZ2xlIFBheTogcHJvY2VlZENoZWNrb3V0IGZhaWxlZCwgJHtlcnJvck1lc3NhZ2V9YCwgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGNoZWNrU3RhdHVzQWN0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVCdXR0b24oXG4gICAgb25DbGlja0hhbmRsZXI6ICgpID0+IHZvaWQsXG4gICAgY29uZmlndXJhdGlvbjogR29vZ2xlUGF5QnV0dG9uQ29uZmlndXJhdGlvbixcbiAgKTogSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoXG4gICAgICAgICAgJ0dvb2dsZSBwYXltZW50IGNsaWVudCBpcyBub3QgaW5pdGlhbGl6ZWQgdG8gY3JlYXRlIGJ1dHRvbicsXG4gICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbG93ZWRQYXltZW50TWV0aG9kcyA9XG4gICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlPy5nZXRBbGxvd2VkUGF5bWVudE1ldGhvZHMoKSB8fCBbXTtcblxuICAgIHJldHVybiB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQuY3JlYXRlQnV0dG9uKHtcbiAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tIYW5kbGVyLFxuICAgICAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBhbGxvd2VkUGF5bWVudE1ldGhvZHMsXG4gICAgICBidXR0b25TaXplTW9kZTogJ2ZpbGwnLFxuICAgICAgYnV0dG9uVHlwZTogJ2J1eScsXG4gICAgICBidXR0b25Db2xvcjogY29uZmlndXJhdGlvbi5jb2xvciA/PyAnZGVmYXVsdCcsXG4gICAgICBidXR0b25Mb2NhbGU6IHRoaXMuZ2V0TG9jYWxlRm9yQnV0dG9uKGNvbmZpZ3VyYXRpb24ubG9jYWxlKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBHb29nbGVQYXlDbGllbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5nb29nbGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdHb29nbGUgUGF5IGxpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBvbiB3aW5kb3cnLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkdPT0dMRVBBWSxcbiAgICAgICAgXSksXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy5pbml0UGFyYW1zLmlzU2FuZGJveCA/ICdURVNUJyA6ICdQUk9EVUNUSU9OJztcbiAgICBjb25zdCBnb29nbGVQYXltZW50Q2xpZW50RGF0YTogR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEgPSB7XG4gICAgICBlbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KSB7XG4gICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YS5wYXltZW50RGF0YUNhbGxiYWNrcyA9IHtcbiAgICAgICAgb25QYXltZW50RGF0YUNoYW5nZWQ6IHRoaXMub25QYXltZW50RGF0YUNoYW5nZWQsXG4gICAgICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IHRoaXMub25QYXltZW50QXV0aG9yaXplZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50ID1cbiAgICAgIG5ldyB0aGlzLndpbmRvdy5nb29nbGUucGF5bWVudHMuYXBpLlBheW1lbnRzQ2xpZW50KFxuICAgICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZFNjcmlwdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMud2luZG93Lmdvb2dsZSkge1xuICAgICAgY29uc3QgcmV0cnlUaW1lb3V0ID0gMTAwMDtcblxuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoXG4gICAgICAgICAgJ0dvb2dsZSBQYXk6IGxpYnJhcnkgbm90IGF2YWlsYWJsZSBhZnRlciBzY3JpcHQgbG9hZCwgcmV0cnlpbmcnLFxuICAgICAgICAgIFtFcnJvclRhZ3MuR09PR0xFUEFZXSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBpc0F2YWlsYWJsZUdvb2dsZUNsaWVudCA9ICEhdGhpcy53aW5kb3cuZ29vZ2xlO1xuXG4gICAgICAgIGlmIChpc0F2YWlsYWJsZUdvb2dsZUNsaWVudCkge1xuICAgICAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcblxuICAgICAgICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRJbml0aWFsaXplKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LCByZXRyeVRpbWVvdXQpO1xuXG4gICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoJ0dvb2dsZSBQYXk6IGdvb2dsZSBsaWJyYXJ5IG5vdyBpcyBhdmFpbGFibGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXR1cEdvb2dsZVBheUNsaWVudCgpO1xuXG4gICAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5lbWl0SW5pdGlhbGl6ZSh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBheW1lbnRTZXJ2aWNlKCk6IEdvb2dsZVBheVBheW1lbnRTZXJ2aWNlIHtcbiAgICBpZiAodGhpcy5pbml0UGFyYW1zLmlzSW5zdGFudFBheUZsb3cpXG4gICAgICByZXR1cm4gdGhpcy5nb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2U7XG4gICAgcmV0dXJuIHRoaXMuZ29vZ2xlUGF5Q2hlY2tvdXRQYXltZW50U2VydmljZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbG9zZWRCeVVzZXIobWVzc2FnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygndXNlciBjbG9zZWQgdGhlIHBheW1lbnQgcmVxdWVzdCB1aScpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NhbmNlbGVkU3RhdHVzKHN0YXR1c0NvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXNDb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdjYW5jZWxlZCc7XG4gIH1cblxuICBwcml2YXRlIGdldExvY2FsZUZvckJ1dHRvbih1c2VyTG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFsbG93ZWRMb2NhbGVzID0gW1xuICAgICAgJ2VuJyxcbiAgICAgICdhcicsXG4gICAgICAnYmcnLFxuICAgICAgJ2NhJyxcbiAgICAgICdjcycsXG4gICAgICAnZGEnLFxuICAgICAgJ2RlJyxcbiAgICAgICdlbCcsXG4gICAgICAnZXMnLFxuICAgICAgJ2V0JyxcbiAgICAgICdmaScsXG4gICAgICAnZnInLFxuICAgICAgJ2hyJyxcbiAgICAgICdpZCcsXG4gICAgICAnaXQnLFxuICAgICAgJ2phJyxcbiAgICAgICdrbycsXG4gICAgICAnbXMnLFxuICAgICAgJ25sJyxcbiAgICAgICdubycsXG4gICAgICAncGwnLFxuICAgICAgJ3B0JyxcbiAgICAgICdydScsXG4gICAgICAnc2snLFxuICAgICAgJ3NsJyxcbiAgICAgICdzcicsXG4gICAgICAnc3YnLFxuICAgICAgJ3RoJyxcbiAgICAgICd0cicsXG4gICAgICAndWsnLFxuICAgICAgJ3poJyxcbiAgICBdO1xuXG4gICAgaWYgKFsnY24nLCAnemhfSEFOVCddLmluY2x1ZGVzKHVzZXJMb2NhbGUpKSB7XG4gICAgICByZXR1cm4gJ3poJztcbiAgICB9XG5cbiAgICBpZiAoWyd6aF9IQU5TJ10uaW5jbHVkZXModXNlckxvY2FsZSkpIHtcbiAgICAgIHJldHVybiAndHcnO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxvd2VkTG9jYWxlcy5maW5kKChsb2NhbGUpID0+IGxvY2FsZSA9PT0gdXNlckxvY2FsZSkgPz8gJ2VuJztcbiAgfVxufVxuIl19
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvZ29vZ2xlLXBheS9nb29nbGUtcGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUVMLE9BQU8sRUFDUCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRWxGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBR3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFFekgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOzs7Ozs7QUFLcEcsTUFBTSxPQUFPLGdCQUFnQjtJQW9CM0IsSUFBWSxxQkFBcUI7UUFDL0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVksaUNBQWlDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFFbUIsTUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsOEJBQThELEVBQzlELCtCQUFnRSxFQUNo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O1lBQ3JCLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7U0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3hFLENBQUM7K0dBbmFVLGdCQUFnQixrQkE2QmpCLFdBQVc7bUhBN0JWLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQThCSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGZpbHRlcixcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2UsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9hcHAtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDaGVja1N0YXR1c0FjdGlvbiB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi50eXBlJztcbmltcG9ydCB7IE5leHRBY3Rpb24gfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvbmV4dC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlY2tQYXltZW50RGV2aWNlRGF0YSB9IGZyb20gJy4vY2hlY2stcGF5bWVudC1kZXZpY2UtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5SW5pdFBhcmFtcyB9IGZyb20gJy4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgR29vZ2xlUGF5Q2xpZW50LFxuICBHb29nbGVQYXlDbGllbnRJbml0RGF0YSxcbiAgUGF5bWVudEF1dGhvcml6ZWRIYW5kbGVyLFxuICBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyLFxufSBmcm9tICcuL2dvb2dsZS1wYXktbGlicmFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXRQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LWNoZWNrb3V0LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2UgfSBmcm9tICcuL3BheW1lbnQvZ29vZ2xlLXBheS1pbnN0YW50LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LXBheW1lbnQtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhZ2dlZEVycm9yIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMnO1xuaW1wb3J0IHsgR29vZ2xlUGF5QnV0dG9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZ29vZ2xlLXBheS1idXR0b24tY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzRXZlbnRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ29vZ2xlUGF5IH0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BzNC1wYWdlcy9wYWdlcy1wYXltZW50LW1ldGhvZHMtaWQuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlUGF5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ29vZ2xlUGF5U2NyaXB0VXJsID0gJ2h0dHBzOi8vcGF5Lmdvb2dsZS5jb20vZ3AvcC9qcy9wYXkuanMnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlUb1BheSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbiB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRXaW5kb3dJc1JlYWR5ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50V2luZG93SXNDbG9zZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3IgPSBuZXcgU3ViamVjdDx1bmtub3duPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHByaXZhdGUgcGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIGdvb2dsZVBheW1lbnRDbGllbnQ6IEdvb2dsZVBheUNsaWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGdvb2dsZVBheUNsaWVudEVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZXJ2ZXJFbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaW5pdFBhcmFtcyE6IEdvb2dsZVBheUluaXRQYXJhbXM7XG4gIHByaXZhdGUgcGF5bWVudFNlcnZpY2U6IEdvb2dsZVBheVBheW1lbnRTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBvblBheW1lbnREYXRhQ2hhbmdlZCE6IFBheW1lbnREYXRhQ2hhbmdlZEhhbmRsZXI7XG4gIHByaXZhdGUgb25QYXltZW50QXV0aG9yaXplZCE6IFBheW1lbnRBdXRob3JpemVkSGFuZGxlcjtcblxuICBwcml2YXRlIGdldCBsaWJyYXJ5V2FzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy53aW5kb3cuZ29vZ2xlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZ29vZ2xlUGF5bWVudENsaWVudFdhc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ29vZ2xlUGF5bWVudENsaWVudDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvdyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2U6IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2U6IEdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBnb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2U6IEdvb2dsZVBheUluc3RhbnRQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgcmVhZHlUb1BheSQoKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnJlYWR5VG9QYXkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRXaW5kb3dJc1JlYWR5JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50V2luZG93SXNSZWFkeS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudFdpbmRvd0lzQ2xvc2UkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRXaW5kb3dJc0Nsb3NlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvciQoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFuYWx5dGljc0V2ZW50JCgpOiBPYnNlcnZhYmxlPEFuYWx5dGljc0V2ZW50UGF5bG9hZD4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgIHRoaXMuYW5hbHl0aWNzRXZlbnQuYXNPYnNlcnZhYmxlKCksXG4gICAgICB0aGlzLmdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2UuYW5hbHl0aWNzRXZlbnQkLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaXNSZWFkeVRvUGF5KCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVRvUGF5LmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdEdvb2dsZVBheUxpYnJhcnkoZGF0YTogR29vZ2xlUGF5SW5pdFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFBhcmFtcyA9IGRhdGE7XG4gICAgdGhpcy5vblBheW1lbnREYXRhQ2hhbmdlZCA9IGRhdGEub25QYXltZW50RGF0YUNoYW5nZWQ7XG4gICAgdGhpcy5vblBheW1lbnRBdXRob3JpemVkID0gZGF0YS5vblBheW1lbnRBdXRob3JpemVkO1xuXG4gICAgaWYgKHRoaXMubGlicmFyeVdhc0luaXRpYWxpemVkICYmIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudFdhc0luaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlicmFyeVdhc0luaXRpYWxpemVkICYmICF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnRXYXNJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5zZXR1cEdvb2dsZVBheUNsaWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmxvYWRTY3JpcHQoXG4gICAgICB0aGlzLmdvb2dsZVBheVNjcmlwdFVybCxcbiAgICAgIHRoaXMub25Mb2FkU2NyaXB0LmJpbmQodGhpcyksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1BheW1lbnREZXZpY2UoZGF0YTogQ2hlY2tQYXltZW50RGV2aWNlRGF0YSk6IHZvaWQge1xuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmluaXRpYWxpemUkXG4gICAgICAucGlwZShmaWx0ZXIoQm9vbGVhbiksIHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoJ0dvb2dsZSBwYXltZW50IGNsaWVudCBpcyBub3QgaW5pdGlhbGl6ZWQnLCBbXG4gICAgICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRocm93IG5ldyBBcHBFcnJvcihcbiAgICAgICAgICAgIGBHb29nbGUgUGF5OiBHb29nbGUgcGF5bWVudCBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZSA9IHRoaXMuZ2V0UGF5bWVudFNlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgaW5pdERhdGEgPSB0aGlzLnBheW1lbnRTZXJ2aWNlLnByZXBhcmVQYXltZW50KHtcbiAgICAgICAgICBpbml0UGFyYW1zOiB0aGlzLmluaXRQYXJhbXMsXG4gICAgICAgICAgY2hlY2tEZXZpY2VEYXRhOiBkYXRhLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWluaXREYXRhKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdObyBpbml0aWFsaXphdGlvbiBkYXRhJywgW0Vycm9yVGFncy5HT09HTEVQQVldKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRocm93IG5ldyBBcHBFcnJvcignR29vZ2xlIFBheTogbm8gaW5pdGlhbGl6YXRpb24gZGF0YScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJFbnZpcm9ubWVudCA9IGluaXREYXRhLmVudmlyb25tZW50ID8/IG51bGw7XG4gICAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcblxuICAgICAgICB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnRcbiAgICAgICAgICAuaXNSZWFkeVRvUGF5KGluaXREYXRhLmlzUmVhZHlUb1BheVJlcXVlc3QpXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UucmVzdWx0ICYmIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCkge1xuICAgICAgICAgICAgICB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQucHJlZmV0Y2hQYXltZW50RGF0YShcbiAgICAgICAgICAgICAgICBpbml0RGF0YS5wYXltZW50RGF0YVJlcXVlc3QsXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVhZHlUb1BheS5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlYWR5VG9QYXkubmV4dChmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgICAgICAgICBjb25zdCBpc0hhdmVQYXltZW50Q2xpZW50ID0gQm9vbGVhbihcbiAgICAgICAgICAgICAgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50LFxuICAgICAgICAgICAgKS50b1N0cmluZygpO1xuXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYEdvb2dsZSBQYXk6IHBvc3NpYmx5IG5vIHJlc3BvbnNlLnJlc3VsdCBvciBnb29nbGVQYXltZW50Q2xpZW50IGlzIG1pc3NpbmcsIHJlc3VsdCAtICR7cmVzdWx0fSwgaXNIYXZlUGF5bWVudENsaWVudCAtICR7aXNIYXZlUGF5bWVudENsaWVudH1gO1xuICAgICAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgICBuZXcgVGFnZ2VkRXJyb3IobWVzc2FnZSwgW0Vycm9yVGFncy5HT09HTEVQQVldKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5VG9QYXkubmV4dChmYWxzZSk7XG5cbiAgICAgICAgICAgIGxldCBtZXNzYWdlID0gKGVycm9yIGFzIHN0cmluZykgPz8gJyc7XG5cbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgIG5ldyBUYWdnZWRFcnJvcihcbiAgICAgICAgICAgICAgICBgR29vZ2xlIFBheTogZGV2aWNlIGlzIG5vdCByZWFkeSB0byBwYXksICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgICAgIFtFcnJvclRhZ3MuR09PR0xFUEFZXSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcm9jZWVkQ2hlY2tvdXQoKTogUHJvbWlzZTxDaGVja1N0YXR1c0FjdGlvbiB8IG51bGw+IHtcbiAgICB0aGlzLnNldHVwR29vZ2xlUGF5Q2xpZW50KCk7XG5cbiAgICBpZiAoIXRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoXG4gICAgICAgICAgJ0dvb2dsZSBwYXltZW50IGNsaWVudCBpcyBub3QgaW5pdGlhbGl6ZWQgdG8gcHJvY2VlZCBjaGVja291dCcsXG4gICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBBcHBFcnJvcihcbiAgICAgICAgYEdvb2dsZSBQYXkuIHByb2NlZWRDaGVja291dDogbm8gZ29vZ2xlIHBheW1lbnQgY2xpZW50YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBheW1lbnRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihcbiAgICAgICAgICAnR29vZ2xlIHBheW1lbnQgc2VydmljZSBpcyBub3QgaW5pdGlhbGl6ZWQgdG8gcHJvY2VlZCBjaGVja291dCcsXG4gICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBBcHBFcnJvcihcbiAgICAgICAgYEdvb2dsZSBQYXkuIHByb2NlZWRDaGVja291dDogbm8gZ29vZ2xlIHBheW1lbnQgc2VydmljZWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIGdvb2dsZSBzdXBwb3J0IG9ubHkgb25lIHBheW1lbnQgaW4gdGltZVxuICAgIGlmICh0aGlzLnBheW1lbnRJblByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluaXRQYXJhbXMuaXNJbnN0YW50UGF5Rmxvdykge1xuICAgICAgdGhpcy5hbmFseXRpY3NFdmVudC5uZXh0KHtcbiAgICAgICAgZXZlbnROYW1lOiBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnN5c0luc3RhbnRGbG93T3BlbixcbiAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5vcGVuLFxuICAgICAgICBpbnN0YW5jZUlkOiBnb29nbGVQYXksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRSZXF1ZXN0KCk7XG5cbiAgICBpZiAoIXBheW1lbnREYXRhUmVxdWVzdCkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoJ05vIGRhdGEgZm9yIHBheW1lbnQgZGF0YSByZXF1ZXN0JywgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBBcHBFcnJvcihgR29vZ2xlIFBheTogTm8gZGF0YSBmb3IgcGF5bWVudCBkYXRhIHJlcXVlc3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGVja1N0YXR1c0FjdGlvbjogTmV4dEFjdGlvbiA9IHRoaXMuaW5qZWN0b3JcbiAgICAgIC5nZXQ8Q2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yPihDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IpXG4gICAgICAuZ2V0QWN0aW9uRGF0YSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucGF5bWVudEluUHJvZ3Jlc3MgPSB0cnVlO1xuXG4gICAgICB0aGlzLnBheW1lbnRXaW5kb3dJc1JlYWR5Lm5leHQoKTtcblxuICAgICAgY29uc3QgcGF5bWVudERhdGEgPVxuICAgICAgICBhd2FpdCB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQubG9hZFBheW1lbnREYXRhKHBheW1lbnREYXRhUmVxdWVzdCk7XG5cbiAgICAgIGlmICghcGF5bWVudERhdGE/LnBheW1lbnRNZXRob2REYXRhPy50b2tlbml6YXRpb25EYXRhPy50b2tlbikge1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdUb2tlbiBpcyBtaXNzaW5nJywgW0Vycm9yVGFncy5HT09HTEVQQVldKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKCdHb29nbGUgUGF5OiB0b2tlbiBpcyBtaXNzaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuaGFuZGxlU3VjY2Vzc2Z1bFBheW1lbnQ/LihwYXltZW50RGF0YSk7XG5cbiAgICAgIHRoaXMucGF5bWVudFdpbmRvd0lzQ2xvc2UubmV4dCgpO1xuXG4gICAgICB0aGlzLnBheW1lbnRJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjaGVja1N0YXR1c0FjdGlvbjtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgdGhpcy5wYXltZW50SW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmhhbmRsZUZhaWxlZFBheW1lbnQ/LihlcnJvcik7XG4gICAgICB0aGlzLnBheW1lbnRXaW5kb3dJc0Nsb3NlLm5leHQoKTtcbiAgICAgIHRoaXMuZXJyb3IubmV4dChlcnJvcik7XG5cbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IChlcnJvciBhcyB7IG1lc3NhZ2U6IHN0cmluZyB9KT8ubWVzc2FnZSA/PyAnJztcbiAgICAgIGNvbnN0IGVycm9yU3RhdHVzQ29kZSA9XG4gICAgICAgIChlcnJvciBhcyB7IHN0YXR1c0NvZGU6IHN0cmluZyB9KT8uc3RhdHVzQ29kZSA/PyAnJztcblxuICAgICAgY29uc3QgaXNDbG9zZWRCeVVzZXIgPSB0aGlzLmlzQ2xvc2VkQnlVc2VyKGVycm9yTWVzc2FnZSk7XG4gICAgICBjb25zdCBpc0NhbmNlbGVkU3RhdHVzID0gdGhpcy5pc0NhbmNlbGVkU3RhdHVzKGVycm9yU3RhdHVzQ29kZSk7XG5cbiAgICAgIGlmIChpc0Nsb3NlZEJ5VXNlciB8fCBpc0NhbmNlbGVkU3RhdHVzKSByZXR1cm4gbnVsbDtcblxuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoYEdvb2dsZSBQYXk6IHByb2NlZWRDaGVja291dCBmYWlsZWQsICR7ZXJyb3JNZXNzYWdlfWAsIFtcbiAgICAgICAgICBFcnJvclRhZ3MuR09PR0xFUEFZLFxuICAgICAgICBdKSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjaGVja1N0YXR1c0FjdGlvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQnV0dG9uKFxuICAgIG9uQ2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkLFxuICAgIGNvbmZpZ3VyYXRpb246IEdvb2dsZVBheUJ1dHRvbkNvbmZpZ3VyYXRpb24sXG4gICk6IEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgcGF5bWVudCBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkIHRvIGNyZWF0ZSBidXR0b24nLFxuICAgICAgICAgIFtFcnJvclRhZ3MuR09PR0xFUEFZXSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxvd2VkUGF5bWVudE1ldGhvZHMgPVxuICAgICAgdGhpcy5wYXltZW50U2VydmljZT8uZ2V0QWxsb3dlZFBheW1lbnRNZXRob2RzKCkgfHwgW107XG5cbiAgICByZXR1cm4gdGhpcy5nb29nbGVQYXltZW50Q2xpZW50LmNyZWF0ZUJ1dHRvbih7XG4gICAgICBvbkNsaWNrOiBvbkNsaWNrSGFuZGxlcixcbiAgICAgIGFsbG93ZWRQYXltZW50TWV0aG9kczogYWxsb3dlZFBheW1lbnRNZXRob2RzLFxuICAgICAgYnV0dG9uU2l6ZU1vZGU6ICdmaWxsJyxcbiAgICAgIGJ1dHRvblR5cGU6ICdidXknLFxuICAgICAgYnV0dG9uQ29sb3I6IGNvbmZpZ3VyYXRpb24uY29sb3IgPz8gJ2RlZmF1bHQnLFxuICAgICAgYnV0dG9uTG9jYWxlOiB0aGlzLmdldExvY2FsZUZvckJ1dHRvbihjb25maWd1cmF0aW9uLmxvY2FsZSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVHb29nbGVQYXlFbnZpcm9ubWVudCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNlcnZlckVudmlyb25tZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJFbnZpcm9ubWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbml0UGFyYW1zLmlzU2FuZGJveCA/ICdURVNUJyA6ICdQUk9EVUNUSU9OJztcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBHb29nbGVQYXlDbGllbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5nb29nbGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdHb29nbGUgUGF5IGxpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBvbiB3aW5kb3cnLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkdPT0dMRVBBWSxcbiAgICAgICAgXSksXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy5yZXNvbHZlR29vZ2xlUGF5RW52aXJvbm1lbnQoKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCAmJlxuICAgICAgdGhpcy5nb29nbGVQYXlDbGllbnRFbnZpcm9ubWVudCA9PT0gZW52aXJvbm1lbnRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBnb29nbGVQYXltZW50Q2xpZW50RGF0YTogR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEgPSB7XG4gICAgICBlbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KSB7XG4gICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YS5wYXltZW50RGF0YUNhbGxiYWNrcyA9IHtcbiAgICAgICAgb25QYXltZW50RGF0YUNoYW5nZWQ6IHRoaXMub25QYXltZW50RGF0YUNoYW5nZWQsXG4gICAgICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IHRoaXMub25QYXltZW50QXV0aG9yaXplZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50ID1cbiAgICAgIG5ldyB0aGlzLndpbmRvdy5nb29nbGUucGF5bWVudHMuYXBpLlBheW1lbnRzQ2xpZW50KFxuICAgICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YSxcbiAgICAgICk7XG4gICAgdGhpcy5nb29nbGVQYXlDbGllbnRFbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBvbkxvYWRTY3JpcHQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5nb29nbGUpIHtcbiAgICAgIGNvbnN0IHJldHJ5VGltZW91dCA9IDEwMDA7XG5cbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgUGF5OiBsaWJyYXJ5IG5vdCBhdmFpbGFibGUgYWZ0ZXIgc2NyaXB0IGxvYWQsIHJldHJ5aW5nJyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaXNBdmFpbGFibGVHb29nbGVDbGllbnQgPSAhIXRoaXMud2luZG93Lmdvb2dsZTtcblxuICAgICAgICBpZiAoaXNBdmFpbGFibGVHb29nbGVDbGllbnQpIHtcbiAgICAgICAgICB0aGlzLnNldHVwR29vZ2xlUGF5Q2xpZW50KCk7XG5cbiAgICAgICAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5lbWl0SW5pdGlhbGl6ZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSwgcmV0cnlUaW1lb3V0KTtcblxuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKCdHb29nbGUgUGF5OiBnb29nbGUgbGlicmFyeSBub3cgaXMgYXZhaWxhYmxlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcblxuICAgICAgdGhpcy5wYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UuZW1pdEluaXRpYWxpemUodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXltZW50U2VydmljZSgpOiBHb29nbGVQYXlQYXltZW50U2VydmljZSB7XG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KVxuICAgICAgcmV0dXJuIHRoaXMuZ29vZ2xlUGF5SW5zdGFudFBheW1lbnRTZXJ2aWNlO1xuICAgIHJldHVybiB0aGlzLmdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2U7XG4gIH1cblxuICBwcml2YXRlIGlzQ2xvc2VkQnlVc2VyKG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3VzZXIgY2xvc2VkIHRoZSBwYXltZW50IHJlcXVlc3QgdWknKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDYW5jZWxlZFN0YXR1cyhzdGF0dXNDb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RhdHVzQ29kZS50b0xvd2VyQ2FzZSgpID09PSAnY2FuY2VsZWQnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbGVGb3JCdXR0b24odXNlckxvY2FsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhbGxvd2VkTG9jYWxlcyA9IFtcbiAgICAgICdlbicsXG4gICAgICAnYXInLFxuICAgICAgJ2JnJyxcbiAgICAgICdjYScsXG4gICAgICAnY3MnLFxuICAgICAgJ2RhJyxcbiAgICAgICdkZScsXG4gICAgICAnZWwnLFxuICAgICAgJ2VzJyxcbiAgICAgICdldCcsXG4gICAgICAnZmknLFxuICAgICAgJ2ZyJyxcbiAgICAgICdocicsXG4gICAgICAnaWQnLFxuICAgICAgJ2l0JyxcbiAgICAgICdqYScsXG4gICAgICAna28nLFxuICAgICAgJ21zJyxcbiAgICAgICdubCcsXG4gICAgICAnbm8nLFxuICAgICAgJ3BsJyxcbiAgICAgICdwdCcsXG4gICAgICAncnUnLFxuICAgICAgJ3NrJyxcbiAgICAgICdzbCcsXG4gICAgICAnc3InLFxuICAgICAgJ3N2JyxcbiAgICAgICd0aCcsXG4gICAgICAndHInLFxuICAgICAgJ3VrJyxcbiAgICAgICd6aCcsXG4gICAgXTtcblxuICAgIGlmIChbJ2NuJywgJ3poX0hBTlQnXS5pbmNsdWRlcyh1c2VyTG9jYWxlKSkge1xuICAgICAgcmV0dXJuICd6aCc7XG4gICAgfVxuXG4gICAgaWYgKFsnemhfSEFOUyddLmluY2x1ZGVzKHVzZXJMb2NhbGUpKSB7XG4gICAgICByZXR1cm4gJ3R3JztcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsb3dlZExvY2FsZXMuZmluZCgobG9jYWxlKSA9PiBsb2NhbGUgPT09IHVzZXJMb2NhbGUpID8/ICdlbic7XG4gIH1cbn1cbiJdfQ==
@@ -34,7 +34,11 @@ export class GooglePayCheckoutPaymentService {
34
34
  const checkoutData = this.checkout.request.form.fields;
35
35
  const paymentDataRequest = JSON.parse(checkoutData.paymentDataRequest);
36
36
  const isReadyToPayRequest = JSON.parse(checkoutData.isReadyToPayRequest);
37
- const result = { paymentDataRequest, isReadyToPayRequest };
37
+ const result = {
38
+ paymentDataRequest,
39
+ isReadyToPayRequest,
40
+ environment: checkoutData.environment,
41
+ };
38
42
  if (checkoutData.amexCardNotification) {
39
43
  result.amexCardNotification = JSON.parse(checkoutData.amexCardNotification);
40
44
  }
@@ -99,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
99
103
  providedIn: 'root',
100
104
  }]
101
105
  }], ctorParameters: () => [{ type: i1.PaymentSystemProcessingService }, { type: i2.LoggerService }] });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9nb29nbGUtcGF5L3BheW1lbnQvZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBYzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBRzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7QUFLckYsTUFBTSxPQUFPLCtCQUErQjtJQU8xQyxZQUNrQiw4QkFBOEQsRUFDN0QsYUFBNEI7UUFEN0IsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQUM3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUx2QyxhQUFRLEdBQTZCLElBQUksQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO0lBS3BFLENBQUM7SUFFSixJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxjQUFjLENBQUMsRUFDcEIsVUFBVSxFQUNWLGVBQWUsR0FDTTtRQUNyQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUNiLCtEQUErRCxFQUMvRCxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FDdEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLENBQUMsOEJBQThCLENBQUMsa0JBQWtCLENBQ3BELGVBQWUsQ0FBQyxrQkFBa0IsQ0FDbkMsQ0FBQztRQUVKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUFDLHFEQUFxRCxFQUFFO2dCQUNyRSxTQUFTLENBQUMsU0FBUzthQUNwQixDQUFDLENBQ0gsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV6RSxNQUFNLE1BQU0sR0FBbUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1FBRTNFLElBQUksWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3RDLFlBQVksQ0FBQyxvQkFBb0IsQ0FDbEMsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWhDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNuQyxZQUFZLENBQUMsa0JBQWtCLENBQ0wsQ0FBQztRQUU3QixrQkFBa0IsQ0FBQyxlQUFlLEdBQUc7WUFDbkMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQ25DLGdCQUFnQixFQUFFLE9BQU87WUFDekIsVUFBVSxFQUFFLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFO1lBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7U0FDbkQsQ0FBQztRQUVGLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU5QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQzFCLENBQUM7UUFFN0IsT0FBTyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztJQUNsRCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBNkI7UUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsU0FBUyxFQUFFLHNCQUFzQixDQUFDLGdDQUFnQztZQUNsRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxFQUFFO1NBQ3BFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUVuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9DLFNBQVMsSUFBSSxlQUFlLElBQUksQ0FBQyxVQUFVLGVBQ3pDLElBQUksQ0FBQyxVQUNQLGdCQUFnQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFFM0MsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBYztRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUN2QixTQUFTLEVBQUUsc0JBQXNCLENBQUMsNEJBQTRCO1lBQzlELFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsSUFBSSxFQUFFO1NBQ2pFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsTUFBTSxVQUFVLEdBQUksS0FBaUMsRUFBRSxVQUFVLENBQUM7UUFDbEUsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLElBQUksZ0JBQWdCO1lBQUUsT0FBTztRQUU3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNsRSxJQUFJLENBQUMsOEJBQThCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFrQjtRQUMxQyxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUM7SUFDakQsQ0FBQzsrR0EvSFUsK0JBQStCO21IQUEvQiwrQkFBK0IsY0FGOUIsTUFBTTs7NEZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXQgfSBmcm9tICcuLi9nb29nbGUtcGF5LWNoZWNrb3V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbml0UGFyYW1zIH0gZnJvbSAnLi4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQWxsb3dlZFBheW1lbnRNZXRob2QsXG4gIEdvb2dsZUluaXREYXRhLFxuICBHb29nbGVQYXlQYXltZW50UmVxdWVzdCxcbiAgUGF5bWVudERhdGFSZXNwb25zZSxcbn0gZnJvbSAnLi4vZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBHb29nbGVQYXlQYXltZW50U2VydmljZSxcbiAgUHJlcGFyZVBheW1lbnRQYXJhbXMsXG59IGZyb20gJy4vZ29vZ2xlLXBheS1wYXltZW50LXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IEFuYWx5dGljc0V2ZW50UGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2VcbiAgaW1wbGVtZW50cyBHb29nbGVQYXlQYXltZW50U2VydmljZVxue1xuICBwcml2YXRlIGluaXRQYXJhbXMhOiBHb29nbGVQYXlJbml0UGFyYW1zO1xuICBwcml2YXRlIGNoZWNrb3V0OiBHb29nbGVQYXlDaGVja291dCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlOiBQYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGdldCBhbmFseXRpY3NFdmVudCQoKTogT2JzZXJ2YWJsZTxBbmFseXRpY3NFdmVudFBheWxvYWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hbmFseXRpY3NFdmVudC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlUGF5bWVudCh7XG4gICAgaW5pdFBhcmFtcyxcbiAgICBjaGVja0RldmljZURhdGEsXG4gIH06IFByZXBhcmVQYXltZW50UGFyYW1zKTogR29vZ2xlSW5pdERhdGEgfCBudWxsIHtcbiAgICBpZiAoIWluaXRQYXJhbXMgfHwgIWNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgUGF5IGNoZWNrb3V0OiBtaXNzaW5nIGluaXRQYXJhbXMgb3IgYmFzZTY0Y2hlY2tvdXREYXRhJyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0UGFyYW1zID0gaW5pdFBhcmFtcztcbiAgICB0aGlzLmNoZWNrb3V0ID1cbiAgICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmdldERlY29kZWRDaGVja291dDxHb29nbGVQYXlDaGVja291dD4oXG4gICAgICAgIGNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEsXG4gICAgICApO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignR29vZ2xlIFBheSBjaGVja291dDogZmFpbGVkIHRvIGRlY29kZSBjaGVja291dCBkYXRhJywgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5wYXltZW50RGF0YVJlcXVlc3QpO1xuICAgIGNvbnN0IGlzUmVhZHlUb1BheVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5pc1JlYWR5VG9QYXlSZXF1ZXN0KTtcblxuICAgIGNvbnN0IHJlc3VsdDogR29vZ2xlSW5pdERhdGEgPSB7IHBheW1lbnREYXRhUmVxdWVzdCwgaXNSZWFkeVRvUGF5UmVxdWVzdCB9O1xuXG4gICAgaWYgKGNoZWNrb3V0RGF0YS5hbWV4Q2FyZE5vdGlmaWNhdGlvbikge1xuICAgICAgcmVzdWx0LmFtZXhDYXJkTm90aWZpY2F0aW9uID0gSlNPTi5wYXJzZShcbiAgICAgICAgY2hlY2tvdXREYXRhLmFtZXhDYXJkTm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldFBheW1lbnRSZXF1ZXN0KCk6IEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgY2hlY2tvdXREYXRhLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcGF5bWVudERhdGFSZXF1ZXN0LnRyYW5zYWN0aW9uSW5mbyA9IHtcbiAgICAgIGN1cnJlbmN5Q29kZTogY2hlY2tvdXREYXRhLmN1cnJlbmN5LFxuICAgICAgdG90YWxQcmljZVN0YXR1czogJ0ZJTkFMJyxcbiAgICAgIHRvdGFsUHJpY2U6IGNoZWNrb3V0RGF0YS5zdW0/LnRvU3RyaW5nKCksXG4gICAgICBjb3VudHJ5Q29kZTogdGhpcy5pbml0UGFyYW1zLmNvdW50cnkudG9VcHBlckNhc2UoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGxvd2VkUGF5bWVudE1ldGhvZHMoKTogQWxsb3dlZFBheW1lbnRNZXRob2RbXSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gW107XG5cbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdC5hbGxvd2VkUGF5bWVudE1ldGhvZHM7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU3VjY2Vzc2Z1bFBheW1lbnQocmVzcG9uc2U6IFBheW1lbnREYXRhUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc0V2ZW50Lm5leHQoe1xuICAgICAgZXZlbnROYW1lOiBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmdvb2dsZVBheUhhbmRsZVN1Y2Nlc3NmdWxQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5TdWNjZXNzVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBsZXQgcmV0dXJuVXJsID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnJldHVyblN1Y2Nlc3NVcmw7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzO1xuICAgIHJldHVyblVybCArPSBgJmNwZl9udW1iZXI9JHtkYXRhLmNwZl9udW1iZXJ9JmRlc2NyaXB0b3I9JHtcbiAgICAgIGRhdGEuZGVzY3JpcHRvclxuICAgIH0mcGF5bWVudERhdGE9JHtKU09OLnN0cmluZ2lmeShyZXNwb25zZSl9YDtcblxuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVGYWlsZWRQYXltZW50KGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NFdmVudC5uZXh0KHtcbiAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5nb29nbGVQYXlIYW5kbGVGYWlsZWRQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5GYWlsVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBjb25zdCBzdGF0dXNDb2RlID0gKGVycm9yIGFzIHsgc3RhdHVzQ29kZT86IHN0cmluZyB9KT8uc3RhdHVzQ29kZTtcbiAgICBjb25zdCBpc1N0YXR1c0NhbmNlbGVkID0gc3RhdHVzQ29kZSAmJiB0aGlzLmlzQ2FuY2VsbGVkU3RhdHVzKHN0YXR1c0NvZGUpO1xuXG4gICAgaWYgKGlzU3RhdHVzQ2FuY2VsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHJldHVyblVybCA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcy5yZXR1cm5GYWlsVXJsO1xuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDYW5jZWxsZWRTdGF0dXMoc3RhdHVzQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXR1c0NvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2NhbmNlbGVkJztcbiAgfVxufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9nb29nbGUtcGF5L3BheW1lbnQvZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBYzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBRzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7QUFLckYsTUFBTSxPQUFPLCtCQUErQjtJQU8xQyxZQUNrQiw4QkFBOEQsRUFDN0QsYUFBNEI7UUFEN0IsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQUM3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUx2QyxhQUFRLEdBQTZCLElBQUksQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO0lBS3BFLENBQUM7SUFFSixJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxjQUFjLENBQUMsRUFDcEIsVUFBVSxFQUNWLGVBQWUsR0FDTTtRQUNyQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUNiLCtEQUErRCxFQUMvRCxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FDdEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLENBQUMsOEJBQThCLENBQUMsa0JBQWtCLENBQ3BELGVBQWUsQ0FBQyxrQkFBa0IsQ0FDbkMsQ0FBQztRQUVKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUFDLHFEQUFxRCxFQUFFO2dCQUNyRSxTQUFTLENBQUMsU0FBUzthQUNwQixDQUFDLENBQ0gsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV6RSxNQUFNLE1BQU0sR0FBbUI7WUFDN0Isa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7U0FDdEMsQ0FBQztRQUVGLElBQUksWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3RDLFlBQVksQ0FBQyxvQkFBb0IsQ0FDbEMsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWhDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNuQyxZQUFZLENBQUMsa0JBQWtCLENBQ0wsQ0FBQztRQUU3QixrQkFBa0IsQ0FBQyxlQUFlLEdBQUc7WUFDbkMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQ25DLGdCQUFnQixFQUFFLE9BQU87WUFDekIsVUFBVSxFQUFFLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFO1lBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7U0FDbkQsQ0FBQztRQUVGLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU5QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQzFCLENBQUM7UUFFN0IsT0FBTyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztJQUNsRCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBNkI7UUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsU0FBUyxFQUFFLHNCQUFzQixDQUFDLGdDQUFnQztZQUNsRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxFQUFFO1NBQ3BFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUVuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9DLFNBQVMsSUFBSSxlQUFlLElBQUksQ0FBQyxVQUFVLGVBQ3pDLElBQUksQ0FBQyxVQUNQLGdCQUFnQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFFM0MsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBYztRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUN2QixTQUFTLEVBQUUsc0JBQXNCLENBQUMsNEJBQTRCO1lBQzlELFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsSUFBSSxFQUFFO1NBQ2pFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsTUFBTSxVQUFVLEdBQUksS0FBaUMsRUFBRSxVQUFVLENBQUM7UUFDbEUsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLElBQUksZ0JBQWdCO1lBQUUsT0FBTztRQUU3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNsRSxJQUFJLENBQUMsOEJBQThCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFrQjtRQUMxQyxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUM7SUFDakQsQ0FBQzsrR0FuSVUsK0JBQStCO21IQUEvQiwrQkFBK0IsY0FGOUIsTUFBTTs7NEZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXQgfSBmcm9tICcuLi9nb29nbGUtcGF5LWNoZWNrb3V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbml0UGFyYW1zIH0gZnJvbSAnLi4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQWxsb3dlZFBheW1lbnRNZXRob2QsXG4gIEdvb2dsZUluaXREYXRhLFxuICBHb29nbGVQYXlQYXltZW50UmVxdWVzdCxcbiAgUGF5bWVudERhdGFSZXNwb25zZSxcbn0gZnJvbSAnLi4vZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBHb29nbGVQYXlQYXltZW50U2VydmljZSxcbiAgUHJlcGFyZVBheW1lbnRQYXJhbXMsXG59IGZyb20gJy4vZ29vZ2xlLXBheS1wYXltZW50LXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IEFuYWx5dGljc0V2ZW50UGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2VcbiAgaW1wbGVtZW50cyBHb29nbGVQYXlQYXltZW50U2VydmljZVxue1xuICBwcml2YXRlIGluaXRQYXJhbXMhOiBHb29nbGVQYXlJbml0UGFyYW1zO1xuICBwcml2YXRlIGNoZWNrb3V0OiBHb29nbGVQYXlDaGVja291dCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlOiBQYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGdldCBhbmFseXRpY3NFdmVudCQoKTogT2JzZXJ2YWJsZTxBbmFseXRpY3NFdmVudFBheWxvYWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hbmFseXRpY3NFdmVudC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlUGF5bWVudCh7XG4gICAgaW5pdFBhcmFtcyxcbiAgICBjaGVja0RldmljZURhdGEsXG4gIH06IFByZXBhcmVQYXltZW50UGFyYW1zKTogR29vZ2xlSW5pdERhdGEgfCBudWxsIHtcbiAgICBpZiAoIWluaXRQYXJhbXMgfHwgIWNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgUGF5IGNoZWNrb3V0OiBtaXNzaW5nIGluaXRQYXJhbXMgb3IgYmFzZTY0Y2hlY2tvdXREYXRhJyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0UGFyYW1zID0gaW5pdFBhcmFtcztcbiAgICB0aGlzLmNoZWNrb3V0ID1cbiAgICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmdldERlY29kZWRDaGVja291dDxHb29nbGVQYXlDaGVja291dD4oXG4gICAgICAgIGNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEsXG4gICAgICApO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignR29vZ2xlIFBheSBjaGVja291dDogZmFpbGVkIHRvIGRlY29kZSBjaGVja291dCBkYXRhJywgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5wYXltZW50RGF0YVJlcXVlc3QpO1xuICAgIGNvbnN0IGlzUmVhZHlUb1BheVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5pc1JlYWR5VG9QYXlSZXF1ZXN0KTtcblxuICAgIGNvbnN0IHJlc3VsdDogR29vZ2xlSW5pdERhdGEgPSB7XG4gICAgICBwYXltZW50RGF0YVJlcXVlc3QsXG4gICAgICBpc1JlYWR5VG9QYXlSZXF1ZXN0LFxuICAgICAgZW52aXJvbm1lbnQ6IGNoZWNrb3V0RGF0YS5lbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgaWYgKGNoZWNrb3V0RGF0YS5hbWV4Q2FyZE5vdGlmaWNhdGlvbikge1xuICAgICAgcmVzdWx0LmFtZXhDYXJkTm90aWZpY2F0aW9uID0gSlNPTi5wYXJzZShcbiAgICAgICAgY2hlY2tvdXREYXRhLmFtZXhDYXJkTm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldFBheW1lbnRSZXF1ZXN0KCk6IEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgY2hlY2tvdXREYXRhLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcGF5bWVudERhdGFSZXF1ZXN0LnRyYW5zYWN0aW9uSW5mbyA9IHtcbiAgICAgIGN1cnJlbmN5Q29kZTogY2hlY2tvdXREYXRhLmN1cnJlbmN5LFxuICAgICAgdG90YWxQcmljZVN0YXR1czogJ0ZJTkFMJyxcbiAgICAgIHRvdGFsUHJpY2U6IGNoZWNrb3V0RGF0YS5zdW0/LnRvU3RyaW5nKCksXG4gICAgICBjb3VudHJ5Q29kZTogdGhpcy5pbml0UGFyYW1zLmNvdW50cnkudG9VcHBlckNhc2UoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGxvd2VkUGF5bWVudE1ldGhvZHMoKTogQWxsb3dlZFBheW1lbnRNZXRob2RbXSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gW107XG5cbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdC5hbGxvd2VkUGF5bWVudE1ldGhvZHM7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU3VjY2Vzc2Z1bFBheW1lbnQocmVzcG9uc2U6IFBheW1lbnREYXRhUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc0V2ZW50Lm5leHQoe1xuICAgICAgZXZlbnROYW1lOiBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmdvb2dsZVBheUhhbmRsZVN1Y2Nlc3NmdWxQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5TdWNjZXNzVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBsZXQgcmV0dXJuVXJsID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnJldHVyblN1Y2Nlc3NVcmw7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzO1xuICAgIHJldHVyblVybCArPSBgJmNwZl9udW1iZXI9JHtkYXRhLmNwZl9udW1iZXJ9JmRlc2NyaXB0b3I9JHtcbiAgICAgIGRhdGEuZGVzY3JpcHRvclxuICAgIH0mcGF5bWVudERhdGE9JHtKU09OLnN0cmluZ2lmeShyZXNwb25zZSl9YDtcblxuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVGYWlsZWRQYXltZW50KGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NFdmVudC5uZXh0KHtcbiAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5nb29nbGVQYXlIYW5kbGVGYWlsZWRQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5GYWlsVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBjb25zdCBzdGF0dXNDb2RlID0gKGVycm9yIGFzIHsgc3RhdHVzQ29kZT86IHN0cmluZyB9KT8uc3RhdHVzQ29kZTtcbiAgICBjb25zdCBpc1N0YXR1c0NhbmNlbGVkID0gc3RhdHVzQ29kZSAmJiB0aGlzLmlzQ2FuY2VsbGVkU3RhdHVzKHN0YXR1c0NvZGUpO1xuXG4gICAgaWYgKGlzU3RhdHVzQ2FuY2VsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHJldHVyblVybCA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcy5yZXR1cm5GYWlsVXJsO1xuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDYW5jZWxsZWRTdGF0dXMoc3RhdHVzQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXR1c0NvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2NhbmNlbGVkJztcbiAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  // eslint-disable-next-line @typescript-eslint/naming-convention
2
- export const PAYMENT_CLIENT_CORE_VERSION = '0.5.2';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnRUFBZ0U7QUFDaEUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfQ0xJRU5UX0NPUkVfVkVSU0lPTiA9ICcwLjUuMic7XG4iXX0=
2
+ export const PAYMENT_CLIENT_CORE_VERSION = '0.5.4';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnRUFBZ0U7QUFDaEUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfQ0xJRU5UX0NPUkVfVkVSU0lPTiA9ICcwLjUuNCc7XG4iXX0=