tango-app-ui-analyse-trax 3.7.59 → 3.7.60

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.
@@ -105,7 +105,6 @@ export class ChecklistPopupComponent {
105
105
  error.push(`Invalid Answer Options - D${index + 2}`);
106
106
  }
107
107
  let qName = ele?.["Section Name"]?.trim().toLowerCase() + ele?.["Question"]?.trim().toLowerCase();
108
- console.log(qName);
109
108
  if (!questionList.includes(qName)) {
110
109
  questionList.push(qName);
111
110
  }
@@ -113,7 +112,6 @@ export class ChecklistPopupComponent {
113
112
  error.push(`${ele?.["Question"]?.trim()} question is Duplicated`);
114
113
  }
115
114
  });
116
- console.log(questionList);
117
115
  if (error.length) {
118
116
  const popupcontent = {
119
117
  displayprop: false,
@@ -147,13 +145,13 @@ export class ChecklistPopupComponent {
147
145
  if (!acc?.[sectionName]) {
148
146
  sectionNumber++;
149
147
  acc[`${sectionName}`] = {
150
- name: ele["Section Name"],
148
+ name: ele["Section Name"]?.trim(),
151
149
  sectionNumber: sectionNumber,
152
150
  questions: [
153
151
  {
154
152
  qno: 1,
155
- qname: ele["Question"],
156
- oldQname: ele["Question"],
153
+ qname: ele["Question"]?.trim(),
154
+ oldQname: ele["Question"]?.trim(),
157
155
  answerType: answerType[`${ele["Answer Type"]}`],
158
156
  answers: this.findAnswer(answerType[`${ele["Answer Type"]}`], ele["Answer Options"]),
159
157
  runAI: false,
@@ -175,8 +173,8 @@ export class ChecklistPopupComponent {
175
173
  else {
176
174
  acc[`${sectionName}`].questions.push({
177
175
  qno: acc[`${sectionName}`].questions.length + 1,
178
- qname: ele["Question"],
179
- oldQname: ele["Question"],
176
+ qname: ele["Question"]?.trim(),
177
+ oldQname: ele["Question"]?.trim(),
180
178
  answerType: answerType[`${ele["Answer Type"]}`],
181
179
  answers: this.findAnswer(answerType[`${ele["Answer Type"]}`], ele["Answer Options"]),
182
180
  runAI: false,
@@ -240,8 +238,8 @@ export class ChecklistPopupComponent {
240
238
  return;
241
239
  }
242
240
  let params = {
243
- checklistName: this.checklistForm.value.name,
244
- checklistDescription: this.checklistForm.value.description,
241
+ checklistName: this.checklistForm.value.name?.trim(),
242
+ checklistDescription: this.checklistForm.value.description?.trim(),
245
243
  sections: this.sectionDetails,
246
244
  clientId: this.clientId,
247
245
  submitType: "save",
@@ -557,8 +555,8 @@ export class ChecklistPopupComponent {
557
555
  return;
558
556
  }
559
557
  let params = {
560
- checklistName: this.checklistData.checkListName,
561
- checklistDescription: this.checklistData.checkListDescription,
558
+ checklistName: this.checklistData.checkListName?.trim(),
559
+ checklistDescription: this.checklistData.checkListDescription?.trim(),
562
560
  sections: this.sectionDetails,
563
561
  clientId: this.checklistData.clientId,
564
562
  submitType: "save",
@@ -607,4 +605,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
607
605
  type: ViewChild,
608
606
  args: ["file1"]
609
607
  }] } });
610
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBbUUsTUFBTSxlQUFlLENBQUM7QUFHN0gsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFNBQVMsRUFBQyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBU3pDLE1BQU0sT0FBTyx1QkFBdUI7SUF1QnhCO0lBQ0E7SUFDQTtJQUNBO0lBQ0Q7SUFDQztJQUNBO0lBNUJWLGFBQWEsQ0FBWTtJQUNoQixRQUFRLENBQVM7SUFDakIsSUFBSSxDQUFTO0lBQ2IsYUFBYSxDQUFNO0lBQ0UsZUFBZSxDQUFNO0lBQ2hDLFNBQVMsQ0FBYztJQUN0QixVQUFVLENBQWM7SUFFNUMsUUFBUSxDQUFNO0lBQ2QsUUFBUSxDQUFNO0lBQ2QsY0FBYyxHQUFRO1FBQ3BCO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsU0FBUyxFQUFFLEVBQUU7U0FDZDtLQUNGLENBQUM7SUFDTSxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixTQUFTLEdBQVEsRUFBRSxDQUFDO0lBQ3BCLFVBQVUsQ0FBTTtJQUVoQixZ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QyxTQUFTOytCQUNFLHFCQUFxQjs4T0FNdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDd0IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ1QsU0FBUztzQkFBM0IsU0FBUzt1QkFBQyxNQUFNO2dCQUNHLFVBQVU7c0JBQTdCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZVwiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1jaGVja2xpc3QtcG9wdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NoZWNrbGlzdC1wb3B1cC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBjaGVja2xpc3RGb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgY2xpZW50SWQ6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2hlY2tsaXN0RGF0YTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJhZnRlclZhbGlkYXRpb25cIikgYWZ0ZXJWYWxpZGF0aW9uOiBhbnk7XHJcbiAgQFZpZXdDaGlsZChcImZpbGVcIikgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZmlsZTFcIikgZmlsZUlucHV0MSE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZmlsZVNpemU6IGFueTtcclxuICBzZWN0aW9uRGV0YWlsczogYW55ID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiBcIlNlY3Rpb24gMVwiLFxyXG4gICAgICBzZWN0aW9uTnVtYmVyOiAxLFxyXG4gICAgICBxdWVzdGlvbnM6IFtdLFxyXG4gICAgfSxcclxuICBdO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBleGNlbERhdGE6IGFueSA9IFtdO1xyXG4gIGV4Y2VsRXJyb3I6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc29wU2VydmljZTogVHJheFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHRoaXMuY2hlY2tsaXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbXCJcIl0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBbXCJcIl0sXHJcbiAgICAgIG1vZGU6IFtcImluZGl2aWR1YWxcIl0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy50eXBlICE9ICdjcmVhdGUnKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tsaXN0Rm9ybS5nZXQoXCJtb2RlXCIpPy5zZXRWYWx1ZShcImJ1bGtcIik7IFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG1vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RGb3JtLnZhbHVlLm1vZGU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RNb2RlKG1vZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jaGVja2xpc3RGb3JtLnBhdGNoVmFsdWUoeyBtb2RlIH0pO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5leGNlbERhdGEgPSBbXTtcclxuICAgIHRoaXMuZXhjZWxFcnJvciA9IG51bGw7XHJcbiAgICB0aGlzLnNlY3Rpb25EZXRhaWxzID0gW107XHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSA8RGF0YVRyYW5zZmVyPmV2ZW50LnRhcmdldDtcclxuICAgIGxldCBpc0V4Y2VsRmlsZSA9ICEhdGFyZ2V0LmZpbGVzWzBdLm5hbWUubWF0Y2goLygueGxzfC54bHN4KS8pO1xyXG4gICAgaWYgKCFpc0V4Y2VsRmlsZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgVXBsb2FkIGEgdmFsaWQgeGxzeCBmaWxlXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzRXhjZWxGaWxlKSB7XHJcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiBcImJpbmFyeVwiIH0pO1xyXG4gICAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgICBjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuICAgICAgICBsZXQgZGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cywgeyBkZWZ2YWw6IFwiXCIgfSk7XHJcbiAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZXhjZWxEYXRhID0gZGF0YTtcclxuICAgICAgICBsZXQgZXJyb3I6IGFueSA9IFtdO1xyXG4gICAgICAgIGxldCBxdWVzdGlvbkxpc3Q6YW55ID0gW107XHJcbiAgICAgICAgdGhpcy5leGNlbERhdGEuZm9yRWFjaCgoZWxlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGlmICghZWxlPy5bXCJTZWN0aW9uIE5hbWVcIl0/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFNlY3Rpb24gTmFtZSAtIEEke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghZWxlPy5bXCJRdWVzdGlvblwiXT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgUXVlc3Rpb24gTmFtZSAtIEIke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghZWxlPy5bXCJBbnN3ZXIgVHlwZVwiXT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgQW5zd2VyIFR5cGUgLSBDJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGVsZT8uW1wiQW5zd2VyIFR5cGVcIl0/LnRyaW0oKSAmJlxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgU2luZ2xlXCIsXHJcbiAgICAgICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgTXVsdGlwbGVcIixcclxuICAgICAgICAgICAgICBcIkRyb3Bkb3duXCIsXHJcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoZWxlPy5bXCJBbnN3ZXIgVHlwZVwiXSkgJiZcclxuICAgICAgICAgICAgIWVsZT8uW1wiQW5zd2VyIE9wdGlvbnNcIl0/LnRyaW0oKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgQW5zd2VyIE9wdGlvbnMgLSBEJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgbGV0IHFOYW1lOnN0cmluZyA9IGVsZT8uW1wiU2VjdGlvbiBOYW1lXCJdPy50cmltKCkudG9Mb3dlckNhc2UoKSArIGVsZT8uW1wiUXVlc3Rpb25cIl0/LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2cocU5hbWUpXHJcbiAgICAgICAgICBpZiAoIXF1ZXN0aW9uTGlzdC5pbmNsdWRlcyhxTmFtZSkpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocU5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYCR7ZWxlPy5bXCJRdWVzdGlvblwiXT8udHJpbSgpfSBxdWVzdGlvbiBpcyBEdXBsaWNhdGVkYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc29sZS5sb2cocXVlc3Rpb25MaXN0KTtcclxuICAgICAgICBpZiAoZXJyb3IubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgICAgICB0aXRsZTogYEludmFsaWQgZGV0YWlscyFgLFxyXG4gICAgICAgICAgICBjb250ZW50OiBgUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBhbmQgY29tcGxldGUgc3RvcmUgaW5mb3JtYXRpb24uYCxcclxuICAgICAgICAgICAgYnV0dG9udHlwZTogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICBlcnJvcjogZXJyb3IsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5leGNlbEVycm9yID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc2VjdGlvbk51bWJlciA9IDA7XHJcbiAgICAgICAgbGV0IGFuc3dlclR5cGU6IGFueSA9IHtcclxuICAgICAgICAgIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCI6IFwiZGVzY3JpcHRpdmVcIixcclxuICAgICAgICAgIFwiQS9CIFF1ZXN0aW9uXCI6IFwieWVzL25vXCIsXHJcbiAgICAgICAgICBcIk11bHRpcGxlIENob2ljZSBTaW5nbGVcIjogXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFxyXG4gICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgTXVsdGlwbGVcIjogXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXHJcbiAgICAgICAgICBcIkNhcHR1cmUgSW1hZ2Ugd2l0aCBEZXNjcmlwdGlvblwiOiBcImRlc2NyaXB0aXZlSW1hZ2VcIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBJbWFnZSBhcyBhbnN3ZXJcIjogXCJpbWFnZVwiLFxyXG4gICAgICAgICAgXCJDYXB0dXJlIHZpZGVvIGFzIGFuc3dlclwiOiBcInZpZGVvXCIsXHJcbiAgICAgICAgICBcIkNhcHR1cmUgTXVsdGlwbGUgSW1hZ2VcIjogXCJtdWx0aXBsZUltYWdlXCIsXHJcbiAgICAgICAgICBEYXRlOiBcImRhdGVcIixcclxuICAgICAgICAgIFwiTGluZWFyIFNjYWxlXCI6IFwibGluZWFyc2NhbGVcIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBJbWFnZS9WaWRlbyBhcyBBbnN3ZXJcIjogXCJpbWFnZS92aWRlb1wiLFxyXG4gICAgICAgICAgVGltZTogXCJ0aW1lXCIsXHJcbiAgICAgICAgICBEcm9wZG93bjogXCJkcm9wZG93blwiLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHNlY0RldGFpbHM6IGFueSA9IGRhdGEucmVkdWNlKChhY2M6IGFueSwgZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBzZWN0aW9uTmFtZSA9IGVsZVtcIlNlY3Rpb24gTmFtZVwiXS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGlmICghYWNjPy5bc2VjdGlvbk5hbWVdKSB7XHJcbiAgICAgICAgICAgIHNlY3Rpb25OdW1iZXIrKztcclxuICAgICAgICAgICAgYWNjW2Ake3NlY3Rpb25OYW1lfWBdID0ge1xyXG4gICAgICAgICAgICAgIG5hbWU6IGVsZVtcIlNlY3Rpb24gTmFtZVwiXSxcclxuICAgICAgICAgICAgICBzZWN0aW9uTnVtYmVyOiBzZWN0aW9uTnVtYmVyLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBxbm86IDEsXHJcbiAgICAgICAgICAgICAgICAgIHFuYW1lOiBlbGVbXCJRdWVzdGlvblwiXSxcclxuICAgICAgICAgICAgICAgICAgb2xkUW5hbWU6IGVsZVtcIlF1ZXN0aW9uXCJdLFxyXG4gICAgICAgICAgICAgICAgICBhbnN3ZXJUeXBlOiBhbnN3ZXJUeXBlW2Ake2VsZVtcIkFuc3dlciBUeXBlXCJdfWBdLFxyXG4gICAgICAgICAgICAgICAgICBhbnN3ZXJzOiB0aGlzLmZpbmRBbnN3ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgYW5zd2VyVHlwZVtgJHtlbGVbXCJBbnN3ZXIgVHlwZVwiXX1gXSxcclxuICAgICAgICAgICAgICAgICAgICBlbGVbXCJBbnN3ZXIgT3B0aW9uc1wiXSxcclxuICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBydW5BSURlZmF1bHQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgbGlua1R5cGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICAgICAgICBxdWVzdGlvblJlZmVyZW5jZUltYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICBydW5BSUZlYXR1cmVzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZVJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICAgICAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGNvbXBsaWFuY2U6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGl2ZXR5cGU6IFwidGV4dFwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWNjW2Ake3NlY3Rpb25OYW1lfWBdLnF1ZXN0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICBxbm86IGFjY1tgJHtzZWN0aW9uTmFtZX1gXS5xdWVzdGlvbnMubGVuZ3RoICsgMSxcclxuICAgICAgICAgICAgICBxbmFtZTogZWxlW1wiUXVlc3Rpb25cIl0sXHJcbiAgICAgICAgICAgICAgb2xkUW5hbWU6IGVsZVtcIlF1ZXN0aW9uXCJdLFxyXG4gICAgICAgICAgICAgIGFuc3dlclR5cGU6IGFuc3dlclR5cGVbYCR7ZWxlW1wiQW5zd2VyIFR5cGVcIl19YF0sXHJcbiAgICAgICAgICAgICAgYW5zd2VyczogdGhpcy5maW5kQW5zd2VyKFxyXG4gICAgICAgICAgICAgICAgYW5zd2VyVHlwZVtgJHtlbGVbXCJBbnN3ZXIgVHlwZVwiXX1gXSxcclxuICAgICAgICAgICAgICAgIGVsZVtcIkFuc3dlciBPcHRpb25zXCJdLFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJ1bkFJRGVmYXVsdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbGlua1R5cGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25SZWZlcmVuY2VJbWFnZTogXCJcIixcclxuICAgICAgICAgICAgICBydW5BSUZlYXR1cmVzOiBbXSxcclxuICAgICAgICAgICAgICBkaXNhYmxlUnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJ1bkFJRGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgY29tcGxpYW5jZTogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LCB7fSk7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uRGV0YWlscyA9IE9iamVjdC52YWx1ZXMoc2VjRGV0YWlscyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICB0aGlzLmZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG4gICAgICB0aGlzLmZpbGVTaXplID0gTWF0aC5yb3VuZChmaWxlLnNpemUgLyAxMDI0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF07XHJcblxyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGUubmFtZTtcclxuICAgICAgdGhpcy5maWxlU2l6ZSA9IE1hdGgucm91bmQoZmlsZS5zaXplIC8gMTAyNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBSZXVwbG9hZCgpIHtcclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIik7XHJcbiAgICBlbGU/LmNsaWNrKCk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUNoZWNrbGlzdCgpIHtcclxuICAgIGlmICghdGhpcy5leGNlbERhdGEubGVuZ3RoICYmIHRoaXMubW9kZSA9PSBcImJ1bGtcIikge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmNoZWNrbGlzdEZvcm0udmFsdWUubmFtZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJDaGVja2xpc3QgTmFtZSBpcyBtaXNzaW5nXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLmNoZWNrbGlzdEZvcm0udmFsdWUubmFtZSxcclxuICAgICAgY2hlY2tsaXN0RGVzY3JpcHRpb246IHRoaXMuY2hlY2tsaXN0Rm9ybS52YWx1ZS5kZXNjcmlwdGlvbixcclxuICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbkRldGFpbHMsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBzdWJtaXRUeXBlOiBcInNhdmVcIixcclxuICAgIH07XHJcbiAgICB0aGlzLnNvcFNlcnZpY2VcclxuICAgICAgLmNyZWF0ZUNoZWNrbGlzdChwYXJhbXMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoXCJDaGVja2xpc3QgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIik7XHJcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcclxuICAgICAgICAgICAgICAgIGAvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0P2NoZWNrbGlzdElkPSR7cmVzLmRhdGEuY2hlY2tsaXN0SWR9YCxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmRpc21pc3MoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyID1cclxuICAgICAgICAgICAgZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fFxyXG4gICAgICAgICAgICBcIlVuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IVNlcnZlciBFcnJvciFcIjtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBmaW5kQW5zd2VyKHR5cGU6IHN0cmluZywgb3B0aW9uczogc3RyaW5nKSB7XHJcbiAgICBsZXQgYW5zd2VyOiBhbnkgPSBbXTtcclxuXHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBcInllcy9ub1wiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlllc1wiLFxyXG4gICAgICAgICAgICBhbnN3ZXJvcHRpb25OdW1iZXI6IDEsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiQ2FwdHVyZSBJbWFnZVwiLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICBjb21wbGlhbmNlU2NvcmU6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiTm9cIixcclxuICAgICAgICAgICAgYW5zd2Vyb3B0aW9uTnVtYmVyOiAyLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIkNhcHR1cmUgSW1hZ2VcIixcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogXCJcIixcclxuICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgY29tcGxpYW5jZVNjb3JlOiAwLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJkZXNjcmlwdGl2ZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGl2ZXR5cGU6IFwidGV4dFwiLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtdO1xyXG4gICAgICAgIG9wdGlvbnMuc3BsaXQoXCIsXCIpLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlLnRyaW0oKSkge1xyXG4gICAgICAgICAgICBhbnN3ZXIucHVzaCh7XHJcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGUsXHJcbiAgICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiQ2FwdHVyZSBJbWFnZVwiLFxyXG4gICAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXTtcclxuICAgICAgICBvcHRpb25zLnNwbGl0KFwiLFwiKS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGFuc3dlci5wdXNoKHtcclxuICAgICAgICAgICAgICBhbnN3ZXI6IGVsZSxcclxuICAgICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJDYXB0dXJlIEltYWdlXCIsXHJcbiAgICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgY29tcGxpYW5jZVNjb3JlOiAwLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZGVzY3JpcHRpdmVJbWFnZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJpbWFnZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICBtYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIG5vdE1hdGNoZWRDb3VudDogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwidmlkZW9cIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibXVsdGlwbGVJbWFnZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgIGhpc3RvcmljRGF0ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogXCJcIixcclxuICAgICAgICAgICAgZW5kRGF0ZTogXCJcIixcclxuICAgICAgICAgICAgbWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgICBub3RNYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImxpbmVhcnNjYWxlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICByYW5nZVN0YXJ0OiAwLFxyXG4gICAgICAgICAgICByYW5nZUVuZDogMTAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgIGxpbmVhclR5cGU6IFwibnVtYmVyXCIsXHJcbiAgICAgICAgICAgIG1pblZhbHVlOiAwLFxyXG4gICAgICAgICAgICBtYXhWYWx1ZTogMTAwLFxyXG4gICAgICAgICAgICBtYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIG5vdE1hdGNoZWRDb3VudDogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwidGltZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJpbWFnZS92aWRlb1wiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICBsaW1pdDogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpZGVvTGltaXQ6IDAsXHJcbiAgICAgICAgICAgIGltYWdlTGltaXQ6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRyb3Bkb3duXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW107XHJcbiAgICAgICAgb3B0aW9ucy5zcGxpdChcIixcIikuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGU/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBhbnN3ZXIucHVzaCh7XHJcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGUsXHJcbiAgICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiQ2FwdHVyZSBJbWFnZVwiLFxyXG4gICAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5zb3BTZXJ2aWNlXHJcbiAgICAgIC5kb3dubG9hZFF1ZXN0aW9uKHRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja2xpc3RJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zb3BTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsIFwiQ2hlY2tsaXN0IFF1ZXN0aW9uXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIGRvd25sb2FkIHRlbXBsYXRlIVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gZG93bmxvYWQgdGVtcGxhdGUhXCIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGVja2xpc3QoKSB7XHJcbiAgICBpZiAoIXRoaXMuZXhjZWxEYXRhLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmNoZWNrbGlzdERhdGEuY2hlY2tMaXN0TmFtZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJDaGVja2xpc3QgTmFtZSBpcyBtaXNzaW5nXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLmNoZWNrbGlzdERhdGEuY2hlY2tMaXN0TmFtZSxcclxuICAgICAgY2hlY2tsaXN0RGVzY3JpcHRpb246IHRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja0xpc3REZXNjcmlwdGlvbixcclxuICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbkRldGFpbHMsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNoZWNrbGlzdERhdGEuY2xpZW50SWQsXHJcbiAgICAgIHN1Ym1pdFR5cGU6IFwic2F2ZVwiLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc29wU2VydmljZVxyXG4gICAgICAuZ2V0VXBkYXRlQ2hlY2tsaXN0KHRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja2xpc3RJZCwgcGFyYW1zKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwicmVsb2FkXCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KCdDaGVja2xpc3QgdXBkYXRlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gdXBkYXRlIGNoZWNrbGlzdCFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyciA9XHJcbiAgICAgICAgICAgIGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHxcclxuICAgICAgICAgICAgXCJVbmFibGUgdG8gdXBkYXRlIGNoZWNrbGlzdCFTZXJ2ZXIgRXJyb3IhXCI7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWNhcmRcIj5cclxuXHJcbiAgPCEtLSBIZWFkZXIgLS0+XHJcbiAgIDxkaXYgKm5nSWY9XCIhZXhjZWxEYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItM1wiPlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtaWNvbiBtZS0yXCI+XHJcbiAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyMVYzNU0yMSAyOEgzNVwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwibWItMCB0aXRsZVRleHRcIj57e3R5cGUgPT0gJ2NyZWF0ZScgPyAnQ3JlYXRlIENoZWNrbGlzdCcgOiAnQnVsayBVcGxvYWQnfX08L2Rpdj5cclxuICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjaGVja2xpc3RGb3JtXCI+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gQ2hlY2tsaXN0IE5hbWUgLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJ0eXBlID09ICdjcmVhdGUnXCI+XHJcbiAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNoZWNrbGlzdCBOYW1lPC9sYWJlbD5cclxuICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gRGVzY3JpcHRpb24gLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJ0eXBlID09ICdjcmVhdGUnXCI+XHJcbiAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkRlc2NyaXB0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gTW9kZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0yIG15LTNcIiAqbmdJZj1cInR5cGUgPT0gJ2NyZWF0ZSdcIj5cclxuICAgICBcclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24tYm94XCJcclxuICAgICAgICAgICAgICAgW2NsYXNzLm9wdGlvbi1hY3RpdmVdPVwibW9kZT09PSdpbmRpdmlkdWFsJ1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb2RlKCdpbmRpdmlkdWFsJylcIj5cclxuICAgICBcclxuICAgICAgICAgICAgICAgPHNwYW4+QWRkIHF1ZXN0aW9ucyBpbmRpdmlkdWFsbHk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImluZGl2aWR1YWxcIiBmb3JtQ29udHJvbE5hbWU9XCJtb2RlXCIgc3R5bGU9XCJ3aWR0aDoxNXB4O2hlaWdodDoxNXB4XCI+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24tYm94XCJcclxuICAgICAgICAgICAgICAgW2NsYXNzLm9wdGlvbi1hY3RpdmVdPVwibW9kZT09PSdidWxrJ1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb2RlKCdidWxrJylcIj5cclxuICAgICBcclxuICAgICAgICAgICAgICAgPHNwYW4+QWRkIHF1ZXN0aW9ucyBpbiBidWxrPC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJidWxrXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9kZVwiIHN0eWxlPVwid2lkdGg6MTVweDtoZWlnaHQ6MTVweFwiPlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICA8IS0tIEJ1bGsgVXBsb2FkIFNlY3Rpb24gLS0+XHJcbiAgICAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09PSAnYnVsaydcIiBjbGFzcz1cImJ1bGtUZXh0XCI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+MS4gVXNlIHRoZSB0ZW1wbGF0ZSB0byB1cGxvYWQgbXVsdGlwbGUgcXVlc3Rpb25zIGF0IG9uY2U8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgIDIuIERvd25sb2FkIHRoZSB0ZW1wbGF0ZSBoZXJlIC1cclxuICAgICAgICAgICAgICAgQGlmKHR5cGUgPT0gJ2NyZWF0ZScpIHtcclxuICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZG93bmxvYWQtbGlua1wiIGhyZWY9XCIvYXNzZXRzL2ZpbGVzL2NoZWNrbGlzdFF1ZXN0aW9uLnhsc3hcIiBkb3dubG9hZD5cclxuICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNyAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjgzNTkgMTAuODM1OVYxNC4xNjkzQzE1LjgzNTkgMTQuNjExMyAxNS42NjAzIDE1LjAzNTIgMTUuMzQ3OCAxNS4zNDc4QzE1LjAzNTIgMTUuNjYwMyAxNC42MTEzIDE1LjgzNTkgMTQuMTY5MyAxNS44MzU5SDIuNTAyNkMyLjA2MDU4IDE1LjgzNTkgMS42MzY2NSAxNS42NjAzIDEuMzI0MDkgMTUuMzQ3OEMxLjAxMTUzIDE1LjAzNTIgMC44MzU5MzggMTQuNjExMyAwLjgzNTkzOCAxNC4xNjkzVjEwLjgzNTlNNC4xNjkyNyA2LjY2OTI3TDguMzM1OTQgMTAuODM1OU04LjMzNTk0IDEwLjgzNTlMMTIuNTAyNiA2LjY2OTI3TTguMzM1OTQgMTAuODM1OVYwLjgzNTkzOFwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gRG93bmxvYWQgVGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxN1wiIHZpZXdCb3g9XCIwIDAgMTcgMTdcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjgzNTkgMTAuODM1OVYxNC4xNjkzQzE1LjgzNTkgMTQuNjExMyAxNS42NjAzIDE1LjAzNTIgMTUuMzQ3OCAxNS4zNDc4QzE1LjAzNTIgMTUuNjYwMyAxNC42MTEzIDE1LjgzNTkgMTQuMTY5MyAxNS44MzU5SDIuNTAyNkMyLjA2MDU4IDE1LjgzNTkgMS42MzY2NSAxNS42NjAzIDEuMzI0MDkgMTUuMzQ3OEMxLjAxMTUzIDE1LjAzNTIgMC44MzU5MzggMTQuNjExMyAwLjgzNTkzOCAxNC4xNjkzVjEwLjgzNTlNNC4xNjkyNyA2LjY2OTI3TDguMzM1OTQgMTAuODM1OU04LjMzNTk0IDEwLjgzNTlMMTIuNTAyNiA2LjY2OTI3TTguMzM1OTQgMTAuODM1OVYwLjgzNTkzOFwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgIDwvc3ZnPiBEb3dubG9hZCBUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPjMuIEFkZCB5b3VyIGRhdGEgdG8gdGhlIHRlbXBsYXRlPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPjQuIFVwbG9hZCBpdCBmb3IgcHJvY2Vzc2luZzwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwhLS0gVXBsb2FkIEFyZWEgLS0+XHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1ib3ggY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaWNvbiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTkwMzRfNjY5OTYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjYuMzMyNiAyNi4zMzEzTDIyLjk5OTIgMjIuOTk4TTIyLjk5OTIgMjIuOTk4TDE5LjY2NTkgMjYuMzMxM00yMi45OTkyIDIyLjk5OFYzMC40OThNMjkuOTkwOSAyOC4zMjNDMzAuODAzNyAyNy44Nzk4IDMxLjQ0NTggMjcuMTc4NyAzMS44MTU4IDI2LjMzMDFDMzIuMTg1OCAyNS40ODE2IDMyLjI2MjcgMjQuNTM0IDMyLjAzNDQgMjMuNjM2OUMzMS44MDYxIDIyLjczOTcgMzEuMjg1NSAyMS45NDQyIDMwLjU1NDggMjEuMzc1OEMyOS44MjQxIDIwLjgwNzQgMjguOTI1IDIwLjQ5ODYgMjcuOTk5MiAyMC40OThIMjYuOTQ5MkMyNi42OTcgMTkuNTIyMyAyNi4yMjY5IDE4LjYxNjYgMjUuNTc0MiAxNy44NDg4QzI0LjkyMTUgMTcuMDgxIDI0LjEwMzMgMTYuNDcxMiAyMy4xODEgMTYuMDY1MUMyMi4yNTg3IDE1LjY1OTEgMjEuMjU2NCAxNS40Njc0IDIwLjI0OTMgMTUuNTA0NUMxOS4yNDIzIDE1LjU0MTYgMTguMjU2OCAxNS44MDY1IDE3LjM2NjkgMTYuMjc5M0MxNi40NzcgMTYuNzUyMSAxNS43MDU4IDE3LjQyMDUgMTUuMTExNCAxOC4yMzQzQzE0LjUxNyAxOS4wNDggMTQuMTE0OCAxOS45ODU5IDEzLjkzNTEgMjAuOTc3NEMxMy43NTUzIDIxLjk2OSAxMy44MDI3IDIyLjk4ODQgMTQuMDczNiAyMy45NTlDMTQuMzQ0NSAyNC45Mjk2IDE0LjgzMTkgMjUuODI2MiAxNS40OTkyIDI2LjU4MTNcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTkwMzRfNjY5OTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEzIDEzKVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGZ3LXNlbWlib2xkIHVwbG9hZFRleHRcIj5DbGljayBUbyBVcGxvYWQ8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDwhLS0gSGlkZGVuIEZpbGUgSW5wdXQgLS0+XHJcbiAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAjZmlsZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgIGhpZGRlblxyXG4gICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICA+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICA8IS0tIFVwbG9hZGVkIEZpbGUgLS0+XHJcbiAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbGVOYW1lXCIgY2xhc3M9XCJ1cGxvYWQtZmlsZVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOC42NjggMTEuMzM1OUgxNC4wMDEzQzEzLjY0NzcgMTEuMzM1OSAxMy4zMDg1IDExLjQ3NjQgMTMuMDU4NSAxMS43MjY1QzEyLjgwODQgMTEuOTc2NSAxMi42NjggMTIuMzE1NiAxMi42NjggMTIuNjY5M1YyMy4zMzU5QzEyLjY2OCAyMy42ODk2IDEyLjgwODQgMjQuMDI4NyAxMy4wNTg1IDI0LjI3ODdDMTMuMzA4NSAyNC41Mjg4IDEzLjY0NzcgMjQuNjY5MyAxNC4wMDEzIDI0LjY2OTNIMjIuMDAxM0MyMi4zNTQ5IDI0LjY2OTMgMjIuNjk0MSAyNC41Mjg4IDIyLjk0NDEgMjQuMjc4N0MyMy4xOTQyIDI0LjAyODcgMjMuMzM0NiAyMy42ODk2IDIzLjMzNDYgMjMuMzM1OVYxNi4wMDI2TTE4LjY2OCAxMS4zMzU5TDIzLjMzNDYgMTYuMDAyNk0xOC42NjggMTEuMzM1OVYxNi4wMDI2SDIzLjMzNDZcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICBcclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgPGRpdj57e2ZpbGVOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzc1RleHRcIj5cclxuICAgICAgICAgICAgICAgICAgIHt7ZmlsZVNpemV9fSBLQiDigJMgVXBsb2FkZWRcclxuICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjkuMzM0NiAxNC43NzA1VjE1Ljk5NzJDMjkuMzMzIDE4Ljg3MjQgMjguNDAyIDIxLjY3MDEgMjYuNjgwNCAyMy45NzNDMjQuOTU4OSAyNi4yNzU4IDIyLjUzOSAyNy45NjA1IDE5Ljc4MTggMjguNzc1N0MxNy4wMjQ1IDI5LjU5MSAxNC4wNzc2IDI5LjQ5MzEgMTEuMzgwNiAyOC40OTY3QzguNjgzNTQgMjcuNTAwMiA2LjM4MDg0IDI1LjY1ODcgNC44MTU5MiAyMy4yNDY2QzMuMjUwOTkgMjAuODM0NiAyLjUwNzY5IDE3Ljk4MTMgMi42OTY4NyAxNS4xMTIzQzIuODg2MDUgMTIuMjQzMyAzLjk5NzU4IDkuNTEyMzIgNS44NjU2OCA3LjMyNjY1QzcuNzMzNzcgNS4xNDA5NyAxMC4yNTgzIDMuNjE3NzIgMTMuMDYyOSAyLjk4NDA4QzE1Ljg2NzQgMi4zNTA0MyAxOC44MDE3IDIuNjQwMzMgMjEuNDI4IDMuODEwNTVNMjkuMzM0NiA1LjMzMDU1TDE2LjAwMTMgMTguNjc3MkwxMi4wMDEzIDE0LjY3NzJcIiBzdHJva2U9XCIjMTJCNzZBXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBCdXR0b25zIC0tPlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtNFwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0yXCIgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICBDYW5jZWxcclxuICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICBcclxuICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInR5cGUgPT0gJ2NyZWF0ZScgPyBjcmVhdGVDaGVja2xpc3QoKSA6IHVwZGF0ZUNoZWNrbGlzdCgpXCI+XHJcbiAgICAgICAgICAgICBQcm9jZWVkXHJcbiAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgXHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgPC9mb3JtPlxyXG4gICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLTAgdmFsaWRhdGVCb3hcIiAqbmdJZj1cImV4Y2VsRGF0YS5sZW5ndGhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgbXQtMFwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbXQtM1wiPjxzcGFuIGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctc2VtaWJvbGQgdy1hdXRvXCI+QXNzaWduIFN0b3Jlczwvc3Bhbj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCByb3VuZGVkLTMgcC0zIGZsZXgtY29sdW1uIGgtODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tleGNlbERhdGE/Lmxlbmd0aH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPlRvdGFsIFJlY29yZHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCByb3VuZGVkLTMgcC0zIGZsZXgtY29sdW1uIGgtODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmcgdy0xMDBcIj57e2V4Y2VsRGF0YT8ubGVuZ3RofX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIHN1YnRpdGxlIG10LTFcIj5Sb3dzIHByb2Nlc3NlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2Vycm9yLWhlYWRpbmcnOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPnt7ZXhjZWxFcnJvcj8uZXJyb3I/Lmxlbmd0aCB8fCAwfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2V4Y2VsLWVycm9yJzonJ1wiIGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPkVycm9yPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWV4Y2VsRXJyb3JcIiBjbGFzcz1cInRhYmxlLWhlYWRlciBtdC01XCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5Zb3UncmUgYWJvdXQgdG8gYXNzaWduIHt7ZXhjZWxEYXRhPy5sZW5ndGh9fSBzdG9yZXMgdG8gdGhlIGNoZWNrbGlzdC4gQXJlIHlvdSBzdXJlIHdhbnQgdG8gcHJvY2VlZD88L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJleGNlbEVycm9yXCIgY2xhc3M9XCJmbGV4LWNvbHVtbiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctYm9sZFwiPkludmFsaWQgRGV0YWlscyAhPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgbXQtNVwiPlBsZWFzZSBwcm92aWRlIGNvcnJlY3QgYW5kIGNvbXBsZXRlIGxheW91dCBpbmZvcm1hdGlvbi48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTUgdy0xMDAgcm91bmRlZC0zIGJvcmRlci1lcnJvciBtdC01IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiBleGNlbEVycm9yPy5lcnJvcjsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCIgW25nQ2xhc3NdPVwiIWxhc3QgPyAnbWItMicgOiAnJ1wiIGNsYXNzPVwidGV4dC1lcnJvclwiPnt7aSArIDF9fSkge3tlcnJvcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgI2ZpbGVJbnB1dDEgdHlwZT1cImZpbGVcIiBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8yXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtNFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMlwiIChjbGljayk9XCJkaWFsb2dSZWYuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKm5nSWY9XCIhZXhjZWxFcnJvclwiIChjbGljayk9XCJ0eXBlID09ICdjcmVhdGUnID8gY3JlYXRlQ2hlY2tsaXN0KCkgOiB1cGRhdGVDaGVja2xpc3QoKVwiPlxyXG4gICAgICAgIFByb2NlZWRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJleGNlbEVycm9yXCIgY2xhc3M9XCJidG4gcHktMyBtcy0zIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwiUmV1cGxvYWQoKTtcIj5SZXVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
608
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBbUUsTUFBTSxlQUFlLENBQUM7QUFHN0gsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFNBQVMsRUFBQyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBU3pDLE1BQU0sT0FBTyx1QkFBdUI7SUF1QnhCO0lBQ0E7SUFDQTtJQUNBO0lBQ0Q7SUFDQztJQUNBO0lBNUJWLGFBQWEsQ0FBWTtJQUNoQixRQUFRLENBQVM7SUFDakIsSUFBSSxDQUFTO0lBQ2IsYUFBYSxDQUFNO0lBQ0UsZUFBZSxDQUFNO0lBQ2hDLFNBQVMsQ0FBYztJQUN0QixVQUFVLENBQWM7SUFFNUMsUUFBUSxDQUFNO0lBQ2QsUUFBUSxDQUFNO0lBQ2QsY0FBYyxHQUFRO1FBQ3BCO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsU0FBUyxFQUFFLEVBQUU7U0FDZDtLQUNGLENBQUM7SUFDTSxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixTQUFTLEdBQVEsRUFBRSxDQUFDO0lBQ3BCLFVBQVUsQ0FBTTtJQUVoQixZ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Qjs0RkFBdkIsdUJBQXVCLHlhQ2RwQyxnMFlBOE1NOzs0RkRoTU8sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4T0FNdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDd0IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ1QsU0FBUztzQkFBM0IsU0FBUzt1QkFBQyxNQUFNO2dCQUNHLFVBQVU7c0JBQTdCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZVwiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1jaGVja2xpc3QtcG9wdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NoZWNrbGlzdC1wb3B1cC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBjaGVja2xpc3RGb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgY2xpZW50SWQ6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2hlY2tsaXN0RGF0YTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJhZnRlclZhbGlkYXRpb25cIikgYWZ0ZXJWYWxpZGF0aW9uOiBhbnk7XHJcbiAgQFZpZXdDaGlsZChcImZpbGVcIikgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZmlsZTFcIikgZmlsZUlucHV0MSE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZmlsZVNpemU6IGFueTtcclxuICBzZWN0aW9uRGV0YWlsczogYW55ID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiBcIlNlY3Rpb24gMVwiLFxyXG4gICAgICBzZWN0aW9uTnVtYmVyOiAxLFxyXG4gICAgICBxdWVzdGlvbnM6IFtdLFxyXG4gICAgfSxcclxuICBdO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBleGNlbERhdGE6IGFueSA9IFtdO1xyXG4gIGV4Y2VsRXJyb3I6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc29wU2VydmljZTogVHJheFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHRoaXMuY2hlY2tsaXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbXCJcIl0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBbXCJcIl0sXHJcbiAgICAgIG1vZGU6IFtcImluZGl2aWR1YWxcIl0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy50eXBlICE9ICdjcmVhdGUnKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tsaXN0Rm9ybS5nZXQoXCJtb2RlXCIpPy5zZXRWYWx1ZShcImJ1bGtcIik7IFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG1vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RGb3JtLnZhbHVlLm1vZGU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RNb2RlKG1vZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jaGVja2xpc3RGb3JtLnBhdGNoVmFsdWUoeyBtb2RlIH0pO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5leGNlbERhdGEgPSBbXTtcclxuICAgIHRoaXMuZXhjZWxFcnJvciA9IG51bGw7XHJcbiAgICB0aGlzLnNlY3Rpb25EZXRhaWxzID0gW107XHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSA8RGF0YVRyYW5zZmVyPmV2ZW50LnRhcmdldDtcclxuICAgIGxldCBpc0V4Y2VsRmlsZSA9ICEhdGFyZ2V0LmZpbGVzWzBdLm5hbWUubWF0Y2goLygueGxzfC54bHN4KS8pO1xyXG4gICAgaWYgKCFpc0V4Y2VsRmlsZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgVXBsb2FkIGEgdmFsaWQgeGxzeCBmaWxlXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzRXhjZWxGaWxlKSB7XHJcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiBcImJpbmFyeVwiIH0pO1xyXG4gICAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgICBjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuICAgICAgICBsZXQgZGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cywgeyBkZWZ2YWw6IFwiXCIgfSk7XHJcbiAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZXhjZWxEYXRhID0gZGF0YTtcclxuICAgICAgICBsZXQgZXJyb3I6IGFueSA9IFtdO1xyXG4gICAgICAgIGxldCBxdWVzdGlvbkxpc3Q6YW55ID0gW107XHJcbiAgICAgICAgdGhpcy5leGNlbERhdGEuZm9yRWFjaCgoZWxlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGlmICghZWxlPy5bXCJTZWN0aW9uIE5hbWVcIl0/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFNlY3Rpb24gTmFtZSAtIEEke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghZWxlPy5bXCJRdWVzdGlvblwiXT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgUXVlc3Rpb24gTmFtZSAtIEIke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghZWxlPy5bXCJBbnN3ZXIgVHlwZVwiXT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgQW5zd2VyIFR5cGUgLSBDJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGVsZT8uW1wiQW5zd2VyIFR5cGVcIl0/LnRyaW0oKSAmJlxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgU2luZ2xlXCIsXHJcbiAgICAgICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgTXVsdGlwbGVcIixcclxuICAgICAgICAgICAgICBcIkRyb3Bkb3duXCIsXHJcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoZWxlPy5bXCJBbnN3ZXIgVHlwZVwiXSkgJiZcclxuICAgICAgICAgICAgIWVsZT8uW1wiQW5zd2VyIE9wdGlvbnNcIl0/LnRyaW0oKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgQW5zd2VyIE9wdGlvbnMgLSBEJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgbGV0IHFOYW1lOnN0cmluZyA9IGVsZT8uW1wiU2VjdGlvbiBOYW1lXCJdPy50cmltKCkudG9Mb3dlckNhc2UoKSArIGVsZT8uW1wiUXVlc3Rpb25cIl0/LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgaWYgKCFxdWVzdGlvbkxpc3QuaW5jbHVkZXMocU5hbWUpKSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uTGlzdC5wdXNoKHFOYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGAke2VsZT8uW1wiUXVlc3Rpb25cIl0/LnRyaW0oKX0gcXVlc3Rpb24gaXMgRHVwbGljYXRlZGApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChlcnJvci5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgICAgIHRpdGxlOiBgSW52YWxpZCBkZXRhaWxzIWAsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IGBQbGVhc2UgcHJvdmlkZSBjb3JyZWN0IGFuZCBjb21wbGV0ZSBzdG9yZSBpbmZvcm1hdGlvbi5gLFxyXG4gICAgICAgICAgICBidXR0b250eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnJvcixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmV4Y2VsRXJyb3IgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzZWN0aW9uTnVtYmVyID0gMDtcclxuICAgICAgICBsZXQgYW5zd2VyVHlwZTogYW55ID0ge1xyXG4gICAgICAgICAgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIjogXCJkZXNjcmlwdGl2ZVwiLFxyXG4gICAgICAgICAgXCJBL0IgUXVlc3Rpb25cIjogXCJ5ZXMvbm9cIixcclxuICAgICAgICAgIFwiTXVsdGlwbGUgQ2hvaWNlIFNpbmdsZVwiOiBcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXHJcbiAgICAgICAgICBcIk11bHRpcGxlIENob2ljZSBNdWx0aXBsZVwiOiBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBJbWFnZSB3aXRoIERlc2NyaXB0aW9uXCI6IFwiZGVzY3JpcHRpdmVJbWFnZVwiLFxyXG4gICAgICAgICAgXCJDYXB0dXJlIEltYWdlIGFzIGFuc3dlclwiOiBcImltYWdlXCIsXHJcbiAgICAgICAgICBcIkNhcHR1cmUgdmlkZW8gYXMgYW5zd2VyXCI6IFwidmlkZW9cIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBNdWx0aXBsZSBJbWFnZVwiOiBcIm11bHRpcGxlSW1hZ2VcIixcclxuICAgICAgICAgIERhdGU6IFwiZGF0ZVwiLFxyXG4gICAgICAgICAgXCJMaW5lYXIgU2NhbGVcIjogXCJsaW5lYXJzY2FsZVwiLFxyXG4gICAgICAgICAgXCJDYXB0dXJlIEltYWdlL1ZpZGVvIGFzIEFuc3dlclwiOiBcImltYWdlL3ZpZGVvXCIsXHJcbiAgICAgICAgICBUaW1lOiBcInRpbWVcIixcclxuICAgICAgICAgIERyb3Bkb3duOiBcImRyb3Bkb3duXCIsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgc2VjRGV0YWlsczogYW55ID0gZGF0YS5yZWR1Y2UoKGFjYzogYW55LCBlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHNlY3Rpb25OYW1lID0gZWxlW1wiU2VjdGlvbiBOYW1lXCJdLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgaWYgKCFhY2M/LltzZWN0aW9uTmFtZV0pIHtcclxuICAgICAgICAgICAgc2VjdGlvbk51bWJlcisrO1xyXG4gICAgICAgICAgICBhY2NbYCR7c2VjdGlvbk5hbWV9YF0gPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogZWxlW1wiU2VjdGlvbiBOYW1lXCJdPy50cmltKCksXHJcbiAgICAgICAgICAgICAgc2VjdGlvbk51bWJlcjogc2VjdGlvbk51bWJlcixcclxuICAgICAgICAgICAgICBxdWVzdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgcW5vOiAxLFxyXG4gICAgICAgICAgICAgICAgICBxbmFtZTogZWxlW1wiUXVlc3Rpb25cIl0/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgICAgb2xkUW5hbWU6IGVsZVtcIlF1ZXN0aW9uXCJdPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICAgIGFuc3dlclR5cGU6IGFuc3dlclR5cGVbYCR7ZWxlW1wiQW5zd2VyIFR5cGVcIl19YF0sXHJcbiAgICAgICAgICAgICAgICAgIGFuc3dlcnM6IHRoaXMuZmluZEFuc3dlcihcclxuICAgICAgICAgICAgICAgICAgICBhbnN3ZXJUeXBlW2Ake2VsZVtcIkFuc3dlciBUeXBlXCJdfWBdLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZVtcIkFuc3dlciBPcHRpb25zXCJdLFxyXG4gICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bkFJRGVmYXVsdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBsaW5rVHlwZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIG11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bkFJRmVhdHVyZXM6IFtdLFxyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlUnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBydW5BSURlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgY29tcGxpYW5jZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aXZldHlwZTogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhY2NbYCR7c2VjdGlvbk5hbWV9YF0ucXVlc3Rpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgIHFubzogYWNjW2Ake3NlY3Rpb25OYW1lfWBdLnF1ZXN0aW9ucy5sZW5ndGggKyAxLFxyXG4gICAgICAgICAgICAgIHFuYW1lOiBlbGVbXCJRdWVzdGlvblwiXT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgIG9sZFFuYW1lOiBlbGVbXCJRdWVzdGlvblwiXT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgIGFuc3dlclR5cGU6IGFuc3dlclR5cGVbYCR7ZWxlW1wiQW5zd2VyIFR5cGVcIl19YF0sXHJcbiAgICAgICAgICAgICAgYW5zd2VyczogdGhpcy5maW5kQW5zd2VyKFxyXG4gICAgICAgICAgICAgICAgYW5zd2VyVHlwZVtgJHtlbGVbXCJBbnN3ZXIgVHlwZVwiXX1gXSxcclxuICAgICAgICAgICAgICAgIGVsZVtcIkFuc3dlciBPcHRpb25zXCJdLFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJ1bkFJRGVmYXVsdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbGlua1R5cGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25SZWZlcmVuY2VJbWFnZTogXCJcIixcclxuICAgICAgICAgICAgICBydW5BSUZlYXR1cmVzOiBbXSxcclxuICAgICAgICAgICAgICBkaXNhYmxlUnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJ1bkFJRGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgY29tcGxpYW5jZTogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LCB7fSk7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uRGV0YWlscyA9IE9iamVjdC52YWx1ZXMoc2VjRGV0YWlscyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICB0aGlzLmZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG4gICAgICB0aGlzLmZpbGVTaXplID0gTWF0aC5yb3VuZChmaWxlLnNpemUgLyAxMDI0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF07XHJcblxyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGUubmFtZTtcclxuICAgICAgdGhpcy5maWxlU2l6ZSA9IE1hdGgucm91bmQoZmlsZS5zaXplIC8gMTAyNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBSZXVwbG9hZCgpIHtcclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIik7XHJcbiAgICBlbGU/LmNsaWNrKCk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUNoZWNrbGlzdCgpIHtcclxuICAgIGlmICghdGhpcy5leGNlbERhdGEubGVuZ3RoICYmIHRoaXMubW9kZSA9PSBcImJ1bGtcIikge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmNoZWNrbGlzdEZvcm0udmFsdWUubmFtZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJDaGVja2xpc3QgTmFtZSBpcyBtaXNzaW5nXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLmNoZWNrbGlzdEZvcm0udmFsdWUubmFtZT8udHJpbSgpLFxyXG4gICAgICBjaGVja2xpc3REZXNjcmlwdGlvbjogdGhpcy5jaGVja2xpc3RGb3JtLnZhbHVlLmRlc2NyaXB0aW9uPy50cmltKCksXHJcbiAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25EZXRhaWxzLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgc3VibWl0VHlwZTogXCJzYXZlXCIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zb3BTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVDaGVja2xpc3QocGFyYW1zKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFwiQ2hlY2tsaXN0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXHJcbiAgICAgICAgICAgICAgICBgL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdD9jaGVja2xpc3RJZD0ke3Jlcy5kYXRhLmNoZWNrbGlzdElkfWAsXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyciA9XHJcbiAgICAgICAgICAgIGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHxcclxuICAgICAgICAgICAgXCJVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCFTZXJ2ZXIgRXJyb3IhXCI7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEFuc3dlcih0eXBlOiBzdHJpbmcsIG9wdGlvbnM6IHN0cmluZykge1xyXG4gICAgbGV0IGFuc3dlcjogYW55ID0gW107XHJcblxyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJ5ZXMvbm9cIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJZZXNcIixcclxuICAgICAgICAgICAgYW5zd2Vyb3B0aW9uTnVtYmVyOiAxLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIkNhcHR1cmUgSW1hZ2VcIixcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogXCJcIixcclxuICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgY29tcGxpYW5jZVNjb3JlOiAwLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIk5vXCIsXHJcbiAgICAgICAgICAgIGFuc3dlcm9wdGlvbk51bWJlcjogMixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJDYXB0dXJlIEltYWdlXCIsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFwiXCIsXHJcbiAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZGVzY3JpcHRpdmVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpdmV0eXBlOiBcInRleHRcIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXTtcclxuICAgICAgICBvcHRpb25zLnNwbGl0KFwiLFwiKS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZS50cmltKCkpIHtcclxuICAgICAgICAgICAgYW5zd2VyLnB1c2goe1xyXG4gICAgICAgICAgICAgIGFuc3dlcjogZWxlLFxyXG4gICAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIkNhcHR1cmUgSW1hZ2VcIixcclxuICAgICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgICBjb21wbGlhbmNlU2NvcmU6IDAsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW107XHJcbiAgICAgICAgb3B0aW9ucy5zcGxpdChcIixcIikuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGU/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBhbnN3ZXIucHVzaCh7XHJcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGUsXHJcbiAgICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiQ2FwdHVyZSBJbWFnZVwiLFxyXG4gICAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRlc2NyaXB0aXZlSW1hZ2VcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiaW1hZ2VcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgbWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgICBub3RNYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInZpZGVvXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm11bHRpcGxlSW1hZ2VcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZGF0ZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICBoaXN0b3JpY0RhdGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBzdGFydERhdGU6IFwiXCIsXHJcbiAgICAgICAgICAgIGVuZERhdGU6IFwiXCIsXHJcbiAgICAgICAgICAgIG1hdGNoZWRDb3VudDogMCxcclxuICAgICAgICAgICAgbm90TWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJsaW5lYXJzY2FsZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgcmFuZ2VTdGFydDogMCxcclxuICAgICAgICAgICAgcmFuZ2VFbmQ6IDEwMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICBsaW5lYXJUeXBlOiBcIm51bWJlclwiLFxyXG4gICAgICAgICAgICBtaW5WYWx1ZTogMCxcclxuICAgICAgICAgICAgbWF4VmFsdWU6IDEwMCxcclxuICAgICAgICAgICAgbWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgICBub3RNYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInRpbWVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiaW1hZ2UvdmlkZW9cIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgbGltaXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aWRlb0xpbWl0OiAwLFxyXG4gICAgICAgICAgICBpbWFnZUxpbWl0OiAwLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJkcm9wZG93blwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtdO1xyXG4gICAgICAgIG9wdGlvbnMuc3BsaXQoXCIsXCIpLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlPy50cmltKCkpIHtcclxuICAgICAgICAgICAgYW5zd2VyLnB1c2goe1xyXG4gICAgICAgICAgICAgIGFuc3dlcjogZWxlLFxyXG4gICAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIkNhcHR1cmUgSW1hZ2VcIixcclxuICAgICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgICBjb21wbGlhbmNlU2NvcmU6IDAsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRUZW1wbGF0ZSgpIHtcclxuICAgIHRoaXMuc29wU2VydmljZVxyXG4gICAgICAuZG93bmxvYWRRdWVzdGlvbih0aGlzLmNoZWNrbGlzdERhdGEuY2hlY2tsaXN0SWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc29wU2VydmljZS5zYXZlQXNFeGNlbEZpbGUocmVzLCBcIkNoZWNrbGlzdCBRdWVzdGlvblwiKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byBkb3dubG9hZCB0ZW1wbGF0ZSFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIGRvd25sb2FkIHRlbXBsYXRlIVwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2hlY2tsaXN0KCkge1xyXG4gICAgaWYgKCF0aGlzLmV4Y2VsRGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGVcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jaGVja2xpc3REYXRhLmNoZWNrTGlzdE5hbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiQ2hlY2tsaXN0IE5hbWUgaXMgbWlzc2luZ1wiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgY2hlY2tsaXN0TmFtZTogdGhpcy5jaGVja2xpc3REYXRhLmNoZWNrTGlzdE5hbWU/LnRyaW0oKSxcclxuICAgICAgY2hlY2tsaXN0RGVzY3JpcHRpb246IHRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja0xpc3REZXNjcmlwdGlvbj8udHJpbSgpLFxyXG4gICAgICBzZWN0aW9uczogdGhpcy5zZWN0aW9uRGV0YWlscyxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2hlY2tsaXN0RGF0YS5jbGllbnRJZCxcclxuICAgICAgc3VibWl0VHlwZTogXCJzYXZlXCIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zb3BTZXJ2aWNlXHJcbiAgICAgIC5nZXRVcGRhdGVDaGVja2xpc3QodGhpcy5jaGVja2xpc3REYXRhLmNoZWNrbGlzdElkLCBwYXJhbXMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJyZWxvYWRcIik7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ0NoZWNrbGlzdCB1cGRhdGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIHVwZGF0ZSBjaGVja2xpc3QhXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyID1cclxuICAgICAgICAgICAgZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fFxyXG4gICAgICAgICAgICBcIlVuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IVNlcnZlciBFcnJvciFcIjtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjaGVja2xpc3QtY2FyZFwiPlxyXG5cclxuICA8IS0tIEhlYWRlciAtLT5cclxuICAgPGRpdiAqbmdJZj1cIiFleGNlbERhdGEubGVuZ3RoXCI+XHJcbiAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1pY29uIG1lLTJcIj5cclxuICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cclxuICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI4IDIxVjM1TTIxIDI4SDM1XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wIHRpdGxlVGV4dFwiPnt7dHlwZSA9PSAnY3JlYXRlJyA/ICdDcmVhdGUgQ2hlY2tsaXN0JyA6ICdCdWxrIFVwbG9hZCd9fTwvZGl2PlxyXG4gICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNoZWNrbGlzdEZvcm1cIj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBDaGVja2xpc3QgTmFtZSAtLT5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInR5cGUgPT0gJ2NyZWF0ZSdcIj5cclxuICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q2hlY2tsaXN0IE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBEZXNjcmlwdGlvbiAtLT5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInR5cGUgPT0gJ2NyZWF0ZSdcIj5cclxuICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RGVzY3JpcHRpb248L2xhYmVsPlxyXG4gICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBNb2RlIFNlbGVjdGlvbiAtLT5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTIgbXktM1wiICpuZ0lmPVwidHlwZSA9PSAnY3JlYXRlJ1wiPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvbi1ib3hcIlxyXG4gICAgICAgICAgICAgICBbY2xhc3Mub3B0aW9uLWFjdGl2ZV09XCJtb2RlPT09J2luZGl2aWR1YWwnXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vZGUoJ2luZGl2aWR1YWwnKVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICA8c3Bhbj5BZGQgcXVlc3Rpb25zIGluZGl2aWR1YWxseTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwiaW5kaXZpZHVhbFwiIGZvcm1Db250cm9sTmFtZT1cIm1vZGVcIiBzdHlsZT1cIndpZHRoOjE1cHg7aGVpZ2h0OjE1cHhcIj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvbi1ib3hcIlxyXG4gICAgICAgICAgICAgICBbY2xhc3Mub3B0aW9uLWFjdGl2ZV09XCJtb2RlPT09J2J1bGsnXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vZGUoJ2J1bGsnKVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICA8c3Bhbj5BZGQgcXVlc3Rpb25zIGluIGJ1bGs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImJ1bGtcIiBmb3JtQ29udHJvbE5hbWU9XCJtb2RlXCIgc3R5bGU9XCJ3aWR0aDoxNXB4O2hlaWdodDoxNXB4XCI+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gQnVsayBVcGxvYWQgU2VjdGlvbiAtLT5cclxuICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdidWxrJ1wiIGNsYXNzPVwiYnVsa1RleHRcIj5cclxuICAgICBcclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj4xLiBVc2UgdGhlIHRlbXBsYXRlIHRvIHVwbG9hZCBtdWx0aXBsZSBxdWVzdGlvbnMgYXQgb25jZTwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgMi4gRG93bmxvYWQgdGhlIHRlbXBsYXRlIGhlcmUgLVxyXG4gICAgICAgICAgICAgICBAaWYodHlwZSA9PSAnY3JlYXRlJykge1xyXG4gICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgaHJlZj1cIi9hc3NldHMvZmlsZXMvY2hlY2tsaXN0UXVlc3Rpb24ueGxzeFwiIGRvd25sb2FkPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTdcIiB2aWV3Qm94PVwiMCAwIDE3IDE3XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODM1OSAxMC44MzU5VjE0LjE2OTNDMTUuODM1OSAxNC42MTEzIDE1LjY2MDMgMTUuMDM1MiAxNS4zNDc4IDE1LjM0NzhDMTUuMDM1MiAxNS42NjAzIDE0LjYxMTMgMTUuODM1OSAxNC4xNjkzIDE1LjgzNTlIMi41MDI2QzIuMDYwNTggMTUuODM1OSAxLjYzNjY1IDE1LjY2MDMgMS4zMjQwOSAxNS4zNDc4QzEuMDExNTMgMTUuMDM1MiAwLjgzNTkzOCAxNC42MTEzIDAuODM1OTM4IDE0LjE2OTNWMTAuODM1OU00LjE2OTI3IDYuNjY5MjdMOC4zMzU5NCAxMC44MzU5TTguMzM1OTQgMTAuODM1OUwxMi41MDI2IDYuNjY5MjdNOC4zMzU5NCAxMC44MzU5VjAuODM1OTM4XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBEb3dubG9hZCBUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvd25sb2FkLWxpbmtcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNyAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODM1OSAxMC44MzU5VjE0LjE2OTNDMTUuODM1OSAxNC42MTEzIDE1LjY2MDMgMTUuMDM1MiAxNS4zNDc4IDE1LjM0NzhDMTUuMDM1MiAxNS42NjAzIDE0LjYxMTMgMTUuODM1OSAxNC4xNjkzIDE1LjgzNTlIMi41MDI2QzIuMDYwNTggMTUuODM1OSAxLjYzNjY1IDE1LjY2MDMgMS4zMjQwOSAxNS4zNDc4QzEuMDExNTMgMTUuMDM1MiAwLjgzNTkzOCAxNC42MTEzIDAuODM1OTM4IDE0LjE2OTNWMTAuODM1OU00LjE2OTI3IDYuNjY5MjdMOC4zMzU5NCAxMC44MzU5TTguMzM1OTQgMTAuODM1OUwxMi41MDI2IDYuNjY5MjdNOC4zMzU5NCAxMC44MzU5VjAuODM1OTM4XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgPC9zdmc+IERvd25sb2FkIFRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+My4gQWRkIHlvdXIgZGF0YSB0byB0aGUgdGVtcGxhdGU8L2Rpdj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+NC4gVXBsb2FkIGl0IGZvciBwcm9jZXNzaW5nPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPCEtLSBVcGxvYWQgQXJlYSAtLT5cclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWJveCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pY29uIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ2XCIgaGVpZ2h0PVwiNDZcIiB2aWV3Qm94PVwiMCAwIDQ2IDQ2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xOTAzNF82Njk5NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNi4zMzI2IDI2LjMzMTNMMjIuOTk5MiAyMi45OThNMjIuOTk5MiAyMi45OThMMTkuNjY1OSAyNi4zMzEzTTIyLjk5OTIgMjIuOTk4VjMwLjQ5OE0yOS45OTA5IDI4LjMyM0MzMC44MDM3IDI3Ljg3OTggMzEuNDQ1OCAyNy4xNzg3IDMxLjgxNTggMjYuMzMwMUMzMi4xODU4IDI1LjQ4MTYgMzIuMjYyNyAyNC41MzQgMzIuMDM0NCAyMy42MzY5QzMxLjgwNjEgMjIuNzM5NyAzMS4yODU1IDIxLjk0NDIgMzAuNTU0OCAyMS4zNzU4QzI5LjgyNDEgMjAuODA3NCAyOC45MjUgMjAuNDk4NiAyNy45OTkyIDIwLjQ5OEgyNi45NDkyQzI2LjY5NyAxOS41MjIzIDI2LjIyNjkgMTguNjE2NiAyNS41NzQyIDE3Ljg0ODhDMjQuOTIxNSAxNy4wODEgMjQuMTAzMyAxNi40NzEyIDIzLjE4MSAxNi4wNjUxQzIyLjI1ODcgMTUuNjU5MSAyMS4yNTY0IDE1LjQ2NzQgMjAuMjQ5MyAxNS41MDQ1QzE5LjI0MjMgMTUuNTQxNiAxOC4yNTY4IDE1LjgwNjUgMTcuMzY2OSAxNi4yNzkzQzE2LjQ3NyAxNi43NTIxIDE1LjcwNTggMTcuNDIwNSAxNS4xMTE0IDE4LjIzNDNDMTQuNTE3IDE5LjA0OCAxNC4xMTQ4IDE5Ljk4NTkgMTMuOTM1MSAyMC45Nzc0QzEzLjc1NTMgMjEuOTY5IDEzLjgwMjcgMjIuOTg4NCAxNC4wNzM2IDIzLjk1OUMxNC4zNDQ1IDI0LjkyOTYgMTQuODMxOSAyNS44MjYyIDE1LjQ5OTIgMjYuNTgxM1wiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xOTAzNF82Njk5NlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTMgMTMpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZnctc2VtaWJvbGQgdXBsb2FkVGV4dFwiPkNsaWNrIFRvIFVwbG9hZDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPCEtLSBIaWRkZW4gRmlsZSBJbnB1dCAtLT5cclxuICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICNmaWxlSW5wdXRcclxuICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgaGlkZGVuXHJcbiAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgID5cclxuICAgICBcclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwhLS0gVXBsb2FkZWQgRmlsZSAtLT5cclxuICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZU5hbWVcIiBjbGFzcz1cInVwbG9hZC1maWxlXCI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI0XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE4LjY2OCAxMS4zMzU5SDE0LjAwMTNDMTMuNjQ3NyAxMS4zMzU5IDEzLjMwODUgMTEuNDc2NCAxMy4wNTg1IDExLjcyNjVDMTIuODA4NCAxMS45NzY1IDEyLjY2OCAxMi4zMTU2IDEyLjY2OCAxMi42NjkzVjIzLjMzNTlDMTIuNjY4IDIzLjY4OTYgMTIuODA4NCAyNC4wMjg3IDEzLjA1ODUgMjQuMjc4N0MxMy4zMDg1IDI0LjUyODggMTMuNjQ3NyAyNC42NjkzIDE0LjAwMTMgMjQuNjY5M0gyMi4wMDEzQzIyLjM1NDkgMjQuNjY5MyAyMi42OTQxIDI0LjUyODggMjIuOTQ0MSAyNC4yNzg3QzIzLjE5NDIgMjQuMDI4NyAyMy4zMzQ2IDIzLjY4OTYgMjMuMzM0NiAyMy4zMzU5VjE2LjAwMjZNMTguNjY4IDExLjMzNTlMMjMuMzM0NiAxNi4wMDI2TTE4LjY2OCAxMS4zMzU5VjE2LjAwMjZIMjMuMzM0NlwiIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0IG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICA8ZGl2Pnt7ZmlsZU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWNjZXNzVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAge3tmaWxlU2l6ZX19IEtCIOKAkyBVcGxvYWRlZFxyXG4gICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yOS4zMzQ2IDE0Ljc3MDVWMTUuOTk3MkMyOS4zMzMgMTguODcyNCAyOC40MDIgMjEuNjcwMSAyNi42ODA0IDIzLjk3M0MyNC45NTg5IDI2LjI3NTggMjIuNTM5IDI3Ljk2MDUgMTkuNzgxOCAyOC43NzU3QzE3LjAyNDUgMjkuNTkxIDE0LjA3NzYgMjkuNDkzMSAxMS4zODA2IDI4LjQ5NjdDOC42ODM1NCAyNy41MDAyIDYuMzgwODQgMjUuNjU4NyA0LjgxNTkyIDIzLjI0NjZDMy4yNTA5OSAyMC44MzQ2IDIuNTA3NjkgMTcuOTgxMyAyLjY5Njg3IDE1LjExMjNDMi44ODYwNSAxMi4yNDMzIDMuOTk3NTggOS41MTIzMiA1Ljg2NTY4IDcuMzI2NjVDNy43MzM3NyA1LjE0MDk3IDEwLjI1ODMgMy42MTc3MiAxMy4wNjI5IDIuOTg0MDhDMTUuODY3NCAyLjM1MDQzIDE4LjgwMTcgMi42NDAzMyAyMS40MjggMy44MTA1NU0yOS4zMzQ2IDUuMzMwNTVMMTYuMDAxMyAxOC42NzcyTDEyLjAwMTMgMTQuNjc3MlwiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICA8IS0tIEJ1dHRvbnMgLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC00XCI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTJcIiAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKClcIj5cclxuICAgICAgICAgICAgIENhbmNlbFxyXG4gICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwidHlwZSA9PSAnY3JlYXRlJyA/IGNyZWF0ZUNoZWNrbGlzdCgpIDogdXBkYXRlQ2hlY2tsaXN0KClcIj5cclxuICAgICAgICAgICAgIFByb2NlZWRcclxuICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICBcclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICA8L2Zvcm0+XHJcbiAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXItMCB2YWxpZGF0ZUJveFwiICpuZ0lmPVwiZXhjZWxEYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBtdC0wXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtdC0zXCI+PHNwYW4gY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1zZW1pYm9sZCB3LWF1dG9cIj5Bc3NpZ24gU3RvcmVzPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jYXJkIHJvdW5kZWQtMyBwLTMgZmxleC1jb2x1bW4gaC04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmcgdy0xMDBcIj57e2V4Y2VsRGF0YT8ubGVuZ3RofX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+VG90YWwgUmVjb3JkczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jYXJkIHJvdW5kZWQtMyBwLTMgZmxleC1jb2x1bW4gaC04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPnt7ZXhjZWxEYXRhPy5sZW5ndGh9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPlJvd3MgcHJvY2Vzc2VkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCByb3VuZGVkLTMgcC0zIGZsZXgtY29sdW1uIGgtODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4Y2VsRXJyb3IgPyAnZXJyb3ItaGVhZGluZyc6JydcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tleGNlbEVycm9yPy5lcnJvcj8ubGVuZ3RoIHx8IDB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4Y2VsRXJyb3IgPyAnZXhjZWwtZXJyb3InOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+RXJyb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZXhjZWxFcnJvclwiIGNsYXNzPVwidGFibGUtaGVhZGVyIG10LTVcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PllvdSdyZSBhYm91dCB0byBhc3NpZ24ge3tleGNlbERhdGE/Lmxlbmd0aH19IHN0b3JlcyB0byB0aGUgY2hlY2tsaXN0LiBBcmUgeW91IHN1cmUgd2FudCB0byBwcm9jZWVkPzwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImV4Y2VsRXJyb3JcIiBjbGFzcz1cImZsZXgtY29sdW1uIG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1ib2xkXCI+SW52YWxpZCBEZXRhaWxzICE8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZSBtdC01XCI+UGxlYXNlIHByb3ZpZGUgY29ycmVjdCBhbmQgY29tcGxldGUgbGF5b3V0IGluZm9ybWF0aW9uLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNSB3LTEwMCByb3VuZGVkLTMgYm9yZGVyLWVycm9yIG10LTUgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIGV4Y2VsRXJyb3I/LmVycm9yOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIiBbbmdDbGFzc109XCIhbGFzdCA/ICdtYi0yJyA6ICcnXCIgY2xhc3M9XCJ0ZXh0LWVycm9yXCI+e3tpICsgMX19KSB7e2Vycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIiAjZmlsZUlucHV0MSB0eXBlPVwiZmlsZVwiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC00XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0yXCIgKGNsaWNrKT1cImRpYWxvZ1JlZi5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAqbmdJZj1cIiFleGNlbEVycm9yXCIgKGNsaWNrKT1cInR5cGUgPT0gJ2NyZWF0ZScgPyBjcmVhdGVDaGVja2xpc3QoKSA6IHVwZGF0ZUNoZWNrbGlzdCgpXCI+XHJcbiAgICAgICAgUHJvY2VlZFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImV4Y2VsRXJyb3JcIiBjbGFzcz1cImJ0biBweS0zIG1zLTMgYnRuLWRhbmdlclwiIChjbGljayk9XCJSZXVwbG9hZCgpO1wiPlJldXBsb2FkPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==