blob: 8b33d0a0dff48b3d8efe3cacd7a7f9169e732ac7 [file] [log] [blame]
{"remainingRequest":"/Users/jaslan/Development/nifi-fds/target/frontend-working-directory/node_modules/html-loader/index.js!/Users/jaslan/Development/nifi-fds/target/frontend-working-directory/webapp/components/flow-design-system/fds-demo.html","dependencies":[{"path":"/Users/jaslan/Development/nifi-fds/target/frontend-working-directory/webapp/components/flow-design-system/fds-demo.html","mtime":1563909282404},{"path":"/Users/jaslan/Development/nifi-fds/target/frontend-working-directory/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/jaslan/Development/nifi-fds/target/frontend-working-directory/node_modules/html-loader/index.js","mtime":1516207864000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:bW9kdWxlLmV4cG9ydHMgPSAiPCEtLVxuTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlXG5jb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGhcbnRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC5cblRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wXG4odGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoXG50aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbi0tPlxuXG48bWF0LXNpZGVuYXYtY29udGFpbmVyPlxuICAgIDxtYXQtc2lkZW5hdiAjc2lkZW5hdiBtb2RlPVwib3ZlclwiIHBvc2l0aW9uPVwiZW5kXCIgb3BlbmVkPVwiZmFsc2VcIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgICAgICAgICAgPHA+WW91IGNhbiBhbHNvIG9wZW4gYSBkaWFsb2cgZnJvbSBhIHNpZGUgbmF2LjwvcD5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIChjbGljayk9XCJvcGVuRGlhbG9nKClcIj5TaG93IHNpbXBsZSBkaWFsb2c8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtc2lkZW5hdj5cbiAgICA8ZGl2IGlkPVwiZmRzLWRlbW9cIj5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiPkFwYWNoZSBOaUZpIEZsb3cgRGVzaWduIFN5c3RlbTwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwicGFkLXRvcC1zbVwiPlxuICAgICAgICAgICAgICAgIDxwPldpdGggdGhlIEFwYWNoZSBOaUZpIEZsb3cgRGVzaWduIFN5c3RlbSBtb2R1bGUsIHdlIGdldCBhbiBhdG9taWMsIHJldXNhYmxlIGNvbXBvbmVudCBwbGF0Zm9ybSBmb3JcbiAgICAgICAgICAgICAgICAgICAgQXBhY2hlIE5pRmkgYW5kIGl0cyBzdWItcHJvamVjdHMgdG8gY29uc3VtZSwgd2hpbGUgY29sbGFib3JhdGluZyBpbiBhbiBvcGVuIHNvdXJjZSBtb2RlbC4gVGhpc1xuICAgICAgICAgICAgICAgICAgICBtb2R1bGUgcGFja2FnZXMgdGhlIDxhIGNsYXNzPVwibGlua1wiIGhyZWY9XCJodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50c1wiIHRhcmdldD1cIl9ibGFua1wiPkFuZ3VsYXJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGVyaWFsPC9hPiBtb2R1bGUgYXMgd2VsbCBhcyB0aGUgPGEgY2xhc3M9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vdGVyYWRhdGEuZ2l0aHViLmlvL2NvdmFsZW50LyMvY29tcG9uZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiPlRlcmFkYXRhIENvdmFsZW50PC9hPiBtb2R1bGUuIFRoZXNlXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZXMgaGF2ZSBiZWVuIHRoZW1lZCB0byBtYXRjaCB0aGUgRkRTIGNvbG9yIHBhbGV0dGUuPC9wPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJUeXBvZ3JhcGh5XCI+VHlwb2dyYXBoeSA8bWF0LWljb24gY2xhc3M9XCJsaW5rLXRvLWNvbXBvbmVudFwiIHJvdXRlckxpbms9XCIvXCIgZnJhZ21lbnQ9XCJUeXBvZ3JhcGh5XCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keS0xXCI+RkRTIHByb3ZpZGVzIHR5cG9ncmFwaHkgQ1NTIGNsYXNzZXMgeW91IGNhbiB1c2UgdG8gY3JlYXRlIHZpc3VhbCBjb25zaXN0ZW5jeSBhY3Jvc3MgeW91ciBhcHBsaWNhdGlvbi4gT3B0aW9uYWxseSBzdHlsZSB0YWdzIHdpdGggdGhlIGNsYXNzZXMgc2hvd24gYmVsb3c6PC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0LWFsaWduPVwiY2VudGVyIGVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1kaXNwbGF5LTQ8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1kaXNwbGF5LTRcIj5EaXNwbGF5IDQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1kaXNwbGF5LTM8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1kaXNwbGF5LTNcIj5EaXNwbGF5IDM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1kaXNwbGF5LTI8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1kaXNwbGF5LTJcIj5EaXNwbGF5IDI8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1kaXNwbGF5LTE8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1kaXNwbGF5LTFcIj5EaXNwbGF5IDE8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1oZWFkbGluZTwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWhlYWRsaW5lXCI+SGVhZGxpbmU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1kLXRpdGxlPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC10aXRsZVwiPlRpdGxlPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtYWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGZsZXg9XCIxNVwiPi5tZC1zdWJoZWFkPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1zdWJoZWFkXCI+U3ViaGVhZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LWFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29kZSBmbGV4PVwiMTVcIj4ubGluazwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGlua1wiPkxpbms8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1ib2R5LTE8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTFcIj5Cb2R5IDE8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1ib2R5LTI8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIj5Cb2R5IDI8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgZmxleD1cIjE1XCI+Lm1hdC1jYXB0aW9uPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtY2FwdGlvblwiPkNhcHRpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICA8IVtDREFUQVtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZGlzcGxheS00XCI+RGlzcGxheSA0PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1kaXNwbGF5LTNcIj5EaXNwbGF5IDM8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWRpc3BsYXktMlwiPkRpc3BsYXkgMjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZGlzcGxheS0xXCI+RGlzcGxheSAxPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1oZWFkbGluZVwiPkhlYWRsaW5lPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLXRpdGxlXCI+VGl0bGU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWQtc3ViaGVhZFwiPlN1YmhlYWQ8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGlua1wiPkxpbms8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWJvZHktMVwiPkJvZHkgMTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtYm9keS0yXCI+Qm9keSAyPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uXCI+Q2FwdGlvbjwvc3Bhbj5cbiAgICBdXT5cbiAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGlkPVwiUmFpc2VkQnV0dG9uc1wiPlJhaXNlZCBCdXR0b25zIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIlJhaXNlZEJ1dHRvbnNcIj5saW5rPC9tYXQtaWNvbj48L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8cD5UaXA6IFVzZSBVUFBFUkNBU0UgdGV4dCBmb3IgMS0yIHdvcmRzLCBhbmQgVGl0bGVjYXNlIHRleHQgZm9yIDMrIHdvcmRzLjwvcD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPlByaW1hcnk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCI+QWNjZW50PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIj5XYXJuPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCI+RkRTIFByaW1hcnk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXNlY29uZGFyeVwiPkZEUyBTZWNvbmRhcnk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXJlZ3VsYXJcIj5GRFMgcmVndWxhcjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtd2FyblwiPkZEUyB3YXJuPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1jcml0aWNhbFwiPkZEUyBjcml0aWNhbDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gZGlzYWJsZWQgY29sb3I9XCJwcmltYXJ5XCI+UHJpbWFyeTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gZGlzYWJsZWQgY29sb3I9XCJhY2NlbnRcIj5BY2NlbnQ8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwid2FyblwiPldhcm48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwiZmRzLXByaW1hcnlcIj5GRFMgcHJpbWFyeTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gZGlzYWJsZWQgY29sb3I9XCJmZHMtc2Vjb25kYXJ5XCI+RkRTIFNlY29uZGFyeTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gZGlzYWJsZWQgY29sb3I9XCJmZHMtcmVndWxhclwiPkZEUyByZWd1bGFyPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBkaXNhYmxlZCBjb2xvcj1cImZkcy13YXJuXCI+RkRTIHdhcm48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwiZmRzLWNyaXRpY2FsXCI+RkRTIGNyaXRpY2FsPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgIDwhW0NEQVRBW1xuICAgICAgICA8IS0tIFRoZW1lZCBSYWlzZWQgQnV0dG9ucyAtLT5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5QcmltYXJ5PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIj5TZWNvbmRhcnk8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIj53YXJuPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiPkZEUyBQcmltYXJ5PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtc2Vjb25kYXJ5XCI+RkRTIFNlY29uZGFyeTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXJlZ3VsYXJcIj5GRFMgcmVndWxhcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXdhcm5cIj5GRFMgd2FybjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLWNyaXRpY2FsXCI+RkRTIGNyaXRpY2FsPC9idXR0b24+XG4gICAgICAgIDwhLS0gRGlzYWJsZWQgUmFpc2VkIEJ1dHRvbnMgLS0+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gZGlzYWJsZWQgY29sb3I9XCJwcmltYXJ5XCI+UHJpbWFyeTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwiYWNjZW50XCI+U2Vjb25kYXJ5PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gZGlzYWJsZWQgY29sb3I9XCJ3YXJuXCI+d2FybjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwiZmRzLXByaW1hcnlcIj5GRFMgcHJpbWFyeTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwiZmRzLXNlY29uZGFyeVwiPkZEUyBTZWNvbmRhcnk8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBkaXNhYmxlZCBjb2xvcj1cImZkcy1yZWd1bGFyXCI+RkRTIHJlZ3VsYXI8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBkaXNhYmxlZCBjb2xvcj1cImZkcy13YXJuXCI+RkRTIHdhcm48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBkaXNhYmxlZCBjb2xvcj1cImZkcy1jcml0aWNhbFwiPkZEUyBjcml0aWNhbDwvYnV0dG9uPlxuICAgIF1dPlxuICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJGbGF0QnV0dG9uc1wiPkZsYXQgQnV0dG9ucyA8bWF0LWljb24gY2xhc3M9XCJsaW5rLXRvLWNvbXBvbmVudFwiIHJvdXRlckxpbms9XCIvXCIgZnJhZ21lbnQ9XCJGbGF0QnV0dG9uc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24+RGVmYXVsdDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+UHJpbWFyeTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIj5TZWNvbmRhcnk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwid2FyblwiPldhcm48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGRpc2FibGVkPkRpc2FibGVkIERlZmF1bHQ8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwicHJpbWFyeVwiPkRpc2FibGVkIFByaW1hcnk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGRpc2FibGVkIGNvbG9yPVwiYWNjZW50XCI+RGlzYWJsZWQgU2Vjb25kYXJ5PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBkaXNhYmxlZCBjb2xvcj1cIndhcm5cIj5EaXNhYmxlZCBXYXJuPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICA8IVtDREFUQVtcbiAgICAgICAgPCEtLSBUaGVtZWQgRmxhdCBCdXR0b25zIC0tPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24+RGVmYXVsdDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+UHJpbWFyeTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIj5TZWNvbmRhcnk8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwid2FyblwiPndhcm48L2J1dHRvbj5cbiAgICAgICAgPCEtLSBEaXNhYmxlZCBGbGF0IEJ1dHRvbnMgLS0+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBkaXNhYmxlZD5kaXNhYmxlZCBEZWZhdWx0PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBkaXNhYmxlZCBjb2xvcj1cInByaW1hcnlcIj5kaXNhYmxlZCBwcmltYXJ5PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBkaXNhYmxlZCBjb2xvcj1cImFjY2VudFwiPmRpc2FibGVkIFNlY29uZGFyeTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gZGlzYWJsZWQgY29sb3I9XCJ3YXJuXCI+ZGlzYWJsZWQgd2FybjwvYnV0dG9uPlxuICAgIF1dPlxuICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJGYWJCdXR0b25zXCI+RmFiIEJ1dHRvbnMgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiRmFiQnV0dG9uc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwicGFkLWxlZnQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgY29sb3I9XCJwcmltYXJ5XCI+UDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cImFjY2VudFwiPkE8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgY29sb3I9XCJ3YXJuXCI+VzwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBkaXNhYmxlZCBjb2xvcj1cInByaW1hcnlcIj5QPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGRpc2FibGVkIGNvbG9yPVwiYWNjZW50XCI+QTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBkaXNhYmxlZCBjb2xvcj1cIndhcm5cIj5XPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICA8IVtDREFUQVtcbiAgICAgICAgPCEtLSBUaGVtZWQgRmFiIEJ1dHRvbnMgLS0+XG4gICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiPlA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgY29sb3I9XCJhY2NlbnRcIj5BPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwid2FyblwiPlc8L2J1dHRvbj5cbiAgICAgICAgPCEtLSBEaXNhYmxlZCBGYWIgQnV0dG9ucyAtLT5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgZGlzYWJsZWQgY29sb3I9XCJwcmltYXJ5XCI+UDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBkaXNhYmxlZCBjb2xvcj1cImFjY2VudFwiPkE8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgZGlzYWJsZWQgY29sb3I9XCJ3YXJuXCI+VzwvYnV0dG9uPlxuICAgIF1dPlxuICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJCdXR0b25Ub2dnbGVzXCI+QnV0dG9uIFRvZ2dsZXMgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiQnV0dG9uVG9nZ2xlc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBuYW1lPVwiYWxpZ25tZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5mb3JtYXRfYWxpZ25fbGVmdDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZvcm1hdF9hbGlnbl9jZW50ZXI8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZvcm1hdF9hbGlnbl9yaWdodDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImp1c3RpZnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5mb3JtYXRfYWxpZ25fanVzdGlmeTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJwYWQtdG9wLW1kIHBhZC1ib3QtbWRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgbmFtZT1cIm9uT2ZmVG9nZ2xlXCIgY2xhc3M9XCJvbi1vZmYtdG9nZ2xlLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cIm9uXCIgW2NoZWNrZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgT05cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwib2ZmXCIgY2xhc3M9XCJvZmYtdG9nZ2xlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBPRkZcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInBhZC10b3AtbWQgcGFkLWJvdC1tZFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5zaW9uLXBhbmVsLWZpbHRlci10b2dnbGUtZ3JvdXBcIiBtdWx0aXBsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNTVcIj4zNDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5Bc3NldHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZGlzcGxheS0xIHBhZC10b3Atc21cIiBmeEZsZXg9XCI1NVwiPjMwMDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5FeHRlbnNpb25zPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNTVcIj41MDAwPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC10b3Atc21cIiBmeEZsZXg9XCI0NVwiPkZsb3dzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNTVcIj4wPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC10b3Atc21cIiBmeEZsZXg9XCI0NVwiPkNlcnRpZmljYXRpb25zPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInBhZC10b3AtbWQgcGFkLWJvdC1tZFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBuYW1lPVwiZmRzLWFkbWluaXN0cmF0aW9uLXBlcnNwZWN0aXZlXCIgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInRhYi10b2dnbGUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiZ2VuZXJhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJwYWQtbGVmdC1tZFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJ1c2Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnNcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwicGFkLWxlZnQtbWRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwid29ya2Zsb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtmbG93XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBuYW1lPVwiYWxpZ25tZW50XCI+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmZvcm1hdF9hbGlnbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Zm9ybWF0X2FsaWduX2NlbnRlcjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Zm9ybWF0X2FsaWduX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJqdXN0aWZ5XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmZvcm1hdF9hbGlnbl9qdXN0aWZ5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInBhZC10b3AtbWQgcGFkLWJvdC1tZFwiPjwvZGl2PlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgbmFtZT1cIm9uT2ZmVG9nZ2xlXCIgY2xhc3M9XCJvbi1vZmYtdG9nZ2xlLWdyb3VwXCI+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJvblwiIFtjaGVja2VkXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICBPTlxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cIm9mZlwiIGNsYXNzPVwib2ZmLXRvZ2dsZVwiPlxuICAgICAgICAgICAgICAgIE9GRlxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwicGFkLXRvcC1tZCBwYWQtYm90LW1kXCI+PC9kaXY+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1maWx0ZXItdG9nZ2xlLWdyb3VwXCIgbXVsdGlwbGU+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1kaXNwbGF5LTEgcGFkLXRvcC1zbVwiIGZ4RmxleD1cIjU1XCI+MzQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC10b3Atc21cIiBmeEZsZXg9XCI0NVwiPkFzc2V0czwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNTVcIj4zMDA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC10b3Atc21cIiBmeEZsZXg9XCI0NVwiPkV4dGVuc2lvbnM8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1kaXNwbGF5LTEgcGFkLXRvcC1zbVwiIGZ4RmxleD1cIjU1XCI+NTAwMDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGZ4RmxleD1cIjQ1XCI+Rmxvd3M8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1kaXNwbGF5LTEgcGFkLXRvcC1zbVwiIGZ4RmxleD1cIjU1XCI+MDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGZ4RmxleD1cIjQ1XCI+Q2VydGlmaWNhdGlvbnM8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInBhZC10b3AtbWQgcGFkLWJvdC1tZFwiPjwvZGl2PlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgbmFtZT1cImZkcy1hZG1pbmlzdHJhdGlvbi1wZXJzcGVjdGl2ZVwiIGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJ0YWItdG9nZ2xlLWdyb3VwXCI+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJnZW5lcmFsXCI+XG4gICAgICAgICAgICAgICAgZ2VuZXJhbFxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInBhZC1sZWZ0LW1kXCI+PC9kaXY+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJ1c2Vyc1wiPlxuICAgICAgICAgICAgICAgIFVzZXJzXG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwicGFkLWxlZnQtbWRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cIndvcmtmbG93XCI+XG4gICAgICAgICAgICAgICAgV29ya2Zsb3dcbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgIF1dPlxuICAgICAgPC9wcmU+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cInBhZC1ib3R0b20tc21cIiBpZD1cIklucHV0XCI+SW5wdXQgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiSW5wdXRcIj5saW5rPC9tYXQtaWNvbj48L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8Zm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbG9hdFBsYWNlaG9sZGVyPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJDb21wYW55IChkaXNhYmxlZClcIiBkaXNhYmxlZCB2YWx1ZT1cIkdvb2dsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxvYXRQbGFjZWhvbGRlcj1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGRpc2FibGVkIHBsYWNlaG9sZGVyPVwiRmlyc3QgbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJMb25nIExhc3QgTmFtZSBUaGF0IFdpbGwgQmUgVHJ1bmNhdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmbGV4IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkJ1dHRvbiBBZGRvbiB3aXRoIGRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaW5wdXQtYnV0dG9uXCIgY29sb3I9XCJmZHMtcmVndWxhclwiIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiaW5wdXRCdXR0b25Ecm9wZG93bkFkZG9uTWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Q8aSBjbGFzcz1cImZhIGZhLWNhcmV0LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51IHhQb3NpdGlvbj1cImJlZm9yZVwiICNpbnB1dEJ1dHRvbkRyb3Bkb3duQWRkb25NZW51PVwibWF0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IFJlZnJlc2g8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPiBTZXR0aW5nczwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IEhlbHA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGRpc2FibGVkPiBTaWduIE91dDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmxleCBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbG9hdFBsYWNlaG9sZGVyPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiQnV0dG9uIEFkZG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaW5wdXQtYnV0dG9uXCIgY29sb3I9XCJmZHMtcmVndWxhclwiIG1hdC1yYWlzZWQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmbGV4IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsb2F0UGxhY2Vob2xkZXI9XCJhbHdheXNcIiBmbGV4PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZGlzYWJsZWQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJCdXR0b24gQWRkb24gd2l0aCBkcm9wZG93blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZCBjbGFzcz1cImlucHV0LWJ1dHRvblwiIGNvbG9yPVwiZmRzLXJlZ3VsYXJcIiBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0PGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZsZXggZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxvYXRQbGFjZWhvbGRlcj1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBkaXNhYmxlZCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkJ1dHRvbiBBZGRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZCBjbGFzcz1cImlucHV0LWJ1dHRvblwiIGNvbG9yPVwiZmRzLXJlZ3VsYXJcIiBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJBZGRyZXNzXCIgdmFsdWU9XCIxNjAwIEFtcGhpdGhlYXRyZSBQa3dheVwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbG9hdFBsYWNlaG9sZGVyPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgZGlzYWJsZWQgdmFsdWU9XCJBZGRyZXNzIDIgVmFsdWVcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkFkZHJlc3MgMlwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbG9hdFBsYWNlaG9sZGVyPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJDaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbG9hdFBsYWNlaG9sZGVyPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJTdGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxvYXRQbGFjZWhvbGRlcj1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICNwb3N0YWxDb2RlIG1heGxlbmd0aD1cIjVcIiBwbGFjZWhvbGRlcj1cIlBvc3RhbCBDb2RlXCIgdmFsdWU9XCI5NDA0M1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGludCBhbGlnbj1cImVuZFwiPnt7cG9zdGFsQ29kZS52YWx1ZS5sZW5ndGh9fSAvIDU8L21hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICA8IVtDREFUQVtcbiAgICAgICAgPCEtLSBJbnB1dHMgLS0+XG4gICAgICAgIDxmb3JtPlxuICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxvYXRQbGFjZWhvbGRlcj1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkNvbXBhbnkgKGRpc2FibGVkKVwiIGRpc2FibGVkIHZhbHVlPVwiR29vZ2xlXCI+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxvYXRQbGFjZWhvbGRlcj1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBkaXNhYmxlZCBwbGFjZWhvbGRlcj1cIkZpcnN0IG5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiTG9uZyBMYXN0IE5hbWUgVGhhdCBXaWxsIEJlIFRydW5jYXRlZFwiPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZsZXggZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJCdXR0b24gQWRkb24gd2l0aCBkcm9wZG93blwiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaW5wdXQtYnV0dG9uXCIgY29sb3I9XCJmZHMtcmVndWxhclwiIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImlucHV0QnV0dG9uRHJvcGRvd25BZGRvbk1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdDxpIGNsYXNzPVwiZmEgZmEtY2FyZXQtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSB4UG9zaXRpb249XCJiZWZvcmVcIiAjaW5wdXRCdXR0b25Ecm9wZG93bkFkZG9uTWVudT1cIm1hdE1lbnVcIiBbb3ZlcmxhcFRyaWdnZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gUmVmcmVzaCA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gU2V0dGluZ3MgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IEhlbHAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gZGlzYWJsZWQ+IFNpZ24gT3V0IDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgZmxleCBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxvYXRQbGFjZWhvbGRlcj1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJCdXR0b24gQWRkb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImlucHV0LWJ1dHRvblwiIGNvbG9yPVwiZmRzLXJlZ3VsYXJcIiBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgIDxkaXYgZmxleCBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxvYXRQbGFjZWhvbGRlcj1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZGlzYWJsZWQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJCdXR0b24gQWRkb24gd2l0aCBkcm9wZG93blwiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGRpc2FibGVkIGNsYXNzPVwiaW5wdXQtYnV0dG9uXCIgY29sb3I9XCJmZHMtcmVndWxhclwiIG1hdC1yYWlzZWQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0PGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZsZXggZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsb2F0UGxhY2Vob2xkZXI9XCJhbHdheXNcIiBmbGV4PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGRpc2FibGVkIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiQnV0dG9uIEFkZG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZGlzYWJsZWQgY2xhc3M9XCJpbnB1dC1idXR0b25cIiBjb2xvcj1cImZkcy1yZWd1bGFyXCIgbWF0LXJhaXNlZC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2hcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkFkZHJlc3NcIiB2YWx1ZT1cIjE2MDAgQW1waGl0aGVhdHJlIFBrd2F5XCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1tYXJnaW4+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbG9hdFBsYWNlaG9sZGVyPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGRpc2FibGVkIHZhbHVlPVwiQWRkcmVzcyAyIFZhbHVlXCIgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJBZGRyZXNzIDJcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsb2F0UGxhY2Vob2xkZXI9XCJhbHdheXNcIiBmbGV4PlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJDaXR5XCI+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsb2F0UGxhY2Vob2xkZXI9XCJhbHdheXNcIiBmbGV4PlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJTdGF0ZVwiPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbG9hdFBsYWNlaG9sZGVyPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICNwb3N0YWxDb2RlIG1heGxlbmd0aD1cIjVcIiBwbGFjZWhvbGRlcj1cIlBvc3RhbCBDb2RlXCIgdmFsdWU9XCI5NDA0M1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQgYWxpZ249XCJlbmRcIj57e3Bvc3RhbENvZGUudmFsdWUubGVuZ3RofX0gLyA1PC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICBdXT5cbiAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGlkPVwiVGFic1wiPlRhYnMgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiVGFic1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIGR5bmFtaWNIZWlnaHQgY29sb3I9XCJhY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5PbmU8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5GaXJzdCB0YWIgY29udGVudDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5QbGFpZCBlY2hvIHBhcmsga25hdXNnYWFyZCBub3JtY29yZSBmcmFuemVuIGNyb251dC4gUGlja2xlZCBodW1ibGVicmFnIHRvZnUgaG9vZGllLCB1bWFtaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbHZpYSBmYXJtLXRvLXRhYmxlIHNjaGxpdHogdHJ5LWhhcmQgZm9vZCB0cnVjayBrbmF1c2dhYXJkIHBhYnN0LiBZdWNjaWUgcG9ydGxhbmQgamVhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0cywgYXV0aGVudGljIG1peHRhcGUgd2Fpc3Rjb2F0IGdlbnRyaWZ5IGJsdWUgYm90dGxlLiBGaXhpZSBraWNrc3RhcnRlciBjaHVyY2gta2V5IHNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmF0Y2ggc2VpdGFuLCBzaGFiYnkgY2hpYyB2ZWdhbiBsaXN0aWNsZSBiZWZvcmUgdGhleSBzb2xkIG91dC4gSGFtbW9jayByYXcgZGVuaW0gZmxhbm5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdXNsZWQgc2VpdGFuIHlvdSBwcm9iYWJseSBoYXZlbid0IGhlYXJkIG9mIHRoZW0uIFRydXN0IGZ1bmQgbWFuIGJ1biBwdWcsIGtpY2tzdGFydGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJ0aXNhbiBzZWx2YWdlIGxldHRlcnByZXNzIGNvcm5ob2xlIHRvdGUgYmFnIGJ1dGNoZXIgbG9jYXZvcmUuIEFmZm9nYXRvIHRyeS1oYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2lja3N0YXJ0ZXIgc2VpdGFuLCBESVkgcGlja2xlZCBoZWxsYSBnb2RhcmQgcG9yayBiZWxseSBmb3VyIGxva28gdWdoLjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlR3bzwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlNlY29uZCB0YWIgY29udGVudDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5IYXNodGFnIGRpc3RpbGxlcnkgc2thdGVib2FyZCBtYW4gYnVuIGdvY2h1amFuZywgc2FsdmlhIG1hbiBicmFpZCBhcnQgcGFydHkgbWVnZ2luZ3MgaGVpcmxvb21cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXRzY2ggZmFybS10by10YWJsZS4gRnJhbnplbiBiZWFyZCBmaW5nZXJzdGFjaGUgZ2VudHJpZnksIGhlaXJsb29tIHBvcnRsYW5kIGVubnVpIFhPWE9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWNyb2Rvc2luZyBraXRzY2ggcGxhaWQuIENoaWNoYXJyb25lcyBidXNod2ljayBjaGlhLCBiYW5oIG1pIGlyb255IHRhdHRvb2VkIGhhbW1vY2sgYnV0Y2hlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWJieSBjaGljIHRheGlkZXJteSBzZW1pb3RpY3MgbWFyZmEgcG9zdC1pcm9uaWMuIEJsdWUgYm90dGxlIGtlZmZpeWVoIGZhcm0tdG8tdGFibGUgZW5udWksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbWJyYXkgcGl0Y2hmb3JrIGFydCBwYXJ0eSBwaW50ZXJlc3QgYXJ0aXNhbiBwb3AtdXAuIEV0c3kgYmFuam8gbWFyZmEsIGJsdWUgYm90dGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga29tYnVjaGEgY3J1Y2lmaXggWE9YTyB0b3VzbGVkIGJlYXJkLiBUaWxkZSBkaXNydXB0IGthbGUgY2hpcHMgYmljeWNsZSByaWdodHMgc2thdGVib2FyZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc3RlciBjbGVhbnNlIGhlbGxhIHNob3JlZGl0Y2gsIG1lZGl0YXRpb24gcmV0cm8gc2hhYmJ5IGNoaWMgdmljZSBoZWlybG9vbS4gRXRzeSBsaXN0aWNsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpY2UgYWN0dWFsbHksIGlQaG9uZSBjaGlhIGhvb2RpZSBmb3VyIGxva28uPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8bWF0LXRhYi1ncm91cCBkeW5hbWljSGVpZ2h0IGNvbG9yPVwiYWNjZW50XCI+XG4gICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5GaXJzdCB0YWIgY29udGVudDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8aDE+Rmlyc3QgY29udGVudDwvaDE+XG4gICAgICAgICAgICA8cD4uLi48L3A+XG4gICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgIDxtYXQtdGFiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+U2Vjb25kIHRhYiBjb250ZW50PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxoMT5TZWNvbmQgdGFiIGNvbnRlbnQ8L2gxPlxuICAgICAgICAgICAgPHA+Li4uPC9wPlxuICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJTdGVwcGVyXCI+U3RlcHBlciA8bWF0LWljb24gY2xhc3M9XCJsaW5rLXRvLWNvbXBvbmVudFwiIHJvdXRlckxpbms9XCIvXCIgZnJhZ21lbnQ9XCJTdGVwcGVyXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHRkLXN0ZXBzIG1vZGU9XCJ2ZXJ0aWNhbFwiPlxuICAgICAgICAgICAgICAgICAgICA8dGQtc3RlcCBsYWJlbD1cIlZlcnNpb24gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmxhYmVsPVwiYnkgQWRtaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBzdHJldGNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwibWQtYm9keS0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRzIGdvIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJtYXQtY2FwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbiBob3VyIGFnb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQtc3RlcD5cbiAgICAgICAgICAgICAgICAgICAgPHRkLXN0ZXAgbGFiZWw9XCJWZXJzaW9uIDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJsYWJlbD1cImJ5IEFkbWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm1kLWJvZHktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50cyBnbyBoZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwibWF0LWNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBkYXkgYWdvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZC1zdGVwPlxuICAgICAgICAgICAgICAgIDwvdGQtc3RlcHM+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDx0ZC1zdGVwcyBtb2RlPVwidmVydGljYWxcIj5cbiAgICAgICAgICAgIDx0ZC1zdGVwIGxhYmVsPVwiVmVyc2lvbiAxXCJcbiAgICAgICAgICAgICAgICAgICAgIHN1YmxhYmVsPVwiYnkgQWRtaW5cIlxuICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwibWQtYm9keS0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiBnb2VzIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm1hdC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBBbiBob3VyIGFnb1xuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQtc3RlcD5cbiAgICAgICAgICAgIDx0ZC1zdGVwIGxhYmVsPVwiVmVyc2lvbiAyXCJcbiAgICAgICAgICAgICAgICAgICAgIHN1YmxhYmVsPVwiYnkgQWRtaW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJtZC1ib2R5LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uIGdvZXMgaGVyZVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwibWF0LWNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEEgZGF5IGFnb1xuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQtc3RlcD5cbiAgICAgICAgPC90ZC1zdGVwcz5cbiAgICAgICAgXV0+XG4gICAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGlkPVwiQXV0b2NvbXBsZXRlXCI+QXV0b2NvbXBsZXRlIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIkF1dG9jb21wbGV0ZVwiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgbGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxleD1cIjUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJTdGF0ZVwiIFttYXRBdXRvY29tcGxldGVdPVwidGRBdXRvXCIgWyhuZ01vZGVsKV09XCJjdXJyZW50U3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNtb2RlbERpcj1cIm5nTW9kZWxcIiAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLnRkU3RhdGVzID0gZmlsdGVyU3RhdGVzKGN1cnJlbnRTdGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0ZERpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1c2gtdG9wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwibW9kZWxEaXIucmVzZXQoKVwiIGNsYXNzPVwidGV4dC11cHBlclwiPlJlc2V0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiY3VycmVudFN0YXRlPSdDYWxpZm9ybmlhJ1wiIGNsYXNzPVwidGV4dC11cHBlclwiPlNldCB2YWx1ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInRkRGlzYWJsZWQ9IXRkRGlzYWJsZWRcIiBjbGFzcz1cInRleHQtdXBwZXJcIj5Ub2dnbGUgZGlzYWJsZWQ8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjdGRBdXRvPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdGF0ZSBvZiB0ZFN0YXRlc1wiIFt2YWx1ZV09XCJzdGF0ZS5uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzdGF0ZS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZW1vLXNlY29uZGFyeS10ZXh0XCI+ICh7e3N0YXRlLmNvZGV9fSkgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGxheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbGV4PVwiNTBcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJTdGF0ZVwiIFttYXRBdXRvY29tcGxldGVdPVwidGRBdXRvXCIgWyhuZ01vZGVsKV09XCJjdXJyZW50U3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAjbW9kZWxEaXI9XCJuZ01vZGVsXCIgKG5nTW9kZWxDaGFuZ2UpPVwidGhpcy50ZFN0YXRlcyA9IGZpbHRlclN0YXRlcyhjdXJyZW50U3RhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRkRGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHVzaC10b3BcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwibW9kZWxEaXIucmVzZXQoKVwiIGNsYXNzPVwidGV4dC11cHBlclwiPlJlc2V0PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImN1cnJlbnRTdGF0ZT0nQ2FsaWZvcm5pYSdcIiBjbGFzcz1cInRleHQtdXBwZXJcIj5TZXQgdmFsdWU8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwidGREaXNhYmxlZD0hdGREaXNhYmxlZFwiIGNsYXNzPVwidGV4dC11cHBlclwiPlRvZ2dsZSBkaXNhYmxlZDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3RkQXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHN0YXRlIG9mIHRkU3RhdGVzXCIgW3ZhbHVlXT1cInN0YXRlLm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57IHsgc3RhdGUubmFtZSB9IH08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZW1vLXNlY29uZGFyeS10ZXh0XCI+ICh7IHtzdGF0ZS5jb2RlfSB9KSA8L3NwYW4+XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgXV0+XG4gICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJqYXZhc2NyaXB0XCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUgPSAnJztcbiAgICAgICAgdGhpcy5yZWFjdGl2ZVN0YXRlcyA9ICcnO1xuICAgICAgICB0aGlzLnRkU3RhdGVzID0gW107XG4gICAgICAgIHRoaXMudGREaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlcyA9IFtcbiAgICAgICAgICAgIHsgY29kZTogJ0FMJywgbmFtZTogJ0FsYWJhbWEnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdBSycsIG5hbWU6ICdBbGFza2EnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdBWicsIG5hbWU6ICdBcml6b25hJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnQVInLCBuYW1lOiAnQXJrYW5zYXMnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdDQScsIG5hbWU6ICdDYWxpZm9ybmlhJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnQ08nLCBuYW1lOiAnQ29sb3JhZG8nIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdDVCcsIG5hbWU6ICdDb25uZWN0aWN1dCcgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ0RFJywgbmFtZTogJ0RlbGF3YXJlJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnRkwnLCBuYW1lOiAnRmxvcmlkYScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ0dBJywgbmFtZTogJ0dlb3JnaWEnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdISScsIG5hbWU6ICdIYXdhaWknIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdJRCcsIG5hbWU6ICdJZGFobycgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ0lMJywgbmFtZTogJ0lsbGlub2lzJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnSU4nLCBuYW1lOiAnSW5kaWFuYScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ0lBJywgbmFtZTogJ0lvd2EnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdLUycsIG5hbWU6ICdLYW5zYXMnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdLWScsIG5hbWU6ICdLZW50dWNreScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ0xBJywgbmFtZTogJ0xvdWlzaWFuYScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ01FJywgbmFtZTogJ01haW5lJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnTUQnLCBuYW1lOiAnTWFyeWxhbmQnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdNQScsIG5hbWU6ICdNYXNzYWNodXNldHRzJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnTUknLCBuYW1lOiAnTWljaGlnYW4nIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdNTicsIG5hbWU6ICdNaW5uZXNvdGEnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdNUycsIG5hbWU6ICdNaXNzaXNzaXBwaScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ01PJywgbmFtZTogJ01pc3NvdXJpJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnTVQnLCBuYW1lOiAnTW9udGFuYScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ05FJywgbmFtZTogJ05lYnJhc2thJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnTlYnLCBuYW1lOiAnTmV2YWRhJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnTkgnLCBuYW1lOiAnTmV3IEhhbXBzaGlyZScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ05KJywgbmFtZTogJ05ldyBKZXJzZXknIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdOTScsIG5hbWU6ICdOZXcgTWV4aWNvJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnTlknLCBuYW1lOiAnTmV3IFlvcmsnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdOQycsIG5hbWU6ICdOb3J0aCBDYXJvbGluYScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ05EJywgbmFtZTogJ05vcnRoIERha290YScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ09IJywgbmFtZTogJ09oaW8nIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdPSycsIG5hbWU6ICdPa2xhaG9tYScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ09SJywgbmFtZTogJ09yZWdvbicgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ1BBJywgbmFtZTogJ1Blbm5zeWx2YW5pYScgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ1JJJywgbmFtZTogJ1Job2RlIElzbGFuZCcgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ1NDJywgbmFtZTogJ1NvdXRoIENhcm9saW5hJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnU0QnLCBuYW1lOiAnU291dGggRGFrb3RhJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnVE4nLCBuYW1lOiAnVGVubmVzc2VlJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnVFgnLCBuYW1lOiAnVGV4YXMnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdVVCcsIG5hbWU6ICdVdGFoJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnVlQnLCBuYW1lOiAnVmVybW9udCcgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ1ZBJywgbmFtZTogJ1ZpcmdpbmlhJyB9LFxuICAgICAgICAgICAgeyBjb2RlOiAnV0EnLCBuYW1lOiAnV2FzaGluZ3RvbicgfSxcbiAgICAgICAgICAgIHsgY29kZTogJ1dWJywgbmFtZTogJ1dlc3QgVmlyZ2luaWEnIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdXSScsIG5hbWU6ICdXaXNjb25zaW4nIH0sXG4gICAgICAgICAgICB7IGNvZGU6ICdXWScsIG5hbWU6ICdXeW9taW5nJyB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIC4uLlxuXG4gICAgICAgIGRpc3BsYXlGbjogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gdmFsdWUubmFtZSA6IHZhbHVlO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbHRlclN0YXRlczogZnVuY3Rpb24odmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsID8gdGhpcy5zdGF0ZXMuZmlsdGVyKChzKSA9PiBzLm5hbWUubWF0Y2gobmV3IFJlZ0V4cCh2YWwsICdnaScpKSkgOiB0aGlzLnN0YXRlcztcbiAgICAgICAgfSxcblxuICAgICAgICAuLi5cbiAgICAgICAgXV0+XG4gICAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGlkPVwiRmlsdGVyXCI+RmlsdGVyIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIkZpbHRlclwiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+QXV0b2NvbXBsZXRlIHdpdGggY2hpcHMgYW5kIG5vIGN1c3RvbSBpbnB1dHM8L2gzPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIG1hdC1zdHJldGNoLXRhYnMgZHluYW1pY0hlaWdodCBjb2xvcj1cImFjY2VudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPkRlbW88L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1c2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWJvZHktMVwiPlR5cGUgYW5kIHNlbGVjdCBhIHByZXNldCBvcHRpb246PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkLWNoaXBzIFtpdGVtc109XCJpdGVtc1wiIFsobmdNb2RlbCldPVwiaXRlbXNSZXF1aXJlTWF0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIGF1dG9jb21wbGV0ZSBzdHJpbmdzXCIgW2Rpc2FibGVkXT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZU1hdGNoPjwvdGQtY2hpcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPkNvZGU8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8dGQtY2hpcHMgW2l0ZW1zXT1cIml0ZW1zXCIgWyhuZ01vZGVsKV09XCJpdGVtc1JlcXVpcmVNYXRjaFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgYXV0b2NvbXBsZXRlIHN0cmluZ3NcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRPbmx5XCIgcmVxdWlyZU1hdGNoPjwvdGQtY2hpcHM+XG4gICAgICAgICAgXV0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJqYXZhc2NyaXB0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIHRoaXMucmVhZE9ubHkgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLml0ZW1zID0gW1xuICAgICAgICAgICAgJ3N0ZXBwZXInLFxuICAgICAgICAgICAgJ2V4cGFuc2lvbi1wYW5lbCcsXG4gICAgICAgICAgICAnbWFya2Rvd24nLFxuICAgICAgICAgICAgJ2hpZ2hsaWdodCcsXG4gICAgICAgICAgICAnbG9hZGluZycsXG4gICAgICAgICAgICAnbWVkaWEnLFxuICAgICAgICAgICAgJ2NoaXBzJyxcbiAgICAgICAgICAgICdodHRwJyxcbiAgICAgICAgICAgICdqc29uLWZvcm1hdHRlcicsXG4gICAgICAgICAgICAncGlwZXMnLFxuICAgICAgICAgICAgJ25lZWQgbW9yZT8nLFxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuaXRlbXNSZXF1aXJlTWF0Y2ggPSB0aGlzLml0ZW1zLnNsaWNlKDAsIDYpO1xuXG4gICAgICAgIC4uLlxuXG4gICAgICAgIHRvZ2dsZVJlYWRPbmx5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZE9ubHkgPSAhdGhpcy5yZWFkT25seTtcbiAgICAgICAgfSxcblxuICAgICAgICAuLi5cbiAgICAgICAgICBdXT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZVJlYWRPbmx5KClcIiBjbGFzcz1cInRleHQtdXBwZXJcIj5Ub2dnbGUgUmVhZE9ubHlcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5BdXRvY29tcGxldGUgd2l0aCBjdXN0b20gaW5wdXRzPC9oMz5cbiAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cCBtYXQtc3RyZXRjaC10YWJzIGR5bmFtaWNIZWlnaHQgY29sb3I9XCJhY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5EZW1vPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdXNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1ib2R5LTFcIj5UeXBlIGFuZCBzZWxlY3Qgb3B0aW9uIG9yIGVudGVyIGN1c3RvbSB0ZXh0IGFuZCBwcmVzcyBlbnRlcjo8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQtY2hpcHMgW2l0ZW1zXT1cIml0ZW1zXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhbnkgc3RyaW5nXCI+PC90ZC1jaGlwcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+Q29kZTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDx0ZC1jaGlwcyBbaXRlbXNdPVwiaXRlbXNcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGFueSBzdHJpbmdcIj48L3RkLWNoaXBzPlxuICAgICAgICAgIF1dPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SmF2YXNjcmlwdDo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiamF2YXNjcmlwdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBW1xuICAgICAgICB0aGlzLml0ZW1zID0gW1xuICAgICAgICAgICAgJ3N0ZXBwZXInLFxuICAgICAgICAgICAgJ2V4cGFuc2lvbi1wYW5lbCcsXG4gICAgICAgICAgICAnbWFya2Rvd24nLFxuICAgICAgICAgICAgJ2hpZ2hsaWdodCcsXG4gICAgICAgICAgICAnbG9hZGluZycsXG4gICAgICAgICAgICAnbWVkaWEnLFxuICAgICAgICAgICAgJ2NoaXBzJyxcbiAgICAgICAgICAgICdodHRwJyxcbiAgICAgICAgICAgICdqc29uLWZvcm1hdHRlcicsXG4gICAgICAgICAgICAncGlwZXMnLFxuICAgICAgICAgICAgJ25lZWQgbW9yZT8nLFxuICAgICAgICBdO1xuICAgICAgICAgIF1dPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPkRlbW8gYWxsb3dpbmcgY3VzdG9tIGlucHV0cyBmb3IgdGFnczwvaDM+XG4gICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgbWF0LXN0cmV0Y2gtdGFicyBkeW5hbWljSGVpZ2h0IGNvbG9yPVwiYWNjZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+RGVtbzwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVzaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtYm9keS0xXCI+VHlwZSBhbnkgdGVzdCBhbmQgcHJlc3MgZW50ZXI6PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkLWNoaXBzIHBsYWNlaG9sZGVyPVwiRW50ZXIgYW55IHN0cmluZ1wiPjwvdGQtY2hpcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPkNvZGU8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8dGQtY2hpcHMgcGxhY2Vob2xkZXI9XCJFbnRlciBhbnkgc3RyaW5nXCI+PC90ZC1jaGlwcz5cbiAgICAgICAgICBdXT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJTZWFyY2hhYmxlRXhwYW5zaW9uUGFuZWxzXCI+U2VhcmNoYWJsZS9GaWx0ZXJhYmxlIEV4cGFuc2lvbiBQYW5lbHMgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiU2VhcmNoYWJsZUV4cGFuc2lvblBhbmVsc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIG1hdC1zdHJldGNoLXRhYnMgY29sb3I9XCJhY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5EZW1vPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLW1kIHBhZC1ib3R0b20tbWQgcGFkLXJpZ2h0LXh4bCBwYWQtbGVmdC14eGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1tZCBwYWQtYm90dG9tLXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1maWx0ZXItdG9nZ2xlLWdyb3VwXCIgbXVsdGlwbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKGNoYW5nZSk9XCJ0b2dnbGVEcm9wbGV0c0ZpbHRlcigndHlwZTphc3NldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0Ryb3BsZXRGaWx0ZXJDaGVja2VkKCd0eXBlOmFzc2V0JylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCI1NVwiPnt7Z2V0RHJvcGxldFR5cGVDb3VudCgnYXNzZXQnKX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5Bc3NldHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKGNoYW5nZSk9XCJ0b2dnbGVEcm9wbGV0c0ZpbHRlcigndHlwZTpleHRlbnNpb24nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNEcm9wbGV0RmlsdGVyQ2hlY2tlZCgndHlwZTpleHRlbnNpb24nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBzdHJldGNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZGlzcGxheS0xIHBhZC10b3Atc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4RmxleD1cIjU1XCI+e3tnZXREcm9wbGV0VHlwZUNvdW50KCdleHRlbnNpb24nKX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5FeHRlbnNpb25zPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIChjaGFuZ2UpPVwidG9nZ2xlRHJvcGxldHNGaWx0ZXIoJ3R5cGU6ZmxvdycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0Ryb3BsZXRGaWx0ZXJDaGVja2VkKCd0eXBlOmZsb3cnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBzdHJldGNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZGlzcGxheS0xIHBhZC10b3Atc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4RmxleD1cIjU1XCI+e3tnZXREcm9wbGV0VHlwZUNvdW50KCdmbG93Jyl9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGZ4RmxleD1cIjQ1XCI+Rmxvd3M8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKGNoYW5nZSk9XCJ0b2dnbGVEcm9wbGV0c0ZpbHRlcignY29tcGxpYW50LmxhYmVsOkNvbXBsaWFudCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0Ryb3BsZXRGaWx0ZXJDaGVja2VkKCdjb21wbGlhbnQubGFiZWw6Q29tcGxpYW50JylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCI1NVwiPnt7Z2V0RHJvcGxldENlcnRpZmljYXRpb25Db3VudCgnY29tcGxpYW50Jyl9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGZ4RmxleD1cIjQ1XCI+Q29tcGxpYW50PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIChjaGFuZ2UpPVwidG9nZ2xlRHJvcGxldHNGaWx0ZXIoJ2ZsZWV0LmxhYmVsOkZsZWV0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzRHJvcGxldEZpbHRlckNoZWNrZWQoJ2ZsZWV0LmxhYmVsOkZsZWV0JylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCI1NVwiPnt7Z2V0RHJvcGxldENlcnRpZmljYXRpb25Db3VudCgnZmxlZXQnKX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5GbGVldDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2hhbmdlKT1cInRvZ2dsZURyb3BsZXRzRmlsdGVyKCdwcm9kLmxhYmVsOlByb2R1Y3Rpb24gUmVhZHknKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNEcm9wbGV0RmlsdGVyQ2hlY2tlZCgncHJvZC5sYWJlbDpQcm9kdWN0aW9uIFJlYWR5JylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCI1NVwiPnt7Z2V0RHJvcGxldENlcnRpZmljYXRpb25Db3VudCgncHJvZCcpfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC10b3Atc21cIiBmeEZsZXg9XCI0NVwiPlByb2R1Y3Rpb24gUmVhZHk8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKGNoYW5nZSk9XCJ0b2dnbGVEcm9wbGV0c0ZpbHRlcignc2VjdXJlLmxhYmVsOlNlY3VyZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0Ryb3BsZXRGaWx0ZXJDaGVja2VkKCdzZWN1cmUubGFiZWw6U2VjdXJlJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCI1NVwiPnt7Z2V0RHJvcGxldENlcnRpZmljYXRpb25Db3VudCgnc2VjdXJlJyl9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGZ4RmxleD1cIjQ1XCI+U2VjdXJlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiZmRzLWRyb3BsZXQtZmlsdGVyLWNsZWFyLWdyb3VwaW5nLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZHJvcGxldHNTZWFyY2hUZXJtcy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkcm9wbGV0c1NlYXJjaFRlcm1zID0gW107ZmlsdGVyRHJvcGxldHMoYWN0aXZlRHJvcGxldENvbHVtbi5uYW1lLCBhY3RpdmVEcm9wbGV0Q29sdW1uLnNvcnRPcmRlcik7XCI+PGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlIGZhLXJvdGF0ZS00NVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGFkLWxlZnQtc20gbGlua1wiPkNsZWFyIEdyb3VwaW5nPC9zcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtYWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkLWNoaXBzIFsobmdNb2RlbCldPVwiZHJvcGxldHNTZWFyY2hUZXJtc1wiIFtpdGVtc109XCJhdXRvQ29tcGxldGVEcm9wbGV0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZCk9XCJmaWx0ZXJEcm9wbGV0cyhhY3RpdmVEcm9wbGV0Q29sdW1uLm5hbWUsIGFjdGl2ZURyb3BsZXRDb2x1bW4uc29ydE9yZGVyKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwiZmlsdGVyRHJvcGxldHMoYWN0aXZlRHJvcGxldENvbHVtbi5uYW1lLCBhY3RpdmVEcm9wbGV0Q29sdW1uLnNvcnRPcmRlcik7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB1c2gtcmlnaHQtc21cIj48L3RkLWNoaXBzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwdXNoLXRvcC1zbSBwYWQtcmlnaHQtc21cIj5Tb3J0IGJ5Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwdXNoLXRvcC1zbVwiIGNvbG9yPVwiZmRzLXByaW1hcnlcIiBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZHJvcGxldEdyaWRTb3J0TWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Z2V0U29ydEJ5KCl9fTxpIGNsYXNzPVwiZmEgZmEtY2FyZXQtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51IGNsYXNzPVwiZmRzLXByaW1hcnktZHJvcGRvd24tYnV0dG9uLW1lbnVcIiAjZHJvcGxldEdyaWRTb3J0TWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW292ZXJsYXBUcmlnZ2VyXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZHJvcGxldENvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnREcm9wbGV0cyhjb2x1bW4pO1wiPnt7Y29sdW1uLmxhYmVsfX0ge3soY29sdW1uLnNvcnRPcmRlciA9PT0gJ0FTQycpID8gJ0RFU0MnIDogJ0FTQyd9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtcmlnaHQteHhsIHBhZC1sZWZ0LXh4bFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRyb3BsZXQgb2YgZmlsdGVyZWREcm9wbGV0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQtZXhwYW5zaW9uLXBhbmVsIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16NVwiIGxhYmVsPXt7ZHJvcGxldC5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibGFiZWw9e3tkcm9wbGV0LnN1YmxhYmVsfX0gW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdGQtZXhwYW5zaW9uLXBhbmVsLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBzdGFydFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLXRpdGxlIHRleHQtY2Fwc1wiPnt7ZHJvcGxldC5kaXNwbGF5TmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLXN1YmhlYWRcIj57e2Ryb3BsZXQudHlwZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0ZC1leHBhbnNpb24tcGFuZWwtc3VibGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXJpZ2h0LXh4bCBwYWQtbGVmdC14eGxcIiBmeExheW91dD1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlclwiPlZlcnNpb25zPC9zcGFuPiB7e2Ryb3BsZXQudmVyc2lvbnMubGVuZ3RofX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtcmlnaHQteHhsIHBhZC1sZWZ0LXh4bFwiIGZ4TGF5b3V0PVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBzdGFydFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+Rmxvd3M8L3NwYW4+IHt7ZHJvcGxldC5mbG93cy5sZW5ndGh9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1yaWdodC14eGwgcGFkLWxlZnQteHhsXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJcIj5FeHRlbnNpb25zPC9zcGFuPiB7e2Ryb3BsZXQuZXh0ZW5zaW9ucy5sZW5ndGh9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1yaWdodC14eGwgcGFkLWxlZnQteHhsXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJcIj5Bc3Nlc3RzPC9zcGFuPiB7e2Ryb3BsZXQuYXNzZXRzLmxlbmd0aH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtcGFkZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBzdHJldGNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInByaW1hcnlCdXR0b25Ecm9wZG93bk1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25zPGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgY2xhc3M9XCJmZHMtcHJpbWFyeS1kcm9wZG93bi1idXR0b24tbWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW1hcnlCdXR0b25Ecm9wZG93bk1lbnU9XCJtYXRNZW51XCIgW292ZXJsYXBUcmlnZ2VyXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZHJvcGxldC5hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7YWN0aW9uLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjI1XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+RGVzY3JpcHRpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+QmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsYSwgYmxhaCBibGFoIGJsYTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCI1MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBmeEZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwicGFkLXRvcC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e2Ryb3BsZXQuaW1nfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMjVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJcIj5DaGFuZ2UgTG9nPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQtZXhwYW5zaW9uLXBhbmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5Db2RlPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLW1kIHBhZC1ib3R0b20tbWQgcGFkLXJpZ2h0LXh4bCBwYWQtbGVmdC14eGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLW1kIHBhZC1ib3R0b20tc21cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1maWx0ZXItdG9nZ2xlLWdyb3VwXCIgbXVsdGlwbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2hhbmdlKT1cInRvZ2dsZURyb3BsZXRzRmlsdGVyKCd0eXBlOmFzc2V0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNEcm9wbGV0RmlsdGVyQ2hlY2tlZCgndHlwZTphc3NldCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZGlzcGxheS0xIHBhZC10b3Atc21cIiBmeEZsZXg9XCI1NVwiPnsge2dldERyb3BsZXRUeXBlQ291bnQoJ2Fzc2V0Jyl9IH08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGZ4RmxleD1cIjQ1XCI+QXNzZXRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIChjaGFuZ2UpPVwidG9nZ2xlRHJvcGxldHNGaWx0ZXIoJ3R5cGU6ZXh0ZW5zaW9uJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNEcm9wbGV0RmlsdGVyQ2hlY2tlZCgndHlwZTpleHRlbnNpb24nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNTVcIj57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnZXREcm9wbGV0VHlwZUNvdW50KCdleHRlbnNpb24nKX0gfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5FeHRlbnNpb25zPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIChjaGFuZ2UpPVwidG9nZ2xlRHJvcGxldHNGaWx0ZXIoJ3R5cGU6ZmxvdycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzRHJvcGxldEZpbHRlckNoZWNrZWQoJ3R5cGU6ZmxvdycpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZGlzcGxheS0xIHBhZC10b3Atc21cIiBmeEZsZXg9XCI1NVwiPnsge2dldERyb3BsZXRUeXBlQ291bnQoJ2Zsb3cnKX0gfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5GbG93czwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2hhbmdlKT1cInRvZ2dsZURyb3BsZXRzRmlsdGVyKCdjb21wbGlhbnQubGFiZWw6Q29tcGxpYW50JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNEcm9wbGV0RmlsdGVyQ2hlY2tlZCgnY29tcGxpYW50LmxhYmVsOkNvbXBsaWFudCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZGlzcGxheS0xIHBhZC10b3Atc21cIiBmeEZsZXg9XCI1NVwiPnsge2dldERyb3BsZXRDZXJ0aWZpY2F0aW9uQ291bnQoJ2NvbXBsaWFudCcpfSB9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC10b3Atc21cIiBmeEZsZXg9XCI0NVwiPkNvbXBsaWFudDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2hhbmdlKT1cInRvZ2dsZURyb3BsZXRzRmlsdGVyKCdmbGVldC5sYWJlbDpGbGVldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzRHJvcGxldEZpbHRlckNoZWNrZWQoJ2ZsZWV0LmxhYmVsOkZsZWV0JylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBzdHJldGNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1kaXNwbGF5LTEgcGFkLXRvcC1zbVwiIGZ4RmxleD1cIjU1XCI+eyB7Z2V0RHJvcGxldENlcnRpZmljYXRpb25Db3VudCgnZmxlZXQnKX0gfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNDVcIj5GbGVldDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2hhbmdlKT1cInRvZ2dsZURyb3BsZXRzRmlsdGVyKCdwcm9kLmxhYmVsOlByb2R1Y3Rpb24gUmVhZHknKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0Ryb3BsZXRGaWx0ZXJDaGVja2VkKCdwcm9kLmxhYmVsOlByb2R1Y3Rpb24gUmVhZHknKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpc3BsYXktMSBwYWQtdG9wLXNtXCIgZnhGbGV4PVwiNTVcIj57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnZXREcm9wbGV0Q2VydGlmaWNhdGlvbkNvdW50KCdwcm9kJyl9IH08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLXRvcC1zbVwiIGZ4RmxleD1cIjQ1XCI+UHJvZHVjdGlvbiBSZWFkeTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2hhbmdlKT1cInRvZ2dsZURyb3BsZXRzRmlsdGVyKCdzZWN1cmUubGFiZWw6U2VjdXJlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNEcm9wbGV0RmlsdGVyQ2hlY2tlZCgnc2VjdXJlLmxhYmVsOlNlY3VyZScpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgc3RyZXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZGlzcGxheS0xIHBhZC10b3Atc21cIiBmeEZsZXg9XCI1NVwiPnsge2dldERyb3BsZXRDZXJ0aWZpY2F0aW9uQ291bnQoJ3NlY3VyZScpfSB9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC10b3Atc21cIiBmeEZsZXg9XCI0NVwiPlNlY3VyZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlRHJvcGxldENvbHVtblwiIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkcm9wbGV0c1NlYXJjaFRlcm1zID0gW107ZmlsdGVyRHJvcGxldHMoYWN0aXZlRHJvcGxldENvbHVtbi5uYW1lLCBhY3RpdmVEcm9wbGV0Q29sdW1uLnNvcnRPcmRlcik7XCI+Q2xlYXIgR3JvdXBpbmc8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtYWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZC1jaGlwcyBbKG5nTW9kZWwpXT1cImRyb3BsZXRzU2VhcmNoVGVybXNcIiBbaXRlbXNdPVwiYXV0b0NvbXBsZXRlRHJvcGxldHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZCk9XCJmaWx0ZXJEcm9wbGV0cyhhY3RpdmVEcm9wbGV0Q29sdW1uLm5hbWUsIGFjdGl2ZURyb3BsZXRDb2x1bW4uc29ydE9yZGVyKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJmaWx0ZXJEcm9wbGV0cyhhY3RpdmVEcm9wbGV0Q29sdW1uLm5hbWUsIGFjdGl2ZURyb3BsZXRDb2x1bW4uc29ydE9yZGVyKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwdXNoLXJpZ2h0LXNtXCI+PC90ZC1jaGlwcz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWQtcmlnaHQtc21cIj5Tb3J0IGJ5Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRyb3BsZXRHcmlkU29ydE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsge2dldFNvcnRCeSgpfSB9PGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgY2xhc3M9XCJmZHMtcHJpbWFyeS1kcm9wZG93bi1idXR0b24tbWVudVwiICNkcm9wbGV0R3JpZFNvcnRNZW51PVwibWF0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZHJvcGxldENvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiIChjbGljayk9XCJzb3J0RHJvcGxldHMoY29sdW1uKTtcIj57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbHVtbi5sYWJlbH0gfSB7IHsoY29sdW1uLnNvcnRPcmRlciA9PT0gJ0FTQycpID8gJ0RFU0MnIDogJ0FTQyd9IH08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1yaWdodC14eGwgcGFkLWxlZnQteHhsXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkcm9wbGV0IG9mIGZpbHRlcmVkRHJvcGxldHNcIj5cbiAgICAgICAgICAgICAgICA8dGQtZXhwYW5zaW9uLXBhbmVsIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16NVwiIGxhYmVsPXsge2Ryb3BsZXQubGFiZWx9IH0gc3VibGFiZWw9eyB7ZHJvcGxldC5zdWJsYWJlbH0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0ZC1leHBhbnNpb24tcGFuZWwtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLXRpdGxlIHRleHQtY2Fwc1wiPnsge2Ryb3BsZXQuZGlzcGxheU5hbWV9IH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1zdWJoZWFkXCI+eyB7ZHJvcGxldC50eXBlfSB9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0ZC1leHBhbnNpb24tcGFuZWwtc3VibGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1yaWdodC14eGwgcGFkLWxlZnQteHhsXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+VmVyc2lvbnM8L3NwYW4+IHsge2Ryb3BsZXQudmVyc2lvbnMubGVuZ3RofSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1yaWdodC14eGwgcGFkLWxlZnQteHhsXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+Rmxvd3M8L3NwYW4+IHsge2Ryb3BsZXQuZmxvd3MubGVuZ3RofSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1yaWdodC14eGwgcGFkLWxlZnQteHhsXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+RXh0ZW5zaW9uczwvc3Bhbj4geyB7ZHJvcGxldC5leHRlbnNpb25zLmxlbmd0aH0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtcmlnaHQteHhsIHBhZC1sZWZ0LXh4bFwiIGZ4TGF5b3V0PVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlclwiPkFzc2VzdHM8L3NwYW4+IHsge2Ryb3BsZXQuYXNzZXRzLmxlbmd0aH0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtcGFkZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0cmV0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInByaW1hcnlCdXR0b25Ecm9wZG93bk1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uczxpIGNsYXNzPVwiZmEgZmEtY2FyZXQtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSBjbGFzcz1cImZkcy1wcmltYXJ5LWRyb3Bkb3duLWJ1dHRvbi1tZW51XCIgI3ByaW1hcnlCdXR0b25Ecm9wZG93bk1lbnU9XCJtYXRNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZHJvcGxldC5hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+eyB7YWN0aW9uLm5hbWV9IH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMjVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlclwiPkRlc2NyaXB0aW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+QmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYUJsYWggYmxhaCBibGEsIGJsYSBibGEsIGJsYWggYmxhaCBibGFCbGFoIGJsYWggYmxhLCBibGEgYmxhLCBibGFoIGJsYWggYmxhQmxhaCBibGFoIGJsYSwgYmxhIGJsYSwgYmxhaCBibGFoIGJsYTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBmeEZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJwYWQtdG9wLXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwieyB7ZHJvcGxldC5pbWd9IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCIyNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+Q2hhbmdlIExvZzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1ib3R0b20tc21cIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBdXT5cbiAgICAgICAgICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImphdmFzY3JpcHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBW1xuICAgICAgICB0aGlzLmRhdGFUYWJsZVNlcnZpY2UgPSBUZERhdGFUYWJsZVNlcnZpY2U7XG5cbiAgICAgICAgdGhpcy5kcm9wbGV0cyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJzIzZjZjYzU5LTAxNTYtMTAwMC0wOWI0LTJiMDYxMDA4OTA5MCcsXG4gICAgICAgICAgICAgICAgbmFtZTogXCJEZWNvbXByZXNzaW9uX0NpcmN1bGFyX0Zsb3dcIixcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0RlY29tcHJlc3NlZCBDaXJjdWxhciBmbG93JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmxvdycsXG4gICAgICAgICAgICAgICAgc3VibGFiZWw6ICdBIHN1YmxhYmVsJyxcbiAgICAgICAgICAgICAgICBjb21wbGlhbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICcyNWZkNnZ2ODctMzU0OS0wMDAxLTA1ZzYtNGQ0NTY3ODkwNzY1JyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb21wbGlhbnQnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2VydGlmaWNhdGlvbidcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGZsZWV0OiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAnMjNmNmNjNTktMzU0OS0wMDAxLTA1ZzYtNGQ0NTY3ODkwNzY1JyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdGbGVldCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjZXJ0aWZpY2F0aW9uJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcHJvZDoge1xuICAgICAgICAgICAgICAgICAgICBpZDogJzUyZmQ2dnY4Ny0zNTQ5LTAwMDEtMDVnNi00ZDQ1Njc4OTA3NjUnLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Byb2R1Y3Rpb24gUmVhZHknLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2VydGlmaWNhdGlvbidcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNlY3VyZToge1xuICAgICAgICAgICAgICAgICAgICBpZDogJzMyZjZjYzU5LTM1NDktMDAwMS0wNWc2LTRkNDU2Nzg5MDc2NScsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU2VjdXJlJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NlcnRpZmljYXRpb24nXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2ZXJzaW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJzIzZjZjYzU5LTAxNTYtMTAwMC0wNmI0LTJiMDgxMDA4OTA5MCcsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZpc2lvbjogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50Rmxvd3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnMjVmZDZ2djg3LTM1NDktMDAwMS0wNWc2LTRkNDU2Nzg5MDc2NSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZDogZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpIC0gMSksXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkOiBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnMjVmZDZ2djg3LTM1NDktMDAwMS0wNWc2LTRkNDU2Nzg5MDc2NScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZpc2lvbjogJzInLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50Rmxvd3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnMjNmNmNjNTktMDE1Ni0xMDAwLTA2YjQtMmIwODEwMDg5MDkwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZDogbmV3IERhdGUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBmbG93czogW10sXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogW10sXG4gICAgICAgICAgICAgICAgYXNzZXRzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0RlbGV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdmYSBmYS1jbG9zZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndG9vbHRpcCc6ICdEZWxldGUgVXNlcidcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnTWFuYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogJ2ZhIGZhLXVzZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Rvb2x0aXAnOiAnTWFuYWdlIFVzZXInXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0FjdGlvbiAzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogJ2ZhIGZhLXF1ZXN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ1doYXRldmVyIGVsc2Ugd2Ugd2FudCB0byBkby4uLidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICcyNWZkNnZ2ODctMzI0OS0wMDAxLTA1ZzYtNGQ0NzY3ODkwNzY1JyxcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkRhdGVDb252ZXJzaW9uXCIsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdEYXRlIGNvbnZlcnNpb24nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgICAgICAgc3VibGFiZWw6ICdBIHN1YmxhYmVsJyxcbiAgICAgICAgICAgICAgICBjb21wbGlhbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICcyNWZkNnZ2MzQtMzU0OS0wMDAxLTA1ZzYtNGQ0NTY3ODkwNzY1JyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb21wbGlhbnQnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2VydGlmaWNhdGlvbidcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByb2Q6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MnZuNnZ2ODctMzU0OS0wMDAxLTA1ZzYtNGQ0NTY3ODkwNzY1JyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdQcm9kdWN0aW9uIFJlYWR5JyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NlcnRpZmljYXRpb24nXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2ZXJzaW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJzIzZjZpYzU5LTAxNTYtMTAwMC0wNmI0LTJiMDgxMDA4OTA5MCcsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZpc2lvbjogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50Rmxvd3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnMjNmNmNjMTktMDE1Ni0xMDAwLTA2YjQtMmIwODEwMDg5MDkwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZDogbmV3IERhdGUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBmbG93czogW10sXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogW10sXG4gICAgICAgICAgICAgICAgYXNzZXRzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0RlbGV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdmYSBmYS1jbG9zZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndG9vbHRpcCc6ICdEZWxldGUgVXNlcidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICc1MmZkNnZ2ODctMzI5NC0wMDAxLTA1ZzYtNGQ0NzY3ODkwNzY1JyxcbiAgICAgICAgICAgICAgICBuYW1lOiBcIm5pZmktZW1haWwtYnVuZGxlXCIsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICduaWZpLWVtYWlsLWJ1bmRsZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2V4dGVuc2lvbicsXG4gICAgICAgICAgICAgICAgc3VibGFiZWw6ICdBIHN1YmxhYmVsJyxcbiAgICAgICAgICAgICAgICBjb21wbGlhbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICczM2ZkNnZ2ODctMzU0OS0wMDAxLTA1ZzYtNGQ0NTY3ODkwNzY1JyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb21wbGlhbnQnLFxuICAgICAgICAgICAgICAgICAgICB0ZXN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3Rlc3QnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjZXJ0aWZpY2F0aW9uJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmVyc2lvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICcyM2QzY2M1OS0wMTU2LTEwMDAtMDZiNC0yYjA4MTAwODkwOTAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb246ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudEZsb3dzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogJzIzZjZjYzg5LTAxNTYtMTAwMC0wNmI0LTJiMDgxMDA4OTA5MCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZDogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZmxvd3M6IFtdLFxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IFtdLFxuICAgICAgICAgICAgICAgIGFzc2V0czogW10sXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdEZWxldGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiAnZmEgZmEtY2xvc2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Rvb2x0aXAnOiAnRGVsZXRlIFVzZXInXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ01hbmFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdmYSBmYS11c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ01hbmFnZSBVc2VyJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICB9XTtcblxuICAgICAgICB0aGlzLmZpbHRlcmVkRHJvcGxldHMgPSBbXTtcblxuICAgICAgICB0aGlzLmRyb3BsZXRDb2x1bW5zID0gW1xuICAgICAgICAgICAgeyBuYW1lOiAnaWQnLCBsYWJlbDogJ0lEJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCBsYWJlbDogJ05hbWUnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZGlzcGxheU5hbWUnLCBsYWJlbDogJ0Rpc3BsYXkgTmFtZScsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdzdWJsYWJlbCcsIGxhYmVsOiAnTGFiZWwnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAndHlwZScsIGxhYmVsOiAnVHlwZScsIHNvcnRhYmxlOiB0cnVlIH1cbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZURyb3BsZXRzID0gW107XG4gICAgICAgIHRoaXMuZHJvcGxldHNTZWFyY2hUZXJtcyA9IFtdO1xuXG4gICAgICAgIC4uLlxuXG4gICAgICAgIGlzRHJvcGxldEZpbHRlckNoZWNrZWQ6IGZ1bmN0aW9uKHRlcm0pIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5kcm9wbGV0c1NlYXJjaFRlcm1zLmluZGV4T2YodGVybSkgPiAtMSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZ2V0RHJvcGxldFR5cGVDb3VudDogZnVuY3Rpb24odHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWREcm9wbGV0cy5maWx0ZXIoZnVuY3Rpb24oZHJvcGxldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkcm9wbGV0LnR5cGUgPT09IHR5cGU7XG4gICAgICAgICAgICB9KS5sZW5ndGg7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZ2V0RHJvcGxldENlcnRpZmljYXRpb25Db3VudDogZnVuY3Rpb24oY2VydGlmaWNhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWREcm9wbGV0cy5maWx0ZXIoZHJvcGxldCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGRyb3BsZXQpLmZpbmQoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBjZXJ0aWZpY2F0aW9uICYmIGRyb3BsZXRbY2VydGlmaWNhdGlvbl0udHlwZSA9PT0gJ2NlcnRpZmljYXRpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZHJvcGxldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkubGVuZ3RoO1xuICAgICAgICB9LFxuXG4gICAgICAgIGdldFNvcnRCeTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgc29ydEJ5Q29sdW1uTGFiZWw7XG4gICAgICAgICAgICB2YXIgYXJyYXlMZW5ndGggPSB0aGlzLmRyb3BsZXRDb2x1bW5zLmxlbmd0aDtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRyb3BsZXRDb2x1bW5zW2ldLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBzb3J0QnlDb2x1bW5MYWJlbCA9IHRoaXMuZHJvcGxldENvbHVtbnNbaV0ubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzb3J0QnlDb2x1bW5MYWJlbDtcbiAgICAgICAgfSxcblxuICAgICAgICBzb3J0RHJvcGxldHM6IGZ1bmN0aW9uKGNvbHVtbikge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5zb3J0YWJsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIC8vIHRvZ2dsZSBjb2x1bW4gc29ydCBvcmRlclxuICAgICAgICAgICAgICAgIHZhciBzb3J0T3JkZXIgPSBjb2x1bW4uc29ydE9yZGVyID0gKGNvbHVtbi5zb3J0T3JkZXIgPT09ICdBU0MnKSA/ICdERVNDJyA6ICdBU0MnO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRHJvcGxldHMoY29sdW1uLm5hbWUsIHNvcnRPcmRlcik7XG5cbiAgICAgICAgICAgICAgICAvL29ubHkgb25lIGNvbHVtbiBjYW4gYmUgYWN0aXZlbHkgc29ydGVkIHNvIHdlIHJlc2V0IGFsbCB0byBpbmFjdGl2ZVxuICAgICAgICAgICAgICAgIHRoaXMuZHJvcGxldENvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAvL2FuZCBzZXQgdGhpcyBjb2x1bW4gYXMgdGhlIGFjdGl2ZWx5IHNvcnRlZCBjb2x1bW5cbiAgICAgICAgICAgICAgICBjb2x1bW4uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURyb3BsZXRDb2x1bW4gPSBjb2x1bW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9nZ2xlRHJvcGxldHNGaWx0ZXI6IGZ1bmN0aW9uKHNlYXJjaFRlcm0pIHtcbiAgICAgICAgICAgIHZhciBhcHBseVNlYXJjaFRlcm0gPSB0cnVlO1xuICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHNlYXJjaCB0ZXJtIGlzIGFscmVhZHkgYXBwbGllZCBhbmQgcmVtb3ZlIGl0IGlmIHRydWVcbiAgICAgICAgICAgIGlmICh0aGlzLmRyb3BsZXRzU2VhcmNoVGVybXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHZhciBhcnJheUxlbmd0aCA9IHRoaXMuZHJvcGxldHNTZWFyY2hUZXJtcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheUxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuZHJvcGxldHNTZWFyY2hUZXJtcy5pbmRleE9mKHNlYXJjaFRlcm0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wbGV0c1NlYXJjaFRlcm1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBseVNlYXJjaFRlcm0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgd2UganVzdCByZW1vdmVkIHRoZSBzZWFyY2ggdGVybSBkbyBOT1QgYXBwbHkgaXQgYWdhaW5cbiAgICAgICAgICAgIGlmIChhcHBseVNlYXJjaFRlcm0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyb3BsZXRzU2VhcmNoVGVybXMucHVzaChzZWFyY2hUZXJtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5maWx0ZXJEcm9wbGV0cyh0aGlzLmFjdGl2ZURyb3BsZXRDb2x1bW4ubmFtZSwgdGhpcy5hY3RpdmVEcm9wbGV0Q29sdW1uLnNvcnRPcmRlcik7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmlsdGVyRHJvcGxldHM6IGZ1bmN0aW9uKHNvcnRCeSwgc29ydE9yZGVyKSB7XG4gICAgICAgICAgICAvLyBpZiBgc29ydEJ5YCBpcyBgdW5kZWZpbmVkYCB0aGVuIGZpbmQgdGhlIGZpcnN0IHNvcnRhYmxlIGNvbHVtbiBpbiB0aGlzLmRyb3BsZXRDb2x1bW5zXG4gICAgICAgICAgICBpZiAoc29ydEJ5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXJyYXlMZW5ndGggPSB0aGlzLmRyb3BsZXRDb2x1bW5zLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5TGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZHJvcGxldENvbHVtbnNbaV0uc29ydGFibGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeSA9IHRoaXMuZHJvcGxldENvbHVtbnNbaV0ubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRHJvcGxldENvbHVtbiA9IHRoaXMuZHJvcGxldENvbHVtbnNbaV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25seSBvbmUgY29sdW1uIGNhbiBiZSBhY3RpdmVseSBzb3J0ZWQgc28gd2UgcmVzZXQgYWxsIHRvIGluYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BsZXRDb2x1bW5zLmZvckVhY2goYyA9PiBjLmFjdGl2ZSA9IGZhbHNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy9hbmQgc2V0IHRoaXMgY29sdW1uIGFzIHRoZSBhY3RpdmVseSBzb3J0ZWQgY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BsZXRDb2x1bW5zW2ldLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgYHNvcnRPcmRlcmAgaXMgYHVuZGVmaW5lZGAgdGhlbiB1c2UgJ0FTQydcbiAgICAgICAgICAgIGlmIChzb3J0T3JkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHNvcnRPcmRlciA9ICdBU0MnXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBuZXdEYXRhID0gdGhpcy5kcm9wbGV0cztcblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRyb3BsZXRzU2VhcmNoVGVybXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBuZXdEYXRhID0gdGhpcy5maWx0ZXJEYXRhKG5ld0RhdGEsIHRoaXMuZHJvcGxldHNTZWFyY2hUZXJtc1tpXSwgdHJ1ZSwgdGhpcy5hY3RpdmVEcm9wbGV0Q29sdW1uLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuZXdEYXRhID0gdGhpcy5kYXRhVGFibGVTZXJ2aWNlLnNvcnREYXRhKG5ld0RhdGEsIHNvcnRCeSwgc29ydE9yZGVyKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREcm9wbGV0cyA9IG5ld0RhdGE7XG4gICAgICAgICAgICB0aGlzLmdldEF1dG9Db21wbGV0ZURyb3BsZXRzKCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZ2V0QXV0b0NvbXBsZXRlRHJvcGxldHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVEcm9wbGV0cyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kcm9wbGV0Q29sdW1ucy5mb3JFYWNoKGMgPT4gdGhpcy5maWx0ZXJlZERyb3BsZXRzLmZvckVhY2gociA9PiAocltjLm5hbWUudG9Mb3dlckNhc2UoKV0pID8gdGhpcy5hdXRvQ29tcGxldGVEcm9wbGV0cy5wdXNoKHJbYy5uYW1lLnRvTG93ZXJDYXNlKCldLnRvU3RyaW5nKCkpIDogJycpKTtcbiAgICAgICAgfSxcblxuICAgICAgICBmaWx0ZXJEYXRhOiBmdW5jdGlvbihkYXRhLCBzZWFyY2hUZXJtLCBpZ25vcmVDYXNlKSB7XG4gICAgICAgICAgICB2YXIgZmllbGQgPSAnJztcbiAgICAgICAgICAgIGlmIChzZWFyY2hUZXJtLmluZGV4T2YoXCI6XCIpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmaWVsZCA9IHNlYXJjaFRlcm0uc3BsaXQoJzonKVswXS50cmltKCk7XG4gICAgICAgICAgICAgICAgc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0uc3BsaXQoJzonKVsxXS50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZmlsdGVyID0gc2VhcmNoVGVybSA/IChpZ25vcmVDYXNlID8gc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpIDogc2VhcmNoVGVybSkgOiAnJztcblxuICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSBPYmplY3Qua2V5cyhpdGVtKS5maW5kKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5pbmRleE9mKFwiLlwiKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9iakFycmF5ID0gZmllbGQuc3BsaXQoXCIuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvYmogPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcnJheUxlbmd0aCA9IG9iakFycmF5Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5TGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iaiA9IG9ialtvYmpBcnJheVtpXV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJlSXRlbVZhbHVlID0gKCcnICsgb2JqKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVZhbHVlID0gaWdub3JlQ2FzZSA/IHByZUl0ZW1WYWx1ZS50b0xvd2VyQ2FzZSgpIDogcHJlSXRlbVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtVmFsdWUuaW5kZXhPZihmaWx0ZXIpID4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkgIT09IGZpZWxkICYmIGZpZWxkICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmVJdGVtVmFsdWUgPSAoJycgKyBpdGVtW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtVmFsdWUgPSBpZ25vcmVDYXNlID8gcHJlSXRlbVZhbHVlLnRvTG93ZXJDYXNlKCkgOiBwcmVJdGVtVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1WYWx1ZS5pbmRleE9mKGZpbHRlcikgPiAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhKHR5cGVvZiByZXMgPT09ICd1bmRlZmluZWQnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9LFxuXG4gICAgICAgIC4uLlxuICAgICAgICAgIF1dPlxuICAgICAgICAgICAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJUYWJsZVwiPlRhYmxlIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIlRhYmxlXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHA+RXhhbXBsZSB0YWJsZSB3aXRoOiBQYWdpbmcgQmFyIC8gRmlsdGVyIC8gU29ydGFibGUgQ29sdW1ucyAvIE11bHRpLXNlbGVjdCB3aXRoIGF2YWlsYWJsZSBBY3Rpb25zPC9wPlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIG1hdC1zdHJldGNoLXRhYnMgY29sb3I9XCJhY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5EZW1vPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LWFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhZC10b3AtbWQgcGFkLWJvdHRvbS1zbSBwYWQtbGVmdC1tZCBwYWQtcmlnaHQtbWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYmxlLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+VGFibGUgdGl0bGU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmxleCBjbGFzcz1cInB1c2gtcmlnaHQtc21cIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZC1jaGlwcyBbaXRlbXNdPVwiYXV0b0NvbXBsZXRlRGF0YVwiIChhZGQpPVwic2VhcmNoQWRkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJzZWFyY2hSZW1vdmUoJGV2ZW50KVwiPjwvdGQtY2hpcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwdXNoLXRvcC1zbVwiIGNvbG9yPVwiZmRzLXByaW1hcnlcIiBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJkYXRhVGFibGVBY3Rpb25NZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25zPGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgY2xhc3M9XCJmZHMtcHJpbWFyeS1kcm9wZG93bi1idXR0b24tbWVudVwiICNkYXRhVGFibGVBY3Rpb25NZW51PVwibWF0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IE9wdGlvbiAxPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gT3B0aW9uIDI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkLWxlZnQtbWQgcGFkLXJpZ2h0LW1kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiIGNsYXNzPVwidGQtZGF0YS10YWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQtZGF0YS10YWJsZS1jb2x1bW5cIiAoY2xpY2spPVwic29ydCgkZXZlbnQsIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbHVtbi50b29sdGlwXCIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCJ7e2NvbHVtbi53aWR0aH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImNvbHVtbi5hY3RpdmUgJiYgY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5zb3J0T3JkZXIgPT09ICdBU0MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtY2FyZXQtdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImNvbHVtbi5hY3RpdmUgJiYgY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5zb3J0T3JkZXIgPT09ICdERVNDJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWNhcmV0LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbHVtbi5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQtZGF0YS10YWJsZS1jb2x1bW5cIiBmeEZsZXg9MTA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwicGFkLWxlZnQtc21cIiBbKG5nTW9kZWwpXT1cImFsbFJvd3NTZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZCk9XCJhbGxSb3dzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVTZWxlY3RBbGwoKVwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBjbGFzcz1cInRkLWRhdGEtdGFibGUtcm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IHJvdy5jaGVja2VkfVwiICpuZ0Zvcj1cImxldCByb3cgb2YgZmlsdGVyZWREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicm93LmNoZWNrZWQgPSAhcm93LmNoZWNrZWQ7dG9nZ2xlU2VsZWN0KHJvdylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1kYXRhLXRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCJ7e2NvbHVtbi53aWR0aH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5uYW1lICE9PSAnY29tbWVudHMnIHx8IHJvd1snY29tbWVudHMnXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbHVtbi5mb3JtYXQgPyBjb2x1bW4uZm9ybWF0KHJvd1tjb2x1bW4ubmFtZV0pIDogcm93W2NvbHVtbi5uYW1lXX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1kYXRhLXRhYmxlLWNlbGxcIiBmeEZsZXg9MTA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJvdy5hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyb3cuYWN0aW9ucy5sZW5ndGggPD0gNFwiIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicm93LmNoZWNrZWQgPSAhcm93LmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJvdy5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7YWN0aW9uLnRvb2x0aXB9fVwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQgPyAnJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7YWN0aW9uLmljb259fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cInBhZC1sZWZ0LXNtXCIgWyhuZ01vZGVsKV09XCJyb3cuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJvdy5jaGVja2VkXCIgKGNoYW5nZSk9XCJ0b2dnbGVTZWxlY3Qocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyb3cuY2hlY2tlZCA9ICFyb3cuY2hlY2tlZDt0b2dnbGVTZWxlY3Qocm93KVwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJvdy5hY3Rpb25zLmxlbmd0aCA+IDRcIiBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJvdy5jaGVja2VkID0gIXJvdy5jaGVja2VkXCIgbWF0VG9vbHRpcD1cIkFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGFibGVBY3Rpb25NZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbGxpcHNpcy1oXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI3RhYmxlQWN0aW9uTWVudT1cIm1hdE1lbnVcIiBbb3ZlcmxhcFRyaWdnZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2Ygcm93LmFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7YWN0aW9uLnRvb2x0aXB9fVwiIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQgPyAnJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2FjdGlvbi5pY29ufX1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7YWN0aW9uLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwicGFkLWxlZnQtc21cIiBbKG5nTW9kZWwpXT1cInJvdy5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwicm93LmNoZWNrZWRcIiAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdChyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdy5jaGVja2VkID0gIXJvdy5jaGVja2VkO3RvZ2dsZVNlbGVjdChyb3cpXCI+PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcm93LmFjdGlvbnNcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJwYWQtbGVmdC1zbVwiIFsobmdNb2RlbCldPVwicm93LmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJvdy5jaGVja2VkXCIgKGNoYW5nZSk9XCJ0b2dnbGVTZWxlY3Qocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdy5jaGVja2VkID0gIXJvdy5jaGVja2VkO3RvZ2dsZVNlbGVjdChyb3cpXCI+PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1wYWRkaW5nXCIgKm5nSWY9XCIhZmlsdGVyZWREYXRhLmxlbmd0aCA+IDBcIiBsYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LWFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+Tm8gcmVzdWx0cyB0byBkaXNwbGF5LjwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkLXBhZ2luZy1iYXIgI3BhZ2luZ0JhciBbaW5pdGlhbFBhZ2VdPVwiMVwiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFt0b3RhbF09XCJwYWdlQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicGFnZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGhpZGUteHM+Um93IHBlciBwYWdlOjwvc3Bhbj4ge3twYWdpbmdCYXIucmFuZ2V9fSA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlLXhzPm9mIHt7cGFnaW5nQmFyLnRvdGFsfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZC1wYWdpbmctYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5Db2RlPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LWFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBjbGFzcz1cInBhZC10b3AtbWQgcGFkLWJvdHRvbS1zbSBwYWQtbGVmdC1tZCBwYWQtcmlnaHQtbWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFibGUtdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuPlRhYmxlIHRpdGxlPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBmbGV4IGNsYXNzPVwicHVzaC1yaWdodC1zbVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8dGQtY2hpcHMgW2l0ZW1zXT1cImF1dG9Db21wbGV0ZURhdGFcIiAoYWRkKT1cInNlYXJjaEFkZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJzZWFyY2hSZW1vdmUoJGV2ZW50KVwiPjwvdGQtY2hpcHM+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRhdGFUYWJsZUFjdGlvbk1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgQWN0aW9uczxpIGNsYXNzPVwiZmEgZmEtY2FyZXQtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1tZW51IGNsYXNzPVwiZmRzLXByaW1hcnktZHJvcGRvd24tYnV0dG9uLW1lbnVcIiAjZGF0YVRhYmxlQWN0aW9uTWVudT1cIm1hdE1lbnVcIiBbb3ZlcmxhcFRyaWdnZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IE9wdGlvbiAxIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gT3B0aW9uIDIgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1sZWZ0LW1kIHBhZC1yaWdodC1tZFwiPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiIGNsYXNzPVwidGQtZGF0YS10YWJsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1kYXRhLXRhYmxlLWNvbHVtblwiIChjbGljayk9XCJzb3J0KCRldmVudCwgY29sdW1uKVwiIFttYXRUb29sdGlwXT1cImNvbHVtbi50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIGZ4RmxleD1cInsgeyBjb2x1bW4ud2lkdGggfSB9XCI+XG4gICAgICAgICAgICAgICAgICAgIHsgeyBjb2x1bW4ubGFiZWwgfSB9XG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiY29sdW1uLmFjdGl2ZSAmJiBjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLnNvcnRPcmRlciA9PT0gJ0FTQydcIiBjbGFzcz1cImZhIGZhLWNhcmV0LXVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImNvbHVtbi5hY3RpdmUgJiYgY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5zb3J0T3JkZXIgPT09ICdERVNDJ1wiIGNsYXNzPVwiZmEgZmEtY2FyZXQtZG93blwiXG4gICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQtZGF0YS10YWJsZS1jb2x1bW5cIiBmeEZsZXg9MTA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cInBhZC1sZWZ0LXNtXCIgWyhuZ01vZGVsKV09XCJhbGxSb3dzU2VsZWN0ZWRcIiAoY2hlY2tlZCk9XCJhbGxSb3dzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgpXCI+PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBjbGFzcz1cInRkLWRhdGEtdGFibGUtcm93XCJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnIDogcm93LmNoZWNrZWR9XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBmaWx0ZXJlZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdy5jaGVja2VkID0gIXJvdy5jaGVja2VkO3RvZ2dsZVNlbGVjdChyb3cpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1kYXRhLXRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIiBmeEZsZXg9XCJ7IHsgY29sdW1uLndpZHRoIH0gfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5uYW1lICE9PSAnY29tbWVudHMnIHx8IHJvd1snY29tbWVudHMnXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyBjb2x1bW4uZm9ybWF0ID8gY29sdW1uLmZvcm1hdChyb3dbY29sdW1uLm5hbWVdKSA6IHJvd1tjb2x1bW4ubmFtZV0gfSB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1kYXRhLXRhYmxlLWNlbGxcIiBmeEZsZXg9MTA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LmFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LmFjdGlvbnMubGVuZ3RoIDw9IDRcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJvdy5jaGVja2VkID0gIXJvdy5jaGVja2VkXCIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3cuYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInsgeyBhY3Rpb24udG9vbHRpcCB9IH1cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQgPyAnJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwieyB7IGFjdGlvbi5pY29uIH0gfVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJwYWQtbGVmdC1zbVwiIFsobmdNb2RlbCldPVwicm93LmNoZWNrZWRcIiBbY2hlY2tlZF09XCJyb3cuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVTZWxlY3Qocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdy5jaGVja2VkID0gIXJvdy5jaGVja2VkO3RvZ2dsZVNlbGVjdChyb3cpXCI+PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJvdy5hY3Rpb25zLmxlbmd0aCA+IDRcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJvdy5jaGVja2VkID0gIXJvdy5jaGVja2VkXCIgbWF0VG9vbHRpcD1cIkFjdGlvbnNcIiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJ0YWJsZUFjdGlvbk1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjdGFibGVBY3Rpb25NZW51PVwibWF0TWVudVwiIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJvdy5hY3Rpb25zXCIgbWF0VG9vbHRpcD1cInsgeyBhY3Rpb24udG9vbHRpcCB9IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQgPyAnJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInsgeyBhY3Rpb24uaWNvbiB9IH1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+eyB7IGFjdGlvbi5uYW1lIH0gfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwicGFkLWxlZnQtc21cIiBbKG5nTW9kZWwpXT1cInJvdy5jaGVja2VkXCIgW2NoZWNrZWRdPVwicm93LmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlU2VsZWN0KHJvdylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyb3cuY2hlY2tlZCA9ICFyb3cuY2hlY2tlZDt0b2dnbGVTZWxlY3Qocm93KVwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXJvdy5hY3Rpb25zXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJwYWQtbGVmdC1zbVwiIFsobmdNb2RlbCldPVwicm93LmNoZWNrZWRcIiBbY2hlY2tlZF09XCJyb3cuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdChyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyb3cuY2hlY2tlZCA9ICFyb3cuY2hlY2tlZDt0b2dnbGVTZWxlY3Qocm93KVwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LXBhZGRpbmdcIiAqbmdJZj1cIiFmaWx0ZXJlZERhdGEubGVuZ3RoID4gMFwiIGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDM+Tm8gcmVzdWx0cyB0byBkaXNwbGF5LjwvaDM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx0ZC1wYWdpbmctYmFyICNwYWdpbmdCYXIgW2luaXRpYWxQYWdlXT1cIjFcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbdG90YWxdPVwicGFnZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicGFnZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gaGlkZS14cz5Sb3cgcGVyIHBhZ2U6PC9zcGFuPiB7IHsgcGFnaW5nQmFyLnJhbmdlIH0gfSA8c3BhbiBoaWRlLXhzPm9mIHtcbiAgICAgICAgICAgICAgICB7IHBhZ2luZ0Jhci50b3RhbCB9IH08L3NwYW4+XG4gICAgICAgICAgICA8L3RkLXBhZ2luZy1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAgIF1dPlxuICAgICAgICAgICAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkphdmFzY3JpcHQ6PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiamF2YXNjcmlwdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIHRoaXMuZGF0YVRhYmxlU2VydmljZSA9IFRkRGF0YVRhYmxlU2VydmljZTtcblxuICAgICAgICB0aGlzLmRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJ2lkJzogMSxcbiAgICAgICAgICAgICAgICAnbmFtZSc6ICdGcm96ZW4geW9ndXJ0JyxcbiAgICAgICAgICAgICAgICAndHlwZSc6ICdJY2UgY3JlYW0nLFxuICAgICAgICAgICAgICAgICdjYWxvcmllcyc6IDE1OS4wLFxuICAgICAgICAgICAgICAgICdmYXQnOiA2LjAsXG4gICAgICAgICAgICAgICAgJ2NhcmJzJzogMjQuMCxcbiAgICAgICAgICAgICAgICAncHJvdGVpbic6IDQuMCxcbiAgICAgICAgICAgICAgICAnc29kaXVtJzogODcuMCxcbiAgICAgICAgICAgICAgICAnY2FsY2l1bSc6IDE0LjAsXG4gICAgICAgICAgICAgICAgJ2lyb24nOiAxLjAsXG4gICAgICAgICAgICAgICAgJ2NvbW1lbnRzJzogJ0kgbG92ZSBmcm95byEnLFxuICAgICAgICAgICAgICAgICdhY3Rpb25zJzogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdBY3Rpb24gMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdmYSBmYS11c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ01hbmFnZSBVc2VycydcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiAnZmEgZmEta2V5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ01hbmFnZSBQZXJtaXNzaW9ucydcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJ2lkJzogMixcbiAgICAgICAgICAgICAgICAnbmFtZSc6ICdJY2UgY3JlYW0gc2FuZHdpY2gnLFxuICAgICAgICAgICAgICAgICd0eXBlJzogJ0ljZSBjcmVhbScsXG4gICAgICAgICAgICAgICAgJ2NhbG9yaWVzJzogMjM3LjAsXG4gICAgICAgICAgICAgICAgJ2ZhdCc6IDkuMCxcbiAgICAgICAgICAgICAgICAnY2FyYnMnOiAzNy4wLFxuICAgICAgICAgICAgICAgICdwcm90ZWluJzogNC4zLFxuICAgICAgICAgICAgICAgICdzb2RpdW0nOiAxMjkuMCxcbiAgICAgICAgICAgICAgICAnY2FsY2l1bSc6IDguMCxcbiAgICAgICAgICAgICAgICAnaXJvbic6IDEuMCxcbiAgICAgICAgICAgICAgICAnYWN0aW9ucyc6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiAnZmEgZmEtdXNlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAndG9vbHRpcCc6ICdNYW5hZ2UgVXNlcnMnXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0FjdGlvbiAyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogJ2ZhIGZhLWtleScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndG9vbHRpcCc6ICdNYW5hZ2UgUGVybWlzc2lvbnMnXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0FjdGlvbiAzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ0FjdGlvbiAzJ1xuICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdBY3Rpb24gNCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZWQnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Rvb2x0aXAnOiAnQWN0aW9uIDQnXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0FjdGlvbiA1JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ0FjdGlvbiA1J1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnaWQnOiAzLFxuICAgICAgICAgICAgICAgICduYW1lJzogJ0VjbGFpcicsXG4gICAgICAgICAgICAgICAgJ3R5cGUnOiAnUGFzdHJ5JyxcbiAgICAgICAgICAgICAgICAnY2Fsb3JpZXMnOiAyNjIuMCxcbiAgICAgICAgICAgICAgICAnZmF0JzogMTYuMCxcbiAgICAgICAgICAgICAgICAnY2FyYnMnOiAyNC4wLFxuICAgICAgICAgICAgICAgICdwcm90ZWluJzogNi4wLFxuICAgICAgICAgICAgICAgICdzb2RpdW0nOiAzMzcuMCxcbiAgICAgICAgICAgICAgICAnY2FsY2l1bSc6IDYuMCxcbiAgICAgICAgICAgICAgICAnaXJvbic6IDcuMCxcbiAgICAgICAgICAgICAgICAnYWN0aW9ucyc6IFt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdBY3Rpb24gMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdmYSBmYS11c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ01hbmFnZSBVc2VycydcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiAnZmEgZmEta2V5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ01hbmFnZSBQZXJtaXNzaW9ucydcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Rvb2x0aXAnOiAnQWN0aW9uIDMnXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0FjdGlvbiA0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlZCc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAndG9vbHRpcCc6ICdBY3Rpb24gNCdcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Rvb2x0aXAnOiAnQWN0aW9uIDUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnaWQnOiA0LFxuICAgICAgICAgICAgICAgICduYW1lJzogJ0N1cGNha2UnLFxuICAgICAgICAgICAgICAgICd0eXBlJzogJ1Bhc3RyeScsXG4gICAgICAgICAgICAgICAgJ2NhbG9yaWVzJzogMzA1LjAsXG4gICAgICAgICAgICAgICAgJ2ZhdCc6IDMuNyxcbiAgICAgICAgICAgICAgICAnY2FyYnMnOiA2Ny4wLFxuICAgICAgICAgICAgICAgICdwcm90ZWluJzogNC4zLFxuICAgICAgICAgICAgICAgICdzb2RpdW0nOiA0MTMuMCxcbiAgICAgICAgICAgICAgICAnY2FsY2l1bSc6IDMuMCxcbiAgICAgICAgICAgICAgICAnaXJvbic6IDguMCxcbiAgICAgICAgICAgICAgICAnYWN0aW9ucyc6IFt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdBY3Rpb24gMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdmYSBmYS11c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ01hbmFnZSBVc2VycydcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiAnZmEgZmEta2V5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0b29sdGlwJzogJ01hbmFnZSBQZXJtaXNzaW9ucydcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Rvb2x0aXAnOiAnQWN0aW9uIDMnXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ0FjdGlvbiA0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlZCc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAndG9vbHRpcCc6ICdBY3Rpb24gNCdcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnQWN0aW9uIDUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Rvb2x0aXAnOiAnQWN0aW9uIDUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnaWQnOiA1LFxuICAgICAgICAgICAgICAgICduYW1lJzogJ0plbGx5IGJlYW4nLFxuICAgICAgICAgICAgICAgICd0eXBlJzogJ0NhbmR5JyxcbiAgICAgICAgICAgICAgICAnY2Fsb3JpZXMnOiAzNzUuMCxcbiAgICAgICAgICAgICAgICAnZmF0JzogMC4wLFxuICAgICAgICAgICAgICAgICdjYXJicyc6IDk0LjAsXG4gICAgICAgICAgICAgICAgJ3Byb3RlaW4nOiAwLjAsXG4gICAgICAgICAgICAgICAgJ3NvZGl1bSc6IDUwLjAsXG4gICAgICAgICAgICAgICAgJ2NhbGNpdW0nOiAwLjAsXG4gICAgICAgICAgICAgICAgJ2lyb24nOiAwLjAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICdpZCc6IDYsXG4gICAgICAgICAgICAgICAgJ25hbWUnOiAnTG9sbGlwb3AnLFxuICAgICAgICAgICAgICAgICd0eXBlJzogJ0NhbmR5JyxcbiAgICAgICAgICAgICAgICAnY2Fsb3JpZXMnOiAzOTIuMCxcbiAgICAgICAgICAgICAgICAnZmF0JzogMC4yLFxuICAgICAgICAgICAgICAgICdjYXJicyc6IDk4LjAsXG4gICAgICAgICAgICAgICAgJ3Byb3RlaW4nOiAwLjAsXG4gICAgICAgICAgICAgICAgJ3NvZGl1bSc6IDM4LjAsXG4gICAgICAgICAgICAgICAgJ2NhbGNpdW0nOiAwLjAsXG4gICAgICAgICAgICAgICAgJ2lyb24nOiAyLjAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICdpZCc6IDcsXG4gICAgICAgICAgICAgICAgJ25hbWUnOiAnSG9uZXljb21iJyxcbiAgICAgICAgICAgICAgICAndHlwZSc6ICdPdGhlcicsXG4gICAgICAgICAgICAgICAgJ2NhbG9yaWVzJzogNDA4LjAsXG4gICAgICAgICAgICAgICAgJ2ZhdCc6IDMuMixcbiAgICAgICAgICAgICAgICAnY2FyYnMnOiA4Ny4wLFxuICAgICAgICAgICAgICAgICdwcm90ZWluJzogNi41LFxuICAgICAgICAgICAgICAgICdzb2RpdW0nOiA1NjIuMCxcbiAgICAgICAgICAgICAgICAnY2FsY2l1bSc6IDAuMCxcbiAgICAgICAgICAgICAgICAnaXJvbic6IDQ1LjAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICdpZCc6IDgsXG4gICAgICAgICAgICAgICAgJ25hbWUnOiAnRG9udXQnLFxuICAgICAgICAgICAgICAgICd0eXBlJzogJ1Bhc3RyeScsXG4gICAgICAgICAgICAgICAgJ2NhbG9yaWVzJzogNDUyLjAsXG4gICAgICAgICAgICAgICAgJ2ZhdCc6IDI1LjAsXG4gICAgICAgICAgICAgICAgJ2NhcmJzJzogNTEuMCxcbiAgICAgICAgICAgICAgICAncHJvdGVpbic6IDQuOSxcbiAgICAgICAgICAgICAgICAnc29kaXVtJzogMzI2LjAsXG4gICAgICAgICAgICAgICAgJ2NhbGNpdW0nOiAyLjAsXG4gICAgICAgICAgICAgICAgJ2lyb24nOiAyMi4wLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnaWQnOiA5LFxuICAgICAgICAgICAgICAgICduYW1lJzogJ0tpdEthdCcsXG4gICAgICAgICAgICAgICAgJ3R5cGUnOiAnQ2FuZHknLFxuICAgICAgICAgICAgICAgICdjYWxvcmllcyc6IDUxOC4wLFxuICAgICAgICAgICAgICAgICdmYXQnOiAyNi4wLFxuICAgICAgICAgICAgICAgICdjYXJicyc6IDY1LjAsXG4gICAgICAgICAgICAgICAgJ3Byb3RlaW4nOiA3LjAsXG4gICAgICAgICAgICAgICAgJ3NvZGl1bSc6IDU0LjAsXG4gICAgICAgICAgICAgICAgJ2NhbGNpdW0nOiAxMi4wLFxuICAgICAgICAgICAgICAgICdpcm9uJzogNi4wLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnaWQnOiAxMCxcbiAgICAgICAgICAgICAgICAnbmFtZSc6ICdDaG9jb2xhdGUnLFxuICAgICAgICAgICAgICAgICd0eXBlJzogJ0NhbmR5JyxcbiAgICAgICAgICAgICAgICAnY2Fsb3JpZXMnOiA1MTguMCxcbiAgICAgICAgICAgICAgICAnZmF0JzogMjYuMCxcbiAgICAgICAgICAgICAgICAnY2FyYnMnOiA2NS4wLFxuICAgICAgICAgICAgICAgICdwcm90ZWluJzogNy4wLFxuICAgICAgICAgICAgICAgICdzb2RpdW0nOiA1NC4wLFxuICAgICAgICAgICAgICAgICdjYWxjaXVtJzogMTIuMCxcbiAgICAgICAgICAgICAgICAnaXJvbic6IDYuMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJ2lkJzogMTEsXG4gICAgICAgICAgICAgICAgJ25hbWUnOiAnQ2hhbW95JyxcbiAgICAgICAgICAgICAgICAndHlwZSc6ICdDYW5keScsXG4gICAgICAgICAgICAgICAgJ2NhbG9yaWVzJzogNTE4LjAsXG4gICAgICAgICAgICAgICAgJ2ZhdCc6IDI2LjAsXG4gICAgICAgICAgICAgICAgJ2NhcmJzJzogNjUuMCxcbiAgICAgICAgICAgICAgICAncHJvdGVpbic6IDcuMCxcbiAgICAgICAgICAgICAgICAnc29kaXVtJzogNTQuMCxcbiAgICAgICAgICAgICAgICAnY2FsY2l1bSc6IDEyLjAsXG4gICAgICAgICAgICAgICAgJ2lyb24nOiA2LjAsXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGE7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRUb3RhbCA9IHRoaXMuZGF0YS5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy5jb2x1bW5zID0gW1xuICAgICAgICAgICAgeyBuYW1lOiAnY29tbWVudHMnLCBsYWJlbDogJ0NvbW1lbnRzJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnbmFtZScsIGxhYmVsOiAnRGVzc2VydCAoMTAwZyBzZXJ2aW5nKScsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICd0eXBlJywgbGFiZWw6ICdUeXBlJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2NhbG9yaWVzJywgbGFiZWw6ICdDYWxvcmllcycsIG51bWVyaWM6IHRydWUsIGZvcm1hdDogTlVNQkVSX0ZPUk1BVCwgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZhdCcsIGxhYmVsOiAnRmF0IChnKScsIG51bWVyaWM6IHRydWUsIGZvcm1hdDogREVDSU1BTF9GT1JNQVQsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdjYXJicycsIGxhYmVsOiAnQ2FyYnMgKGcpJywgbnVtZXJpYzogdHJ1ZSwgZm9ybWF0OiBOVU1CRVJfRk9STUFULCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3Byb3RlaW4nLCBsYWJlbDogJ1Byb3RlaW4gKGcpJywgbnVtZXJpYzogdHJ1ZSwgZm9ybWF0OiBERUNJTUFMX0ZPUk1BVCwgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3NvZGl1bScsIGxhYmVsOiAnU29kaXVtIChtZyknLCBudW1lcmljOiB0cnVlLCBmb3JtYXQ6IE5VTUJFUl9GT1JNQVQsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7bmFtZTogJ2NhbGNpdW0nLCBsYWJlbDogJ0NhbGNpdW0gKCUpJywgbnVtZXJpYzogdHJ1ZSwgZm9ybWF0OiBOVU1CRVJfRk9STUFULCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaXJvbicsIGxhYmVsOiAnSXJvbiAoJSknLCBudW1lcmljOiB0cnVlLCBmb3JtYXQ6IE5VTUJFUl9GT1JNQVQgfSxcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLmFsbFJvd3NTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZURhdGEgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBbXTtcblxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSBbXTtcbiAgICAgICAgdGhpcy5mcm9tUm93ID0gMTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSA1O1xuXG4gICAgICAgIC4uLlxuXG4gICAgICAgIHNvcnQ6IGZ1bmN0aW9uKHNvcnRFdmVudCwgY29sdW1uKSB7XG4gICAgICAgICAgICBpZiAoY29sdW1uLnNvcnRhYmxlKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNvcnRCeSA9IGNvbHVtbi5uYW1lO1xuICAgICAgICAgICAgICAgIHZhciBzb3J0T3JkZXIgPSBjb2x1bW4uc29ydE9yZGVyID0gKGNvbHVtbi5zb3J0T3JkZXIgPT09ICdBU0MnKSA/ICdERVNDJyA6ICdBU0MnO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyKHNvcnRCeSwgc29ydE9yZGVyKTtcblxuICAgICAgICAgICAgICAgIC8vb25seSBvbmUgY29sdW1uIGNhbiBiZSBhY3RpdmVseSBzb3J0ZWQgc28gd2UgcmVzZXQgYWxsIHRvIGluYWN0aXZlXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goYyA9PiBjLmFjdGl2ZSA9IGZhbHNlKTtcblxuICAgICAgICAgICAgICAgIC8vYW5kIHNldCB0aGlzIGNvbHVtbiBhcyB0aGUgYWN0aXZlbHkgc29ydGVkIGNvbHVtblxuICAgICAgICAgICAgICAgIGNvbHVtbi5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIHNlYXJjaFJlbW92ZTogZnVuY3Rpb24oc2VhcmNoVGVybSkge1xuICAgICAgICAgICAgLy9vbmx5IHJlbW92ZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc2VhcmNoIHRlcm1cbiAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuc2VhcmNoVGVybS5pbmRleE9mKHNlYXJjaFRlcm0pO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBzZWFyY2hBZGQ6IGZ1bmN0aW9uKHNlYXJjaFRlcm0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybS5wdXNoKHNlYXJjaFRlcm0pO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBwYWdlOiBmdW5jdGlvbihwYWdpbmdFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5mcm9tUm93ID0gcGFnaW5nRXZlbnQuZnJvbVJvdztcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdpbmdFdmVudC5wYWdlO1xuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2luZ0V2ZW50LnBhZ2VTaXplO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBmaWx0ZXJEYXRhOiBmdW5jdGlvbihkYXRhLCBzZWFyY2hUZXJtLCBpZ25vcmVDYXNlKSB7XG4gICAgICAgICAgICB2YXIgZmllbGQgPSAnJztcbiAgICAgICAgICAgIGlmIChzZWFyY2hUZXJtLmluZGV4T2YoXCI6XCIpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmaWVsZCA9IHNlYXJjaFRlcm0uc3BsaXQoJzonKVswXS50cmltKCk7XG4gICAgICAgICAgICAgICAgc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0uc3BsaXQoJzonKVsxXS50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZmlsdGVyID0gc2VhcmNoVGVybSA/IChpZ25vcmVDYXNlID8gc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpIDogc2VhcmNoVGVybSkgOiAnJztcblxuICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IE9iamVjdC5rZXlzKGl0ZW0pLmZpbmQoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmluZGV4T2YoXCIuXCIpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgb2JqQXJyYXkgPSBmaWVsZC5zcGxpdChcIi5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9iaiA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFycmF5TGVuZ3RoID0gb2JqQXJyYXkubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gb2JqW29iakFycmF5W2ldXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmVJdGVtVmFsdWUgPSAoJycgKyBvYmopO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtVmFsdWUgPSBpZ25vcmVDYXNlID8gcHJlSXRlbVZhbHVlLnRvTG93ZXJDYXNlKCkgOiBwcmVJdGVtVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1WYWx1ZS5pbmRleE9mKGZpbHRlcikgPiAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSAhPT0gZmllbGQgJiYgZmllbGQgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByZUl0ZW1WYWx1ZSA9ICgnJyArIGl0ZW1ba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1WYWx1ZSA9IGlnbm9yZUNhc2UgPyBwcmVJdGVtVmFsdWUudG9Mb3dlckNhc2UoKSA6IHByZUl0ZW1WYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVZhbHVlLmluZGV4T2YoZmlsdGVyKSA+IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEodHlwZW9mIHJlcyA9PT0gJ3VuZGVmaW5lZCcpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmlsdGVyOiBmdW5jdGlvbihzb3J0QnksIHNvcnRPcmRlcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsUm93c1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3RBbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICAgIHZhciBuZXdEYXRhID0gdGhpcy5kYXRhO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXJtLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2VhcmNoVGVybS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAvL2FjY291bnQgZm9yIGNvbHVtbi9maWVsZCBuYW1lIHNwZWNpZmljIHNlYXJjaCBzeW50YXhcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybVtpXS5pbmRleE9mKFwiOlwiKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdEYXRhID0gdGhpcy5maWx0ZXJEYXRhKG5ld0RhdGEsIHRoaXMuc2VhcmNoVGVybVtpXS5zcGxpdCgnOicpWzFdLnRyaW0oKSwgdHJ1ZSwgdGhpcy5zZWFyY2hUZXJtW2ldLnNwbGl0KCc6JylbMF0udHJpbSgpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy9vdGhlcndpc2Ugc2VhcmNoIGFsbCBjZWxsc1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3RGF0YSA9IHRoaXMuZmlsdGVyRGF0YShuZXdEYXRhLCB0aGlzLnNlYXJjaFRlcm1baV0sIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdEYXRhID0gdGhpcy5kYXRhVGFibGVTZXJ2aWNlLmZpbHRlckRhdGEobmV3RGF0YSwgJycsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZFRvdGFsID0gbmV3RGF0YS5sZW5ndGg7XG4gICAgICAgICAgICBuZXdEYXRhID0gdGhpcy5kYXRhVGFibGVTZXJ2aWNlLnNvcnREYXRhKG5ld0RhdGEsIHNvcnRCeSwgc29ydE9yZGVyKTtcbiAgICAgICAgICAgIG5ld0RhdGEgPSB0aGlzLmRhdGFUYWJsZVNlcnZpY2UucGFnZURhdGEobmV3RGF0YSwgdGhpcy5mcm9tUm93LCB0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5wYWdlU2l6ZSk7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IG5ld0RhdGE7XG4gICAgICAgICAgICB0aGlzLmdldEF1dG9Db21wbGV0ZURhdGEoKTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b2dnbGVTZWxlY3Q6IGZ1bmN0aW9uKHJvdykge1xuICAgICAgICAgICAgaWYgKCFyb3cuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWxsUm93c1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFsbEZpbHRlcmVkUm93c1NlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxSb3dzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsUm93c1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIHRvZ2dsZVNlbGVjdEFsbDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLmFsbFJvd3NTZWxlY3RlZCA9ICF0aGlzLmFsbFJvd3NTZWxlY3RlZDtcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbFJvd3NTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBzZWxlY3RBbGw6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEuZm9yRWFjaChjID0+IGMuY2hlY2tlZCA9IHRydWUpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlc2VsZWN0QWxsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhLmZvckVhY2goYyA9PiBjLmNoZWNrZWQgPSBmYWxzZSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYWxsRmlsdGVyZWRSb3dzU2VsZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGFsbEZpbHRlcmVkUm93c1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhLmZvckVhY2goZnVuY3Rpb24oYykge1xuICAgICAgICAgICAgICAgIGlmIChjLmNoZWNrZWQgPT09IHVuZGVmaW5lZCB8fCBjLmNoZWNrZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsbEZpbHRlcmVkUm93c1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBhbGxGaWx0ZXJlZFJvd3NTZWxlY3RlZDtcbiAgICAgICAgfSxcblxuICAgICAgICBhcmVUb29sdGlwc09uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbnNbMF0uaGFzT3duUHJvcGVydHkoJ3Rvb2x0aXAnKTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b2dnbGVUb29sdGlwczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5zWzBdLnRvb2x0aXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjID0+IGRlbGV0ZSBjLnRvb2x0aXApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjID0+IGMudG9vbHRpcCA9IGBUaGlzIGlzICR7Yy5sYWJlbH0hYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgb3BlbkRhdGFUYWJsZVByb21wdDogZnVuY3Rpb24ocm93LCBuYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlblByb21wdCh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0VudGVyIGNvbW1lbnQ/JyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm93W25hbWVdLFxuICAgICAgICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG5cbiAgICAgICAgZ2V0QXV0b0NvbXBsZXRlRGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZURhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGMgPT4gdGhpcy5maWx0ZXJlZERhdGEuZm9yRWFjaChyID0+IChyW2MubmFtZS50b0xvd2VyQ2FzZSgpXSkgPyB0aGlzLmF1dG9Db21wbGV0ZURhdGEucHVzaChyW2MubmFtZS50b0xvd2VyQ2FzZSgpXS50b1N0cmluZygpKTonJykpO1xuICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXRUb29sdGlwPVwiQ29sdW1uIGZpZWxkIG5hbWUgdG9vbHRpcHMgdG9nZ2xlLlwiIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZVRvb2x0aXBzKClcIiBjbGFzcz1cInRleHQtdXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9vbHRpcHMgKHt7YXJlVG9vbHRpcHNPbigpID8gJ09OJyA6ICdPRkYnfX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJDaGVja2JveGVzXCI+Q2hlY2tib3ggPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiQ2hlY2tib3hlc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5CYXNpYyBVc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1saXN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBncm9jZXJ5IG9mIGdyb2Nlcmllc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwiZ3JvY2VyeS5ib3VnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tncm9jZXJ5Lm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IVtDREFUQVtcbiAgICAgICAgPCEtLSBCYXNpYyBVc2FnZSAtLT5cbiAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJncm9jZXJ5LmJvdWdodFwiPlxuICAgICAgICAgICAgeyB7Z3JvY2VyeS5uYW1lfSB9XG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SmF2YXNjcmlwdDo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiamF2YXNjcmlwdFwiPlxuICAgICAgICA8IVtDREFUQVtcbiAgICAgICAgdGhpcy5ncm9jZXJpZXMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm91Z2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTZWl0YW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBib3VnaHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBbG1vbmQgTWVhbCBGbG91cicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvdWdodDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmFtZTogJ09yZ2FuaWMgRWdncycsXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIF1dPlxuICAgICAgICAgICAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2Ugd2l0aGluIEZvcm1zPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtYWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBmbGV4PVwiaW5pdGlhbFwiIFsobmdNb2RlbCldPVwidXNlci5hZ3JlZXNUb1RPU1wiIG5hbWU9XCJhZ3JlZXNUb1RPU1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSSBhZ3JlZSB0byB0aGUgdGVybXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtc2Vjb25kYXJ5XCIgW2Rpc2FibGVkXT1cIiF1c2VyLmFncmVlc1RvVE9TXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhZC1yaWdodC1zbVwiIGNsYXNzPVwidGV4dC11cHBlclwiPlNpZ24gVXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtYWxpZ249XCJzdGFydCBjZW50ZXJcIiBjbGFzcz1cInBhZC10b3Atc20gcGFkLWJvdHRvbS1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGxhYmVsUG9zaXRpb249XCJhZnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSSBjb21lIGFmdGVyIG15IGxhYmVsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiIGNsYXNzPVwicGFkLXRvcC1zbSBwYWQtYm90dG9tLXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggbGFiZWxQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSSBjb21lIGJlZm9yZSBteSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8IS0tIFVzYWdlIHdpdGhpbiBGb3JtcyAtLT5cbiAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggZmxleD1cImluaXRpYWxcIiBbKG5nTW9kZWwpXT1cInVzZXIuYWdyZWVzVG9UT1NcIiBuYW1lPVwiYWdyZWVzVG9UT1NcIj5cbiAgICAgICAgICAgICAgICAgICAgSSBhZ3JlZSB0byB0aGUgdGVybXNcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXNlY29uZGFyeVwiIFtkaXNhYmxlZF09XCIhdXNlci5hZ3JlZXNUb1RPU1wiIGNsYXNzPVwicGFkLXJpZ2h0LXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC11cHBlclwiPlNpZ24gVXA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiIGNsYXNzPVwicGFkLXRvcC1zbSBwYWQtYm90dG9tLXNtXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBsYWJlbFBvc2l0aW9uPVwiYWZ0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgSSBjb21lIGFmdGVyIG15IGxhYmVsLlxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LWFsaWduPVwic3RhcnQgY2VudGVyXCIgY2xhc3M9XCJwYWQtdG9wLXNtIHBhZC1ib3R0b20tc21cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGxhYmVsUG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgSSBjb21lIGJlZm9yZSBteSBsYWJlbFxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICBdXT5cbiAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImphdmFzY3JpcHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBW1xuICAgICAgICB0aGlzLnVzZXIgPSB7XG4gICAgICAgICAgICBhZ3JlZXNUb1RPUzogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF1dPlxuICAgICAgICAgICAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGlkPVwiUmFkaW9zXCI+UmFkaW9zIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIlJhZGlvc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGxheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmxleD1cIjQ4XCIgY2xhc3M9XCJwYWQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBCYXNpYyBSYWRpb3MgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+QmFzaWMgUmFkaW9zPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBuYW1lPVwiZ3JvdXAxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInBhZC1yaWdodC1zbVwiIG5hbWU9XCJncm91cDFcIj5PcHRpb24gMTwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicGFkLXJpZ2h0LXNtXCIgbmFtZT1cImdyb3VwMVwiPk9wdGlvbiAyPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJwYWQtcmlnaHQtc21cIiBuYW1lPVwiZ3JvdXAxXCIgZGlzYWJsZWQ9XCJ0cnVlXCI+T3B0aW9uIDMgKGRpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICAgICAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDwhLS0gQmFzaWMgUmFkaW9zIC0tPlxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIG5hbWU9XCJncm91cDFcIj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicGFkLXJpZ2h0LXNtXCIgbmFtZT1cImdyb3VwMVwiPk9wdGlvbiAxIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicGFkLXJpZ2h0LXNtXCIgbmFtZT1cImdyb3VwMVwiPk9wdGlvbiAyIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicGFkLXJpZ2h0LXNtXCIgbmFtZT1cImdyb3VwMVwiIGRpc2FibGVkPVwidHJ1ZVwiPk9wdGlvbiAzIChkaXNhYmxlZCkgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICAgICAgICAgICAgICBdXT5cbiAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmbGV4PVwiNDhcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEeW5hbWljIFJhZGlvcyAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5EeW5hbWljIFJhZGlvczwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgbmFtZT1cIm1vcmVfb3B0aW9uc1wiIFsobmdNb2RlbCldPVwiZmF2b3JpdGVTZWFzb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwiZmRzLXJhZGlvIHBhZC1yaWdodC1zbVwiICpuZ0Zvcj1cImxldCBzZWFzb24gb2Ygc2Vhc29uT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibW9yZV9vcHRpb25zXCIgW3ZhbHVlXT1cInNlYXNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2Vhc29ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxwPllvdXIgZmF2b3JpdGUgc2Vhc29uIGlzOiA8c3Ryb25nPnt7ZmF2b3JpdGVTZWFzb259fTwvc3Ryb25nPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPCEtLSBEeW5hbWljIFJhZGlvcyAtLT5cbiAgICAgICAgPG1hdC1yYWRpby1ncm91cCBuYW1lPVwibW9yZV9vcHRpb25zXCIgWyhuZ01vZGVsKV09XCJmYXZvcml0ZVNlYXNvblwiPlxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwiZmRzLXJhZGlvXCIgKm5nRm9yPVwibGV0IHNlYXNvbiBvZiBzZWFzb25PcHRpb25zXCIgbmFtZT1cIm1vcmVfb3B0aW9uc1wiIFt2YWx1ZV09XCJzZWFzb25cIj5cbiAgICAgICAgICAgIHsge3NlYXNvbn0gfVxuICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgIDxwPllvdXIgZmF2b3JpdGUgc2Vhc29uIGlzOiA8c3Ryb25nPnsgeyBmYXZvcml0ZVNlYXNvbiB9IH08L3N0cm9uZz48L3A+XG4gICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiamF2YXNjcmlwdFwiPlxuICAgICAgPCFbQ0RBVEFbXG5cbiAgICAgICAgdGhpcy5mYXZvcml0ZVNlYXNvbiA9ICdBdXR1bW4nO1xuXG4gICAgICAgIHRoaXMuc2Vhc29uT3B0aW9ucyA9IFtcbiAgICAgICAgICAgICdXaW50ZXInLFxuICAgICAgICAgICAgJ1NwcmluZycsXG4gICAgICAgICAgICAnU3VtbWVyJyxcbiAgICAgICAgICAgICdBdXR1bW4nLFxuICAgICAgICBdO1xuICAgICAgXV0+XG4gICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGlkPVwiVG9vbHRpcHNcIj5Ub29sdGlwcyA8bWF0LWljb24gY2xhc3M9XCJsaW5rLXRvLWNvbXBvbmVudFwiIHJvdXRlckxpbms9XCIvXCIgZnJhZ21lbnQ9XCJUb29sdGlwc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJJIHNob3cgYWJvdmVcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtdXBwZXJcIj5BYm92ZSBUb29sdGlwXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgbWF0VG9vbHRpcD1cIkkgc2hvdyBhZnRlclwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFmdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC11cHBlclwiPkFmdGVyIFRvb2x0aXBcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiBtYXRUb29sdGlwPVwiSSBzaG93IGJlbG93XCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+QmVsb3cgVG9vbHRpcFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJJIHNob3cgYmVmb3JlXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVmb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC11cHBlclwiPkJlZm9yZSBUb29sdGlwXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJJIHNob3cgYWJvdmVcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+Qm90dG9tIFRvb2x0aXA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgbWF0VG9vbHRpcD1cIkkgc2hvdyBhZnRlclwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFmdGVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtdXBwZXJcIj5Cb3R0b20gVG9vbHRpcDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiBtYXRUb29sdGlwPVwiSSBzaG93IGJlbG93XCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC11cHBlclwiPkJvdHRvbSBUb29sdGlwPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJJIHNob3cgYmVmb3JlXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVmb3JlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtdXBwZXJcIj5Cb3R0b20gVG9vbHRpcDwvYnV0dG9uPlxuICAgICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJQYW5lbHNcIj5QYW5lbHMgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiUGFuZWxzXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5TdGFuZGFyZCBDYXJkPC9oMz5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJmZHMtcGFuZWwtbWVudS1idXR0b25cIiBtYXRUb29sdGlwPVwiU3RhbmRhcmQgQ2FyZCBNZW51XCIgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInN0YW5kYXJkQ2FyZE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtdiBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgY2xhc3M9XCJwcmltYXJ5LWljb24tYnV0dG9uLW1lbnVcIiAjc3RhbmRhcmRDYXJkTWVudT1cIm1hdE1lbnVcIiBbb3ZlcmxhcFRyaWdnZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PcHRpb24xPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+T3B0aW9uMjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5UaXRsZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiBjbGFzcz1cInRleHQtdXBwZXJcIj5BY3Rpb248L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgICAgICAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8IS0tIEJhc2ljIENhcmQgLS0+XG4gICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJmZHMtcGFuZWwtbWVudS1idXR0b25cIiBtYXRUb29sdGlwPVwiU3RhbmRhcmQgQ2FyZCBNZW51XCIgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdGFuZGFyZENhcmRNZW51XCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbGxpcHNpcy12IFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG1hdC1tZW51IGNsYXNzPVwicHJpbWFyeS1pY29uLWJ1dHRvbi1tZW51XCIgI3N0YW5kYXJkQ2FyZE1lbnU9XCJtYXRNZW51XCIgW292ZXJsYXBUcmlnZ2VyXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PcHRpb24xPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+T3B0aW9uMjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+VGl0bGU8L3NwYW4+XG4gICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkPC9wPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIGNsYXNzPVwidGV4dC11cHBlclwiPkFjdGlvbjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICAgICAgICAgIF1dPlxuICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5UYWJiZWQgQ2FyZDwvaDM+XG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZmRzLXBhbmVsLW1lbnUtYnV0dG9uXCIgbWF0VG9vbHRpcD1cIlN0YW5kYXJkIENhcmQgTWVudVwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdGFuZGFyZENhcmRNZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLXYgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51IGNsYXNzPVwicHJpbWFyeS1pY29uLWJ1dHRvbi1tZW51XCIgI3N0YW5kYXJkQ2FyZE1lbnU9XCJtYXRNZW51XCIgW292ZXJsYXBUcmlnZ2VyXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+T3B0aW9uMTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk9wdGlvbjI8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cCBkeW5hbWljSGVpZ2h0IGNvbG9yPVwiYWNjZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPk9uZTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+Rmlyc3QgdGFiIGNvbnRlbnQ8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5QbGFpZCBlY2hvIHBhcmsga25hdXNnYWFyZCBub3JtY29yZSBmcmFuemVuIGNyb251dC4gUGlja2xlZCBodW1ibGVicmFnIHRvZnUgaG9vZGllLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW1hbWkgc2FsdmlhIGZhcm0tdG8tdGFibGUgc2NobGl0eiB0cnktaGFyZCBmb29kIHRydWNrIGtuYXVzZ2FhcmQgcGFic3QuIFl1Y2NpZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGxhbmQgamVhbiBzaG9ydHMsIGF1dGhlbnRpYyBtaXh0YXBlIHdhaXN0Y29hdCBnZW50cmlmeSBibHVlIGJvdHRsZS4gRml4aWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpY2tzdGFydGVyIGNodXJjaC1rZXkgc21hbGwgYmF0Y2ggc2VpdGFuLCBzaGFiYnkgY2hpYyB2ZWdhbiBsaXN0aWNsZSBiZWZvcmUgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29sZCBvdXQuIEhhbW1vY2sgcmF3IGRlbmltIGZsYW5uZWwgdG91c2xlZCBzZWl0YW4geW91IHByb2JhYmx5IGhhdmVuJ3QgaGVhcmQgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW0uIFRydXN0IGZ1bmQgbWFuIGJ1biBwdWcsIGtpY2tzdGFydGVyIGFydGlzYW4gc2VsdmFnZSBsZXR0ZXJwcmVzcyBjb3JuaG9sZSB0b3RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWcgYnV0Y2hlciBsb2Nhdm9yZS4gQWZmb2dhdG8gdHJ5LWhhcmQga2lja3N0YXJ0ZXIgc2VpdGFuLCBESVkgcGlja2xlZCBoZWxsYSBnb2RhcmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcmsgYmVsbHkgZm91ciBsb2tvIHVnaC48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5Ud288L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlNlY29uZCB0YWIgY29udGVudDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkhhc2h0YWcgZGlzdGlsbGVyeSBza2F0ZWJvYXJkIG1hbiBidW4gZ29jaHVqYW5nLCBzYWx2aWEgbWFuIGJyYWlkIGFydCBwYXJ0eSBtZWdnaW5nc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpcmxvb20ga2l0c2NoIGZhcm0tdG8tdGFibGUuIEZyYW56ZW4gYmVhcmQgZmluZ2Vyc3RhY2hlIGdlbnRyaWZ5LCBoZWlybG9vbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGxhbmQgZW5udWkgWE9YTyBtaWNyb2Rvc2luZyBraXRzY2ggcGxhaWQuIENoaWNoYXJyb25lcyBidXNod2ljayBjaGlhLCBiYW5oIG1pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcm9ueSB0YXR0b29lZCBoYW1tb2NrIGJ1dGNoZXIgc2hhYmJ5IGNoaWMgdGF4aWRlcm15IHNlbWlvdGljcyBtYXJmYSBwb3N0LWlyb25pYy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJsdWUgYm90dGxlIGtlZmZpeWVoIGZhcm0tdG8tdGFibGUgZW5udWksIGNoYW1icmF5IHBpdGNoZm9yayBhcnQgcGFydHkgcGludGVyZXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnRpc2FuIHBvcC11cC4gRXRzeSBiYW5qbyBtYXJmYSwgYmx1ZSBib3R0bGUga29tYnVjaGEgY3J1Y2lmaXggWE9YTyB0b3VzbGVkIGJlYXJkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGlsZGUgZGlzcnVwdCBrYWxlIGNoaXBzIGJpY3ljbGUgcmlnaHRzIHNrYXRlYm9hcmQgbWFzdGVyIGNsZWFuc2UgaGVsbGEgc2hvcmVkaXRjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGl0YXRpb24gcmV0cm8gc2hhYmJ5IGNoaWMgdmljZSBoZWlybG9vbS4gRXRzeSBsaXN0aWNsZSB2aWNlIGFjdHVhbGx5LCBpUGhvbmUgY2hpYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9vZGllIGZvdXIgbG9rby48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIGNsYXNzPVwidGV4dC11cHBlclwiPkFjdGlvbjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICAgICAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDwhLS0gQmFzaWMgQ2FyZCAtLT5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZkcy1wYW5lbC1tZW51LWJ1dHRvblwiIG1hdFRvb2x0aXA9XCJTdGFuZGFyZCBDYXJkIE1lbnVcIiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInN0YW5kYXJkQ2FyZE1lbnVcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLXYgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bWF0LW1lbnUgY2xhc3M9XCJwcmltYXJ5LWljb24tYnV0dG9uLW1lbnVcIiAjc3RhbmRhcmRDYXJkTWVudT1cIm1hdE1lbnVcIiBbb3ZlcmxhcFRyaWdnZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPk9wdGlvbjE8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PcHRpb24yPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIGR5bmFtaWNIZWlnaHQgY29sb3I9XCJhY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5PbmU8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5GaXJzdCB0YWIgY29udGVudDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5QbGFpZCBlY2hvIHBhcmsga25hdXNnYWFyZCBub3JtY29yZSBmcmFuemVuIGNyb251dC4gUGlja2xlZCBodW1ibGVicmFnIHRvZnUgaG9vZGllLCB1bWFtaSBzYWx2aWEgZmFybS10by10YWJsZSBzY2hsaXR6IHRyeS1oYXJkIGZvb2QgdHJ1Y2sga25hdXNnYWFyZCBwYWJzdC4gWXVjY2llIHBvcnRsYW5kIGplYW4gc2hvcnRzLCBhdXRoZW50aWMgbWl4dGFwZSB3YWlzdGNvYXQgZ2VudHJpZnkgYmx1ZSBib3R0bGUuIEZpeGllIGtpY2tzdGFydGVyIGNodXJjaC1rZXkgc21hbGwgYmF0Y2ggc2VpdGFuLCBzaGFiYnkgY2hpYyB2ZWdhbiBsaXN0aWNsZSBiZWZvcmUgdGhleSBzb2xkIG91dC4gSGFtbW9jayByYXcgZGVuaW0gZmxhbm5lbCB0b3VzbGVkIHNlaXRhbiB5b3UgcHJvYmFibHkgaGF2ZW4ndCBoZWFyZCBvZiB0aGVtLiBUcnVzdCBmdW5kIG1hbiBidW4gcHVnLCBraWNrc3RhcnRlciBhcnRpc2FuIHNlbHZhZ2UgbGV0dGVycHJlc3MgY29ybmhvbGUgdG90ZSBiYWcgYnV0Y2hlciBsb2Nhdm9yZS4gQWZmb2dhdG8gdHJ5LWhhcmQga2lja3N0YXJ0ZXIgc2VpdGFuLCBESVkgcGlja2xlZCBoZWxsYSBnb2RhcmQgcG9yayBiZWxseSBmb3VyIGxva28gdWdoLjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlR3bzwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlNlY29uZCB0YWIgY29udGVudDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5IYXNodGFnIGRpc3RpbGxlcnkgc2thdGVib2FyZCBtYW4gYnVuIGdvY2h1amFuZywgc2FsdmlhIG1hbiBicmFpZCBhcnQgcGFydHkgbWVnZ2luZ3MgaGVpcmxvb20ga2l0c2NoIGZhcm0tdG8tdGFibGUuIEZyYW56ZW4gYmVhcmQgZmluZ2Vyc3RhY2hlIGdlbnRyaWZ5LCBoZWlybG9vbSBwb3J0bGFuZCBlbm51aSBYT1hPIG1pY3JvZG9zaW5nIGtpdHNjaCBwbGFpZC4gQ2hpY2hhcnJvbmVzIGJ1c2h3aWNrIGNoaWEsIGJhbmggbWkgaXJvbnkgdGF0dG9vZWQgaGFtbW9jayBidXRjaGVyIHNoYWJieSBjaGljIHRheGlkZXJteSBzZW1pb3RpY3MgbWFyZmEgcG9zdC1pcm9uaWMuIEJsdWUgYm90dGxlIGtlZmZpeWVoIGZhcm0tdG8tdGFibGUgZW5udWksIGNoYW1icmF5IHBpdGNoZm9yayBhcnQgcGFydHkgcGludGVyZXN0IGFydGlzYW4gcG9wLXVwLiBFdHN5IGJhbmpvIG1hcmZhLCBibHVlIGJvdHRsZSBrb21idWNoYSBjcnVjaWZpeCBYT1hPIHRvdXNsZWQgYmVhcmQuIFRpbGRlIGRpc3J1cHQga2FsZSBjaGlwcyBiaWN5Y2xlIHJpZ2h0cyBza2F0ZWJvYXJkIG1hc3RlciBjbGVhbnNlIGhlbGxhIHNob3JlZGl0Y2gsIG1lZGl0YXRpb24gcmV0cm8gc2hhYmJ5IGNoaWMgdmljZSBoZWlybG9vbS4gRXRzeSBsaXN0aWNsZSB2aWNlIGFjdHVhbGx5LCBpUGhvbmUgY2hpYSBob29kaWUgZm91ciBsb2tvLjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiBjbGFzcz1cInRleHQtdXBwZXJcIj5BY3Rpb248L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgICAgICAgICBdXT5cbiAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJTZWxlY3RcIj5TZWxlY3QgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiU2VsZWN0XCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGNvbG9yPVwiYWNjZW50XCIgZmxvYXRQbGFjZWhvbGRlcj1cIm5ldmVyXCIgcGxhY2Vob2xkZXI9XCJGYXZvcml0ZSBmb29kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRWYWx1ZVwiIG5hbWU9XCJmb29kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGZvb2Qgb2YgZm9vZHNcIiBbdmFsdWVdPVwiZm9vZC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Zvb2Qudmlld1ZhbHVlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1tYXJnaW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZsZXg+IFNlbGVjdGVkIGZvb2QgdmFsdWU6IHt7c2VsZWN0ZWRWYWx1ZX19IDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDxmb3JtPlxuICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luPlxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGNvbG9yPVwiYWNjZW50XCIgZmxvYXRQbGFjZWhvbGRlcj1cIm5ldmVyXCIgcGxhY2Vob2xkZXI9XCJGYXZvcml0ZSBmb29kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVmFsdWVcIiBuYW1lPVwiZm9vZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZm9vZCBvZiBmb29kc1wiIFt2YWx1ZV09XCJmb29kLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7IHtmb29kLnZpZXdWYWx1ZX0gfVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1tYXJnaW4+XG4gICAgICAgICAgICAgICAgPGRpdiBmbGV4PiBTZWxlY3RlZCBmb29kIHZhbHVlOiB7IHtzZWxlY3RlZFZhbHVlfSB9IDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgXV0+XG4gICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJqYXZhc2NyaXB0XCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gJyc7XG5cbiAgICAgICAgdGhpcy5mb29kcyA9IFtcbiAgICAgICAgICAgIHsgdmFsdWU6ICdzdGVhay0wJywgdmlld1ZhbHVlOiAnU3RlYWsnIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAncGl6emEtMScsIHZpZXdWYWx1ZTogJ1BpenphJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ3RhY29zLTInLCB2aWV3VmFsdWU6ICdUYWNvcycgfSxcbiAgICAgICAgXTtcbiAgICAgICAgXV0+XG4gICAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicGFkLWJvdHRvbS1zbVwiIGlkPVwiTWVudXNcIj5NZW51cyAoZHJvcGRvd25zKSA8bWF0LWljb24gY2xhc3M9XCJsaW5rLXRvLWNvbXBvbmVudFwiIHJvdXRlckxpbms9XCIvXCIgZnJhZ21lbnQ9XCJNZW51c1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPiBSZWZyZXNoIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IFNldHRpbmdzIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IEhlbHAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBkaXNhYmxlZD4gU2lnbiBPdXQgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNvbG9yPVwiZmRzLXJlZ3VsYXJcIiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWJvdmVNZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIEFib3ZlPGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSB5UG9zaXRpb249XCJhYm92ZVwiICNhYm92ZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gUmVmcmVzaCA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPiBTZXR0aW5ncyA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPiBIZWxwIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gZGlzYWJsZWQ+IFNpZ24gT3V0IDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjb2xvcj1cImZkcy1yZWd1bGFyXCIgbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImljb25zTWVudVwiPlxuICAgICAgICAgICAgICAgICAgICBJY29ucyBpbiBNZW51PGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjaWNvbnNNZW51PVwibWF0TWVudVwiIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZGlhbHBhZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5SZWRpYWw8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gZGlzYWJsZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+dm9pY2VtYWlsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkNoZWNrIHZvaWNlbWFpbDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5ub3RpZmljYXRpb25zX29mZjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5EaXNhYmxlIGFsZXJ0czwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwicHJpbWFyeUJ1dHRvbkRyb3Bkb3duTWVudVwiIG1hdC1yYWlzZWQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICBGRFMgUHJpbWFyeTxpIGNsYXNzPVwiZmEgZmEtY2FyZXQtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgY2xhc3M9XCJmZHMtcHJpbWFyeS1kcm9wZG93bi1idXR0b24tbWVudVwiICNwcmltYXJ5QnV0dG9uRHJvcGRvd25NZW51PVwibWF0TWVudVwiIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PcHRpb24gMTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBkaXNhYmxlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk9wdGlvbiAyPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgIDxidXR0b24gY29sb3I9XCJmZHMtcmVndWxhclwiIG1hdC1yYWlzZWQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJwb3NYTWVudVwiPlxuICAgICAgICAgICAgICAgICAgICBCZWZvcmU8aSBjbGFzcz1cImZhIGZhLWNhcmV0LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPG1hdC1tZW51IHhQb3NpdGlvbj1cImJlZm9yZVwiICNwb3NYTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPiBSZWZyZXNoIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IFNldHRpbmdzIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IEhlbHAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBkaXNhYmxlZD4gU2lnbiBPdXQgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPiBSZWZyZXNoIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPiBTZXR0aW5ncyA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gSGVscCA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBkaXNhYmxlZD4gU2lnbiBPdXQgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDxidXR0b24gY29sb3I9XCJmZHMtcmVndWxhclwiIG1hdC1yYWlzZWQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJhYm92ZU1lbnVcIj5cbiAgICAgICAgICAgIEFib3ZlPGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51IHlQb3NpdGlvbj1cImFib3ZlXCIgI2Fib3ZlTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gUmVmcmVzaCA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gU2V0dGluZ3MgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IEhlbHAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gZGlzYWJsZWQ+IFNpZ24gT3V0IDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8YnV0dG9uIGNvbG9yPVwiZmRzLXJlZ3VsYXJcIiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiaWNvbnNNZW51XCI+XG4gICAgICAgICAgICBJY29ucyBpbiBNZW51PGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNpY29uc01lbnU9XCJtYXRNZW51XCIgW292ZXJsYXBUcmlnZ2VyXT1cImZhbHNlXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRpYWxwYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPlJlZGlhbDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGRpc2FibGVkPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj52b2ljZW1haWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPkNoZWNrIHZvaWNlbWFpbDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5ub3RpZmljYXRpb25zX29mZjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+RGlzYWJsZSBhbGVydHM8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPGJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInByaW1hcnlCdXR0b25Ecm9wZG93bk1lbnVcIiBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgICAgIEZEUyBQcmltYXJ5PGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51IGNsYXNzPVwiZmRzLXByaW1hcnktZHJvcGRvd24tYnV0dG9uLW1lbnVcIiAjcHJpbWFyeUJ1dHRvbkRyb3Bkb3duTWVudT1cIm1hdE1lbnVcIiBbb3ZlcmxhcFRyaWdnZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICA8c3Bhbj5PcHRpb24gMTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGRpc2FibGVkPlxuICAgICAgICAgICAgICAgIDxzcGFuPk9wdGlvbiAyPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDxidXR0b24gY29sb3I9XCJmZHMtcmVndWxhclwiIG1hdC1yYWlzZWQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJwb3NYTWVudVwiPlxuICAgICAgICAgICAgQmVmb3JlPGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51IHhQb3NpdGlvbj1cImJlZm9yZVwiICNwb3NYTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gUmVmcmVzaCA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT4gU2V0dGluZ3MgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+IEhlbHAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gZGlzYWJsZWQ+IFNpZ24gT3V0IDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJEaWFsb2dcIj5EaWFsb2cgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiRGlhbG9nXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW5EaWFsb2coKVwiPlNob3cgc2ltcGxlIGRpYWxvZzwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiAoY2xpY2spPVwib3BlbkRpYWxvZygpXCI+U2hvdyBzaW1wbGUgZGlhbG9nPC9idXR0b24+XG4gICAgICBdXT5cbiAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJqYXZhc2NyaXB0XCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgdmFyIG5nQ29yZSA9IHJlcXVpcmUoJ0Bhbmd1bGFyL2NvcmUnKTtcbiAgICAgICAgZnVuY3Rpb24gRGlhbG9nQ29tcG9uZW50KCkge307XG5cbiAgICAgICAgRGlhbG9nQ29tcG9uZW50LnByb3RvdHlwZSA9IHtcbiAgICAgICAgICAgIGNvbnN0cnVjdG9yOiBEaWFsb2dDb21wb25lbnRcbiAgICAgICAgfTtcblxuICAgICAgICBEaWFsb2dDb21wb25lbnQuYW5ub3RhdGlvbnMgPSBbXG4gICAgICAgICAgICBuZXcgbmdDb3JlLkNvbXBvbmVudCh7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGU6ICdIZWxsbyBEaWFsb2cnXG4gICAgICAgIH0pXTtcblxuICAgICAgICAuLi5cblxuICAgICAgICBjb25zdHJ1Y3RvcihNYXREaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nID0gTWF0RGlhbG9nO1xuICAgICAgICB9XG5cbiAgICAgICAgLi4uXG5cbiAgICAgICAgb3BlbkRpYWxvZzogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc1MCUnLCAvLyBjYW4gYmUgcHggb3IgJVxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzYwJScsIC8vIGNhbiBiZSBweCBvciAlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4uLlxuXG4gICAgICAgIF1dPlxuICAgICAgPC9wcmU+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cInBhZC1ib3R0b20tc21cIiBpZD1cIlNpbXBsZURpYWxvZ3NcIj5TaW1wbGUgRGlhbG9ncyA8bWF0LWljb24gY2xhc3M9XCJsaW5rLXRvLWNvbXBvbmVudFwiIHJvdXRlckxpbms9XCIvXCIgZnJhZ21lbnQ9XCJTaW1wbGVEaWFsb2dzXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZC1sZWZ0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIChjbGljayk9XCJvcGVuQ29uZmlybSgpXCIgY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+T3BlblxuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlybVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuQ29uZmlybSgpXCIgY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+T3BlbiBDb25maXJtPC9idXR0b24+XG4gICAgICAgIF1dPlxuICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgPHA+SmF2YXNjcmlwdDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiamF2YXNjcmlwdFwiPlxuICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIC4uLlxuXG4gICAgICAgIGNvbnN0cnVjdG9yKFRkRGlhbG9nU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlID0gVGREaWFsb2dTZXJ2aWNlXG4gICAgICAgIH1cblxuICAgICAgICAuLi5cblxuICAgICAgICBvcGVuQ29uZmlybTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5Db25maXJtKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0NvbmZpcm0nLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGhvdyBzaW1wbGUgaXQgaXMgdG8gY3JlYXRlIGEgY29uZmlybSB3aXRoIHRoaXMgd3JhcHBlciBzZXJ2aWNlLiBEbyB5b3UgYWdyZWU/JyxcbiAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b246ICdEaXNhZ3JlZScsXG4gICAgICAgICAgICAgICAgYWNjZXB0QnV0dG9uOiAnQWdyZWUnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLi4uXG4gICAgICAgIF1dPlxuICAgICAgPC9wcmU+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cInBhZC1ib3R0b20tc21cIiBpZD1cIlNuYWNrQmFyc1wiPlNuYWNrIEJhcnMgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiU25hY2tCYXJzXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dTdWNjZXNzU25hY2tCYXIoKVwiPlN1Y2Nlc3MgU25hY2sgQmFyPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dXYXJuU25hY2tCYXIoKVwiPldhcm5pbmcgU25hY2sgQmFyPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dFcnJvclNuYWNrQmFyKClcIj5FcnJvciBTbmFjayBCYXI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiAoY2xpY2spPVwic2hvd1JlZ3VsYXJTbmFja0JhcigpXCI+UmVndWxhciBTbmFjayBCYXI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dTdWNjZXNzU25hY2tCYXIoKVwiPlN1Y2Nlc3MgU25hY2sgQmFyPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJmZHMtcHJpbWFyeVwiIChjbGljayk9XCJzaG93V2FyblNuYWNrQmFyKClcIj5XYXJuaW5nIFNuYWNrIEJhcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiAoY2xpY2spPVwic2hvd0Vycm9yU25hY2tCYXIoKVwiPkVycm9yIFNuYWNrIEJhcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZmRzLXByaW1hcnlcIiAoY2xpY2spPVwic2hvd1JlZ3VsYXJTbmFja0JhcigpXCI+UmVndWxhciBTbmFjayBCYXI8L2J1dHRvbj5cbiAgICAgIF1dPlxuICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgIDxwPkphdmFzY3JpcHQ6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImphdmFzY3JpcHRcIj5cbiAgICAgIDwhW0NEQVRBW1xuICAgICAgICAuLi5cblxuICAgICAgICBjb25zdHJ1Y3RvcihGZHNTbmFja0JhclNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlID0gRmRzU25hY2tCYXJTZXJ2aWNlO1xuICAgICAgICB9LFxuXG4gICAgICAgIC4uLlxuXG4gICAgICAgIC8qKiBQb3NzaWJsZSB2YWx1ZXMgZm9yIGhvcml6b250YWxQb3NpdGlvbiBvbiBNYXRTbmFja0JhckNvbmZpZyBhcmUgJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgfCAnbGVmdCcgfCAncmlnaHQnLiAqL1xuICAgICAgICAvKiogUG9zc2libGUgdmFsdWVzIGZvciB2ZXJ0aWNhbFBvc2l0aW9uIG9uIE1hdFNuYWNrQmFyQ29uZmlnIGFyZSAndG9wJyB8ICdib3R0b20nLiAqL1xuICAgICAgICAvKiogUG9zc2libGUgdmFsdWVzIGZvciBpY29uIG9uIE1hdFNuYWNrQmFyQ29uZmlnIGFyZSBhbnkgYXZhaWxhYmxlIGljb25zIGxvYWRlZCBvbiB0aGUgcGFnZS4gKi9cblxuICAgICAgICBzaG93U3VjY2Vzc1NuYWNrQmFyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbkNvYXN0ZXIoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1NvbWUgaGVscCB0ZXh0IHJlZ2FyZGluZyB0aGUgc3VjY2Vzc2Z1bCBldmVudC4nLFxuICAgICAgICAgICAgICAgIHZlcnRpY2FsUG9zaXRpb246ICd0b3AnLFxuICAgICAgICAgICAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICBpY29uOiAnZmEgZmEtY2hlY2stY2lyY2xlLW8nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzFFQjQ3NScsXG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIHNob3dXYXJuU25hY2tCYXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc25hY2tCYXJSZWYgPSB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuQ29hc3Rlcih7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdXYXJuaW5nJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU29tZSBoZWxwIHRleHQgcmVnYXJkaW5nIHRoZSB3YXJuaW5nLicsXG4gICAgICAgICAgICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbFBvc2l0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyNFOThBNDAnLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBzaG93RXJyb3JTbmFja0JhcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBzbmFja0JhclJlZiA9IHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW5Db2FzdGVyKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU29tZSBoZWxwIHRleHQgcmVnYXJkaW5nIHRoZSBjcml0aWNhbCBlcnJvci4gVGhpcyBjb2FzdGVyIHdpbGwgc3RheSBvcGVuIHVudGlsIGNsb3NlZCB3aXRoIHRoZSBgeGAgb3IgaWYgYW5vdGhlciBjb2FzdGVyIGlzIGNyZWF0ZWQuJyxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsUG9zaXRpb246ICdyaWdodCcsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhIGZhLXRpbWVzLWNpcmNsZS1vJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyNFRjYxNjInXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBzaG93UmVndWxhclNuYWNrQmFyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbkNvYXN0ZXIoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnUmVndWxhcicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1NvbWV0aGluZyBpbnRlcmVzdGluZy4nLFxuICAgICAgICAgICAgICAgIHZlcnRpY2FsUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ2xlZnQnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzgwODc5MycsXG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC4uLlxuICAgICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJFeHBhbnNpb25QYW5lbHNcIj5FeHBhbnNpb24gUGFuZWxzIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIkV4cGFuc2lvblBhbmVsc1wiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxwPkV4cGFuZC9Db2xsYXBzZSBFdmVudCBmb3IgRXhwYW5zaW9uIDE6IHt7ZXhwYW5kQ29sbGFwc2VFeHBhbnNpb24xTXNnfX08L3A+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVEaXNhYmxlZCgpXCIgY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+VG9nZ2xlIGRpc2FibGVcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5zaW9uMSgpXCIgY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+VG9nZ2xlIGZpcnN0XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0LWd0LXhzPVwicm93XCIgbGF5b3V0LWFsaWduLWd0LXhzPVwiY2VudGVyIHN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmxleC1ndC14cz1cIjkwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQtZXhwYW5zaW9uLXBhbmVsIGxhYmVsPVwiR29vZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibGFiZWw9XCIxNjAwIEFtcGhpdGhlYXRyZSBQa3d5LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0MywgVVNBXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZF09XCJleHBhbnNpb24xXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZGVkKT1cImV4cGFuZEV4cGFuc2lvbjFFdmVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbGxhcHNlZCk9XCJjb2xsYXBzZUV4cGFuc2lvbjFFdmVudCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkLWV4cGFuc2lvbi1zdW1tYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0LWxpc3QtYXZhdGFyPnBpbl9kcm9wPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgbWF0LWxpbmU+R29vZ2xlPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgbWF0LWxpbmU+SGVhZHF1YXJ0ZXJzPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBtYXQtbGluZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYwMCBBbXBoaXRoZWF0cmUgUGt3eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPk1vdW50YWluIFZpZXcsIENBIDk0MDQzLCBVU0FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZC1leHBhbnNpb24tc3VtbWFyeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LXBhZGRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJtYXQtcGFkZGluZ1wiIGxheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbGV4PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkNvbXBhbnkgKGRpc2FibGVkKVwiIGRpc2FibGVkIHZhbHVlPVwiR29vZ2xlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgZmxleD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJEZXNjcmlwdGlvblwiIHJvd3M9XCI0XCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtbWFyZ2luIGxheW91dC1hbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInRleHQtdXBwZXJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidGV4dC11cHBlclwiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkLWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+SFRNTDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDx0ZC1leHBhbnNpb24tcGFuZWwgbGFiZWw9XCJHb29nbGVcIiBzdWJsYWJlbD1cIjE2MDAgQW1waGl0aGVhdHJlIFBrd3ksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzLCBVU0FcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHBhbmRdPVwiZXhwYW5zaW9uMVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChleHBhbmRlZCk9XCJleHBhbmRFeHBhbnNpb24xRXZlbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbGxhcHNlZCk9XCJjb2xsYXBzZUV4cGFuc2lvbjFFdmVudCgpXCI+XG4gICAgICAgICAgICA8dGQtZXhwYW5zaW9uLXN1bW1hcnk+XG4gICAgICAgICAgICAgICAgPG1hdC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXQtbGlzdC1hdmF0YXI+cGluX2Ryb3A8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIG1hdC1saW5lPkdvb2dsZTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQgbWF0LWxpbmU+SGVhZHF1YXJ0ZXJzPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIG1hdC1saW5lPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2MDAgQW1waGl0aGVhdHJlIFBrd3lcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPk1vdW50YWluIFZpZXcsIENBIDk0MDQzLCBVU0FcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgIDwvbWF0LWxpc3Q+XG4gICAgICAgICAgICA8L3RkLWV4cGFuc2lvbi1zdW1tYXJ5PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1wYWRkaW5nXCI+XG4gICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJtYXQtcGFkZGluZ1wiIGxheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGZsZXg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJDb21wYW55IChkaXNhYmxlZClcIiBkaXNhYmxlZCB2YWx1ZT1cIkdvb2dsZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBmbGV4PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiRGVzY3JpcHRpb25cIiByb3dzPVwiNFwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbiBsYXlvdXQtYWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInRleHQtdXBwZXJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJ0ZXh0LXVwcGVyXCI+U2F2ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQtZXhwYW5zaW9uLXBhbmVsPlxuICAgICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgIDxwPkphdmFzY3JpcHQ6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImphdmFzY3JpcHRcIj5cbiAgICAgICAgICA8IVtDREFUQVtcbiAgICAgICAgdGhpcy5leHBhbmRDb2xsYXBzZUV4cGFuc2lvbjFNc2cgPSAnTm8gZXhwYW5kZWQvY29sbGFwc2VkIGRldGVjdGVkIHlldCc7XG4gICAgICAgIHRoaXMuZXhwYW5zaW9uMSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAgICAgLi4uXG5cbiAgICAgICAgdG9nZ2xlRXhwYW5zaW9uMTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5zaW9uMSA9ICF0aGlzLmV4cGFuc2lvbjE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9nZ2xlRGlzYWJsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gIXRoaXMuZGlzYWJsZWQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXhwYW5kRXhwYW5zaW9uMUV2ZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBhbmRDb2xsYXBzZUV4cGFuc2lvbjFNc2cgPSAnRXhwYW5kIGV2ZW50IGVtaXR0ZWQuJztcbiAgICAgICAgfSxcblxuICAgICAgICBjb2xsYXBzZUV4cGFuc2lvbjFFdmVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kQ29sbGFwc2VFeHBhbnNpb24xTXNnID0gJ0NvbGxhcHNlIGV2ZW50IGVtaXR0ZWQuJztcbiAgICAgICAgfSxcblxuICAgICAgICAuLi5cbiAgICAgICAgICAgIF1dPlxuICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJQcm9ncmVzc1wiPlByb2dyZXNzIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIlByb2dyZXNzXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgbGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmbGV4PVwiNDhcIiBjbGFzcz1cInBhZC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlByb2dyZXNzIEJhcnM8L2gzPlxuICAgICAgICAgICAgICAgICAgICA8aDQ+RGV0ZXJtaW5hdGU8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiB2YWx1ZT1cIjQwXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgICAgICAgICAgICAgICA8aDQ+SW5kZXRlcm1pbmF0ZTwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgICAgICAgICAgICAgICA8aDQ+QnVmZmVyPC9oND5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImJ1ZmZlclwiIHZhbHVlPVwiMTVcIiBidWZmZXJWYWx1ZT1cIjE1XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgICAgICAgICAgICAgICA8aDQ+UXVlcnk8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwicXVlcnlcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgICAgICAgICAgIDxoND5Db2xvcnM8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBjb2xvcj1cImFjY2VudFwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBjb2xvcj1cIndhcm5cIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiaHRtbFwiPlxuICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDwhLS0gRGV0ZXJtaW5hdGUtLT5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImRldGVybWluYXRlXCIgdmFsdWU9XCI0MFwiPjwvbWF0LXByb2dyZXNzLWJhcj5cblxuICAgICAgICA8IS0tIEluZGV0ZXJtaW5hdGUtLT5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG5cbiAgICAgICAgPCEtLSBCdWZmZXItLT5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImJ1ZmZlclwiIHZhbHVlPVwiMTVcIiBidWZmZXJWYWx1ZT1cIjE1XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuXG4gICAgICAgIDwhLS0gUXVlcnktLT5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cInF1ZXJ5XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuXG4gICAgICAgIDwhLS0gQ29sb3JzLS0+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuXG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgY29sb3I9XCJhY2NlbnRcIj48L21hdC1wcm9ncmVzcy1iYXI+XG5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBjb2xvcj1cIndhcm5cIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgZmxleD1cIjQ4XCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gUHJvZ3Jlc3MgY2lyY2xlcy0tPlxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlByb2dyZXNzIFNwaW5uZXI8L2gzPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+RGV0ZXJtaW5hdGU8L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiB2YWx1ZT1cIjY2XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+aW5kZXRlcm1pbmF0ZTwvaDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+U3Bpbm5lcjwvaDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQ+Q29sb3JzPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBjb2xvcj1cImFjY2VudFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgY29sb3I9XCJ3YXJuXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Vc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPCEtLSBEZXRlcm1pbmF0ZSAtLT5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIG1vZGU9XCJkZXRlcm1pbmF0ZVwiIHZhbHVlPVwiNjZcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICA8IS0tIEluZGV0ZXJtaW5hdGUgLS0+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgIDwhLS0gU3Bpbm5lciAtLT5cbiAgICAgICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwhLS0gQ29sb3JzIC0tPlxuICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBjb2xvcj1cInByaW1hcnlcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBjb2xvcj1cImFjY2VudFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGNvbG9yPVwid2FyblwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJTaWRlTmF2XCI+U2lkZSBOYXYgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiU2lkZU5hdlwiPmxpbms8L21hdC1pY29uPjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxwPlRoZSBzaWRlIG5hdiBjYW4gYmUgb3BlbmVkIGF0IHRoZSBgc3RhcnRgIG9yIGBlbmRgIG9mIGEgY29udGFpbmVyIGFuZCBjYW4gYmUgZGlzcGxheWVkIGluIGBvdmVyYCxcbiAgICAgICAgICAgICAgICAgICAgYHNpZGVgLCBvciBgcHVzaGAgbW9kZS4gWW91IGNhbiBhbHNvIGRlZmluZSBpdHMgd2lkdGguPC9wPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0VG9vbHRpcD1cIk9wZW4gc2lkZSBuYXZcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImZkcy1wcmltYXJ5XCIgKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgT3BlblxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDwhLS0gQmFzaWMgVXNhZ2UgLS0+XG4gICAgICAgIDxtYXQtc2lkZW5hdiAjc2lkZW5hdiBtb2RlPVwib3ZlclwiIGFsaWduPVwiZW5kXCIgb3BlbmVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIC4uLlxuICAgICAgICA8L21hdC1zaWRlbmF2PlxuICAgICAgICBdXT5cbiAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cInBhZC1ib3R0b20tc21cIiBpZD1cIlNsaWRlVG9nZ2xlXCI+U2xpZGUgVG9nZ2xlIDxtYXQtaWNvbiBjbGFzcz1cImxpbmstdG8tY29tcG9uZW50XCIgcm91dGVyTGluaz1cIi9cIiBmcmFnbWVudD1cIlNsaWRlVG9nZ2xlXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5CYXNpYyBVc2FnZTwvaDM+XG4gICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgPG1hdC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgc3lzdGVtIG9mIHN5c3RlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFtjb2xvcl09XCJzeXN0ZW0uY29sb3JcIiBbKG5nTW9kZWwpXT1cInN5c3RlbS5vblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c3lzdGVtLm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9tYXQtbGlzdD5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICAgIDwhW0NEQVRBW1xuICAgICAgICA8IS0tIEJhc2ljIFVzYWdlIC0tPlxuICAgICAgICA8bWF0LWxpc3Q+XG4gICAgICAgICAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgc3lzdGVtIG9mIHN5c3RlbXNcIj5cbiAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgW2NvbG9yXT1cInN5c3RlbS5jb2xvclwiIFsobmdNb2RlbCldPVwic3lzdGVtLm9uXCI+XG4gICAgICAgICAgICAgICAgeyB7c3lzdGVtLm5hbWV9IH1cbiAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICA8L21hdC1saXN0PlxuICAgICAgICBdXT5cbiAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgPHA+SmF2YXNjcmlwdDo8L3A+XG4gICAgICAgICAgICAgICAgPHByZSBsYW5nPVwiamF2YXNjcmlwdFwiPlxuICAgICAgICA8IVtDREFUQVtcbiAgICAgICAgdGhpcy5zeXN0ZW1zID0gW3tcbiAgICAgICAgICAgIG5hbWU6ICdMaWdodHMnLFxuICAgICAgICAgICAgb246IGZhbHNlLFxuICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgbmFtZTogJ1N1cnJvdW5kIFNvdW5kJyxcbiAgICAgICAgICAgIG9uOiB0cnVlLFxuICAgICAgICAgICAgY29sb3I6ICdhY2NlbnQnLFxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBuYW1lOiAnVC5WLicsXG4gICAgICAgICAgICBvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbG9yOiAnd2FybicsXG4gICAgICAgIH0sIF07XG4gICAgICAgICAgICBdXT5cbiAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlIHdpdGhpbiBGb3JtczwvaDM+XG4gICAgICAgICAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNvbG9yPVwiYWNjZW50XCIgWyhuZ01vZGVsKV09XCJob3VzZS5sb2NrSG91c2VcIiBuYW1lPVwibG9ja0hvdXNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2s/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImhvdXNlLmxvY2tIb3VzZVwiIGNsYXNzPVwicGFkLXJpZ2h0LXNtXCI+bG9jazwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBkaXNhYmxlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSSBhbSBkaXNhYmxlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWxpc3Q+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VXNhZ2U8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkhUTUw6PC9wPlxuICAgICAgICAgICAgICAgIDxwcmUgbGFuZz1cImh0bWxcIj5cbiAgICAgICAgPCFbQ0RBVEFbXG4gICAgICAgIDwhLS0gVXNhZ2Ugd2l0aGluIEZvcm1zIC0tPlxuICAgICAgICA8Zm9ybT5cbiAgICAgICAgICAgIDxtYXQtbGlzdD5cbiAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY29sb3I9XCJhY2NlbnRcIiBbKG5nTW9kZWwpXT1cImhvdXNlLmxvY2tIb3VzZVwiIG5hbWU9XCJsb2NrSG91c2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIExvY2s/XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaG91c2UubG9ja0hvdXNlXCIgY2xhc3M9XCJwYWQtcmlnaHQtc21cIj5sb2NrPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgPG1hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGRpc2FibGVkPlxuICAgICAgICAgICAgICAgICAgICBJIGFtIGRpc2FibGVkLlxuICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICA8L21hdC1saXN0PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIF1dPlxuICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgICAgICA8cD5KYXZhc2NyaXB0OjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJqYXZhc2NyaXB0XCI+XG4gICAgICAgIDwhW0NEQVRBW1xuICAgICAgICB0aGlzLmhvdXNlID0ge1xuICAgICAgICAgICAgbG9ja0hvdXNlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgICAgIF1dPlxuICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwYWQtYm90dG9tLXNtXCIgaWQ9XCJTbGlkZXJcIj5TbGlkZXIgPG1hdC1pY29uIGNsYXNzPVwibGluay10by1jb21wb25lbnRcIiByb3V0ZXJMaW5rPVwiL1wiIGZyYWdtZW50PVwiU2xpZGVyXCI+bGluazwvbWF0LWljb24+PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5Ib3Jpem9udGFsIFNsaWRlcjwvaDM+XG4gICAgICAgICAgICAgICAgPG1hdC1zbGlkZXIgbWluPVwiMVwiIG1heD1cIjVcIiB0aHVtYkxhYmVsIHRpY2tJbnRlcnZhbD1cIjFcIiB2YWx1ZT1cIjJcIiBjb2xvcj1cInByaW1hcnlcIj48L21hdC1zbGlkZXI+XG4gICAgICAgICAgICAgICAgPG1hdC1zbGlkZXIgc3RlcD1cIjVcIiB0aHVtYkxhYmVsIHRpY2tJbnRlcnZhbD1cIjVcIiB2YWx1ZT1cIjIwXCIgY29sb3I9XCJhY2NlbnRcIj48L21hdC1zbGlkZXI+XG4gICAgICAgICAgICAgICAgPG1hdC1zbGlkZXIgdGh1bWJMYWJlbCB0aWNrLWludGVydmFsPVwiYXV0b1wiIHZhbHVlPVwiMlwiIGNvbG9yPVwid2FyblwiPjwvbWF0LXNsaWRlcj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPG1hdC1zbGlkZXIgbWluPVwiMVwiIG1heD1cIjVcIiB0aHVtYkxhYmVsIHRpY2tJbnRlcnZhbD1cIjFcIiB2YWx1ZT1cIjJcIiBjb2xvcj1cInByaW1hcnlcIj48L21hdC1zbGlkZXI+XG4gICAgICAgIDxtYXQtc2xpZGVyIHN0ZXA9XCI1XCIgdGh1bWJMYWJlbCB0aWNrSW50ZXJ2YWw9XCI1XCIgdmFsdWU9XCIyMFwiIGNvbG9yPVwiYWNjZW50XCI+PC9tYXQtc2xpZGVyPlxuICAgICAgICA8bWF0LXNsaWRlciB0aHVtYkxhYmVsIHRpY2staW50ZXJ2YWw9XCJhdXRvXCIgdmFsdWU9XCIyXCIgY29sb3I9XCJ3YXJuXCI+PC9tYXQtc2xpZGVyPlxuICAgICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1kLXRpdGxlXCI+VmVydGljYWwgU2xpZGVyPC9oMz5cbiAgICAgICAgICAgICAgICA8bWF0LXNsaWRlciB2ZXJ0aWNhbCBtaW49XCIxXCIgbWF4PVwiMTAwXCIgdGh1bWJMYWJlbCB0aWNrSW50ZXJ2YWw9XCIxMFwiIHZhbHVlPVwiMlwiPjwvbWF0LXNsaWRlcj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPG1hdC1zbGlkZXIgdmVydGljYWwgbWluPVwiMVwiIG1heD1cIjEwMFwiIHRodW1iTGFiZWwgdGlja0ludGVydmFsPVwiMTBcIiB2YWx1ZT1cIjJcIj48L21hdC1zbGlkZXI+XG4gICAgICAgIF1dPlxuICAgICAgPC9wcmU+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibWQtdGl0bGVcIj5JbnZlcnRlZCBTbGlkZXI8L2gzPlxuICAgICAgICAgICAgICAgIDxtYXQtc2xpZGVyIGludmVydCBtaW49XCIxXCIgbWF4PVwiMTAwXCIgdGh1bWJMYWJlbCB0aWNrSW50ZXJ2YWw9XCIxMFwiIHZhbHVlPVwiMlwiPjwvbWF0LXNsaWRlcj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtZC10aXRsZVwiPlVzYWdlPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5IVE1MOjwvcD5cbiAgICAgICAgICAgICAgICA8cHJlIGxhbmc9XCJodG1sXCI+XG4gICAgICA8IVtDREFUQVtcbiAgICAgICAgPG1hdC1zbGlkZXIgaW52ZXJ0IG1pbj1cIjFcIiBtYXg9XCIxMDBcIiB0aHVtYkxhYmVsIHRpY2tJbnRlcnZhbD1cIjEwXCIgdmFsdWU9XCIyXCI+PC9tYXQtc2xpZGVyPlxuICAgICAgICBdXT5cbiAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgIDwvZGl2PlxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG4iOw=="}]}