@uiapplib/ngx-ui-web-lib 0.0.8 → 0.0.10

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.
@@ -169,7 +169,7 @@ export class ChatbotService {
169
169
  this.botOptions.accessToken = this.ls.getUser().access_token;
170
170
  }
171
171
  else {
172
- userId = Math.floor((Math.random() * 10000000) + 1) + "_" + new Date().getMilliseconds() + "@mdes.ms.gov";
172
+ userId = Math.floor((Math.random() * 10000000) + 1) + "_" + new Date().getMilliseconds() + "@maine.gov";
173
173
  }
174
174
  //***CODE_START
175
175
  this.botOptions.logLevel = 'debug';
@@ -189,6 +189,7 @@ export class ChatbotService {
189
189
  // customData: { connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.", hoverMessage: "Ask Blue", botState: "ME", showCollectUserDetailForm: false, showDisclaimerPopUp: true, botIconImageName: "chatboticon.png", botAvatarImageName: "chatboticon.png", rootFilePath: "UI/", supportedLanguages: ["en", "es"], initialLanguage: "en", disclaimerPopup: { header: "Important Message", message: `The virtual assistant will need to ask for specific identifying information that is needed to answer you question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`, }, headerConfig: { showLanguageToggle: true, showMinimizeButton: true, showExpandbutton: false, showReloadButton: true, } }
190
190
  }; // bot name is case sensitive
191
191
  //this.botOptions.clientSecret = LibConstants.koreAiClientSecret;
192
+ console.log("customdata ", this.botOptions.botInfo.customData);
192
193
  //this.botOptions.reemployUsBearerToken= "";
193
194
  // will need to pass token to koreAiChatBotServer when authentication needs to be validated for server side api call
194
195
  var chatConfig = {
@@ -252,4 +253,4 @@ export class ChatbotService {
252
253
  providedIn: 'root'
253
254
  }]
254
255
  }], () => [{ type: i0.RendererFactory2 }, { type: i1.LoggerService }, { type: i2.LoginService }, { type: i3.UtilService }], null); })();
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jaGF0Ym90L2NoYXRib3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBcUNoRCxNQUFNLE9BQU8sY0FBYztJQW1GekIsWUFBWSxlQUFpQyxFQUFVLE1BQXFCLEVBQVUsRUFBZ0IsRUFBVSxJQUFpQjtRQUExRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqRmpJLFFBQUcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV6QyxpQkFBWSxHQUFlO1lBQ3pCLGlCQUFpQixFQUFFLDJGQUEyRjtZQUM5RyxZQUFZLEVBQUUsY0FBYztZQUM1QixRQUFRLEVBQUUsSUFBSTtZQUNkLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGtCQUFrQixFQUFFLGdCQUFnQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDMUIsZUFBZSxFQUFFLElBQUk7WUFDckIsNkRBQTZEO1lBQzdELGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixP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U0FBUyxDQUFDO2dCQUM3QyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUMvQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2dCQUM3QyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN4QixVQUFVLENBQUM7b0JBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO3dCQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDakM7Z0JBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrRUF6UFUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNOztpRkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyaXB0Q29uc3RhbnQgfSBmcm9tICcuL3NjcmlwdC5jb25zdCc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbC91dGlsLnNlcnZpY2UnO1xuXG5kZWNsYXJlIGNvbnN0IGtvcmVCb3RDaGF0OiBhbnk7XG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuaW50ZXJmYWNlIERpc2NsYWltZXJQb3B1cCB7XG4gIGhlYWRlcjogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmdcbn1cbmludGVyZmFjZSBIZWFkZXJDb25maWcge1xuICBzaG93TGFuZ3VhZ2VUb2dnbGU6IGJvb2xlYW47XG4gIHNob3dNaW5pbWl6ZUJ1dHRvbjogYm9vbGVhbjtcbiAgc2hvd0V4cGFuZEJ1dHRvbjogYm9vbGVhbjtcbiAgc2hvd1JlbG9hZEJ1dHRvbjogYm9vbGVhbjtcbn1cbmludGVyZmFjZSBDdXN0b21EYXRhIHtcbiAgY29ubmVjdGluZ01lc3NhZ2U6IHN0cmluZztcbiAgaG92ZXJNZXNzYWdlOiBzdHJpbmc7XG4gIGJvdFN0YXRlOiBzdHJpbmc7XG4gIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IGJvb2xlYW47XG4gIHNob3dEaXNjbGFpbWVyUG9wVXA6IGJvb2xlYW47XG4gIHNob3dDaGF0QnViYmxlQXRDbG9zZWQ6IGJvb2xlYW47XG4gIGJvdEF2YXRhckltYWdlTmFtZTogc3RyaW5nO1xuICBib3RJY29uSW1hZ2VOYW1lOiBzdHJpbmc7XG4gIGZvcm1CYW5uZXJQYXRoOiBzdHJpbmcsXG4gIHJvb3RGaWxlUGF0aDogc3RyaW5nO1xuICBzdXBwb3J0ZWRMYW5ndWFnZXM6IHN0cmluZ1tdO1xuICBpbml0aWFsTGFuZ3VhZ2U6IHN0cmluZztcbiAgZGlzY2xhaW1lclBvcHVwOiBEaXNjbGFpbWVyUG9wdXA7XG4gIGhlYWRlckNvbmZpZzogSGVhZGVyQ29uZmlnO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDaGF0Ym90U2VydmljZSB7XG5cbiAgbWFwOiBNYXA8c3RyaW5nLCBDdXN0b21EYXRhPiA9IG5ldyBNYXAoKTtcblxuICBtc0N1c3RvbURhdGE6IEN1c3RvbURhdGEgPSB7XG4gICAgY29ubmVjdGluZ01lc3NhZ2U6IFwiV2VsY29tZSB0byBSZUVtcGxveU1TLiBJIGFtIHlvdXIgdmlydHVhbCBhc3Npc3RhbnQgdG8gaGVscCB5b3Ugd2l0aCBNREVTIHJlbGF0ZWQgcXVlcmllcy5cIixcbiAgICBob3Zlck1lc3NhZ2U6IFwiQXNrIGNoYXQgYm90XCIsXG4gICAgYm90U3RhdGU6IFwiTVNcIixcbiAgICBzaG93Q29sbGVjdFVzZXJEZXRhaWxGb3JtOiB0cnVlLFxuICAgIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsXG4gICAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogZmFsc2UsXG4gICAgYm90QXZhdGFySW1hZ2VOYW1lOiBcIkF2YXRhckljb24ucG5nXCIsXG4gICAgYm90SWNvbkltYWdlTmFtZTogXCJBdmF0YXJJY29uLnBuZ1wiLFxuICAgIGZvcm1CYW5uZXJQYXRoOiBcIlwiLFxuICAgIHJvb3RGaWxlUGF0aDogXCJVSS9cIixcbiAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCJdLFxuICAgIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLFxuICAgIC8vIHN0YXJ0ZXJUYXNrOiB7ZW46XCJGb3Jnb3QgUGFzc3dvcmRcIiwgZXM6XCJGb3Jnb3QgUGFzc3dvcmRcIn0sXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBNREVTJyB2aXJ0dWFsIGFzc2lzdGFudCB3aWxsIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgU29jaWFsIFNlY3VyaXR5IE51bWJlciBhbmQgRGF0ZSBvZiBCaXJ0aCwgdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykuPC9icj48L2JyPiBNREVTIGZvbGxvd3Mgc3RyaWN0IGZlZGVyYWwgc2VjdXJpdHkgZ3VpZGVsaW5lcyB0byBwcm90ZWN0IHlvdXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLjwvYnI+PC9icj5UbyBmdXJ0aGVyIHByb3RlY3QgeW91ciBpbmZvcm1hdGlvbiB5b3Ugc2hvdWxkIGNsb3NlIHRoZSBjaGF0IHdpbmRvdyBhbmQgYnJvd3NlciB3aGVuIHlvdSBhcmUgZmluaXNoZWQuPC9wPmBcbiAgICB9LFxuICAgIGhlYWRlckNvbmZpZzoge1xuICAgICAgc2hvd0xhbmd1YWdlVG9nZ2xlOiBmYWxzZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93RXhwYW5kQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dSZWxvYWRCdXR0b246IGZhbHNlLFxuICAgIH1cbiAgfVxuXG4gIG1lQ3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95TUUuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1FIHJlbGF0ZWQgcXVlcmllcy5cIixcbiAgICBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIixcbiAgICBib3RTdGF0ZTogXCJNRVwiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IGZhbHNlLFxuICAgIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsXG4gICAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogZmFsc2UsXG4gICAgYm90SWNvbkltYWdlTmFtZTogXCJCbHVlSWNvbi5zdmdcIixcbiAgICBib3RBdmF0YXJJbWFnZU5hbWU6IFwiQmx1ZUljb24uc3ZnXCIsXG4gICAgZm9ybUJhbm5lclBhdGg6IFwiXCIsXG4gICAgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogW1wiZW5cIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBNRURPTCdzIHZpcnR1YWwgYXNzaXN0YW50IG1heSBhc2sgeW91IHNwZWNpZmljIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLCBzdWNoIGFzIFNvY2lhbCBTZWN1cml0eSBOdW1iZXIgYW5kIERhdGUgb2YgQmlydGgsIHRoYXQgaXMgbmVlZGVkIHRvIGFuc3dlciB5b3VyIHF1ZXN0aW9uKHMpLiBNRSBET0wgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIFRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgY2xvc2UgdGhlIGNoYXQgd2luZG93IGFuZCBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC5gXG4gICAgfSxcbiAgICBoZWFkZXJDb25maWc6IHtcbiAgICAgIHNob3dMYW5ndWFnZVRvZ2dsZTogZmFsc2UsXG4gICAgICBzaG93TWluaW1pemVCdXR0b246IHRydWUsXG4gICAgICBzaG93RXhwYW5kQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dSZWxvYWRCdXR0b246IHRydWUsXG4gICAgfVxuICB9XG4gIGN0Q3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95Q1QuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1FIHJlbGF0ZWQgcXVlcmllcy5cIixcbiAgICBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIixcbiAgICBib3RTdGF0ZTogXCJDVFwiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IHRydWUsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLFxuICAgIGJvdEF2YXRhckltYWdlTmFtZTogXCJjaGF0Ym90aWNvbi5wbmdcIixcbiAgICBmb3JtQmFubmVyUGF0aDogXCJcIixcbiAgICByb290RmlsZVBhdGg6IFwiVUkvXCIsXG4gICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbXCJlblwiLCBcImVzXCJdLFxuICAgIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLFxuICAgIGRpc2NsYWltZXJQb3B1cDoge1xuICAgICAgaGVhZGVyOiBcIkltcG9ydGFudCBtZXNzYWdlXCIsXG4gICAgICBtZXNzYWdlOiBgVGhlIENURE9MIHZpcnR1YWwgYXNzaXN0YW50IHdpbGwgbmVlZCB0byBhc2sgZm9yIHNwZWNpZmljIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uIHRoYXQgaXMgbmVlZGVkIHRvIGFuc3dlciB5b3VyIHF1ZXN0aW9uKHMpIHN1Y2ggYXMgZGF0ZSBvZiBiaXJ0aCBvciBTb2NpYWwgU2VjdXJpdHkgbnVtYmVyLiBUaGUgYWdlbmN5IGZvbGxvd3Mgc3RyaWN0IGZlZGVyYWwgc2VjdXJpdHkgZ3VpZGVsaW5lcyB0byBwcm90ZWN0IHlvdXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLiBUbyBmdXJ0aGVyIHByb3RlY3QgeW91ciBpbmZvcm1hdGlvbiwgaWYgeW91IGFyZSBvbiBhIHB1YmxpYyBjb21wdXRlciwgcGxlYXNlIGxvZyBvdXQgYW5kIGNsb3NlIHlvdXIgYnJvd3NlciB3aGVuIHlvdSBhcmUgZmluaXNoZWQuYFxuICAgIH0sXG4gICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICBzaG93TGFuZ3VhZ2VUb2dnbGU6IHRydWUsXG4gICAgICBzaG93TWluaW1pemVCdXR0b246IHRydWUsXG4gICAgICBzaG93RXhwYW5kQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dSZWxvYWRCdXR0b246IHRydWUsXG4gICAgfVxuICB9XG4gIHB1YmxpYyBib3RPcHRpb25zOiBhbnkgPSB7fTtcbiAgcHVibGljIGtvcmVCb3Q6IGFueSA9IHt9O1xuICBpbml0Q2hhdGJvdDogQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgcHVibGljIHNob3dDaGF0Ym90OiBib29sZWFuID0gKExpYkNvbnN0YW50cy5lbmFibGVDaGF0Ym90ID09ICd0cnVlJyk7XG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByaXZhdGUgbHM6IExvZ2luU2VydmljZSwgcHJpdmF0ZSB1dGlsOiBVdGlsU2VydmljZSkge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnQ2hhdGJvdFNlcnZpY2UgaW5pdGlhbGl6emVkIHN1Y2Nlc3NmdWxseS4nKTtcblxuICAgIHRoaXMubWFwLnNldChcIm1zXCIsIHRoaXMubXNDdXN0b21EYXRhKTtcbiAgICB0aGlzLm1hcC5zZXQoXCJtZVwiLCB0aGlzLm1lQ3VzdG9tRGF0YSk7XG4gICAgdGhpcy5tYXAuc2V0KFwiY3RcIiwgdGhpcy5jdEN1c3RvbURhdGEpO1xuICAgIHRoaXMuZ2V0Q2hhdGJvdEJzKCkuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0luaXRpYWxpemluZyBDaGF0Ym90LicpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVDaGF0Ym90KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRDaGF0Ym90QnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdENoYXRib3Q7XG4gIH1cblxuICBpbml0aWFsaXplKCkge1xuICAgIHRoaXMuaW5pdENoYXRib3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGxvYWRTY3JpcEFuZFN0eWxlKCkge1xuICAgIGlmICghTGliQ29uc3RhbnRzLnByb2R1Y3Rpb24gJiYgdGhpcy5zaG93Q2hhdGJvdCkgeyAvL3NldCB0aGlzIHByb3BlcnR5IHRvIHRydWUgaWYgeW91IHdhbnQgdG8gdGVzdCB0aGlzIGluIGxvY2FsIGVudi5cbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ05vdCBMb2FkaW5nIENoYXRib3QgYXMgY3VycmVudCBlbnZpcm9ubWVudCBpcyBub3QgcHJvZHVjdGlvbi4gU2V0IFwicHJvZHVjdGlvbj10cnVlXCIgYW5kIFwic2hvd0NoYXRib3Q9dHJ1ZVwiIGlmIHlvdSB3YW50IHRvIHRlc3QgY2hhdGJvdCBpbiBsb2NhbCBlbnYuJyk7XG4gICAgICByZXR1cm47O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdMb2FkaW5nIGNoYXRib3QgLi4uJyk7XG4gICAgfVxuXG4gICAgU2NyaXB0Q29uc3RhbnQuaW1wb3J0VXJscy5mb3JFYWNoKHNjcmlwdEVsZW1lbnQgPT4ge1xuICAgICAgLy8gb3RoZXIgdGhhbiBqcyBhbmQgc3R5bGVzaGVldCBhcmUgaWdub3JlZFxuICAgICAgaWYgKHNjcmlwdEVsZW1lbnQudHlwZSA9PT0gU2NyaXB0Q29uc3RhbnQuanNQcm9wZXJ0eSkge1xuICAgICAgICBjb25zdCBqc1NjcmlwdE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgLy8vLyBqc1NjcmlwdE5vZGUuc3JjID0gZW52aXJvbm1lbnQua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIGpzU2NyaXB0Tm9kZS5zcmMgPSBMaWJDb25zdGFudHMua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG5cbiAgICAgICAganNTY3JpcHROb2RlLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcblxuICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC5hc3luYyA9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhqc1NjcmlwdE5vZGUuc3JjICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmMgYmVjYXVzZSBvZiBudWxsIGFzeW5jIHZhbHVlXCIpO1xuICAgICAgICAgIGpzU2NyaXB0Tm9kZS5hc3luYyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC5hc3luYyA9PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhzY3JpcHRFbGVtZW50LnVybCArIFwiIHdpbGwgYmUgbG9hZGVkIGFzIGFzeW5jIGJlY2F1c2Ugb2YgbnVsbCBhc3luYyB0cnVlXCIpO1xuXG4gICAgICAgICAganNTY3JpcHROb2RlLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKHNjcmlwdEVsZW1lbnQudXJsICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmM9ZmFsc2VcIik7XG5cbiAgICAgICAgICBqc1NjcmlwdE5vZGUuYXN5bmMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0sIGpzU2NyaXB0Tm9kZSk7XG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoanNTY3JpcHROb2RlKTtcbiAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5jc3NQcm9wZXJ0eSkge1xuICAgICAgICBjb25zdCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHN0eWxlTm9kZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIHN0eWxlTm9kZS5ocmVmID0gTGliQ29uc3RhbnRzLmtvcmVBaVdlYlNka1VybCArIHNjcmlwdEVsZW1lbnQudXJsO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0sIHN0eWxlTm9kZSk7XG4gICAgICB9IGVsc2UgaWYgKHNjcmlwdEVsZW1lbnQudHlwZSA9PT0gU2NyaXB0Q29uc3RhbnQuY3NzUHJvcGVydHlBYnNvbHV0ZSkge1xuICAgICAgICBjb25zdCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHN0eWxlTm9kZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIHN0eWxlTm9kZS5ocmVmID0gc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwgc3R5bGVOb2RlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigndXJsICcgKyBzY3JpcHRFbGVtZW50LnVybCArICcgaXMgbm90IGdvaW5nIHRvIGJlIGxvYWRlZCBiZWNhdXNlIG9mIGludmFsaWQgdHlwZSAnICsgc2NyaXB0RWxlbWVudC50eXBlKTtcbiAgICAgIH1cbiAgICB9KTsgLy8gZm9yIGVhY2hcbiAgfVxuXG5cblxuICBwdWJsaWMgaW5pdGlhbGl6ZUNoYXRib3QoKSB7XG4gICAgdGhpcy5vcGVuYm90KCk7XG4gIH1cblxuICAvKioqXG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSB0aGUgY2hhdGJvdCB3aXRoIGxvZ2dlZC1pbiB1c2VyLiBJZiB1c2VyIGlzIG5vdCBsb2dnZWQtaW4gdGhlbiBib3Qgc2Vzc2lvbiB3aWxsIGJlIGNyZWF0ZWQgdXNpbmcgdW5pcXVlIHRpbWVzdGFtcC5cbiAgICovXG4gIG9wZW5ib3QoKSB7XG4gICAgbGV0IHVzZXJJZCA9IG51bGw7XG4gICAgaWYgKHRoaXMubHMuZ2V0VXNlcigpKSB7XG4gICAgICB1c2VySWQgPSB0aGlzLmxzLmdldFVzZXIoKS51c2VybmFtZSArICdfJyArIHRoaXMubHMuZ2V0VXNlcigpLnVzZXJUeXBlO1xuICAgICAgdGhpcy5ib3RPcHRpb25zLmFjY2Vzc1Rva2VuID0gdGhpcy5scy5nZXRVc2VyKCkuYWNjZXNzX3Rva2VuO1xuICAgIH0gZWxzZSB7XG4gICAgICB1c2VySWQgPSBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDApICsgMSkgKyBcIl9cIiArIG5ldyBEYXRlKCkuZ2V0TWlsbGlzZWNvbmRzKCkgKyBcIkBtZGVzLm1zLmdvdlwiO1xuICAgIH1cbiAgICAvLyoqKkNPREVfU1RBUlRcbiAgICB0aGlzLmJvdE9wdGlvbnMubG9nTGV2ZWwgPSAnZGVidWcnO1xuICAgIHRoaXMuYm90T3B0aW9ucy5rb3JlQVBJVXJsID0gTGliQ29uc3RhbnRzLmtvcmVBaUNoYXRib3RTZXJ2ZXI7XG4gICAgLy9ib3RPcHRpb25zLmtvcmVTcGVlY2hBUElVcmwgPSBcImh0dHBzOi8vc3BlZWNoLmtvcmUuYWkvXCI7XG4gICAgLy9ib3RPcHRpb25zLmJlYXJlciA9IFwiYmVhcmVyIHh5ei0tLS0tLS0tLS0tLS0tLS0tLS1cIjtcbiAgICAvL2JvdE9wdGlvbnMudHRzU29ja2V0VXJsID0gJ3dzczovL3NwZWVjaC5rb3JlLmFpL3R0cy93cyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLnJlY29yZGVyV29ya2VyUGF0aCA9ICcuL2xpYnMvcmVjb3JkZXJXb3JrZXIuanMnO1xuICAgIHRoaXMuYm90T3B0aW9ucy5hc3NlcnRpb25GbiA9IChvcHRpb25zLCBjYWxsYmFjaykgPT4gdGhpcy5hc3NlcnRpb24ob3B0aW9ucywgY2FsbGJhY2spO1xuICAgIC8vYm90T3B0aW9ucy5rb3JlQW5vbnltb3VzRm4gPSBrb3JlQW5vbnltb3VzRm47XG5cbiAgICB0aGlzLmJvdE9wdGlvbnMuSldUVXJsID0gTGliQ29uc3RhbnRzLmtvcmVBaUp3dFNlcnZpY2U7XG4gICAgXG4gICAgdGhpcy5ib3RPcHRpb25zLnVzZXJJZGVudGl0eSA9IHVzZXJJZDsvLyBQcm92aWRlIHVzZXJzIGVtYWlsIGlkIGhlcmVcbiAgICB0aGlzLmJvdE9wdGlvbnMuYm90SW5mbyA9IHtcbiAgICAgIG5hbWU6IExpYkNvbnN0YW50cy5rb3JlQWlCb3ROYW1lLFxuICAgICAgXCJfaWRcIjogTGliQ29uc3RhbnRzLmtvcmVBaUJvdElkLFxuICAgICAgY3VzdG9tRGF0YSA6IHRoaXMubWFwLmdldCh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSkgPyB0aGlzLm1hcC5nZXQodGhpcy51dGlsLmdldFN0YXRlTG93ZXJjYXNlKCkpIDogdGhpcy5tYXAuZ2V0KCdtcycpLFxuICAgICAgLy8gY3VzdG9tRGF0YTogeyBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95TUUuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1FIHJlbGF0ZWQgcXVlcmllcy5cIiwgaG92ZXJNZXNzYWdlOiBcIkFzayBCbHVlXCIsIGJvdFN0YXRlOiBcIk1FXCIsIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IGZhbHNlLCBzaG93RGlzY2xhaW1lclBvcFVwOiB0cnVlLCBib3RJY29uSW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLCBib3RBdmF0YXJJbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsIHJvb3RGaWxlUGF0aDogXCJVSS9cIiwgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbXCJlblwiLCBcImVzXCJdLCBpbml0aWFsTGFuZ3VhZ2U6IFwiZW5cIiwgZGlzY2xhaW1lclBvcHVwOiB7IGhlYWRlcjogXCJJbXBvcnRhbnQgTWVzc2FnZVwiLCBtZXNzYWdlOiBgVGhlIHZpcnR1YWwgYXNzaXN0YW50IHdpbGwgbmVlZCB0byBhc2sgZm9yIHNwZWNpZmljIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uIHRoYXQgaXMgbmVlZGVkIHRvIGFuc3dlciB5b3UgcXVlc3Rpb24ocykgc3VjaCBhcyBkYXRlIG9mIGJpcnRoIG9yIFNvY2lhbCBTZWN1cml0eSBudW1iZXIuIFRoZSBhZ2VuY3kgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIFRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uLCBpZiB5b3UgYXJlIG9uIGEgcHVibGljIGNvbXB1dGVyLCBwbGVhc2UgbG9nIG91dCBhbmQgY2xvc2UgeW91ciBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC5gLCB9LCBoZWFkZXJDb25maWc6IHsgc2hvd0xhbmd1YWdlVG9nZ2xlOiB0cnVlLCBzaG93TWluaW1pemVCdXR0b246IHRydWUsIHNob3dFeHBhbmRidXR0b246IGZhbHNlLCBzaG93UmVsb2FkQnV0dG9uOiB0cnVlLCB9IH1cbiAgICB9OyAvLyBib3QgbmFtZSBpcyBjYXNlIHNlbnNpdGl2ZVxuICAgIC8vdGhpcy5ib3RPcHRpb25zLmNsaWVudFNlY3JldCA9IExpYkNvbnN0YW50cy5rb3JlQWlDbGllbnRTZWNyZXQ7XG5cbiAgICAvL3RoaXMuYm90T3B0aW9ucy5yZWVtcGxveVVzQmVhcmVyVG9rZW49IFwiXCI7ICBcbiAgICAvLyB3aWxsIG5lZWQgdG8gcGFzcyB0b2tlbiB0byBrb3JlQWlDaGF0Qm90U2VydmVyIHdoZW4gYXV0aGVudGljYXRpb24gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIGZvciBzZXJ2ZXIgc2lkZSBhcGkgY2FsbFxuXG4gICAgdmFyIGNoYXRDb25maWcgPSB7XG4gICAgICBib3RPcHRpb25zOiB0aGlzLmJvdE9wdGlvbnMsXG4gICAgICBhbGxvd0lmcmFtZTogZmFsc2UsXG4gICAgICBpc1NlbmRCdXR0b246IHRydWUsXG4gICAgICBpc1RUU0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgaXNTcGVlY2hFbmFibGVkOiBmYWxzZSxcbiAgICAgIGFsbG93R29vZ2xlU3BlZWNoOiBmYWxzZSxcbiAgICAgIGFsbG93TG9jYXRpb246IGZhbHNlLFxuICAgICAgbG9hZEhpc3Rvcnk6IGZhbHNlLFxuICAgICAgbWVzc2FnZUhpc3RvcnlMaW1pdDogMTAsXG4gICAgICBhdXRvRW5hYmxlU3BlZWNoQW5kVFRTOiBmYWxzZSxcbiAgICAgIGdyYXBoTGliOiBcImQzXCJcbiAgICB9O1xuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmtvcmVCb3QpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5rb3JlQm90ID0ga29yZUJvdENoYXQoKTtcbiAgICAgIHRoaXMua29yZUJvdC5zaG93KGNoYXRDb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtvcmVCb3QucmVzdW1lQ2hhdFdpbmRvdygpXG4gICAgfVxuICAgIC8vKioqQ09ERV9FTkRcblxuICB9XG5cbiAgYXNzZXJ0aW9uKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGpzb25EYXRhID0ge1xuICAgICAgXCJib3RJZFwiOiBMaWJDb25zdGFudHMua29yZUFpQm90SWQsXG4gICAgICBcImlkZW50aXR5XCI6IG9wdGlvbnMudXNlcklkZW50aXR5IHx8IHRoaXMuYm90T3B0aW9ucy51c2VySWRlbnRpdHksXG4gICAgICBcImF1ZFwiOiBcIlwiLFxuICAgICAgXCJpc0Fub255bW91c1wiOiAodGhpcy5scy5nZXRVc2VyKCkgPT0gbnVsbCksXG4gICAgICBcImFjY2Vzc1Rva2VuXCI6IHRoaXMuYm90T3B0aW9ucy5hY2Nlc3NUb2tlblxuICAgIH07XG4gICAgJC5hamF4KHtcbiAgICAgIHVybDogdGhpcy5ib3RPcHRpb25zLkpXVFVybCxcbiAgICAgIHR5cGU6ICdwb3N0JyxcbiAgICAgIGRhdGE6IGpzb25EYXRhLFxuICAgICAgZGF0YVR5cGU6ICdqc29uJyxcbiAgICAgIHN1Y2Nlc3M6IChkYXRhKSA9PiB7XG4gICAgICAgIG9wdGlvbnMuYXNzZXJ0aW9uID0gZGF0YS5qd3Q7XG4gICAgICAgIG9wdGlvbnMuaGFuZGxlRXJyb3IgPSB0aGlzLmtvcmVCb3Quc2hvd0Vycm9yO1xuICAgICAgICBvcHRpb25zLmNoYXRIaXN0b3J5ID0gdGhpcy5rb3JlQm90LmNoYXRIaXN0b3J5O1xuICAgICAgICBvcHRpb25zLmJvdERldGFpbHMgPSB0aGlzLmtvcmVCb3QuYm90RGV0YWlscztcbiAgICAgICAgY2FsbGJhY2sobnVsbCwgb3B0aW9ucyk7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICh0aGlzLmtvcmVCb3QgJiYgdGhpcy5rb3JlQm90LmluaXRUb2tlbikge1xuICAgICAgICAgICAgdGhpcy5rb3JlQm90LmluaXRUb2tlbihvcHRpb25zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDIwMDApO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMua29yZUJvdC5zaG93RXJyb3IoZXJyLnJlc3BvbnNlVGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jaGF0Ym90L2NoYXRib3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBcUNoRCxNQUFNLE9BQU8sY0FBYztJQW1GekIsWUFBWSxlQUFpQyxFQUFVLE1BQXFCLEVBQVUsRUFBZ0IsRUFBVSxJQUFpQjtRQUExRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqRmpJLFFBQUcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV6QyxpQkFBWSxHQUFlO1lBQ3pCLGlCQUFpQixFQUFFLDJGQUEyRjtZQUM5RyxZQUFZLEVBQUUsY0FBYztZQUM1QixRQUFRLEVBQUUsSUFBSTtZQUNkLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGtCQUFrQixFQUFFLGdCQUFnQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDMUIsZUFBZSxFQUFFLElBQUk7WUFDckIsNkRBQTZEO1lBQzdELGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixP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QUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUM3QixPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUM3QyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUMvQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2dCQUM3QyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN4QixVQUFVLENBQUM7b0JBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO3dCQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDakM7Z0JBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrRUF4UFUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNOztpRkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyaXB0Q29uc3RhbnQgfSBmcm9tICcuL3NjcmlwdC5jb25zdCc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbC91dGlsLnNlcnZpY2UnO1xuXG5kZWNsYXJlIGNvbnN0IGtvcmVCb3RDaGF0OiBhbnk7XG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuaW50ZXJmYWNlIERpc2NsYWltZXJQb3B1cCB7XG4gIGhlYWRlcjogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmdcbn1cbmludGVyZmFjZSBIZWFkZXJDb25maWcge1xuICBzaG93TGFuZ3VhZ2VUb2dnbGU6IGJvb2xlYW47XG4gIHNob3dNaW5pbWl6ZUJ1dHRvbjogYm9vbGVhbjtcbiAgc2hvd0V4cGFuZEJ1dHRvbjogYm9vbGVhbjtcbiAgc2hvd1JlbG9hZEJ1dHRvbjogYm9vbGVhbjtcbn1cbmludGVyZmFjZSBDdXN0b21EYXRhIHtcbiAgY29ubmVjdGluZ01lc3NhZ2U6IHN0cmluZztcbiAgaG92ZXJNZXNzYWdlOiBzdHJpbmc7XG4gIGJvdFN0YXRlOiBzdHJpbmc7XG4gIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IGJvb2xlYW47XG4gIHNob3dEaXNjbGFpbWVyUG9wVXA6IGJvb2xlYW47XG4gIHNob3dDaGF0QnViYmxlQXRDbG9zZWQ6IGJvb2xlYW47XG4gIGJvdEF2YXRhckltYWdlTmFtZTogc3RyaW5nO1xuICBib3RJY29uSW1hZ2VOYW1lOiBzdHJpbmc7XG4gIGZvcm1CYW5uZXJQYXRoOiBzdHJpbmcsXG4gIHJvb3RGaWxlUGF0aDogc3RyaW5nO1xuICBzdXBwb3J0ZWRMYW5ndWFnZXM6IHN0cmluZ1tdO1xuICBpbml0aWFsTGFuZ3VhZ2U6IHN0cmluZztcbiAgZGlzY2xhaW1lclBvcHVwOiBEaXNjbGFpbWVyUG9wdXA7XG4gIGhlYWRlckNvbmZpZzogSGVhZGVyQ29uZmlnO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDaGF0Ym90U2VydmljZSB7XG5cbiAgbWFwOiBNYXA8c3RyaW5nLCBDdXN0b21EYXRhPiA9IG5ldyBNYXAoKTtcblxuICBtc0N1c3RvbURhdGE6IEN1c3RvbURhdGEgPSB7XG4gICAgY29ubmVjdGluZ01lc3NhZ2U6IFwiV2VsY29tZSB0byBSZUVtcGxveU1TLiBJIGFtIHlvdXIgdmlydHVhbCBhc3Npc3RhbnQgdG8gaGVscCB5b3Ugd2l0aCBNREVTIHJlbGF0ZWQgcXVlcmllcy5cIixcbiAgICBob3Zlck1lc3NhZ2U6IFwiQXNrIGNoYXQgYm90XCIsXG4gICAgYm90U3RhdGU6IFwiTVNcIixcbiAgICBzaG93Q29sbGVjdFVzZXJEZXRhaWxGb3JtOiB0cnVlLFxuICAgIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsXG4gICAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogZmFsc2UsXG4gICAgYm90QXZhdGFySW1hZ2VOYW1lOiBcIkF2YXRhckljb24ucG5nXCIsXG4gICAgYm90SWNvbkltYWdlTmFtZTogXCJBdmF0YXJJY29uLnBuZ1wiLFxuICAgIGZvcm1CYW5uZXJQYXRoOiBcIlwiLFxuICAgIHJvb3RGaWxlUGF0aDogXCJVSS9cIixcbiAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCJdLFxuICAgIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLFxuICAgIC8vIHN0YXJ0ZXJUYXNrOiB7ZW46XCJGb3Jnb3QgUGFzc3dvcmRcIiwgZXM6XCJGb3Jnb3QgUGFzc3dvcmRcIn0sXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBNREVTJyB2aXJ0dWFsIGFzc2lzdGFudCB3aWxsIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgU29jaWFsIFNlY3VyaXR5IE51bWJlciBhbmQgRGF0ZSBvZiBCaXJ0aCwgdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykuPC9icj48L2JyPiBNREVTIGZvbGxvd3Mgc3RyaWN0IGZlZGVyYWwgc2VjdXJpdHkgZ3VpZGVsaW5lcyB0byBwcm90ZWN0IHlvdXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLjwvYnI+PC9icj5UbyBmdXJ0aGVyIHByb3RlY3QgeW91ciBpbmZvcm1hdGlvbiB5b3Ugc2hvdWxkIGNsb3NlIHRoZSBjaGF0IHdpbmRvdyBhbmQgYnJvd3NlciB3aGVuIHlvdSBhcmUgZmluaXNoZWQuPC9wPmBcbiAgICB9LFxuICAgIGhlYWRlckNvbmZpZzoge1xuICAgICAgc2hvd0xhbmd1YWdlVG9nZ2xlOiBmYWxzZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93RXhwYW5kQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dSZWxvYWRCdXR0b246IGZhbHNlLFxuICAgIH1cbiAgfVxuXG4gIG1lQ3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95TUUuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1FIHJlbGF0ZWQgcXVlcmllcy5cIixcbiAgICBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIixcbiAgICBib3RTdGF0ZTogXCJNRVwiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IGZhbHNlLFxuICAgIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsXG4gICAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogZmFsc2UsXG4gICAgYm90SWNvbkltYWdlTmFtZTogXCJCbHVlSWNvbi5zdmdcIixcbiAgICBib3RBdmF0YXJJbWFnZU5hbWU6IFwiQmx1ZUljb24uc3ZnXCIsXG4gICAgZm9ybUJhbm5lclBhdGg6IFwiXCIsXG4gICAgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogW1wiZW5cIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBNRURPTCdzIHZpcnR1YWwgYXNzaXN0YW50IG1heSBhc2sgeW91IHNwZWNpZmljIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLCBzdWNoIGFzIFNvY2lhbCBTZWN1cml0eSBOdW1iZXIgYW5kIERhdGUgb2YgQmlydGgsIHRoYXQgaXMgbmVlZGVkIHRvIGFuc3dlciB5b3VyIHF1ZXN0aW9uKHMpLiBNRSBET0wgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIFRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgY2xvc2UgdGhlIGNoYXQgd2luZG93IGFuZCBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC5gXG4gICAgfSxcbiAgICBoZWFkZXJDb25maWc6IHtcbiAgICAgIHNob3dMYW5ndWFnZVRvZ2dsZTogZmFsc2UsXG4gICAgICBzaG93TWluaW1pemVCdXR0b246IHRydWUsXG4gICAgICBzaG93RXhwYW5kQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dSZWxvYWRCdXR0b246IHRydWUsXG4gICAgfVxuICB9XG4gIGN0Q3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95Q1QuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1FIHJlbGF0ZWQgcXVlcmllcy5cIixcbiAgICBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIixcbiAgICBib3RTdGF0ZTogXCJDVFwiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IHRydWUsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLFxuICAgIGJvdEF2YXRhckltYWdlTmFtZTogXCJjaGF0Ym90aWNvbi5wbmdcIixcbiAgICBmb3JtQmFubmVyUGF0aDogXCJcIixcbiAgICByb290RmlsZVBhdGg6IFwiVUkvXCIsXG4gICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbXCJlblwiLCBcImVzXCJdLFxuICAgIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLFxuICAgIGRpc2NsYWltZXJQb3B1cDoge1xuICAgICAgaGVhZGVyOiBcIkltcG9ydGFudCBtZXNzYWdlXCIsXG4gICAgICBtZXNzYWdlOiBgVGhlIENURE9MIHZpcnR1YWwgYXNzaXN0YW50IHdpbGwgbmVlZCB0byBhc2sgZm9yIHNwZWNpZmljIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uIHRoYXQgaXMgbmVlZGVkIHRvIGFuc3dlciB5b3VyIHF1ZXN0aW9uKHMpIHN1Y2ggYXMgZGF0ZSBvZiBiaXJ0aCBvciBTb2NpYWwgU2VjdXJpdHkgbnVtYmVyLiBUaGUgYWdlbmN5IGZvbGxvd3Mgc3RyaWN0IGZlZGVyYWwgc2VjdXJpdHkgZ3VpZGVsaW5lcyB0byBwcm90ZWN0IHlvdXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLiBUbyBmdXJ0aGVyIHByb3RlY3QgeW91ciBpbmZvcm1hdGlvbiwgaWYgeW91IGFyZSBvbiBhIHB1YmxpYyBjb21wdXRlciwgcGxlYXNlIGxvZyBvdXQgYW5kIGNsb3NlIHlvdXIgYnJvd3NlciB3aGVuIHlvdSBhcmUgZmluaXNoZWQuYFxuICAgIH0sXG4gICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICBzaG93TGFuZ3VhZ2VUb2dnbGU6IHRydWUsXG4gICAgICBzaG93TWluaW1pemVCdXR0b246IHRydWUsXG4gICAgICBzaG93RXhwYW5kQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dSZWxvYWRCdXR0b246IHRydWUsXG4gICAgfVxuICB9XG4gIHB1YmxpYyBib3RPcHRpb25zOiBhbnkgPSB7fTtcbiAgcHVibGljIGtvcmVCb3Q6IGFueSA9IHt9O1xuICBpbml0Q2hhdGJvdDogQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgcHVibGljIHNob3dDaGF0Ym90OiBib29sZWFuID0gKExpYkNvbnN0YW50cy5lbmFibGVDaGF0Ym90ID09ICd0cnVlJyk7XG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByaXZhdGUgbHM6IExvZ2luU2VydmljZSwgcHJpdmF0ZSB1dGlsOiBVdGlsU2VydmljZSkge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnQ2hhdGJvdFNlcnZpY2UgaW5pdGlhbGl6emVkIHN1Y2Nlc3NmdWxseS4nKTtcblxuICAgIHRoaXMubWFwLnNldChcIm1zXCIsIHRoaXMubXNDdXN0b21EYXRhKTtcbiAgICB0aGlzLm1hcC5zZXQoXCJtZVwiLCB0aGlzLm1lQ3VzdG9tRGF0YSk7XG4gICAgdGhpcy5tYXAuc2V0KFwiY3RcIiwgdGhpcy5jdEN1c3RvbURhdGEpO1xuICAgIHRoaXMuZ2V0Q2hhdGJvdEJzKCkuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0luaXRpYWxpemluZyBDaGF0Ym90LicpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVDaGF0Ym90KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRDaGF0Ym90QnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdENoYXRib3Q7XG4gIH1cblxuICBpbml0aWFsaXplKCkge1xuICAgIHRoaXMuaW5pdENoYXRib3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGxvYWRTY3JpcEFuZFN0eWxlKCkge1xuICAgIGlmICghTGliQ29uc3RhbnRzLnByb2R1Y3Rpb24gJiYgdGhpcy5zaG93Q2hhdGJvdCkgeyAvL3NldCB0aGlzIHByb3BlcnR5IHRvIHRydWUgaWYgeW91IHdhbnQgdG8gdGVzdCB0aGlzIGluIGxvY2FsIGVudi5cbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ05vdCBMb2FkaW5nIENoYXRib3QgYXMgY3VycmVudCBlbnZpcm9ubWVudCBpcyBub3QgcHJvZHVjdGlvbi4gU2V0IFwicHJvZHVjdGlvbj10cnVlXCIgYW5kIFwic2hvd0NoYXRib3Q9dHJ1ZVwiIGlmIHlvdSB3YW50IHRvIHRlc3QgY2hhdGJvdCBpbiBsb2NhbCBlbnYuJyk7XG4gICAgICByZXR1cm47O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdMb2FkaW5nIGNoYXRib3QgLi4uJyk7XG4gICAgfVxuXG4gICAgU2NyaXB0Q29uc3RhbnQuaW1wb3J0VXJscy5mb3JFYWNoKHNjcmlwdEVsZW1lbnQgPT4ge1xuICAgICAgLy8gb3RoZXIgdGhhbiBqcyBhbmQgc3R5bGVzaGVldCBhcmUgaWdub3JlZFxuICAgICAgaWYgKHNjcmlwdEVsZW1lbnQudHlwZSA9PT0gU2NyaXB0Q29uc3RhbnQuanNQcm9wZXJ0eSkge1xuICAgICAgICBjb25zdCBqc1NjcmlwdE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgLy8vLyBqc1NjcmlwdE5vZGUuc3JjID0gZW52aXJvbm1lbnQua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIGpzU2NyaXB0Tm9kZS5zcmMgPSBMaWJDb25zdGFudHMua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG5cbiAgICAgICAganNTY3JpcHROb2RlLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcblxuICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC5hc3luYyA9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhqc1NjcmlwdE5vZGUuc3JjICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmMgYmVjYXVzZSBvZiBudWxsIGFzeW5jIHZhbHVlXCIpO1xuICAgICAgICAgIGpzU2NyaXB0Tm9kZS5hc3luYyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC5hc3luYyA9PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhzY3JpcHRFbGVtZW50LnVybCArIFwiIHdpbGwgYmUgbG9hZGVkIGFzIGFzeW5jIGJlY2F1c2Ugb2YgbnVsbCBhc3luYyB0cnVlXCIpO1xuXG4gICAgICAgICAganNTY3JpcHROb2RlLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKHNjcmlwdEVsZW1lbnQudXJsICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmM9ZmFsc2VcIik7XG5cbiAgICAgICAgICBqc1NjcmlwdE5vZGUuYXN5bmMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0sIGpzU2NyaXB0Tm9kZSk7XG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoanNTY3JpcHROb2RlKTtcbiAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5jc3NQcm9wZXJ0eSkge1xuICAgICAgICBjb25zdCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHN0eWxlTm9kZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIHN0eWxlTm9kZS5ocmVmID0gTGliQ29uc3RhbnRzLmtvcmVBaVdlYlNka1VybCArIHNjcmlwdEVsZW1lbnQudXJsO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0sIHN0eWxlTm9kZSk7XG4gICAgICB9IGVsc2UgaWYgKHNjcmlwdEVsZW1lbnQudHlwZSA9PT0gU2NyaXB0Q29uc3RhbnQuY3NzUHJvcGVydHlBYnNvbHV0ZSkge1xuICAgICAgICBjb25zdCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHN0eWxlTm9kZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIHN0eWxlTm9kZS5ocmVmID0gc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwgc3R5bGVOb2RlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigndXJsICcgKyBzY3JpcHRFbGVtZW50LnVybCArICcgaXMgbm90IGdvaW5nIHRvIGJlIGxvYWRlZCBiZWNhdXNlIG9mIGludmFsaWQgdHlwZSAnICsgc2NyaXB0RWxlbWVudC50eXBlKTtcbiAgICAgIH1cbiAgICB9KTsgLy8gZm9yIGVhY2hcbiAgfVxuXG5cblxuICBwdWJsaWMgaW5pdGlhbGl6ZUNoYXRib3QoKSB7XG4gICAgdGhpcy5vcGVuYm90KCk7XG4gIH1cblxuICAvKioqXG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSB0aGUgY2hhdGJvdCB3aXRoIGxvZ2dlZC1pbiB1c2VyLiBJZiB1c2VyIGlzIG5vdCBsb2dnZWQtaW4gdGhlbiBib3Qgc2Vzc2lvbiB3aWxsIGJlIGNyZWF0ZWQgdXNpbmcgdW5pcXVlIHRpbWVzdGFtcC5cbiAgICovXG4gIG9wZW5ib3QoKSB7XG4gICAgbGV0IHVzZXJJZCA9IG51bGw7XG4gICAgaWYgKHRoaXMubHMuZ2V0VXNlcigpKSB7XG4gICAgICB1c2VySWQgPSB0aGlzLmxzLmdldFVzZXIoKS51c2VybmFtZSArICdfJyArIHRoaXMubHMuZ2V0VXNlcigpLnVzZXJUeXBlO1xuICAgICAgdGhpcy5ib3RPcHRpb25zLmFjY2Vzc1Rva2VuID0gdGhpcy5scy5nZXRVc2VyKCkuYWNjZXNzX3Rva2VuO1xuICAgIH0gZWxzZSB7XG4gICAgICB1c2VySWQgPSBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDApICsgMSkgKyBcIl9cIiArIG5ldyBEYXRlKCkuZ2V0TWlsbGlzZWNvbmRzKCkgKyBcIkBtYWluZS5nb3ZcIjtcbiAgICB9XG4gICAgLy8qKipDT0RFX1NUQVJUXG4gICAgdGhpcy5ib3RPcHRpb25zLmxvZ0xldmVsID0gJ2RlYnVnJztcbiAgICB0aGlzLmJvdE9wdGlvbnMua29yZUFQSVVybCA9IExpYkNvbnN0YW50cy5rb3JlQWlDaGF0Ym90U2VydmVyO1xuICAgIC8vYm90T3B0aW9ucy5rb3JlU3BlZWNoQVBJVXJsID0gXCJodHRwczovL3NwZWVjaC5rb3JlLmFpL1wiO1xuICAgIC8vYm90T3B0aW9ucy5iZWFyZXIgPSBcImJlYXJlciB4eXotLS0tLS0tLS0tLS0tLS0tLS0tXCI7XG4gICAgLy9ib3RPcHRpb25zLnR0c1NvY2tldFVybCA9ICd3c3M6Ly9zcGVlY2gua29yZS5haS90dHMvd3MnO1xuICAgIHRoaXMuYm90T3B0aW9ucy5yZWNvcmRlcldvcmtlclBhdGggPSAnLi9saWJzL3JlY29yZGVyV29ya2VyLmpzJztcbiAgICB0aGlzLmJvdE9wdGlvbnMuYXNzZXJ0aW9uRm4gPSAob3B0aW9ucywgY2FsbGJhY2spID0+IHRoaXMuYXNzZXJ0aW9uKG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAvL2JvdE9wdGlvbnMua29yZUFub255bW91c0ZuID0ga29yZUFub255bW91c0ZuO1xuXG4gICAgdGhpcy5ib3RPcHRpb25zLkpXVFVybCA9IExpYkNvbnN0YW50cy5rb3JlQWlKd3RTZXJ2aWNlO1xuICAgIHRoaXMuYm90T3B0aW9ucy51c2VySWRlbnRpdHkgPSB1c2VySWQ7Ly8gUHJvdmlkZSB1c2VycyBlbWFpbCBpZCBoZXJlXG4gICAgdGhpcy5ib3RPcHRpb25zLmJvdEluZm8gPSB7XG4gICAgICBuYW1lOiBMaWJDb25zdGFudHMua29yZUFpQm90TmFtZSxcbiAgICAgIFwiX2lkXCI6IExpYkNvbnN0YW50cy5rb3JlQWlCb3RJZCxcbiAgICAgIGN1c3RvbURhdGEgOiB0aGlzLm1hcC5nZXQodGhpcy51dGlsLmdldFN0YXRlTG93ZXJjYXNlKCkpID8gdGhpcy5tYXAuZ2V0KHRoaXMudXRpbC5nZXRTdGF0ZUxvd2VyY2FzZSgpKSA6IHRoaXMubWFwLmdldCgnbXMnKSxcbiAgICAgIC8vIGN1c3RvbURhdGE6IHsgY29ubmVjdGluZ01lc3NhZ2U6IFwiV2VsY29tZSB0byBSZUVtcGxveU1FLiBJIGFtIHlvdXIgdmlydHVhbCBhc3Npc3RhbnQgdG8gaGVscCB5b3Ugd2l0aCBNRSByZWxhdGVkIHF1ZXJpZXMuXCIsIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLCBib3RTdGF0ZTogXCJNRVwiLCBzaG93Q29sbGVjdFVzZXJEZXRhaWxGb3JtOiBmYWxzZSwgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSwgYm90SWNvbkltYWdlTmFtZTogXCJjaGF0Ym90aWNvbi5wbmdcIiwgYm90QXZhdGFySW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLCByb290RmlsZVBhdGg6IFwiVUkvXCIsIHN1cHBvcnRlZExhbmd1YWdlczogW1wiZW5cIiwgXCJlc1wiXSwgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsIGRpc2NsYWltZXJQb3B1cDogeyBoZWFkZXI6IFwiSW1wb3J0YW50IE1lc3NhZ2VcIiwgbWVzc2FnZTogYFRoZSB2aXJ0dWFsIGFzc2lzdGFudCB3aWxsIG5lZWQgdG8gYXNrIGZvciBzcGVjaWZpYyBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiB0aGF0IGlzIG5lZWRlZCB0byBhbnN3ZXIgeW91IHF1ZXN0aW9uKHMpIHN1Y2ggYXMgZGF0ZSBvZiBiaXJ0aCBvciBTb2NpYWwgU2VjdXJpdHkgbnVtYmVyLiBUaGUgYWdlbmN5IGZvbGxvd3Mgc3RyaWN0IGZlZGVyYWwgc2VjdXJpdHkgZ3VpZGVsaW5lcyB0byBwcm90ZWN0IHlvdXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLiBUbyBmdXJ0aGVyIHByb3RlY3QgeW91ciBpbmZvcm1hdGlvbiwgaWYgeW91IGFyZSBvbiBhIHB1YmxpYyBjb21wdXRlciwgcGxlYXNlIGxvZyBvdXQgYW5kIGNsb3NlIHlvdXIgYnJvd3NlciB3aGVuIHlvdSBhcmUgZmluaXNoZWQuYCwgfSwgaGVhZGVyQ29uZmlnOiB7IHNob3dMYW5ndWFnZVRvZ2dsZTogdHJ1ZSwgc2hvd01pbmltaXplQnV0dG9uOiB0cnVlLCBzaG93RXhwYW5kYnV0dG9uOiBmYWxzZSwgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSwgfSB9XG4gICAgfTsgLy8gYm90IG5hbWUgaXMgY2FzZSBzZW5zaXRpdmVcbiAgICAvL3RoaXMuYm90T3B0aW9ucy5jbGllbnRTZWNyZXQgPSBMaWJDb25zdGFudHMua29yZUFpQ2xpZW50U2VjcmV0O1xuICAgIGNvbnNvbGUubG9nKFwiY3VzdG9tZGF0YSBcIix0aGlzLmJvdE9wdGlvbnMuYm90SW5mby5jdXN0b21EYXRhKVxuICAgIC8vdGhpcy5ib3RPcHRpb25zLnJlZW1wbG95VXNCZWFyZXJUb2tlbj0gXCJcIjsgIFxuICAgIC8vIHdpbGwgbmVlZCB0byBwYXNzIHRva2VuIHRvIGtvcmVBaUNoYXRCb3RTZXJ2ZXIgd2hlbiBhdXRoZW50aWNhdGlvbiBuZWVkcyB0byBiZSB2YWxpZGF0ZWQgZm9yIHNlcnZlciBzaWRlIGFwaSBjYWxsXG5cbiAgICB2YXIgY2hhdENvbmZpZyA9IHtcbiAgICAgIGJvdE9wdGlvbnM6IHRoaXMuYm90T3B0aW9ucyxcbiAgICAgIGFsbG93SWZyYW1lOiBmYWxzZSxcbiAgICAgIGlzU2VuZEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGlzVFRTRW5hYmxlZDogZmFsc2UsXG4gICAgICBpc1NwZWVjaEVuYWJsZWQ6IGZhbHNlLFxuICAgICAgYWxsb3dHb29nbGVTcGVlY2g6IGZhbHNlLFxuICAgICAgYWxsb3dMb2NhdGlvbjogZmFsc2UsXG4gICAgICBsb2FkSGlzdG9yeTogZmFsc2UsXG4gICAgICBtZXNzYWdlSGlzdG9yeUxpbWl0OiAxMCxcbiAgICAgIGF1dG9FbmFibGVTcGVlY2hBbmRUVFM6IGZhbHNlLFxuICAgICAgZ3JhcGhMaWI6IFwiZDNcIlxuICAgIH07XG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMua29yZUJvdCkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmtvcmVCb3QgPSBrb3JlQm90Q2hhdCgpO1xuICAgICAgdGhpcy5rb3JlQm90LnNob3coY2hhdENvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua29yZUJvdC5yZXN1bWVDaGF0V2luZG93KClcbiAgICB9XG4gICAgLy8qKipDT0RFX0VORFxuXG4gIH1cblxuICBhc3NlcnRpb24ob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICB2YXIganNvbkRhdGEgPSB7XG4gICAgICBcImJvdElkXCI6IExpYkNvbnN0YW50cy5rb3JlQWlCb3RJZCxcbiAgICAgIFwiaWRlbnRpdHlcIjogb3B0aW9ucy51c2VySWRlbnRpdHkgfHwgdGhpcy5ib3RPcHRpb25zLnVzZXJJZGVudGl0eSxcbiAgICAgIFwiYXVkXCI6IFwiXCIsXG4gICAgICBcImlzQW5vbnltb3VzXCI6ICh0aGlzLmxzLmdldFVzZXIoKSA9PSBudWxsKSxcbiAgICAgIFwiYWNjZXNzVG9rZW5cIjogdGhpcy5ib3RPcHRpb25zLmFjY2Vzc1Rva2VuXG4gICAgfTtcbiAgICAkLmFqYXgoe1xuICAgICAgdXJsOiB0aGlzLmJvdE9wdGlvbnMuSldUVXJsLFxuICAgICAgdHlwZTogJ3Bvc3QnLFxuICAgICAgZGF0YToganNvbkRhdGEsXG4gICAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgICAgc3VjY2VzczogKGRhdGEpID0+IHtcbiAgICAgICAgb3B0aW9ucy5hc3NlcnRpb24gPSBkYXRhLmp3dDtcbiAgICAgICAgb3B0aW9ucy5oYW5kbGVFcnJvciA9IHRoaXMua29yZUJvdC5zaG93RXJyb3I7XG4gICAgICAgIG9wdGlvbnMuY2hhdEhpc3RvcnkgPSB0aGlzLmtvcmVCb3QuY2hhdEhpc3Rvcnk7XG4gICAgICAgIG9wdGlvbnMuYm90RGV0YWlscyA9IHRoaXMua29yZUJvdC5ib3REZXRhaWxzO1xuICAgICAgICBjYWxsYmFjayhudWxsLCBvcHRpb25zKTtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKHRoaXMua29yZUJvdCAmJiB0aGlzLmtvcmVCb3QuaW5pdFRva2VuKSB7XG4gICAgICAgICAgICB0aGlzLmtvcmVCb3QuaW5pdFRva2VuKG9wdGlvbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMjAwMCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgdGhpcy5rb3JlQm90LnNob3dFcnJvcihlcnIucmVzcG9uc2VUZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19