@agilemotion/oui-react-js 2.0.18 → 2.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ApplicationManager.js +25 -8
- package/dist/components/SocketManager.js +6 -3
- package/dist/components/dashboard/FoldingSideTabDashboard.js +4 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +18 -2
- package/dist/components/layout/Window.js +2 -2
- package/dist/view/Dashboard.js +2 -2
- package/package.json +1 -1
|
@@ -298,7 +298,9 @@ function FoldingSideTabDashboard(props) {
|
|
|
298
298
|
document.documentElement.classList.remove("nav-open");
|
|
299
299
|
};
|
|
300
300
|
function launchDashboard() {
|
|
301
|
-
|
|
301
|
+
// Preserve the WindowViewPort overlay — clicking the Dashboard menu item must not close the
|
|
302
|
+
// floating window (it's a separate viewport in our multi-viewport dashboard).
|
|
303
|
+
_ApplicationManager.default.closeAllViews(true);
|
|
302
304
|
//applicationManager.navigate('/switch');
|
|
303
305
|
_ApplicationManager.default.navigate("/view/dashboard");
|
|
304
306
|
}
|
|
@@ -472,4 +474,4 @@ FoldingSideTabDashboard.propTypes = {
|
|
|
472
474
|
avatar: _propTypes.default.string,
|
|
473
475
|
logoutCallBack: _propTypes.default.func
|
|
474
476
|
};
|
|
475
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9tYXRlcmlhbCIsIl9NZW51T3BlbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfTWVudSIsIl9NYWlsIiwiX0xvZ291dCIsIl9NYW5hZ2VBY2NvdW50cyIsIl93aXRoV2lkdGgiLCJfcHJvcFR5cGVzIiwiX1V0aWxzIiwiX1ZpZXdQb3J0IiwiX3JlYWN0Um91dGVyRG9tIiwiX3BlcmZlY3RTY3JvbGxiYXIiLCJfSG9tZU5hdmJhciIsIl9EYXNoYm9hcmRTdG9yZSIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfU29ja2V0TWFuYWdlciIsIl9XaW5kb3dWaWV3UG9ydCIsIl9BY3Rpb25IYW5kbGVycyIsIl9Gb2xkaW5nVGFiU2lkZWJhciIsIl9zdHlsZXMiLCJfdXNlTWVkaWFRdWVyeSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiRFJBV0VSX1dJRFRIIiwiZXhwb3J0cyIsIk1JTklfV0lEVEgiLCJEcmF3ZXJTdHlsZWQiLCJzdHlsZWQiLCJEcmF3ZXIiLCJzaG91bGRGb3J3YXJkUHJvcCIsInByb3AiLCJfcmVmIiwidGhlbWUiLCJvcGVuIiwid2lkdGgiLCJmbGV4U2hyaW5rIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93WCIsInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9ucyIsImNyZWF0ZSIsImVhc2luZyIsInNoYXJwIiwiZHVyYXRpb24iLCJzdGFuZGFyZCIsIk1haW4iLCJfcmVmMiIsImZsZXhHcm93IiwicGFkZGluZyIsImJhY2tncm91bmQiLCJwcyIsIkRBVEFfVVJMX1BSRUZJWCIsIm5vcm1hbGl6ZUxvZ28iLCJzcmMiLCJ1bmRlZmluZWQiLCJzIiwidHJpbSIsInRlc3QiLCJkdXAiLCJSZWdFeHAiLCJjb25jYXQiLCJyZXBsYWNlIiwiRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQiLCJwcm9wcyIsIl9wcm9wcyRhcHBMb2dvUGF0aCIsInNldE9wZW4iLCJ1c2VTdGF0ZSIsIm5hdkRyYXdlck9wZW4iLCJzZXROYXZEcmF3ZXJPcGVuIiwibG9hZGluZyIsInNldExvYWRpbmciLCJhY3RpdmVDb2xvciIsInNldEFjdGl2ZUNvbG9yIiwic2Vjb25kYXJ5VGhlbWVDb2xvciIsInNldFNlY29uZGFyeVRoZW1lQ29sb3IiLCJwcmltYXJ5VGhlbWVDb2xvciIsInNldFByaW1hcnlUaGVtZUNvbG9yIiwidGhlbWVUZXh0Q29sb3IiLCJzZXRUaGVtZVRleHRDb2xvciIsInJvdXRlcyIsInNldFJvdXRlcyIsImxvZ28iLCJzZXRMb2dvIiwic2lkZWJhck9wZW5lZCIsInNldFNpZGViYXJPcGVuZWQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsYXNzTmFtZSIsImluZGV4T2YiLCJzaWRlYmFyTWluaSIsInNldFNpZGViYXJNaW5pIiwib3BhY2l0eSIsInNldE9wYWNpdHkiLCJ3aW5kb3dQaW5uZWQiLCJzZXRXaW5kb3dQaW5uZWQiLCJ1c2VyTWVudUVsIiwic2V0VXNlck1lbnVFbCIsInVzZXJNZW51T3BlbiIsIkJvb2xlYW4iLCJoYW5kbGVVc2VyTWVudU9wZW4iLCJjdXJyZW50VGFyZ2V0IiwiaGFuZGxlVXNlck1lbnVDbG9zZSIsInVzZVRoZW1lIiwiaXNNb2JpbGUiLCJ1c2VNZWRpYVF1ZXJ5IiwiYnJlYWtwb2ludHMiLCJkb3duIiwiaGFuZGxlUHJvZmlsZSIsImxhdW5jaFZpZXciLCJoYW5kbGVMb2dvdXQiLCJsb2dvdXRDYWxsQmFjayIsImhhbmRsZUNoYW5nZVJlcXVlc3ROYXZEcmF3ZXIiLCJoYW5kbGVCZ0NsaWNrIiwiY29sb3IiLCJ1c2VFZmZlY3QiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJzZXREYXNoYm9hcmRTdGF0ZSIsImxlZnRPZmZzZXQiLCJuYXZpZ2F0b3IiLCJwbGF0Zm9ybSIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsInRhYmxlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJQZXJmZWN0U2Nyb2xsYmFyIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInNob3dOYXZiYXJCdXR0b24iLCJMQVJHRSIsIlNvY2tldHMiLCJpbml0IiwiZGlzY29ubmVjdCIsImJvZHkiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0dGluZ3MiLCJzeXN0ZW1Qcm9maWxlRHRvIiwic2Vjb25kQ29ycG9yYXRlQnJhbmRDb2xvciIsImZpcnN0Q29ycG9yYXRlQnJhbmRDb2xvciIsIlV0aWxzIiwiaXNOdWxsIiwiZGFzaGJvYXJkTWVudSIsImlkIiwibWVudXMiLCJteURhc2hib2FyZE1lbnUiLCJpdGVtcyIsImF0dHJpYnV0ZXMiLCJsYWJlbCIsInB1c2giLCJ1c2VyRGFzaGJvYXJkcyIsInVzZXJEYXNoYm9hcmQiLCJpdGVtIiwicGFyYW1ldGVycyIsIm1hcCIsImRhc2hib2FyZE5hbWUiLCJjcmVhdGVOZXdNZW51IiwibW9kdWxlcyIsIm1vZHVsZSIsImRhc2hCb2FyZE1lbnVCYXIiLCJqIiwibWVudSIsIm5ld1JvdXRlcyIsIm5ld1JvdXRlIiwic2hvd0Rhc2hib2FyZE1lbnUiLCJuYW1lIiwiaWNvbiIsImxheW91dCIsImxldmVsIiwiaXNQYXJlbnQiLCJyb3V0ZSIsImNvbGxhcHNlIiwic3RhdGUiLCJzZXR0aW5nc01lbnUiLCJ0b2dnbGVTaWRlYmFyIiwidG9nZ2xlIiwic2Nyb2xsVG9wIiwic2Nyb2xsaW5nRWxlbWVudCIsImdldFJvdXRlcyIsImtleSIsInZpZXdzIiwiY3JlYXRlRWxlbWVudCIsIlJvdXRlIiwicGF0aCIsImNvbXBvbmVudCIsImdldEFjdGl2ZVJvdXRlIiwiYWN0aXZlUm91dGUiLCJjb2xsYXBzZUFjdGl2ZVJvdXRlIiwibG9jYXRpb24iLCJocmVmIiwiaGFuZGxlQWN0aXZlQ2xpY2siLCJjbG9zZVNpZGViYXIiLCJsYXVuY2hEYXNoYm9hcmQiLCJjbG9zZUFsbFZpZXdzIiwibmF2aWdhdGUiLCJhY3Rpb25Db25maWciLCJhY3Rpb25UeXBlIiwicGFyZW50IiwiQWN0aW9uSGFuZGxlcnMiLCJpbnZva2VIYW5kbGVyIiwiQm94Iiwic3giLCJkaXNwbGF5IiwiQ3NzQmFzZWxpbmUiLCJBcHBCYXIiLCJwb3NpdGlvbiIsImVsZXZhdGlvbiIsInpJbmRleCIsImRyYXdlciIsIlRvb2xiYXIiLCJUb29sdGlwIiwidGl0bGUiLCJJY29uQnV0dG9uIiwiZWRnZSIsIm9uQ2xpY2siLCJtbCIsImZvbnRXZWlnaHQiLCJhbGlnbkl0ZW1zIiwic2l6ZSIsIkF2YXRhciIsImFsdCIsImF2YXRhciIsImhlaWdodCIsImJvcmRlclJhZGl1cyIsIk1lbnUiLCJhbmNob3JFbCIsIm9uQ2xvc2UiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJob3Jpem9udGFsIiwidmVydGljYWwiLCJhbmNob3JPcmlnaW4iLCJQYXBlclByb3BzIiwibXQiLCJtaW5XaWR0aCIsIm92ZXJmbG93IiwiY29udGVudCIsInRvcCIsInJpZ2h0IiwiYmdjb2xvciIsInRyYW5zZm9ybSIsIk1lbnVJdGVtIiwiTGlzdEl0ZW1JY29uIiwiZm9udFNpemUiLCJUeXBvZ3JhcGh5IiwiRGl2aWRlciIsInZhcmlhbnQiLCJvbk9wZW5EcmF3ZXIiLCJhY3RpdmVSb3V0ZU1lbnUiLCJkYXNoYm9hcmRMYXVuY2hlciIsImFwcExvZ29QYXRoIiwib3V0dGVyTGluayIsInRleHQiLCJpbWdTcmMiLCJsb2dvU3R5bGUiLCJzdHlsZSIsIm1heEhlaWdodCIsIm14SGVpZ2h0IiwibWVudU9mZnNldCIsIm1hcmdpbiIsInN0YXRlQ2hhbmdlSGFuZGxlciIsInBpbm5lZCIsInByb3BUeXBlcyIsImNoaWxkcmVuIiwiUHJvcFR5cGVzIiwiZWxlbWVudCIsIm51bWJlciIsIm9iamVjdCIsImJvb2wiLCJzdHJpbmciLCJmdW5jIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9Gb2xkaW5nU2lkZVRhYkRhc2hib2FyZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQuanN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG4gICAgQXBwQmFyLFxuICAgIFRvb2xiYXIsXG4gICAgSWNvbkJ1dHRvbixcbiAgICBEcmF3ZXIsXG4gICAgTGlzdCxcbiAgICBMaXN0SXRlbUJ1dHRvbixcbiAgICBMaXN0SXRlbUljb24sXG4gICAgTGlzdEl0ZW1UZXh0LFxuICAgIEJveCxcbiAgICBDc3NCYXNlbGluZSxcbiAgICBUb29sdGlwLFxuICAgIEF2YXRhcixcbiAgICBNZW51LFxuICAgIE1lbnVJdGVtLFxuICAgIERpdmlkZXIsXG4gICAgVHlwb2dyYXBoeVxufSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IE1lbnVPcGVuSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NZW51T3BlblwiO1xuaW1wb3J0IE1lbnVJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL01lbnVcIjtcbmltcG9ydCBNYWlsSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NYWlsXCI7XG5pbXBvcnQgTG9nb3V0IGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0xvZ291dFwiO1xuaW1wb3J0IE1hbmFnZUFjY291bnRzIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL01hbmFnZUFjY291bnRzXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5cbmltcG9ydCB7IExBUkdFIH0gZnJvbSBcIm1hdGVyaWFsLXVpL3V0aWxzL3dpdGhXaWR0aFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IFZpZXdQb3J0IGZyb20gXCIuLi9sYXlvdXQvVmlld1BvcnRcIjtcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCBQZXJmZWN0U2Nyb2xsYmFyIGZyb20gXCJwZXJmZWN0LXNjcm9sbGJhclwiO1xuaW1wb3J0IEhvbWVOYXZiYXIgZnJvbSBcIi4uL25hdmJhcnMvSG9tZU5hdmJhclwiO1xuaW1wb3J0IHsgYWN0aW9uQ3JlYXRvcnMgfSBmcm9tIFwiLi4vLi4vcmVkdXgvc3RvcmUvRGFzaGJvYXJkU3RvcmVcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuaW1wb3J0IFNvY2tldHMgZnJvbSBcIi4uL1NvY2tldE1hbmFnZXJcIjtcbmltcG9ydCBXaW5kb3dWaWV3UG9ydCBmcm9tIFwiLi4vbGF5b3V0L1dpbmRvd1ZpZXdQb3J0XCI7XG5pbXBvcnQgXCIuL0ZvbGRpbmdTaWRlVGFiRGFzaGJvYXJkLmNzc1wiO1xuaW1wb3J0IEFjdGlvbkhhbmRsZXJzIGZyb20gXCIuLi8uLi9ldmVudC9BY3Rpb25IYW5kbGVyc1wiO1xuaW1wb3J0IEZvbGRpbmdUYWJTaWRlYmFyIGZyb20gXCIuL2NvbXBvbmVudHMvYmxhY2tEYXNoYm9hcmQvc2lkZWJhci9Gb2xkaW5nVGFiU2lkZWJhclwiO1xuaW1wb3J0IHsgc3R5bGVkLCB1c2VUaGVtZSB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IHVzZU1lZGlhUXVlcnkgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvdXNlTWVkaWFRdWVyeVwiO1xuXG5leHBvcnQgY29uc3QgRFJBV0VSX1dJRFRIID0gMzIwO1xuY29uc3QgTUlOSV9XSURUSCA9IDcyO1xuXG5jb25zdCBEcmF3ZXJTdHlsZWQgPSBzdHlsZWQoRHJhd2VyLCB7XG4gICAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSBcIm9wZW5cIlxufSkoKHsgdGhlbWUsIG9wZW4gfSkgPT4gKHtcbiAgICB3aWR0aDogb3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEgsXG4gICAgZmxleFNocmluazogMCxcbiAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgIFwiJiAuTXVpRHJhd2VyLXBhcGVyXCI6IHtcbiAgICAgICAgd2lkdGg6IG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRILFxuICAgICAgICBvdmVyZmxvd1g6IFwiaGlkZGVuXCIsXG4gICAgICAgIHRyYW5zaXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmNyZWF0ZShcIndpZHRoXCIsIHtcbiAgICAgICAgICAgIGVhc2luZzogdGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLnNoYXJwLFxuICAgICAgICAgICAgZHVyYXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnN0YW5kYXJkXG4gICAgICAgIH0pXG4gICAgfVxufSkpO1xuXG5jb25zdCBNYWluID0gc3R5bGVkKFwibWFpblwiLCB7IHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT4gcHJvcCAhPT0gXCJvcGVuXCIgfSkoXG4gICAgKHsgdGhlbWUsIG9wZW4gfSkgPT4gKHtcbiAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgIHRyYW5zaXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmNyZWF0ZShcIm1hcmdpbi1sZWZ0XCIsIHtcbiAgICAgICAgICAgIGVhc2luZzogdGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLnNoYXJwLFxuICAgICAgICAgICAgZHVyYXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnN0YW5kYXJkXG4gICAgICAgIH0pLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgICB9KVxuKTtcblxubGV0IHBzO1xuY29uc3QgREFUQV9VUkxfUFJFRklYID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsXCI7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUxvZ28oc3JjKSB7XG4gICAgaWYgKCFzcmMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcyA9IHNyYy50cmltKCk7XG5cbiAgICBpZiAoL15kYXRhOi9pLnRlc3QocykpIHtcbiAgICAgICAgY29uc3QgZHVwID0gbmV3IFJlZ0V4cChgXigke0RBVEFfVVJMX1BSRUZJWH0pK2AsIFwiaVwiKTtcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZShkdXAsIERBVEFfVVJMX1BSRUZJWCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERBVEFfVVJMX1BSRUZJWCArIHM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvbGRpbmdTaWRlVGFiRGFzaGJvYXJkKHByb3BzKSB7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW25hdkRyYXdlck9wZW4sIHNldE5hdkRyYXdlck9wZW5dID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUNvbG9yLCBzZXRBY3RpdmVDb2xvcl0gPSBSZWFjdC51c2VTdGF0ZShcImJsdWVcIik7XG4gICAgY29uc3QgW3NlY29uZGFyeVRoZW1lQ29sb3IsIHNldFNlY29uZGFyeVRoZW1lQ29sb3JdID0gUmVhY3QudXNlU3RhdGUoXCJcIik7XG4gICAgY29uc3QgW3ByaW1hcnlUaGVtZUNvbG9yLCBzZXRQcmltYXJ5VGhlbWVDb2xvcl0gPSBSZWFjdC51c2VTdGF0ZShcIlwiKTtcbiAgICBjb25zdCBbdGhlbWVUZXh0Q29sb3IsIHNldFRoZW1lVGV4dENvbG9yXSA9IFJlYWN0LnVzZVN0YXRlKFwiXCIpO1xuICAgIGNvbnN0IFtyb3V0ZXMsIHNldFJvdXRlc10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xvZ28sIHNldExvZ29dID0gUmVhY3QudXNlU3RhdGUobm9ybWFsaXplTG9nbyhwcm9wcy5sb2dvKSk7XG4gICAgY29uc3QgW3NpZGViYXJPcGVuZWQsIHNldFNpZGViYXJPcGVuZWRdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZihcIm5hdi1vcGVuXCIpICE9PSAtMVxuICAgICk7XG4gICAgY29uc3QgW3NpZGViYXJNaW5pLCBzZXRTaWRlYmFyTWluaV0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbb3BhY2l0eSwgc2V0T3BhY2l0eV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbd2luZG93UGlubmVkLCBzZXRXaW5kb3dQaW5uZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gQXZhdGFyIG1lbnUgc3RhdGVcbiAgICBjb25zdCBbdXNlck1lbnVFbCwgc2V0VXNlck1lbnVFbF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCB1c2VyTWVudU9wZW4gPSBCb29sZWFuKHVzZXJNZW51RWwpO1xuICAgIGNvbnN0IGhhbmRsZVVzZXJNZW51T3BlbiA9IChlKSA9PiBzZXRVc2VyTWVudUVsKGUuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgaGFuZGxlVXNlck1lbnVDbG9zZSA9ICgpID0+IHNldFVzZXJNZW51RWwobnVsbCk7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGlzTW9iaWxlID0gdXNlTWVkaWFRdWVyeSh0aGVtZS5icmVha3BvaW50cy5kb3duKFwic21cIikpO1xuXG4gICAgY29uc3QgaGFuZGxlUHJvZmlsZSA9ICgpID0+IHtcbiAgICAgICAgaGFuZGxlVXNlck1lbnVDbG9zZSgpO1xuICAgICAgICBsYXVuY2hWaWV3KFwiL3N5c3RlbS92aWV3cy91c2VyLXByb2ZpbGUuanNvblwiKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTG9nb3V0ID0gKCkgPT4ge1xuICAgICAgICBoYW5kbGVVc2VyTWVudUNsb3NlKCk7XG4gICAgICAgIHByb3BzLmxvZ291dENhbGxCYWNrICYmIHByb3BzLmxvZ291dENhbGxCYWNrKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZVJlcXVlc3ROYXZEcmF3ZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldE5hdkRyYXdlck9wZW4oIW5hdkRyYXdlck9wZW4pO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCZ0NsaWNrID0gKGNvbG9yKSA9PiB7XG4gICAgICAgIHNldEFjdGl2ZUNvbG9yKGNvbG9yKTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTsgICAvLyBhdXRvIGNvbGxhcHNlIHdoZW4gc2NyZWVuIGlzIHNtYWxsXG4gICAgICAgIH1cbiAgICB9LCBbaXNNb2JpbGVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5zZXREYXNoYm9hcmRTdGF0ZSh7bGVmdE9mZnNldDogb3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEh9KVxuICAgIH0sIFtvcGVuXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoXCJXaW5cIikgPiAtMSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJwZXJmZWN0LXNjcm9sbGJhci1vblwiKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwicGVyZmVjdC1zY3JvbGxiYXItb2ZmXCIpO1xuICAgICAgICAgICAgbGV0IHRhYmxlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFibGUtcmVzcG9uc2l2ZVwiKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcHMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcih0YWJsZXNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHNob3dOYXZiYXJCdXR0b24pO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLndpZHRoICE9PSBudWxsICYmIHR5cGVvZiBwcm9wcy53aWR0aCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgc2V0TmF2RHJhd2VyT3Blbihwcm9wcy53aWR0aCA9PT0gTEFSR0UpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLndpZHRoXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBTb2NrZXRzLmluaXQoKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnNldERhc2hib2FyZFN0YXRlKHtsZWZ0T2Zmc2V0OiBvcGVuID8gRFJBV0VSX1dJRFRIIDogTUlOSV9XSURUSH0pXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBTb2NrZXRzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJ3aGl0ZS1jb250ZW50XCIpO1xuXG4gICAgICAgIGlmIChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZihcIldpblwiKSA+IC0xKSB7XG4gICAgICAgICAgICAvLyBLZWVwaW5nIGZvciBwYXJpdHkgd2l0aCB5b3VyIG9yaWdpbmFsIGNvZGVcbiAgICAgICAgfVxuXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHNob3dOYXZiYXJCdXR0b24pO1xuXG4gICAgICAgIHNldEFjdGl2ZUNvbG9yKFwiYWdpbGl0eVwiKTtcbiAgICAgICAgc2V0U2Vjb25kYXJ5VGhlbWVDb2xvcihwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLnNlY29uZENvcnBvcmF0ZUJyYW5kQ29sb3IpO1xuICAgICAgICBzZXRQcmltYXJ5VGhlbWVDb2xvcihwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLmZpcnN0Q29ycG9yYXRlQnJhbmRDb2xvcik7XG4gICAgICAgIHNldFRoZW1lVGV4dENvbG9yKHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8udGhlbWVUZXh0Q29sb3IpO1xuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzKSkge1xuICAgICAgICAgICAgbGV0IGRhc2hib2FyZE1lbnUgPSB7fTtcbiAgICAgICAgICAgIGRhc2hib2FyZE1lbnUuaWQgPSBcImRhc2hib2FyZFwiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cyA9IFtdO1xuXG4gICAgICAgICAgICBsZXQgbXlEYXNoYm9hcmRNZW51ID0ge307XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuaWQgPSBcIm15RGFzaGJvYXJkXCI7XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuaXRlbXMgPSBbXTtcbiAgICAgICAgICAgIG15RGFzaGJvYXJkTWVudS5hdHRyaWJ1dGVzID0ge307XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuYXR0cmlidXRlcy5sYWJlbCA9IFwiTXkgRGFzaGJvYXJkc1wiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cy5wdXNoKG15RGFzaGJvYXJkTWVudSk7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzLnVzZXJEYXNoYm9hcmRzKSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMuc2V0dGluZ3MudXNlckRhc2hib2FyZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXNoYm9hcmQgPSBwcm9wcy5zZXR0aW5ncy51c2VyRGFzaGJvYXJkc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pZCA9IHVzZXJEYXNoYm9hcmQuaWQ7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmF0dHJpYnV0ZXMubGFiZWwgPSB1c2VyRGFzaGJvYXJkLnBhcmFtZXRlcnMubWFwLmRhc2hib2FyZE5hbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgbXlEYXNoYm9hcmRNZW51Lml0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgY3JlYXRlTmV3TWVudSA9IHt9O1xuICAgICAgICAgICAgY3JlYXRlTmV3TWVudS5pZCA9IFwiY3JlYXRlTmV3XCI7XG4gICAgICAgICAgICBjcmVhdGVOZXdNZW51Lml0ZW1zID0gW107XG4gICAgICAgICAgICBjcmVhdGVOZXdNZW51LmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgIGNyZWF0ZU5ld01lbnUuYXR0cmlidXRlcy5sYWJlbCA9IFwiQ3JlYXRlIE5ld1wiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cy5wdXNoKGNyZWF0ZU5ld01lbnUpO1xuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZHVsZSA9IHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobW9kdWxlLmRhc2hCb2FyZE1lbnVCYXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vZHVsZS5kYXNoQm9hcmRNZW51QmFyLm1lbnVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1lbnUgPSBtb2R1bGUuZGFzaEJvYXJkTWVudUJhci5tZW51c1tqXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhlIG1vZHVsZSBjbGFzc2lmaWNhdGlvbiwgcmVwbGFjZSB0aGUgbGluZSBiZWxvdyB3aXRoIGNyZWF0ZU5ld01lbnUuaXRlbXMucHVzaChtZW51KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld01lbnUuaXRlbXMgPSBjcmVhdGVOZXdNZW51Lml0ZW1zLmNvbmNhdChtZW51Lml0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IG5ld1JvdXRlcyA9IFtdO1xuICAgICAgICAgICAgbGV0IG5ld1JvdXRlID0ge307XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuc2hvd0Rhc2hib2FyZE1lbnUpIHx8IHByb3BzLnNob3dEYXNoYm9hcmRNZW51KSB7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubmFtZSA9IFwiRGFzaGJvYXJkXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUuaWQgPSBcImRhc2hib2FyZFwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmljb24gPSBcImZhIGZhLXBpZS1jaGFydFwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmxheW91dCA9IFwiL2FkbWluXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubGV2ZWwgPSAwO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmlzUGFyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZXMucHVzaChuZXdSb3V0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kdWxlID0gcHJvcHMuc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5tb2R1bGVzW2ldO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcm91dGUgPSB7fTtcblxuICAgICAgICAgICAgICAgICAgICByb3V0ZS5uYW1lID0gbW9kdWxlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZS5pY29uID0gbW9kdWxlLmljb247XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlLm1lbnUgPSBtb2R1bGUubWVudTtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUubGF5b3V0ID0gXCIvYWRtaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUubGV2ZWwgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2R1bGUubWVudSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUuY29sbGFwc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUuc3RhdGUgPSBtb2R1bGUubmFtZSArIFwiQ29sbGFwc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIG5ld1JvdXRlcy5wdXNoKHJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcm9wcy5zZXR0aW5ncy5zZXR0aW5nc01lbnUpIHtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZSA9IHt9O1xuXG4gICAgICAgICAgICAgICAgbmV3Um91dGUubmFtZSA9IFwiU2V0dGluZ3NcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5pY29uID0gXCJmYSBmYS1jb2dcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5sYXlvdXQgPSBcIi9hZG1pblwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmlzUGFyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5jb2xsYXBzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubGV2ZWwgPSAwO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLm1lbnUgPSBcIlwiOyAvLyBUT0RPIDogc2V0IG1lbnUgdmFsdWVcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5zdGF0ZSA9IFwic2V0dGluZ3NNZW51Q29sbGFwc2VcIjtcblxuICAgICAgICAgICAgICAgIG5ld1JvdXRlcy5wdXNoKG5ld1JvdXRlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0Um91dGVzKG5ld1JvdXRlcyk7XG5cbiAgICAgICAgICAgIHByb3BzLnNldHRpbmdzLmRhc2hib2FyZE1lbnUgPSBjcmVhdGVOZXdNZW51Lml0ZW1zLmxlbmd0aCA+IDAgPyBkYXNoYm9hcmRNZW51IDogbnVsbDtcbiAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLnNldHRpbmdzXSk7XG5cbiAgICBjb25zdCB0b2dnbGVTaWRlYmFyID0gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShcIm5hdi1vcGVuXCIpO1xuICAgICAgICBzZXRTaWRlYmFyT3BlbmVkKCFzaWRlYmFyT3BlbmVkKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2hvd05hdmJhckJ1dHRvbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA+IDUwIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA+IDUwXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2V0T3BhY2l0eSgxKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPD0gNTAgfHxcbiAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wIDw9IDUwXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2V0T3BhY2l0eSgwKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBnZXRSb3V0ZXMgPSAocm91dGVzKSA9PiB7XG4gICAgICAgIHJldHVybiByb3V0ZXMubWFwKChwcm9wLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wLmNvbGxhcHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFJvdXRlcyhwcm9wLnZpZXdzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3AubGF5b3V0ID09PSBcIi9hZG1pblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtwcm9wLmxheW91dCArIHByb3AucGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD17cHJvcC5jb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEFjdGl2ZVJvdXRlID0gKHJvdXRlcykgPT4ge1xuICAgICAgICBsZXQgYWN0aXZlUm91dGUgPSBcIkRhc2hib2FyZFwiO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvdXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHJvdXRlc1tpXS5jb2xsYXBzZSAmJiByb3V0ZXNbaV0udmlld3MpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29sbGFwc2VBY3RpdmVSb3V0ZSA9IGdldEFjdGl2ZVJvdXRlKHJvdXRlc1tpXS52aWV3cyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlQWN0aXZlUm91dGUgIT09IGFjdGl2ZVJvdXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsYXBzZUFjdGl2ZVJvdXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKHJvdXRlc1tpXS5sYXlvdXQgKyByb3V0ZXNbaV0ucGF0aCkgIT09IC0xXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZXNbaV0ubmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGl2ZVJvdXRlO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVBY3RpdmVDbGljayA9IChjb2xvcikgPT4ge1xuICAgICAgICBzZXRBY3RpdmVDb2xvcihjb2xvcik7XG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlU2lkZWJhciA9ICgpID0+IHtcbiAgICAgICAgc2V0U2lkZWJhck9wZW5lZChmYWxzZSk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LW9wZW5cIik7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxhdW5jaERhc2hib2FyZCgpIHtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsb3NlQWxsVmlld3MoKTtcbiAgICAgICAgLy9hcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy9zd2l0Y2gnKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKFwiL3ZpZXcvZGFzaGJvYXJkXCIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxhdW5jaFZpZXcocGF0aCkge1xuICAgICAgICBsZXQgYWN0aW9uQ29uZmlnID0ge307XG4gICAgICAgIGFjdGlvbkNvbmZpZy5hY3Rpb25UeXBlID0gXCJyb3V0ZVwiO1xuICAgICAgICBhY3Rpb25Db25maWcucGF0aCA9IHBhdGg7XG4gICAgICAgIGFjdGlvbkNvbmZpZy5wYXJlbnQgPSB0cnVlO1xuXG4gICAgICAgIEFjdGlvbkhhbmRsZXJzLmludm9rZUhhbmRsZXIoYWN0aW9uQ29uZmlnKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZGluZykge1xuICAgICAgICByZXR1cm4gPGRpdj5Mb2FkaW5nLi4uPC9kaXY+O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCb3ggc3g9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XG4gICAgICAgICAgICA8Q3NzQmFzZWxpbmUgLz5cblxuICAgICAgICAgICAgey8qIEVuc3VyZSB0aGUgdG9nZ2xlIGJ1dHRvbiBhbHdheXMgc2l0cyBhYm92ZSB0aGUgZHJhd2VyICovfVxuICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgZWxldmF0aW9uPXsxfVxuICAgICAgICAgICAgICAgIHN4PXt7IHpJbmRleDogKHRoZW1lKSA9PiB0aGVtZS56SW5kZXguZHJhd2VyICsgMSB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUb29sYmFyPlxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17b3BlbiA/IFwiQ29sbGFwc2UgbWVudVwiIDogXCJFeHBhbmQgbWVudVwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uIGNvbG9yPVwiaW5oZXJpdFwiIGVkZ2U9XCJzdGFydFwiIG9uQ2xpY2s9eygpID0+IHNldE9wZW4oKG8pID0+ICFvKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge29wZW4gPyA8TWVudU9wZW5JY29uIC8+IDogPE1lbnVJY29uIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggc3g9e3sgbWw6IDEsIGZvbnRXZWlnaHQ6IDYwMCB9fT48L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBzeD17eyBtbDogXCJhdXRvXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwiIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9XCJBY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVXNlck1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17eyBtbDogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXt1c2VyTWVudU9wZW4gPyBcImFjY291bnQtbWVudVwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3VzZXJNZW51T3BlbiA/IFwidHJ1ZVwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEF2YXRhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiVXNlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3Byb3BzLmF2YXRhcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7IHdpZHRoOiAzNiwgaGVpZ2h0OiAzNiwgYm9yZGVyUmFkaXVzOiBcIjUwJVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVsPXt1c2VyTWVudUVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWNjb3VudC1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuPXt1c2VyTWVudU9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17aGFuZGxlVXNlck1lbnVDbG9zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVVc2VyTWVudUNsb3NlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17eyBob3Jpem9udGFsOiBcInJpZ2h0XCIsIHZlcnRpY2FsOiBcInRvcFwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IGhvcml6b250YWw6IFwicmlnaHRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXBlclByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbjogMyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10OiAxLjUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMjIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCImOmJlZm9yZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmdjb2xvcjogXCJiYWNrZ3JvdW5kLnBhcGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW0gb25DbGljaz17aGFuZGxlUHJvZmlsZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWFuYWdlQWNjb3VudHMgZm9udFNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT5Qcm9maWxlPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERpdmlkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW0gb25DbGljaz17aGFuZGxlTG9nb3V0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMb2dvdXQgZm9udFNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT5Mb2cgb3V0PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvVG9vbGJhcj5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuXG4gICAgICAgICAgICA8RHJhd2VyU3R5bGVkIHZhcmlhbnQ9e2lzTW9iaWxlID8gXCJ0ZW1wb3JhcnlcIiA6IFwicGVybWFuZW50XCJ9IG9wZW49e29wZW59PlxuICAgICAgICAgICAgICAgIDxUb29sYmFyIC8+XG4gICAgICAgICAgICAgICAgPEZvbGRpbmdUYWJTaWRlYmFyXG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgcm91dGVzPXtyb3V0ZXN9XG4gICAgICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNvbG9yPXsnYWdpbGl0eSd9XG4gICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRoZW1lQ29sb3I9e3NlY29uZGFyeVRoZW1lQ29sb3J9XG4gICAgICAgICAgICAgICAgICAgIG9uT3BlbkRyYXdlcj17KCkgPT4gc2V0T3Blbih0cnVlKX1cbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlUm91dGVNZW51PXtwcm9wcy5zaG93RGFzaGJvYXJkTWVudSA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnZGFzaGJvYXJkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdEYXNoYm9hcmQnXG4gICAgICAgICAgICAgICAgICAgIH0gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRMYXVuY2hlcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF1bmNoRGFzaGJvYXJkKCk7XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGFwcExvZ29QYXRoPXtwcm9wcy5hcHBMb2dvUGF0aCA/PyAnJ31cbiAgICAgICAgICAgICAgICAgICAgbG9nbz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0dGVyTGluazogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZ1NyYzogbG9nbyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgbG9nb1N0eWxlPXtwcm9wcy5sb2dvU3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlU2lkZWJhcj17Y2xvc2VTaWRlYmFyfVxuICAgICAgICAgICAgICAgIC8+eycgJ31cbiAgICAgICAgICAgIDwvRHJhd2VyU3R5bGVkPlxuICAgICAgICAgICAgPE1haW4gb3Blbj17b3Blbn0+XG4gICAgICAgICAgICAgICAgPFRvb2xiYXIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhc2hib2FyZC1tYWluLWNvbnRlbnRcIiBzdHlsZT17e2hlaWdodDogXCJjYWxjKDEwMHZoIC0gNzBweClcIiwgbWF4SGVpZ2h0OiBcImNhbGMoMTAwdmggLSA3MHB4KVwifX0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCB3LTEwMCBoLTEwMCByb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbiBtb2JpbGUgYSBwaW5uZWQgd2luZG93IGNvbGxhcHNlcyB0byBhIGZsb2F0aW5nIHBpbGwsIHNvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgcmVzZXJ2ZSB0aGUgMzIwcHggc3RyaXAgKGl0IHdvdWxkIHNocmluayBjb250ZW50IHRvIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbGl2ZXIgYW5kIG92ZXJmbG93IHRoZSB2aWV3cG9ydCkuIFBpbGwgZmxvYXRzIG92ZXIgY29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2luZG93UGlubmVkICYmICFpc01vYmlsZSA/ICdjYWxjKDEwMCUgLSAzMjBweCknIDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXhIZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3UG9ydCB3aW5kb3dQaW5uZWQ9e3dpbmRvd1Bpbm5lZH0gbWVudU9mZnNldD17aXNNb2JpbGUgPyAwIDogKG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRIKX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpbmRvd1Bpbm5lZCAmJiAhaXNNb2JpbGUgPyAnMzIwcHgnIDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogd2luZG93UGlubmVkICYmICFpc01vYmlsZSA/ICc4cHgnIDogJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Vmlld1BvcnQgbWVudU9mZnNldD17aXNNb2JpbGUgPyAwIDogKG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRIKX0gc3RhdGVDaGFuZ2VIYW5kbGVyPXsoc3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93UGlubmVkKHN0YXRlLnBpbm5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9NYWluPlxuICAgICAgICA8L0JveD5cbiAgICApO1xufVxuXG5Gb2xkaW5nU2lkZVRhYkRhc2hib2FyZC5wcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5lbGVtZW50LFxuICAgIHdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHNldHRpbmdzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHNob3dEYXNoYm9hcmRNZW51OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBsb2dvOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxvZ29TdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhcHBMb2dvUGF0aDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhdmF0YXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbG9nb3V0Q2FsbEJhY2s6IFByb3BUeXBlcy5mdW5jXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBa0JBLElBQUFFLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUdBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFVLE1BQUEsR0FBQVAsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFZLGVBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLGlCQUFBLEdBQUFWLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBYyxXQUFBLEdBQUFYLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBZSxlQUFBLEdBQUFmLE9BQUE7QUFDQSxJQUFBZ0IsbUJBQUEsR0FBQWIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFpQixjQUFBLEdBQUFkLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBa0IsZUFBQSxHQUFBZixzQkFBQSxDQUFBSCxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBbUIsZUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFvQixrQkFBQSxHQUFBakIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFxQixPQUFBLEdBQUFyQixPQUFBO0FBQ0EsSUFBQXNCLGNBQUEsR0FBQW5CLHNCQUFBLENBQUFILE9BQUE7QUFBd0QsU0FBQUcsdUJBQUFvQixDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQXhCLHdCQUFBd0IsQ0FBQSxFQUFBRyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQTVCLHVCQUFBLFlBQUFBLENBQUF3QixDQUFBLEVBQUFHLENBQUEsU0FBQUEsQ0FBQSxJQUFBSCxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxTQUFBRCxDQUFBLE1BQUFPLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQVIsT0FBQSxFQUFBRixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFTLENBQUEsTUFBQUYsQ0FBQSxHQUFBSixDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRSxDQUFBLENBQUFJLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTyxDQUFBLENBQUFLLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTyxDQUFBLENBQUFNLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUyxDQUFBLGdCQUFBTixDQUFBLElBQUFILENBQUEsZ0JBQUFHLENBQUEsT0FBQVcsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUcsQ0FBQSxPQUFBSyxDQUFBLElBQUFELENBQUEsR0FBQVMsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsQ0FBQSxPQUFBSyxDQUFBLENBQUFJLEdBQUEsSUFBQUosQ0FBQSxDQUFBSyxHQUFBLElBQUFOLENBQUEsQ0FBQUUsQ0FBQSxFQUFBTixDQUFBLEVBQUFLLENBQUEsSUFBQUMsQ0FBQSxDQUFBTixDQUFBLElBQUFILENBQUEsQ0FBQUcsQ0FBQSxXQUFBTSxDQUFBLEtBQUFULENBQUEsRUFBQUcsQ0FBQTtBQUFBLFNBQUFnQixTQUFBLFdBQUFBLFFBQUEsR0FBQUgsTUFBQSxDQUFBSSxNQUFBLEdBQUFKLE1BQUEsQ0FBQUksTUFBQSxDQUFBQyxJQUFBLGVBQUFmLENBQUEsYUFBQU4sQ0FBQSxNQUFBQSxDQUFBLEdBQUFzQixTQUFBLENBQUFDLE1BQUEsRUFBQXZCLENBQUEsVUFBQUcsQ0FBQSxHQUFBbUIsU0FBQSxDQUFBdEIsQ0FBQSxZQUFBSyxDQUFBLElBQUFGLENBQUEsT0FBQVcsY0FBQSxDQUFBQyxJQUFBLENBQUFaLENBQUEsRUFBQUUsQ0FBQSxNQUFBQyxDQUFBLENBQUFELENBQUEsSUFBQUYsQ0FBQSxDQUFBRSxDQUFBLGFBQUFDLENBQUEsS0FBQWEsUUFBQSxDQUFBSyxLQUFBLE9BQUFGLFNBQUEsS0ExQ3hEO0FBNENPLE1BQU1HLFlBQVksR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQUcsR0FBRztBQUMvQixNQUFNRSxVQUFVLEdBQUcsRUFBRTtBQUVyQixNQUFNQyxZQUFZLEdBQUcsSUFBQUMsY0FBTSxFQUFDQyxnQkFBTSxFQUFFO0VBQ2hDQyxpQkFBaUIsRUFBR0MsSUFBSSxJQUFLQSxJQUFJLEtBQUs7QUFDMUMsQ0FBQyxDQUFDLENBQUNDLElBQUE7RUFBQSxJQUFDO0lBQUVDLEtBQUs7SUFBRUM7RUFBSyxDQUFDLEdBQUFGLElBQUE7RUFBQSxPQUFNO0lBQ3JCRyxLQUFLLEVBQUVELElBQUksR0FBR1YsWUFBWSxHQUFHRSxVQUFVO0lBQ3ZDVSxVQUFVLEVBQUUsQ0FBQztJQUNiQyxVQUFVLEVBQUUsUUFBUTtJQUNwQixvQkFBb0IsRUFBRTtNQUNsQkYsS0FBSyxFQUFFRCxJQUFJLEdBQUdWLFlBQVksR0FBR0UsVUFBVTtNQUN2Q1ksU0FBUyxFQUFFLFFBQVE7TUFDbkJDLFVBQVUsRUFBRU4sS0FBSyxDQUFDTyxXQUFXLENBQUNDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDMUNDLE1BQU0sRUFBRVQsS0FBSyxDQUFDTyxXQUFXLENBQUNFLE1BQU0sQ0FBQ0MsS0FBSztRQUN0Q0MsUUFBUSxFQUFFWCxLQUFLLENBQUNPLFdBQVcsQ0FBQ0ksUUFBUSxDQUFDQztNQUN6QyxDQUFDO0lBQ0w7RUFDSixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUgsTUFBTUMsSUFBSSxHQUFHLElBQUFsQixjQUFNLEVBQUMsTUFBTSxFQUFFO0VBQUVFLGlCQUFpQixFQUFHQyxJQUFJLElBQUtBLElBQUksS0FBSztBQUFPLENBQUMsQ0FBQyxDQUN6RWdCLEtBQUE7RUFBQSxJQUFDO0lBQUVkLEtBQUs7SUFBRUM7RUFBSyxDQUFDLEdBQUFhLEtBQUE7RUFBQSxPQUFNO0lBQ2xCQyxRQUFRLEVBQUUsQ0FBQztJQUNYVCxVQUFVLEVBQUVOLEtBQUssQ0FBQ08sV0FBVyxDQUFDQyxNQUFNLENBQUMsYUFBYSxFQUFFO01BQ2hEQyxNQUFNLEVBQUVULEtBQUssQ0FBQ08sV0FBVyxDQUFDRSxNQUFNLENBQUNDLEtBQUs7TUFDdENDLFFBQVEsRUFBRVgsS0FBSyxDQUFDTyxXQUFXLENBQUNJLFFBQVEsQ0FBQ0M7SUFDekMsQ0FBQyxDQUFDO0lBQ0ZJLE9BQU8sRUFBRSxDQUFDO0lBQ1ZDLFVBQVUsRUFBRTtFQUNoQixDQUFDO0FBQUEsQ0FDTCxDQUFDO0FBRUQsSUFBSUMsRUFBRTtBQUNOLE1BQU1DLGVBQWUsR0FBRyx3QkFBd0I7QUFFaEQsU0FBU0MsYUFBYUEsQ0FBQ0MsR0FBRyxFQUFFO0VBQ3hCLElBQUksQ0FBQ0EsR0FBRyxFQUFFLE9BQU9DLFNBQVM7RUFDMUIsTUFBTUMsQ0FBQyxHQUFHRixHQUFHLENBQUNHLElBQUksQ0FBQyxDQUFDO0VBRXBCLElBQUksU0FBUyxDQUFDQyxJQUFJLENBQUNGLENBQUMsQ0FBQyxFQUFFO0lBQ25CLE1BQU1HLEdBQUcsR0FBRyxJQUFJQyxNQUFNLE1BQUFDLE1BQUEsQ0FBTVQsZUFBZSxTQUFNLEdBQUcsQ0FBQztJQUNyRCxPQUFPSSxDQUFDLENBQUNNLE9BQU8sQ0FBQ0gsR0FBRyxFQUFFUCxlQUFlLENBQUM7RUFDMUM7RUFFQSxPQUFPQSxlQUFlLEdBQUdJLENBQUM7QUFDOUI7QUFFZSxTQUFTTyx1QkFBdUJBLENBQUNDLEtBQUssRUFBRTtFQUFBLElBQUFDLGtCQUFBO0VBQ25ELE1BQU0sQ0FBQy9CLElBQUksRUFBRWdDLE9BQU8sQ0FBQyxHQUFHNUYsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUM1QyxNQUFNLENBQUNDLGFBQWEsRUFBRUMsZ0JBQWdCLENBQUMsR0FBRy9GLEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDOUQsTUFBTSxDQUFDRyxPQUFPLEVBQUVDLFVBQVUsQ0FBQyxHQUFHakcsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUNsRCxNQUFNLENBQUNLLFdBQVcsRUFBRUMsY0FBYyxDQUFDLEdBQUduRyxLQUFLLENBQUM2RixRQUFRLENBQUMsTUFBTSxDQUFDO0VBQzVELE1BQU0sQ0FBQ08sbUJBQW1CLEVBQUVDLHNCQUFzQixDQUFDLEdBQUdyRyxLQUFLLENBQUM2RixRQUFRLENBQUMsRUFBRSxDQUFDO0VBQ3hFLE1BQU0sQ0FBQ1MsaUJBQWlCLEVBQUVDLG9CQUFvQixDQUFDLEdBQUd2RyxLQUFLLENBQUM2RixRQUFRLENBQUMsRUFBRSxDQUFDO0VBQ3BFLE1BQU0sQ0FBQ1csY0FBYyxFQUFFQyxpQkFBaUIsQ0FBQyxHQUFHekcsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLEVBQUUsQ0FBQztFQUM5RCxNQUFNLENBQUNhLE1BQU0sRUFBRUMsU0FBUyxDQUFDLEdBQUczRyxLQUFLLENBQUM2RixRQUFRLENBQUMsRUFBRSxDQUFDO0VBQzlDLE1BQU0sQ0FBQ2UsSUFBSSxFQUFFQyxPQUFPLENBQUMsR0FBRzdHLEtBQUssQ0FBQzZGLFFBQVEsQ0FBQ2QsYUFBYSxDQUFDVyxLQUFLLENBQUNrQixJQUFJLENBQUMsQ0FBQztFQUNqRSxNQUFNLENBQUNFLGFBQWEsRUFBRUMsZ0JBQWdCLENBQUMsR0FBRy9HLEtBQUssQ0FBQzZGLFFBQVEsQ0FDcERtQixRQUFRLENBQUNDLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUNoRSxDQUFDO0VBQ0QsTUFBTSxDQUFDQyxXQUFXLEVBQUVDLGNBQWMsQ0FBQyxHQUFHckgsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUMxRCxNQUFNLENBQUN5QixPQUFPLEVBQUVDLFVBQVUsQ0FBQyxHQUFHdkgsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLENBQUMsQ0FBQztFQUMvQyxNQUFNLENBQUMyQixZQUFZLEVBQUVDLGVBQWUsQ0FBQyxHQUFHekgsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLEtBQUssQ0FBQzs7RUFFN0Q7RUFDQSxNQUFNLENBQUM2QixVQUFVLEVBQUVDLGFBQWEsQ0FBQyxHQUFHM0gsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUN4RCxNQUFNK0IsWUFBWSxHQUFHQyxPQUFPLENBQUNILFVBQVUsQ0FBQztFQUN4QyxNQUFNSSxrQkFBa0IsR0FBSXJHLENBQUMsSUFBS2tHLGFBQWEsQ0FBQ2xHLENBQUMsQ0FBQ3NHLGFBQWEsQ0FBQztFQUNoRSxNQUFNQyxtQkFBbUIsR0FBR0EsQ0FBQSxLQUFNTCxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQ3JELE1BQU1oRSxLQUFLLEdBQUcsSUFBQXNFLGdCQUFRLEVBQUMsQ0FBQztFQUN4QixNQUFNQyxRQUFRLEdBQUcsSUFBQUMsc0JBQWEsRUFBQ3hFLEtBQUssQ0FBQ3lFLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0VBRTVELE1BQU1DLGFBQWEsR0FBR0EsQ0FBQSxLQUFNO0lBQ3hCTixtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JCTyxVQUFVLENBQUMsaUNBQWlDLENBQUM7RUFDakQsQ0FBQztFQUVELE1BQU1DLFlBQVksR0FBR0EsQ0FBQSxLQUFNO0lBQ3ZCUixtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JCdEMsS0FBSyxDQUFDK0MsY0FBYyxJQUFJL0MsS0FBSyxDQUFDK0MsY0FBYyxDQUFDLENBQUM7RUFDbEQsQ0FBQztFQUVELE1BQU1DLDRCQUE0QixHQUFHQSxDQUFBLEtBQU07SUFDdkMzQyxnQkFBZ0IsQ0FBQyxDQUFDRCxhQUFhLENBQUM7RUFDcEMsQ0FBQztFQUVELE1BQU02QyxhQUFhLEdBQUlDLEtBQUssSUFBSztJQUM3QnpDLGNBQWMsQ0FBQ3lDLEtBQUssQ0FBQztFQUN6QixDQUFDO0VBRUQ1SSxLQUFLLENBQUM2SSxTQUFTLENBQUMsTUFBTTtJQUNsQixJQUFJWCxRQUFRLEVBQUU7TUFDVnRDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFHO0lBQ3RCO0VBQ0osQ0FBQyxFQUFFLENBQUNzQyxRQUFRLENBQUMsQ0FBQztFQUVkbEksS0FBSyxDQUFDNkksU0FBUyxDQUFDLE1BQU07SUFDbEJDLDJCQUFrQixDQUFDQyxpQkFBaUIsQ0FBQztNQUFDQyxVQUFVLEVBQUVwRixJQUFJLEdBQUdWLFlBQVksR0FBR0U7SUFBVSxDQUFDLENBQUM7RUFDeEYsQ0FBQyxFQUFFLENBQUNRLElBQUksQ0FBQyxDQUFDO0VBRVY1RCxLQUFLLENBQUM2SSxTQUFTLENBQUMsTUFBTTtJQUNsQixJQUFJSSxTQUFTLENBQUNDLFFBQVEsQ0FBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtNQUN4Q0gsUUFBUSxDQUFDQyxlQUFlLENBQUNrQyxTQUFTLENBQUNDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztNQUM5RHBDLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDa0MsU0FBUyxDQUFDRSxNQUFNLENBQUMsdUJBQXVCLENBQUM7TUFDbEUsSUFBSUMsTUFBTSxHQUFHdEMsUUFBUSxDQUFDdUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7TUFDM0QsS0FBSyxJQUFJdEgsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHcUgsTUFBTSxDQUFDdEcsTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtRQUNwQzRDLEVBQUUsR0FBRyxJQUFJMkUseUJBQWdCLENBQUNGLE1BQU0sQ0FBQ3JILENBQUMsQ0FBQyxDQUFDO01BQ3hDO0lBQ0o7SUFDQXdILE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsUUFBUSxFQUFFQyxnQkFBZ0IsQ0FBQztFQUN2RCxDQUFDLENBQUM7RUFFRjNKLEtBQUssQ0FBQzZJLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCLElBQUluRCxLQUFLLENBQUM3QixLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU82QixLQUFLLENBQUM3QixLQUFLLEtBQUssV0FBVyxFQUFFO01BQzVEa0MsZ0JBQWdCLENBQUNMLEtBQUssQ0FBQzdCLEtBQUssS0FBSytGLGdCQUFLLENBQUM7SUFDM0M7RUFDSixDQUFDLEVBQUUsQ0FBQ2xFLEtBQUssQ0FBQzdCLEtBQUssQ0FBQyxDQUFDO0VBRWpCN0QsS0FBSyxDQUFDNkksU0FBUyxDQUFDLE1BQU07SUFDbEJnQixzQkFBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQztJQUNkaEIsMkJBQWtCLENBQUNDLGlCQUFpQixDQUFDO01BQUNDLFVBQVUsRUFBRXBGLElBQUksR0FBR1YsWUFBWSxHQUFHRTtJQUFVLENBQUMsQ0FBQztJQUNwRixPQUFPLE1BQU07TUFDVHlHLHNCQUFPLENBQUNFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7RUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4vSixLQUFLLENBQUM2SSxTQUFTLENBQUMsTUFBTTtJQUNsQjdCLFFBQVEsQ0FBQ2dELElBQUksQ0FBQ2IsU0FBUyxDQUFDQyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBRTVDLElBQUlILFNBQVMsQ0FBQ0MsUUFBUSxDQUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO01BQ3hDO0lBQUE7SUFHSnNDLE1BQU0sQ0FBQ1EsbUJBQW1CLENBQUMsUUFBUSxFQUFFTixnQkFBZ0IsQ0FBQztJQUV0RHhELGNBQWMsQ0FBQyxTQUFTLENBQUM7SUFDekJFLHNCQUFzQixDQUFDWCxLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDQyx5QkFBeUIsQ0FBQztJQUNqRjdELG9CQUFvQixDQUFDYixLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDRSx3QkFBd0IsQ0FBQztJQUM5RTVELGlCQUFpQixDQUFDZixLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDM0QsY0FBYyxDQUFDO0lBRWpFLElBQUksQ0FBQzhELGNBQUssQ0FBQ0MsTUFBTSxDQUFDN0UsS0FBSyxDQUFDd0UsUUFBUSxDQUFDLEVBQUU7TUFDL0IsSUFBSU0sYUFBYSxHQUFHLENBQUMsQ0FBQztNQUN0QkEsYUFBYSxDQUFDQyxFQUFFLEdBQUcsV0FBVztNQUM5QkQsYUFBYSxDQUFDRSxLQUFLLEdBQUcsRUFBRTtNQUV4QixJQUFJQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO01BQ3hCQSxlQUFlLENBQUNGLEVBQUUsR0FBRyxhQUFhO01BQ2xDRSxlQUFlLENBQUNDLEtBQUssR0FBRyxFQUFFO01BQzFCRCxlQUFlLENBQUNFLFVBQVUsR0FBRyxDQUFDLENBQUM7TUFDL0JGLGVBQWUsQ0FBQ0UsVUFBVSxDQUFDQyxLQUFLLEdBQUcsZUFBZTtNQUNsRE4sYUFBYSxDQUFDRSxLQUFLLENBQUNLLElBQUksQ0FBQ0osZUFBZSxDQUFDO01BRXpDLElBQUksQ0FBQ0wsY0FBSyxDQUFDQyxNQUFNLENBQUM3RSxLQUFLLENBQUN3RSxRQUFRLENBQUNjLGNBQWMsQ0FBQyxFQUFFO1FBQzlDLEtBQUssSUFBSS9JLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3lELEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ2MsY0FBYyxDQUFDaEksTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtVQUMzRCxJQUFJZ0osYUFBYSxHQUFHdkYsS0FBSyxDQUFDd0UsUUFBUSxDQUFDYyxjQUFjLENBQUMvSSxDQUFDLENBQUM7VUFDcEQsSUFBSWlKLElBQUksR0FBRyxDQUFDLENBQUM7VUFDYkEsSUFBSSxDQUFDVCxFQUFFLEdBQUdRLGFBQWEsQ0FBQ1IsRUFBRTtVQUMxQlMsSUFBSSxDQUFDTCxVQUFVLEdBQUcsQ0FBQyxDQUFDO1VBQ3BCSyxJQUFJLENBQUNMLFVBQVUsQ0FBQ0MsS0FBSyxHQUFHRyxhQUFhLENBQUNFLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDQyxhQUFhO1VBRWxFVixlQUFlLENBQUNDLEtBQUssQ0FBQ0csSUFBSSxDQUFDRyxJQUFJLENBQUM7UUFDcEM7TUFDSjtNQUVBLElBQUlJLGFBQWEsR0FBRyxDQUFDLENBQUM7TUFDdEJBLGFBQWEsQ0FBQ2IsRUFBRSxHQUFHLFdBQVc7TUFDOUJhLGFBQWEsQ0FBQ1YsS0FBSyxHQUFHLEVBQUU7TUFDeEJVLGFBQWEsQ0FBQ1QsVUFBVSxHQUFHLENBQUMsQ0FBQztNQUM3QlMsYUFBYSxDQUFDVCxVQUFVLENBQUNDLEtBQUssR0FBRyxZQUFZO01BQzdDTixhQUFhLENBQUNFLEtBQUssQ0FBQ0ssSUFBSSxDQUFDTyxhQUFhLENBQUM7TUFFdkMsSUFBSSxDQUFDaEIsY0FBSyxDQUFDQyxNQUFNLENBQUM3RSxLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDb0IsT0FBTyxDQUFDLEVBQUU7UUFDeEQsS0FBSyxJQUFJdEosQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHeUQsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ29CLE9BQU8sQ0FBQ3ZJLE1BQU0sRUFBRWYsQ0FBQyxFQUFFLEVBQUU7VUFDckUsSUFBSXVKLE1BQU0sR0FBRzlGLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUNvQixPQUFPLENBQUN0SixDQUFDLENBQUM7VUFDdkQsSUFBSSxDQUFDcUksY0FBSyxDQUFDQyxNQUFNLENBQUNpQixNQUFNLENBQUNDLGdCQUFnQixDQUFDLEVBQUU7WUFDeEMsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdGLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUNmLEtBQUssQ0FBQzFILE1BQU0sRUFBRTBJLENBQUMsRUFBRSxFQUFFO2NBQzNELElBQUlDLElBQUksR0FBR0gsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQ2YsS0FBSyxDQUFDZ0IsQ0FBQyxDQUFDOztjQUUzQztjQUNBSixhQUFhLENBQUNWLEtBQUssR0FBR1UsYUFBYSxDQUFDVixLQUFLLENBQUNyRixNQUFNLENBQUNvRyxJQUFJLENBQUNmLEtBQUssQ0FBQztZQUNoRTtVQUNKO1FBQ0o7TUFDSjtNQUVBLElBQUlnQixTQUFTLEdBQUcsRUFBRTtNQUNsQixJQUFJQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO01BRWpCLElBQUl2QixjQUFLLENBQUNDLE1BQU0sQ0FBQzdFLEtBQUssQ0FBQ29HLGlCQUFpQixDQUFDLElBQUlwRyxLQUFLLENBQUNvRyxpQkFBaUIsRUFBRTtRQUNsRUQsUUFBUSxDQUFDRSxJQUFJLEdBQUcsV0FBVztRQUMzQkYsUUFBUSxDQUFDcEIsRUFBRSxHQUFHLFdBQVc7UUFDekJvQixRQUFRLENBQUNHLElBQUksR0FBRyxpQkFBaUI7UUFDakNILFFBQVEsQ0FBQ0ksTUFBTSxHQUFHLFFBQVE7UUFDMUJKLFFBQVEsQ0FBQ0ssS0FBSyxHQUFHLENBQUM7UUFDbEJMLFFBQVEsQ0FBQ00sUUFBUSxHQUFHLElBQUk7UUFDeEJQLFNBQVMsQ0FBQ2IsSUFBSSxDQUFDYyxRQUFRLENBQUM7TUFDNUI7TUFFQSxJQUFJLENBQUN2QixjQUFLLENBQUNDLE1BQU0sQ0FBQzdFLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUNvQixPQUFPLENBQUMsRUFBRTtRQUN4RCxLQUFLLElBQUl0SixDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUd5RCxLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDb0IsT0FBTyxDQUFDdkksTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtVQUNyRSxJQUFJdUosTUFBTSxHQUFHOUYsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ29CLE9BQU8sQ0FBQ3RKLENBQUMsQ0FBQztVQUN2RCxJQUFJbUssS0FBSyxHQUFHLENBQUMsQ0FBQztVQUVkQSxLQUFLLENBQUNMLElBQUksR0FBR1AsTUFBTSxDQUFDVixLQUFLO1VBQ3pCc0IsS0FBSyxDQUFDSixJQUFJLEdBQUdSLE1BQU0sQ0FBQ1EsSUFBSTtVQUN4QkksS0FBSyxDQUFDVCxJQUFJLEdBQUdILE1BQU0sQ0FBQ0csSUFBSTtVQUN4QlMsS0FBSyxDQUFDSCxNQUFNLEdBQUcsUUFBUTtVQUN2QkcsS0FBSyxDQUFDRixLQUFLLEdBQUcsQ0FBQztVQUVmLElBQUlWLE1BQU0sQ0FBQ0csSUFBSSxFQUFFO1lBQ2JTLEtBQUssQ0FBQ0MsUUFBUSxHQUFHLElBQUk7WUFDckJELEtBQUssQ0FBQ0UsS0FBSyxHQUFHZCxNQUFNLENBQUNPLElBQUksR0FBRyxVQUFVO1VBQzFDO1VBRUFILFNBQVMsQ0FBQ2IsSUFBSSxDQUFDcUIsS0FBSyxDQUFDO1FBQ3pCO01BQ0o7TUFFQSxJQUFJMUcsS0FBSyxDQUFDd0UsUUFBUSxDQUFDcUMsWUFBWSxFQUFFO1FBQzdCVixRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWJBLFFBQVEsQ0FBQ0UsSUFBSSxHQUFHLFVBQVU7UUFDMUJGLFFBQVEsQ0FBQ0csSUFBSSxHQUFHLFdBQVc7UUFDM0JILFFBQVEsQ0FBQ0ksTUFBTSxHQUFHLFFBQVE7UUFDMUJKLFFBQVEsQ0FBQ00sUUFBUSxHQUFHLElBQUk7UUFDeEJOLFFBQVEsQ0FBQ1EsUUFBUSxHQUFHLElBQUk7UUFDeEJSLFFBQVEsQ0FBQ0ssS0FBSyxHQUFHLENBQUM7UUFDbEJMLFFBQVEsQ0FBQ0YsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCRSxRQUFRLENBQUNTLEtBQUssR0FBRyxzQkFBc0I7UUFFdkNWLFNBQVMsQ0FBQ2IsSUFBSSxDQUFDYyxRQUFRLENBQUM7TUFDNUI7TUFFQWxGLFNBQVMsQ0FBQ2lGLFNBQVMsQ0FBQztNQUVwQmxHLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ00sYUFBYSxHQUFHYyxhQUFhLENBQUNWLEtBQUssQ0FBQzVILE1BQU0sR0FBRyxDQUFDLEdBQUd3SCxhQUFhLEdBQUcsSUFBSTtNQUNwRnZFLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDckI7RUFDSixDQUFDLEVBQUUsQ0FBQ1AsS0FBSyxDQUFDd0UsUUFBUSxDQUFDLENBQUM7RUFFcEIsTUFBTXNDLGFBQWEsR0FBR0EsQ0FBQSxLQUFNO0lBQ3hCeEYsUUFBUSxDQUFDQyxlQUFlLENBQUNrQyxTQUFTLENBQUNzRCxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3JEMUYsZ0JBQWdCLENBQUMsQ0FBQ0QsYUFBYSxDQUFDO0VBQ3BDLENBQUM7RUFFRCxNQUFNNkMsZ0JBQWdCLEdBQUdBLENBQUEsS0FBTTtJQUMzQixJQUNJM0MsUUFBUSxDQUFDQyxlQUFlLENBQUN5RixTQUFTLEdBQUcsRUFBRSxJQUN2QzFGLFFBQVEsQ0FBQzJGLGdCQUFnQixDQUFDRCxTQUFTLEdBQUcsRUFBRSxFQUMxQztNQUNFbkYsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDLE1BQU0sSUFDSFAsUUFBUSxDQUFDQyxlQUFlLENBQUN5RixTQUFTLElBQUksRUFBRSxJQUN4QzFGLFFBQVEsQ0FBQzJGLGdCQUFnQixDQUFDRCxTQUFTLElBQUksRUFBRSxFQUMzQztNQUNFbkYsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqQjtFQUNKLENBQUM7RUFFRCxNQUFNcUYsU0FBUyxHQUFJbEcsTUFBTSxJQUFLO0lBQzFCLE9BQU9BLE1BQU0sQ0FBQzBFLEdBQUcsQ0FBQyxDQUFDM0gsSUFBSSxFQUFFb0osR0FBRyxLQUFLO01BQzdCLElBQUlwSixJQUFJLENBQUM0SSxRQUFRLEVBQUU7UUFDZixPQUFPTyxTQUFTLENBQUNuSixJQUFJLENBQUNxSixLQUFLLENBQUM7TUFDaEM7TUFFQSxJQUFJckosSUFBSSxDQUFDd0ksTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUMxQixvQkFDSWpNLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ2pNLGVBQUEsQ0FBQWtNLEtBQUs7VUFDRkMsSUFBSSxFQUFFeEosSUFBSSxDQUFDd0ksTUFBTSxHQUFHeEksSUFBSSxDQUFDd0osSUFBSztVQUM5QkMsU0FBUyxFQUFFekosSUFBSSxDQUFDeUosU0FBVTtVQUMxQkwsR0FBRyxFQUFFQTtRQUFJLENBQ1osQ0FBQztNQUVWLENBQUMsTUFBTTtRQUNILE9BQU8sSUFBSTtNQUNmO0lBQ0osQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELE1BQU1NLGNBQWMsR0FBSXpHLE1BQU0sSUFBSztJQUMvQixJQUFJMEcsV0FBVyxHQUFHLFdBQVc7SUFDN0IsS0FBSyxJQUFJbkwsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHeUUsTUFBTSxDQUFDMUQsTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtNQUNwQyxJQUFJeUUsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUNvSyxRQUFRLElBQUkzRixNQUFNLENBQUN6RSxDQUFDLENBQUMsQ0FBQzZLLEtBQUssRUFBRTtRQUN2QyxJQUFJTyxtQkFBbUIsR0FBR0YsY0FBYyxDQUFDekcsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUM2SyxLQUFLLENBQUM7UUFDekQsSUFBSU8sbUJBQW1CLEtBQUtELFdBQVcsRUFBRTtVQUNyQyxPQUFPQyxtQkFBbUI7UUFDOUI7TUFDSixDQUFDLE1BQU07UUFDSCxJQUNJNUQsTUFBTSxDQUFDNkQsUUFBUSxDQUFDQyxJQUFJLENBQUNwRyxPQUFPLENBQUNULE1BQU0sQ0FBQ3pFLENBQUMsQ0FBQyxDQUFDZ0ssTUFBTSxHQUFHdkYsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUNnTCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDeEU7VUFDRSxPQUFPdkcsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUM4SixJQUFJO1FBQ3pCO01BQ0o7SUFDSjtJQUNBLE9BQU9xQixXQUFXO0VBQ3RCLENBQUM7RUFFRCxNQUFNSSxpQkFBaUIsR0FBSTVFLEtBQUssSUFBSztJQUNqQ3pDLGNBQWMsQ0FBQ3lDLEtBQUssQ0FBQztFQUN6QixDQUFDO0VBRUQsTUFBTTZFLFlBQVksR0FBR0EsQ0FBQSxLQUFNO0lBQ3ZCMUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3ZCQyxRQUFRLENBQUNDLGVBQWUsQ0FBQ2tDLFNBQVMsQ0FBQ0UsTUFBTSxDQUFDLFVBQVUsQ0FBQztFQUN6RCxDQUFDO0VBRUQsU0FBU3FFLGVBQWVBLENBQUEsRUFBRztJQUN2QjVFLDJCQUFrQixDQUFDNkUsYUFBYSxDQUFDLENBQUM7SUFDbEM7SUFDQTdFLDJCQUFrQixDQUFDOEUsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0VBQ2xEO0VBRUEsU0FBU3JGLFVBQVVBLENBQUMwRSxJQUFJLEVBQUU7SUFDdEIsSUFBSVksWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNyQkEsWUFBWSxDQUFDQyxVQUFVLEdBQUcsT0FBTztJQUNqQ0QsWUFBWSxDQUFDWixJQUFJLEdBQUdBLElBQUk7SUFDeEJZLFlBQVksQ0FBQ0UsTUFBTSxHQUFHLElBQUk7SUFFMUJDLHVCQUFjLENBQUNDLGFBQWEsQ0FBQ0osWUFBWSxDQUFDO0VBQzlDO0VBRUEsSUFBSTdILE9BQU8sRUFBRTtJQUNULG9CQUFPaEcsS0FBQSxDQUFBK00sYUFBQSxjQUFLLFlBQWUsQ0FBQztFQUNoQztFQUVBLG9CQUNJL00sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBK04sR0FBRztJQUFDQyxFQUFFLEVBQUU7TUFBRUMsT0FBTyxFQUFFO0lBQU87RUFBRSxnQkFDekJwTyxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUFrTyxXQUFXLE1BQUUsQ0FBQyxlQUdmck8sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBbU8sTUFBTTtJQUNIQyxRQUFRLEVBQUMsT0FBTztJQUNoQjNGLEtBQUssRUFBQyxTQUFTO0lBQ2Y0RixTQUFTLEVBQUUsQ0FBRTtJQUNiTCxFQUFFLEVBQUU7TUFBRU0sTUFBTSxFQUFHOUssS0FBSyxJQUFLQSxLQUFLLENBQUM4SyxNQUFNLENBQUNDLE1BQU0sR0FBRztJQUFFO0VBQUUsZ0JBRW5EMU8sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd08sT0FBTyxxQkFDSjNPLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXlPLE9BQU87SUFBQ0MsS0FBSyxFQUFFakwsSUFBSSxHQUFHLGVBQWUsR0FBRztFQUFjLGdCQUNuRDVELEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQTJPLFVBQVU7SUFBQ2xHLEtBQUssRUFBQyxTQUFTO0lBQUNtRyxJQUFJLEVBQUMsT0FBTztJQUFDQyxPQUFPLEVBQUVBLENBQUEsS0FBTXBKLE9BQU8sQ0FBRTVELENBQUMsSUFBSyxDQUFDQSxDQUFDO0VBQUUsR0FDdEU0QixJQUFJLGdCQUFHNUQsS0FBQSxDQUFBK00sYUFBQSxDQUFDM00sU0FBQSxDQUFBdUIsT0FBWSxNQUFFLENBQUMsZ0JBQUczQixLQUFBLENBQUErTSxhQUFBLENBQUN6TSxLQUFBLENBQUFxQixPQUFRLE1BQUUsQ0FDOUIsQ0FDUCxDQUFDLGVBQ1YzQixLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUErTixHQUFHO0lBQUNDLEVBQUUsRUFBRTtNQUFFYyxFQUFFLEVBQUUsQ0FBQztNQUFFQyxVQUFVLEVBQUU7SUFBSTtFQUFFLENBQU0sQ0FBQyxlQUMzQ2xQLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQStOLEdBQUc7SUFBQ0MsRUFBRSxFQUFFO01BQUVjLEVBQUUsRUFBRSxNQUFNO01BQUViLE9BQU8sRUFBRSxNQUFNO01BQUVlLFVBQVUsRUFBRTtJQUFTO0VBQUUsZ0JBQzNEblAsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBeU8sT0FBTztJQUFDQyxLQUFLLEVBQUM7RUFBUyxnQkFDcEI3TyxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUEyTyxVQUFVO0lBQ1BFLE9BQU8sRUFBRWxILGtCQUFtQjtJQUM1QnNILElBQUksRUFBQyxPQUFPO0lBQ1pqQixFQUFFLEVBQUU7TUFBRWMsRUFBRSxFQUFFO0lBQUUsQ0FBRTtJQUNkLGlCQUFlckgsWUFBWSxHQUFHLGNBQWMsR0FBRzNDLFNBQVU7SUFDekQsaUJBQWMsTUFBTTtJQUNwQixpQkFBZTJDLFlBQVksR0FBRyxNQUFNLEdBQUczQztFQUFVLGdCQUVqRGpGLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQWtQLE1BQU07SUFDSEMsR0FBRyxFQUFDLE1BQU07SUFDVnRLLEdBQUcsRUFBRVUsS0FBSyxDQUFDNkosTUFBTztJQUNsQnBCLEVBQUUsRUFBRTtNQUFFdEssS0FBSyxFQUFFLEVBQUU7TUFBRTJMLE1BQU0sRUFBRSxFQUFFO01BQUVDLFlBQVksRUFBRTtJQUFNO0VBQUUsQ0FDdEQsQ0FDTyxDQUNQLENBQUMsZUFFVnpQLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXVQLElBQUk7SUFDREMsUUFBUSxFQUFFakksVUFBVztJQUNyQitDLEVBQUUsRUFBQyxjQUFjO0lBQ2pCN0csSUFBSSxFQUFFZ0UsWUFBYTtJQUNuQmdJLE9BQU8sRUFBRTVILG1CQUFvQjtJQUM3QmdILE9BQU8sRUFBRWhILG1CQUFvQjtJQUM3QjZILGVBQWUsRUFBRTtNQUFFQyxVQUFVLEVBQUUsT0FBTztNQUFFQyxRQUFRLEVBQUU7SUFBTSxDQUFFO0lBQzFEQyxZQUFZLEVBQUU7TUFBRUYsVUFBVSxFQUFFLE9BQU87TUFBRUMsUUFBUSxFQUFFO0lBQVMsQ0FBRTtJQUMxREUsVUFBVSxFQUFFO01BQ1J6QixTQUFTLEVBQUUsQ0FBQztNQUNaTCxFQUFFLEVBQUU7UUFDQStCLEVBQUUsRUFBRSxHQUFHO1FBQ1BDLFFBQVEsRUFBRSxHQUFHO1FBQ2JDLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFVBQVUsRUFBRTtVQUNSQyxPQUFPLEVBQUUsSUFBSTtVQUNiakMsT0FBTyxFQUFFLE9BQU87VUFDaEJHLFFBQVEsRUFBRSxVQUFVO1VBQ3BCK0IsR0FBRyxFQUFFLENBQUM7VUFDTkMsS0FBSyxFQUFFLEVBQUU7VUFDVDFNLEtBQUssRUFBRSxFQUFFO1VBQ1QyTCxNQUFNLEVBQUUsRUFBRTtVQUNWZ0IsT0FBTyxFQUFFLGtCQUFrQjtVQUMzQkMsU0FBUyxFQUFFLGdDQUFnQztVQUMzQ2hDLE1BQU0sRUFBRTtRQUNaO01BQ0o7SUFDSjtFQUFFLGdCQUVGek8sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBdVEsUUFBUTtJQUFDMUIsT0FBTyxFQUFFMUc7RUFBYyxnQkFDN0J0SSxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUF3USxZQUFZLHFCQUNUM1EsS0FBQSxDQUFBK00sYUFBQSxDQUFDdE0sZUFBQSxDQUFBa0IsT0FBYztJQUFDaVAsUUFBUSxFQUFDO0VBQU8sQ0FBRSxDQUN4QixDQUFDLGVBQ2Y1USxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUEwUSxVQUFVLFFBQUMsU0FBbUIsQ0FDekIsQ0FBQyxlQUNYN1EsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBMlEsT0FBTyxNQUFFLENBQUMsZUFDWDlRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXVRLFFBQVE7SUFBQzFCLE9BQU8sRUFBRXhHO0VBQWEsZ0JBQzVCeEksS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd1EsWUFBWSxxQkFDVDNRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ3ZNLE9BQUEsQ0FBQW1CLE9BQU07SUFBQ2lQLFFBQVEsRUFBQztFQUFPLENBQUUsQ0FDaEIsQ0FBQyxlQUNmNVEsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBMFEsVUFBVSxRQUFDLFNBQW1CLENBQ3pCLENBQ1IsQ0FDTCxDQUNBLENBQ0wsQ0FBQyxlQUVUN1EsS0FBQSxDQUFBK00sYUFBQSxDQUFDMUosWUFBWTtJQUFDME4sT0FBTyxFQUFFN0ksUUFBUSxHQUFHLFdBQVcsR0FBRyxXQUFZO0lBQUN0RSxJQUFJLEVBQUVBO0VBQUssZ0JBQ3BFNUQsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd08sT0FBTyxNQUFFLENBQUMsZUFDWDNPLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ3pMLGtCQUFBLENBQUFLLE9BQWlCLEVBQUFpQixRQUFBLEtBQ1Y4QyxLQUFLO0lBQ1RnQixNQUFNLEVBQUVBLE1BQU87SUFDZjlDLElBQUksRUFBRUEsSUFBSztJQUNYc0MsV0FBVyxFQUFFLFNBQVU7SUFDdkJFLG1CQUFtQixFQUFFQSxtQkFBb0I7SUFDekM0SyxZQUFZLEVBQUVBLENBQUEsS0FBTXBMLE9BQU8sQ0FBQyxJQUFJLENBQUU7SUFDbENxTCxlQUFlLEVBQUV2TCxLQUFLLENBQUNvRyxpQkFBaUIsR0FBRztNQUN2Q3JCLEVBQUUsRUFBRSxXQUFXO01BQ2ZzQixJQUFJLEVBQUU7SUFDVixDQUFDLEdBQUcsSUFBSztJQUNUbUYsaUJBQWlCLEVBQUVBLENBQUEsS0FBTTtNQUNyQnhELGVBQWUsQ0FBQyxDQUFDO0lBQ3JCLENBQUU7SUFDRnlELFdBQVcsR0FBQXhMLGtCQUFBLEdBQUVELEtBQUssQ0FBQ3lMLFdBQVcsY0FBQXhMLGtCQUFBLGNBQUFBLGtCQUFBLEdBQUksRUFBRztJQUNyQ2lCLElBQUksRUFBRTtNQUNGd0ssVUFBVSxFQUFFLEVBQUU7TUFDZEMsSUFBSSxFQUFFLEVBQUU7TUFDUkMsTUFBTSxFQUFFMUs7SUFDWixDQUFFO0lBQ0YySyxTQUFTLEVBQUU3TCxLQUFLLENBQUM2TCxTQUFVO0lBQzNCOUQsWUFBWSxFQUFFQTtFQUFhLEVBQzlCLENBQUMsRUFBQyxHQUNPLENBQUMsZUFDZnpOLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ3ZJLElBQUk7SUFBQ1osSUFBSSxFQUFFQTtFQUFLLGdCQUNiNUQsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd08sT0FBTyxNQUFFLENBQUMsZUFDWDNPLEtBQUEsQ0FBQStNLGFBQUE7SUFBSzdGLFNBQVMsRUFBQyx3QkFBd0I7SUFBQ3NLLEtBQUssRUFBRTtNQUFDaEMsTUFBTSxFQUFFLG9CQUFvQjtNQUFFaUMsU0FBUyxFQUFFO0lBQW9CO0VBQUUsZ0JBQzNHelIsS0FBQSxDQUFBK00sYUFBQTtJQUFLN0YsU0FBUyxFQUFDO0VBQThDLGdCQUN6RGxILEtBQUEsQ0FBQStNLGFBQUE7SUFBS3lFLEtBQUssRUFBRTtNQUNSO01BQ0E7TUFDQTtNQUNBM04sS0FBSyxFQUFFMkQsWUFBWSxJQUFJLENBQUNVLFFBQVEsR0FBRyxvQkFBb0IsR0FBRyxNQUFNO01BQ2hFc0gsTUFBTSxFQUFFLE1BQU07TUFDZGtDLFFBQVEsRUFBRSxNQUFNO01BQ2hCdEIsUUFBUSxFQUFFO0lBQ2Q7RUFBRSxnQkFDRXBRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ2xNLFNBQUEsQ0FBQWMsT0FBUTtJQUFDNkYsWUFBWSxFQUFFQSxZQUFhO0lBQUNtSyxVQUFVLEVBQUV6SixRQUFRLEdBQUcsQ0FBQyxHQUFJdEUsSUFBSSxHQUFHVixZQUFZLEdBQUdFO0VBQVksQ0FBQyxDQUNwRyxDQUFDLGVBQ05wRCxLQUFBLENBQUErTSxhQUFBO0lBQUs3RixTQUFTLEVBQUUsMEJBQTJCO0lBQUNzSyxLQUFLLEVBQUU7TUFDL0MzTixLQUFLLEVBQUUyRCxZQUFZLElBQUksQ0FBQ1UsUUFBUSxHQUFHLE9BQU8sR0FBRyxHQUFHO01BQ2hEMEosTUFBTSxFQUFFcEssWUFBWSxJQUFJLENBQUNVLFFBQVEsR0FBRyxLQUFLLEdBQUc7SUFDaEQ7RUFBRSxnQkFDRWxJLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzNMLGVBQUEsQ0FBQU8sT0FBYztJQUFDZ1EsVUFBVSxFQUFFekosUUFBUSxHQUFHLENBQUMsR0FBSXRFLElBQUksR0FBR1YsWUFBWSxHQUFHRSxVQUFZO0lBQUN5TyxrQkFBa0IsRUFBR3ZGLEtBQUssSUFBSztNQUMxRzdFLGVBQWUsQ0FBQzZFLEtBQUssQ0FBQ3dGLE1BQU0sQ0FBQztJQUNqQztFQUFFLENBQUMsQ0FDRixDQUNKLENBQ0osQ0FDSCxDQUNMLENBQUM7QUFFZDtBQUVBck0sdUJBQXVCLENBQUNzTSxTQUFTLEdBQUc7RUFDaENDLFFBQVEsRUFBRUMsa0JBQVMsQ0FBQ0MsT0FBTztFQUMzQnJPLEtBQUssRUFBRW9PLGtCQUFTLENBQUNFLE1BQU07RUFDdkJqSSxRQUFRLEVBQUUrSCxrQkFBUyxDQUFDRyxNQUFNO0VBQzFCdEcsaUJBQWlCLEVBQUVtRyxrQkFBUyxDQUFDSSxJQUFJO0VBQ2pDekwsSUFBSSxFQUFFcUwsa0JBQVMsQ0FBQ0ssTUFBTTtFQUN0QmYsU0FBUyxFQUFFVSxrQkFBUyxDQUFDRyxNQUFNO0VBQzNCakIsV0FBVyxFQUFFYyxrQkFBUyxDQUFDRyxNQUFNO0VBQzdCN0MsTUFBTSxFQUFFMEMsa0JBQVMsQ0FBQ0ssTUFBTTtFQUN4QjdKLGNBQWMsRUFBRXdKLGtCQUFTLENBQUNNO0FBQzlCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
477
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9tYXRlcmlhbCIsIl9NZW51T3BlbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfTWVudSIsIl9NYWlsIiwiX0xvZ291dCIsIl9NYW5hZ2VBY2NvdW50cyIsIl93aXRoV2lkdGgiLCJfcHJvcFR5cGVzIiwiX1V0aWxzIiwiX1ZpZXdQb3J0IiwiX3JlYWN0Um91dGVyRG9tIiwiX3BlcmZlY3RTY3JvbGxiYXIiLCJfSG9tZU5hdmJhciIsIl9EYXNoYm9hcmRTdG9yZSIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfU29ja2V0TWFuYWdlciIsIl9XaW5kb3dWaWV3UG9ydCIsIl9BY3Rpb25IYW5kbGVycyIsIl9Gb2xkaW5nVGFiU2lkZWJhciIsIl9zdHlsZXMiLCJfdXNlTWVkaWFRdWVyeSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiRFJBV0VSX1dJRFRIIiwiZXhwb3J0cyIsIk1JTklfV0lEVEgiLCJEcmF3ZXJTdHlsZWQiLCJzdHlsZWQiLCJEcmF3ZXIiLCJzaG91bGRGb3J3YXJkUHJvcCIsInByb3AiLCJfcmVmIiwidGhlbWUiLCJvcGVuIiwid2lkdGgiLCJmbGV4U2hyaW5rIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93WCIsInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9ucyIsImNyZWF0ZSIsImVhc2luZyIsInNoYXJwIiwiZHVyYXRpb24iLCJzdGFuZGFyZCIsIk1haW4iLCJfcmVmMiIsImZsZXhHcm93IiwicGFkZGluZyIsImJhY2tncm91bmQiLCJwcyIsIkRBVEFfVVJMX1BSRUZJWCIsIm5vcm1hbGl6ZUxvZ28iLCJzcmMiLCJ1bmRlZmluZWQiLCJzIiwidHJpbSIsInRlc3QiLCJkdXAiLCJSZWdFeHAiLCJjb25jYXQiLCJyZXBsYWNlIiwiRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQiLCJwcm9wcyIsIl9wcm9wcyRhcHBMb2dvUGF0aCIsInNldE9wZW4iLCJ1c2VTdGF0ZSIsIm5hdkRyYXdlck9wZW4iLCJzZXROYXZEcmF3ZXJPcGVuIiwibG9hZGluZyIsInNldExvYWRpbmciLCJhY3RpdmVDb2xvciIsInNldEFjdGl2ZUNvbG9yIiwic2Vjb25kYXJ5VGhlbWVDb2xvciIsInNldFNlY29uZGFyeVRoZW1lQ29sb3IiLCJwcmltYXJ5VGhlbWVDb2xvciIsInNldFByaW1hcnlUaGVtZUNvbG9yIiwidGhlbWVUZXh0Q29sb3IiLCJzZXRUaGVtZVRleHRDb2xvciIsInJvdXRlcyIsInNldFJvdXRlcyIsImxvZ28iLCJzZXRMb2dvIiwic2lkZWJhck9wZW5lZCIsInNldFNpZGViYXJPcGVuZWQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsYXNzTmFtZSIsImluZGV4T2YiLCJzaWRlYmFyTWluaSIsInNldFNpZGViYXJNaW5pIiwib3BhY2l0eSIsInNldE9wYWNpdHkiLCJ3aW5kb3dQaW5uZWQiLCJzZXRXaW5kb3dQaW5uZWQiLCJ1c2VyTWVudUVsIiwic2V0VXNlck1lbnVFbCIsInVzZXJNZW51T3BlbiIsIkJvb2xlYW4iLCJoYW5kbGVVc2VyTWVudU9wZW4iLCJjdXJyZW50VGFyZ2V0IiwiaGFuZGxlVXNlck1lbnVDbG9zZSIsInVzZVRoZW1lIiwiaXNNb2JpbGUiLCJ1c2VNZWRpYVF1ZXJ5IiwiYnJlYWtwb2ludHMiLCJkb3duIiwiaGFuZGxlUHJvZmlsZSIsImxhdW5jaFZpZXciLCJoYW5kbGVMb2dvdXQiLCJsb2dvdXRDYWxsQmFjayIsImhhbmRsZUNoYW5nZVJlcXVlc3ROYXZEcmF3ZXIiLCJoYW5kbGVCZ0NsaWNrIiwiY29sb3IiLCJ1c2VFZmZlY3QiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJzZXREYXNoYm9hcmRTdGF0ZSIsImxlZnRPZmZzZXQiLCJuYXZpZ2F0b3IiLCJwbGF0Zm9ybSIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsInRhYmxlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJQZXJmZWN0U2Nyb2xsYmFyIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInNob3dOYXZiYXJCdXR0b24iLCJMQVJHRSIsIlNvY2tldHMiLCJpbml0IiwiZGlzY29ubmVjdCIsImJvZHkiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0dGluZ3MiLCJzeXN0ZW1Qcm9maWxlRHRvIiwic2Vjb25kQ29ycG9yYXRlQnJhbmRDb2xvciIsImZpcnN0Q29ycG9yYXRlQnJhbmRDb2xvciIsIlV0aWxzIiwiaXNOdWxsIiwiZGFzaGJvYXJkTWVudSIsImlkIiwibWVudXMiLCJteURhc2hib2FyZE1lbnUiLCJpdGVtcyIsImF0dHJpYnV0ZXMiLCJsYWJlbCIsInB1c2giLCJ1c2VyRGFzaGJvYXJkcyIsInVzZXJEYXNoYm9hcmQiLCJpdGVtIiwicGFyYW1ldGVycyIsIm1hcCIsImRhc2hib2FyZE5hbWUiLCJjcmVhdGVOZXdNZW51IiwibW9kdWxlcyIsIm1vZHVsZSIsImRhc2hCb2FyZE1lbnVCYXIiLCJqIiwibWVudSIsIm5ld1JvdXRlcyIsIm5ld1JvdXRlIiwic2hvd0Rhc2hib2FyZE1lbnUiLCJuYW1lIiwiaWNvbiIsImxheW91dCIsImxldmVsIiwiaXNQYXJlbnQiLCJyb3V0ZSIsImNvbGxhcHNlIiwic3RhdGUiLCJzZXR0aW5nc01lbnUiLCJ0b2dnbGVTaWRlYmFyIiwidG9nZ2xlIiwic2Nyb2xsVG9wIiwic2Nyb2xsaW5nRWxlbWVudCIsImdldFJvdXRlcyIsImtleSIsInZpZXdzIiwiY3JlYXRlRWxlbWVudCIsIlJvdXRlIiwicGF0aCIsImNvbXBvbmVudCIsImdldEFjdGl2ZVJvdXRlIiwiYWN0aXZlUm91dGUiLCJjb2xsYXBzZUFjdGl2ZVJvdXRlIiwibG9jYXRpb24iLCJocmVmIiwiaGFuZGxlQWN0aXZlQ2xpY2siLCJjbG9zZVNpZGViYXIiLCJsYXVuY2hEYXNoYm9hcmQiLCJjbG9zZUFsbFZpZXdzIiwibmF2aWdhdGUiLCJhY3Rpb25Db25maWciLCJhY3Rpb25UeXBlIiwicGFyZW50IiwiQWN0aW9uSGFuZGxlcnMiLCJpbnZva2VIYW5kbGVyIiwiQm94Iiwic3giLCJkaXNwbGF5IiwiQ3NzQmFzZWxpbmUiLCJBcHBCYXIiLCJwb3NpdGlvbiIsImVsZXZhdGlvbiIsInpJbmRleCIsImRyYXdlciIsIlRvb2xiYXIiLCJUb29sdGlwIiwidGl0bGUiLCJJY29uQnV0dG9uIiwiZWRnZSIsIm9uQ2xpY2siLCJtbCIsImZvbnRXZWlnaHQiLCJhbGlnbkl0ZW1zIiwic2l6ZSIsIkF2YXRhciIsImFsdCIsImF2YXRhciIsImhlaWdodCIsImJvcmRlclJhZGl1cyIsIk1lbnUiLCJhbmNob3JFbCIsIm9uQ2xvc2UiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJob3Jpem9udGFsIiwidmVydGljYWwiLCJhbmNob3JPcmlnaW4iLCJQYXBlclByb3BzIiwibXQiLCJtaW5XaWR0aCIsIm92ZXJmbG93IiwiY29udGVudCIsInRvcCIsInJpZ2h0IiwiYmdjb2xvciIsInRyYW5zZm9ybSIsIk1lbnVJdGVtIiwiTGlzdEl0ZW1JY29uIiwiZm9udFNpemUiLCJUeXBvZ3JhcGh5IiwiRGl2aWRlciIsInZhcmlhbnQiLCJvbk9wZW5EcmF3ZXIiLCJhY3RpdmVSb3V0ZU1lbnUiLCJkYXNoYm9hcmRMYXVuY2hlciIsImFwcExvZ29QYXRoIiwib3V0dGVyTGluayIsInRleHQiLCJpbWdTcmMiLCJsb2dvU3R5bGUiLCJzdHlsZSIsIm1heEhlaWdodCIsIm14SGVpZ2h0IiwibWVudU9mZnNldCIsIm1hcmdpbiIsInN0YXRlQ2hhbmdlSGFuZGxlciIsInBpbm5lZCIsInByb3BUeXBlcyIsImNoaWxkcmVuIiwiUHJvcFR5cGVzIiwiZWxlbWVudCIsIm51bWJlciIsIm9iamVjdCIsImJvb2wiLCJzdHJpbmciLCJmdW5jIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9Gb2xkaW5nU2lkZVRhYkRhc2hib2FyZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQuanN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG4gICAgQXBwQmFyLFxuICAgIFRvb2xiYXIsXG4gICAgSWNvbkJ1dHRvbixcbiAgICBEcmF3ZXIsXG4gICAgTGlzdCxcbiAgICBMaXN0SXRlbUJ1dHRvbixcbiAgICBMaXN0SXRlbUljb24sXG4gICAgTGlzdEl0ZW1UZXh0LFxuICAgIEJveCxcbiAgICBDc3NCYXNlbGluZSxcbiAgICBUb29sdGlwLFxuICAgIEF2YXRhcixcbiAgICBNZW51LFxuICAgIE1lbnVJdGVtLFxuICAgIERpdmlkZXIsXG4gICAgVHlwb2dyYXBoeVxufSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IE1lbnVPcGVuSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NZW51T3BlblwiO1xuaW1wb3J0IE1lbnVJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL01lbnVcIjtcbmltcG9ydCBNYWlsSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NYWlsXCI7XG5pbXBvcnQgTG9nb3V0IGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0xvZ291dFwiO1xuaW1wb3J0IE1hbmFnZUFjY291bnRzIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL01hbmFnZUFjY291bnRzXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5cbmltcG9ydCB7IExBUkdFIH0gZnJvbSBcIm1hdGVyaWFsLXVpL3V0aWxzL3dpdGhXaWR0aFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IFZpZXdQb3J0IGZyb20gXCIuLi9sYXlvdXQvVmlld1BvcnRcIjtcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCBQZXJmZWN0U2Nyb2xsYmFyIGZyb20gXCJwZXJmZWN0LXNjcm9sbGJhclwiO1xuaW1wb3J0IEhvbWVOYXZiYXIgZnJvbSBcIi4uL25hdmJhcnMvSG9tZU5hdmJhclwiO1xuaW1wb3J0IHsgYWN0aW9uQ3JlYXRvcnMgfSBmcm9tIFwiLi4vLi4vcmVkdXgvc3RvcmUvRGFzaGJvYXJkU3RvcmVcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuaW1wb3J0IFNvY2tldHMgZnJvbSBcIi4uL1NvY2tldE1hbmFnZXJcIjtcbmltcG9ydCBXaW5kb3dWaWV3UG9ydCBmcm9tIFwiLi4vbGF5b3V0L1dpbmRvd1ZpZXdQb3J0XCI7XG5pbXBvcnQgXCIuL0ZvbGRpbmdTaWRlVGFiRGFzaGJvYXJkLmNzc1wiO1xuaW1wb3J0IEFjdGlvbkhhbmRsZXJzIGZyb20gXCIuLi8uLi9ldmVudC9BY3Rpb25IYW5kbGVyc1wiO1xuaW1wb3J0IEZvbGRpbmdUYWJTaWRlYmFyIGZyb20gXCIuL2NvbXBvbmVudHMvYmxhY2tEYXNoYm9hcmQvc2lkZWJhci9Gb2xkaW5nVGFiU2lkZWJhclwiO1xuaW1wb3J0IHsgc3R5bGVkLCB1c2VUaGVtZSB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IHVzZU1lZGlhUXVlcnkgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvdXNlTWVkaWFRdWVyeVwiO1xuXG5leHBvcnQgY29uc3QgRFJBV0VSX1dJRFRIID0gMzIwO1xuY29uc3QgTUlOSV9XSURUSCA9IDcyO1xuXG5jb25zdCBEcmF3ZXJTdHlsZWQgPSBzdHlsZWQoRHJhd2VyLCB7XG4gICAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSBcIm9wZW5cIlxufSkoKHsgdGhlbWUsIG9wZW4gfSkgPT4gKHtcbiAgICB3aWR0aDogb3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEgsXG4gICAgZmxleFNocmluazogMCxcbiAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgIFwiJiAuTXVpRHJhd2VyLXBhcGVyXCI6IHtcbiAgICAgICAgd2lkdGg6IG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRILFxuICAgICAgICBvdmVyZmxvd1g6IFwiaGlkZGVuXCIsXG4gICAgICAgIHRyYW5zaXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmNyZWF0ZShcIndpZHRoXCIsIHtcbiAgICAgICAgICAgIGVhc2luZzogdGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLnNoYXJwLFxuICAgICAgICAgICAgZHVyYXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnN0YW5kYXJkXG4gICAgICAgIH0pXG4gICAgfVxufSkpO1xuXG5jb25zdCBNYWluID0gc3R5bGVkKFwibWFpblwiLCB7IHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT4gcHJvcCAhPT0gXCJvcGVuXCIgfSkoXG4gICAgKHsgdGhlbWUsIG9wZW4gfSkgPT4gKHtcbiAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgIHRyYW5zaXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmNyZWF0ZShcIm1hcmdpbi1sZWZ0XCIsIHtcbiAgICAgICAgICAgIGVhc2luZzogdGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLnNoYXJwLFxuICAgICAgICAgICAgZHVyYXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnN0YW5kYXJkXG4gICAgICAgIH0pLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgICB9KVxuKTtcblxubGV0IHBzO1xuY29uc3QgREFUQV9VUkxfUFJFRklYID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsXCI7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUxvZ28oc3JjKSB7XG4gICAgaWYgKCFzcmMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcyA9IHNyYy50cmltKCk7XG5cbiAgICBpZiAoL15kYXRhOi9pLnRlc3QocykpIHtcbiAgICAgICAgY29uc3QgZHVwID0gbmV3IFJlZ0V4cChgXigke0RBVEFfVVJMX1BSRUZJWH0pK2AsIFwiaVwiKTtcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZShkdXAsIERBVEFfVVJMX1BSRUZJWCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERBVEFfVVJMX1BSRUZJWCArIHM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvbGRpbmdTaWRlVGFiRGFzaGJvYXJkKHByb3BzKSB7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW25hdkRyYXdlck9wZW4sIHNldE5hdkRyYXdlck9wZW5dID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUNvbG9yLCBzZXRBY3RpdmVDb2xvcl0gPSBSZWFjdC51c2VTdGF0ZShcImJsdWVcIik7XG4gICAgY29uc3QgW3NlY29uZGFyeVRoZW1lQ29sb3IsIHNldFNlY29uZGFyeVRoZW1lQ29sb3JdID0gUmVhY3QudXNlU3RhdGUoXCJcIik7XG4gICAgY29uc3QgW3ByaW1hcnlUaGVtZUNvbG9yLCBzZXRQcmltYXJ5VGhlbWVDb2xvcl0gPSBSZWFjdC51c2VTdGF0ZShcIlwiKTtcbiAgICBjb25zdCBbdGhlbWVUZXh0Q29sb3IsIHNldFRoZW1lVGV4dENvbG9yXSA9IFJlYWN0LnVzZVN0YXRlKFwiXCIpO1xuICAgIGNvbnN0IFtyb3V0ZXMsIHNldFJvdXRlc10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xvZ28sIHNldExvZ29dID0gUmVhY3QudXNlU3RhdGUobm9ybWFsaXplTG9nbyhwcm9wcy5sb2dvKSk7XG4gICAgY29uc3QgW3NpZGViYXJPcGVuZWQsIHNldFNpZGViYXJPcGVuZWRdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZihcIm5hdi1vcGVuXCIpICE9PSAtMVxuICAgICk7XG4gICAgY29uc3QgW3NpZGViYXJNaW5pLCBzZXRTaWRlYmFyTWluaV0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbb3BhY2l0eSwgc2V0T3BhY2l0eV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbd2luZG93UGlubmVkLCBzZXRXaW5kb3dQaW5uZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gQXZhdGFyIG1lbnUgc3RhdGVcbiAgICBjb25zdCBbdXNlck1lbnVFbCwgc2V0VXNlck1lbnVFbF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCB1c2VyTWVudU9wZW4gPSBCb29sZWFuKHVzZXJNZW51RWwpO1xuICAgIGNvbnN0IGhhbmRsZVVzZXJNZW51T3BlbiA9IChlKSA9PiBzZXRVc2VyTWVudUVsKGUuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgaGFuZGxlVXNlck1lbnVDbG9zZSA9ICgpID0+IHNldFVzZXJNZW51RWwobnVsbCk7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGlzTW9iaWxlID0gdXNlTWVkaWFRdWVyeSh0aGVtZS5icmVha3BvaW50cy5kb3duKFwic21cIikpO1xuXG4gICAgY29uc3QgaGFuZGxlUHJvZmlsZSA9ICgpID0+IHtcbiAgICAgICAgaGFuZGxlVXNlck1lbnVDbG9zZSgpO1xuICAgICAgICBsYXVuY2hWaWV3KFwiL3N5c3RlbS92aWV3cy91c2VyLXByb2ZpbGUuanNvblwiKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTG9nb3V0ID0gKCkgPT4ge1xuICAgICAgICBoYW5kbGVVc2VyTWVudUNsb3NlKCk7XG4gICAgICAgIHByb3BzLmxvZ291dENhbGxCYWNrICYmIHByb3BzLmxvZ291dENhbGxCYWNrKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZVJlcXVlc3ROYXZEcmF3ZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldE5hdkRyYXdlck9wZW4oIW5hdkRyYXdlck9wZW4pO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCZ0NsaWNrID0gKGNvbG9yKSA9PiB7XG4gICAgICAgIHNldEFjdGl2ZUNvbG9yKGNvbG9yKTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTsgICAvLyBhdXRvIGNvbGxhcHNlIHdoZW4gc2NyZWVuIGlzIHNtYWxsXG4gICAgICAgIH1cbiAgICB9LCBbaXNNb2JpbGVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5zZXREYXNoYm9hcmRTdGF0ZSh7bGVmdE9mZnNldDogb3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEh9KVxuICAgIH0sIFtvcGVuXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoXCJXaW5cIikgPiAtMSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJwZXJmZWN0LXNjcm9sbGJhci1vblwiKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwicGVyZmVjdC1zY3JvbGxiYXItb2ZmXCIpO1xuICAgICAgICAgICAgbGV0IHRhYmxlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFibGUtcmVzcG9uc2l2ZVwiKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcHMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcih0YWJsZXNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHNob3dOYXZiYXJCdXR0b24pO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLndpZHRoICE9PSBudWxsICYmIHR5cGVvZiBwcm9wcy53aWR0aCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgc2V0TmF2RHJhd2VyT3Blbihwcm9wcy53aWR0aCA9PT0gTEFSR0UpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLndpZHRoXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBTb2NrZXRzLmluaXQoKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnNldERhc2hib2FyZFN0YXRlKHtsZWZ0T2Zmc2V0OiBvcGVuID8gRFJBV0VSX1dJRFRIIDogTUlOSV9XSURUSH0pXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBTb2NrZXRzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJ3aGl0ZS1jb250ZW50XCIpO1xuXG4gICAgICAgIGlmIChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZihcIldpblwiKSA+IC0xKSB7XG4gICAgICAgICAgICAvLyBLZWVwaW5nIGZvciBwYXJpdHkgd2l0aCB5b3VyIG9yaWdpbmFsIGNvZGVcbiAgICAgICAgfVxuXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHNob3dOYXZiYXJCdXR0b24pO1xuXG4gICAgICAgIHNldEFjdGl2ZUNvbG9yKFwiYWdpbGl0eVwiKTtcbiAgICAgICAgc2V0U2Vjb25kYXJ5VGhlbWVDb2xvcihwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLnNlY29uZENvcnBvcmF0ZUJyYW5kQ29sb3IpO1xuICAgICAgICBzZXRQcmltYXJ5VGhlbWVDb2xvcihwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLmZpcnN0Q29ycG9yYXRlQnJhbmRDb2xvcik7XG4gICAgICAgIHNldFRoZW1lVGV4dENvbG9yKHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8udGhlbWVUZXh0Q29sb3IpO1xuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzKSkge1xuICAgICAgICAgICAgbGV0IGRhc2hib2FyZE1lbnUgPSB7fTtcbiAgICAgICAgICAgIGRhc2hib2FyZE1lbnUuaWQgPSBcImRhc2hib2FyZFwiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cyA9IFtdO1xuXG4gICAgICAgICAgICBsZXQgbXlEYXNoYm9hcmRNZW51ID0ge307XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuaWQgPSBcIm15RGFzaGJvYXJkXCI7XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuaXRlbXMgPSBbXTtcbiAgICAgICAgICAgIG15RGFzaGJvYXJkTWVudS5hdHRyaWJ1dGVzID0ge307XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuYXR0cmlidXRlcy5sYWJlbCA9IFwiTXkgRGFzaGJvYXJkc1wiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cy5wdXNoKG15RGFzaGJvYXJkTWVudSk7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzLnVzZXJEYXNoYm9hcmRzKSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMuc2V0dGluZ3MudXNlckRhc2hib2FyZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXNoYm9hcmQgPSBwcm9wcy5zZXR0aW5ncy51c2VyRGFzaGJvYXJkc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pZCA9IHVzZXJEYXNoYm9hcmQuaWQ7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmF0dHJpYnV0ZXMubGFiZWwgPSB1c2VyRGFzaGJvYXJkLnBhcmFtZXRlcnMubWFwLmRhc2hib2FyZE5hbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgbXlEYXNoYm9hcmRNZW51Lml0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgY3JlYXRlTmV3TWVudSA9IHt9O1xuICAgICAgICAgICAgY3JlYXRlTmV3TWVudS5pZCA9IFwiY3JlYXRlTmV3XCI7XG4gICAgICAgICAgICBjcmVhdGVOZXdNZW51Lml0ZW1zID0gW107XG4gICAgICAgICAgICBjcmVhdGVOZXdNZW51LmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgIGNyZWF0ZU5ld01lbnUuYXR0cmlidXRlcy5sYWJlbCA9IFwiQ3JlYXRlIE5ld1wiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cy5wdXNoKGNyZWF0ZU5ld01lbnUpO1xuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZHVsZSA9IHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobW9kdWxlLmRhc2hCb2FyZE1lbnVCYXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vZHVsZS5kYXNoQm9hcmRNZW51QmFyLm1lbnVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1lbnUgPSBtb2R1bGUuZGFzaEJvYXJkTWVudUJhci5tZW51c1tqXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhlIG1vZHVsZSBjbGFzc2lmaWNhdGlvbiwgcmVwbGFjZSB0aGUgbGluZSBiZWxvdyB3aXRoIGNyZWF0ZU5ld01lbnUuaXRlbXMucHVzaChtZW51KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld01lbnUuaXRlbXMgPSBjcmVhdGVOZXdNZW51Lml0ZW1zLmNvbmNhdChtZW51Lml0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IG5ld1JvdXRlcyA9IFtdO1xuICAgICAgICAgICAgbGV0IG5ld1JvdXRlID0ge307XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuc2hvd0Rhc2hib2FyZE1lbnUpIHx8IHByb3BzLnNob3dEYXNoYm9hcmRNZW51KSB7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubmFtZSA9IFwiRGFzaGJvYXJkXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUuaWQgPSBcImRhc2hib2FyZFwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmljb24gPSBcImZhIGZhLXBpZS1jaGFydFwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmxheW91dCA9IFwiL2FkbWluXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubGV2ZWwgPSAwO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmlzUGFyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZXMucHVzaChuZXdSb3V0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kdWxlID0gcHJvcHMuc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5tb2R1bGVzW2ldO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcm91dGUgPSB7fTtcblxuICAgICAgICAgICAgICAgICAgICByb3V0ZS5uYW1lID0gbW9kdWxlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZS5pY29uID0gbW9kdWxlLmljb247XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlLm1lbnUgPSBtb2R1bGUubWVudTtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUubGF5b3V0ID0gXCIvYWRtaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUubGV2ZWwgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2R1bGUubWVudSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUuY29sbGFwc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUuc3RhdGUgPSBtb2R1bGUubmFtZSArIFwiQ29sbGFwc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIG5ld1JvdXRlcy5wdXNoKHJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcm9wcy5zZXR0aW5ncy5zZXR0aW5nc01lbnUpIHtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZSA9IHt9O1xuXG4gICAgICAgICAgICAgICAgbmV3Um91dGUubmFtZSA9IFwiU2V0dGluZ3NcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5pY29uID0gXCJmYSBmYS1jb2dcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5sYXlvdXQgPSBcIi9hZG1pblwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmlzUGFyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5jb2xsYXBzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubGV2ZWwgPSAwO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLm1lbnUgPSBcIlwiOyAvLyBUT0RPIDogc2V0IG1lbnUgdmFsdWVcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5zdGF0ZSA9IFwic2V0dGluZ3NNZW51Q29sbGFwc2VcIjtcblxuICAgICAgICAgICAgICAgIG5ld1JvdXRlcy5wdXNoKG5ld1JvdXRlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0Um91dGVzKG5ld1JvdXRlcyk7XG5cbiAgICAgICAgICAgIHByb3BzLnNldHRpbmdzLmRhc2hib2FyZE1lbnUgPSBjcmVhdGVOZXdNZW51Lml0ZW1zLmxlbmd0aCA+IDAgPyBkYXNoYm9hcmRNZW51IDogbnVsbDtcbiAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLnNldHRpbmdzXSk7XG5cbiAgICBjb25zdCB0b2dnbGVTaWRlYmFyID0gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShcIm5hdi1vcGVuXCIpO1xuICAgICAgICBzZXRTaWRlYmFyT3BlbmVkKCFzaWRlYmFyT3BlbmVkKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2hvd05hdmJhckJ1dHRvbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA+IDUwIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA+IDUwXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2V0T3BhY2l0eSgxKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPD0gNTAgfHxcbiAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wIDw9IDUwXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2V0T3BhY2l0eSgwKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBnZXRSb3V0ZXMgPSAocm91dGVzKSA9PiB7XG4gICAgICAgIHJldHVybiByb3V0ZXMubWFwKChwcm9wLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wLmNvbGxhcHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFJvdXRlcyhwcm9wLnZpZXdzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3AubGF5b3V0ID09PSBcIi9hZG1pblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtwcm9wLmxheW91dCArIHByb3AucGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD17cHJvcC5jb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEFjdGl2ZVJvdXRlID0gKHJvdXRlcykgPT4ge1xuICAgICAgICBsZXQgYWN0aXZlUm91dGUgPSBcIkRhc2hib2FyZFwiO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvdXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHJvdXRlc1tpXS5jb2xsYXBzZSAmJiByb3V0ZXNbaV0udmlld3MpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29sbGFwc2VBY3RpdmVSb3V0ZSA9IGdldEFjdGl2ZVJvdXRlKHJvdXRlc1tpXS52aWV3cyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlQWN0aXZlUm91dGUgIT09IGFjdGl2ZVJvdXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsYXBzZUFjdGl2ZVJvdXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKHJvdXRlc1tpXS5sYXlvdXQgKyByb3V0ZXNbaV0ucGF0aCkgIT09IC0xXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZXNbaV0ubmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGl2ZVJvdXRlO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVBY3RpdmVDbGljayA9IChjb2xvcikgPT4ge1xuICAgICAgICBzZXRBY3RpdmVDb2xvcihjb2xvcik7XG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlU2lkZWJhciA9ICgpID0+IHtcbiAgICAgICAgc2V0U2lkZWJhck9wZW5lZChmYWxzZSk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LW9wZW5cIik7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxhdW5jaERhc2hib2FyZCgpIHtcbiAgICAgICAgLy8gUHJlc2VydmUgdGhlIFdpbmRvd1ZpZXdQb3J0IG92ZXJsYXkg4oCUIGNsaWNraW5nIHRoZSBEYXNoYm9hcmQgbWVudSBpdGVtIG11c3Qgbm90IGNsb3NlIHRoZVxuICAgICAgICAvLyBmbG9hdGluZyB3aW5kb3cgKGl0J3MgYSBzZXBhcmF0ZSB2aWV3cG9ydCBpbiBvdXIgbXVsdGktdmlld3BvcnQgZGFzaGJvYXJkKS5cbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsb3NlQWxsVmlld3ModHJ1ZSk7XG4gICAgICAgIC8vYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvc3dpdGNoJyk7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZShcIi92aWV3L2Rhc2hib2FyZFwiKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsYXVuY2hWaWV3KHBhdGgpIHtcbiAgICAgICAgbGV0IGFjdGlvbkNvbmZpZyA9IHt9O1xuICAgICAgICBhY3Rpb25Db25maWcuYWN0aW9uVHlwZSA9IFwicm91dGVcIjtcbiAgICAgICAgYWN0aW9uQ29uZmlnLnBhdGggPSBwYXRoO1xuICAgICAgICBhY3Rpb25Db25maWcucGFyZW50ID0gdHJ1ZTtcblxuICAgICAgICBBY3Rpb25IYW5kbGVycy5pbnZva2VIYW5kbGVyKGFjdGlvbkNvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIDxkaXY+TG9hZGluZy4uLjwvZGl2PjtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Qm94IHN4PXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxuICAgICAgICAgICAgPENzc0Jhc2VsaW5lIC8+XG5cbiAgICAgICAgICAgIHsvKiBFbnN1cmUgdGhlIHRvZ2dsZSBidXR0b24gYWx3YXlzIHNpdHMgYWJvdmUgdGhlIGRyYXdlciAqL31cbiAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MX1cbiAgICAgICAgICAgICAgICBzeD17eyB6SW5kZXg6ICh0aGVtZSkgPT4gdGhlbWUuekluZGV4LmRyYXdlciArIDEgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VG9vbGJhcj5cbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e29wZW4gPyBcIkNvbGxhcHNlIG1lbnVcIiA6IFwiRXhwYW5kIG1lbnVcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvbiBjb2xvcj1cImluaGVyaXRcIiBlZGdlPVwic3RhcnRcIiBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKChvKSA9PiAhbyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcGVuID8gPE1lbnVPcGVuSWNvbiAvPiA6IDxNZW51SWNvbiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgICA8Qm94IHN4PXt7IG1sOiAxLCBmb250V2VpZ2h0OiA2MDAgfX0+PC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggc3g9e3sgbWw6IFwiYXV0b1wiLCBkaXNwbGF5OiBcImZsZXhcIiwgYWxpZ25JdGVtczogXCJjZW50ZXJcIiB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPVwiQWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVVzZXJNZW51T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3sgbWw6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz17dXNlck1lbnVPcGVuID8gXCJhY2NvdW50LW1lbnVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXt1c2VyTWVudU9wZW4gPyBcInRydWVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlVzZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtwcm9wcy5hdmF0YXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17eyB3aWR0aDogMzYsIGhlaWdodDogMzYsIGJvcmRlclJhZGl1czogXCI1MCVcIiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbD17dXNlck1lbnVFbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFjY291bnQtbWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbj17dXNlck1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZVVzZXJNZW51Q2xvc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVXNlck1lbnVDbG9zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW49e3sgaG9yaXpvbnRhbDogXCJyaWdodFwiLCB2ZXJ0aWNhbDogXCJ0b3BcIiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbj17eyBob3Jpem9udGFsOiBcInJpZ2h0XCIsIHZlcnRpY2FsOiBcImJvdHRvbVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFwZXJQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGV2YXRpb246IDMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdDogMS41LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDIyMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBcInZpc2libGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJjpiZWZvcmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJnY29sb3I6IFwiYmFja2dyb3VuZC5wYXBlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIG9uQ2xpY2s9e2hhbmRsZVByb2ZpbGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hbmFnZUFjY291bnRzIGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+UHJvZmlsZTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIG9uQ2xpY2s9e2hhbmRsZUxvZ291dH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG9nb3V0IGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+TG9nIG91dDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1Rvb2xiYXI+XG4gICAgICAgICAgICA8L0FwcEJhcj5cblxuICAgICAgICAgICAgPERyYXdlclN0eWxlZCB2YXJpYW50PXtpc01vYmlsZSA/IFwidGVtcG9yYXJ5XCIgOiBcInBlcm1hbmVudFwifSBvcGVuPXtvcGVufT5cbiAgICAgICAgICAgICAgICA8VG9vbGJhciAvPlxuICAgICAgICAgICAgICAgIDxGb2xkaW5nVGFiU2lkZWJhclxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlcz17cm91dGVzfVxuICAgICAgICAgICAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvcj17J2FnaWxpdHknfVxuICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlUaGVtZUNvbG9yPXtzZWNvbmRhcnlUaGVtZUNvbG9yfVxuICAgICAgICAgICAgICAgICAgICBvbk9wZW5EcmF3ZXI9eygpID0+IHNldE9wZW4odHJ1ZSl9XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZVJvdXRlTWVudT17cHJvcHMuc2hvd0Rhc2hib2FyZE1lbnUgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2Rhc2hib2FyZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnRGFzaGJvYXJkJ1xuICAgICAgICAgICAgICAgICAgICB9IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkTGF1bmNoZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaERhc2hib2FyZCgpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBhcHBMb2dvUGF0aD17cHJvcHMuYXBwTG9nb1BhdGggPz8gJyd9XG4gICAgICAgICAgICAgICAgICAgIGxvZ289e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHRlckxpbms6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdTcmM6IGxvZ28sXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGxvZ29TdHlsZT17cHJvcHMubG9nb1N0eWxlfVxuICAgICAgICAgICAgICAgICAgICBjbG9zZVNpZGViYXI9e2Nsb3NlU2lkZWJhcn1cbiAgICAgICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICA8L0RyYXdlclN0eWxlZD5cbiAgICAgICAgICAgIDxNYWluIG9wZW49e29wZW59PlxuICAgICAgICAgICAgICAgIDxUb29sYmFyIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXNoYm9hcmQtbWFpbi1jb250ZW50XCIgc3R5bGU9e3toZWlnaHQ6IFwiY2FsYygxMDB2aCAtIDcwcHgpXCIsIG1heEhlaWdodDogXCJjYWxjKDEwMHZoIC0gNzBweClcIn19PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnQgdy0xMDAgaC0xMDAgcm93IG5vLW1hcmdpbiBuby1wYWRkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT24gbW9iaWxlIGEgcGlubmVkIHdpbmRvdyBjb2xsYXBzZXMgdG8gYSBmbG9hdGluZyBwaWxsLCBzb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHJlc2VydmUgdGhlIDMyMHB4IHN0cmlwIChpdCB3b3VsZCBzaHJpbmsgY29udGVudCB0byBhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xpdmVyIGFuZCBvdmVyZmxvdyB0aGUgdmlld3BvcnQpLiBQaWxsIGZsb2F0cyBvdmVyIGNvbnRlbnQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpbmRvd1Bpbm5lZCAmJiAhaXNNb2JpbGUgPyAnY2FsYygxMDAlIC0gMzIwcHgpJyA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG14SGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vmlld1BvcnQgd2luZG93UGlubmVkPXt3aW5kb3dQaW5uZWR9IG1lbnVPZmZzZXQ9e2lzTW9iaWxlID8gMCA6IChvcGVuID8gRFJBV0VSX1dJRFRIIDogTUlOSV9XSURUSCl9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfSBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aW5kb3dQaW5uZWQgJiYgIWlzTW9iaWxlID8gJzMyMHB4JyA6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IHdpbmRvd1Bpbm5lZCAmJiAhaXNNb2JpbGUgPyAnOHB4JyA6ICcwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdpbmRvd1ZpZXdQb3J0IG1lbnVPZmZzZXQ9e2lzTW9iaWxlID8gMCA6IChvcGVuID8gRFJBV0VSX1dJRFRIIDogTUlOSV9XSURUSCl9IHN0YXRlQ2hhbmdlSGFuZGxlcj17KHN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd1Bpbm5lZChzdGF0ZS5waW5uZWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvTWFpbj5cbiAgICAgICAgPC9Cb3g+XG4gICAgKTtcbn1cblxuRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICB3aWR0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBzZXR0aW5nczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzaG93RGFzaGJvYXJkTWVudTogUHJvcFR5cGVzLmJvb2wsXG4gICAgbG9nbzogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsb2dvU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgYXBwTG9nb1BhdGg6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgYXZhdGFyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxvZ291dENhbGxCYWNrOiBQcm9wVHlwZXMuZnVuY1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQWtCQSxJQUFBRSxTQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFHQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVyxTQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBWSxlQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxpQkFBQSxHQUFBVixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWMsV0FBQSxHQUFBWCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWUsZUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLG1CQUFBLEdBQUFiLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBaUIsY0FBQSxHQUFBZCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWtCLGVBQUEsR0FBQWYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQW1CLGVBQUEsR0FBQWhCLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBb0Isa0JBQUEsR0FBQWpCLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBcUIsT0FBQSxHQUFBckIsT0FBQTtBQUNBLElBQUFzQixjQUFBLEdBQUFuQixzQkFBQSxDQUFBSCxPQUFBO0FBQXdELFNBQUFHLHVCQUFBb0IsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUF4Qix3QkFBQXdCLENBQUEsRUFBQUcsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUE1Qix1QkFBQSxZQUFBQSxDQUFBd0IsQ0FBQSxFQUFBRyxDQUFBLFNBQUFBLENBQUEsSUFBQUgsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsU0FBQUQsQ0FBQSxNQUFBTyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFSLE9BQUEsRUFBQUYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUyxDQUFBLE1BQUFGLENBQUEsR0FBQUosQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUUsQ0FBQSxDQUFBSSxHQUFBLENBQUFYLENBQUEsVUFBQU8sQ0FBQSxDQUFBSyxHQUFBLENBQUFaLENBQUEsR0FBQU8sQ0FBQSxDQUFBTSxHQUFBLENBQUFiLENBQUEsRUFBQVMsQ0FBQSxnQkFBQU4sQ0FBQSxJQUFBSCxDQUFBLGdCQUFBRyxDQUFBLE9BQUFXLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFHLENBQUEsT0FBQUssQ0FBQSxJQUFBRCxDQUFBLEdBQUFTLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFHLENBQUEsT0FBQUssQ0FBQSxDQUFBSSxHQUFBLElBQUFKLENBQUEsQ0FBQUssR0FBQSxJQUFBTixDQUFBLENBQUFFLENBQUEsRUFBQU4sQ0FBQSxFQUFBSyxDQUFBLElBQUFDLENBQUEsQ0FBQU4sQ0FBQSxJQUFBSCxDQUFBLENBQUFHLENBQUEsV0FBQU0sQ0FBQSxLQUFBVCxDQUFBLEVBQUFHLENBQUE7QUFBQSxTQUFBZ0IsU0FBQSxXQUFBQSxRQUFBLEdBQUFILE1BQUEsQ0FBQUksTUFBQSxHQUFBSixNQUFBLENBQUFJLE1BQUEsQ0FBQUMsSUFBQSxlQUFBZixDQUFBLGFBQUFOLENBQUEsTUFBQUEsQ0FBQSxHQUFBc0IsU0FBQSxDQUFBQyxNQUFBLEVBQUF2QixDQUFBLFVBQUFHLENBQUEsR0FBQW1CLFNBQUEsQ0FBQXRCLENBQUEsWUFBQUssQ0FBQSxJQUFBRixDQUFBLE9BQUFXLGNBQUEsQ0FBQUMsSUFBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsTUFBQUMsQ0FBQSxDQUFBRCxDQUFBLElBQUFGLENBQUEsQ0FBQUUsQ0FBQSxhQUFBQyxDQUFBLEtBQUFhLFFBQUEsQ0FBQUssS0FBQSxPQUFBRixTQUFBLEtBMUN4RDtBQTRDTyxNQUFNRyxZQUFZLEdBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFHLEdBQUc7QUFDL0IsTUFBTUUsVUFBVSxHQUFHLEVBQUU7QUFFckIsTUFBTUMsWUFBWSxHQUFHLElBQUFDLGNBQU0sRUFBQ0MsZ0JBQU0sRUFBRTtFQUNoQ0MsaUJBQWlCLEVBQUdDLElBQUksSUFBS0EsSUFBSSxLQUFLO0FBQzFDLENBQUMsQ0FBQyxDQUFDQyxJQUFBO0VBQUEsSUFBQztJQUFFQyxLQUFLO0lBQUVDO0VBQUssQ0FBQyxHQUFBRixJQUFBO0VBQUEsT0FBTTtJQUNyQkcsS0FBSyxFQUFFRCxJQUFJLEdBQUdWLFlBQVksR0FBR0UsVUFBVTtJQUN2Q1UsVUFBVSxFQUFFLENBQUM7SUFDYkMsVUFBVSxFQUFFLFFBQVE7SUFDcEIsb0JBQW9CLEVBQUU7TUFDbEJGLEtBQUssRUFBRUQsSUFBSSxHQUFHVixZQUFZLEdBQUdFLFVBQVU7TUFDdkNZLFNBQVMsRUFBRSxRQUFRO01BQ25CQyxVQUFVLEVBQUVOLEtBQUssQ0FBQ08sV0FBVyxDQUFDQyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQzFDQyxNQUFNLEVBQUVULEtBQUssQ0FBQ08sV0FBVyxDQUFDRSxNQUFNLENBQUNDLEtBQUs7UUFDdENDLFFBQVEsRUFBRVgsS0FBSyxDQUFDTyxXQUFXLENBQUNJLFFBQVEsQ0FBQ0M7TUFDekMsQ0FBQztJQUNMO0VBQ0osQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVILE1BQU1DLElBQUksR0FBRyxJQUFBbEIsY0FBTSxFQUFDLE1BQU0sRUFBRTtFQUFFRSxpQkFBaUIsRUFBR0MsSUFBSSxJQUFLQSxJQUFJLEtBQUs7QUFBTyxDQUFDLENBQUMsQ0FDekVnQixLQUFBO0VBQUEsSUFBQztJQUFFZCxLQUFLO0lBQUVDO0VBQUssQ0FBQyxHQUFBYSxLQUFBO0VBQUEsT0FBTTtJQUNsQkMsUUFBUSxFQUFFLENBQUM7SUFDWFQsVUFBVSxFQUFFTixLQUFLLENBQUNPLFdBQVcsQ0FBQ0MsTUFBTSxDQUFDLGFBQWEsRUFBRTtNQUNoREMsTUFBTSxFQUFFVCxLQUFLLENBQUNPLFdBQVcsQ0FBQ0UsTUFBTSxDQUFDQyxLQUFLO01BQ3RDQyxRQUFRLEVBQUVYLEtBQUssQ0FBQ08sV0FBVyxDQUFDSSxRQUFRLENBQUNDO0lBQ3pDLENBQUMsQ0FBQztJQUNGSSxPQUFPLEVBQUUsQ0FBQztJQUNWQyxVQUFVLEVBQUU7RUFDaEIsQ0FBQztBQUFBLENBQ0wsQ0FBQztBQUVELElBQUlDLEVBQUU7QUFDTixNQUFNQyxlQUFlLEdBQUcsd0JBQXdCO0FBRWhELFNBQVNDLGFBQWFBLENBQUNDLEdBQUcsRUFBRTtFQUN4QixJQUFJLENBQUNBLEdBQUcsRUFBRSxPQUFPQyxTQUFTO0VBQzFCLE1BQU1DLENBQUMsR0FBR0YsR0FBRyxDQUFDRyxJQUFJLENBQUMsQ0FBQztFQUVwQixJQUFJLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDRixDQUFDLENBQUMsRUFBRTtJQUNuQixNQUFNRyxHQUFHLEdBQUcsSUFBSUMsTUFBTSxNQUFBQyxNQUFBLENBQU1ULGVBQWUsU0FBTSxHQUFHLENBQUM7SUFDckQsT0FBT0ksQ0FBQyxDQUFDTSxPQUFPLENBQUNILEdBQUcsRUFBRVAsZUFBZSxDQUFDO0VBQzFDO0VBRUEsT0FBT0EsZUFBZSxHQUFHSSxDQUFDO0FBQzlCO0FBRWUsU0FBU08sdUJBQXVCQSxDQUFDQyxLQUFLLEVBQUU7RUFBQSxJQUFBQyxrQkFBQTtFQUNuRCxNQUFNLENBQUMvQixJQUFJLEVBQUVnQyxPQUFPLENBQUMsR0FBRzVGLEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDNUMsTUFBTSxDQUFDQyxhQUFhLEVBQUVDLGdCQUFnQixDQUFDLEdBQUcvRixLQUFLLENBQUM2RixRQUFRLENBQUMsSUFBSSxDQUFDO0VBQzlELE1BQU0sQ0FBQ0csT0FBTyxFQUFFQyxVQUFVLENBQUMsR0FBR2pHLEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDbEQsTUFBTSxDQUFDSyxXQUFXLEVBQUVDLGNBQWMsQ0FBQyxHQUFHbkcsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLE1BQU0sQ0FBQztFQUM1RCxNQUFNLENBQUNPLG1CQUFtQixFQUFFQyxzQkFBc0IsQ0FBQyxHQUFHckcsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLEVBQUUsQ0FBQztFQUN4RSxNQUFNLENBQUNTLGlCQUFpQixFQUFFQyxvQkFBb0IsQ0FBQyxHQUFHdkcsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLEVBQUUsQ0FBQztFQUNwRSxNQUFNLENBQUNXLGNBQWMsRUFBRUMsaUJBQWlCLENBQUMsR0FBR3pHLEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxFQUFFLENBQUM7RUFDOUQsTUFBTSxDQUFDYSxNQUFNLEVBQUVDLFNBQVMsQ0FBQyxHQUFHM0csS0FBSyxDQUFDNkYsUUFBUSxDQUFDLEVBQUUsQ0FBQztFQUM5QyxNQUFNLENBQUNlLElBQUksRUFBRUMsT0FBTyxDQUFDLEdBQUc3RyxLQUFLLENBQUM2RixRQUFRLENBQUNkLGFBQWEsQ0FBQ1csS0FBSyxDQUFDa0IsSUFBSSxDQUFDLENBQUM7RUFDakUsTUFBTSxDQUFDRSxhQUFhLEVBQUVDLGdCQUFnQixDQUFDLEdBQUcvRyxLQUFLLENBQUM2RixRQUFRLENBQ3BEbUIsUUFBUSxDQUFDQyxlQUFlLENBQUNDLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FDaEUsQ0FBQztFQUNELE1BQU0sQ0FBQ0MsV0FBVyxFQUFFQyxjQUFjLENBQUMsR0FBR3JILEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDMUQsTUFBTSxDQUFDeUIsT0FBTyxFQUFFQyxVQUFVLENBQUMsR0FBR3ZILEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxDQUFDLENBQUM7RUFDL0MsTUFBTSxDQUFDMkIsWUFBWSxFQUFFQyxlQUFlLENBQUMsR0FBR3pILEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxLQUFLLENBQUM7O0VBRTdEO0VBQ0EsTUFBTSxDQUFDNkIsVUFBVSxFQUFFQyxhQUFhLENBQUMsR0FBRzNILEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDeEQsTUFBTStCLFlBQVksR0FBR0MsT0FBTyxDQUFDSCxVQUFVLENBQUM7RUFDeEMsTUFBTUksa0JBQWtCLEdBQUlyRyxDQUFDLElBQUtrRyxhQUFhLENBQUNsRyxDQUFDLENBQUNzRyxhQUFhLENBQUM7RUFDaEUsTUFBTUMsbUJBQW1CLEdBQUdBLENBQUEsS0FBTUwsYUFBYSxDQUFDLElBQUksQ0FBQztFQUNyRCxNQUFNaEUsS0FBSyxHQUFHLElBQUFzRSxnQkFBUSxFQUFDLENBQUM7RUFDeEIsTUFBTUMsUUFBUSxHQUFHLElBQUFDLHNCQUFhLEVBQUN4RSxLQUFLLENBQUN5RSxXQUFXLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztFQUU1RCxNQUFNQyxhQUFhLEdBQUdBLENBQUEsS0FBTTtJQUN4Qk4sbUJBQW1CLENBQUMsQ0FBQztJQUNyQk8sVUFBVSxDQUFDLGlDQUFpQyxDQUFDO0VBQ2pELENBQUM7RUFFRCxNQUFNQyxZQUFZLEdBQUdBLENBQUEsS0FBTTtJQUN2QlIsbUJBQW1CLENBQUMsQ0FBQztJQUNyQnRDLEtBQUssQ0FBQytDLGNBQWMsSUFBSS9DLEtBQUssQ0FBQytDLGNBQWMsQ0FBQyxDQUFDO0VBQ2xELENBQUM7RUFFRCxNQUFNQyw0QkFBNEIsR0FBR0EsQ0FBQSxLQUFNO0lBQ3ZDM0MsZ0JBQWdCLENBQUMsQ0FBQ0QsYUFBYSxDQUFDO0VBQ3BDLENBQUM7RUFFRCxNQUFNNkMsYUFBYSxHQUFJQyxLQUFLLElBQUs7SUFDN0J6QyxjQUFjLENBQUN5QyxLQUFLLENBQUM7RUFDekIsQ0FBQztFQUVENUksS0FBSyxDQUFDNkksU0FBUyxDQUFDLE1BQU07SUFDbEIsSUFBSVgsUUFBUSxFQUFFO01BQ1Z0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRztJQUN0QjtFQUNKLENBQUMsRUFBRSxDQUFDc0MsUUFBUSxDQUFDLENBQUM7RUFFZGxJLEtBQUssQ0FBQzZJLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCQywyQkFBa0IsQ0FBQ0MsaUJBQWlCLENBQUM7TUFBQ0MsVUFBVSxFQUFFcEYsSUFBSSxHQUFHVixZQUFZLEdBQUdFO0lBQVUsQ0FBQyxDQUFDO0VBQ3hGLENBQUMsRUFBRSxDQUFDUSxJQUFJLENBQUMsQ0FBQztFQUVWNUQsS0FBSyxDQUFDNkksU0FBUyxDQUFDLE1BQU07SUFDbEIsSUFBSUksU0FBUyxDQUFDQyxRQUFRLENBQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7TUFDeENILFFBQVEsQ0FBQ0MsZUFBZSxDQUFDa0MsU0FBUyxDQUFDQyxHQUFHLENBQUMsc0JBQXNCLENBQUM7TUFDOURwQyxRQUFRLENBQUNDLGVBQWUsQ0FBQ2tDLFNBQVMsQ0FBQ0UsTUFBTSxDQUFDLHVCQUF1QixDQUFDO01BQ2xFLElBQUlDLE1BQU0sR0FBR3RDLFFBQVEsQ0FBQ3VDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO01BQzNELEtBQUssSUFBSXRILENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3FILE1BQU0sQ0FBQ3RHLE1BQU0sRUFBRWYsQ0FBQyxFQUFFLEVBQUU7UUFDcEM0QyxFQUFFLEdBQUcsSUFBSTJFLHlCQUFnQixDQUFDRixNQUFNLENBQUNySCxDQUFDLENBQUMsQ0FBQztNQUN4QztJQUNKO0lBQ0F3SCxNQUFNLENBQUNDLGdCQUFnQixDQUFDLFFBQVEsRUFBRUMsZ0JBQWdCLENBQUM7RUFDdkQsQ0FBQyxDQUFDO0VBRUYzSixLQUFLLENBQUM2SSxTQUFTLENBQUMsTUFBTTtJQUNsQixJQUFJbkQsS0FBSyxDQUFDN0IsS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPNkIsS0FBSyxDQUFDN0IsS0FBSyxLQUFLLFdBQVcsRUFBRTtNQUM1RGtDLGdCQUFnQixDQUFDTCxLQUFLLENBQUM3QixLQUFLLEtBQUsrRixnQkFBSyxDQUFDO0lBQzNDO0VBQ0osQ0FBQyxFQUFFLENBQUNsRSxLQUFLLENBQUM3QixLQUFLLENBQUMsQ0FBQztFQUVqQjdELEtBQUssQ0FBQzZJLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCZ0Isc0JBQU8sQ0FBQ0MsSUFBSSxDQUFDLENBQUM7SUFDZGhCLDJCQUFrQixDQUFDQyxpQkFBaUIsQ0FBQztNQUFDQyxVQUFVLEVBQUVwRixJQUFJLEdBQUdWLFlBQVksR0FBR0U7SUFBVSxDQUFDLENBQUM7SUFDcEYsT0FBTyxNQUFNO01BQ1R5RyxzQkFBTyxDQUFDRSxVQUFVLENBQUMsQ0FBQztJQUN4QixDQUFDO0VBQ0wsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOL0osS0FBSyxDQUFDNkksU0FBUyxDQUFDLE1BQU07SUFDbEI3QixRQUFRLENBQUNnRCxJQUFJLENBQUNiLFNBQVMsQ0FBQ0MsR0FBRyxDQUFDLGVBQWUsQ0FBQztJQUU1QyxJQUFJSCxTQUFTLENBQUNDLFFBQVEsQ0FBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtNQUN4QztJQUFBO0lBR0pzQyxNQUFNLENBQUNRLG1CQUFtQixDQUFDLFFBQVEsRUFBRU4sZ0JBQWdCLENBQUM7SUFFdER4RCxjQUFjLENBQUMsU0FBUyxDQUFDO0lBQ3pCRSxzQkFBc0IsQ0FBQ1gsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ0MseUJBQXlCLENBQUM7SUFDakY3RCxvQkFBb0IsQ0FBQ2IsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ0Usd0JBQXdCLENBQUM7SUFDOUU1RCxpQkFBaUIsQ0FBQ2YsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQzNELGNBQWMsQ0FBQztJQUVqRSxJQUFJLENBQUM4RCxjQUFLLENBQUNDLE1BQU0sQ0FBQzdFLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQyxFQUFFO01BQy9CLElBQUlNLGFBQWEsR0FBRyxDQUFDLENBQUM7TUFDdEJBLGFBQWEsQ0FBQ0MsRUFBRSxHQUFHLFdBQVc7TUFDOUJELGFBQWEsQ0FBQ0UsS0FBSyxHQUFHLEVBQUU7TUFFeEIsSUFBSUMsZUFBZSxHQUFHLENBQUMsQ0FBQztNQUN4QkEsZUFBZSxDQUFDRixFQUFFLEdBQUcsYUFBYTtNQUNsQ0UsZUFBZSxDQUFDQyxLQUFLLEdBQUcsRUFBRTtNQUMxQkQsZUFBZSxDQUFDRSxVQUFVLEdBQUcsQ0FBQyxDQUFDO01BQy9CRixlQUFlLENBQUNFLFVBQVUsQ0FBQ0MsS0FBSyxHQUFHLGVBQWU7TUFDbEROLGFBQWEsQ0FBQ0UsS0FBSyxDQUFDSyxJQUFJLENBQUNKLGVBQWUsQ0FBQztNQUV6QyxJQUFJLENBQUNMLGNBQUssQ0FBQ0MsTUFBTSxDQUFDN0UsS0FBSyxDQUFDd0UsUUFBUSxDQUFDYyxjQUFjLENBQUMsRUFBRTtRQUM5QyxLQUFLLElBQUkvSSxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUd5RCxLQUFLLENBQUN3RSxRQUFRLENBQUNjLGNBQWMsQ0FBQ2hJLE1BQU0sRUFBRWYsQ0FBQyxFQUFFLEVBQUU7VUFDM0QsSUFBSWdKLGFBQWEsR0FBR3ZGLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ2MsY0FBYyxDQUFDL0ksQ0FBQyxDQUFDO1VBQ3BELElBQUlpSixJQUFJLEdBQUcsQ0FBQyxDQUFDO1VBQ2JBLElBQUksQ0FBQ1QsRUFBRSxHQUFHUSxhQUFhLENBQUNSLEVBQUU7VUFDMUJTLElBQUksQ0FBQ0wsVUFBVSxHQUFHLENBQUMsQ0FBQztVQUNwQkssSUFBSSxDQUFDTCxVQUFVLENBQUNDLEtBQUssR0FBR0csYUFBYSxDQUFDRSxVQUFVLENBQUNDLEdBQUcsQ0FBQ0MsYUFBYTtVQUVsRVYsZUFBZSxDQUFDQyxLQUFLLENBQUNHLElBQUksQ0FBQ0csSUFBSSxDQUFDO1FBQ3BDO01BQ0o7TUFFQSxJQUFJSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO01BQ3RCQSxhQUFhLENBQUNiLEVBQUUsR0FBRyxXQUFXO01BQzlCYSxhQUFhLENBQUNWLEtBQUssR0FBRyxFQUFFO01BQ3hCVSxhQUFhLENBQUNULFVBQVUsR0FBRyxDQUFDLENBQUM7TUFDN0JTLGFBQWEsQ0FBQ1QsVUFBVSxDQUFDQyxLQUFLLEdBQUcsWUFBWTtNQUM3Q04sYUFBYSxDQUFDRSxLQUFLLENBQUNLLElBQUksQ0FBQ08sYUFBYSxDQUFDO01BRXZDLElBQUksQ0FBQ2hCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDN0UsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ29CLE9BQU8sQ0FBQyxFQUFFO1FBQ3hELEtBQUssSUFBSXRKLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3lELEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUNvQixPQUFPLENBQUN2SSxNQUFNLEVBQUVmLENBQUMsRUFBRSxFQUFFO1VBQ3JFLElBQUl1SixNQUFNLEdBQUc5RixLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDb0IsT0FBTyxDQUFDdEosQ0FBQyxDQUFDO1VBQ3ZELElBQUksQ0FBQ3FJLGNBQUssQ0FBQ0MsTUFBTSxDQUFDaUIsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRixNQUFNLENBQUNDLGdCQUFnQixDQUFDZixLQUFLLENBQUMxSCxNQUFNLEVBQUUwSSxDQUFDLEVBQUUsRUFBRTtjQUMzRCxJQUFJQyxJQUFJLEdBQUdILE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUNmLEtBQUssQ0FBQ2dCLENBQUMsQ0FBQzs7Y0FFM0M7Y0FDQUosYUFBYSxDQUFDVixLQUFLLEdBQUdVLGFBQWEsQ0FBQ1YsS0FBSyxDQUFDckYsTUFBTSxDQUFDb0csSUFBSSxDQUFDZixLQUFLLENBQUM7WUFDaEU7VUFDSjtRQUNKO01BQ0o7TUFFQSxJQUFJZ0IsU0FBUyxHQUFHLEVBQUU7TUFDbEIsSUFBSUMsUUFBUSxHQUFHLENBQUMsQ0FBQztNQUVqQixJQUFJdkIsY0FBSyxDQUFDQyxNQUFNLENBQUM3RSxLQUFLLENBQUNvRyxpQkFBaUIsQ0FBQyxJQUFJcEcsS0FBSyxDQUFDb0csaUJBQWlCLEVBQUU7UUFDbEVELFFBQVEsQ0FBQ0UsSUFBSSxHQUFHLFdBQVc7UUFDM0JGLFFBQVEsQ0FBQ3BCLEVBQUUsR0FBRyxXQUFXO1FBQ3pCb0IsUUFBUSxDQUFDRyxJQUFJLEdBQUcsaUJBQWlCO1FBQ2pDSCxRQUFRLENBQUNJLE1BQU0sR0FBRyxRQUFRO1FBQzFCSixRQUFRLENBQUNLLEtBQUssR0FBRyxDQUFDO1FBQ2xCTCxRQUFRLENBQUNNLFFBQVEsR0FBRyxJQUFJO1FBQ3hCUCxTQUFTLENBQUNiLElBQUksQ0FBQ2MsUUFBUSxDQUFDO01BQzVCO01BRUEsSUFBSSxDQUFDdkIsY0FBSyxDQUFDQyxNQUFNLENBQUM3RSxLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDb0IsT0FBTyxDQUFDLEVBQUU7UUFDeEQsS0FBSyxJQUFJdEosQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHeUQsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ29CLE9BQU8sQ0FBQ3ZJLE1BQU0sRUFBRWYsQ0FBQyxFQUFFLEVBQUU7VUFDckUsSUFBSXVKLE1BQU0sR0FBRzlGLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUNvQixPQUFPLENBQUN0SixDQUFDLENBQUM7VUFDdkQsSUFBSW1LLEtBQUssR0FBRyxDQUFDLENBQUM7VUFFZEEsS0FBSyxDQUFDTCxJQUFJLEdBQUdQLE1BQU0sQ0FBQ1YsS0FBSztVQUN6QnNCLEtBQUssQ0FBQ0osSUFBSSxHQUFHUixNQUFNLENBQUNRLElBQUk7VUFDeEJJLEtBQUssQ0FBQ1QsSUFBSSxHQUFHSCxNQUFNLENBQUNHLElBQUk7VUFDeEJTLEtBQUssQ0FBQ0gsTUFBTSxHQUFHLFFBQVE7VUFDdkJHLEtBQUssQ0FBQ0YsS0FBSyxHQUFHLENBQUM7VUFFZixJQUFJVixNQUFNLENBQUNHLElBQUksRUFBRTtZQUNiUyxLQUFLLENBQUNDLFFBQVEsR0FBRyxJQUFJO1lBQ3JCRCxLQUFLLENBQUNFLEtBQUssR0FBR2QsTUFBTSxDQUFDTyxJQUFJLEdBQUcsVUFBVTtVQUMxQztVQUVBSCxTQUFTLENBQUNiLElBQUksQ0FBQ3FCLEtBQUssQ0FBQztRQUN6QjtNQUNKO01BRUEsSUFBSTFHLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ3FDLFlBQVksRUFBRTtRQUM3QlYsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUViQSxRQUFRLENBQUNFLElBQUksR0FBRyxVQUFVO1FBQzFCRixRQUFRLENBQUNHLElBQUksR0FBRyxXQUFXO1FBQzNCSCxRQUFRLENBQUNJLE1BQU0sR0FBRyxRQUFRO1FBQzFCSixRQUFRLENBQUNNLFFBQVEsR0FBRyxJQUFJO1FBQ3hCTixRQUFRLENBQUNRLFFBQVEsR0FBRyxJQUFJO1FBQ3hCUixRQUFRLENBQUNLLEtBQUssR0FBRyxDQUFDO1FBQ2xCTCxRQUFRLENBQUNGLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwQkUsUUFBUSxDQUFDUyxLQUFLLEdBQUcsc0JBQXNCO1FBRXZDVixTQUFTLENBQUNiLElBQUksQ0FBQ2MsUUFBUSxDQUFDO01BQzVCO01BRUFsRixTQUFTLENBQUNpRixTQUFTLENBQUM7TUFFcEJsRyxLQUFLLENBQUN3RSxRQUFRLENBQUNNLGFBQWEsR0FBR2MsYUFBYSxDQUFDVixLQUFLLENBQUM1SCxNQUFNLEdBQUcsQ0FBQyxHQUFHd0gsYUFBYSxHQUFHLElBQUk7TUFDcEZ2RSxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ3JCO0VBQ0osQ0FBQyxFQUFFLENBQUNQLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQyxDQUFDO0VBRXBCLE1BQU1zQyxhQUFhLEdBQUdBLENBQUEsS0FBTTtJQUN4QnhGLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDa0MsU0FBUyxDQUFDc0QsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNyRDFGLGdCQUFnQixDQUFDLENBQUNELGFBQWEsQ0FBQztFQUNwQyxDQUFDO0VBRUQsTUFBTTZDLGdCQUFnQixHQUFHQSxDQUFBLEtBQU07SUFDM0IsSUFDSTNDLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDeUYsU0FBUyxHQUFHLEVBQUUsSUFDdkMxRixRQUFRLENBQUMyRixnQkFBZ0IsQ0FBQ0QsU0FBUyxHQUFHLEVBQUUsRUFDMUM7TUFDRW5GLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQyxNQUFNLElBQ0hQLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDeUYsU0FBUyxJQUFJLEVBQUUsSUFDeEMxRixRQUFRLENBQUMyRixnQkFBZ0IsQ0FBQ0QsU0FBUyxJQUFJLEVBQUUsRUFDM0M7TUFDRW5GLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakI7RUFDSixDQUFDO0VBRUQsTUFBTXFGLFNBQVMsR0FBSWxHLE1BQU0sSUFBSztJQUMxQixPQUFPQSxNQUFNLENBQUMwRSxHQUFHLENBQUMsQ0FBQzNILElBQUksRUFBRW9KLEdBQUcsS0FBSztNQUM3QixJQUFJcEosSUFBSSxDQUFDNEksUUFBUSxFQUFFO1FBQ2YsT0FBT08sU0FBUyxDQUFDbkosSUFBSSxDQUFDcUosS0FBSyxDQUFDO01BQ2hDO01BRUEsSUFBSXJKLElBQUksQ0FBQ3dJLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDMUIsb0JBQ0lqTSxLQUFBLENBQUErTSxhQUFBLENBQUNqTSxlQUFBLENBQUFrTSxLQUFLO1VBQ0ZDLElBQUksRUFBRXhKLElBQUksQ0FBQ3dJLE1BQU0sR0FBR3hJLElBQUksQ0FBQ3dKLElBQUs7VUFDOUJDLFNBQVMsRUFBRXpKLElBQUksQ0FBQ3lKLFNBQVU7VUFDMUJMLEdBQUcsRUFBRUE7UUFBSSxDQUNaLENBQUM7TUFFVixDQUFDLE1BQU07UUFDSCxPQUFPLElBQUk7TUFDZjtJQUNKLENBQUMsQ0FBQztFQUNOLENBQUM7RUFFRCxNQUFNTSxjQUFjLEdBQUl6RyxNQUFNLElBQUs7SUFDL0IsSUFBSTBHLFdBQVcsR0FBRyxXQUFXO0lBQzdCLEtBQUssSUFBSW5MLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3lFLE1BQU0sQ0FBQzFELE1BQU0sRUFBRWYsQ0FBQyxFQUFFLEVBQUU7TUFDcEMsSUFBSXlFLE1BQU0sQ0FBQ3pFLENBQUMsQ0FBQyxDQUFDb0ssUUFBUSxJQUFJM0YsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUM2SyxLQUFLLEVBQUU7UUFDdkMsSUFBSU8sbUJBQW1CLEdBQUdGLGNBQWMsQ0FBQ3pHLE1BQU0sQ0FBQ3pFLENBQUMsQ0FBQyxDQUFDNkssS0FBSyxDQUFDO1FBQ3pELElBQUlPLG1CQUFtQixLQUFLRCxXQUFXLEVBQUU7VUFDckMsT0FBT0MsbUJBQW1CO1FBQzlCO01BQ0osQ0FBQyxNQUFNO1FBQ0gsSUFDSTVELE1BQU0sQ0FBQzZELFFBQVEsQ0FBQ0MsSUFBSSxDQUFDcEcsT0FBTyxDQUFDVCxNQUFNLENBQUN6RSxDQUFDLENBQUMsQ0FBQ2dLLE1BQU0sR0FBR3ZGLE1BQU0sQ0FBQ3pFLENBQUMsQ0FBQyxDQUFDZ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hFO1VBQ0UsT0FBT3ZHLE1BQU0sQ0FBQ3pFLENBQUMsQ0FBQyxDQUFDOEosSUFBSTtRQUN6QjtNQUNKO0lBQ0o7SUFDQSxPQUFPcUIsV0FBVztFQUN0QixDQUFDO0VBRUQsTUFBTUksaUJBQWlCLEdBQUk1RSxLQUFLLElBQUs7SUFDakN6QyxjQUFjLENBQUN5QyxLQUFLLENBQUM7RUFDekIsQ0FBQztFQUVELE1BQU02RSxZQUFZLEdBQUdBLENBQUEsS0FBTTtJQUN2QjFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUN2QkMsUUFBUSxDQUFDQyxlQUFlLENBQUNrQyxTQUFTLENBQUNFLE1BQU0sQ0FBQyxVQUFVLENBQUM7RUFDekQsQ0FBQztFQUVELFNBQVNxRSxlQUFlQSxDQUFBLEVBQUc7SUFDdkI7SUFDQTtJQUNBNUUsMkJBQWtCLENBQUM2RSxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ3RDO0lBQ0E3RSwyQkFBa0IsQ0FBQzhFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztFQUNsRDtFQUVBLFNBQVNyRixVQUFVQSxDQUFDMEUsSUFBSSxFQUFFO0lBQ3RCLElBQUlZLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckJBLFlBQVksQ0FBQ0MsVUFBVSxHQUFHLE9BQU87SUFDakNELFlBQVksQ0FBQ1osSUFBSSxHQUFHQSxJQUFJO0lBQ3hCWSxZQUFZLENBQUNFLE1BQU0sR0FBRyxJQUFJO0lBRTFCQyx1QkFBYyxDQUFDQyxhQUFhLENBQUNKLFlBQVksQ0FBQztFQUM5QztFQUVBLElBQUk3SCxPQUFPLEVBQUU7SUFDVCxvQkFBT2hHLEtBQUEsQ0FBQStNLGFBQUEsY0FBSyxZQUFlLENBQUM7RUFDaEM7RUFFQSxvQkFDSS9NLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQStOLEdBQUc7SUFBQ0MsRUFBRSxFQUFFO01BQUVDLE9BQU8sRUFBRTtJQUFPO0VBQUUsZ0JBQ3pCcE8sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBa08sV0FBVyxNQUFFLENBQUMsZUFHZnJPLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQW1PLE1BQU07SUFDSEMsUUFBUSxFQUFDLE9BQU87SUFDaEIzRixLQUFLLEVBQUMsU0FBUztJQUNmNEYsU0FBUyxFQUFFLENBQUU7SUFDYkwsRUFBRSxFQUFFO01BQUVNLE1BQU0sRUFBRzlLLEtBQUssSUFBS0EsS0FBSyxDQUFDOEssTUFBTSxDQUFDQyxNQUFNLEdBQUc7SUFBRTtFQUFFLGdCQUVuRDFPLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXdPLE9BQU8scUJBQ0ozTyxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUF5TyxPQUFPO0lBQUNDLEtBQUssRUFBRWpMLElBQUksR0FBRyxlQUFlLEdBQUc7RUFBYyxnQkFDbkQ1RCxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUEyTyxVQUFVO0lBQUNsRyxLQUFLLEVBQUMsU0FBUztJQUFDbUcsSUFBSSxFQUFDLE9BQU87SUFBQ0MsT0FBTyxFQUFFQSxDQUFBLEtBQU1wSixPQUFPLENBQUU1RCxDQUFDLElBQUssQ0FBQ0EsQ0FBQztFQUFFLEdBQ3RFNEIsSUFBSSxnQkFBRzVELEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzNNLFNBQUEsQ0FBQXVCLE9BQVksTUFBRSxDQUFDLGdCQUFHM0IsS0FBQSxDQUFBK00sYUFBQSxDQUFDek0sS0FBQSxDQUFBcUIsT0FBUSxNQUFFLENBQzlCLENBQ1AsQ0FBQyxlQUNWM0IsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBK04sR0FBRztJQUFDQyxFQUFFLEVBQUU7TUFBRWMsRUFBRSxFQUFFLENBQUM7TUFBRUMsVUFBVSxFQUFFO0lBQUk7RUFBRSxDQUFNLENBQUMsZUFDM0NsUCxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUErTixHQUFHO0lBQUNDLEVBQUUsRUFBRTtNQUFFYyxFQUFFLEVBQUUsTUFBTTtNQUFFYixPQUFPLEVBQUUsTUFBTTtNQUFFZSxVQUFVLEVBQUU7SUFBUztFQUFFLGdCQUMzRG5QLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXlPLE9BQU87SUFBQ0MsS0FBSyxFQUFDO0VBQVMsZ0JBQ3BCN08sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBMk8sVUFBVTtJQUNQRSxPQUFPLEVBQUVsSCxrQkFBbUI7SUFDNUJzSCxJQUFJLEVBQUMsT0FBTztJQUNaakIsRUFBRSxFQUFFO01BQUVjLEVBQUUsRUFBRTtJQUFFLENBQUU7SUFDZCxpQkFBZXJILFlBQVksR0FBRyxjQUFjLEdBQUczQyxTQUFVO0lBQ3pELGlCQUFjLE1BQU07SUFDcEIsaUJBQWUyQyxZQUFZLEdBQUcsTUFBTSxHQUFHM0M7RUFBVSxnQkFFakRqRixLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUFrUCxNQUFNO0lBQ0hDLEdBQUcsRUFBQyxNQUFNO0lBQ1Z0SyxHQUFHLEVBQUVVLEtBQUssQ0FBQzZKLE1BQU87SUFDbEJwQixFQUFFLEVBQUU7TUFBRXRLLEtBQUssRUFBRSxFQUFFO01BQUUyTCxNQUFNLEVBQUUsRUFBRTtNQUFFQyxZQUFZLEVBQUU7SUFBTTtFQUFFLENBQ3RELENBQ08sQ0FDUCxDQUFDLGVBRVZ6UCxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUF1UCxJQUFJO0lBQ0RDLFFBQVEsRUFBRWpJLFVBQVc7SUFDckIrQyxFQUFFLEVBQUMsY0FBYztJQUNqQjdHLElBQUksRUFBRWdFLFlBQWE7SUFDbkJnSSxPQUFPLEVBQUU1SCxtQkFBb0I7SUFDN0JnSCxPQUFPLEVBQUVoSCxtQkFBb0I7SUFDN0I2SCxlQUFlLEVBQUU7TUFBRUMsVUFBVSxFQUFFLE9BQU87TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBRTtJQUMxREMsWUFBWSxFQUFFO01BQUVGLFVBQVUsRUFBRSxPQUFPO01BQUVDLFFBQVEsRUFBRTtJQUFTLENBQUU7SUFDMURFLFVBQVUsRUFBRTtNQUNSekIsU0FBUyxFQUFFLENBQUM7TUFDWkwsRUFBRSxFQUFFO1FBQ0ErQixFQUFFLEVBQUUsR0FBRztRQUNQQyxRQUFRLEVBQUUsR0FBRztRQUNiQyxRQUFRLEVBQUUsU0FBUztRQUNuQixVQUFVLEVBQUU7VUFDUkMsT0FBTyxFQUFFLElBQUk7VUFDYmpDLE9BQU8sRUFBRSxPQUFPO1VBQ2hCRyxRQUFRLEVBQUUsVUFBVTtVQUNwQitCLEdBQUcsRUFBRSxDQUFDO1VBQ05DLEtBQUssRUFBRSxFQUFFO1VBQ1QxTSxLQUFLLEVBQUUsRUFBRTtVQUNUMkwsTUFBTSxFQUFFLEVBQUU7VUFDVmdCLE9BQU8sRUFBRSxrQkFBa0I7VUFDM0JDLFNBQVMsRUFBRSxnQ0FBZ0M7VUFDM0NoQyxNQUFNLEVBQUU7UUFDWjtNQUNKO0lBQ0o7RUFBRSxnQkFFRnpPLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXVRLFFBQVE7SUFBQzFCLE9BQU8sRUFBRTFHO0VBQWMsZ0JBQzdCdEksS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd1EsWUFBWSxxQkFDVDNRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ3RNLGVBQUEsQ0FBQWtCLE9BQWM7SUFBQ2lQLFFBQVEsRUFBQztFQUFPLENBQUUsQ0FDeEIsQ0FBQyxlQUNmNVEsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBMFEsVUFBVSxRQUFDLFNBQW1CLENBQ3pCLENBQUMsZUFDWDdRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQTJRLE9BQU8sTUFBRSxDQUFDLGVBQ1g5USxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUF1USxRQUFRO0lBQUMxQixPQUFPLEVBQUV4RztFQUFhLGdCQUM1QnhJLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXdRLFlBQVkscUJBQ1QzUSxLQUFBLENBQUErTSxhQUFBLENBQUN2TSxPQUFBLENBQUFtQixPQUFNO0lBQUNpUCxRQUFRLEVBQUM7RUFBTyxDQUFFLENBQ2hCLENBQUMsZUFDZjVRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQTBRLFVBQVUsUUFBQyxTQUFtQixDQUN6QixDQUNSLENBQ0wsQ0FDQSxDQUNMLENBQUMsZUFFVDdRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzFKLFlBQVk7SUFBQzBOLE9BQU8sRUFBRTdJLFFBQVEsR0FBRyxXQUFXLEdBQUcsV0FBWTtJQUFDdEUsSUFBSSxFQUFFQTtFQUFLLGdCQUNwRTVELEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXdPLE9BQU8sTUFBRSxDQUFDLGVBQ1gzTyxLQUFBLENBQUErTSxhQUFBLENBQUN6TCxrQkFBQSxDQUFBSyxPQUFpQixFQUFBaUIsUUFBQSxLQUNWOEMsS0FBSztJQUNUZ0IsTUFBTSxFQUFFQSxNQUFPO0lBQ2Y5QyxJQUFJLEVBQUVBLElBQUs7SUFDWHNDLFdBQVcsRUFBRSxTQUFVO0lBQ3ZCRSxtQkFBbUIsRUFBRUEsbUJBQW9CO0lBQ3pDNEssWUFBWSxFQUFFQSxDQUFBLEtBQU1wTCxPQUFPLENBQUMsSUFBSSxDQUFFO0lBQ2xDcUwsZUFBZSxFQUFFdkwsS0FBSyxDQUFDb0csaUJBQWlCLEdBQUc7TUFDdkNyQixFQUFFLEVBQUUsV0FBVztNQUNmc0IsSUFBSSxFQUFFO0lBQ1YsQ0FBQyxHQUFHLElBQUs7SUFDVG1GLGlCQUFpQixFQUFFQSxDQUFBLEtBQU07TUFDckJ4RCxlQUFlLENBQUMsQ0FBQztJQUNyQixDQUFFO0lBQ0Z5RCxXQUFXLEdBQUF4TCxrQkFBQSxHQUFFRCxLQUFLLENBQUN5TCxXQUFXLGNBQUF4TCxrQkFBQSxjQUFBQSxrQkFBQSxHQUFJLEVBQUc7SUFDckNpQixJQUFJLEVBQUU7TUFDRndLLFVBQVUsRUFBRSxFQUFFO01BQ2RDLElBQUksRUFBRSxFQUFFO01BQ1JDLE1BQU0sRUFBRTFLO0lBQ1osQ0FBRTtJQUNGMkssU0FBUyxFQUFFN0wsS0FBSyxDQUFDNkwsU0FBVTtJQUMzQjlELFlBQVksRUFBRUE7RUFBYSxFQUM5QixDQUFDLEVBQUMsR0FDTyxDQUFDLGVBQ2Z6TixLQUFBLENBQUErTSxhQUFBLENBQUN2SSxJQUFJO0lBQUNaLElBQUksRUFBRUE7RUFBSyxnQkFDYjVELEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXdPLE9BQU8sTUFBRSxDQUFDLGVBQ1gzTyxLQUFBLENBQUErTSxhQUFBO0lBQUs3RixTQUFTLEVBQUMsd0JBQXdCO0lBQUNzSyxLQUFLLEVBQUU7TUFBQ2hDLE1BQU0sRUFBRSxvQkFBb0I7TUFBRWlDLFNBQVMsRUFBRTtJQUFvQjtFQUFFLGdCQUMzR3pSLEtBQUEsQ0FBQStNLGFBQUE7SUFBSzdGLFNBQVMsRUFBQztFQUE4QyxnQkFDekRsSCxLQUFBLENBQUErTSxhQUFBO0lBQUt5RSxLQUFLLEVBQUU7TUFDUjtNQUNBO01BQ0E7TUFDQTNOLEtBQUssRUFBRTJELFlBQVksSUFBSSxDQUFDVSxRQUFRLEdBQUcsb0JBQW9CLEdBQUcsTUFBTTtNQUNoRXNILE1BQU0sRUFBRSxNQUFNO01BQ2RrQyxRQUFRLEVBQUUsTUFBTTtNQUNoQnRCLFFBQVEsRUFBRTtJQUNkO0VBQUUsZ0JBQ0VwUSxLQUFBLENBQUErTSxhQUFBLENBQUNsTSxTQUFBLENBQUFjLE9BQVE7SUFBQzZGLFlBQVksRUFBRUEsWUFBYTtJQUFDbUssVUFBVSxFQUFFekosUUFBUSxHQUFHLENBQUMsR0FBSXRFLElBQUksR0FBR1YsWUFBWSxHQUFHRTtFQUFZLENBQUMsQ0FDcEcsQ0FBQyxlQUNOcEQsS0FBQSxDQUFBK00sYUFBQTtJQUFLN0YsU0FBUyxFQUFFLDBCQUEyQjtJQUFDc0ssS0FBSyxFQUFFO01BQy9DM04sS0FBSyxFQUFFMkQsWUFBWSxJQUFJLENBQUNVLFFBQVEsR0FBRyxPQUFPLEdBQUcsR0FBRztNQUNoRDBKLE1BQU0sRUFBRXBLLFlBQVksSUFBSSxDQUFDVSxRQUFRLEdBQUcsS0FBSyxHQUFHO0lBQ2hEO0VBQUUsZ0JBQ0VsSSxLQUFBLENBQUErTSxhQUFBLENBQUMzTCxlQUFBLENBQUFPLE9BQWM7SUFBQ2dRLFVBQVUsRUFBRXpKLFFBQVEsR0FBRyxDQUFDLEdBQUl0RSxJQUFJLEdBQUdWLFlBQVksR0FBR0UsVUFBWTtJQUFDeU8sa0JBQWtCLEVBQUd2RixLQUFLLElBQUs7TUFDMUc3RSxlQUFlLENBQUM2RSxLQUFLLENBQUN3RixNQUFNLENBQUM7SUFDakM7RUFBRSxDQUFDLENBQ0YsQ0FDSixDQUNKLENBQ0gsQ0FDTCxDQUFDO0FBRWQ7QUFFQXJNLHVCQUF1QixDQUFDc00sU0FBUyxHQUFHO0VBQ2hDQyxRQUFRLEVBQUVDLGtCQUFTLENBQUNDLE9BQU87RUFDM0JyTyxLQUFLLEVBQUVvTyxrQkFBUyxDQUFDRSxNQUFNO0VBQ3ZCakksUUFBUSxFQUFFK0gsa0JBQVMsQ0FBQ0csTUFBTTtFQUMxQnRHLGlCQUFpQixFQUFFbUcsa0JBQVMsQ0FBQ0ksSUFBSTtFQUNqQ3pMLElBQUksRUFBRXFMLGtCQUFTLENBQUNLLE1BQU07RUFDdEJmLFNBQVMsRUFBRVUsa0JBQVMsQ0FBQ0csTUFBTTtFQUMzQmpCLFdBQVcsRUFBRWMsa0JBQVMsQ0FBQ0csTUFBTTtFQUM3QjdDLE1BQU0sRUFBRTBDLGtCQUFTLENBQUNLLE1BQU07RUFDeEI3SixjQUFjLEVBQUV3SixrQkFBUyxDQUFDTTtBQUM5QixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _Utils = _interopRequireDefault(require("../../../../../Utils"));
|
|
10
|
+
var _ApplicationManager = _interopRequireDefault(require("../../../../../ApplicationManager"));
|
|
10
11
|
var _MenuLink = _interopRequireDefault(require("../../../../menu/MenuLink"));
|
|
11
12
|
var _material = require("@mui/material");
|
|
12
13
|
var _RestUtils = require("../../../../../RestUtils");
|
|
@@ -254,7 +255,22 @@ function FoldingTabSidebar(props) {
|
|
|
254
255
|
clickCallback: prop.name === 'Dashboard' ? item => {
|
|
255
256
|
props.dashboardLauncher && props.dashboardLauncher();
|
|
256
257
|
setActiveRouteMenu(item);
|
|
257
|
-
|
|
258
|
+
// Multi-viewport: dock (pin) any open window overlay so it stays visible
|
|
259
|
+
// alongside the newly-navigated main view instead of overlaying it.
|
|
260
|
+
if (_ApplicationManager.default.isWindowOpen()) {
|
|
261
|
+
_ApplicationManager.default.updateContext({
|
|
262
|
+
windowDisplayState: 'PINNED'
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
} : item => {
|
|
266
|
+
setActiveRouteMenu(item);
|
|
267
|
+
// Multi-viewport: dock (pin) any open window overlay (see above).
|
|
268
|
+
if (_ApplicationManager.default.isWindowOpen()) {
|
|
269
|
+
_ApplicationManager.default.updateContext({
|
|
270
|
+
windowDisplayState: 'PINNED'
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
},
|
|
258
274
|
autoClick: prop.name === 'My Work Items' || prop.item && prop.item.defaultItem,
|
|
259
275
|
viewId: "menuBar",
|
|
260
276
|
icon: prop.icon,
|
|
@@ -416,4 +432,4 @@ FoldingTabSidebar.propTypes = {
|
|
|
416
432
|
onOpenDrawer: _propTypes.default.func // <--- NEW
|
|
417
433
|
};
|
|
418
434
|
var _default = exports.default = FoldingTabSidebar;
|
|
419
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfVXRpbHMiLCJfTWVudUxpbmsiLCJfbWF0ZXJpYWwiLCJfUmVzdFV0aWxzIiwiX0NhcmRBdmF0YXIiLCJfTW9yZUhvcml6IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIlRBQiIsIkZvbGRpbmdUYWJTaWRlYmFyIiwicHJvcHMiLCJhY3RpdmVDb2xvciIsIm9wZW4iLCJhcHBMb2dvUGF0aCIsIm9uT3BlbkRyYXdlciIsImNvbGxhcHNlU3RhdGVzIiwic2V0Q29sbGFwc2VTdGF0ZXMiLCJSZWFjdCIsInVzZVN0YXRlIiwiZ2V0Q29sbGFwc2VTdGF0ZXMiLCJyb3V0ZXMiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJlcnJvciIsInNldEVycm9yIiwicm91dGVzRGF0YSIsInNldFJvdXRlc0RhdGEiLCJ1bmRlZmluZWQiLCJhY3RpdmVSb3V0ZU1lbnUiLCJzZXRBY3RpdmVSb3V0ZU1lbnUiLCJpZCIsIm5hbWUiLCJnZXRWaWV3cyIsIm1lbnVzIiwibGV2ZWwiLCJuZXdWaWV3cyIsImNyZWF0ZVZpZXciLCJhdHRyaWJ1dGVzIiwibGFiZWwiLCJtaW5pIiwibGF5b3V0Iiwic3ViTWVudSIsImNvbGxhcHNlIiwic3RhdGUiLCJ2aWV3cyIsImdldEl0ZW1zIiwiaXRlbXMiLCJpdGVtIiwibmV3SXRlbXMiLCJjcmVhdGVJdGVtIiwiVXRpbHMiLCJpc051bGwiLCJpbml0aWFsU3RhdGUiLCJwcm9wIiwiZ2V0Q29sbGFwc2VJbml0aWFsU3RhdGUiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJpbmRleE9mIiwicGF0aCIsImdldE1lbnUiLCJyb3V0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwic2VydmljZSIsInVybCIsInBhcmFtZXRlcnMiLCJtZW51IiwiaHR0cFBhcmFtZXRlclR5cGUiLCJjb250ZW50VHlwZSIsImludm9rZVJlc3QiLCJhcGkiLCJyZXN1bHQiLCJjb25zb2xlIiwiYWN0aXZlUm91dGUiLCJyb3V0ZU5hbWUiLCJnZXRMaUNsYXNzTmFtZSIsImZhbGxiYWNrSWNvbiIsImljb25Ob2RlIiwiX3Byb3AkbmFtZSIsIl9wcm9wJG5hbWUkY2hhckF0IiwiX3Byb3AkbmFtZTIiLCJfcHJvcCRuYW1lJGNoYXJBdDIiLCJfcHJvcCRuYW1lMyIsImljb24iLCJjcmVhdGVFbGVtZW50IiwiZm9udFNpemUiLCJjbGFzc05hbWUiLCJzdHlsZSIsImNoYXJBdCIsImNyZWF0ZUxpbmtzIiwic2Vjb25kYXJ5VGhlbWVDb2xvciIsIm1hcCIsImtleSIsInJlZGlyZWN0IiwiaXNWYWxpZEVsZW1lbnQiLCJpc0FjdGl2ZSIsImlzQ29sbGFwc2libGUiLCJpc1BhcmVudCIsImlzT3BlbiIsImNvbGxhcHNpYmxlQ2xhc3NOYW1lIiwibGVhZkNsYXNzTmFtZSIsImluZGVudCIsImlzVG9wTGV2ZWwiLCJzaG91bGRTaG93VG9vbHRpcCIsImhhbmRsZUNsaWNrIiwicHJldmVudERlZmF1bHQiLCJ0b2dnbGUiLCJwcmV2IiwidGhlbiIsImJ1dHRvbiIsIkxpc3RJdGVtQnV0dG9uIiwib25DbGljayIsInN4IiwicGwiLCJiYWNrZ3JvdW5kQ29sb3IiLCJsaWdodGVuIiwiYm9yZGVyUmFkaXVzIiwiY29sb3IiLCJmb250V2VpZ2h0IiwiTGlzdEl0ZW1JY29uIiwibWluV2lkdGgiLCJtciIsImp1c3RpZnlDb250ZW50IiwiTGlzdEl0ZW1UZXh0IiwicHJpbWFyeSIsImNvbmNhdCIsIm1hcmdpblRvcCIsIkZyYWdtZW50IiwiVG9vbHRpcCIsInRpdGxlIiwicGxhY2VtZW50IiwiYXJyb3ciLCJDb2xsYXBzZSIsImluIiwidGltZW91dCIsInVubW91bnRPbkV4aXQiLCJtdCIsIkxpc3QiLCJkaXNhYmxlUGFkZGluZyIsIm1lbnVMaW5rIiwiY29uZmlnIiwiY2xpY2tDYWxsYmFjayIsImRhc2hib2FyZExhdW5jaGVyIiwiYXV0b0NsaWNrIiwiZGVmYXVsdEl0ZW0iLCJ2aWV3SWQiLCJjb250ZW50IiwiaWNvbkNvbG9yIiwidGFiIiwicHgiLCJ1c2VFZmZlY3QiLCJjYW5jZWxsZWQiLCJtZXRob2QiLCJsb2dvIiwibG9nb0ltZyIsIm91dHRlckxpbmsiLCJjbG9zZVNpZGViYXIiLCJsb2dvU3R5bGUiLCJzcmMiLCJpbWdTcmMiLCJhbHQiLCJkYXRhIiwiaGVhZGluZyIsInBsYWluIiwiRGF0ZSIsImdldEZ1bGxZZWFyIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib25lT2YiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwicnRsQWN0aXZlIiwiYm9vbCIsImFycmF5Iiwib25lT2ZUeXBlIiwic2hhcGUiLCJpbm5lckxpbmsiLCJ0ZXh0Iiwib2JqZWN0IiwiZnVuYyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvY29tcG9uZW50cy9ibGFja0Rhc2hib2FyZC9zaWRlYmFyL0ZvbGRpbmdUYWJTaWRlYmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vLi4vLi4vLi4vVXRpbHMnO1xuaW1wb3J0IE1lbnVMaW5rIGZyb20gJy4uLy4uLy4uLy4uL21lbnUvTWVudUxpbmsnO1xuaW1wb3J0IHtDb2xsYXBzZSwgbGlnaHRlbiwgTGlzdCwgTGlzdEl0ZW1CdXR0b24sIExpc3RJdGVtSWNvbiwgTGlzdEl0ZW1UZXh0LCBUb29sdGlwfSBmcm9tICdAbXVpL21hdGVyaWFsJztcbmltcG9ydCB7aW52b2tlUmVzdH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vUmVzdFV0aWxzJztcbmltcG9ydCAnLi9Gb2xkaW5nVGFiU2lkZWJhci5jc3MnO1xuaW1wb3J0IENhcmRBdmF0YXIgZnJvbSBcIi4uLy4uLy4uLy4uL2NhcmQvQ2FyZEF2YXRhclwiO1xuaW1wb3J0IE1vcmVIb3Jpekljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Nb3JlSG9yaXonO1xuXG5jb25zdCBUQUIgPSAxNjtcblxuZnVuY3Rpb24gRm9sZGluZ1RhYlNpZGViYXIocHJvcHMpIHtcbiAgICBjb25zdCB7YWN0aXZlQ29sb3IsIG9wZW4sIGFwcExvZ29QYXRoLCBvbk9wZW5EcmF3ZXJ9ID0gcHJvcHM7XG4gICAgY29uc3QgW2NvbGxhcHNlU3RhdGVzLCBzZXRDb2xsYXBzZVN0YXRlc10gPSBSZWFjdC51c2VTdGF0ZShcbiAgICAgICAgZ2V0Q29sbGFwc2VTdGF0ZXMocHJvcHMucm91dGVzKVxuICAgICk7XG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcm91dGVzRGF0YSwgc2V0Um91dGVzRGF0YV0gPSBSZWFjdC51c2VTdGF0ZSh1bmRlZmluZWQpO1xuICAgIGNvbnN0IFthY3RpdmVSb3V0ZU1lbnUsIHNldEFjdGl2ZVJvdXRlTWVudV0gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgICAgIGlkOiAnZGFzaGJvYXJkJyxcbiAgICAgICAgbmFtZTogJ0Rhc2hib2FyZCdcbiAgICB9KTtcblxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tIGhlbHBlcnMgKHBvcnRlZCBmcm9tIGNsYXNzKSAtLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAgIGZ1bmN0aW9uIGdldFZpZXdzKG1lbnVzLCBsZXZlbCkge1xuICAgICAgICBjb25zdCBuZXdWaWV3cyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVWaWV3ID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IG1lbnVzW2ldLmF0dHJpYnV0ZXMubGFiZWwsXG4gICAgICAgICAgICAgICAgaWQ6IG1lbnVzW2ldLmlkLFxuICAgICAgICAgICAgICAgIG1pbmk6ICdTUycsXG4gICAgICAgICAgICAgICAgbGF5b3V0OiAnL2FkbWluJyxcbiAgICAgICAgICAgICAgICBsZXZlbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChtZW51c1tpXS5zdWJNZW51KSB7XG4gICAgICAgICAgICAgICAgY3JlYXRlVmlldy5jb2xsYXBzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY3JlYXRlVmlldy5zdGF0ZSA9IG1lbnVzW2ldLmlkICsgJ0NvbGxhcHNlJztcbiAgICAgICAgICAgICAgICBjcmVhdGVWaWV3LnZpZXdzID0gZ2V0SXRlbXMobWVudXNbaV0uc3ViTWVudS5pdGVtcywgbGV2ZWwgKyAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3JlYXRlVmlldy5pdGVtID0gbWVudXNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdWaWV3cy5wdXNoKGNyZWF0ZVZpZXcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdWaWV3cztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRJdGVtcyhpdGVtcywgbGV2ZWwpIHtcbiAgICAgICAgY29uc3QgbmV3SXRlbXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3JlYXRlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBpdGVtc1tpXS5hdHRyaWJ1dGVzLmxhYmVsLFxuICAgICAgICAgICAgICAgIGlkOiBpdGVtc1tpXS5pZCxcbiAgICAgICAgICAgICAgICBtaW5pOiAnU1MnLFxuICAgICAgICAgICAgICAgIGxheW91dDogJy9hZG1pbicsXG4gICAgICAgICAgICAgICAgaXRlbTogaXRlbXNbaV0sXG4gICAgICAgICAgICAgICAgbGV2ZWxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChpdGVtc1tpXS5zdWJNZW51KSkge1xuICAgICAgICAgICAgICAgIGNyZWF0ZUl0ZW0uY29sbGFwc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNyZWF0ZUl0ZW0uc3RhdGUgPSBpdGVtc1tpXS5pZCArICdTdWJNZW51Q29sbGFwc2UnO1xuICAgICAgICAgICAgICAgIGNyZWF0ZUl0ZW0udmlld3MgPSBnZXRJdGVtcyhpdGVtc1tpXS5zdWJNZW51Lml0ZW1zLCBsZXZlbCArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3SXRlbXMucHVzaChjcmVhdGVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3SXRlbXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Q29sbGFwc2VTdGF0ZXMocm91dGVzKSB7XG4gICAgICAgIGxldCBpbml0aWFsU3RhdGUgPSB7fTtcbiAgICAgICAgaWYgKHJvdXRlcykge1xuICAgICAgICAgICAgcm91dGVzLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcC5jb2xsYXBzZSkge1xuICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvcC5zdGF0ZV06IGdldENvbGxhcHNlSW5pdGlhbFN0YXRlKHByb3Audmlld3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZ2V0Q29sbGFwc2VTdGF0ZXMocHJvcC52aWV3cyksXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pbml0aWFsU3RhdGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5pdGlhbFN0YXRlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENvbGxhcHNlSW5pdGlhbFN0YXRlKHJvdXRlcykge1xuICAgICAgICBpZiAoIXJvdXRlcykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvdXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFyb3V0ZXNbaV0udmlld3MpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgaWYgKHJvdXRlc1tpXS5jb2xsYXBzZSAmJiBnZXRDb2xsYXBzZUluaXRpYWxTdGF0ZShyb3V0ZXNbaV0udmlld3MpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2Yocm91dGVzW2ldLnBhdGgpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRNZW51ID0gKHJvdXRlKSA9PlxuICAgICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VydmljZSA9IHtcbiAgICAgICAgICAgICAgICB1cmw6ICcvdWkvYXBpL3YxL21lbnUvZ2V0JyxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtuYW1lOiAnaWQnLCB2YWx1ZTogcm91dGUubWVudSwgaHR0cFBhcmFtZXRlclR5cGU6ICdRVUVSWV9QQVJBTUVURVInfSxcbiAgICAgICAgICAgICAgICAgICAge25hbWU6ICd2ZXJzaW9uJywgdmFsdWU6IDEuMCwgaHR0cFBhcmFtZXRlclR5cGU6ICdRVUVSWV9QQVJBTUVURVInfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaW52b2tlUmVzdChcbiAgICAgICAgICAgICAgICBzZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYXBpOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkYXNoYm9hcmQtc2lkZWJhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdkYXNoYm9hcmQtc2lkZWJhcicsXG4gICAgICAgICAgICAgICAgKHJlc3VsdCkgPT4gcmVzb2x2ZShnZXRWaWV3cyhyZXN1bHQubWVudXMsIHJvdXRlLmxldmVsICsgMSkpLFxuICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgIGNvbnN0IGFjdGl2ZVJvdXRlID0gKHJvdXRlTmFtZSkgPT4gYWN0aXZlUm91dGVNZW51LmlkID09PSByb3V0ZU5hbWU7XG4gICAgY29uc3QgZ2V0TGlDbGFzc05hbWUgPSAocHJvcCkgPT4gJ2xpLScgKyBwcm9wLmxldmVsO1xuXG4gICAgY29uc3QgZmFsbGJhY2tJY29uID0gKHByb3AsIGljb25Ob2RlKSA9PiB7XG4gICAgICAgIGlmIChwcm9wLmljb24pIHJldHVybiBpY29uTm9kZTtcblxuICAgICAgICBpZiAocHJvcC5sZXZlbCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDxNb3JlSG9yaXpJY29uIGZvbnRTaXplPVwic21hbGxcIi8+O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWluaS1hdmF0YXJcIiBzdHlsZT17e2ZvbnRTaXplOiAnMTBweCd9fT5cbiAgICAgICAgICAgICAgICB7cHJvcC5uYW1lPy5jaGFyQXQoMCkgKyAocHJvcC5uYW1lPy5jaGFyQXQoMSkgPz8gJycpICsgKHByb3AubmFtZT8uY2hhckF0KDIpID8/ICcnKSArICcuLi4nfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tIGNyZWF0ZUxpbmtzIHdpdGggZHluYW1pYyBjbGFzc2VzICsgdGhlbWUgY29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tICovXG4gICAgY29uc3QgY3JlYXRlTGlua3MgPSAocm91dGVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHtzZWNvbmRhcnlUaGVtZUNvbG9yLCBvcGVufSA9IHByb3BzO1xuXG4gICAgICAgIHJldHVybiByb3V0ZXMubWFwKChwcm9wLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wLnJlZGlyZWN0KSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgLy8gaWNvbjogdXNlIHByb3AuaWNvbjsgZmFsbGJhY2sgTWFpbEljb25cbiAgICAgICAgICAgIGxldCBpY29uTm9kZSA9IG51bGw7XG4gICAgICAgICAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQocHJvcC5pY29uKSkge1xuICAgICAgICAgICAgICAgIGljb25Ob2RlID0gcHJvcC5pY29uO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcC5pY29uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGljb25Ob2RlID0gPGkgY2xhc3NOYW1lPXtwcm9wLmljb259Lz47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGljb25Ob2RlID0gcHJvcC5sZXZlbCA9PT0gMCA/IDxpIGNsYXNzTmFtZT17J2ZhcyBmYS1zcXVhcmUnfS8+IDogbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVSb3V0ZShwcm9wLmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29sbGFwc2libGUgPVxuICAgICAgICAgICAgICAgIChwcm9wLmNvbGxhcHNlIHx8IHByb3AuaXNQYXJlbnQpICYmXG4gICAgICAgICAgICAgICAgcHJvcC5uYW1lICE9PSAnRGFzaGJvYXJkJyAmJlxuICAgICAgICAgICAgICAgIHByb3AubmFtZSAhPT0gJ015IFdvcmsgSXRlbXMnO1xuICAgICAgICAgICAgY29uc3QgaXNPcGVuID0gcHJvcC5zdGF0ZSA/ICEhY29sbGFwc2VTdGF0ZXNbcHJvcC5zdGF0ZV0gOiBmYWxzZTtcblxuICAgICAgICAgICAgLy8gcmVwbGljYXRlIGR5bmFtaWMgY2xhc3NOYW1lIGxvZ2ljIGZvciBjb2xsYXBzaWJsZSBlbnRyaWVzXG4gICAgICAgICAgICBjb25zdCBjb2xsYXBzaWJsZUNsYXNzTmFtZSA9IHByb3AuY29sbGFwc2VcbiAgICAgICAgICAgICAgICA/IChnZXRDb2xsYXBzZUluaXRpYWxTdGF0ZShwcm9wLnZpZXdzKVxuICAgICAgICAgICAgICAgICAgICA/ICdhY3RpdmUgJyArIGdldExpQ2xhc3NOYW1lKHByb3ApXG4gICAgICAgICAgICAgICAgICAgIDogZ2V0TGlDbGFzc05hbWUocHJvcCkpXG4gICAgICAgICAgICAgICAgOiBnZXRMaUNsYXNzTmFtZShwcm9wKTtcblxuICAgICAgICAgICAgLy8gbGVhZiBjbGFzc2VzIChpbmNsdWRlIGxpLWxldmVsKVxuICAgICAgICAgICAgY29uc3QgbGVhZkNsYXNzTmFtZSA9XG4gICAgICAgICAgICAgICAgZ2V0TGlDbGFzc05hbWUocHJvcCkgK1xuICAgICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgICAgKCdtZW51LWxpbmstbGknICtcbiAgICAgICAgICAgICAgICAgICAgKGlzQWN0aXZlID8gJy1hY3RpdmUnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgKHByb3AubmFtZSA9PT0gJ0Rhc2hib2FyZCcgPyAnIGRhc2hib2FyZC1saW5rJyA6ICcnKSk7XG5cbiAgICAgICAgICAgIC8vIGluZGVudCBiYXNlZCBvbiBsZXZlbCAoVEFCIHB4IC0+IHNwYWNpbmcgdW5pdHMpXG4gICAgICAgICAgICBjb25zdCBpbmRlbnQgPSAocHJvcC5sZXZlbCArIDEpICogKFRBQiAvIDgpO1xuXG4gICAgICAgICAgICBpZiAoaXNDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzVG9wTGV2ZWwgPSBwcm9wLmxldmVsID09PSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFNob3dUb29sdGlwID0gIW9wZW4gJiYgaXNUb3BMZXZlbDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIGRyYXdlciBpcyBjbG9zZWQgYW5kIHRoaXMgaXMgYSB0b3AtbGV2ZWwgaXRlbSwgYXNrIHBhcmVudCB0byBvcGVuIGl0XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3BlbiAmJiBpc1RvcExldmVsICYmIHR5cGVvZiBvbk9wZW5EcmF3ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uT3BlbkRyYXdlcigpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlID0gKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbGxhcHNlU3RhdGVzKChwcmV2KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3Auc3RhdGVdOiAhcHJldltwcm9wLnN0YXRlXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvcC52aWV3cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGF6eS1sb2FkIG1lbnUgb25jZVxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TWVudShwcm9wKS50aGVuKCh2aWV3cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWV3cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wLnZpZXdzID0gdmlld3M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uID0gKFxuICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y29sbGFwc2libGVDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGw6IGluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4oaXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGxpZ2h0ZW4oc2Vjb25kYXJ5VGhlbWVDb2xvciwgMC45KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNlY29uZGFyeVRoZW1lQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA1MDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2ljb25Ob2RlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1yOiBvcGVuID8gMiA6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ljb25Ob2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtvcGVuID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1UZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3AubmFtZX17JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcC5jb2xsYXBzZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGNhcmV0ICR7aXNPcGVuID8gJ2NhcmV0LW9wZW4nIDogJ2NhcmV0LWNsb3NlZCd9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e21hcmdpblRvcDogMH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaWNvbk5vZGUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0ljb24ocHJvcCwgaWNvbk5vZGUpIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9MaXN0SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17a2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93VG9vbHRpcCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Byb3AubmFtZX0gcGxhY2VtZW50PVwicmlnaHRcIiBhcnJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2J1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtidXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJvcC5jb2xsYXBzZSAmJiBwcm9wLnZpZXdzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29sbGFwc2UgaW49e2lzT3Blbn0gdGltZW91dD1cImF1dG9cIiB1bm1vdW50T25FeGl0IHN4PXt7IHBsOiAwLCBtdDogMCB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3QgZGlzYWJsZVBhZGRpbmcgY2xhc3NOYW1lPVwibmF2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3JlYXRlTGlua3MocHJvcC52aWV3cyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbGxhcHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgbWVudUxpbmsgPSA8TWVudUxpbmtcbiAgICAgICAgICAgICAgICBjb25maWc9e3Byb3AuaXRlbX1cbiAgICAgICAgICAgICAgICBjbGlja0NhbGxiYWNrPXtcbiAgICAgICAgICAgICAgICAgICAgcHJvcC5uYW1lID09PSAnRGFzaGJvYXJkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmRhc2hib2FyZExhdW5jaGVyICYmIHByb3BzLmRhc2hib2FyZExhdW5jaGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWN0aXZlUm91dGVNZW51KGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoaXRlbSkgPT4gc2V0QWN0aXZlUm91dGVNZW51KGl0ZW0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF1dG9DbGljaz17XG4gICAgICAgICAgICAgICAgICAgIHByb3AubmFtZSA9PT0gJ015IFdvcmsgSXRlbXMnIHx8XG4gICAgICAgICAgICAgICAgICAgIChwcm9wLml0ZW0gJiYgcHJvcC5pdGVtLmRlZmF1bHRJdGVtKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2aWV3SWQ9XCJtZW51QmFyXCJcbiAgICAgICAgICAgICAgICBpY29uPXtwcm9wLmljb259XG4gICAgICAgICAgICAgICAgY29udGVudD17b3BlbiA/IG51bGwgOiBmYWxsYmFja0ljb24ocHJvcCwgaWNvbk5vZGUpfVxuICAgICAgICAgICAgICAgIGljb25Db2xvcj17XG4gICAgICAgICAgICAgICAgICAgIChwcm9wLm5hbWUgPT09ICdEYXNoYm9hcmQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wLm5hbWUgPT09ICdNeSBXb3JrIEl0ZW1zJykgJiZcbiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcHJvcHMuc2Vjb25kYXJ5VGhlbWVDb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5hbWU9e3Byb3AubmFtZX1cbiAgICAgICAgICAgICAgICBpZD17cHJvcC5pZH1cbiAgICAgICAgICAgICAgICBsZXZlbD17cHJvcC5sZXZlbH1cbiAgICAgICAgICAgICAgICB0YWI9e1RBQn1cbiAgICAgICAgICAgIC8+O1xuXG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gKFxuICAgICAgICAgICAgICAgIDxMaXN0SXRlbUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsocHJvcC5uYW1lID09PSAnRGFzaGJvYXJkJyB8fCBwcm9wLm5hbWUgPT09ICdNeSBXb3JrIEl0ZW1zJykgPyAoaXNBY3RpdmUgPyAnZGFzaGJvYXJkLWxpbmstYWN0aXZlJyA6ICdkYXNoYm9hcmQtbGluaycpIDogbGVhZkNsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBvcGVuID8gJ2luaXRpYWwnIDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBweDogMi41LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGw6IGluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGxpZ2h0ZW4oc2Vjb25kYXJ5VGhlbWVDb2xvciwgMC45KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWNvbmRhcnlUaGVtZUNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA1MDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtpY29uTm9kZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1yOiBvcGVuID8gMiA6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wLm5hbWUgPT09ICdEYXNoYm9hcmQnIHx8IHByb3AubmFtZSA9PT0gJ015IFdvcmsgSXRlbXMnKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNlY29uZGFyeVRoZW1lQ29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdpbmhlcml0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ljb25Ob2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaXN0SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbiA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbVRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudUxpbmt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6ICFpY29uTm9kZSA/IDw+e21lbnVMaW5rfTwvPiA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW1CdXR0b24+XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBsZWFmXG4gICAgICAgICAgICByZXR1cm4gIW9wZW4gPyAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Byb3AubmFtZX0gcGxhY2VtZW50PVwicmlnaHRcIiBhcnJvdz5cbiAgICAgICAgICAgICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IGNvbnRlbnQ7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLSBsb2FkIGZpbHRlcmVkIG1lbnUgLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc2VydmljZSA9IHtcbiAgICAgICAgICAgIHVybDogJy91aS9hcGkvdjEvbWVudS9maWx0ZXInLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogW3t2YWx1ZTogcHJvcHMucm91dGVzLCBodHRwUGFyYW1ldGVyVHlwZTogJ1JFUVVFU1RfQk9EWSd9XSxcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICB9O1xuXG4gICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpO1xuXG4gICAgICAgIGludm9rZVJlc3QoXG4gICAgICAgICAgICBzZXJ2aWNlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFwaToge1xuICAgICAgICAgICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Rhc2hib2FyZC1zaWRlYmFyJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnZGFzaGJvYXJkLXNpZGViYXInLFxuICAgICAgICAgICAgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFJvdXRlc0RhdGEocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgIH0sIFtwcm9wcy5yb3V0ZXNdKTtcblxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tIHJlbmRlciAtLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAgIGNvbnN0IHtsb2dvfSA9IHByb3BzO1xuXG4gICAgbGV0IGxvZ29JbWcgPSBudWxsO1xuICAgIGlmICghVXRpbHMuaXNOdWxsKGxvZ28pKSB7XG4gICAgICAgIGxvZ29JbWcgPSAoXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9e2xvZ28ub3V0dGVyTGlua31cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzaWRlYmFyX19icmFuZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17cHJvcHMuY2xvc2VTaWRlYmFyfVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJIb21lXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17cHJvcHMubG9nb1N0eWxlfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtsb2dvLmltZ1NyY30gYWx0PVwibG9nb1wiIGNsYXNzTmFtZT1cInNpZGViYXJfX2JyYW5kLWltZ1wiLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoaXNMb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtM1wiPlxuICAgICAgICAgICAgICAgIDxlbT5Mb2FkaW5nIG1lbnXigKY8L2VtPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMyB0ZXh0LWRhbmdlclwiPlxuICAgICAgICAgICAgICAgIDxlbT5GYWlsZWQgdG8gbG9hZCBtZW51LjwvZW0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXJvdXRlc0RhdGEpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICBjbGFzc05hbWU9e2BzaWRlYmFyICR7IW9wZW4gPyAnc2lkZWJhci0tbWluaScgOiAnJ31gfVxuICAgICAgICAgICAgZGF0YT17YWN0aXZlQ29sb3J9XG4gICAgICAgID5cbiAgICAgICAgICAgIHsvKiBUT1A6IGJyYW5kIC8gbG9nbyAqL31cbiAgICAgICAgICAgIHtsb2dvSW1nICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX3RvcFwiPlxuICAgICAgICAgICAgICAgICAgICB7bG9nb0ltZ31cbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLmhlYWRpbmcgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyX19oZWFkaW5nXCI+e3Byb3BzLmhlYWRpbmd9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7LyogTUlERExFOiBzY3JvbGxhYmxlIG5hdiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhcl9fc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgPExpc3Qgc3g9e3sgbXQ6IDEgfX0gY2xhc3NOYW1lPVwibmF2XCI+XG4gICAgICAgICAgICAgICAgICAgIHtjcmVhdGVMaW5rcyhyb3V0ZXNEYXRhKX1cbiAgICAgICAgICAgICAgICA8L0xpc3Q+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIEJPVFRPTTogYXBwIGxvZ28gKyBjb3B5cmlnaHQgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX2JvdHRvbVwiPlxuICAgICAgICAgICAgICAgIHshVXRpbHMuaXNOdWxsKGFwcExvZ29QYXRoKSA/IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyX19hcHAtbG9nb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENhcmRBdmF0YXIgcGxhaW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2FwcExvZ29QYXRofSBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkQXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX2NvcHlyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICDCqSB7bmV3IERhdGUoKS5nZXRGdWxsWWVhcigpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXNpZGU+XG4gICAgKTtcbn1cblxuRm9sZGluZ1RhYlNpZGViYXIucHJvcFR5cGVzID0ge1xuICAgIGFjdGl2ZUNvbG9yOiBQcm9wVHlwZXMub25lT2YoWydwcmltYXJ5JywgJ2JsdWUnLCAnZ3JlZW4nLCAnb3JhbmdlJywgJ3JlZCcsICdhZ2lsaXR5J10pLFxuICAgIHNlY29uZGFyeVRoZW1lQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBydGxBY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICAgIHJvdXRlczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgbG9nbzogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICAgICAgICBpbm5lckxpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgICAgIGltZ1NyYzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICAgICAgdGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gICAgICAgIH0pLFxuICAgICAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICAgICAgb3V0dGVyTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICAgICAgaW1nU3JjOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgICAgICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgICAgICAgfSlcbiAgICBdKSxcbiAgICBoZWFkaW5nOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGFwcExvZ29QYXRoOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNsb3NlU2lkZWJhcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZGFzaGJvYXJkTGF1bmNoZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIGxvZ29TdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvcGVuOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbk9wZW5EcmF3ZXI6IFByb3BUeXBlcy5mdW5jICAgICAgLy8gPC0tLSBORVdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRpbmdUYWJTaWRlYmFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUEwRCxTQUFBRCx1QkFBQVMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBZixDQUFBLGFBQUFJLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdB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
|
|
435
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfVXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX01lbnVMaW5rIiwiX21hdGVyaWFsIiwiX1Jlc3RVdGlscyIsIl9DYXJkQXZhdGFyIiwiX01vcmVIb3JpeiIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJUQUIiLCJGb2xkaW5nVGFiU2lkZWJhciIsInByb3BzIiwiYWN0aXZlQ29sb3IiLCJvcGVuIiwiYXBwTG9nb1BhdGgiLCJvbk9wZW5EcmF3ZXIiLCJjb2xsYXBzZVN0YXRlcyIsInNldENvbGxhcHNlU3RhdGVzIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsImdldENvbGxhcHNlU3RhdGVzIiwicm91dGVzIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiZXJyb3IiLCJzZXRFcnJvciIsInJvdXRlc0RhdGEiLCJzZXRSb3V0ZXNEYXRhIiwidW5kZWZpbmVkIiwiYWN0aXZlUm91dGVNZW51Iiwic2V0QWN0aXZlUm91dGVNZW51IiwiaWQiLCJuYW1lIiwiZ2V0Vmlld3MiLCJtZW51cyIsImxldmVsIiwibmV3Vmlld3MiLCJjcmVhdGVWaWV3IiwiYXR0cmlidXRlcyIsImxhYmVsIiwibWluaSIsImxheW91dCIsInN1Yk1lbnUiLCJjb2xsYXBzZSIsInN0YXRlIiwidmlld3MiLCJnZXRJdGVtcyIsIml0ZW1zIiwiaXRlbSIsIm5ld0l0ZW1zIiwiY3JlYXRlSXRlbSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbFN0YXRlIiwicHJvcCIsImdldENvbGxhcHNlSW5pdGlhbFN0YXRlIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwiaW5kZXhPZiIsInBhdGgiLCJnZXRNZW51Iiwicm91dGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNlcnZpY2UiLCJ1cmwiLCJwYXJhbWV0ZXJzIiwibWVudSIsImh0dHBQYXJhbWV0ZXJUeXBlIiwiY29udGVudFR5cGUiLCJpbnZva2VSZXN0IiwiYXBpIiwicmVzdWx0IiwiY29uc29sZSIsImFjdGl2ZVJvdXRlIiwicm91dGVOYW1lIiwiZ2V0TGlDbGFzc05hbWUiLCJmYWxsYmFja0ljb24iLCJpY29uTm9kZSIsIl9wcm9wJG5hbWUiLCJfcHJvcCRuYW1lJGNoYXJBdCIsIl9wcm9wJG5hbWUyIiwiX3Byb3AkbmFtZSRjaGFyQXQyIiwiX3Byb3AkbmFtZTMiLCJpY29uIiwiY3JlYXRlRWxlbWVudCIsImZvbnRTaXplIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJjaGFyQXQiLCJjcmVhdGVMaW5rcyIsInNlY29uZGFyeVRoZW1lQ29sb3IiLCJtYXAiLCJrZXkiLCJyZWRpcmVjdCIsImlzVmFsaWRFbGVtZW50IiwiaXNBY3RpdmUiLCJpc0NvbGxhcHNpYmxlIiwiaXNQYXJlbnQiLCJpc09wZW4iLCJjb2xsYXBzaWJsZUNsYXNzTmFtZSIsImxlYWZDbGFzc05hbWUiLCJpbmRlbnQiLCJpc1RvcExldmVsIiwic2hvdWxkU2hvd1Rvb2x0aXAiLCJoYW5kbGVDbGljayIsInByZXZlbnREZWZhdWx0IiwidG9nZ2xlIiwicHJldiIsInRoZW4iLCJidXR0b24iLCJMaXN0SXRlbUJ1dHRvbiIsIm9uQ2xpY2siLCJzeCIsInBsIiwiYmFja2dyb3VuZENvbG9yIiwibGlnaHRlbiIsImJvcmRlclJhZGl1cyIsImNvbG9yIiwiZm9udFdlaWdodCIsIkxpc3RJdGVtSWNvbiIsIm1pbldpZHRoIiwibXIiLCJqdXN0aWZ5Q29udGVudCIsIkxpc3RJdGVtVGV4dCIsInByaW1hcnkiLCJjb25jYXQiLCJtYXJnaW5Ub3AiLCJGcmFnbWVudCIsIlRvb2x0aXAiLCJ0aXRsZSIsInBsYWNlbWVudCIsImFycm93IiwiQ29sbGFwc2UiLCJpbiIsInRpbWVvdXQiLCJ1bm1vdW50T25FeGl0IiwibXQiLCJMaXN0IiwiZGlzYWJsZVBhZGRpbmciLCJtZW51TGluayIsImNvbmZpZyIsImNsaWNrQ2FsbGJhY2siLCJkYXNoYm9hcmRMYXVuY2hlciIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzV2luZG93T3BlbiIsInVwZGF0ZUNvbnRleHQiLCJ3aW5kb3dEaXNwbGF5U3RhdGUiLCJhdXRvQ2xpY2siLCJkZWZhdWx0SXRlbSIsInZpZXdJZCIsImNvbnRlbnQiLCJpY29uQ29sb3IiLCJ0YWIiLCJweCIsInVzZUVmZmVjdCIsImNhbmNlbGxlZCIsIm1ldGhvZCIsImxvZ28iLCJsb2dvSW1nIiwib3V0dGVyTGluayIsImNsb3NlU2lkZWJhciIsImxvZ29TdHlsZSIsInNyYyIsImltZ1NyYyIsImFsdCIsImRhdGEiLCJoZWFkaW5nIiwicGxhaW4iLCJEYXRlIiwiZ2V0RnVsbFllYXIiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvbmVPZiIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJydGxBY3RpdmUiLCJib29sIiwiYXJyYXkiLCJvbmVPZlR5cGUiLCJzaGFwZSIsImlubmVyTGluayIsInRleHQiLCJvYmplY3QiLCJmdW5jIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb21wb25lbnRzL2JsYWNrRGFzaGJvYXJkL3NpZGViYXIvRm9sZGluZ1RhYlNpZGViYXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi8uLi8uLi8uLi9VdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgTWVudUxpbmsgZnJvbSAnLi4vLi4vLi4vLi4vbWVudS9NZW51TGluayc7XG5pbXBvcnQge0NvbGxhcHNlLCBsaWdodGVuLCBMaXN0LCBMaXN0SXRlbUJ1dHRvbiwgTGlzdEl0ZW1JY29uLCBMaXN0SXRlbVRleHQsIFRvb2x0aXB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuaW1wb3J0IHtpbnZva2VSZXN0fSBmcm9tICcuLi8uLi8uLi8uLi8uLi9SZXN0VXRpbHMnO1xuaW1wb3J0ICcuL0ZvbGRpbmdUYWJTaWRlYmFyLmNzcyc7XG5pbXBvcnQgQ2FyZEF2YXRhciBmcm9tIFwiLi4vLi4vLi4vLi4vY2FyZC9DYXJkQXZhdGFyXCI7XG5pbXBvcnQgTW9yZUhvcml6SWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL01vcmVIb3Jpeic7XG5cbmNvbnN0IFRBQiA9IDE2O1xuXG5mdW5jdGlvbiBGb2xkaW5nVGFiU2lkZWJhcihwcm9wcykge1xuICAgIGNvbnN0IHthY3RpdmVDb2xvciwgb3BlbiwgYXBwTG9nb1BhdGgsIG9uT3BlbkRyYXdlcn0gPSBwcm9wcztcbiAgICBjb25zdCBbY29sbGFwc2VTdGF0ZXMsIHNldENvbGxhcHNlU3RhdGVzXSA9IFJlYWN0LnVzZVN0YXRlKFxuICAgICAgICBnZXRDb2xsYXBzZVN0YXRlcyhwcm9wcy5yb3V0ZXMpXG4gICAgKTtcbiAgICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtyb3V0ZXNEYXRhLCBzZXRSb3V0ZXNEYXRhXSA9IFJlYWN0LnVzZVN0YXRlKHVuZGVmaW5lZCk7XG4gICAgY29uc3QgW2FjdGl2ZVJvdXRlTWVudSwgc2V0QWN0aXZlUm91dGVNZW51XSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICAgICAgaWQ6ICdkYXNoYm9hcmQnLFxuICAgICAgICBuYW1lOiAnRGFzaGJvYXJkJ1xuICAgIH0pO1xuXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0gaGVscGVycyAocG9ydGVkIGZyb20gY2xhc3MpIC0tLS0tLS0tLS0tLS0tLS0tICovXG4gICAgZnVuY3Rpb24gZ2V0Vmlld3MobWVudXMsIGxldmVsKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZpZXdzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVZpZXcgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogbWVudXNbaV0uYXR0cmlidXRlcy5sYWJlbCxcbiAgICAgICAgICAgICAgICBpZDogbWVudXNbaV0uaWQsXG4gICAgICAgICAgICAgICAgbWluaTogJ1NTJyxcbiAgICAgICAgICAgICAgICBsYXlvdXQ6ICcvYWRtaW4nLFxuICAgICAgICAgICAgICAgIGxldmVsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1lbnVzW2ldLnN1Yk1lbnUpIHtcbiAgICAgICAgICAgICAgICBjcmVhdGVWaWV3LmNvbGxhcHNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjcmVhdGVWaWV3LnN0YXRlID0gbWVudXNbaV0uaWQgKyAnQ29sbGFwc2UnO1xuICAgICAgICAgICAgICAgIGNyZWF0ZVZpZXcudmlld3MgPSBnZXRJdGVtcyhtZW51c1tpXS5zdWJNZW51Lml0ZW1zLCBsZXZlbCArIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjcmVhdGVWaWV3Lml0ZW0gPSBtZW51c1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld1ZpZXdzLnB1c2goY3JlYXRlVmlldyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld1ZpZXdzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEl0ZW1zKGl0ZW1zLCBsZXZlbCkge1xuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVJdGVtID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW1zW2ldLmF0dHJpYnV0ZXMubGFiZWwsXG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW1zW2ldLmlkLFxuICAgICAgICAgICAgICAgIG1pbmk6ICdTUycsXG4gICAgICAgICAgICAgICAgbGF5b3V0OiAnL2FkbWluJyxcbiAgICAgICAgICAgICAgICBpdGVtOiBpdGVtc1tpXSxcbiAgICAgICAgICAgICAgICBsZXZlbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGl0ZW1zW2ldLnN1Yk1lbnUpKSB7XG4gICAgICAgICAgICAgICAgY3JlYXRlSXRlbS5jb2xsYXBzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY3JlYXRlSXRlbS5zdGF0ZSA9IGl0ZW1zW2ldLmlkICsgJ1N1Yk1lbnVDb2xsYXBzZSc7XG4gICAgICAgICAgICAgICAgY3JlYXRlSXRlbS52aWV3cyA9IGdldEl0ZW1zKGl0ZW1zW2ldLnN1Yk1lbnUuaXRlbXMsIGxldmVsICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdJdGVtcy5wdXNoKGNyZWF0ZUl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdJdGVtcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRDb2xsYXBzZVN0YXRlcyhyb3V0ZXMpIHtcbiAgICAgICAgbGV0IGluaXRpYWxTdGF0ZSA9IHt9O1xuICAgICAgICBpZiAocm91dGVzKSB7XG4gICAgICAgICAgICByb3V0ZXMuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wLmNvbGxhcHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wLnN0YXRlXTogZ2V0Q29sbGFwc2VJbml0aWFsU3RhdGUocHJvcC52aWV3cyksXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5nZXRDb2xsYXBzZVN0YXRlcyhwcm9wLnZpZXdzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmluaXRpYWxTdGF0ZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Q29sbGFwc2VJbml0aWFsU3RhdGUocm91dGVzKSB7XG4gICAgICAgIGlmICghcm91dGVzKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm91dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXJvdXRlc1tpXS52aWV3cykgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICBpZiAocm91dGVzW2ldLmNvbGxhcHNlICYmIGdldENvbGxhcHNlSW5pdGlhbFN0YXRlKHJvdXRlc1tpXS52aWV3cykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZihyb3V0ZXNbaV0ucGF0aCkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGdldE1lbnUgPSAocm91dGUpID0+XG4gICAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2aWNlID0ge1xuICAgICAgICAgICAgICAgIHVybDogJy91aS9hcGkvdjEvbWVudS9nZXQnLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge25hbWU6ICdpZCcsIHZhbHVlOiByb3V0ZS5tZW51LCBodHRwUGFyYW1ldGVyVHlwZTogJ1FVRVJZX1BBUkFNRVRFUid9LFxuICAgICAgICAgICAgICAgICAgICB7bmFtZTogJ3ZlcnNpb24nLCB2YWx1ZTogMS4wLCBodHRwUGFyYW1ldGVyVHlwZTogJ1FVRVJZX1BBUkFNRVRFUid9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpbnZva2VSZXN0KFxuICAgICAgICAgICAgICAgIHNlcnZpY2UsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBhcGk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Rhc2hib2FyZC1zaWRlYmFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2Rhc2hib2FyZC1zaWRlYmFyJyxcbiAgICAgICAgICAgICAgICAocmVzdWx0KSA9PiByZXNvbHZlKGdldFZpZXdzKHJlc3VsdC5tZW51cywgcm91dGUubGV2ZWwgKyAxKSksXG4gICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgY29uc3QgYWN0aXZlUm91dGUgPSAocm91dGVOYW1lKSA9PiBhY3RpdmVSb3V0ZU1lbnUuaWQgPT09IHJvdXRlTmFtZTtcbiAgICBjb25zdCBnZXRMaUNsYXNzTmFtZSA9IChwcm9wKSA9PiAnbGktJyArIHByb3AubGV2ZWw7XG5cbiAgICBjb25zdCBmYWxsYmFja0ljb24gPSAocHJvcCwgaWNvbk5vZGUpID0+IHtcbiAgICAgICAgaWYgKHByb3AuaWNvbikgcmV0dXJuIGljb25Ob2RlO1xuXG4gICAgICAgIGlmIChwcm9wLmxldmVsID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gPE1vcmVIb3Jpekljb24gZm9udFNpemU9XCJzbWFsbFwiLz47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW5pLWF2YXRhclwiIHN0eWxlPXt7Zm9udFNpemU6ICcxMHB4J319PlxuICAgICAgICAgICAgICAgIHtwcm9wLm5hbWU/LmNoYXJBdCgwKSArIChwcm9wLm5hbWU/LmNoYXJBdCgxKSA/PyAnJykgKyAocHJvcC5uYW1lPy5jaGFyQXQoMikgPz8gJycpICsgJy4uLid9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0gY3JlYXRlTGlua3Mgd2l0aCBkeW5hbWljIGNsYXNzZXMgKyB0aGVtZSBjb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICBjb25zdCBjcmVhdGVMaW5rcyA9IChyb3V0ZXMpID0+IHtcbiAgICAgICAgY29uc3Qge3NlY29uZGFyeVRoZW1lQ29sb3IsIG9wZW59ID0gcHJvcHM7XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlcy5tYXAoKHByb3AsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3AucmVkaXJlY3QpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAvLyBpY29uOiB1c2UgcHJvcC5pY29uOyBmYWxsYmFjayBNYWlsSWNvblxuICAgICAgICAgICAgbGV0IGljb25Ob2RlID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChwcm9wLmljb24pKSB7XG4gICAgICAgICAgICAgICAgaWNvbk5vZGUgPSBwcm9wLmljb247XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wLmljb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWNvbk5vZGUgPSA8aSBjbGFzc05hbWU9e3Byb3AuaWNvbn0vPjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWNvbk5vZGUgPSBwcm9wLmxldmVsID09PSAwID8gPGkgY2xhc3NOYW1lPXsnZmFzIGZhLXNxdWFyZSd9Lz4gOiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGFjdGl2ZVJvdXRlKHByb3AuaWQpO1xuICAgICAgICAgICAgY29uc3QgaXNDb2xsYXBzaWJsZSA9XG4gICAgICAgICAgICAgICAgKHByb3AuY29sbGFwc2UgfHwgcHJvcC5pc1BhcmVudCkgJiZcbiAgICAgICAgICAgICAgICBwcm9wLm5hbWUgIT09ICdEYXNoYm9hcmQnICYmXG4gICAgICAgICAgICAgICAgcHJvcC5uYW1lICE9PSAnTXkgV29yayBJdGVtcyc7XG4gICAgICAgICAgICBjb25zdCBpc09wZW4gPSBwcm9wLnN0YXRlID8gISFjb2xsYXBzZVN0YXRlc1twcm9wLnN0YXRlXSA6IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyByZXBsaWNhdGUgZHluYW1pYyBjbGFzc05hbWUgbG9naWMgZm9yIGNvbGxhcHNpYmxlIGVudHJpZXNcbiAgICAgICAgICAgIGNvbnN0IGNvbGxhcHNpYmxlQ2xhc3NOYW1lID0gcHJvcC5jb2xsYXBzZVxuICAgICAgICAgICAgICAgID8gKGdldENvbGxhcHNlSW5pdGlhbFN0YXRlKHByb3Audmlld3MpXG4gICAgICAgICAgICAgICAgICAgID8gJ2FjdGl2ZSAnICsgZ2V0TGlDbGFzc05hbWUocHJvcClcbiAgICAgICAgICAgICAgICAgICAgOiBnZXRMaUNsYXNzTmFtZShwcm9wKSlcbiAgICAgICAgICAgICAgICA6IGdldExpQ2xhc3NOYW1lKHByb3ApO1xuXG4gICAgICAgICAgICAvLyBsZWFmIGNsYXNzZXMgKGluY2x1ZGUgbGktbGV2ZWwpXG4gICAgICAgICAgICBjb25zdCBsZWFmQ2xhc3NOYW1lID1cbiAgICAgICAgICAgICAgICBnZXRMaUNsYXNzTmFtZShwcm9wKSArXG4gICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAoJ21lbnUtbGluay1saScgK1xuICAgICAgICAgICAgICAgICAgICAoaXNBY3RpdmUgPyAnLWFjdGl2ZScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgICAocHJvcC5uYW1lID09PSAnRGFzaGJvYXJkJyA/ICcgZGFzaGJvYXJkLWxpbmsnIDogJycpKTtcblxuICAgICAgICAgICAgLy8gaW5kZW50IGJhc2VkIG9uIGxldmVsIChUQUIgcHggLT4gc3BhY2luZyB1bml0cylcbiAgICAgICAgICAgIGNvbnN0IGluZGVudCA9IChwcm9wLmxldmVsICsgMSkgKiAoVEFCIC8gOCk7XG5cbiAgICAgICAgICAgIGlmIChpc0NvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNUb3BMZXZlbCA9IHByb3AubGV2ZWwgPT09IDA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2hvd1Rvb2x0aXAgPSAhb3BlbiAmJiBpc1RvcExldmVsO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZHJhd2VyIGlzIGNsb3NlZCBhbmQgdGhpcyBpcyBhIHRvcC1sZXZlbCBpdGVtLCBhc2sgcGFyZW50IHRvIG9wZW4gaXRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcGVuICYmIGlzVG9wTGV2ZWwgJiYgdHlwZW9mIG9uT3BlbkRyYXdlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25PcGVuRHJhd2VyKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGUgPSAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29sbGFwc2VTdGF0ZXMoKHByZXYpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcC5zdGF0ZV06ICFwcmV2W3Byb3Auc3RhdGVdXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9wLnZpZXdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsYXp5LWxvYWQgbWVudSBvbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRNZW51KHByb3ApLnRoZW4oKHZpZXdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3Audmlld3MgPSB2aWV3cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBidXR0b24gPSAoXG4gICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjb2xsYXBzaWJsZUNsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbDogaW5kZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbGlnaHRlbihzZWNvbmRhcnlUaGVtZUNvbG9yLCAwLjkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogc2Vjb25kYXJ5VGhlbWVDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDUwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aWNvbk5vZGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXI6IG9wZW4gPyAyIDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWNvbk5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaXN0SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAge29wZW4gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbVRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnk9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcC5uYW1lfXsnICd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wLmNvbGxhcHNlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgY2FyZXQgJHtpc09wZW4gPyAnY2FyZXQtb3BlbicgOiAnY2FyZXQtY2xvc2VkJ31gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luVG9wOiAwfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpY29uTm9kZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrSWNvbihwcm9wLCBpY29uTm9kZSkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtrZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAge3Nob3VsZFNob3dUb29sdGlwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17cHJvcC5uYW1lfSBwbGFjZW1lbnQ9XCJyaWdodFwiIGFycm93PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2J1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wLmNvbGxhcHNlICYmIHByb3Audmlld3MgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb2xsYXBzZSBpbj17aXNPcGVufSB0aW1lb3V0PVwiYXV0b1wiIHVubW91bnRPbkV4aXQgc3g9e3sgcGw6IDAsIG10OiAwIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlzdCBkaXNhYmxlUGFkZGluZyBjbGFzc05hbWU9XCJuYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjcmVhdGVMaW5rcyhwcm9wLnZpZXdzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaXN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29sbGFwc2U+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBtZW51TGluayA9IDxNZW51TGlua1xuICAgICAgICAgICAgICAgIGNvbmZpZz17cHJvcC5pdGVtfVxuICAgICAgICAgICAgICAgIGNsaWNrQ2FsbGJhY2s9e1xuICAgICAgICAgICAgICAgICAgICBwcm9wLm5hbWUgPT09ICdEYXNoYm9hcmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZGFzaGJvYXJkTGF1bmNoZXIgJiYgcHJvcHMuZGFzaGJvYXJkTGF1bmNoZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBY3RpdmVSb3V0ZU1lbnUoaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTXVsdGktdmlld3BvcnQ6IGRvY2sgKHBpbikgYW55IG9wZW4gd2luZG93IG92ZXJsYXkgc28gaXQgc3RheXMgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsb25nc2lkZSB0aGUgbmV3bHktbmF2aWdhdGVkIG1haW4gdmlldyBpbnN0ZWFkIG9mIG92ZXJsYXlpbmcgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc1dpbmRvd09wZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIudXBkYXRlQ29udGV4dCh7d2luZG93RGlzcGxheVN0YXRlOiAnUElOTkVEJ30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDogKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBY3RpdmVSb3V0ZU1lbnUoaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTXVsdGktdmlld3BvcnQ6IGRvY2sgKHBpbikgYW55IG9wZW4gd2luZG93IG92ZXJsYXkgKHNlZSBhYm92ZSkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc1dpbmRvd09wZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIudXBkYXRlQ29udGV4dCh7d2luZG93RGlzcGxheVN0YXRlOiAnUElOTkVEJ30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXV0b0NsaWNrPXtcbiAgICAgICAgICAgICAgICAgICAgcHJvcC5uYW1lID09PSAnTXkgV29yayBJdGVtcycgfHxcbiAgICAgICAgICAgICAgICAgICAgKHByb3AuaXRlbSAmJiBwcm9wLml0ZW0uZGVmYXVsdEl0ZW0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZpZXdJZD1cIm1lbnVCYXJcIlxuICAgICAgICAgICAgICAgIGljb249e3Byb3AuaWNvbn1cbiAgICAgICAgICAgICAgICBjb250ZW50PXtvcGVuID8gbnVsbCA6IGZhbGxiYWNrSWNvbihwcm9wLCBpY29uTm9kZSl9XG4gICAgICAgICAgICAgICAgaWNvbkNvbG9yPXtcbiAgICAgICAgICAgICAgICAgICAgKHByb3AubmFtZSA9PT0gJ0Rhc2hib2FyZCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3AubmFtZSA9PT0gJ015IFdvcmsgSXRlbXMnKSAmJlxuICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwcm9wcy5zZWNvbmRhcnlUaGVtZUNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmFtZT17cHJvcC5uYW1lfVxuICAgICAgICAgICAgICAgIGlkPXtwcm9wLmlkfVxuICAgICAgICAgICAgICAgIGxldmVsPXtwcm9wLmxldmVsfVxuICAgICAgICAgICAgICAgIHRhYj17VEFCfVxuICAgICAgICAgICAgLz47XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgICAgICAgICAgICAgPExpc3RJdGVtQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9eyhwcm9wLm5hbWUgPT09ICdEYXNoYm9hcmQnIHx8IHByb3AubmFtZSA9PT0gJ015IFdvcmsgSXRlbXMnKSA/IChpc0FjdGl2ZSA/ICdkYXNoYm9hcmQtbGluay1hY3RpdmUnIDogJ2Rhc2hib2FyZC1saW5rJykgOiBsZWFmQ2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IG9wZW4gPyAnaW5pdGlhbCcgOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB4OiAyLjUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbDogaW5kZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbGlnaHRlbihzZWNvbmRhcnlUaGVtZUNvbG9yLCAwLjkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNlY29uZGFyeVRoZW1lQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDUwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2ljb25Ob2RlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXI6IG9wZW4gPyAyIDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3AubmFtZSA9PT0gJ0Rhc2hib2FyZCcgfHwgcHJvcC5uYW1lID09PSAnTXkgV29yayBJdGVtcycpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2Vjb25kYXJ5VGhlbWVDb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2luaGVyaXQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWNvbk5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnk9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51TGlua31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogIWljb25Ob2RlID8gPD57bWVudUxpbmt9PC8+IDogbnVsbFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9MaXN0SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIGxlYWZcbiAgICAgICAgICAgIHJldHVybiAhb3BlbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17cHJvcC5uYW1lfSBwbGFjZW1lbnQ9XCJyaWdodFwiIGFycm93PlxuICAgICAgICAgICAgICAgICAgICB7Y29udGVudH1cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogY29udGVudDtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tIGxvYWQgZmlsdGVyZWQgbWVudSAtLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBzZXJ2aWNlID0ge1xuICAgICAgICAgICAgdXJsOiAnL3VpL2FwaS92MS9tZW51L2ZpbHRlcicsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBbe3ZhbHVlOiBwcm9wcy5yb3V0ZXMsIGh0dHBQYXJhbWV0ZXJUeXBlOiAnUkVRVUVTVF9CT0RZJ31dLFxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIH07XG5cbiAgICAgICAgc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihmYWxzZSk7XG5cbiAgICAgICAgaW52b2tlUmVzdChcbiAgICAgICAgICAgIHNlcnZpY2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYXBpOiB7XG4gICAgICAgICAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGFzaGJvYXJkLXNpZGViYXInO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdkYXNoYm9hcmQtc2lkZWJhcicsXG4gICAgICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0Um91dGVzRGF0YShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIHNldEVycm9yKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgIH07XG4gICAgfSwgW3Byb3BzLnJvdXRlc10pO1xuXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0gcmVuZGVyIC0tLS0tLS0tLS0tLS0tLS0tICovXG4gICAgY29uc3Qge2xvZ299ID0gcHJvcHM7XG5cbiAgICBsZXQgbG9nb0ltZyA9IG51bGw7XG4gICAgaWYgKCFVdGlscy5pc051bGwobG9nbykpIHtcbiAgICAgICAgbG9nb0ltZyA9IChcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj17bG9nby5vdXR0ZXJMaW5rfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpZGViYXJfX2JyYW5kXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5jbG9zZVNpZGViYXJ9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkhvbWVcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXtwcm9wcy5sb2dvU3R5bGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZyBzcmM9e2xvZ28uaW1nU3JjfSBhbHQ9XCJsb2dvXCIgY2xhc3NOYW1lPVwic2lkZWJhcl9fYnJhbmQtaW1nXCIvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChpc0xvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zXCI+XG4gICAgICAgICAgICAgICAgPGVtPkxvYWRpbmcgbWVudeKApjwvZW0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIHRleHQtZGFuZ2VyXCI+XG4gICAgICAgICAgICAgICAgPGVtPkZhaWxlZCB0byBsb2FkIG1lbnUuPC9lbT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmICghcm91dGVzRGF0YSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8YXNpZGVcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YHNpZGViYXIgJHshb3BlbiA/ICdzaWRlYmFyLS1taW5pJyA6ICcnfWB9XG4gICAgICAgICAgICBkYXRhPXthY3RpdmVDb2xvcn1cbiAgICAgICAgPlxuICAgICAgICAgICAgey8qIFRPUDogYnJhbmQgLyBsb2dvICovfVxuICAgICAgICAgICAge2xvZ29JbWcgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhcl9fdG9wXCI+XG4gICAgICAgICAgICAgICAgICAgIHtsb2dvSW1nfVxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuaGVhZGluZyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX2hlYWRpbmdcIj57cHJvcHMuaGVhZGluZ308L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHsvKiBNSURETEU6IHNjcm9sbGFibGUgbmF2ICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyX19zY3JvbGxcIj5cbiAgICAgICAgICAgICAgICA8TGlzdCBzeD17eyBtdDogMSB9fSBjbGFzc05hbWU9XCJuYXZcIj5cbiAgICAgICAgICAgICAgICAgICAge2NyZWF0ZUxpbmtzKHJvdXRlc0RhdGEpfVxuICAgICAgICAgICAgICAgIDwvTGlzdD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogQk9UVE9NOiBhcHAgbG9nbyArIGNvcHlyaWdodCAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhcl9fYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgeyFVdGlscy5pc051bGwoYXBwTG9nb1BhdGgpID8gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX2FwcC1sb2dvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZEF2YXRhciBwbGFpbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17YXBwTG9nb1BhdGh9IGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmRBdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhcl9fY29weXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIMKpIHtuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hc2lkZT5cbiAgICApO1xufVxuXG5Gb2xkaW5nVGFiU2lkZWJhci5wcm9wVHlwZXMgPSB7XG4gICAgYWN0aXZlQ29sb3I6IFByb3BUeXBlcy5vbmVPZihbJ3ByaW1hcnknLCAnYmx1ZScsICdncmVlbicsICdvcmFuZ2UnLCAncmVkJywgJ2FnaWxpdHknXSksXG4gICAgc2Vjb25kYXJ5VGhlbWVDb2xvcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHJ0bEFjdGl2ZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgcm91dGVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICBsb2dvOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgICAgIGlubmVyTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICAgICAgaW1nU3JjOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgICAgICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgICAgICAgfSksXG4gICAgICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICAgICAgICBvdXR0ZXJMaW5rOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgICAgICBpbWdTcmM6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgICAgIHRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxuICAgICAgICB9KVxuICAgIF0pLFxuICAgIGhlYWRpbmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYXBwTG9nb1BhdGg6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2xvc2VTaWRlYmFyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBkYXNoYm9hcmRMYXVuY2hlcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbG9nb1N0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG9wZW46IFByb3BUeXBlcy5ib29sLFxuICAgIG9uT3BlbkRyYXdlcjogUHJvcFR5cGVzLmZ1bmMgICAgICAvLyA8LS0tIE5FV1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGluZ1RhYlNpZGViYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLG1CQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUEwRCxTQUFBRCx1QkFBQVUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBZixDQUFBLGFBQUFJLENB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
|