fmode-ng 0.0.201 → 0.0.202

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.
@@ -167,8 +167,9 @@ export class PaymentComponent {
167
167
  this.accountLog = await this.payServer.updateRecharge(this.accountLog);
168
168
  }
169
169
  }
170
- _this.toast("支付成功", "success");
170
+ console.log('wxpay success!');
171
171
  _this.isOpen = false;
172
+ _this.toast("支付成功", "success");
172
173
  _this.payResult.emit({
173
174
  code: 200,
174
175
  tradeNo: this.tradeNo,
@@ -542,4 +543,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
542
543
  type: Input,
543
544
  args: ["isOpen"]
544
545
  }] } });
545
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL3BheW1lbnQvcGF5bWVudC9wYXltZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ztb2RlLW5nL3NyYy9saWIvcGF5bWVudC9wYXltZW50L3BheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTztBQUNMLFlBQVk7QUFDWixXQUFXO0FBQ1gsbUJBQW1CO0FBQ25CLGVBQWUsR0FDaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUMsVUFBVSxFQUFrQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztBQUFBLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFBQSxDQUFDO0FBYXBILE1BQU0sT0FBTyxnQkFBZ0I7SUEyQjNCLFlBQ1UsT0FBMkIsRUFDM0IsSUFBZ0IsRUFDaEIsVUFBMEIsRUFDMUIsU0FB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YSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDOytHQXhmVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixpVUM3QjdCLDByR0E0RUEsNnlJRG5EWSxZQUFZLDhCQUFFLFlBQVk7OzRGQUl6QixnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7d01BS3JCLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDSSxPQUFPO3NCQUF4QixLQUFLO3VCQUFDLFNBQVM7Z0JBQ0EsS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUNNLFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFFRSxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBS08sY0FBYztzQkFBdEMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ04sTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUNELEdBQUc7c0JBQWhCLEtBQUs7dUJBQUMsS0FBSztnQkFDTSxPQUFPO3NCQUF4QixLQUFLO3VCQUFDLFNBQVM7Z0JBRU4sU0FBUztzQkFBbEIsTUFBTTtnQkFDVSxNQUFNO3NCQUF0QixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IFdlY2hhdEpzc2RrU2VydmljZSB9IGZyb20gXCIuLi8uLi9zb2NpYWwvd2VjaGF0L3dlY2hhdC1qc3Nkay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3BheW1lbnQvcGF5bWVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFFyQ29kZU1vZHVsZSB9IGZyb20gJ25nLXFyY29kZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIC8vIElvbk1vZGFsLFxyXG4gIC8vIElvbkljb24sXHJcbiAgLy8gVG9hc3RDb250cm9sbGVyLFxyXG4gIEFsZXJ0Q29udHJvbGxlcixcclxufSBmcm9tIFwiQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZVwiO1xyXG5cclxuaW1wb3J0IHtGbW9kZVBhcnNlLEZtb2RlT2JqZWN0LEZtb2RlUXVlcnksRm1vZGVVc2VyfSBmcm9tIFwiLi4vLi4vY29yZS9wYXJzZVwiO2NvbnN0IFBhcnNlID0gRm1vZGVQYXJzZS53aXRoKFwibm92YVwiKTs7XHJcbmRlY2xhcmUgdmFyIHd4OiBhbnk7XHJcblxyXG4vLyDlrprkuYnmlK/ku5jnsbvlnovmnprkuL5cclxudHlwZSBQYXltZW50TWV0aG9kID0gXCJ3eHBheVwiIHwgXCJhbGlwYXlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImZtLXBheW1lbnRcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFFyQ29kZU1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9wYXltZW50LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9wYXltZW50LmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXltZW50Q29tcG9uZW50IHtcclxuICBASW5wdXQoXCJwcmljZVwiKSBwcmljZTogbnVtYmVyID0gMDsgLy/mlK/ku5jph5Hpop1cclxuICBASW5wdXQoXCJ0cmFkZU5vXCIpIHRyYWRlTm86IHN0cmluZyB8IHVuZGVmaW5lZDsgLy/mlK/ku5jljZXlj7dcclxuICBASW5wdXQoXCJ0aXRsZVwiKSB0aXRsZTogc3RyaW5nID0gXCLmlK/ku5jorqLljZVcIjsgLy/mlK/ku5jmoIfpophcclxuICBASW5wdXQoXCJzaG93VHlwZXNcIikgc2hvd1R5cGVzOiBQYXltZW50TWV0aG9kW10gPSBbXCJ3eHBheVwiLCBcImFsaXBheVwiXTsgLy/mmL7npLrnmoTmlK/ku5jmlrnlvI9cclxuICBcclxuICBASW5wdXQoXCJvcmRlclR5cGVcIikgb3JkZXJUeXBlOiBzdHJpbmcgPSAnZ29vZHMnOyAvL+iuouWNleexu+Wei1xyXG4gIC8qIOWFs+mUruWumuWItuWPguaVsGlzUmVjaGFyZ2VSdWxl77ya5b2Tb3JkZXJUeXBlID0gdmlwIHwgcmVjaGFyZ2XkuJTlpoLmnpxpc1JlY2hhcmdlUnVsZeS4unRydWXvvIzliJnooajnpLrmmK/lhYXlgLzop4TliJnvvIzpnIDopoHorr7nva5jcmVkaXTmiJZnaWQgXHJcbiAgKiBvcmRlclR5cGXvvJp2aXAg5Lya5ZGY5byA6YCaXHJcbiAgKiBvcmRlclR5cGXvvJpyZWNoYXJnZSDlhYXlgLxcclxuICAqL1xyXG4gIEBJbnB1dChcImlzUmVjaGFyZ2VSdWxlXCIpIGlzUmVjaGFyZ2VSdWxlOiBib29sZWFuID0gZmFsc2U7IC8v5piv5ZCm5piv5YWF5YC86KeE5YiZXHJcbiAgQElucHV0KFwiY3JlZGl0XCIpIGNyZWRpdDogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDsgLy/np6/liIYm6Jma5ouf5biBXHJcbiAgQElucHV0KFwiZ2lkXCIpIGdpZDogc3RyaW5nIHwgdW5kZWZpbmVkOyAvL+WVhuWTgUlEXHJcbiAgQElucHV0KFwib3JkZXJJZFwiKSBvcmRlcklkPzogc3RyaW5nOyAvL+iuouWNlUlEXHJcblxyXG4gIEBPdXRwdXQoKSBwYXlSZXN1bHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KFwiaXNPcGVuXCIpIGlzT3BlbjogYm9vbGVhbiA9IHRydWU7IC8v5omT5byA5by556qXXHJcblxyXG4gIGNoZWNrcGF5OiBzdHJpbmcgPSB0aGlzLnNob3dUeXBlc1swXSB8fCBcIlwiO1xyXG4gIHVzZXJBZ2VudD86IHN0cmluZzsgLy/ojrflj5blvZPliY3mtY/op4jlmajnjq/looNcclxuICBjb2RlTGluaz86IHN0cmluZztcclxuICB1c2VyOkZtb2RlT2JqZWN0ID0gUGFyc2UuVXNlci5jdXJyZW50KCkhO1xyXG4gIHRpbWVyOiBhbnk7IC8v5a6a5pe25p+l6K+iXHJcblxyXG4gIGFjY291bnRMb2c/OkZtb2RlT2JqZWN0OyAvLyDlhYXlgLzorrDlvZVcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTsgLy/nrYnlvoVcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgd3hqc3NkazogV2VjaGF0SnNzZGtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhY3RpdlJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcGF5U2VydmVyOiBQYXltZW50U2VydmljZSxcclxuICAgIC8vIHByaXZhdGUgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyLFxyXG4gICkge31cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYWN0aXZSb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUoYXN5bmMgKHBhcmFtcykgPT4ge1xyXG4gICAgICBsZXQgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHVhKTtcclxuICAgICAgaWYgKHVhLmluZGV4T2YoXCJtaWNyb21lc3NlbmdlclwiKSAhPSAtMSkge1xyXG4gICAgICAgIHRoaXMudXNlckFnZW50ID0gXCJ3ZWl4aW5cIjtcclxuICAgICAgICBhd2FpdCB0aGlzLnd4anNzZGsuaW5pdFVzZXJPcGVuaWQoKTtcclxuICAgICAgICB0aGlzLnd4anNzZGsuc2V0Q3VycmVudFBhZ2VTaGFyZUluZm8oKTtcclxuICAgICAgfSBlbHNlIGlmICh1YS5pbmRleE9mKFwid2luZG93c1wiKSAhPSAtMSB8fCB1YS5pbmRleE9mKFwiTWFjaW50b3NoXCIpICE9IC0xKSB7XHJcbiAgICAgICAgdGhpcy51c2VyQWdlbnQgPSBcInBjXCI7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25jaGFuZ1BheSh2YWw6IFBheW1lbnRNZXRob2QpIHtcclxuICAgIHRoaXMuY2hlY2twYXkgPSB2YWw7XHJcbiAgICBjb25zb2xlLmxvZyh2YWwpO1xyXG4gIH1cclxuXHJcbiAgLyog55So5oi356Gu6K6k5pSv5LuYICovXHJcbiAgYXN5bmMgdXNlclBheW1lbnQoKSB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgIXRoaXMuY2hlY2twYXkpIHJldHVybjtcclxuICAgIGlmICghdGhpcy50cmFkZU5vKSB7XHJcbiAgICAgIHRoaXMudHJhZGVObyA9IHRoaXMucGF5U2VydmVyLnNldFRyYWRlTm8oKTtcclxuICAgIH1cclxuICAgIC8qIGlzUmVjaGFyZ2VSdWxlIOWFheWAvOinhOWImSAqL1xyXG4gICAgaWYgKHRoaXMuaXNSZWNoYXJnZVJ1bGUgJiYgdGhpcy50cmFkZU5vKSB7XHJcbiAgICAgIHRoaXMub3JkZXJJZCA9IGF3YWl0IHRoaXMucGF5U2VydmVyLmdldE9yZGVyKHRoaXMudHJhZGVObyk7XHJcbiAgICAgIC8v5ruh6LazIOKRoOS8muWRmOWFheWAvOS4lOiuouWNleS4jeWtmOWcqCDikaHkvZnpop3lhYXlgLzkuJTlhYXlgLzorrDlvZXkuI3lrZjlnKjmiJblt7LmlK/ku5gg5bCG6YeN5paw5Yib5bu66K6i5Y2V5Y+35L2c5Li65paw6K6i5Y2V5Yib5bu6ICAgIFxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgKHRoaXMub3JkZXJUeXBlID09IFwidmlwXCIgJiYgIXRoaXMub3JkZXJJZCkgfHxcclxuICAgICAgICAodGhpcy5vcmRlclR5cGUgPT0gXCJyZWNoYXJnZVwiICYmXHJcbiAgICAgICAgICAoIXRoaXMuYWNjb3VudExvZz8uaWQgfHwgdGhpcy5hY2NvdW50TG9nPy5nZXQoXCJpc1ZlcmlmaWVkXCIpKSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy50cmFkZU5vID0gdGhpcy5wYXlTZXJ2ZXIuc2V0VHJhZGVObygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnRyYWRlTm8pO1xyXG4gICAgaWYgKHRoaXMucHJpY2UgPT0gMCkge1xyXG4gICAgICB0aGlzLnRvYXN0KFwi5pSv5LuY5oiQ5YqfXCIsIFwic3VjY2Vzc1wiKTtcclxuICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5wYXlSZXN1bHQuZW1pdCh7XHJcbiAgICAgICAgY29kZTogMjAwLFxyXG4gICAgICAgIHRyYWRlTm86IHRoaXMudHJhZGVObyxcclxuICAgICAgICB0eXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy50cmFkZU5vID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLmNoZWNrcGF5KSB7XHJcbiAgICAgIGNhc2UgXCJ3eHBheVwiOlxyXG4gICAgICAgIHRoaXMub3Blbld4UGF5KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJhbGlwYXlcIjpcclxuICAgICAgICB0aGlzLm9wZW5BbGlwYXkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgLyog5qCh6aqM5pSv5LuY5pa55byPICovXHJcbiAgYXN5bmMgb3Blbld4UGF5KCkge1xyXG4gICAgbGV0IHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgbGV0IGlzV2VpeGluID0gdWEuaW5kZXhPZihcIm1pY3JvbWVzc2VuZ2VyXCIpICE9IC0xO1xyXG4gICAgaWYgKGlzV2VpeGluKSB7XHJcbiAgICAgIC8vSlNBUEkg5pSv5LuYXHJcbiAgICAgIHRoaXMud3hQYXlINSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53eFBheSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7IC8v6Ziy5oqWXHJcblxyXG4gIC8qIOW+ruS/oea1j+iniOWZqEg1546v5aKDICovXHJcbiAgYXN5bmMgd3hQYXlINSgpIHtcclxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIGxldCB3ZWNoYXQgPSBQYXJzZS5Vc2VyLmN1cnJlbnQoKT8uZ2V0KFwid2VjaGF0XCIpO1xyXG4gICAgICBsZXQgb3BlbmlkID1cclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm9wZW5pZFwiKSB8fFxyXG4gICAgICAgIHdlY2hhdFt0aGlzLnd4anNzZGsud2VjaGF0QWNjb3VudElkXT8ub3BlbmlkO1xyXG4gICAgICBpZiAob3BlbmlkKSB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgIGNvbXBhbnk6IHRoaXMud3hqc3Nkay5jb21wYW55LFxyXG4gICAgICAgICAgYm9keTogdGhpcy50aXRsZSxcclxuICAgICAgICAgIG91dF90cmFkZV9ubzogdGhpcy50cmFkZU5vLFxyXG4gICAgICAgICAgdG90YWxfZmVlOiArdGhpcy5wcmljZSxcclxuICAgICAgICAgIG9wZW5pZDogb3BlbmlkLFxyXG4gICAgICAgICAgYXBwaWQ6IHRoaXMud3hqc3Nkay53ZWNoYXRBY2NvdW50SWQsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgLnBvc3QoYGh0dHBzOi8vc2VydmVyLmZtb2RlLmNuL2FwaS93eHBheS9uZXdvcmRlcmAsIHBhcmFtcylcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGFzeW5jIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0KFwi5pSv5LuY5aSx6LSl77yaXCIgKyBlcnI/LmVycm9yPy5tZXNzLCBcImZhaWxcIik7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShhc3luYyAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5jZXJ0aWZpY2F0ZVBheSgpO1xyXG5cclxuICAgICAgICAgICAgbGV0IHBheWluZm86IGFueSA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICB3eC5jaG9vc2VXWFBheSh7XHJcbiAgICAgICAgICAgICAgdGltZXN0YW1wOiBwYXlpbmZvLnRpbWVTdGFtcCwgLy8g5pSv5LuY562+5ZCN5pe26Ze05oiz77yM5rOo5oSP5b6u5L+hanNzZGvkuK3nmoTmiYDmnInkvb/nlKh0aW1lc3RhbXDlrZfmrrXlnYfkuLrlsI/lhpnjgILkvYbmnIDmlrDniYjnmoTmlK/ku5jlkI7lj7DnlJ/miJDnrb7lkI3kvb/nlKjnmoR0aW1lU3RhbXDlrZfmrrXlkI3pnIDlpKflhpnlhbbkuK3nmoRT5a2X56ymXHJcbiAgICAgICAgICAgICAgbm9uY2VTdHI6IHBheWluZm8ubm9uY2VTdHIsIC8vIOaUr+S7mOetvuWQjemaj+acuuS4su+8jOS4jemVv+S6jiAzMiDkvY1cclxuICAgICAgICAgICAgICBwYWNrYWdlOiBwYXlpbmZvLnBhY2thZ2UsIC8vIOe7n+S4gOaUr+S7mOaOpeWPo+i/lOWbnueahHByZXBheV9pZOWPguaVsOWAvO+8jOaPkOS6pOagvOW8j+Wmgu+8mnByZXBheV9pZD1cXCpcXCpcXCrvvIlcclxuICAgICAgICAgICAgICBzaWduVHlwZTogXCJNRDVcIiwgLy8g562+5ZCN5pa55byP77yM6buY6K6k5Li6J1NIQTEn77yM5L2/55So5paw54mI5pSv5LuY6ZyA5Lyg5YWlJ01ENSdcclxuICAgICAgICAgICAgICBwYXlTaWduOiBwYXlpbmZvLnBheVNpZ24sIC8vIOaUr+S7mOetvuWQjVxyXG4gICAgICAgICAgICAgIHN1Y2Nlc3M6IGFzeW5jIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8g5pSv5LuY5oiQ5Yqf5ZCO55qE5Zue6LCD5Ye95pWwXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaXNSZWNoYXJnZVJ1bGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgb3V0X3RyYWRlX25vOiBfdGhpcy50cmFkZU5vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbm9uY2Vfc3RyOiBwYXlpbmZvLm5vbmNlU3RyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY29tcGFueTogdGhpcy53eGpzc2RrLmNvbXBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcmRlcklkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBheVNlcnZlci51cGRhdGVBY2NvdW50TG9nKGluZm8sIHRoaXMub3JkZXJJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9yZGVyVHlwZSA9PSBcInJlY2hhcmdlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjb3VudExvZyA9IGF3YWl0IHRoaXMucGF5U2VydmVyLnVwZGF0ZVJlY2hhcmdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY291bnRMb2chLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgX3RoaXMudG9hc3QoXCLmlK/ku5jmiJDlip9cIiwgXCJzdWNjZXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgICBfdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgX3RoaXMucGF5UmVzdWx0LmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IDIwMCxcclxuICAgICAgICAgICAgICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jaGVja3BheSxcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gYWxlcnQoJ+e8uuWwkW9wZW5pZCzor7fph43mlrDnmbvlvZUnKVxyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGxldCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgICBoZWFkZXI6IFwi5o+Q56S6XCIsXHJcbiAgICAgICAgICBzdWJIZWFkZXI6IFwiXCIsXHJcbiAgICAgICAgICBtZXNzYWdlOiBcIue8uuWwkW9wZW5pZCzor7fliLfmlrDpobXpnaLmiJbph43mlrDnmbvlvZVcIixcclxuICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHJvbGU6IFwib2tcIixcclxuICAgICAgICAgICAgICB0ZXh0OiBcIuehruiupFwiLFxyXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGFsZXJ0LnByZXNlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcclxuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIGxldCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgaGVhZGVyOiBcIuW8guW4uOmUmeivr1wiLFxyXG4gICAgICAgIHN1YkhlYWRlcjogXCJcIixcclxuICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcclxuICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHJvbGU6IFwib2tcIixcclxuICAgICAgICAgICAgdGV4dDogXCLnoa7orqRcIixcclxuICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge30sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBhbGVydC5wcmVzZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qIOa1j+iniOWZqOS6jOe7tOeggeaUr+S7mCAqL1xyXG4gIGFzeW5jIHd4UGF5KCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgY29tcGFueTogdGhpcy53eGpzc2RrLmNvbXBhbnksXHJcbiAgICAgIG91dF90cmFkZV9ubzogdGhpcy50cmFkZU5vLFxyXG4gICAgICB0b3RhbF9mZWU6IHRoaXMucHJpY2UsXHJcbiAgICAgIGJvZHk6IHRoaXMudGl0bGUsXHJcbiAgICB9O1xyXG4gICAgUGFyc2UuQ2xvdWQucnVuKFwicGF5X2NvZGUyXCIsIHBhcmFtcylcclxuICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4ge1xyXG4gICAgICAgIGxldCBub25jZV9zdHIgPSByZXMubm9uY2Vfc3RyO1xyXG4gICAgICAgIHRoaXMuY29kZUxpbmsgPSByZXMuY29kZV91cmxbMF07XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5jb2RlTGluayk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jZXJ0aWZpY2F0ZVBheSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlT3JkZXIobm9uY2Vfc3RyKTtcclxuICAgICAgICAvLyB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudG9hc3QoZXJyLm1lc3NhZ2UsIFwiZGFuZ2VyXCIpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qIOaUr+S7mOWuneaUr+S7mCAqL1xyXG4gIGFzeW5jIG9wZW5BbGlwYXkoKSB7XHJcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICBsZXQgaHRtbFN0cmluZ09yVXJsOiBhbnkgPSBhd2FpdCB0aGlzLmdldEFsaVBheVVybCgpO1xyXG4gICAgICBjb25zb2xlLmxvZyhodG1sU3RyaW5nT3JVcmwpO1xyXG4gICAgICBhd2FpdCB0aGlzLmNlcnRpZmljYXRlUGF5KCk7XHJcbiAgICAgIC8vIGlmICh0aGlzLmRldmljZVNlci5pc0lPUykge1xyXG4gICAgICAvLyAgIHRoaXMuc2FmYXJpVmlld0NvbnRyb2xsZXJcclxuICAgICAgLy8gICAgIC5zaG93KHtcclxuICAgICAgLy8gICAgICAgdXJsOiBodG1sU3RyaW5nT3JVcmwsXHJcbiAgICAgIC8vICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgICAgIGFuaW1hdGVkOiB0cnVlLFxyXG4gICAgICAvLyAgICAgICB0cmFuc2l0aW9uOiBcImN1cmxcIixcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAvLyAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgLy8gICAgICAgICBpZiAocmVzdWx0LmV2ZW50ID09PSBcIm9wZW5lZFwiKSB7XHJcbiAgICAgIC8vICAgICAgICAgICBjb25zb2xlLmxvZyhcIk9wZW5lZFwiKTtcclxuICAgICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5ldmVudCA9PT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAvLyAgICAgICAgICAgY29uc29sZS5sb2coXCJMb2FkZWRcIik7XHJcbiAgICAgIC8vICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZXZlbnQgPT09IFwiY2xvc2VkXCIpIHtcclxuICAgICAgLy8gICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2xvc2VkXCIpO1xyXG4gICAgICAvLyAgICAgICAgIH1cclxuICAgICAgLy8gICAgICAgfSxcclxuICAgICAgLy8gICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIC8vICAgICAgIH0sXHJcbiAgICAgIC8vICAgICApO1xyXG4gICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBodG1sU3RyaW5nT3JVcmw7IC8vIOWBh+iuvmh0bWxTdHJpbmfmmK/lrozmlbTnmoRIVE1M5a2X56ym5LiyXHJcbiAgICAgIGNvbnN0IGZvcm1FbGVtZW50ID0gdGVtcERpdi5xdWVyeVNlbGVjdG9yKFwiZm9ybVwiKTtcclxuICAgICAgaWYgKGZvcm1FbGVtZW50KSB7XHJcbiAgICAgICAgLy8g6Zi75q2i6buY6K6k6KGM5Li677yM6YG/5YWN6aG16Z2i5Yi35pawXHJcbiAgICAgICAgZm9ybUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8g5re75Yqg6ZqQ6JeP55qEaWZyYW1l5p2l5o+Q5Lqk6KGo5Y2VXHJcbiAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtcclxuICAgICAgICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcclxuICAgICAgICBmb3JtRWxlbWVudC50YXJnZXQgPSBpZnJhbWUubmFtZTtcclxuICAgICAgICBjb25zb2xlLmxvZyhmb3JtRWxlbWVudCk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybUVsZW1lbnQpO1xyXG4gICAgICAgIGZvcm1FbGVtZW50LnN1Ym1pdCgpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZm9ybUVsZW1lbnQpOyAvLyDmj5DkuqTlkI7np7vpmaTooajljZXlhYPntKBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwi5pyq5om+5Yiw6KGo5Y2V5YWD57SgXCIpO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuaUr+S7mOe7k+aenOi9ruivolwiKTtcclxuICAgICAgICBsZXQgQWNjb3VudExvZyA9IG5ldyBQYXJzZS5RdWVyeShcIkFjY291bnRMb2dcIik7XHJcbiAgICAgICAgQWNjb3VudExvZy5lcXVhbFRvKFwiY29tcGFueVwiLCB0aGlzLnd4anNzZGsuY29tcGFueSk7XHJcbiAgICAgICAgQWNjb3VudExvZy5lcXVhbFRvKFwib3JkZXJOdW1iZXJcIiwgdGhpcy50cmFkZU5vKTtcclxuICAgICAgICBBY2NvdW50TG9nLmVxdWFsVG8oXCJwYXlUeXBlXCIsIFwiYWxpcGF5XCIpO1xyXG4gICAgICAgIEFjY291bnRMb2cuZXF1YWxUbyhcImlzVmVyaWZpZWRcIiwgdHJ1ZSk7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IEFjY291bnRMb2cuZmlyc3QoKTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5pZCkge1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMudGltZXIpIHtcclxuICAgICAgICAgIC8v5pSv5LuY5oiQ5Yqf6L+U5Zue54q25oCBXHJcbiAgICAgICAgICB0aGlzLnRvYXN0KFwi5pSv5LuY5oiQ5YqfXCIsIFwic3VjY2Vzc1wiKTtcclxuICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnBheVJlc3VsdC5lbWl0KHtcclxuICAgICAgICAgICAgY29kZTogMjAwLFxyXG4gICAgICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8sXHJcbiAgICAgICAgICAgIHR5cGU6IHRoaXMuY2hlY2twYXksXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIGxldCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgaGVhZGVyOiBcIuW8guW4uOmUmeivr1wiLFxyXG4gICAgICAgIHN1YkhlYWRlcjogXCJcIixcclxuICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcclxuICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHJvbGU6IFwib2tcIixcclxuICAgICAgICAgICAgdGV4dDogXCLnoa7orqRcIixcclxuICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge30sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBhbGVydC5wcmVzZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIOiOt+WPluaUr+S7mOWuneaUr+S7mFxyXG4gIGFzeW5jIGdldEFsaVBheVVybCgpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGxldCBiZWZvclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xyXG4gICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgIGNvbXBhbnk6IHRoaXMud3hqc3Nkay5jb21wYW55LFxyXG4gICAgICAgIHRyYWRlTm86IHRoaXMudHJhZGVObyxcclxuICAgICAgICBwcmljZTogdGhpcy5wcmljZSxcclxuICAgICAgICB0cmFkZXR5cGU6IFwid2FwXCIsXHJcbiAgICAgICAgb3JkZXJUaXRsZTogdGhpcy50aXRsZSxcclxuICAgICAgICByZXR1cm5Vcmw6IGJlZm9yVVJMLFxyXG4gICAgICAgIHJldHVyblR5cGU6IFwiZ2V0XCIsXHJcbiAgICAgICAgcmVjaGFyZ2VSdWxlOnRoaXMuaXNSZWNoYXJnZVJ1bGVcclxuICAgICAgfTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgIC5wb3N0KFwiaHR0cHM6Ly9zZXJ2ZXIuZm1vZGUuY24vYXBpL2FsaXBheS9uZXdvcmRlclwiLCBwYXJhbXMpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihhc3luYyAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdChcIuaUr+S7mOWksei0pe+8mlwiICsgZXJyPy5lcnJvcj8ubWVzcywgXCJmYWlsXCIpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMuY29kZSAhPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdChcIue9kee7nOmUmeivr++8jOivt+eojeWQjumHjeivlVwiLCBcIndhcm5pbmdcIik7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YS5wYXlfdXJsKSB7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXMuZGF0YS5wYXlfdXJsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QoXCLnvZHnu5zplJnor6/vvIzor7fnqI3lkI7ph43or5VcIiwgXCJ3YXJuaW5nXCIpO1xyXG4gICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU9yZGVyKG5vbmNlX3N0cjogc3RyaW5nKSB7XHJcbiAgICAvLyDlrprml7bmn6Xor6LorqLljZXmlK/ku5jnirbmgIFcclxuICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgIHRoYXQudGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGxldCBpbmZvID0ge1xyXG4gICAgICAgIG91dF90cmFkZV9ubzogdGhhdC50cmFkZU5vLFxyXG4gICAgICAgIG5vbmNlX3N0cjogbm9uY2Vfc3RyLFxyXG4gICAgICAgIGNvbXBhbnk6IHRoaXMud3hqc3Nkay5jb21wYW55LFxyXG4gICAgICB9O1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhpbmZvKTtcclxuICAgICAgUGFyc2UuQ2xvdWQucnVuKFwib3JkZXJfc3RhdHVzMlwiLCBpbmZvKVxyXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlcyk7XHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyAmJiByZXMuc3RhdHVzWzBdID09IFwiU1VDQ0VTU1wiKSB7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhhdC50aW1lcik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuaXNSZWNoYXJnZVJ1bGUpe1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm9yZGVySWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGF5U2VydmVyLnVwZGF0ZUFjY291bnRMb2coaW5mbywgdGhpcy5vcmRlcklkKTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3JkZXJUeXBlID09IFwicmVjaGFyZ2VcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY2NvdW50TG9nID0gYXdhaXQgdGhpcy5wYXlTZXJ2ZXIudXBkYXRlUmVjaGFyZ2UoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWNjb3VudExvZyEsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGF0LnRvYXN0KFwi5pSv5LuY5oiQ5YqfXCIsIFwic3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgdGhhdC5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhhdC5wYXlSZXN1bHQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgY29kZTogMjAwLFxyXG4gICAgICAgICAgICAgIHRyYWRlTm86IHRoaXMudHJhZGVObyxcclxuICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7fSk7XHJcbiAgICB9LCAzMDAwKTtcclxuICB9XHJcblxyXG4gIC8vIOaUr+S7mOWJjeeVmeWtmOmihOiuouWNlVxyXG4gIGFzeW5jIGNlcnRpZmljYXRlUGF5KCkge1xyXG4gICAgYXdhaXQgdGhpcy5wYXlTZXJ2ZXIuY3JlYXRlZEFjY291bnRMb2coe1xyXG4gICAgICBjb21wYW55OiB0aGlzLnd4anNzZGsuY29tcGFueSxcclxuICAgICAgb3JkZXJJZDogdGhpcy5vcmRlcklkLFxyXG4gICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8sXHJcbiAgICAgIHByaWNlOiB0aGlzLnByaWNlLFxyXG4gICAgICBwYXlUeXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgICBvcmRlclR5cGU6IHRoaXMub3JkZXJUeXBlXHJcbiAgICB9KVxyXG4gICAgaWYoIXRoaXMuaXNSZWNoYXJnZVJ1bGUpIHJldHVyblxyXG4gICAgaWYgKHRoaXMub3JkZXJUeXBlID09IFwidmlwXCIgJiYgIXRoaXMub3JkZXJJZCAmJiB0aGlzLmdpZCkge1xyXG4gICAgICBsZXQgcmVzdWx0ZSA9IGF3YWl0IHRoaXMucGF5U2VydmVyLnNldE9yZGVyKHtcclxuICAgICAgICB0eXBlOiBcInNlcnZpY2VcIiwgLy/liJvlu7rmnI3liqHnsbvorqLljZVcclxuICAgICAgICBnaWQ6IHRoaXMuZ2lkLFxyXG4gICAgICAgIHByaWNlOiB0aGlzLnByaWNlLFxyXG4gICAgICAgIHRvdGFsX2ZlZTogdGhpcy5wcmljZSxcclxuICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8hLFxyXG4gICAgICAgIG91dF90cmFkZV9ubzogdGhpcy50cmFkZU5vISxcclxuICAgICAgICBwYXlUeXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgICAgIGNvZGU6dGhpcy5jb2RlTGlua1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc29sZS5sb2cocmVzdWx0ZSk7XHJcbiAgICAgIGlmIChyZXN1bHRlPy5vYmplY3RJZCkge1xyXG4gICAgICAgIHRoaXMub3JkZXJJZCA9IHJlc3VsdGUub2JqZWN0SWQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcmRlclR5cGUgPT0gXCJyZWNoYXJnZVwiKSB7XHJcbiAgICAgIHRoaXMuYWNjb3VudExvZyA9IGF3YWl0IHRoaXMucGF5U2VydmVyLmNyZWF0ZFJlY2hhcmdlTG9nKHtcclxuICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8hLFxyXG4gICAgICAgIHBheVR5cGU6IHRoaXMuY2hlY2twYXksXHJcbiAgICAgICAgcHJpY2U6IHRoaXMucHJpY2UsXHJcbiAgICAgICAgY3JlZGl0OiB0aGlzLmNyZWRpdCEsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiDlhbPpl63mlK/ku5jlvLnnqpcgKi9cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgY29kZTogMCxcclxuICAgICAgdHJhZGVObzogdGhpcy50cmFkZU5vLFxyXG4gICAgICB0eXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgfTtcclxuICAgIHRoaXMucGF5UmVzdWx0LmVtaXQocmVzdWx0KTtcclxuICB9XHJcbiAgdG9hc3QodGV4dDogc3RyaW5nLCB0eXBlPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0b2FzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgIGNvbnN0IGNvbG9yID0gdHlwZSA/PyBcIndhcm5pbmdcIjtcclxuXHJcbiAgICAvLyDpopzoibLphY3nva5cclxuICAgIGNvbnN0IGNvbG9yQ29uZmlnID0ge1xyXG4gICAgICBzdWNjZXNzOiB7IGJnOiBcIiMxMGRjNjBcIiwgdGV4dDogXCIjZmZmXCIgfSxcclxuICAgICAgZGFuZ2VyOiB7IGJnOiBcIiNmMDQxNDFcIiwgdGV4dDogXCIjZmZmXCIgfSxcclxuICAgICAgZmFpbDogeyBiZzogXCIjZjA0MTQxXCIsIHRleHQ6IFwiI2ZmZlwiIH0sXHJcbiAgICAgIHdhcm5pbmc6IHsgYmc6IFwiI2ZmY2UwMFwiLCB0ZXh0OiBcIiMwMDBcIiB9LFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyDlupTnlKjmoLflvI9cclxuICAgIE9iamVjdC5hc3NpZ24odG9hc3RFbC5zdHlsZSwge1xyXG4gICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxyXG4gICAgICBib3R0b206IFwiMjBweFwiLFxyXG4gICAgICBsZWZ0OiBcIjUwJVwiLFxyXG4gICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxyXG4gICAgICBwYWRkaW5nOiBcIjEycHggMjBweFwiLFxyXG4gICAgICBib3JkZXJSYWRpdXM6IFwiNHB4XCIsXHJcbiAgICAgIHpJbmRleDogXCI5OTk5XCIsXHJcbiAgICAgIGZvbnRTaXplOiBcIjE0cHhcIixcclxuICAgICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICBtaW5XaWR0aDogXCIyMDBweFwiLFxyXG4gICAgICBib3hTaGFkb3c6IFwiMCAzcHggNXB4IHJnYmEoMCwwLDAsMC4yKVwiLFxyXG4gICAgICBvcGFjaXR5OiBcIjBcIixcclxuICAgICAgdHJhbnNpdGlvbjogXCJvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXRcIixcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvckNvbmZpZ1tjb2xvcl0/LmJnIHx8IGNvbG9yQ29uZmlnLndhcm5pbmcuYmcsXHJcbiAgICAgIGNvbG9yOiBjb2xvckNvbmZpZ1tjb2xvcl0/LnRleHQgfHwgY29sb3JDb25maWcud2FybmluZy50ZXh0LFxyXG4gICAgfSk7XHJcblxyXG4gICAgdG9hc3RFbC50ZXh0Q29udGVudCA9IHRleHQ7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRvYXN0RWwpO1xyXG5cclxuICAgIC8vIOaYvuekuuWSjOiHquWKqOenu+mZpFxyXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgdG9hc3RFbC5zdHlsZS5vcGFjaXR5ID0gXCIxXCI7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRvYXN0RWwuc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0b2FzdEVsKSwgMzAwKTtcclxuICAgICAgfSwgMTUwMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGltZXIgJiYgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChpc09wZW4pIHtcclxuICA8ZGl2IGNsYXNzPVwicGF5bWVudC1vdmVybGF5XCI+XHJcbiAgICA8IS0tIOWFqOWxgCBMb2FkaW5nIC0tPlxyXG4gICAgQGlmIChpc0xvYWRpbmcpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImdsb2JhbC1sb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXRleHRcIj7lpITnkIbkuK0uLi48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBheW1lbnQtYm94XCIgW2NsYXNzLmJsdXItZWZmZWN0XT1cImlzTG9hZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGF5LWJveFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiIWlzTG9hZGluZyAmJiBvbkNsb3NlKClcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2xvc2UtaWNvblwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAaWYgKCFjb2RlTGluaykge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheS10aXRsZVwiPuaUr+S7mOiuouWNlTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheS1udW1cIj7vv6V7eyBwcmljZSB8fCAwIH19PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiPlxyXG4gICAgICAgICAgICBAaWYgKHNob3dUeXBlcy5pbmNsdWRlcyhcInd4cGF5XCIpKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJvbmNoYW5nUGF5KCd3eHBheScpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZmlsZS1jbG91ZC5mbW9kZS5jbi9FNEtwR3ZURXRvLzIwMjMxMTIzL3Mxc3VuODA2MTAwMDAwNy5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIuW+ruS/oeaUr+S7mFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj7lvq7kv6HmlK/ku5g8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrXCIgW2NsYXNzLmNoZWNrLWFjdGl2ZV09XCJjaGVja3BheSA9PT0gJ3d4cGF5J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoc2hvd1R5cGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoc2hvd1R5cGVzLmluY2x1ZGVzKFwiYWxpcGF5XCIpKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJvbmNoYW5nUGF5KCdhbGlwYXknKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2ZpbGUtY2xvdWQuZm1vZGUuY24vc3RvcmFnZS9jb21wYW55L0U0S3BHdlRFdG8vMjAyNTA4MTUvMTEwOTM0MTY2LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwi5pSv5LuY5a6dXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25cIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPuaUr+S7mOWunTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tcIiBbY2xhc3MuY2hlY2stYWN0aXZlXT1cImNoZWNrcGF5ID09PSAnYWxpcGF5J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXktZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmRlci1udW1cIj7orqLljZXnvJblj7fvvJp7eyB0cmFkZU5vID8gdHJhZGVObyA6IFwiLVwiIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInBheS1idG5cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCIhaXNMb2FkaW5nICYmIHVzZXJQYXltZW50KClcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIWNoZWNrcGF5XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIOWOu+S7mOasvlxyXG4gICAgICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1sb2FkaW5nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxcmNvZGUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8cXItY29kZSBbdmFsdWVdPVwiY29kZUxpbmtcIiB2YWx1ZT1cIuivt+S9v+eUqOaJi+acuuaJq+aPj+S6jOe7tOeggeWujOaIkOaUr+S7mFwiIFtzaXplXT1cIjE4MFwiPjwvcXItY29kZT5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJxcmNvZGUtdGlwXCI+6K+35L2/55So5omL5py65omr5o+P5LqM57u056CB5a6M5oiQ5pSv5LuYPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
546
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL3BheW1lbnQvcGF5bWVudC9wYXltZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ztb2RlLW5nL3NyYy9saWIvcGF5bWVudC9wYXltZW50L3BheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTztBQUNMLFlBQVk7QUFDWixXQUFXO0FBQ1gsbUJBQW1CO0FBQ25CLGVBQWUsR0FDaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUMsVUFBVSxFQUFrQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztBQUFBLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFBQSxDQUFDO0FBYXBILE1BQU0sT0FBTyxnQkFBZ0I7SUEyQjNCLFlBQ1UsT0FBMkIsRUFDM0IsSUFBZ0IsRUFDaEIsVUFBMEIsRUFDMUIsU0FB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LENBQUM7SUFHRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBemZVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLGlVQzdCN0IsMHJHQTRFQSw2eUlEbkRZLFlBQVksOEJBQUUsWUFBWTs7NEZBSXpCLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQzt3TUFLckIsS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUNJLE9BQU87c0JBQXhCLEtBQUs7dUJBQUMsU0FBUztnQkFDQSxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ00sU0FBUztzQkFBNUIsS0FBSzt1QkFBQyxXQUFXO2dCQUVFLFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFLTyxjQUFjO3NCQUF0QyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDTixNQUFNO3NCQUF0QixLQUFLO3VCQUFDLFFBQVE7Z0JBQ0QsR0FBRztzQkFBaEIsS0FBSzt1QkFBQyxLQUFLO2dCQUNNLE9BQU87c0JBQXhCLEtBQUs7dUJBQUMsU0FBUztnQkFFTixTQUFTO3NCQUFsQixNQUFNO2dCQUNVLE1BQU07c0JBQXRCLEtBQUs7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgV2VjaGF0SnNzZGtTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NvY2lhbC93ZWNoYXQvd2VjaGF0LWpzc2RrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGF5bWVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vcGF5bWVudC9wYXltZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUXJDb2RlTW9kdWxlIH0gZnJvbSAnbmctcXJjb2RlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgLy8gSW9uTW9kYWwsXHJcbiAgLy8gSW9uSWNvbixcclxuICAvLyBUb2FzdENvbnRyb2xsZXIsXHJcbiAgQWxlcnRDb250cm9sbGVyLFxyXG59IGZyb20gXCJAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lXCI7XHJcblxyXG5pbXBvcnQge0Ztb2RlUGFyc2UsRm1vZGVPYmplY3QsRm1vZGVRdWVyeSxGbW9kZVVzZXJ9IGZyb20gXCIuLi8uLi9jb3JlL3BhcnNlXCI7Y29uc3QgUGFyc2UgPSBGbW9kZVBhcnNlLndpdGgoXCJub3ZhXCIpOztcclxuZGVjbGFyZSB2YXIgd3g6IGFueTtcclxuXHJcbi8vIOWumuS5ieaUr+S7mOexu+Wei+aemuS4vlxyXG50eXBlIFBheW1lbnRNZXRob2QgPSBcInd4cGF5XCIgfCBcImFsaXBheVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiZm0tcGF5bWVudFwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUXJDb2RlTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3BheW1lbnQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3BheW1lbnQuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFBheW1lbnRDb21wb25lbnQge1xyXG4gIEBJbnB1dChcInByaWNlXCIpIHByaWNlOiBudW1iZXIgPSAwOyAvL+aUr+S7mOmHkeminVxyXG4gIEBJbnB1dChcInRyYWRlTm9cIikgdHJhZGVObzogc3RyaW5nIHwgdW5kZWZpbmVkOyAvL+aUr+S7mOWNleWPt1xyXG4gIEBJbnB1dChcInRpdGxlXCIpIHRpdGxlOiBzdHJpbmcgPSBcIuaUr+S7mOiuouWNlVwiOyAvL+aUr+S7mOagh+mimFxyXG4gIEBJbnB1dChcInNob3dUeXBlc1wiKSBzaG93VHlwZXM6IFBheW1lbnRNZXRob2RbXSA9IFtcInd4cGF5XCIsIFwiYWxpcGF5XCJdOyAvL+aYvuekuueahOaUr+S7mOaWueW8j1xyXG4gIFxyXG4gIEBJbnB1dChcIm9yZGVyVHlwZVwiKSBvcmRlclR5cGU6IHN0cmluZyA9ICdnb29kcyc7IC8v6K6i5Y2V57G75Z6LXHJcbiAgLyog5YWz6ZSu5a6a5Yi25Y+C5pWwaXNSZWNoYXJnZVJ1bGXvvJrlvZNvcmRlclR5cGUgPSB2aXAgfCByZWNoYXJnZeS4lOWmguaenGlzUmVjaGFyZ2VSdWxl5Li6dHJ1Ze+8jOWImeihqOekuuaYr+WFheWAvOinhOWIme+8jOmcgOimgeiuvue9rmNyZWRpdOaIlmdpZCBcclxuICAqIG9yZGVyVHlwZe+8mnZpcCDkvJrlkZjlvIDpgJpcclxuICAqIG9yZGVyVHlwZe+8mnJlY2hhcmdlIOWFheWAvFxyXG4gICovXHJcbiAgQElucHV0KFwiaXNSZWNoYXJnZVJ1bGVcIikgaXNSZWNoYXJnZVJ1bGU6IGJvb2xlYW4gPSBmYWxzZTsgLy/mmK/lkKbmmK/lhYXlgLzop4TliJlcclxuICBASW5wdXQoXCJjcmVkaXRcIikgY3JlZGl0OiBudW1iZXIgfCB1bmRlZmluZWQgPSAwOyAvL+enr+WIhibomZrmi5/luIFcclxuICBASW5wdXQoXCJnaWRcIikgZ2lkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IC8v5ZWG5ZOBSURcclxuICBASW5wdXQoXCJvcmRlcklkXCIpIG9yZGVySWQ/OiBzdHJpbmc7IC8v6K6i5Y2VSURcclxuXHJcbiAgQE91dHB1dCgpIHBheVJlc3VsdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoXCJpc09wZW5cIikgaXNPcGVuOiBib29sZWFuID0gdHJ1ZTsgLy/miZPlvIDlvLnnqpdcclxuXHJcbiAgY2hlY2twYXk6IHN0cmluZyA9IHRoaXMuc2hvd1R5cGVzWzBdIHx8IFwiXCI7XHJcbiAgdXNlckFnZW50Pzogc3RyaW5nOyAvL+iOt+WPluW9k+WJjea1j+iniOWZqOeOr+Wig1xyXG4gIGNvZGVMaW5rPzogc3RyaW5nO1xyXG4gIHVzZXI6Rm1vZGVPYmplY3QgPSBQYXJzZS5Vc2VyLmN1cnJlbnQoKSE7XHJcbiAgdGltZXI6IGFueTsgLy/lrprml7bmn6Xor6JcclxuXHJcbiAgYWNjb3VudExvZz86Rm1vZGVPYmplY3Q7IC8vIOWFheWAvOiusOW9lVxyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlOyAvL+etieW+hVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB3eGpzc2RrOiBXZWNoYXRKc3Nka1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGFjdGl2Um91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBwYXlTZXJ2ZXI6IFBheW1lbnRTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgYWxlcnRDdHJsOiBBbGVydENvbnRyb2xsZXIsXHJcbiAgKSB7fVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hY3RpdlJvdXRlLnBhcmFtTWFwLnN1YnNjcmliZShhc3luYyAocGFyYW1zKSA9PiB7XHJcbiAgICAgIGxldCB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtcclxuICAgICAgY29uc29sZS5sb2codWEpO1xyXG4gICAgICBpZiAodWEuaW5kZXhPZihcIm1pY3JvbWVzc2VuZ2VyXCIpICE9IC0xKSB7XHJcbiAgICAgICAgdGhpcy51c2VyQWdlbnQgPSBcIndlaXhpblwiO1xyXG4gICAgICAgIGF3YWl0IHRoaXMud3hqc3Nkay5pbml0VXNlck9wZW5pZCgpO1xyXG4gICAgICAgIHRoaXMud3hqc3Nkay5zZXRDdXJyZW50UGFnZVNoYXJlSW5mbygpO1xyXG4gICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoXCJ3aW5kb3dzXCIpICE9IC0xIHx8IHVhLmluZGV4T2YoXCJNYWNpbnRvc2hcIikgIT0gLTEpIHtcclxuICAgICAgICB0aGlzLnVzZXJBZ2VudCA9IFwicGNcIjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbmNoYW5nUGF5KHZhbDogUGF5bWVudE1ldGhvZCkge1xyXG4gICAgdGhpcy5jaGVja3BheSA9IHZhbDtcclxuICAgIGNvbnNvbGUubG9nKHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKiDnlKjmiLfnoa7orqTmlK/ku5ggKi9cclxuICBhc3luYyB1c2VyUGF5bWVudCgpIHtcclxuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCAhdGhpcy5jaGVja3BheSkgcmV0dXJuO1xyXG4gICAgaWYgKCF0aGlzLnRyYWRlTm8pIHtcclxuICAgICAgdGhpcy50cmFkZU5vID0gdGhpcy5wYXlTZXJ2ZXIuc2V0VHJhZGVObygpO1xyXG4gICAgfVxyXG4gICAgLyogaXNSZWNoYXJnZVJ1bGUg5YWF5YC86KeE5YiZICovXHJcbiAgICBpZiAodGhpcy5pc1JlY2hhcmdlUnVsZSAmJiB0aGlzLnRyYWRlTm8pIHtcclxuICAgICAgdGhpcy5vcmRlcklkID0gYXdhaXQgdGhpcy5wYXlTZXJ2ZXIuZ2V0T3JkZXIodGhpcy50cmFkZU5vKTtcclxuICAgICAgLy/mu6HotrMg4pGg5Lya5ZGY5YWF5YC85LiU6K6i5Y2V5LiN5a2Y5ZyoIOKRoeS9memineWFheWAvOS4lOWFheWAvOiusOW9leS4jeWtmOWcqOaIluW3suaUr+S7mCDlsIbph43mlrDliJvlu7rorqLljZXlj7fkvZzkuLrmlrDorqLljZXliJvlu7ogICAgXHJcbiAgICAgIGlmIChcclxuICAgICAgICAodGhpcy5vcmRlclR5cGUgPT0gXCJ2aXBcIiAmJiAhdGhpcy5vcmRlcklkKSB8fFxyXG4gICAgICAgICh0aGlzLm9yZGVyVHlwZSA9PSBcInJlY2hhcmdlXCIgJiZcclxuICAgICAgICAgICghdGhpcy5hY2NvdW50TG9nPy5pZCB8fCB0aGlzLmFjY291bnRMb2c/LmdldChcImlzVmVyaWZpZWRcIikpKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnRyYWRlTm8gPSB0aGlzLnBheVNlcnZlci5zZXRUcmFkZU5vKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMudHJhZGVObyk7XHJcbiAgICBpZiAodGhpcy5wcmljZSA9PSAwKSB7XHJcbiAgICAgIHRoaXMudG9hc3QoXCLmlK/ku5jmiJDlip9cIiwgXCJzdWNjZXNzXCIpO1xyXG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBheVJlc3VsdC5lbWl0KHtcclxuICAgICAgICBjb2RlOiAyMDAsXHJcbiAgICAgICAgdHJhZGVObzogdGhpcy50cmFkZU5vLFxyXG4gICAgICAgIHR5cGU6IHRoaXMuY2hlY2twYXksXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnRyYWRlTm8gPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKHRoaXMuY2hlY2twYXkpIHtcclxuICAgICAgY2FzZSBcInd4cGF5XCI6XHJcbiAgICAgICAgdGhpcy5vcGVuV3hQYXkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImFsaXBheVwiOlxyXG4gICAgICAgIHRoaXMub3BlbkFsaXBheSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiDmoKHpqozmlK/ku5jmlrnlvI8gKi9cclxuICBhc3luYyBvcGVuV3hQYXkoKSB7XHJcbiAgICBsZXQgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgaXNXZWl4aW4gPSB1YS5pbmRleE9mKFwibWljcm9tZXNzZW5nZXJcIikgIT0gLTE7XHJcbiAgICBpZiAoaXNXZWl4aW4pIHtcclxuICAgICAgLy9KU0FQSSDmlK/ku5hcclxuICAgICAgdGhpcy53eFBheUg1KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnd4UGF5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTsgLy/pmLLmipZcclxuXHJcbiAgLyog5b6u5L+h5rWP6KeI5ZmoSDXnjq/looMgKi9cclxuICBhc3luYyB3eFBheUg1KCkge1xyXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgbGV0IHdlY2hhdCA9IFBhcnNlLlVzZXIuY3VycmVudCgpPy5nZXQoXCJ3ZWNoYXRcIik7XHJcbiAgICAgIGxldCBvcGVuaWQgPVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwib3BlbmlkXCIpIHx8XHJcbiAgICAgICAgd2VjaGF0W3RoaXMud3hqc3Nkay53ZWNoYXRBY2NvdW50SWRdPy5vcGVuaWQ7XHJcbiAgICAgIGlmIChvcGVuaWQpIHtcclxuICAgICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgICAgY29tcGFueTogdGhpcy53eGpzc2RrLmNvbXBhbnksXHJcbiAgICAgICAgICBib2R5OiB0aGlzLnRpdGxlLFxyXG4gICAgICAgICAgb3V0X3RyYWRlX25vOiB0aGlzLnRyYWRlTm8sXHJcbiAgICAgICAgICB0b3RhbF9mZWU6ICt0aGlzLnByaWNlLFxyXG4gICAgICAgICAgb3BlbmlkOiBvcGVuaWQsXHJcbiAgICAgICAgICBhcHBpZDogdGhpcy53eGpzc2RrLndlY2hhdEFjY291bnRJZCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAucG9zdChgaHR0cHM6Ly9zZXJ2ZXIuZm1vZGUuY24vYXBpL3d4cGF5L25ld29yZGVyYCwgcGFyYW1zKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoYXN5bmMgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QoXCLmlK/ku5jlpLHotKXvvJpcIiArIGVycj8uZXJyb3I/Lm1lc3MsIFwiZmFpbFwiKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNlcnRpZmljYXRlUGF5KCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgcGF5aW5mbzogYW55ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICAgIHd4LmNob29zZVdYUGF5KHtcclxuICAgICAgICAgICAgICB0aW1lc3RhbXA6IHBheWluZm8udGltZVN0YW1wLCAvLyDmlK/ku5jnrb7lkI3ml7bpl7TmiLPvvIzms6jmhI/lvq7kv6Fqc3Nka+S4reeahOaJgOacieS9v+eUqHRpbWVzdGFtcOWtl+auteWdh+S4uuWwj+WGmeOAguS9huacgOaWsOeJiOeahOaUr+S7mOWQjuWPsOeUn+aIkOetvuWQjeS9v+eUqOeahHRpbWVTdGFtcOWtl+auteWQjemcgOWkp+WGmeWFtuS4reeahFPlrZfnrKZcclxuICAgICAgICAgICAgICBub25jZVN0cjogcGF5aW5mby5ub25jZVN0ciwgLy8g5pSv5LuY562+5ZCN6ZqP5py65Liy77yM5LiN6ZW/5LqOIDMyIOS9jVxyXG4gICAgICAgICAgICAgIHBhY2thZ2U6IHBheWluZm8ucGFja2FnZSwgLy8g57uf5LiA5pSv5LuY5o6l5Y+j6L+U5Zue55qEcHJlcGF5X2lk5Y+C5pWw5YC877yM5o+Q5Lqk5qC85byP5aaC77yacHJlcGF5X2lkPVxcKlxcKlxcKu+8iVxyXG4gICAgICAgICAgICAgIHNpZ25UeXBlOiBcIk1ENVwiLCAvLyDnrb7lkI3mlrnlvI/vvIzpu5jorqTkuLonU0hBMSfvvIzkvb/nlKjmlrDniYjmlK/ku5jpnIDkvKDlhaUnTUQ1J1xyXG4gICAgICAgICAgICAgIHBheVNpZ246IHBheWluZm8ucGF5U2lnbiwgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgc3VjY2VzczogYXN5bmMgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyDmlK/ku5jmiJDlip/lkI7nmoTlm57osIPlh73mlbBcclxuICAgICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgaWYodGhpcy5pc1JlY2hhcmdlUnVsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBvdXRfdHJhZGVfbm86IF90aGlzLnRyYWRlTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICBub25jZV9zdHI6IHBheWluZm8ubm9uY2VTdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb21wYW55OiB0aGlzLnd4anNzZGsuY29tcGFueSxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9yZGVySWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGF5U2VydmVyLnVwZGF0ZUFjY291bnRMb2coaW5mbywgdGhpcy5vcmRlcklkKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3JkZXJUeXBlID09IFwicmVjaGFyZ2VcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NvdW50TG9nID0gYXdhaXQgdGhpcy5wYXlTZXJ2ZXIudXBkYXRlUmVjaGFyZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjb3VudExvZyEsXHJcbiAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnd3hwYXkgc3VjY2VzcyEnKTtcclxuICAgICAgICAgICAgICAgICAgX3RoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIF90aGlzLnRvYXN0KFwi5pSv5LuY5oiQ5YqfXCIsIFwic3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgX3RoaXMucGF5UmVzdWx0LmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IDIwMCxcclxuICAgICAgICAgICAgICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jaGVja3BheSxcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gYWxlcnQoJ+e8uuWwkW9wZW5pZCzor7fph43mlrDnmbvlvZUnKVxyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGxldCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgICBoZWFkZXI6IFwi5o+Q56S6XCIsXHJcbiAgICAgICAgICBzdWJIZWFkZXI6IFwiXCIsXHJcbiAgICAgICAgICBtZXNzYWdlOiBcIue8uuWwkW9wZW5pZCzor7fliLfmlrDpobXpnaLmiJbph43mlrDnmbvlvZVcIixcclxuICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHJvbGU6IFwib2tcIixcclxuICAgICAgICAgICAgICB0ZXh0OiBcIuehruiupFwiLFxyXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGFsZXJ0LnByZXNlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcclxuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIGxldCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgaGVhZGVyOiBcIuW8guW4uOmUmeivr1wiLFxyXG4gICAgICAgIHN1YkhlYWRlcjogXCJcIixcclxuICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcclxuICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHJvbGU6IFwib2tcIixcclxuICAgICAgICAgICAgdGV4dDogXCLnoa7orqRcIixcclxuICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge30sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBhbGVydC5wcmVzZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qIOa1j+iniOWZqOS6jOe7tOeggeaUr+S7mCAqL1xyXG4gIGFzeW5jIHd4UGF5KCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgY29tcGFueTogdGhpcy53eGpzc2RrLmNvbXBhbnksXHJcbiAgICAgIG91dF90cmFkZV9ubzogdGhpcy50cmFkZU5vLFxyXG4gICAgICB0b3RhbF9mZWU6IHRoaXMucHJpY2UsXHJcbiAgICAgIGJvZHk6IHRoaXMudGl0bGUsXHJcbiAgICB9O1xyXG4gICAgUGFyc2UuQ2xvdWQucnVuKFwicGF5X2NvZGUyXCIsIHBhcmFtcylcclxuICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4ge1xyXG4gICAgICAgIGxldCBub25jZV9zdHIgPSByZXMubm9uY2Vfc3RyO1xyXG4gICAgICAgIHRoaXMuY29kZUxpbmsgPSByZXMuY29kZV91cmxbMF07XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5jb2RlTGluayk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jZXJ0aWZpY2F0ZVBheSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlT3JkZXIobm9uY2Vfc3RyKTtcclxuICAgICAgICAvLyB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudG9hc3QoZXJyLm1lc3NhZ2UsIFwiZGFuZ2VyXCIpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qIOaUr+S7mOWuneaUr+S7mCAqL1xyXG4gIGFzeW5jIG9wZW5BbGlwYXkoKSB7XHJcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICBsZXQgaHRtbFN0cmluZ09yVXJsOiBhbnkgPSBhd2FpdCB0aGlzLmdldEFsaVBheVVybCgpO1xyXG4gICAgICBjb25zb2xlLmxvZyhodG1sU3RyaW5nT3JVcmwpO1xyXG4gICAgICBhd2FpdCB0aGlzLmNlcnRpZmljYXRlUGF5KCk7XHJcbiAgICAgIC8vIGlmICh0aGlzLmRldmljZVNlci5pc0lPUykge1xyXG4gICAgICAvLyAgIHRoaXMuc2FmYXJpVmlld0NvbnRyb2xsZXJcclxuICAgICAgLy8gICAgIC5zaG93KHtcclxuICAgICAgLy8gICAgICAgdXJsOiBodG1sU3RyaW5nT3JVcmwsXHJcbiAgICAgIC8vICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgICAgIGFuaW1hdGVkOiB0cnVlLFxyXG4gICAgICAvLyAgICAgICB0cmFuc2l0aW9uOiBcImN1cmxcIixcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAvLyAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgLy8gICAgICAgICBpZiAocmVzdWx0LmV2ZW50ID09PSBcIm9wZW5lZFwiKSB7XHJcbiAgICAgIC8vICAgICAgICAgICBjb25zb2xlLmxvZyhcIk9wZW5lZFwiKTtcclxuICAgICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5ldmVudCA9PT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAvLyAgICAgICAgICAgY29uc29sZS5sb2coXCJMb2FkZWRcIik7XHJcbiAgICAgIC8vICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZXZlbnQgPT09IFwiY2xvc2VkXCIpIHtcclxuICAgICAgLy8gICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2xvc2VkXCIpO1xyXG4gICAgICAvLyAgICAgICAgIH1cclxuICAgICAgLy8gICAgICAgfSxcclxuICAgICAgLy8gICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIC8vICAgICAgIH0sXHJcbiAgICAgIC8vICAgICApO1xyXG4gICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBodG1sU3RyaW5nT3JVcmw7IC8vIOWBh+iuvmh0bWxTdHJpbmfmmK/lrozmlbTnmoRIVE1M5a2X56ym5LiyXHJcbiAgICAgIGNvbnN0IGZvcm1FbGVtZW50ID0gdGVtcERpdi5xdWVyeVNlbGVjdG9yKFwiZm9ybVwiKTtcclxuICAgICAgaWYgKGZvcm1FbGVtZW50KSB7XHJcbiAgICAgICAgLy8g6Zi75q2i6buY6K6k6KGM5Li677yM6YG/5YWN6aG16Z2i5Yi35pawXHJcbiAgICAgICAgZm9ybUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8g5re75Yqg6ZqQ6JeP55qEaWZyYW1l5p2l5o+Q5Lqk6KGo5Y2VXHJcbiAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtcclxuICAgICAgICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcclxuICAgICAgICBmb3JtRWxlbWVudC50YXJnZXQgPSBpZnJhbWUubmFtZTtcclxuICAgICAgICBjb25zb2xlLmxvZyhmb3JtRWxlbWVudCk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybUVsZW1lbnQpO1xyXG4gICAgICAgIGZvcm1FbGVtZW50LnN1Ym1pdCgpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZm9ybUVsZW1lbnQpOyAvLyDmj5DkuqTlkI7np7vpmaTooajljZXlhYPntKBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwi5pyq5om+5Yiw6KGo5Y2V5YWD57SgXCIpO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuaUr+S7mOe7k+aenOi9ruivolwiKTtcclxuICAgICAgICBsZXQgQWNjb3VudExvZyA9IG5ldyBQYXJzZS5RdWVyeShcIkFjY291bnRMb2dcIik7XHJcbiAgICAgICAgQWNjb3VudExvZy5lcXVhbFRvKFwiY29tcGFueVwiLCB0aGlzLnd4anNzZGsuY29tcGFueSk7XHJcbiAgICAgICAgQWNjb3VudExvZy5lcXVhbFRvKFwib3JkZXJOdW1iZXJcIiwgdGhpcy50cmFkZU5vKTtcclxuICAgICAgICBBY2NvdW50TG9nLmVxdWFsVG8oXCJwYXlUeXBlXCIsIFwiYWxpcGF5XCIpO1xyXG4gICAgICAgIEFjY291bnRMb2cuZXF1YWxUbyhcImlzVmVyaWZpZWRcIiwgdHJ1ZSk7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IEFjY291bnRMb2cuZmlyc3QoKTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5pZCkge1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMudGltZXIpIHtcclxuICAgICAgICAgIC8v5pSv5LuY5oiQ5Yqf6L+U5Zue54q25oCBXHJcbiAgICAgICAgICB0aGlzLnRvYXN0KFwi5pSv5LuY5oiQ5YqfXCIsIFwic3VjY2Vzc1wiKTtcclxuICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnBheVJlc3VsdC5lbWl0KHtcclxuICAgICAgICAgICAgY29kZTogMjAwLFxyXG4gICAgICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8sXHJcbiAgICAgICAgICAgIHR5cGU6IHRoaXMuY2hlY2twYXksXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIGxldCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgaGVhZGVyOiBcIuW8guW4uOmUmeivr1wiLFxyXG4gICAgICAgIHN1YkhlYWRlcjogXCJcIixcclxuICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcclxuICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHJvbGU6IFwib2tcIixcclxuICAgICAgICAgICAgdGV4dDogXCLnoa7orqRcIixcclxuICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge30sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBhbGVydC5wcmVzZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIOiOt+WPluaUr+S7mOWuneaUr+S7mFxyXG4gIGFzeW5jIGdldEFsaVBheVVybCgpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGxldCBiZWZvclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xyXG4gICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgIGNvbXBhbnk6IHRoaXMud3hqc3Nkay5jb21wYW55LFxyXG4gICAgICAgIHRyYWRlTm86IHRoaXMudHJhZGVObyxcclxuICAgICAgICBwcmljZTogdGhpcy5wcmljZSxcclxuICAgICAgICB0cmFkZXR5cGU6IFwid2FwXCIsXHJcbiAgICAgICAgb3JkZXJUaXRsZTogdGhpcy50aXRsZSxcclxuICAgICAgICByZXR1cm5Vcmw6IGJlZm9yVVJMLFxyXG4gICAgICAgIHJldHVyblR5cGU6IFwiZ2V0XCIsXHJcbiAgICAgICAgcmVjaGFyZ2VSdWxlOnRoaXMuaXNSZWNoYXJnZVJ1bGVcclxuICAgICAgfTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgIC5wb3N0KFwiaHR0cHM6Ly9zZXJ2ZXIuZm1vZGUuY24vYXBpL2FsaXBheS9uZXdvcmRlclwiLCBwYXJhbXMpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihhc3luYyAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdChcIuaUr+S7mOWksei0pe+8mlwiICsgZXJyPy5lcnJvcj8ubWVzcywgXCJmYWlsXCIpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMuY29kZSAhPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdChcIue9kee7nOmUmeivr++8jOivt+eojeWQjumHjeivlVwiLCBcIndhcm5pbmdcIik7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YS5wYXlfdXJsKSB7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXMuZGF0YS5wYXlfdXJsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QoXCLnvZHnu5zplJnor6/vvIzor7fnqI3lkI7ph43or5VcIiwgXCJ3YXJuaW5nXCIpO1xyXG4gICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU9yZGVyKG5vbmNlX3N0cjogc3RyaW5nKSB7XHJcbiAgICAvLyDlrprml7bmn6Xor6LorqLljZXmlK/ku5jnirbmgIFcclxuICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgIHRoYXQudGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGxldCBpbmZvID0ge1xyXG4gICAgICAgIG91dF90cmFkZV9ubzogdGhhdC50cmFkZU5vLFxyXG4gICAgICAgIG5vbmNlX3N0cjogbm9uY2Vfc3RyLFxyXG4gICAgICAgIGNvbXBhbnk6IHRoaXMud3hqc3Nkay5jb21wYW55LFxyXG4gICAgICB9O1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhpbmZvKTtcclxuICAgICAgUGFyc2UuQ2xvdWQucnVuKFwib3JkZXJfc3RhdHVzMlwiLCBpbmZvKVxyXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlcyk7XHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyAmJiByZXMuc3RhdHVzWzBdID09IFwiU1VDQ0VTU1wiKSB7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhhdC50aW1lcik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuaXNSZWNoYXJnZVJ1bGUpe1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm9yZGVySWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGF5U2VydmVyLnVwZGF0ZUFjY291bnRMb2coaW5mbywgdGhpcy5vcmRlcklkKTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3JkZXJUeXBlID09IFwicmVjaGFyZ2VcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY2NvdW50TG9nID0gYXdhaXQgdGhpcy5wYXlTZXJ2ZXIudXBkYXRlUmVjaGFyZ2UoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWNjb3VudExvZyEsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGF0LnRvYXN0KFwi5pSv5LuY5oiQ5YqfXCIsIFwic3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgdGhhdC5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhhdC5wYXlSZXN1bHQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgY29kZTogMjAwLFxyXG4gICAgICAgICAgICAgIHRyYWRlTm86IHRoaXMudHJhZGVObyxcclxuICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7fSk7XHJcbiAgICB9LCAzMDAwKTtcclxuICB9XHJcblxyXG4gIC8vIOaUr+S7mOWJjeeVmeWtmOmihOiuouWNlVxyXG4gIGFzeW5jIGNlcnRpZmljYXRlUGF5KCkge1xyXG4gICAgYXdhaXQgdGhpcy5wYXlTZXJ2ZXIuY3JlYXRlZEFjY291bnRMb2coe1xyXG4gICAgICBjb21wYW55OiB0aGlzLnd4anNzZGsuY29tcGFueSxcclxuICAgICAgb3JkZXJJZDogdGhpcy5vcmRlcklkLFxyXG4gICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8sXHJcbiAgICAgIHByaWNlOiB0aGlzLnByaWNlLFxyXG4gICAgICBwYXlUeXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgICBvcmRlclR5cGU6IHRoaXMub3JkZXJUeXBlXHJcbiAgICB9KVxyXG4gICAgaWYoIXRoaXMuaXNSZWNoYXJnZVJ1bGUpIHJldHVyblxyXG4gICAgaWYgKHRoaXMub3JkZXJUeXBlID09IFwidmlwXCIgJiYgIXRoaXMub3JkZXJJZCAmJiB0aGlzLmdpZCkge1xyXG4gICAgICBsZXQgcmVzdWx0ZSA9IGF3YWl0IHRoaXMucGF5U2VydmVyLnNldE9yZGVyKHtcclxuICAgICAgICB0eXBlOiBcInNlcnZpY2VcIiwgLy/liJvlu7rmnI3liqHnsbvorqLljZVcclxuICAgICAgICBnaWQ6IHRoaXMuZ2lkLFxyXG4gICAgICAgIHByaWNlOiB0aGlzLnByaWNlLFxyXG4gICAgICAgIHRvdGFsX2ZlZTogdGhpcy5wcmljZSxcclxuICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8hLFxyXG4gICAgICAgIG91dF90cmFkZV9ubzogdGhpcy50cmFkZU5vISxcclxuICAgICAgICBwYXlUeXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgICAgIGNvZGU6dGhpcy5jb2RlTGlua1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc29sZS5sb2cocmVzdWx0ZSk7XHJcbiAgICAgIGlmIChyZXN1bHRlPy5vYmplY3RJZCkge1xyXG4gICAgICAgIHRoaXMub3JkZXJJZCA9IHJlc3VsdGUub2JqZWN0SWQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcmRlclR5cGUgPT0gXCJyZWNoYXJnZVwiKSB7XHJcbiAgICAgIHRoaXMuYWNjb3VudExvZyA9IGF3YWl0IHRoaXMucGF5U2VydmVyLmNyZWF0ZFJlY2hhcmdlTG9nKHtcclxuICAgICAgICB0cmFkZU5vOiB0aGlzLnRyYWRlTm8hLFxyXG4gICAgICAgIHBheVR5cGU6IHRoaXMuY2hlY2twYXksXHJcbiAgICAgICAgcHJpY2U6IHRoaXMucHJpY2UsXHJcbiAgICAgICAgY3JlZGl0OiB0aGlzLmNyZWRpdCEsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiDlhbPpl63mlK/ku5jlvLnnqpcgKi9cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgY29kZTogMCxcclxuICAgICAgdHJhZGVObzogdGhpcy50cmFkZU5vLFxyXG4gICAgICB0eXBlOiB0aGlzLmNoZWNrcGF5LFxyXG4gICAgfTtcclxuICAgIHRoaXMucGF5UmVzdWx0LmVtaXQocmVzdWx0KTtcclxuICB9XHJcbiAgdG9hc3QodGV4dDogc3RyaW5nLCB0eXBlPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0b2FzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgIGNvbnN0IGNvbG9yID0gdHlwZSA/PyBcIndhcm5pbmdcIjtcclxuXHJcbiAgICAvLyDpopzoibLphY3nva5cclxuICAgIGNvbnN0IGNvbG9yQ29uZmlnID0ge1xyXG4gICAgICBzdWNjZXNzOiB7IGJnOiBcIiMxMGRjNjBcIiwgdGV4dDogXCIjZmZmXCIgfSxcclxuICAgICAgZGFuZ2VyOiB7IGJnOiBcIiNmMDQxNDFcIiwgdGV4dDogXCIjZmZmXCIgfSxcclxuICAgICAgZmFpbDogeyBiZzogXCIjZjA0MTQxXCIsIHRleHQ6IFwiI2ZmZlwiIH0sXHJcbiAgICAgIHdhcm5pbmc6IHsgYmc6IFwiI2ZmY2UwMFwiLCB0ZXh0OiBcIiMwMDBcIiB9LFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyDlupTnlKjmoLflvI9cclxuICAgIE9iamVjdC5hc3NpZ24odG9hc3RFbC5zdHlsZSwge1xyXG4gICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxyXG4gICAgICBib3R0b206IFwiMjBweFwiLFxyXG4gICAgICBsZWZ0OiBcIjUwJVwiLFxyXG4gICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxyXG4gICAgICBwYWRkaW5nOiBcIjEycHggMjBweFwiLFxyXG4gICAgICBib3JkZXJSYWRpdXM6IFwiNHB4XCIsXHJcbiAgICAgIHpJbmRleDogXCI5OTk5XCIsXHJcbiAgICAgIGZvbnRTaXplOiBcIjE0cHhcIixcclxuICAgICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICBtaW5XaWR0aDogXCIyMDBweFwiLFxyXG4gICAgICBib3hTaGFkb3c6IFwiMCAzcHggNXB4IHJnYmEoMCwwLDAsMC4yKVwiLFxyXG4gICAgICBvcGFjaXR5OiBcIjBcIixcclxuICAgICAgdHJhbnNpdGlvbjogXCJvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXRcIixcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvckNvbmZpZ1tjb2xvcl0/LmJnIHx8IGNvbG9yQ29uZmlnLndhcm5pbmcuYmcsXHJcbiAgICAgIGNvbG9yOiBjb2xvckNvbmZpZ1tjb2xvcl0/LnRleHQgfHwgY29sb3JDb25maWcud2FybmluZy50ZXh0LFxyXG4gICAgfSk7XHJcblxyXG4gICAgdG9hc3RFbC50ZXh0Q29udGVudCA9IHRleHQ7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRvYXN0RWwpO1xyXG5cclxuICAgIC8vIOaYvuekuuWSjOiHquWKqOenu+mZpFxyXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgdG9hc3RFbC5zdHlsZS5vcGFjaXR5ID0gXCIxXCI7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRvYXN0RWwuc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0b2FzdEVsKSwgMzAwKTtcclxuICAgICAgfSwgMTUwMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGltZXIgJiYgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChpc09wZW4pIHtcclxuICA8ZGl2IGNsYXNzPVwicGF5bWVudC1vdmVybGF5XCI+XHJcbiAgICA8IS0tIOWFqOWxgCBMb2FkaW5nIC0tPlxyXG4gICAgQGlmIChpc0xvYWRpbmcpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImdsb2JhbC1sb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXRleHRcIj7lpITnkIbkuK0uLi48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBheW1lbnQtYm94XCIgW2NsYXNzLmJsdXItZWZmZWN0XT1cImlzTG9hZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGF5LWJveFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiIWlzTG9hZGluZyAmJiBvbkNsb3NlKClcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2xvc2UtaWNvblwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAaWYgKCFjb2RlTGluaykge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheS10aXRsZVwiPuaUr+S7mOiuouWNlTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheS1udW1cIj7vv6V7eyBwcmljZSB8fCAwIH19PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiPlxyXG4gICAgICAgICAgICBAaWYgKHNob3dUeXBlcy5pbmNsdWRlcyhcInd4cGF5XCIpKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJvbmNoYW5nUGF5KCd3eHBheScpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZmlsZS1jbG91ZC5mbW9kZS5jbi9FNEtwR3ZURXRvLzIwMjMxMTIzL3Mxc3VuODA2MTAwMDAwNy5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIuW+ruS/oeaUr+S7mFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj7lvq7kv6HmlK/ku5g8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrXCIgW2NsYXNzLmNoZWNrLWFjdGl2ZV09XCJjaGVja3BheSA9PT0gJ3d4cGF5J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoc2hvd1R5cGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoc2hvd1R5cGVzLmluY2x1ZGVzKFwiYWxpcGF5XCIpKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJvbmNoYW5nUGF5KCdhbGlwYXknKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2ZpbGUtY2xvdWQuZm1vZGUuY24vc3RvcmFnZS9jb21wYW55L0U0S3BHdlRFdG8vMjAyNTA4MTUvMTEwOTM0MTY2LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwi5pSv5LuY5a6dXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25cIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPuaUr+S7mOWunTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tcIiBbY2xhc3MuY2hlY2stYWN0aXZlXT1cImNoZWNrcGF5ID09PSAnYWxpcGF5J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXktZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmRlci1udW1cIj7orqLljZXnvJblj7fvvJp7eyB0cmFkZU5vID8gdHJhZGVObyA6IFwiLVwiIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInBheS1idG5cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCIhaXNMb2FkaW5nICYmIHVzZXJQYXltZW50KClcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIWNoZWNrcGF5XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIOWOu+S7mOasvlxyXG4gICAgICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1sb2FkaW5nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxcmNvZGUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8cXItY29kZSBbdmFsdWVdPVwiY29kZUxpbmtcIiB2YWx1ZT1cIuivt+S9v+eUqOaJi+acuuaJq+aPj+S6jOe7tOeggeWujOaIkOaUr+S7mFwiIFtzaXplXT1cIjE4MFwiPjwvcXItY29kZT5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJxcmNvZGUtdGlwXCI+6K+35L2/55So5omL5py65omr5o+P5LqM57u056CB5a6M5oiQ5pSv5LuYPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
@@ -18009,8 +18009,9 @@ class PaymentComponent {
18009
18009
  this.accountLog = await this.payServer.updateRecharge(this.accountLog);
18010
18010
  }
18011
18011
  }
18012
- _this.toast("支付成功", "success");
18012
+ console.log('wxpay success!');
18013
18013
  _this.isOpen = false;
18014
+ _this.toast("支付成功", "success");
18014
18015
  _this.payResult.emit({
18015
18016
  code: 200,
18016
18017
  tradeNo: this.tradeNo,