@hmcts/rpx-xui-common-lib 2.1.4 → 2.1.5-google-manager-nonce

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.
@@ -78,8 +78,6 @@ export class ServiceMessagesComponent {
78
78
  }
79
79
  createFilteredMessages(messages) {
80
80
  this.hiddenBanners = this.getSessionCookie(this.serviceMessageCookie) || [];
81
- console.log(this.serviceMessageCookie);
82
- console.log(messages);
83
81
  this.filteredMessages = messages.filter((message) => {
84
82
  const { roles, message_en } = message;
85
83
  const regEx = new RegExp(roles);
@@ -162,4 +160,4 @@ export class ServiceMessagesComponent {
162
160
  type: Input
163
161
  }] }); })();
164
162
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ServiceMessagesComponent, { className: "ServiceMessagesComponent", filePath: "lib/components/service-messages/service-messages.component.ts", lineNumber: 10 }); })();
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlcnZpY2UtbWVzc2FnZXMvc2VydmljZS1tZXNzYWdlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlcnZpY2UtbWVzc2FnZXMvc2VydmljZS1tZXNzYWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7OztJQ0F4Riw4QkFBdUY7O0lBQ25GLDhCQUM4RTtJQUM5RSwwQkFBb0c7SUFDeEcsaUJBQU07O0lBRUUsQUFESiw4QkFBbUMsY0FDTztJQUFBLFlBQTRCOztJQUFBLGlCQUFPO0lBQ3pFLDZCQUE0QjtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7SUFDdkMsdUJBQW9DO0lBRTVDLEFBREksaUJBQU0sRUFDSjs7O0lBSndDLGVBQTRCO0lBQTVCLHFEQUE0QjtJQUUvRCxlQUE0QjtJQUE1QixnRUFBNEI7OztJQVQzQyw4QkFBOEU7SUFDMUUsZ0ZBQXVGO0lBVzNGLGlCQUFNOzs7SUFYaUUsY0FBa0I7SUFBbEIsZ0RBQWtCOzs7O0lBYXJGLGtEQUd3Qzs7O0lBQXBDLGdQQUFlLDBCQUFtQixLQUFDO0lBQ3ZDLGlCQUF5Qjs7O0lBRnJCLEFBREEsQUFENkQsZ0NBQWUsdUZBQzNCLHVGQUNBOzs7SUFIekQsOEJBQTZGO0lBQ3pGLHNIQUd3QztJQUU1QyxpQkFBTTs7O0lBTDBDLGNBQW1CO0lBQW5CLGlEQUFtQjs7QURMbkUsTUFBTSxPQUFPLHdCQUF3QjtJ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QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUUsQ0FBQzt5SEFyR1Usd0JBQXdCO29FQUF4Qix3QkFBd0I7WUNJckMsQUFiQSx5RUFBOEUsNERBYWU7O1lBYnZGLHdDQUFtQjtZQWFuQixjQUFrQztZQUFsQyw4RkFBa0M7OztpRkRKM0Isd0JBQXdCO2NBSnBDLFNBQVM7MkJBQ0UseUJBQXlCO3FEQVVuQixTQUFTO2tCQUF4QixLQUFLO1lBQ1UsZ0JBQWdCO2tCQUEvQixLQUFLO1lBQ1Usb0JBQW9CO2tCQUFuQyxLQUFLOztrRkFUSyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZlYXR1cmVUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmVhdHVyZS10b2dnbGUvZmVhdHVyZS10b2dnbGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlTWVzc2FnZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmljZS1tZXNzYWdlLm1vZGVsJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2VydmljZS1tZXNzYWdlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgaGlkZGVuQmFubmVyczogc3RyaW5nW107XG4gIHB1YmxpYyBmaWx0ZXJlZE1lc3NhZ2VzOiBTZXJ2aWNlTWVzc2FnZXNbXSA9IFtdO1xuICBwdWJsaWMgaXNCYW5uZXJFcnJvcjogYm9vbGVhbjtcbiAgcHVibGljIGJhbm5lckVycm9yTXNnczogeyBtZXNzYWdlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIgfVtdID0gW107XG4gIHB1YmxpYyBvcmlnaW5hbE1lc3NhZ2VzOiBTZXJ2aWNlTWVzc2FnZXNbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VyUm9sZXM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBwdWJsaWMgZmVhdHVyZVRvZ2dsZUtleTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZU1lc3NhZ2VDb29raWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVUb2dnbGVTZXJ2aWNlOiBGZWF0dXJlVG9nZ2xlU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0U2VydmljZU1lc3NhZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VydmljZU1lc3NhZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmVhdHVyZVRvZ2dsZVNlcnZpY2UuZ2V0VmFsdWU8U2VydmljZU1lc3NhZ2VzW10+KHRoaXMuZmVhdHVyZVRvZ2dsZUtleSwgbnVsbClcbiAgICAgIC5zdWJzY3JpYmUobWVzc2FnZXMgPT4ge1xuICAgICAgICB0aGlzLm9yaWdpbmFsTWVzc2FnZXMgPSBtZXNzYWdlcztcbiAgICAgICAgaWYgKCEhbWVzc2FnZXMpIHtcbiAgICAgICAgICB0aGlzLmNyZWF0ZUZpbHRlcmVkTWVzc2FnZXMobWVzc2FnZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmlsdGVyZWRNZXNzYWdlcyhtZXNzYWdlczogU2VydmljZU1lc3NhZ2VzW10pOiB2b2lkIHtcbiAgICB0aGlzLmhpZGRlbkJhbm5lcnMgPSB0aGlzLmdldFNlc3Npb25Db29raWUodGhpcy5zZXJ2aWNlTWVzc2FnZUNvb2tpZSkgfHwgW107XG4gICAgY29uc29sZS5sb2codGhpcy5zZXJ2aWNlTWVzc2FnZUNvb2tpZSk7XG4gICAgY29uc29sZS5sb2cobWVzc2FnZXMpO1xuICAgIHRoaXMuZmlsdGVyZWRNZXNzYWdlcyA9IG1lc3NhZ2VzLmZpbHRlcigobWVzc2FnZSkgPT4ge1xuICAgICAgY29uc3QgeyByb2xlcywgbWVzc2FnZV9lbiB9ID0gbWVzc2FnZTtcbiAgICAgIGNvbnN0IHJlZ0V4ID0gbmV3IFJlZ0V4cChyb2xlcyk7XG4gICAgICByZXR1cm4gdGhpcy51c2VyUm9sZXMuc29tZSgocm9sZSkgPT4gcmVnRXgudGVzdChyb2xlKSkgJiZcbiAgICAgICAgdGhpcy5jb21wYXJlRGF0ZXMobWVzc2FnZSkgJiZcbiAgICAgICAgIXRoaXMuaGlkZGVuQmFubmVycy5pbmNsdWRlcyhtZXNzYWdlX2VuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGFyZURhdGVzKG1zZzogU2VydmljZU1lc3NhZ2VzKTogYm9vbGVhbiB7XG4gICAgbGV0IGN1cnJlbnREYXRlVGltZSA9IG5ldyBEYXRlKCk7XG4gICAgbGV0IGJlZ2luRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBlbmREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgdGhpcy5iYW5uZXJFcnJvck1zZ3MgPSBbXTtcblxuICAgIC8vIFBhcnNlIGJlZ2luRGF0ZSBpZiBtc2cuYmVnaW4gaXMgcHJlc2VudCBhbmQgdmFsaWRcbiAgICBpZiAobXNnLmJlZ2luICYmICFpc05hTihEYXRlLnBhcnNlKG1zZy5iZWdpbikpKSB7XG4gICAgICBiZWdpbkRhdGUgPSBuZXcgRGF0ZShtc2cuYmVnaW4pO1xuICAgIH1cblxuICAgIGlmIChtc2cuZW5kICYmICFpc05hTihEYXRlLnBhcnNlKG1zZy5lbmQpKSkge1xuICAgICAgZW5kRGF0ZSA9IG5ldyBEYXRlKG1zZy5lbmQpO1xuICAgIH1cbiAgICB0aGlzLm9yaWdpbmFsTWVzc2FnZXMuZm9yRWFjaChtc2cgPT4ge1xuICAgICAgLy8gT25seSBjaGVjayBmb3IgZXJyb3JzIGlmIGJvdGggYmVnaW5EYXRlIGFuZCBlbmREYXRlIGFyZSBwcmVzZW50IGFuZCB2YWxpZFxuICAgICAgaWYgKChtc2cuYmVnaW4gJiYgIWlzTmFOKERhdGUucGFyc2UobXNnLmVuZCkpKSAmJiAobXNnLmVuZCAmJiAhaXNOYU4oRGF0ZS5wYXJzZShtc2cuZW5kKSkpICYmIG5ldyBEYXRlKG1zZy5iZWdpbikgPiBuZXcgRGF0ZShtc2cuZW5kKSkge1xuICAgICAgICB0aGlzLmlzQmFubmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLmJhbm5lckVycm9yTXNncy5wdXNoKHtcbiAgICAgICAgICBtZXNzYWdlOiBgVGhlIHN0YXJ0IGRhdGUgaXMgZ3JlYXRlciB0aGFuIHRoZSBlbmQgZGF0ZS4gTWVzc2FnZSBpbmRleDogJHttc2cuaW5kZXh9YCxcbiAgICAgICAgICBpbmRleDogbXNnLmluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBDaGVjayBmb3IgaW52YWxpZCBiZWdpbkRhdGUgb3IgZW5kRGF0ZSBzZXBhcmF0ZWx5LCBpZiB0aGV5IGFyZSBwcmVzZW50XG4gICAgICBpZiAobXNnLmJlZ2luICYmIGlzTmFOKERhdGUucGFyc2UobXNnLmJlZ2luKSkpIHtcbiAgICAgICAgdGhpcy5pc0Jhbm5lckVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5iYW5uZXJFcnJvck1zZ3MucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogYEludmFsaWQgc3RhcnQgZGF0ZS4gTWVzc2FnZSBpbmRleDogJHttc2cuaW5kZXh9YCxcbiAgICAgICAgICBpbmRleDogbXNnLmluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKG1zZy5lbmQgJiYgaXNOYU4oRGF0ZS5wYXJzZShtc2cuZW5kKSkpIHtcbiAgICAgICAgdGhpcy5pc0Jhbm5lckVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5iYW5uZXJFcnJvck1zZ3MucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogYEludmFsaWQgZW5kIGRhdGUuIE1lc3NhZ2UgaW5kZXg6ICR7bXNnLmluZGV4fWAsXG4gICAgICAgICAgaW5kZXg6IG1zZy5pbmRleFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGJlZ2luRGF0ZU9LID0gIW1zZy5iZWdpbiB8fCAoYmVnaW5EYXRlICYmIGJlZ2luRGF0ZSA8IGN1cnJlbnREYXRlVGltZSk7XG4gICAgY29uc3QgZW5kRGF0ZU9LID0gIW1zZy5lbmQgfHwgKGVuZERhdGUgJiYgZW5kRGF0ZSA+PSBjdXJyZW50RGF0ZVRpbWUpO1xuXG4gICAgcmV0dXJuIGJlZ2luRGF0ZU9LICYmIGVuZERhdGVPSztcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2Vzc2lvbkNvb2tpZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5jb29raWUgPSBgJHtuYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpfTsgcGF0aD0vOyBTYW1lU2l0ZT1MYXhgO1xuICB9XG5cbiAgcHVibGljIGhpZGVNZXNzYWdlKG1zZzogU2VydmljZU1lc3NhZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZE1lc3NhZ2VzID0gdGhpcy5maWx0ZXJlZE1lc3NhZ2VzLmZpbHRlcigoZikgPT4gZi5pbmRleCAhPT0gbXNnLmluZGV4KTtcbiAgICB0aGlzLmhpZGRlbkJhbm5lcnMucHVzaChtc2cubWVzc2FnZV9lbik7XG4gICAgdGhpcy5zZXRTZXNzaW9uQ29va2llKHRoaXMuc2VydmljZU1lc3NhZ2VDb29raWUsIHRoaXMuaGlkZGVuQmFubmVycyk7XG4gIH1cblxuICBwcml2YXRlIGdldFNlc3Npb25Db29raWUobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7ICcpO1xuICAgIGNvbnN0IGNvb2tpZSA9IGNvb2tpZXMuZmluZCgocm93KSA9PiByb3cuc3RhcnRzV2l0aChuYW1lICsgJz0nKSk7XG4gICAgcmV0dXJuIGNvb2tpZSA/IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZS5zcGxpdCgnPScpWzFdKSkgOiBbXTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzQmFubmVyRXJyb3JcIiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lciBnb3Z1ay0hLW1hcmdpbi10b3AtNlwiPlxuICAgIDxkaXYgY2xhc3M9XCJobWN0cy1iYW5uZXIgaG1jdHMtYmFubmVyLS13YXJuaW5nXCIgKm5nRm9yPVwibGV0IGVyck1zZyBvZiBiYW5uZXJFcnJvck1zZ3NcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImhtY3RzLWJhbm5lcl9faWNvblwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNSAyNVwiIGhlaWdodD1cIjI1XCIgd2lkdGg9XCIyNVwiPlxuICAgICAgICA8cGF0aCBkPVwiTTEzLjYsMTUuNGgtMi4zdi00LjVoMi4zVjE1LjR6IE0xMy42LDE5LjhoLTIuM3YtMi4yaDIuM1YxOS44eiBNMCwyMy4yaDI1TDEyLjUsMkwwLDIzLjJ6XCIgLz5cbiAgICA8L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhtY3RzLWJhbm5lcl9fbWVzc2FnZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJobWN0cy1iYW5uZXJfX2Fzc2lzdGl2ZVwiPnt7J1dhcm5pbmcnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXNcIj5FcnJvcjo8L2gyPlxuICAgICAgICAgICAgPHAgW2lubmVySFRNTF09XCJlcnJNc2cubWVzc2FnZVwiPjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJmaWx0ZXJlZE1lc3NhZ2VzPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXIgZ292dWstIS1tYXJnaW4tdG9wLTZcIj5cbiAgICA8eHVpbGliLXNlcnZpY2UtbWVzc2FnZSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBmaWx0ZXJlZE1lc3NhZ2VzXCIgW2tleV09XCJtZXNzYWdlXCJcbiAgICAgICAgW21lc3NhZ2VfZW5dPVwibWVzc2FnZT8ubWVzc2FnZV9lbiB8IHJweFRyYW5zbGF0ZVwiIFxuICAgICAgICBbbWVzc2FnZV9jeV09XCJtZXNzYWdlPy5tZXNzYWdlX2N5IHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgKGhpZGVNZXNzYWdlKT1cImhpZGVNZXNzYWdlKCRldmVudClcIj5cbiAgICA8L3h1aWxpYi1zZXJ2aWNlLW1lc3NhZ2U+XG48L2Rpdj4iXX0=
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlcnZpY2UtbWVzc2FnZXMvc2VydmljZS1tZXNzYWdlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlcnZpY2UtbWVzc2FnZXMvc2VydmljZS1tZXNzYWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7OztJQ0F4Riw4QkFBdUY7O0lBQ25GLDhCQUM4RTtJQUM5RSwwQkFBb0c7SUFDeEcsaUJBQU07O0lBRUUsQUFESiw4QkFBbUMsY0FDTztJQUFBLFlBQTRCOztJQUFBLGlCQUFPO0lBQ3pFLDZCQUE0QjtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7SUFDdkMsdUJBQW9DO0lBRTVDLEFBREksaUJBQU0sRUFDSjs7O0lBSndDLGVBQTRCO0lBQTVCLHFEQUE0QjtJQUUvRCxlQUE0QjtJQUE1QixnRUFBNEI7OztJQVQzQyw4QkFBOEU7SUFDMUUsZ0ZBQXVGO0lBVzNGLGlCQUFNOzs7SUFYaUUsY0FBa0I7SUFBbEIsZ0RBQWtCOzs7O0lBYXJGLGtEQUd3Qzs7O0lBQXBDLGdQQUFlLDBCQUFtQixLQUFDO0lBQ3ZDLGlCQUF5Qjs7O0lBRnJCLEFBREEsQUFENkQsZ0NBQWUsdUZBQzNCLHVGQUNBOzs7SUFIekQsOEJBQTZGO0lBQ3pGLHNIQUd3QztJQUU1QyxpQkFBTTs7O0lBTDBDLGNBQW1CO0lBQW5CLGlEQUFtQjs7QURMbkUsTUFBTSxPQUFPLHdCQUF3QjtJ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QUFDO3lIQW5HVSx3QkFBd0I7b0VBQXhCLHdCQUF3QjtZQ0lyQyxBQWJBLHlFQUE4RSw0REFhZTs7WUFidkYsd0NBQW1CO1lBYW5CLGNBQWtDO1lBQWxDLDhGQUFrQzs7O2lGREozQix3QkFBd0I7Y0FKcEMsU0FBUzsyQkFDRSx5QkFBeUI7cURBVW5CLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxnQkFBZ0I7a0JBQS9CLEtBQUs7WUFDVSxvQkFBb0I7a0JBQW5DLEtBQUs7O2tGQVRLLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlcnZpY2VNZXNzYWdlcyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2aWNlLW1lc3NhZ2UubW9kZWwnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zZXJ2aWNlLW1lc3NhZ2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcnZpY2UtbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VNZXNzYWdlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBoaWRkZW5CYW5uZXJzOiBzdHJpbmdbXTtcbiAgcHVibGljIGZpbHRlcmVkTWVzc2FnZXM6IFNlcnZpY2VNZXNzYWdlc1tdID0gW107XG4gIHB1YmxpYyBpc0Jhbm5lckVycm9yOiBib29sZWFuO1xuICBwdWJsaWMgYmFubmVyRXJyb3JNc2dzOiB7IG1lc3NhZ2U6IHN0cmluZywgaW5kZXg6IG51bWJlciB9W10gPSBbXTtcbiAgcHVibGljIG9yaWdpbmFsTWVzc2FnZXM6IFNlcnZpY2VNZXNzYWdlc1tdID0gW107XG5cbiAgQElucHV0KCkgcHVibGljIHVzZXJSb2xlczogc3RyaW5nW107XG4gIEBJbnB1dCgpIHB1YmxpYyBmZWF0dXJlVG9nZ2xlS2V5OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlTWVzc2FnZUNvb2tpZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZVRvZ2dsZVNlcnZpY2U6IEZlYXR1cmVUb2dnbGVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRTZXJ2aWNlTWVzc2FnZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZXJ2aWNlTWVzc2FnZXMoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlVG9nZ2xlU2VydmljZS5nZXRWYWx1ZTxTZXJ2aWNlTWVzc2FnZXNbXT4odGhpcy5mZWF0dXJlVG9nZ2xlS2V5LCBudWxsKVxuICAgICAgLnN1YnNjcmliZShtZXNzYWdlcyA9PiB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxNZXNzYWdlcyA9IG1lc3NhZ2VzO1xuICAgICAgICBpZiAoISFtZXNzYWdlcykge1xuICAgICAgICAgIHRoaXMuY3JlYXRlRmlsdGVyZWRNZXNzYWdlcyhtZXNzYWdlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGaWx0ZXJlZE1lc3NhZ2VzKG1lc3NhZ2VzOiBTZXJ2aWNlTWVzc2FnZXNbXSk6IHZvaWQge1xuICAgIHRoaXMuaGlkZGVuQmFubmVycyA9IHRoaXMuZ2V0U2Vzc2lvbkNvb2tpZSh0aGlzLnNlcnZpY2VNZXNzYWdlQ29va2llKSB8fCBbXTtcbiAgICB0aGlzLmZpbHRlcmVkTWVzc2FnZXMgPSBtZXNzYWdlcy5maWx0ZXIoKG1lc3NhZ2UpID0+IHtcbiAgICAgIGNvbnN0IHsgcm9sZXMsIG1lc3NhZ2VfZW4gfSA9IG1lc3NhZ2U7XG4gICAgICBjb25zdCByZWdFeCA9IG5ldyBSZWdFeHAocm9sZXMpO1xuICAgICAgcmV0dXJuIHRoaXMudXNlclJvbGVzLnNvbWUoKHJvbGUpID0+IHJlZ0V4LnRlc3Qocm9sZSkpICYmXG4gICAgICAgIHRoaXMuY29tcGFyZURhdGVzKG1lc3NhZ2UpICYmXG4gICAgICAgICF0aGlzLmhpZGRlbkJhbm5lcnMuaW5jbHVkZXMobWVzc2FnZV9lbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbXBhcmVEYXRlcyhtc2c6IFNlcnZpY2VNZXNzYWdlcyk6IGJvb2xlYW4ge1xuICAgIGxldCBjdXJyZW50RGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIGxldCBiZWdpbkRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIHRoaXMuYmFubmVyRXJyb3JNc2dzID0gW107XG5cbiAgICAvLyBQYXJzZSBiZWdpbkRhdGUgaWYgbXNnLmJlZ2luIGlzIHByZXNlbnQgYW5kIHZhbGlkXG4gICAgaWYgKG1zZy5iZWdpbiAmJiAhaXNOYU4oRGF0ZS5wYXJzZShtc2cuYmVnaW4pKSkge1xuICAgICAgYmVnaW5EYXRlID0gbmV3IERhdGUobXNnLmJlZ2luKTtcbiAgICB9XG5cbiAgICBpZiAobXNnLmVuZCAmJiAhaXNOYU4oRGF0ZS5wYXJzZShtc2cuZW5kKSkpIHtcbiAgICAgIGVuZERhdGUgPSBuZXcgRGF0ZShtc2cuZW5kKTtcbiAgICB9XG4gICAgdGhpcy5vcmlnaW5hbE1lc3NhZ2VzLmZvckVhY2gobXNnID0+IHtcbiAgICAgIC8vIE9ubHkgY2hlY2sgZm9yIGVycm9ycyBpZiBib3RoIGJlZ2luRGF0ZSBhbmQgZW5kRGF0ZSBhcmUgcHJlc2VudCBhbmQgdmFsaWRcbiAgICAgIGlmICgobXNnLmJlZ2luICYmICFpc05hTihEYXRlLnBhcnNlKG1zZy5lbmQpKSkgJiYgKG1zZy5lbmQgJiYgIWlzTmFOKERhdGUucGFyc2UobXNnLmVuZCkpKSAmJiBuZXcgRGF0ZShtc2cuYmVnaW4pID4gbmV3IERhdGUobXNnLmVuZCkpIHtcbiAgICAgICAgdGhpcy5pc0Jhbm5lckVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5iYW5uZXJFcnJvck1zZ3MucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogYFRoZSBzdGFydCBkYXRlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgZW5kIGRhdGUuIE1lc3NhZ2UgaW5kZXg6ICR7bXNnLmluZGV4fWAsXG4gICAgICAgICAgaW5kZXg6IG1zZy5pbmRleFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgYmVnaW5EYXRlIG9yIGVuZERhdGUgc2VwYXJhdGVseSwgaWYgdGhleSBhcmUgcHJlc2VudFxuICAgICAgaWYgKG1zZy5iZWdpbiAmJiBpc05hTihEYXRlLnBhcnNlKG1zZy5iZWdpbikpKSB7XG4gICAgICAgIHRoaXMuaXNCYW5uZXJFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMuYmFubmVyRXJyb3JNc2dzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIHN0YXJ0IGRhdGUuIE1lc3NhZ2UgaW5kZXg6ICR7bXNnLmluZGV4fWAsXG4gICAgICAgICAgaW5kZXg6IG1zZy5pbmRleFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChtc2cuZW5kICYmIGlzTmFOKERhdGUucGFyc2UobXNnLmVuZCkpKSB7XG4gICAgICAgIHRoaXMuaXNCYW5uZXJFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMuYmFubmVyRXJyb3JNc2dzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIGVuZCBkYXRlLiBNZXNzYWdlIGluZGV4OiAke21zZy5pbmRleH1gLFxuICAgICAgICAgIGluZGV4OiBtc2cuaW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBiZWdpbkRhdGVPSyA9ICFtc2cuYmVnaW4gfHwgKGJlZ2luRGF0ZSAmJiBiZWdpbkRhdGUgPCBjdXJyZW50RGF0ZVRpbWUpO1xuICAgIGNvbnN0IGVuZERhdGVPSyA9ICFtc2cuZW5kIHx8IChlbmREYXRlICYmIGVuZERhdGUgPj0gY3VycmVudERhdGVUaW1lKTtcblxuICAgIHJldHVybiBiZWdpbkRhdGVPSyAmJiBlbmREYXRlT0s7XG4gIH1cblxuICBwcml2YXRlIHNldFNlc3Npb25Db29raWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgZG9jdW1lbnQuY29va2llID0gYCR7bmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodmFsdWUpKX07IHBhdGg9LzsgU2FtZVNpdGU9TGF4YDtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlTWVzc2FnZShtc2c6IFNlcnZpY2VNZXNzYWdlcyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyZWRNZXNzYWdlcyA9IHRoaXMuZmlsdGVyZWRNZXNzYWdlcy5maWx0ZXIoKGYpID0+IGYuaW5kZXggIT09IG1zZy5pbmRleCk7XG4gICAgdGhpcy5oaWRkZW5CYW5uZXJzLnB1c2gobXNnLm1lc3NhZ2VfZW4pO1xuICAgIHRoaXMuc2V0U2Vzc2lvbkNvb2tpZSh0aGlzLnNlcnZpY2VNZXNzYWdlQ29va2llLCB0aGlzLmhpZGRlbkJhbm5lcnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZXNzaW9uQ29va2llKG5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKTtcbiAgICBjb25zdCBjb29raWUgPSBjb29raWVzLmZpbmQoKHJvdykgPT4gcm93LnN0YXJ0c1dpdGgobmFtZSArICc9JykpO1xuICAgIHJldHVybiBjb29raWUgPyBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChjb29raWUuc3BsaXQoJz0nKVsxXSkpIDogW107XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0Jhbm5lckVycm9yXCIgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXIgZ292dWstIS1tYXJnaW4tdG9wLTZcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaG1jdHMtYmFubmVyIGhtY3RzLWJhbm5lci0td2FybmluZ1wiICpuZ0Zvcj1cImxldCBlcnJNc2cgb2YgYmFubmVyRXJyb3JNc2dzXCI+XG4gICAgICAgIDxzdmcgY2xhc3M9XCJobWN0cy1iYW5uZXJfX2ljb25cIiBmaWxsPVwiY3VycmVudENvbG9yXCIgcm9sZT1cInByZXNlbnRhdGlvblwiIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBoZWlnaHQ9XCIyNVwiIHdpZHRoPVwiMjVcIj5cbiAgICAgICAgPHBhdGggZD1cIk0xMy42LDE1LjRoLTIuM3YtNC41aDIuM1YxNS40eiBNMTMuNiwxOS44aC0yLjN2LTIuMmgyLjNWMTkuOHogTTAsMjMuMmgyNUwxMi41LDJMMCwyMy4yelwiIC8+XG4gICAgPC9zdmc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJobWN0cy1iYW5uZXJfX21lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG1jdHMtYmFubmVyX19hc3Npc3RpdmVcIj57eydXYXJuaW5nJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+RXJyb3I6PC9oMj5cbiAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiZXJyTXNnLm1lc3NhZ2VcIj48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZmlsdGVyZWRNZXNzYWdlcz8ubGVuZ3RoID4gMFwiIGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyIGdvdnVrLSEtbWFyZ2luLXRvcC02XCI+XG4gICAgPHh1aWxpYi1zZXJ2aWNlLW1lc3NhZ2UgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgZmlsdGVyZWRNZXNzYWdlc1wiIFtrZXldPVwibWVzc2FnZVwiXG4gICAgICAgIFttZXNzYWdlX2VuXT1cIm1lc3NhZ2U/Lm1lc3NhZ2VfZW4gfCBycHhUcmFuc2xhdGVcIiBcbiAgICAgICAgW21lc3NhZ2VfY3ldPVwibWVzc2FnZT8ubWVzc2FnZV9jeSB8IHJweFRyYW5zbGF0ZVwiXG4gICAgICAgIChoaWRlTWVzc2FnZSk9XCJoaWRlTWVzc2FnZSgkZXZlbnQpXCI+XG4gICAgPC94dWlsaWItc2VydmljZS1tZXNzYWdlPlxuPC9kaXY+Il19
@@ -75,7 +75,7 @@ function WriteAddressFieldComponent_div_2_div_13_Template(rf, ctx) { if (rf & 1)
75
75
  function WriteAddressFieldComponent_div_2_a_14_Template(rf, ctx) { if (rf & 1) {
76
76
  const _r5 = i0.ɵɵgetCurrentView();
77
77
  i0.ɵɵelementStart(0, "a", 23);
78
- i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_2_a_14_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.blankAddress()); });
78
+ i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_2_a_14_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); ctx_r0.blankAddress(); return i0.ɵɵresetView($event.preventDefault()); });
79
79
  i0.ɵɵtext(1, "I can't enter a UK postcode");
80
80
  i0.ɵɵelementEnd();
81
81
  } }
@@ -296,7 +296,7 @@ export class WriteAddressFieldComponent {
296
296
  this.addressFormGroup.get('postcode').patchValue(postcodeNeeded ? this.formGroup.get('address').get('postCode').value : '');
297
297
  }
298
298
  static { this.ɵfac = function WriteAddressFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WriteAddressFieldComponent)(i0.ɵɵdirectiveInject(i1.AddressService)); }; }
299
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteAddressFieldComponent, selectors: [["xuilib-write-address-field"]], inputs: { formGroup: "formGroup", internationalMode: "internationalMode", isInternational: "isInternational", submissionAttempted: "submissionAttempted", startedInternational: "startedInternational", addressChosen: "addressChosen" }, outputs: { postcodeOptionSelected: "postcodeOptionSelected", internationalModeStart: "internationalModeStart", ukAddressOptionSelected: "ukAddressOptionSelected", canSelectAddress: "canSelectAddress", resetSubmission: "resetSubmission" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 8, consts: [[1, "govuk-form-group", 3, "formGroup", "ngClass"], ["class", "govuk-error-message", 4, "ngIf"], [4, "ngIf"], ["id", "govuk-radios", "class", "govuk-radios", "data-module", "govuk-radios", 4, "ngIf"], [3, "formGroup", "isInternational", "submissionAttempted", 4, "ngIf"], [1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-label"], ["id", "addressLookup", 1, "govuk-body", "postcode-lookup", 3, "ngClass"], ["for", "postcodeInput"], [1, "govuk-hint"], [1, "govuk-body"], ["type", "text", "id", "postcodeInput", "name", "postcode", "formControlName", "postcode", 1, "govuk-input", "govuk-!-width-one-third", "postcodeinput", "inline-block", 3, "ngClass"], ["type", "button", 1, "govuk-button", "find-address", 3, "click"], ["class", "govuk-body", "id", "selectAddress", 4, "ngIf"], ["class", "manual-link govuk-link", "href", "javascript:void(0)", 3, "click", 4, "ngIf"], ["id", "selectAddress", 1, "govuk-body"], [1, "govuk-body", 3, "ngClass"], ["for", "addressList", 1, "govuk-label"], [1, "form-label"], ["id", "addressList", "name", "address", "formControlName", "addressList", "focusElement", "", 1, "form-control", "govuk-select", "ccd-dropdown", "addressList", 3, "change"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "javascript:void(0)", 1, "manual-link", "govuk-link", 3, "click"], ["id", "govuk-radios", "data-module", "govuk-radios", 1, "govuk-radios"], [1, "govuk-radios__item"], ["id", "yes", "value", "yes", "name", "ukAddress", "type", "radio", "data-aria-controls", "address-fields", "formControlName", "ukAddress", 1, "govuk-radios__input", 3, "click"], ["for", "yes", 1, "govuk-label", "govuk-radios__label"], ["id", "no", "value", "no", "name", "ukAddress", "type", "radio", "data-aria-controls", "address-fields", "formControlName", "ukAddress", 1, "govuk-radios__input", 3, "click"], ["for", "no", 1, "govuk-label", "govuk-radios__label"], ["id", "address-fields", 1, "govuk-radios__conditional"], [3, "formGroup", "isInternational", "submissionAttempted"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
299
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteAddressFieldComponent, selectors: [["xuilib-write-address-field"]], inputs: { formGroup: "formGroup", internationalMode: "internationalMode", isInternational: "isInternational", submissionAttempted: "submissionAttempted", startedInternational: "startedInternational", addressChosen: "addressChosen" }, outputs: { postcodeOptionSelected: "postcodeOptionSelected", internationalModeStart: "internationalModeStart", ukAddressOptionSelected: "ukAddressOptionSelected", canSelectAddress: "canSelectAddress", resetSubmission: "resetSubmission" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 8, consts: [[1, "govuk-form-group", 3, "formGroup", "ngClass"], ["class", "govuk-error-message", 4, "ngIf"], [4, "ngIf"], ["id", "govuk-radios", "class", "govuk-radios", "data-module", "govuk-radios", 4, "ngIf"], [3, "formGroup", "isInternational", "submissionAttempted", 4, "ngIf"], [1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-label"], ["id", "addressLookup", 1, "govuk-body", "postcode-lookup", 3, "ngClass"], ["for", "postcodeInput"], [1, "govuk-hint"], [1, "govuk-body"], ["type", "text", "id", "postcodeInput", "name", "postcode", "formControlName", "postcode", 1, "govuk-input", "govuk-!-width-one-third", "postcodeinput", "inline-block", 3, "ngClass"], ["type", "button", 1, "govuk-button", "find-address", 3, "click"], ["class", "govuk-body", "id", "selectAddress", 4, "ngIf"], ["class", "manual-link govuk-link", "href", "#", 3, "click", 4, "ngIf"], ["id", "selectAddress", 1, "govuk-body"], [1, "govuk-body", 3, "ngClass"], ["for", "addressList", 1, "govuk-label"], [1, "form-label"], ["id", "addressList", "name", "address", "formControlName", "addressList", "focusElement", "", 1, "form-control", "govuk-select", "ccd-dropdown", "addressList", 3, "change"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "govuk-link", 3, "click"], ["id", "govuk-radios", "data-module", "govuk-radios", 1, "govuk-radios"], [1, "govuk-radios__item"], ["id", "yes", "value", "yes", "name", "ukAddress", "type", "radio", "data-aria-controls", "address-fields", "formControlName", "ukAddress", 1, "govuk-radios__input", 3, "click"], ["for", "yes", 1, "govuk-label", "govuk-radios__label"], ["id", "no", "value", "no", "name", "ukAddress", "type", "radio", "data-aria-controls", "address-fields", "formControlName", "ukAddress", 1, "govuk-radios__input", 3, "click"], ["for", "no", 1, "govuk-label", "govuk-radios__label"], ["id", "address-fields", 1, "govuk-radios__conditional"], [3, "formGroup", "isInternational", "submissionAttempted"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
300
300
  i0.ɵɵelementStart(0, "div", 0);
301
301
  i0.ɵɵtemplate(1, WriteAddressFieldComponent_p_1_Template, 4, 1, "p", 1)(2, WriteAddressFieldComponent_div_2_Template, 15, 9, "div", 2)(3, WriteAddressFieldComponent_div_3_Template, 11, 1, "div", 3)(4, WriteAddressFieldComponent_xuilib_write_address_inputs_4_Template, 1, 3, "xuilib-write-address-inputs", 4);
302
302
  i0.ɵɵelementEnd();
@@ -314,7 +314,7 @@ export class WriteAddressFieldComponent {
314
314
  }
315
315
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteAddressFieldComponent, [{
316
316
  type: Component,
317
- args: [{ selector: 'xuilib-write-address-field', template: "<div class=\"govuk-form-group\" [formGroup]=\"addressFormGroup\"\n [ngClass]=\"{'govuk-form-group--error': optionErrorsPresent}\">\n <p class=\"govuk-error-message\" *ngIf=\"optionErrorsPresent\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n <div *ngIf=\"postcodeLookupVisible()\">\n <span class=\"govuk-label\"><strong>Provide address details</strong></span>\n <div class=\"govuk-body postcode-lookup\" id=\"addressLookup\"\n [ngClass]=\"{'govuk-form-group--error': missingPostcode || postcodeErrorPresent(true)}\">\n <label for=\"postcodeInput\">\n <span class=\"govuk-hint\">Enter a UK postcode</span>\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"missingPostcode || postcodeErrorPresent(true)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\n <div class=\"govuk-body\">\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\" id=\"postcodeInput\" name=\"postcode\"\n class=\"govuk-input govuk-!-width-one-third postcodeinput inline-block\" formControlName=\"postcode\">\n <button type=\"button\" class=\"govuk-button find-address\" (click)=\"findAddress()\">Find address</button>\n </div>\n </div>\n\n <div class=\"govuk-body\" *ngIf=\"addressOptions\" id=\"selectAddress\">\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': postcodeErrorPresent(false)}\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"postcodeErrorPresent(false)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n </div>\n\n <a class=\"manual-link govuk-link\" *ngIf=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\"\n (click)=\"blankAddress()\" href=\"javascript:void(0)\">I can't enter a UK postcode</a>\n </div>\n\n <div id=\"govuk-radios\" class=\"govuk-radios\" data-module=\"govuk-radios\"\n *ngIf=\"shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\"\n data-aria-controls=\"address-fields\" (click)=\"setInternationalAddress(false)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"yes\">\n Yes\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"no\" value=\"no\" name=\"ukAddress\" type=\"radio\"\n data-aria-controls=\"address-fields\" (click)=\"setInternationalAddress(true)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"no\">\n No\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" id=\"address-fields\">\n <xuilib-write-address-inputs *ngIf=\"isInternational !== undefined\" [formGroup]=\"formGroup\"\n [isInternational]=\"isInternational\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n </div>\n </div>\n\n <xuilib-write-address-inputs *ngIf=\"shouldShowDetailFields() && (addressChosen || !internationalMode)\"\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n\n</div>", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline;font-size:1.1875rem}.postcode-lookup{margin-bottom:-20px}.find-address{left:1%}:host{display:block}\n"] }]
317
+ args: [{ selector: 'xuilib-write-address-field', template: "<div class=\"govuk-form-group\" [formGroup]=\"addressFormGroup\"\n [ngClass]=\"{'govuk-form-group--error': optionErrorsPresent}\">\n <p class=\"govuk-error-message\" *ngIf=\"optionErrorsPresent\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n <div *ngIf=\"postcodeLookupVisible()\">\n <span class=\"govuk-label\"><strong>Provide address details</strong></span>\n <div class=\"govuk-body postcode-lookup\" id=\"addressLookup\"\n [ngClass]=\"{'govuk-form-group--error': missingPostcode || postcodeErrorPresent(true)}\">\n <label for=\"postcodeInput\">\n <span class=\"govuk-hint\">Enter a UK postcode</span>\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"missingPostcode || postcodeErrorPresent(true)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\n <div class=\"govuk-body\">\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\" id=\"postcodeInput\" name=\"postcode\"\n class=\"govuk-input govuk-!-width-one-third postcodeinput inline-block\" formControlName=\"postcode\">\n <button type=\"button\" class=\"govuk-button find-address\" (click)=\"findAddress()\">Find address</button>\n </div>\n </div>\n\n <div class=\"govuk-body\" *ngIf=\"addressOptions\" id=\"selectAddress\">\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': postcodeErrorPresent(false)}\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"postcodeErrorPresent(false)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n </div>\n\n <a class=\"manual-link govuk-link\" *ngIf=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\"\n (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">I can't enter a UK postcode</a>\n </div>\n\n <div id=\"govuk-radios\" class=\"govuk-radios\" data-module=\"govuk-radios\"\n *ngIf=\"shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\"\n data-aria-controls=\"address-fields\" (click)=\"setInternationalAddress(false)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"yes\">\n Yes\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"no\" value=\"no\" name=\"ukAddress\" type=\"radio\"\n data-aria-controls=\"address-fields\" (click)=\"setInternationalAddress(true)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"no\">\n No\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" id=\"address-fields\">\n <xuilib-write-address-inputs *ngIf=\"isInternational !== undefined\" [formGroup]=\"formGroup\"\n [isInternational]=\"isInternational\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n </div>\n </div>\n\n <xuilib-write-address-inputs *ngIf=\"shouldShowDetailFields() && (addressChosen || !internationalMode)\"\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n\n</div>", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline;font-size:1.1875rem}.postcode-lookup{margin-bottom:-20px}.find-address{left:1%}:host{display:block}\n"] }]
318
318
  }], () => [{ type: i1.AddressService }], { formGroup: [{
319
319
  type: Input
320
320
  }], internationalMode: [{
@@ -339,4 +339,4 @@ export class WriteAddressFieldComponent {
339
339
  type: Output
340
340
  }] }); })();
341
341
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteAddressFieldComponent, { className: "WriteAddressFieldComponent", filePath: "lib/components/write-address/write-address.component.ts", lineNumber: 12 }); })();
342
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dyaXRlLWFkZHJlc3Mvd3JpdGUtYWRkcmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dyaXRlLWFkZHJlc3Mvd3JpdGUtYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7OztJQ0RwRSxBQURGLDRCQUEyRCxjQUNyQjtJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQSxZQUNuRDtJQUFBLGlCQUFJOzs7SUFEK0MsZUFDbkQ7SUFEbUQseURBQ25EOzs7SUFTTSxBQURGLDRCQUFxRixjQUMvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQSxZQUNuRDtJQUFBLGlCQUFJOzs7SUFEK0MsZUFDbkQ7SUFEbUQsMkRBQ25EOzs7SUFjSSxBQURGLDRCQUFtRSxjQUM3QjtJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQSxZQUNuRDtJQUFBLGlCQUFJOzs7SUFEK0MsZUFDbkQ7SUFEbUQseURBQ25EOzs7SUFHRSxrQ0FBcUY7SUFDbkYsWUFDRjtJQUFBLGlCQUFTOzs7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QXlCO1lBR25ELGNBQTZCO1lBQTdCLGtEQUE2QjtZQXVDaEMsY0FBNkY7WUFBN0YsOEhBQTZGO1lBc0JsRSxjQUF1RTtZQUF2RSxvR0FBdUU7OztpRkR2RDFGLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLDRCQUE0QjsrQ0FPL0IsU0FBUztrQkFEZixLQUFLO1lBR0MsaUJBQWlCO2tCQUR2QixLQUFLO1lBR0MsZUFBZTtrQkFEckIsS0FBSztZQUdDLG1CQUFtQjtrQkFEekIsS0FBSztZQUdDLG9CQUFvQjtrQkFEMUIsS0FBSztZQUdDLGFBQWE7a0JBRG5CLEtBQUs7WUFHVyxzQkFBc0I7a0JBQXRDLE1BQU07WUFDVSxzQkFBc0I7a0JBQXRDLE1BQU07WUFDVSx1QkFBdUI7a0JBQXZDLE1BQU07WUFFVSxnQkFBZ0I7a0JBQWhDLE1BQU07WUFHVSxlQUFlO2tCQUEvQixNQUFNOztrRkF0QkksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWRkcmVzc01lc3NhZ2VFbnVtLCBBZGRyZXNzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWRkcmVzc09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hZGRyZXNzLW9wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkZHJlc3MvYWRkcmVzcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXdyaXRlLWFkZHJlc3MtZmllbGQnLFxuICBzdHlsZVVybHM6IFsnLi93cml0ZS1hZGRyZXNzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1hZGRyZXNzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbnRlcm5hdGlvbmFsTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgaXNJbnRlcm5hdGlvbmFsOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3VibWlzc2lvbkF0dGVtcHRlZCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhcnRlZEludGVybmF0aW9uYWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZGRyZXNzQ2hvc2VuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBwb3N0Y29kZU9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGludGVybmF0aW9uYWxNb2RlU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgdWtBZGRyZXNzT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8vIGluZGljYXRlZCB3aGF0IGVycm9yIHRvIGRpc3BsYXkgdG8gdXNlclxuICBAT3V0cHV0KCkgcHVibGljIGNhblNlbGVjdEFkZHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8vIHRlbGxzIHBhcmVudCB0byByZXNldCBzdWJtaXNzaW9uIGF0dGVtcHRlZCBmaWVsZFxuICAvLyBvbmx5IHJlbGV2YW50IHRvIHdoZW4gdXNlciByZS1jbGlja3MgZmluZCBhZGRyZXNzXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVzZXRTdWJtaXNzaW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBhZGRyZXNzRmllbGQ6IEFkZHJlc3NNb2RlbCA9IHtcbiAgICBhZGRyZXNzTGluZTE6ICcnLFxuICAgIGFkZHJlc3NMaW5lMjogJycsXG4gICAgYWRkcmVzc0xpbmUzOiAnJyxcbiAgICBwb3N0Q29kZTogJycsXG4gICAgcG9zdFRvd246ICcnLFxuICAgIGNvdW50cnk6ICcnLFxuICAgIGNvdW50eTogJydcbiAgfTtcblxuICBwdWJsaWMgb3B0aW9uRXJyb3JzUHJlc2VudCA9IGZhbHNlO1xuICBwdWJsaWMgYWRkcmVzc1NlbGVjdGFibGUgPSBmYWxzZTtcblxuICBwdWJsaWMgYWRkcmVzc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBhZGRyZXNzT3B0aW9uczogQWRkcmVzc09wdGlvbltdO1xuXG4gIHB1YmxpYyBtaXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgb3B0aW9uRXJyb3JNZXNzYWdlID0gQWRkcmVzc01lc3NhZ2VFbnVtLk5PX09QVElPTl9TRUxFQ1RFRDtcbiAgcHVibGljIHBvc3Rjb2RlRXJyb3JNZXNzYWdlID0gQWRkcmVzc01lc3NhZ2VFbnVtLk5PX1BPU1RDT0RFX1NFTEVDVEVEO1xuICBwdWJsaWMgc2VsZWN0RXJyb3JNZXNzYWdlID0gQWRkcmVzc01lc3NhZ2VFbnVtLlNFTEVDVF9BRERSRVNTO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWRkcmVzc2VzU2VydmljZTogQWRkcmVzc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnYWRkcmVzcycpKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdhZGRyZXNzJywgbmV3IEZvcm1Db250cm9sKHt9KSk7XG4gICAgfVxuICAgIC8vIHNldCB0aGUgZm9ybSBncm91cCByZWxldmFudCB0byBvbmx5IHRoZSBleHRlcm5hbCBwYXJlbnQgY29tcG9uZW50XG4gICAgdGhpcy5hZGRyZXNzRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAvLyByZWxldmFudCB0byBpbnRlcm5hdGlvbmFsIG1vZGVcbiAgICAgIHVrQWRkcmVzczogbmV3IEZvcm1Db250cm9sKHRoaXMuaXNJbnRlcm5hdGlvbmFsICE9PSB1bmRlZmluZWQgPyAodGhpcy5pc0ludGVybmF0aW9uYWwgPyAnbm8nIDogJ3llcycpIDogbnVsbCksXG4gICAgICAvLyByZWxldmFudCB0byBwb3N0b2NvZGUgbG9va3VwXG4gICAgICBwb3N0Y29kZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIGFkZHJlc3NMaXN0OiBuZXcgRm9ybUNvbnRyb2woJycpXG4gICAgfSk7XG4gICAgdGhpcy5zZXRQb3N0Y29kZUZvcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWRkcmVzcygpIHtcbiAgICB0aGlzLnJlc2V0U3VibWlzc2lvbi5lbWl0KCk7XG4gICAgaWYgKCF0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdwb3N0Y29kZScpLnZhbHVlKSB7XG4gICAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHRydWU7XG4gICAgICB0aGlzLmNhblNlbGVjdEFkZHJlc3MuZW1pdChmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLmFkZHJlc3NGaWVsZCA9IG51bGw7XG4gICAgICBjb25zdCBwb3N0Y29kZSA9IHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5nZXQoJ3Bvc3Rjb2RlJykudmFsdWU7XG4gICAgICB0aGlzLmFkZHJlc3NPcHRpb25zID0gW107XG4gICAgICB0aGlzLmFkZHJlc3Nlc1NlcnZpY2UuZ2V0QWRkcmVzc2VzRm9yUG9zdGNvZGUocG9zdGNvZGUucmVwbGFjZSgnICcsICcnKS50b1VwcGVyQ2FzZSgpKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3VsdCA9PiB7XG4gICAgICAgICAgcmVzdWx0LmZvckVhY2goXG4gICAgICAgICAgICBhZGRyZXNzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzT3B0aW9ucy5wdXNoKG5ldyBBZGRyZXNzT3B0aW9uKGFkZHJlc3MsIG51bGwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuYWRkcmVzc09wdGlvbnMudW5zaGlmdChcbiAgICAgICAgICAgIG5ldyBBZGRyZXNzT3B0aW9uKHVuZGVmaW5lZCwgdGhpcy5kZWZhdWx0TGFiZWwodGhpcy5hZGRyZXNzT3B0aW9ucy5sZW5ndGgpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIC8vIEVkaXRlZCB0aGlzIHNvIHRoYXQgZXJyb3JzIG5vdCBwcm9kdWNlZCBpZiB0aGVyZSBhcmUgbm8gcmVzdWx0cyBmb3IgYSBwb3N0Y29kZVxuICAgICAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCByZXRyaWV2aW5nIGFkZHJlc3NlcyBmb3IgcG9zdGNvZGUgJHtwb3N0Y29kZX0uICR7ZXJyb3J9YCk7XG4gICAgICAgICAgdGhpcy5hZGRyZXNzT3B0aW9ucy51bnNoaWZ0KFxuICAgICAgICAgICAgbmV3IEFkZHJlc3NPcHRpb24odW5kZWZpbmVkLCB0aGlzLmRlZmF1bHRMYWJlbCh0aGlzLmFkZHJlc3NPcHRpb25zLmxlbmd0aCkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdhZGRyZXNzTGlzdCcpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsYW5rQWRkcmVzcygpIHtcbiAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIHRoaXMucmVzZXRTdWJtaXNzaW9uLmVtaXQoKTtcbiAgICBpZiAodGhpcy5pbnRlcm5hdGlvbmFsTW9kZSkge1xuICAgICAgdGhpcy5pbnRlcm5hdGlvbmFsTW9kZVN0YXJ0LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnYWRkcmVzcycpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ2FkZHJlc3MnKS52YWx1ZTtcbiAgICBsZXQgaGFzQWRkcmVzcyA9IGZhbHNlO1xuICAgIGlmIChhZGRyZXNzKSB7XG4gICAgICBPYmplY3Qua2V5cyhhZGRyZXNzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGFkZHJlc3Nba2V5XSAhPT0gbnVsbCkge1xuICAgICAgICAgIGhhc0FkZHJlc3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0FkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgYWRkcmVzc1NlbGVjdGVkKCkge1xuICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gZmFsc2U7XG4gICAgdGhpcy5hZGRyZXNzRmllbGQgPSB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdhZGRyZXNzTGlzdCcpLnZhbHVlO1xuICAgIHRoaXMuYWRkcmVzc0Nob3NlbiA9IHRydWU7XG4gICAgdGhpcy5zZXRGb3JtVmFsdWUoKTtcbiAgICB0aGlzLnBvc3Rjb2RlT3B0aW9uU2VsZWN0ZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBhZGRyZXNzQ2hhbmdlID0gY2hhbmdlc1snYWRkcmVzc0ZpZWxkJ107XG4gICAgY29uc3QgaW50ZXJuYXRpb25hbENoYW5nZSA9IGNoYW5nZXNbJ2lzSW50ZXJuYXRpb25hbCddO1xuICAgIGlmIChhZGRyZXNzQ2hhbmdlKSB7XG4gICAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIH1cbiAgICBpZiAoaW50ZXJuYXRpb25hbENoYW5nZSAmJiB0aGlzLmFkZHJlc3NGb3JtR3JvdXAgJiYgdGhpcy5hZGRyZXNzRm9ybUdyb3VwLmdldCgndWtBZGRyZXNzJykpIHtcbiAgICAgIHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5nZXQoJ3VrQWRkcmVzcycpLnBhdGNoVmFsdWUodGhpcy5pc0ludGVybmF0aW9uYWwgPyAnbm8nIDogJ3llcycpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYWRkcmVzc0Nob3NlbiAmJiB0aGlzLmFkZHJlc3NGb3JtR3JvdXAgJiYgdGhpcy5hZGRyZXNzRm9ybUdyb3VwLmdldCgnYWRkcmVzc0xpc3QnKSkge1xuICAgICAgLy8gcmVzZXRzIGFkZHJlc3Mgb3B0aW9ucyBvbiBpbnRlcm5hbCBiYWNrXG4gICAgICB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdhZGRyZXNzTGlzdCcpLnBhdGNoVmFsdWUodW5kZWZpbmVkKTtcbiAgICB9XG4gICAgdGhpcy5jaGVja0lmRXJyb3JzTmVlZGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSWZFcnJvcnNOZWVkZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWlzc2lvbkF0dGVtcHRlZCAmJiB0aGlzLmludGVybmF0aW9uYWxNb2RlICYmICF0aGlzLnBvc3Rjb2RlTG9va3VwVmlzaWJsZSgpKSB7XG4gICAgICAvLyBlbnN1cmUgZXJyb3JzIHByZXNlbnQgd2hlbiBzdWJtaXNzaW9uIGF0dG1lbXB0ZWQgb24gaW50ZXJuYXRpb25hbCByYWRpbyBidXR0b25zXG4gICAgICB0aGlzLm9wdGlvbkVycm9yc1ByZXNlbnQgPSB0cnVlO1xuICAgICAgdGhpcy5vcHRpb25FcnJvck1lc3NhZ2UgPSBBZGRyZXNzTWVzc2FnZUVudW0uTk9fT1BUSU9OX1NFTEVDVEVEO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMub3B0aW9uRXJyb3JzUHJlc2VudCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25FcnJvcnNQcmVzZW50ICYmICh0aGlzLmFkZHJlc3NDaG9zZW4gfHwgdGhpcy5pc0ludGVybmF0aW9uYWwgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIC8vIGVuc3VyZSBwYXJlbnQgZXJyb3JzIG5vdCBwcmVzZW50IHdoZW4gdGhlIGNoaWxkIGZvcm0gZ3JvdXAgaXMgcHJlc2VudFxuICAgICAgdGhpcy5vcHRpb25FcnJvcnNQcmVzZW50ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEludGVybmF0aW9uYWxBZGRyZXNzKGlzSW50ZXJuYXRpb25hbDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNJbnRlcm5hdGlvbmFsID0gaXNJbnRlcm5hdGlvbmFsO1xuICAgIHRoaXMudWtBZGRyZXNzT3B0aW9uU2VsZWN0ZWQuZW1pdCh0aGlzLmlzSW50ZXJuYXRpb25hbCk7XG4gIH1cblxuICBwdWJsaWMgcG9zdGNvZGVFcnJvclByZXNlbnQoaXNQb3N0Y29kZUZpZWxkOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2hlY2tGb3JGaWVsZCA9IGlzUG9zdGNvZGVGaWVsZCA/ICF0aGlzLmFkZHJlc3NTZWxlY3RhYmxlIDogdGhpcy5hZGRyZXNzU2VsZWN0YWJsZTtcbiAgICByZXR1cm4gdGhpcy5zdWJtaXNzaW9uQXR0ZW1wdGVkICYmIGNoZWNrRm9yRmllbGQ7XG4gIH1cblxuICBwdWJsaWMgcG9zdGNvZGVMb29rdXBWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zaG91bGRTaG93RGV0YWlsRmllbGRzKCkgfHwgKCF0aGlzLnN0YXJ0ZWRJbnRlcm5hdGlvbmFsICYmICF0aGlzLmFkZHJlc3NDaG9zZW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0TGFiZWwobnVtYmVyT2ZBZGRyZXNzZXM6IG51bWJlcikge1xuICAgIHRoaXMuYWRkcmVzc1NlbGVjdGFibGUgPSBudW1iZXJPZkFkZHJlc3NlcyA+IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5jYW5TZWxlY3RBZGRyZXNzLmVtaXQodGhpcy5hZGRyZXNzU2VsZWN0YWJsZSk7XG4gICAgcmV0dXJuIG51bWJlck9mQWRkcmVzc2VzID09PSAwID8gJ05vIGFkZHJlc3MgZm91bmQnXG4gICAgICA6IGAke251bWJlck9mQWRkcmVzc2VzfSR7bnVtYmVyT2ZBZGRyZXNzZXMgPT09IDEgPyAnIGFkZHJlc3MgJyA6ICcgYWRkcmVzc2VzICd9Zm91bmRgO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2FkZHJlc3MnKS5wYXRjaFZhbHVlKFxuICAgICAgICB0aGlzLmFkZHJlc3NGaWVsZFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFBvc3Rjb2RlRm9ybSgpOiB2b2lkIHtcbiAgICBjb25zdCBwb3N0Y29kZU5lZWRlZCA9IHRoaXMuaXNJbnRlcm5hdGlvbmFsID09PSB1bmRlZmluZWQgJiYgdGhpcy5mb3JtR3JvdXAuZ2V0KCdhZGRyZXNzJykgJiYgdGhpcy5mb3JtR3JvdXAuZ2V0KCdhZGRyZXNzJykuZ2V0KCdwb3N0Q29kZScpO1xuICAgIHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5nZXQoJ3Bvc3Rjb2RlJykucGF0Y2hWYWx1ZShwb3N0Y29kZU5lZWRlZCA/IHRoaXMuZm9ybUdyb3VwLmdldCgnYWRkcmVzcycpLmdldCgncG9zdENvZGUnKS52YWx1ZSA6ICcnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImFkZHJlc3NGb3JtR3JvdXBcIlxuICBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogb3B0aW9uRXJyb3JzUHJlc2VudH1cIj5cbiAgPHAgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJvcHRpb25FcnJvcnNQcmVzZW50XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+e3tvcHRpb25FcnJvck1lc3NhZ2V9fVxuICA8L3A+XG4gIDxkaXYgKm5nSWY9XCJwb3N0Y29kZUxvb2t1cFZpc2libGUoKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZ292dWstbGFiZWxcIj48c3Ryb25nPlByb3ZpZGUgYWRkcmVzcyBkZXRhaWxzPC9zdHJvbmc+PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ib2R5IHBvc3Rjb2RlLWxvb2t1cFwiIGlkPVwiYWRkcmVzc0xvb2t1cFwiXG4gICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlIHx8IHBvc3Rjb2RlRXJyb3JQcmVzZW50KHRydWUpfVwiPlxuICAgICAgPGxhYmVsIGZvcj1cInBvc3Rjb2RlSW5wdXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1oaW50XCI+RW50ZXIgYSBVSyBwb3N0Y29kZTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm1pc3NpbmdQb3N0Y29kZSB8fCBwb3N0Y29kZUVycm9yUHJlc2VudCh0cnVlKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj57e3Bvc3Rjb2RlRXJyb3JNZXNzYWdlfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlfVwiIGlkPVwicG9zdGNvZGVJbnB1dFwiIG5hbWU9XCJwb3N0Y29kZVwiXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS10aGlyZCBwb3N0Y29kZWlucHV0IGlubGluZS1ibG9ja1wiIGZvcm1Db250cm9sTmFtZT1cInBvc3Rjb2RlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGZpbmQtYWRkcmVzc1wiIChjbGljayk9XCJmaW5kQWRkcmVzcygpXCI+RmluZCBhZGRyZXNzPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ib2R5XCIgKm5nSWY9XCJhZGRyZXNzT3B0aW9uc1wiIGlkPVwic2VsZWN0QWRkcmVzc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJvZHlcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogcG9zdGNvZGVFcnJvclByZXNlbnQoZmFsc2UpfVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbFwiIGZvcj1cImFkZHJlc3NMaXN0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCI+U2VsZWN0IGFuIGFkZHJlc3M8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwicG9zdGNvZGVFcnJvclByZXNlbnQoZmFsc2UpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+e3tzZWxlY3RFcnJvck1lc3NhZ2V9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ292dWstc2VsZWN0IGNjZC1kcm9wZG93biBhZGRyZXNzTGlzdFwiIGlkPVwiYWRkcmVzc0xpc3RcIiBuYW1lPVwiYWRkcmVzc1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc0xpc3RcIiAoY2hhbmdlKT1cImFkZHJlc3NTZWxlY3RlZCgpXCIgZm9jdXNFbGVtZW50PlxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGFkZHJlc3NPcHRpb24gb2YgYWRkcmVzc09wdGlvbnNcIiBbbmdWYWx1ZV09XCJhZGRyZXNzT3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAgICB7e2FkZHJlc3NPcHRpb24uZGVzY3JpcHRpb259fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGEgY2xhc3M9XCJtYW51YWwtbGluayBnb3Z1ay1saW5rXCIgKm5nSWY9XCIhc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpIHx8ICghc3RhcnRlZEludGVybmF0aW9uYWwgJiYgIWFkZHJlc3NDaG9zZW4pXCJcbiAgICAgIChjbGljayk9XCJibGFua0FkZHJlc3MoKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj5JIGNhbid0IGVudGVyIGEgVUsgcG9zdGNvZGU8L2E+XG4gIDwvZGl2PlxuXG4gIDxkaXYgaWQ9XCJnb3Z1ay1yYWRpb3NcIiBjbGFzcz1cImdvdnVrLXJhZGlvc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCJcbiAgICAqbmdJZj1cInNob3VsZFNob3dEZXRhaWxGaWVsZHMoKSAmJiBpbnRlcm5hdGlvbmFsTW9kZSAmJiBzdGFydGVkSW50ZXJuYXRpb25hbCAmJiAhYWRkcmVzc0Nob3NlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIj5cbiAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cInllc1wiIHZhbHVlPVwieWVzXCIgbmFtZT1cInVrQWRkcmVzc1wiIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIGRhdGEtYXJpYS1jb250cm9scz1cImFkZHJlc3MtZmllbGRzXCIgKGNsaWNrKT1cInNldEludGVybmF0aW9uYWxBZGRyZXNzKGZhbHNlKVwiIGZvcm1Db250cm9sTmFtZT1cInVrQWRkcmVzc1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cInllc1wiPlxuICAgICAgICBZZXNcbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwibm9cIiB2YWx1ZT1cIm5vXCIgbmFtZT1cInVrQWRkcmVzc1wiIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIGRhdGEtYXJpYS1jb250cm9scz1cImFkZHJlc3MtZmllbGRzXCIgKGNsaWNrKT1cInNldEludGVybmF0aW9uYWxBZGRyZXNzKHRydWUpXCIgZm9ybUNvbnRyb2xOYW1lPVwidWtBZGRyZXNzXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsXCIgZm9yPVwibm9cIj5cbiAgICAgICAgTm9cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19fY29uZGl0aW9uYWxcIiBpZD1cImFkZHJlc3MtZmllbGRzXCI+XG4gICAgICA8eHVpbGliLXdyaXRlLWFkZHJlc3MtaW5wdXRzICpuZ0lmPVwiaXNJbnRlcm5hdGlvbmFsICE9PSB1bmRlZmluZWRcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgIFtpc0ludGVybmF0aW9uYWxdPVwiaXNJbnRlcm5hdGlvbmFsXCIgW3N1Ym1pc3Npb25BdHRlbXB0ZWRdPVwic3VibWlzc2lvbkF0dGVtcHRlZFwiPlxuICAgICAgPC94dWlsaWItd3JpdGUtYWRkcmVzcy1pbnB1dHM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDx4dWlsaWItd3JpdGUtYWRkcmVzcy1pbnB1dHMgKm5nSWY9XCJzaG91bGRTaG93RGV0YWlsRmllbGRzKCkgJiYgKGFkZHJlc3NDaG9zZW4gfHwgIWludGVybmF0aW9uYWxNb2RlKVwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbaXNJbnRlcm5hdGlvbmFsXT1cImZhbHNlXCIgW3N1Ym1pc3Npb25BdHRlbXB0ZWRdPVwic3VibWlzc2lvbkF0dGVtcHRlZFwiPlxuICA8L3h1aWxpYi13cml0ZS1hZGRyZXNzLWlucHV0cz5cblxuPC9kaXY+Il19
342
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dyaXRlLWFkZHJlc3Mvd3JpdGUtYWRkcmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dyaXRlLWFkZHJlc3Mvd3JpdGUtYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7OztJQ0RwRSxBQURGLDRCQUEyRCxjQUNyQjtJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQSxZQUNuRDtJQUFBLGlCQUFJOzs7SUFEK0MsZUFDbkQ7SUFEbUQseURBQ25EOzs7SUFTTSxBQURGLDRCQUFxRixjQUMvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQSxZQUNuRDtJQUFBLGlCQUFJOzs7SUFEK0MsZUFDbkQ7SUFEbUQsMkRBQ25EOzs7SUFjSSxBQURGLDRCQUFtRSxjQUM3QjtJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQSxZQUNuRDtJQUFBLGlCQUFJOzs7SUFEK0MsZUFDbkQ7SUFEbUQseURBQ25EOzs7SUFHRSxrQ0FBcUY7SUFDbkYsWUFDRjtJQUFBLGlCQUFTOzs7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eUI7WUFBekIsOENBQXlCO1lBR25ELGNBQTZCO1lBQTdCLGtEQUE2QjtZQXVDaEMsY0FBNkY7WUFBN0YsOEhBQTZGO1lBc0JsRSxjQUF1RTtZQUF2RSxvR0FBdUU7OztpRkR2RDFGLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLDRCQUE0QjsrQ0FPL0IsU0FBUztrQkFEZixLQUFLO1lBR0MsaUJBQWlCO2tCQUR2QixLQUFLO1lBR0MsZUFBZTtrQkFEckIsS0FBSztZQUdDLG1CQUFtQjtrQkFEekIsS0FBSztZQUdDLG9CQUFvQjtrQkFEMUIsS0FBSztZQUdDLGFBQWE7a0JBRG5CLEtBQUs7WUFHVyxzQkFBc0I7a0JBQXRDLE1BQU07WUFDVSxzQkFBc0I7a0JBQXRDLE1BQU07WUFDVSx1QkFBdUI7a0JBQXZDLE1BQU07WUFFVSxnQkFBZ0I7a0JBQWhDLE1BQU07WUFHVSxlQUFlO2tCQUEvQixNQUFNOztrRkF0QkksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWRkcmVzc01lc3NhZ2VFbnVtLCBBZGRyZXNzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWRkcmVzc09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hZGRyZXNzLW9wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkZHJlc3MvYWRkcmVzcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXdyaXRlLWFkZHJlc3MtZmllbGQnLFxuICBzdHlsZVVybHM6IFsnLi93cml0ZS1hZGRyZXNzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1hZGRyZXNzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbnRlcm5hdGlvbmFsTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgaXNJbnRlcm5hdGlvbmFsOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3VibWlzc2lvbkF0dGVtcHRlZCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhcnRlZEludGVybmF0aW9uYWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZGRyZXNzQ2hvc2VuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBwb3N0Y29kZU9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGludGVybmF0aW9uYWxNb2RlU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgdWtBZGRyZXNzT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8vIGluZGljYXRlZCB3aGF0IGVycm9yIHRvIGRpc3BsYXkgdG8gdXNlclxuICBAT3V0cHV0KCkgcHVibGljIGNhblNlbGVjdEFkZHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8vIHRlbGxzIHBhcmVudCB0byByZXNldCBzdWJtaXNzaW9uIGF0dGVtcHRlZCBmaWVsZFxuICAvLyBvbmx5IHJlbGV2YW50IHRvIHdoZW4gdXNlciByZS1jbGlja3MgZmluZCBhZGRyZXNzXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVzZXRTdWJtaXNzaW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBhZGRyZXNzRmllbGQ6IEFkZHJlc3NNb2RlbCA9IHtcbiAgICBhZGRyZXNzTGluZTE6ICcnLFxuICAgIGFkZHJlc3NMaW5lMjogJycsXG4gICAgYWRkcmVzc0xpbmUzOiAnJyxcbiAgICBwb3N0Q29kZTogJycsXG4gICAgcG9zdFRvd246ICcnLFxuICAgIGNvdW50cnk6ICcnLFxuICAgIGNvdW50eTogJydcbiAgfTtcblxuICBwdWJsaWMgb3B0aW9uRXJyb3JzUHJlc2VudCA9IGZhbHNlO1xuICBwdWJsaWMgYWRkcmVzc1NlbGVjdGFibGUgPSBmYWxzZTtcblxuICBwdWJsaWMgYWRkcmVzc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBhZGRyZXNzT3B0aW9uczogQWRkcmVzc09wdGlvbltdO1xuXG4gIHB1YmxpYyBtaXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgb3B0aW9uRXJyb3JNZXNzYWdlID0gQWRkcmVzc01lc3NhZ2VFbnVtLk5PX09QVElPTl9TRUxFQ1RFRDtcbiAgcHVibGljIHBvc3Rjb2RlRXJyb3JNZXNzYWdlID0gQWRkcmVzc01lc3NhZ2VFbnVtLk5PX1BPU1RDT0RFX1NFTEVDVEVEO1xuICBwdWJsaWMgc2VsZWN0RXJyb3JNZXNzYWdlID0gQWRkcmVzc01lc3NhZ2VFbnVtLlNFTEVDVF9BRERSRVNTO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWRkcmVzc2VzU2VydmljZTogQWRkcmVzc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnYWRkcmVzcycpKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdhZGRyZXNzJywgbmV3IEZvcm1Db250cm9sKHt9KSk7XG4gICAgfVxuICAgIC8vIHNldCB0aGUgZm9ybSBncm91cCByZWxldmFudCB0byBvbmx5IHRoZSBleHRlcm5hbCBwYXJlbnQgY29tcG9uZW50XG4gICAgdGhpcy5hZGRyZXNzRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAvLyByZWxldmFudCB0byBpbnRlcm5hdGlvbmFsIG1vZGVcbiAgICAgIHVrQWRkcmVzczogbmV3IEZvcm1Db250cm9sKHRoaXMuaXNJbnRlcm5hdGlvbmFsICE9PSB1bmRlZmluZWQgPyAodGhpcy5pc0ludGVybmF0aW9uYWwgPyAnbm8nIDogJ3llcycpIDogbnVsbCksXG4gICAgICAvLyByZWxldmFudCB0byBwb3N0b2NvZGUgbG9va3VwXG4gICAgICBwb3N0Y29kZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIGFkZHJlc3NMaXN0OiBuZXcgRm9ybUNvbnRyb2woJycpXG4gICAgfSk7XG4gICAgdGhpcy5zZXRQb3N0Y29kZUZvcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWRkcmVzcygpIHtcbiAgICB0aGlzLnJlc2V0U3VibWlzc2lvbi5lbWl0KCk7XG4gICAgaWYgKCF0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdwb3N0Y29kZScpLnZhbHVlKSB7XG4gICAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHRydWU7XG4gICAgICB0aGlzLmNhblNlbGVjdEFkZHJlc3MuZW1pdChmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLmFkZHJlc3NGaWVsZCA9IG51bGw7XG4gICAgICBjb25zdCBwb3N0Y29kZSA9IHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5nZXQoJ3Bvc3Rjb2RlJykudmFsdWU7XG4gICAgICB0aGlzLmFkZHJlc3NPcHRpb25zID0gW107XG4gICAgICB0aGlzLmFkZHJlc3Nlc1NlcnZpY2UuZ2V0QWRkcmVzc2VzRm9yUG9zdGNvZGUocG9zdGNvZGUucmVwbGFjZSgnICcsICcnKS50b1VwcGVyQ2FzZSgpKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3VsdCA9PiB7XG4gICAgICAgICAgcmVzdWx0LmZvckVhY2goXG4gICAgICAgICAgICBhZGRyZXNzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzT3B0aW9ucy5wdXNoKG5ldyBBZGRyZXNzT3B0aW9uKGFkZHJlc3MsIG51bGwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuYWRkcmVzc09wdGlvbnMudW5zaGlmdChcbiAgICAgICAgICAgIG5ldyBBZGRyZXNzT3B0aW9uKHVuZGVmaW5lZCwgdGhpcy5kZWZhdWx0TGFiZWwodGhpcy5hZGRyZXNzT3B0aW9ucy5sZW5ndGgpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIC8vIEVkaXRlZCB0aGlzIHNvIHRoYXQgZXJyb3JzIG5vdCBwcm9kdWNlZCBpZiB0aGVyZSBhcmUgbm8gcmVzdWx0cyBmb3IgYSBwb3N0Y29kZVxuICAgICAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCByZXRyaWV2aW5nIGFkZHJlc3NlcyBmb3IgcG9zdGNvZGUgJHtwb3N0Y29kZX0uICR7ZXJyb3J9YCk7XG4gICAgICAgICAgdGhpcy5hZGRyZXNzT3B0aW9ucy51bnNoaWZ0KFxuICAgICAgICAgICAgbmV3IEFkZHJlc3NPcHRpb24odW5kZWZpbmVkLCB0aGlzLmRlZmF1bHRMYWJlbCh0aGlzLmFkZHJlc3NPcHRpb25zLmxlbmd0aCkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdhZGRyZXNzTGlzdCcpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsYW5rQWRkcmVzcygpIHtcbiAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIHRoaXMucmVzZXRTdWJtaXNzaW9uLmVtaXQoKTtcbiAgICBpZiAodGhpcy5pbnRlcm5hdGlvbmFsTW9kZSkge1xuICAgICAgdGhpcy5pbnRlcm5hdGlvbmFsTW9kZVN0YXJ0LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnYWRkcmVzcycpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ2FkZHJlc3MnKS52YWx1ZTtcbiAgICBsZXQgaGFzQWRkcmVzcyA9IGZhbHNlO1xuICAgIGlmIChhZGRyZXNzKSB7XG4gICAgICBPYmplY3Qua2V5cyhhZGRyZXNzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGFkZHJlc3Nba2V5XSAhPT0gbnVsbCkge1xuICAgICAgICAgIGhhc0FkZHJlc3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0FkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgYWRkcmVzc1NlbGVjdGVkKCkge1xuICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gZmFsc2U7XG4gICAgdGhpcy5hZGRyZXNzRmllbGQgPSB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdhZGRyZXNzTGlzdCcpLnZhbHVlO1xuICAgIHRoaXMuYWRkcmVzc0Nob3NlbiA9IHRydWU7XG4gICAgdGhpcy5zZXRGb3JtVmFsdWUoKTtcbiAgICB0aGlzLnBvc3Rjb2RlT3B0aW9uU2VsZWN0ZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBhZGRyZXNzQ2hhbmdlID0gY2hhbmdlc1snYWRkcmVzc0ZpZWxkJ107XG4gICAgY29uc3QgaW50ZXJuYXRpb25hbENoYW5nZSA9IGNoYW5nZXNbJ2lzSW50ZXJuYXRpb25hbCddO1xuICAgIGlmIChhZGRyZXNzQ2hhbmdlKSB7XG4gICAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIH1cbiAgICBpZiAoaW50ZXJuYXRpb25hbENoYW5nZSAmJiB0aGlzLmFkZHJlc3NGb3JtR3JvdXAgJiYgdGhpcy5hZGRyZXNzRm9ybUdyb3VwLmdldCgndWtBZGRyZXNzJykpIHtcbiAgICAgIHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5nZXQoJ3VrQWRkcmVzcycpLnBhdGNoVmFsdWUodGhpcy5pc0ludGVybmF0aW9uYWwgPyAnbm8nIDogJ3llcycpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYWRkcmVzc0Nob3NlbiAmJiB0aGlzLmFkZHJlc3NGb3JtR3JvdXAgJiYgdGhpcy5hZGRyZXNzRm9ybUdyb3VwLmdldCgnYWRkcmVzc0xpc3QnKSkge1xuICAgICAgLy8gcmVzZXRzIGFkZHJlc3Mgb3B0aW9ucyBvbiBpbnRlcm5hbCBiYWNrXG4gICAgICB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuZ2V0KCdhZGRyZXNzTGlzdCcpLnBhdGNoVmFsdWUodW5kZWZpbmVkKTtcbiAgICB9XG4gICAgdGhpcy5jaGVja0lmRXJyb3JzTmVlZGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSWZFcnJvcnNOZWVkZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWlzc2lvbkF0dGVtcHRlZCAmJiB0aGlzLmludGVybmF0aW9uYWxNb2RlICYmICF0aGlzLnBvc3Rjb2RlTG9va3VwVmlzaWJsZSgpKSB7XG4gICAgICAvLyBlbnN1cmUgZXJyb3JzIHByZXNlbnQgd2hlbiBzdWJtaXNzaW9uIGF0dG1lbXB0ZWQgb24gaW50ZXJuYXRpb25hbCByYWRpbyBidXR0b25zXG4gICAgICB0aGlzLm9wdGlvbkVycm9yc1ByZXNlbnQgPSB0cnVlO1xuICAgICAgdGhpcy5vcHRpb25FcnJvck1lc3NhZ2UgPSBBZGRyZXNzTWVzc2FnZUVudW0uTk9fT1BUSU9OX1NFTEVDVEVEO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMub3B0aW9uRXJyb3JzUHJlc2VudCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25FcnJvcnNQcmVzZW50ICYmICh0aGlzLmFkZHJlc3NDaG9zZW4gfHwgdGhpcy5pc0ludGVybmF0aW9uYWwgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIC8vIGVuc3VyZSBwYXJlbnQgZXJyb3JzIG5vdCBwcmVzZW50IHdoZW4gdGhlIGNoaWxkIGZvcm0gZ3JvdXAgaXMgcHJlc2VudFxuICAgICAgdGhpcy5vcHRpb25FcnJvcnNQcmVzZW50ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEludGVybmF0aW9uYWxBZGRyZXNzKGlzSW50ZXJuYXRpb25hbDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNJbnRlcm5hdGlvbmFsID0gaXNJbnRlcm5hdGlvbmFsO1xuICAgIHRoaXMudWtBZGRyZXNzT3B0aW9uU2VsZWN0ZWQuZW1pdCh0aGlzLmlzSW50ZXJuYXRpb25hbCk7XG4gIH1cblxuICBwdWJsaWMgcG9zdGNvZGVFcnJvclByZXNlbnQoaXNQb3N0Y29kZUZpZWxkOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2hlY2tGb3JGaWVsZCA9IGlzUG9zdGNvZGVGaWVsZCA/ICF0aGlzLmFkZHJlc3NTZWxlY3RhYmxlIDogdGhpcy5hZGRyZXNzU2VsZWN0YWJsZTtcbiAgICByZXR1cm4gdGhpcy5zdWJtaXNzaW9uQXR0ZW1wdGVkICYmIGNoZWNrRm9yRmllbGQ7XG4gIH1cblxuICBwdWJsaWMgcG9zdGNvZGVMb29rdXBWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zaG91bGRTaG93RGV0YWlsRmllbGRzKCkgfHwgKCF0aGlzLnN0YXJ0ZWRJbnRlcm5hdGlvbmFsICYmICF0aGlzLmFkZHJlc3NDaG9zZW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0TGFiZWwobnVtYmVyT2ZBZGRyZXNzZXM6IG51bWJlcikge1xuICAgIHRoaXMuYWRkcmVzc1NlbGVjdGFibGUgPSBudW1iZXJPZkFkZHJlc3NlcyA+IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5jYW5TZWxlY3RBZGRyZXNzLmVtaXQodGhpcy5hZGRyZXNzU2VsZWN0YWJsZSk7XG4gICAgcmV0dXJuIG51bWJlck9mQWRkcmVzc2VzID09PSAwID8gJ05vIGFkZHJlc3MgZm91bmQnXG4gICAgICA6IGAke251bWJlck9mQWRkcmVzc2VzfSR7bnVtYmVyT2ZBZGRyZXNzZXMgPT09IDEgPyAnIGFkZHJlc3MgJyA6ICcgYWRkcmVzc2VzICd9Zm91bmRgO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2FkZHJlc3MnKS5wYXRjaFZhbHVlKFxuICAgICAgICB0aGlzLmFkZHJlc3NGaWVsZFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFBvc3Rjb2RlRm9ybSgpOiB2b2lkIHtcbiAgICBjb25zdCBwb3N0Y29kZU5lZWRlZCA9IHRoaXMuaXNJbnRlcm5hdGlvbmFsID09PSB1bmRlZmluZWQgJiYgdGhpcy5mb3JtR3JvdXAuZ2V0KCdhZGRyZXNzJykgJiYgdGhpcy5mb3JtR3JvdXAuZ2V0KCdhZGRyZXNzJykuZ2V0KCdwb3N0Q29kZScpO1xuICAgIHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5nZXQoJ3Bvc3Rjb2RlJykucGF0Y2hWYWx1ZShwb3N0Y29kZU5lZWRlZCA/IHRoaXMuZm9ybUdyb3VwLmdldCgnYWRkcmVzcycpLmdldCgncG9zdENvZGUnKS52YWx1ZSA6ICcnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImFkZHJlc3NGb3JtR3JvdXBcIlxuICBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogb3B0aW9uRXJyb3JzUHJlc2VudH1cIj5cbiAgPHAgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJvcHRpb25FcnJvcnNQcmVzZW50XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+e3tvcHRpb25FcnJvck1lc3NhZ2V9fVxuICA8L3A+XG4gIDxkaXYgKm5nSWY9XCJwb3N0Y29kZUxvb2t1cFZpc2libGUoKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZ292dWstbGFiZWxcIj48c3Ryb25nPlByb3ZpZGUgYWRkcmVzcyBkZXRhaWxzPC9zdHJvbmc+PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ib2R5IHBvc3Rjb2RlLWxvb2t1cFwiIGlkPVwiYWRkcmVzc0xvb2t1cFwiXG4gICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlIHx8IHBvc3Rjb2RlRXJyb3JQcmVzZW50KHRydWUpfVwiPlxuICAgICAgPGxhYmVsIGZvcj1cInBvc3Rjb2RlSW5wdXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1oaW50XCI+RW50ZXIgYSBVSyBwb3N0Y29kZTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm1pc3NpbmdQb3N0Y29kZSB8fCBwb3N0Y29kZUVycm9yUHJlc2VudCh0cnVlKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj57e3Bvc3Rjb2RlRXJyb3JNZXNzYWdlfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlfVwiIGlkPVwicG9zdGNvZGVJbnB1dFwiIG5hbWU9XCJwb3N0Y29kZVwiXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS10aGlyZCBwb3N0Y29kZWlucHV0IGlubGluZS1ibG9ja1wiIGZvcm1Db250cm9sTmFtZT1cInBvc3Rjb2RlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGZpbmQtYWRkcmVzc1wiIChjbGljayk9XCJmaW5kQWRkcmVzcygpXCI+RmluZCBhZGRyZXNzPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ib2R5XCIgKm5nSWY9XCJhZGRyZXNzT3B0aW9uc1wiIGlkPVwic2VsZWN0QWRkcmVzc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJvZHlcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogcG9zdGNvZGVFcnJvclByZXNlbnQoZmFsc2UpfVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbFwiIGZvcj1cImFkZHJlc3NMaXN0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCI+U2VsZWN0IGFuIGFkZHJlc3M8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwicG9zdGNvZGVFcnJvclByZXNlbnQoZmFsc2UpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+e3tzZWxlY3RFcnJvck1lc3NhZ2V9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ292dWstc2VsZWN0IGNjZC1kcm9wZG93biBhZGRyZXNzTGlzdFwiIGlkPVwiYWRkcmVzc0xpc3RcIiBuYW1lPVwiYWRkcmVzc1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc0xpc3RcIiAoY2hhbmdlKT1cImFkZHJlc3NTZWxlY3RlZCgpXCIgZm9jdXNFbGVtZW50PlxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGFkZHJlc3NPcHRpb24gb2YgYWRkcmVzc09wdGlvbnNcIiBbbmdWYWx1ZV09XCJhZGRyZXNzT3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAgICB7e2FkZHJlc3NPcHRpb24uZGVzY3JpcHRpb259fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGEgY2xhc3M9XCJtYW51YWwtbGluayBnb3Z1ay1saW5rXCIgKm5nSWY9XCIhc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpIHx8ICghc3RhcnRlZEludGVybmF0aW9uYWwgJiYgIWFkZHJlc3NDaG9zZW4pXCJcbiAgICAgIChjbGljayk9XCJibGFua0FkZHJlc3MoKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBocmVmPVwiI1wiPkkgY2FuJ3QgZW50ZXIgYSBVSyBwb3N0Y29kZTwvYT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBpZD1cImdvdnVrLXJhZGlvc1wiIGNsYXNzPVwiZ292dWstcmFkaW9zXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIlxuICAgICpuZ0lmPVwic2hvdWxkU2hvd0RldGFpbEZpZWxkcygpICYmIGludGVybmF0aW9uYWxNb2RlICYmIHN0YXJ0ZWRJbnRlcm5hdGlvbmFsICYmICFhZGRyZXNzQ2hvc2VuXCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwieWVzXCIgdmFsdWU9XCJ5ZXNcIiBuYW1lPVwidWtBZGRyZXNzXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgZGF0YS1hcmlhLWNvbnRyb2xzPVwiYWRkcmVzcy1maWVsZHNcIiAoY2xpY2spPVwic2V0SW50ZXJuYXRpb25hbEFkZHJlc3MoZmFsc2UpXCIgZm9ybUNvbnRyb2xOYW1lPVwidWtBZGRyZXNzXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsXCIgZm9yPVwieWVzXCI+XG4gICAgICAgIFllc1xuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCI+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJub1wiIHZhbHVlPVwibm9cIiBuYW1lPVwidWtBZGRyZXNzXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgZGF0YS1hcmlhLWNvbnRyb2xzPVwiYWRkcmVzcy1maWVsZHNcIiAoY2xpY2spPVwic2V0SW50ZXJuYXRpb25hbEFkZHJlc3ModHJ1ZSlcIiBmb3JtQ29udHJvbE5hbWU9XCJ1a0FkZHJlc3NcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLXJhZGlvc19fbGFiZWxcIiBmb3I9XCJub1wiPlxuICAgICAgICBOb1xuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19jb25kaXRpb25hbFwiIGlkPVwiYWRkcmVzcy1maWVsZHNcIj5cbiAgICAgIDx4dWlsaWItd3JpdGUtYWRkcmVzcy1pbnB1dHMgKm5nSWY9XCJpc0ludGVybmF0aW9uYWwgIT09IHVuZGVmaW5lZFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgW2lzSW50ZXJuYXRpb25hbF09XCJpc0ludGVybmF0aW9uYWxcIiBbc3VibWlzc2lvbkF0dGVtcHRlZF09XCJzdWJtaXNzaW9uQXR0ZW1wdGVkXCI+XG4gICAgICA8L3h1aWxpYi13cml0ZS1hZGRyZXNzLWlucHV0cz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHh1aWxpYi13cml0ZS1hZGRyZXNzLWlucHV0cyAqbmdJZj1cInNob3VsZFNob3dEZXRhaWxGaWVsZHMoKSAmJiAoYWRkcmVzc0Nob3NlbiB8fCAhaW50ZXJuYXRpb25hbE1vZGUpXCJcbiAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtpc0ludGVybmF0aW9uYWxdPVwiZmFsc2VcIiBbc3VibWlzc2lvbkF0dGVtcHRlZF09XCJzdWJtaXNzaW9uQXR0ZW1wdGVkXCI+XG4gIDwveHVpbGliLXdyaXRlLWFkZHJlc3MtaW5wdXRzPlxuXG48L2Rpdj4iXX0=
@@ -1,85 +1,92 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable } from '@angular/core';
2
+ import { Inject, Injectable, Optional } from '@angular/core';
3
3
  import { Title } from '@angular/platform-browser';
4
4
  import { NavigationEnd, Router } from '@angular/router';
5
+ import { CSP_NONCE } from '@angular/core'; // <-- important
5
6
  import { windowToken } from '../../window';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/router";
8
9
  import * as i2 from "@angular/platform-browser";
9
10
  export class GoogleTagManagerService {
10
- constructor(router, title, window, document) {
11
+ constructor(router, title, win, doc, cspNonce) {
11
12
  this.router = router;
12
13
  this.title = title;
13
- this.window = window;
14
- this.document = document;
14
+ this.cspNonce = cspNonce;
15
+ this.loaded = false;
16
+ this.googleTagManagerKey = '';
17
+ this.window = win;
18
+ this.document = doc;
15
19
  }
20
+ /** Call this only AFTER the user has opted-in to analytics cookies */
16
21
  init(googleTagManagerKey) {
22
+ console.log('Initializing Google Tag Manager');
23
+ if (this.loaded || !googleTagManagerKey)
24
+ return;
25
+ this.loaded = true;
17
26
  this.googleTagManagerKey = googleTagManagerKey;
18
27
  try {
28
+ // 1) dataLayer bootstrap (executes as app code, not inline <script>)
19
29
  this.window.dataLayer = this.window.dataLayer || [];
20
30
  this.window.dataLayer.push({
21
- 'gtm.start': new Date().getTime(),
31
+ 'gtm.start': Date.now(),
22
32
  event: 'gtm.js'
23
33
  });
34
+ // 2) nonced external loader
24
35
  const script = this.document.createElement('script');
25
36
  script.async = true;
26
- script.src = `https://www.googletagmanager.com/gtm.js?id=${this.googleTagManagerKey}`;
37
+ if (this.cspNonce)
38
+ script.setAttribute('nonce', this.cspNonce);
39
+ script.src = `https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(this.googleTagManagerKey)}`;
40
+ script.addEventListener('error', (e) => {
41
+ // helpful to see CSP blocks in user consoles
42
+ // eslint-disable-next-line no-console
43
+ console.warn('[GTM] loader error', e);
44
+ });
27
45
  this.document.head.appendChild(script);
28
46
  }
29
47
  catch (ex) {
30
- console.error('Error appending google tag manager');
31
- console.error(ex);
48
+ // eslint-disable-next-line no-console
49
+ console.error('Error appending Google Tag Manager', ex);
32
50
  }
33
51
  this.listenForRouteChanges();
34
52
  }
35
53
  listenForRouteChanges() {
36
- if (this.googleTagManagerKey) {
37
- this.router.events.subscribe((event) => {
38
- if (event instanceof NavigationEnd) {
39
- this.window.dataLayer.push({
40
- event: 'pageview',
41
- page: {
42
- path: event.urlAfterRedirects,
43
- title: this.title.getTitle()
44
- }
45
- });
46
- }
47
- });
48
- }
54
+ if (!this.googleTagManagerKey)
55
+ return;
56
+ this.router.events.subscribe((event) => {
57
+ if (event instanceof NavigationEnd) {
58
+ this.window.dataLayer?.push({
59
+ event: 'pageview',
60
+ page: {
61
+ path: event.urlAfterRedirects,
62
+ title: this.title.getTitle()
63
+ }
64
+ });
65
+ }
66
+ });
49
67
  }
50
68
  virtualPageView(eventName, path, title, metadata) {
51
- if (this.window.dataLayer) {
52
- this.window.dataLayer.push({
53
- event: eventName,
54
- page: {
55
- path,
56
- title
57
- },
58
- ...metadata
59
- });
60
- }
69
+ this.window.dataLayer?.push({ event: eventName, page: { path, title }, ...metadata });
61
70
  }
62
71
  event(eventName, params) {
63
- if (this.window.dataLayer) {
64
- this.window.dataLayer.push({
65
- event: eventName,
66
- ...params
67
- });
68
- }
72
+ this.window.dataLayer?.push({ event: eventName, ...params });
69
73
  }
70
- static { this.ɵfac = function GoogleTagManagerService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GoogleTagManagerService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Title), i0.ɵɵinject(windowToken), i0.ɵɵinject(DOCUMENT)); }; }
74
+ static { this.ɵfac = function GoogleTagManagerService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GoogleTagManagerService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Title), i0.ɵɵinject(windowToken), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(CSP_NONCE, 8)); }; }
71
75
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GoogleTagManagerService, factory: GoogleTagManagerService.ɵfac, providedIn: 'root' }); }
72
76
  }
73
77
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoogleTagManagerService, [{
74
78
  type: Injectable,
75
- args: [{
76
- providedIn: 'root'
77
- }]
79
+ args: [{ providedIn: 'root' }]
78
80
  }], () => [{ type: i1.Router }, { type: i2.Title }, { type: undefined, decorators: [{
79
81
  type: Inject,
80
82
  args: [windowToken]
81
83
  }] }, { type: undefined, decorators: [{
82
84
  type: Inject,
83
85
  args: [DOCUMENT]
86
+ }] }, { type: undefined, decorators: [{
87
+ type: Optional
88
+ }, {
89
+ type: Inject,
90
+ args: [CSP_NONCE]
84
91
  }] }], null); })();
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9nb29nbGUtdGFnLW1hbmFnZXIvZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFLM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNtQixNQUFjLEVBQ2QsS0FBWSxFQUNSLE1BQVcsRUFDZCxRQUFhO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQU87UUFJN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFnQixDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBb0IsQ0FBQztJQUN2QyxDQUFDO0lBRU0sSUFBSSxDQUFDLG1CQUEyQjtRQUNyQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLEdBQUksSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDbEMsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO2dCQUNqQyxLQUFLLEVBQUUsUUFBUTthQUNoQixDQUFDLENBQUM7WUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLDhDQUE4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNyQyxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUNsQyxLQUFLLEVBQUUsVUFBVTt3QkFDakIsSUFBSSxFQUFFOzRCQUNKLElBQUksRUFBRSxLQUFLLENBQUMsaUJBQWlCOzRCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7eUJBQzdCO3FCQUNGLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUFpQixFQUFFLElBQVksRUFBRSxLQUFhLEVBQUUsUUFBOEI7UUFDbkcsSUFBSyxJQUFJLENBQUMsTUFBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDbEMsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksRUFBRTtvQkFDSixJQUFJO29CQUNKLEtBQUs7aUJBQ047Z0JBQ0QsR0FBRyxRQUFRO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsU0FBaUIsRUFBRSxNQUEyQjtRQUN6RCxJQUFLLElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQyxLQUFLLEVBQUUsU0FBUztnQkFDaEIsR0FBRyxNQUFNO2FBQ1YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7d0hBdkVVLHVCQUF1Qiw2REFReEIsV0FBVyxlQUNYLFFBQVE7dUVBVFAsdUJBQXVCLFdBQXZCLHVCQUF1QixtQkFGdEIsTUFBTTs7aUZBRVAsdUJBQXVCO2NBSG5DLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBU0ksTUFBTTt1QkFBQyxXQUFXOztzQkFDbEIsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlVGFnTWFuYWdlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IFdpbmRvdztcblxuICBwdWJsaWMgZ29vZ2xlVGFnTWFuYWdlcktleTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGU6IFRpdGxlLFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pIHdpbmRvdzogYW55LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnlcbiAgKSB7XG4gICAgdGhpcy53aW5kb3cgPSB3aW5kb3cgYXMgV2luZG93O1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudCBhcyBEb2N1bWVudDtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGdvb2dsZVRhZ01hbmFnZXJLZXk6IHN0cmluZykge1xuICAgIHRoaXMuZ29vZ2xlVGFnTWFuYWdlcktleSA9IGdvb2dsZVRhZ01hbmFnZXJLZXk7XG4gICAgdHJ5IHtcbiAgICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllciA9ICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllciB8fCBbXTtcbiAgICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllci5wdXNoKHtcbiAgICAgICAgJ2d0bS5zdGFydCc6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxuICAgICAgICBldmVudDogJ2d0bS5qcydcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5zcmMgPSBgaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPSR7dGhpcy5nb29nbGVUYWdNYW5hZ2VyS2V5fWA7XG4gICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYXBwZW5kaW5nIGdvb2dsZSB0YWcgbWFuYWdlcicpO1xuICAgICAgY29uc29sZS5lcnJvcihleCk7XG4gICAgfVxuICAgIHRoaXMubGlzdGVuRm9yUm91dGVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvclJvdXRlQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5nb29nbGVUYWdNYW5hZ2VyS2V5KSB7XG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyLnB1c2goe1xuICAgICAgICAgICAgZXZlbnQ6ICdwYWdldmlldycsXG4gICAgICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgICAgIHBhdGg6IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZS5nZXRUaXRsZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB2aXJ0dWFsUGFnZVZpZXcoZXZlbnROYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgdGl0bGU6IHN0cmluZywgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgaWYgKCh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllcikge1xuICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyLnB1c2goe1xuICAgICAgICBldmVudDogZXZlbnROYW1lLFxuICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICB0aXRsZVxuICAgICAgICB9LFxuICAgICAgICAuLi5tZXRhZGF0YVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGV2ZW50KGV2ZW50TmFtZTogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICBpZiAoKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyKSB7XG4gICAgICAodGhpcy53aW5kb3cgYXMgYW55KS5kYXRhTGF5ZXIucHVzaCh7XG4gICAgICAgIGV2ZW50OiBldmVudE5hbWUsXG4gICAgICAgIC4uLnBhcmFtc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9nb29nbGUtdGFnLW1hbmFnZXIvZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDLENBQUMsZ0JBQWdCO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFHM0MsTUFBTSxPQUFPLHVCQUF1QjtJQU9sQyxZQUNtQixNQUFjLEVBQ2QsS0FBWSxFQUNSLEdBQVEsRUFDWCxHQUFRLEVBQ3NCLFFBQWlCO1FBSmhELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBR21CLGFBQVEsR0FBUixRQUFRLENBQVM7UUFUM0QsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVoQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFTOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFhLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFlLENBQUM7SUFDbEMsQ0FBQztJQUVELHNFQUFzRTtJQUMvRCxJQUFJLENBQUMsbUJBQTJCO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUks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O2lGQUNuQix1QkFBdUI7Y0FEbkMsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7c0JBVzdCLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsUUFBUTs7c0JBQ2YsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDU1BfTk9OQ0UgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsgLy8gPC0tIGltcG9ydGFudFxuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVRhZ01hbmFnZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XG4gIHByaXZhdGUgbG9hZGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGdvb2dsZVRhZ01hbmFnZXJLZXkgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGU6IFRpdGxlLFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pIHdpbjogYW55LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvYzogYW55LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ1NQX05PTkNFKSBwcml2YXRlIHJlYWRvbmx5IGNzcE5vbmNlPzogc3RyaW5nXG4gICkge1xuICAgIHRoaXMud2luZG93ID0gd2luIGFzIFdpbmRvdztcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jIGFzIERvY3VtZW50O1xuICB9XG5cbiAgLyoqIENhbGwgdGhpcyBvbmx5IEFGVEVSIHRoZSB1c2VyIGhhcyBvcHRlZC1pbiB0byBhbmFseXRpY3MgY29va2llcyAqL1xuICBwdWJsaWMgaW5pdChnb29nbGVUYWdNYW5hZ2VyS2V5OiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZygnSW5pdGlhbGl6aW5nIEdvb2dsZSBUYWcgTWFuYWdlcicpO1xuICAgIGlmICh0aGlzLmxvYWRlZCB8fCAhZ29vZ2xlVGFnTWFuYWdlcktleSkgcmV0dXJuO1xuICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmdvb2dsZVRhZ01hbmFnZXJLZXkgPSBnb29nbGVUYWdNYW5hZ2VyS2V5O1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIDEpIGRhdGFMYXllciBib290c3RyYXAgKGV4ZWN1dGVzIGFzIGFwcCBjb2RlLCBub3QgaW5saW5lIDxzY3JpcHQ+KVxuICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyID0gKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyIHx8IFtdO1xuICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyLnB1c2goe1xuICAgICAgICAnZ3RtLnN0YXJ0JzogRGF0ZS5ub3coKSxcbiAgICAgICAgZXZlbnQ6ICdndG0uanMnXG4gICAgICB9KTtcblxuICAgICAgLy8gMikgbm9uY2VkIGV4dGVybmFsIGxvYWRlclxuICAgICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICBpZiAodGhpcy5jc3BOb25jZSkgc2NyaXB0LnNldEF0dHJpYnV0ZSgnbm9uY2UnLCB0aGlzLmNzcE5vbmNlKTtcbiAgICAgIHNjcmlwdC5zcmMgPSBgaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZ29vZ2xlVGFnTWFuYWdlcktleSl9YDtcbiAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICAgIC8vIGhlbHBmdWwgdG8gc2VlIENTUCBibG9ja3MgaW4gdXNlciBjb25zb2xlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oJ1tHVE1dIGxvYWRlciBlcnJvcicsIGUpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFwcGVuZGluZyBHb29nbGUgVGFnIE1hbmFnZXInLCBleCk7XG4gICAgfVxuXG4gICAgdGhpcy5saXN0ZW5Gb3JSb3V0ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9yUm91dGVDaGFuZ2VzKCkge1xuICAgIGlmICghdGhpcy5nb29nbGVUYWdNYW5hZ2VyS2V5KSByZXR1cm47XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyPy5wdXNoKHtcbiAgICAgICAgICBldmVudDogJ3BhZ2V2aWV3JyxcbiAgICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgICBwYXRoOiBldmVudC51cmxBZnRlclJlZGlyZWN0cyxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLmdldFRpdGxlKClcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHZpcnR1YWxQYWdlVmlldyhldmVudE5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICAodGhpcy53aW5kb3cgYXMgYW55KS5kYXRhTGF5ZXI/LnB1c2goeyBldmVudDogZXZlbnROYW1lLCBwYWdlOiB7IHBhdGgsIHRpdGxlIH0sIC4uLm1ldGFkYXRhIH0pO1xuICB9XG5cbiAgcHVibGljIGV2ZW50KGV2ZW50TmFtZTogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICAodGhpcy53aW5kb3cgYXMgYW55KS5kYXRhTGF5ZXI/LnB1c2goeyBldmVudDogZXZlbnROYW1lLCAuLi5wYXJhbXMgfSk7XG4gIH1cbn1cbiJdfQ==