@kando-env/kando-ui 1.2.256-alpha.2 → 1.2.256-alpha.21

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.
Files changed (34) hide show
  1. package/lib/Router.js +5 -1
  2. package/lib/Widgets/Map/Map.js +3 -3
  3. package/lib/Widgets/Map/areas/AreaPolygon.js +10 -41
  4. package/lib/Widgets/Map/areas/AreaUtils.js +140 -0
  5. package/lib/Widgets/Map/events/EventPath.js +4 -2
  6. package/lib/Widgets/Map/points/PointMarkers.js +57 -1
  7. package/lib/Widgets/Map/points/PointUtils.js +2 -2
  8. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +5 -5
  9. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  10. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +2 -2
  11. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  12. package/lib/Widgets/MostPolluting/MostPolluting.js +17 -8
  13. package/lib/Widgets/UtilityInformation/UtilityInformation.js +9 -15
  14. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +8 -2
  15. package/lib/i18n/en.json +7 -1
  16. package/lib/i18n/he.json +4 -0
  17. package/lib/macros/getVersion.js +2 -2
  18. package/lib/pages/AreaPage/AreaPage.js +9 -5
  19. package/lib/pages/EventsPage/events/event_info/EventInfo.js +1 -2
  20. package/lib/pages/EventsPage/events/events_list/EventsList.js +3 -3
  21. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +1 -2
  22. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  23. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +7 -7
  24. package/lib/pages/SitePage/SitePage.js +4 -6
  25. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +11 -23
  26. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +23 -6
  27. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +17 -0
  28. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +15 -6
  29. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +67 -0
  30. package/lib/pages/WbeDashboard/WbeDashboardPage.js +15 -10
  31. package/lib/store/areas/models/IArea.js +1 -1
  32. package/lib/store/permissions/permissionsSlice.js +1 -3
  33. package/lib/utilities/urls.js +27 -1
  34. package/package.json +3 -2
@@ -276,10 +276,10 @@ var EventsList = function EventsList(_ref) {
276
276
  dispatch((0, _actions.fetchEvents)(waterAuthorityId, getKQLValuesFromURL() || 'DEFAULT', getEventIdFromURL()));
277
277
  }, [global_data.waterAuthorityId, global_data.eventFilterParam, focusedEvent]);
278
278
  (0, _react.useEffect)(function () {
279
- if (!events_data.isFetching && !edges_data.isFetching && !points_data.isFetching && !areas_data.isFetching && filterPopupOpen) {
279
+ if (!events_data.isFetching && !edges_data.isFetching && !points_data.isFetching && !areas_data.isFetching && areas_data.newAreas.length !== 0 && points_data.items.length !== 0 && filterPopupOpen) {
280
280
  setFocusedEventIfFoundInParams();
281
281
  }
282
- }, [events_data.isFetching, edges_data.isFetching, points_data.isFetching, areas_data.isFetching, global_data.eventFilterParam, filterPopupOpen]);
282
+ }, [events_data.isFetching, edges_data.isFetching, points_data.isFetching, points_data.items.length, areas_data.items.length, areas_data.isFetching, global_data.eventFilterParam, filterPopupOpen]);
283
283
  return /*#__PURE__*/_react.default.createElement("div", {
284
284
  className: 'sidenav ' + (sidenavExpanded ? '' : 'sidenav--collapsed')
285
285
  }, global_data.moreInfo !== undefined && global_data.moreInfo.active && /*#__PURE__*/_react.default.createElement(_MoreInfo.default, null), /*#__PURE__*/_react.default.createElement("div", {
@@ -372,4 +372,4 @@ var EventsList = function EventsList(_ref) {
372
372
  var connector = (0, _reactRedux.connect)(mapStateToProps);
373
373
  var _default = connector(EventsList);
374
374
  exports.default = _default;
375
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJyZXF1aXJlIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9yZWFjdFJlZHV4IiwiX3JlYWN0Um91dGVyRG9tIiwiX2Fycm93TGVmdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZnVubmVsIiwiX25vX2V2ZW50cyIsIl9TZXZlcmVFdmVudCIsIl9VcmxIaXN0b3J5IiwiX2FjdGlvbnMiLCJfYWN0aW9uczIiLCJfaTE4biIsIl9rcWwiLCJfRXZlbnRJbmZvIiwiX01vcmVJbmZvIiwiX0ZpbHRlckNvbnRhaW5lciIsIl9Tb3J0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJfcmVmIiwic2lkZW5hdkV4cGFuZGVkIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIndhdGVyQXV0aG9yaXR5SWQiLCJtYXAiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWx0ZXJQb3B1cE9wZW4iLCJzZXRGaWx0ZXJQb3B1cE9wZW4iLCJfdXNlU3RhdGUzIiwibWVzc2FnZXMiLCJtZXNzYWdlIiwiZXZlbnRfaWQiLCJldmVudF9pZHMiLCJfdXNlU3RhdGU0IiwiZXhjZXB0aW9uQWxlcnQiLCJzZXRFeGNlcHRpb25BbGVydCIsImxhc3RWaXNpdGVkIiwidXNlTGFzdFZpc2l0ZWQiLCJ1c2VRdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsInVzZUxvY2F0aW9uIiwic2VhcmNoIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJxdWVyeSIsImdldEtRTFZhbHVlc0Zyb21VUkwiLCJnZXRFdmVudElkRnJvbVVSTCIsImxvYWRlciIsImxlbmd0aCIsIm5ld0FyZWFzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImhhbmRsZUV4cGFuc2lvblRvZ2dsZSIsInNpZGVOYXZFeHBhbmRlZCIsImFwcGx5RGVmYXVsdEZpbHRlciIsInB1c2giLCJjb25jYXQiLCJuYXZDb250ZXh0IiwibmFtZSIsImxvY2FsZSIsInNldEV2ZW50RmlsdGVyUGFyYW0iLCJ2YWxpZGF0ZUV2ZW50IiwiZXZlbnQiLCJpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMiLCJvYnNlcnZhdGlvbnMiLCJmb3JFYWNoIiwib2JzZXJ2YXRpb24iLCJwb2ludF9pc19yb290IiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsInBvaW50X25hbWUiLCJpbmRleCIsImZpbmRJbmRleCIsIm1zZyIsImlkIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIkZyYWdtZW50IiwiaTE4biIsInQiLCJpbnZhbGlkUGF0aE1lc3NhZ2VzIiwicGF0aCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50Iiwic2V0Rm9jdXNlZEV2ZW50Iiwic2V0VGltZW91dCIsImV2ZW50RmlsdGVyUGFyYW0iLCJvbk1vdXNlRW50ZXJFdmVudCIsInNldEhvdmVyZWRFdmVudCIsInJlbW92ZUxheWVyIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwiaW5jbHVkZXMiLCJzZXRIb3ZlcmVkRXZlbnRQYXRocyIsInNldEhvdmVyZWRFZGdlUGF0aHMiLCJpc0RhdGFGZXRjaGVkQW5kRXZlbnROb3RGb2N1c2VkIiwic2V0Rm9jdXNlZEV2ZW50SWZGb3VuZEluUGFyYW1zIiwiZSIsInBhcnNlSW50IiwidmFsaWRFdmVudCIsInVzZU1lbW8iLCJ0b1N0cmluZyIsInRyaWdnZXJTb3J0Iiwic29ydCIsImFjdGl2ZUZpbHRlciIsIktRTCIsIlVSTCIsImJ1aWxkS1FMUXVlcnkiLCJjYWxjRXZlbnRzUmVhbEFtb3VudCIsImV2ZW50c0NvdW50IiwiZXZlbnRzX2NvdW50IiwidXNlRWZmZWN0IiwiZmV0Y2hFdmVudHMiLCJtb3JlSW5mbyIsImFjdGl2ZSIsInJlT3BlbkZpbHRlciIsIm9uQ2xpY2siLCJGb250QXdlc29tZUljb24iLCJpY29uIiwiZmFDYXJldExlZnQiLCJmYUNhcmV0UmlnaHQiLCJocmVmIiwiZmFBcnJvd0xlZnQiLCJMaW5rIiwidG8iLCJzcmMiLCJMZWZ0QXJyb3dJY29uIiwiaGVpZ2h0Iiwid2lkdGgiLCJhbHQiLCJldmVudHMiLCJldmVudHNGZXRjaGluZyIsIlJlYWN0Q29tcG9uZW50IiwiZmlsbCIsImZldGNoVHlwZSIsIk5vRXZlbnRzSW1hZ2UiLCJTZXZlcmVFdmVudCIsImhhbmRsZUNsaWNrIiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBldGMvbm8tY29tbWVudGVkLW91dC1jb2RlICovXG5pbXBvcnQge1xuICBmYUFycm93TGVmdCxcbiAgZmFDYXJldExlZnQsXG4gIGZhQ2FyZXRSaWdodCxcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgTGluaywgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMZWZ0QXJyb3dJY29uIGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvYXJyb3ctbGVmdC5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgRmlsdGVySWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvZnVubmVsLnN2Zyc7XG5pbXBvcnQgTm9FdmVudHNJbWFnZSBmcm9tICdzcmMvYXNzZXRzL25vX2V2ZW50cy5zdmcnO1xuaW1wb3J0IHsgU2V2ZXJlRXZlbnQgfSBmcm9tICdzcmMvY29tcG9uZW50cy9TZXZlcmVFdmVudC9TZXZlcmVFdmVudCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyB1c2VMYXN0VmlzaXRlZCB9IGZyb20gJ3NyYy9wcm92aWRlcnMvVXJsSGlzdG9yeSc7XG5pbXBvcnQge1xuICBmZXRjaEV2ZW50cyxcbiAgc2V0Rm9jdXNlZEV2ZW50LFxuICBzZXRIb3ZlcmVkRWRnZVBhdGhzLFxuICBzZXRIb3ZlcmVkRXZlbnQsXG4gIHNldEhvdmVyZWRFdmVudFBhdGhzLFxufSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHNldEV2ZW50RmlsdGVyUGFyYW0sIHNpZGVOYXZFeHBhbmRlZCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgYnVpbGRLUUxRdWVyeSB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi4vRXZlbnRzU3R5bGUuc2Nzcyc7XG5pbXBvcnQgRXZlbnRJbmZvIGZyb20gJy4uL2V2ZW50X2luZm8vRXZlbnRJbmZvJztcbmltcG9ydCBNb3JlSW5mbyBmcm9tICcuLi9Nb3JlSW5mbyc7XG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gJy4vRmlsdGVyL0ZpbHRlckNvbnRhaW5lcic7XG5pbXBvcnQgU29ydCBmcm9tICcuL1NvcnQnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBzaWRlbmF2RXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG5jb25zdCBFdmVudHNMaXN0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgYXJlYXNfZGF0YSxcbiAgcG9pbnRzX2RhdGEsXG4gIGVkZ2VzX2RhdGEsXG4gIGdsb2JhbF9kYXRhLFxuICBzaWRlbmF2RXhwYW5kZWQsXG4gIGV2ZW50c19kYXRhLFxuICBuYXZfY29udGV4dF9kYXRhLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHtcbiAgICBpdGVtcyxcbiAgICBpc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgaG92ZXJlZEV2ZW50UGF0aHMsXG4gICAgaG92ZXJlZEVkZ2VQYXRocyxcbiAgfSA9IGV2ZW50c19kYXRhO1xuICBjb25zdCB7IHdhdGVyQXV0aG9yaXR5SWQsIG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IFtmaWx0ZXJQb3B1cE9wZW4sIHNldEZpbHRlclBvcHVwT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW2V4Y2VwdGlvbkFsZXJ0LCBzZXRFeGNlcHRpb25BbGVydF0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZXM6IHsgbWVzc2FnZTogYW55OyBldmVudF9pZDogbnVtYmVyIH1bXTtcbiAgICBldmVudF9pZHM6IG51bWJlcltdO1xuICB9Pih7IG1lc3NhZ2VzOiBbeyBtZXNzYWdlOiAnJywgZXZlbnRfaWQ6IDAgfV0sIGV2ZW50X2lkczogW10gfSk7XG4gIGNvbnN0IGxhc3RWaXNpdGVkID0gdXNlTGFzdFZpc2l0ZWQoKTtcblxuICBjb25zdCB1c2VRdWVyeSA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyh1c2VMb2NhdGlvbigpLnNlYXJjaCk7XG4gIH07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnkoKTtcbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG4gIGNvbnN0IGdldEV2ZW50SWRGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ2V2ZW50SWQnKTtcbiAgfTtcblxuICBjb25zdCBsb2FkZXIgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKGlzRmV0Y2hpbmcgJiYgaXRlbXMubGVuZ3RoID09PSAwKSB8fFxuICAgICAgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgIGVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsnbG9hZGVyJ30+PC9kaXY+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNpZGVOYXZFeHBhbmRlZCghc2lkZW5hdkV4cGFuZGVkKSk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlEZWZhdWx0RmlsdGVyID0gKCkgPT4ge1xuICAgIGhpc3RvcnkucHVzaChcbiAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD1gLFxuICAgICk7XG4gICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbSgnJykpO1xuICB9O1xuXG4gIGNvbnN0IHZhbGlkYXRlRXZlbnQgPSAoZXZlbnQ6IElFdmVudCkgPT4ge1xuICAgIC8vIGNoZWNrIHRoYXQgYWxsIG9ic2VydmF0aW9ucycgZWRnZXMgZXhpc3RzLiBJZiB0aGV5IGFyZSBub3QgZXhpc3RzIGl0J3MgaW5kaWNhdGVzIHRoYXQgdGhlaXIgcG9pbnRzIGFyZVxuICAgIC8vIG5vdCBpbiB0aGUgaGllcmFyY2h5IG9yIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXM6IGFueSA9IFtdO1xuICAgIGV2ZW50Lm9ic2VydmF0aW9ucy5mb3JFYWNoKChvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgICAvLyBpZiBvYnNlcnZhdGlvbiBpcyByb290IChleC4gV1dUUCkgdGhlcmUgaXMgbm8gZWRnZSB0aGF0IGl0cyBhIHNvdXJjZS4gc28gd2UgY2FuIHNraXAgdGhpcyBjaGVja1xuICAgICAgaWYgKCFvYnNlcnZhdGlvbi5wb2ludF9pc19yb290KSB7XG4gICAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gb2JzZXJ2YXRpb24ucG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlZGdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIGAke29ic2VydmF0aW9uLnBvaW50X25hbWV9ICgke29ic2VydmF0aW9uLnBvaW50X2lkfSkgYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IGluZGV4ID0gZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMuZmluZEluZGV4KFxuICAgICAgICAobXNnKSA9PiBtc2cuZXZlbnRfaWQgPT09IGV2ZW50LmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBzZXRFeGNlcHRpb25BbGVydCh7XG4gICAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAgIC4uLmV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldmVudF9kYXRhX21pc3NpbmcnKX08L3A+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc2FtZSBjaGVjayBhcyBhYm92ZSBidXQgdGhpcyB0aW1lIGZvciB0aGUgZXZlbnQgcGF0aC4gSWYgZWRnZSBkb2Vzbid0IGV4aXN0LCBpdCdzIGluZGljYXRlcyB0aGF0IG9uZSBvZiB0aGVcbiAgICAvLyBwb2ludHMgZG93bnN0cmVhbSBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZFBhdGhNZXNzYWdlczogYW55ID0gW107XG4gICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXRoLmVkZ2VfaWQpO1xuICAgICAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBlZGdlICR7cGF0aC5lZGdlX2lkfSBjYW4gbm90IGJlIGZvdW5kYCk7XG4gICAgICAgIGxldCBvYnNlcnZhdGlvbiA9IGV2ZW50Lm9ic2VydmF0aW9ucy5maW5kKFxuICAgICAgICAgIChvYnNlcnZhdGlvbikgPT4gb2JzZXJ2YXRpb24uaWQgPT09IHBhdGgubGFzdF9vYnNlcnZhdGlvbl9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGxhc3RPYnNlcnZhdGlvblBvaW50ID0gJ05vdCBmb3VuZCc7XG4gICAgICAgIGlmIChvYnNlcnZhdGlvbikge1xuICAgICAgICAgIGxhc3RPYnNlcnZhdGlvblBvaW50ID0gb2JzZXJ2YXRpb24ucG9pbnRfbmFtZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdsYXN0T2JzZXJ2YXRpb25Qb2ludCcsIGxhc3RPYnNlcnZhdGlvblBvaW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGludmFsaWRQYXRoTWVzc2FnZXMucHVzaChgJHtsYXN0T2JzZXJ2YXRpb25Qb2ludH0gYCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZFBhdGhNZXNzYWdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHNldEV4Y2VwdGlvbkFsZXJ0KHtcbiAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAuLi5leGNlcHRpb25BbGVydC5tZXNzYWdlcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50X3ZlcmlmeV9jb29yZGluYXRlcycpfTwvcD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57aW52YWxpZFBhdGhNZXNzYWdlc308L3NwYW4+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV2ZW50SXRlbUNsaWNrID0gKFxuICAgIGV2ZW50OiBJRXZlbnQsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+IHwgbnVsbCxcbiAgKSA9PiB7XG4gICAgaWYgKHJlZiAhPT0gbnVsbCkgb25Nb3VzZUxlYXZlRXZlbnQoKTtcbiAgICAvLyBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgLy8gICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAvLyAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFtdKSk7XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJFdmVudEluZGljYXRvcihudWxsKSk7XG4gICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEV2ZW50KGV2ZW50KSk7XG4gICAgc2V0RmlsdGVyUG9wdXBPcGVuKGZhbHNlKTtcbiAgICBpZiAoZ2V0RXZlbnRJZEZyb21VUkwoKSA9PT0gbnVsbCB8fCBnZXRFdmVudElkRnJvbVVSTCgpID09PSAnbnVsbCcpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JmV2ZW50SWQ9JHtcbiAgICAgICAgICAgIGV2ZW50LmlkXG4gICAgICAgICAgfSZ2YWx1ZXNGcm9tS1FMPSR7XG4gICAgICAgICAgICBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtXG4gICAgICAgICAgfSZ2YWxpZEV2ZW50PSR7dmFsaWRhdGVFdmVudChldmVudCl9YCxcbiAgICAgICAgKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uTW91c2VFbnRlckV2ZW50ID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFmb2N1c2VkRXZlbnQgJiYgIWhvdmVyZWRFdmVudCAmJiB2YWxpZGF0ZUV2ZW50KGV2ZW50KSkge1xuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KGV2ZW50KSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uTW91c2VMZWF2ZUV2ZW50ID0gKCkgPT4ge1xuICAgIGlmIChob3ZlcmVkRXZlbnQgJiYgaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgICBob3ZlcmVkRXZlbnRQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoaG92ZXJlZEVkZ2VQYXRocykge1xuICAgICAgICBob3ZlcmVkRWRnZVBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgICBjb25zdCBrYW5kb19vYmplY3QgPSBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGthbmRvX29iamVjdD8uaW5jbHVkZXMoJ0V2ZW50Qm9keScpIHx8XG4gICAgICAgICAgW1xuICAgICAgICAgICAgJ0V2ZW50VGFpbCcsXG4gICAgICAgICAgICAnU2FtcGxpbmdQb2ludCcsXG4gICAgICAgICAgICAnRGVjb3JhdG9yJyxcbiAgICAgICAgICAgICdIb3ZlcmVkRWRnZScsXG4gICAgICAgICAgICAnSG92ZXJlZEVkZ2VGcm9udCcsXG4gICAgICAgICAgICAnRm9jdXNlZEVkZ2UnLFxuICAgICAgICAgICAgJ0ZvY3VzZWRFZGdlRnJvbnQnLFxuICAgICAgICAgIF0uaW5jbHVkZXMoa2FuZG9fb2JqZWN0KVxuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgfTtcblxuICBjb25zdCBpc0RhdGFGZXRjaGVkQW5kRXZlbnROb3RGb2N1c2VkID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAoZ2V0RXZlbnRJZEZyb21VUkwoKSA9PT0gJ251bGwnIHx8IGdldEV2ZW50SWRGcm9tVVJMKCkgPT09IG51bGwpICYmXG4gICAgICBmb2N1c2VkRXZlbnQgPT09IG51bGwgJiZcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgIWlzRmV0Y2hpbmcgJiZcbiAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gbnVsbCAmJlxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gJ251bGwnICYmXG4gICAgICBmb2N1c2VkRXZlbnQgPT09IG51bGwgJiZcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgIWlzRmV0Y2hpbmcgJiZcbiAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICBsZXQgZXZlbnQgPSBldmVudHNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAoZTogSUV2ZW50KSA9PiBlLmlkID09PSBwYXJzZUludChnZXRFdmVudElkRnJvbVVSTCgpISksXG4gICAgICApO1xuICAgICAgaWYgKGV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRXZlbnRJdGVtQ2xpY2soZXZlbnQsIG51bGwpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB2YWxpZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IGV2ZW50ID0gZXZlbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgIChlKSA9PiBlLmlkLnRvU3RyaW5nKCkgPT09IGdldEV2ZW50SWRGcm9tVVJMKCksXG4gICAgKTtcblxuICAgIGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGVFdmVudChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSwgW1xuICAgIGV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCxcbiAgICBhcmVhc19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgcG9pbnRzX2RhdGEuaXNGZXRjaGluZyxcbiAgICBlZGdlc19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgZXZlbnRzX2RhdGEuaXNGZXRjaGluZyxcbiAgXSk7XG5cbiAgY29uc3QgdHJpZ2dlclNvcnQgPSAoc29ydDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyICE9PSBudWxsICYmXG4gICAgICBpc0RhdGFGZXRjaGVkQW5kRXZlbnROb3RGb2N1c2VkKClcbiAgICApIHtcbiAgICAgIGxldCBLUUw7XG4gICAgICBsZXQgVVJMO1xuICAgICAgc3dpdGNoIChzb3J0KSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ25ld2VzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWVcbiAgICAgICAgICB9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JmxvY2FsZT0ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke0tRTH0mdmFsaWRFdmVudD0ke3ZhbGlkRXZlbnR9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICdvbGRlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnc2V2ZXJpdHknKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2FsY0V2ZW50c1JlYWxBbW91bnQgPSAoKSA9PiB7XG4gICAgbGV0IGV2ZW50c0NvdW50OiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICAgIGV2ZW50c0NvdW50ID0gZXZlbnRzX2RhdGEuZXZlbnRzX2NvdW50O1xuICAgIGlmIChldmVudHNDb3VudCA+IDUwKVxuICAgICAgZXZlbnRzQ291bnQgPSBgJHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5tb3JlX3RoYW4nKX0gNTBgO1xuXG4gICAgcmV0dXJuIGV2ZW50c0NvdW50O1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBmZXRjaEV2ZW50cyhcbiAgICAgICAgd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIHx8ICdERUZBVUxUJyxcbiAgICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSxcbiAgICAgICksXG4gICAgKTtcbiAgfSwgW1xuICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICAgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbSxcbiAgICBmb2N1c2VkRXZlbnQsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIWV2ZW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICBmaWx0ZXJQb3B1cE9wZW5cbiAgICApIHtcbiAgICAgIHNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcygpO1xuICAgIH1cbiAgfSwgW1xuICAgIGV2ZW50c19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgZWRnZXNfZGF0YS5pc0ZldGNoaW5nLFxuICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgYXJlYXNfZGF0YS5pc0ZldGNoaW5nLFxuICAgIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW0sXG4gICAgZmlsdGVyUG9wdXBPcGVuLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXsnc2lkZW5hdiAnICsgKHNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ3NpZGVuYXYtLWNvbGxhcHNlZCcpfT5cbiAgICAgIHtnbG9iYWxfZGF0YS5tb3JlSW5mbyAhPT0gdW5kZWZpbmVkICYmIGdsb2JhbF9kYXRhLm1vcmVJbmZvLmFjdGl2ZSAmJiAoXG4gICAgICAgIDxNb3JlSW5mbyAvPlxuICAgICAgKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICdldmVudC1pbmZvICcgK1xuICAgICAgICAgICghaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbFxuICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgOiAnZXZlbnQtaW5mby0tY29sbGFwc2VkJylcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7IWhvdmVyZWRFdmVudCAmJiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgIDxFdmVudEluZm9cbiAgICAgICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICByZU9wZW5GaWx0ZXI9eygpID0+IHNldEZpbHRlclBvcHVwT3Blbih0cnVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRvZ2dsZS1leHBhbnNpb24tYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5hdi1leHBhbnNpb24taWNvblwiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgIGljb249e3NpZGVuYXZFeHBhbmRlZCA/IGZhQ2FyZXRMZWZ0IDogZmFDYXJldFJpZ2h0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J3RvZ2dsZS1leHBhbnNpb24tYnV0dG9uLW1vYmlsZSd9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVFeHBhbnNpb25Ub2dnbGUoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhQXJyb3dMZWZ0fSAvPlxuICAgICAgICAgIDxzcGFuPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYmFja190b19kZXRhaWxzJyl9PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWhlYWRlclwiPlxuICAgICAgICB7bGFzdFZpc2l0ZWQgJiYgIWlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgIDxMaW5rIGNsYXNzTmFtZT1cImJhY2tcIiB0bz17bGFzdFZpc2l0ZWR9PlxuICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgc3JjPXtMZWZ0QXJyb3dJY29ufVxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMHB4XCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMnB4XCJcbiAgICAgICAgICAgICAgYWx0PVwiYmFja1wiXG4gICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICB7aTE4bi50KCdhcmVhX3NjcmVlbi5iYWNrJyl9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICA8aDQ+XG4gICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50c19saXN0Jyl9XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZXZlbnRzLWhlYWRlcl9fZXZlbnRzX2Ftb3VudCd9PlxuICAgICAgICAgICAgKHtjYWxjRXZlbnRzUmVhbEFtb3VudCgpfSlcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyaW5nXCI+XG4gICAgICAgICAge2V2ZW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgICAgICA8U29ydFxuICAgICAgICAgICAgICB0cmlnZ2VyU29ydD17dHJpZ2dlclNvcnR9XG4gICAgICAgICAgICAgIGV2ZW50cz17ZXZlbnRzX2RhdGEuaXRlbXN9XG4gICAgICAgICAgICAgIGV2ZW50c0ZldGNoaW5nPXtldmVudHNfZGF0YS5pc0ZldGNoaW5nfVxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXI9e2dsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbHRlclwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEZpbHRlclBvcHVwT3BlbighZmlsdGVyUG9wdXBPcGVuKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEZpbHRlckljb24gd2lkdGg9XCIxN3B4XCIgaGVpZ2h0PVwiMTdweFwiIGZpbGw9XCIjZjYwMDRmXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7cG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwICYmICFmb2N1c2VkRXZlbnQgJiYgKFxuICAgICAgICAgIDxGaWx0ZXJDb250YWluZXJcbiAgICAgICAgICAgIGZpbHRlclBvcHVwT3Blbj17ZmlsdGVyUG9wdXBPcGVufVxuICAgICAgICAgICAgZmV0Y2hUeXBlPXsnRXZlbnRGaWx0ZXInfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWNvbnRhaW5lciBzY3JvbGxiYXIgXCI+XG4gICAgICAgIHtsb2FkZXIoKX1cbiAgICAgICAgeyFpc0ZldGNoaW5nICYmXG4gICAgICAgICAgaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnRzX19ibGFua3NsYXRlJ30+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtOb0V2ZW50c0ltYWdlfSBhbHQ9XCJOb0V2ZW50c0ljb25cIiAvPlxuICAgICAgICAgICAgICA8aDI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmhlYWRlcicpfTwvaDI+XG4gICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5ib2R5Jyl9PC9wPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2FwcGx5X2RlZmF1bHRfZmlsdGVyX2J1dHRvbid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYXBwbHlEZWZhdWx0RmlsdGVyKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuYnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIHtpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJldmVudHMgXCI+XG4gICAgICAgICAgICAgIHtpdGVtcy5tYXAoKGV2ZW50OiBhbnkpID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXtldmVudC5pZH0gY2xhc3NOYW1lPVwiZXZlbnRcIiBkYXRhLWV2ZW50LWlkPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAgICA8U2V2ZXJlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17aGFuZGxlRXZlbnRJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlckV2ZW50PXtvbk1vdXNlRW50ZXJFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlRXZlbnQ9e29uTW91c2VMZWF2ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUV2ZW50PXt2YWxpZGF0ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25BbGVydD17ZXhjZXB0aW9uQWxlcnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRXZlbnRzTGlzdCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxrQkFBQSxHQUFBQyxPQUFBO0FBS0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGVBQUEsR0FBQUwsT0FBQTtBQUFpRSxJQUFBTSxVQUFBLEdBQUFDLHNCQUFBLENBQUFQLE9BQUE7QUFBQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFBQSxJQUFBUyxVQUFBLEdBQUFGLHNCQUFBLENB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
375
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJyZXF1aXJlIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9yZWFjdFJlZHV4IiwiX3JlYWN0Um91dGVyRG9tIiwiX2Fycm93TGVmdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZnVubmVsIiwiX25vX2V2ZW50cyIsIl9TZXZlcmVFdmVudCIsIl9VcmxIaXN0b3J5IiwiX2FjdGlvbnMiLCJfYWN0aW9uczIiLCJfaTE4biIsIl9rcWwiLCJfRXZlbnRJbmZvIiwiX01vcmVJbmZvIiwiX0ZpbHRlckNvbnRhaW5lciIsIl9Tb3J0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJfcmVmIiwic2lkZW5hdkV4cGFuZGVkIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIndhdGVyQXV0aG9yaXR5SWQiLCJtYXAiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWx0ZXJQb3B1cE9wZW4iLCJzZXRGaWx0ZXJQb3B1cE9wZW4iLCJfdXNlU3RhdGUzIiwibWVzc2FnZXMiLCJtZXNzYWdlIiwiZXZlbnRfaWQiLCJldmVudF9pZHMiLCJfdXNlU3RhdGU0IiwiZXhjZXB0aW9uQWxlcnQiLCJzZXRFeGNlcHRpb25BbGVydCIsImxhc3RWaXNpdGVkIiwidXNlTGFzdFZpc2l0ZWQiLCJ1c2VRdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsInVzZUxvY2F0aW9uIiwic2VhcmNoIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJxdWVyeSIsImdldEtRTFZhbHVlc0Zyb21VUkwiLCJnZXRFdmVudElkRnJvbVVSTCIsImxvYWRlciIsImxlbmd0aCIsIm5ld0FyZWFzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImhhbmRsZUV4cGFuc2lvblRvZ2dsZSIsInNpZGVOYXZFeHBhbmRlZCIsImFwcGx5RGVmYXVsdEZpbHRlciIsInB1c2giLCJjb25jYXQiLCJuYXZDb250ZXh0IiwibmFtZSIsImxvY2FsZSIsInNldEV2ZW50RmlsdGVyUGFyYW0iLCJ2YWxpZGF0ZUV2ZW50IiwiZXZlbnQiLCJpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMiLCJvYnNlcnZhdGlvbnMiLCJmb3JFYWNoIiwib2JzZXJ2YXRpb24iLCJwb2ludF9pc19yb290IiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsInBvaW50X25hbWUiLCJpbmRleCIsImZpbmRJbmRleCIsIm1zZyIsImlkIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIkZyYWdtZW50IiwiaTE4biIsInQiLCJpbnZhbGlkUGF0aE1lc3NhZ2VzIiwicGF0aCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50Iiwic2V0Rm9jdXNlZEV2ZW50Iiwic2V0VGltZW91dCIsImV2ZW50RmlsdGVyUGFyYW0iLCJvbk1vdXNlRW50ZXJFdmVudCIsInNldEhvdmVyZWRFdmVudCIsInJlbW92ZUxheWVyIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwiaW5jbHVkZXMiLCJzZXRIb3ZlcmVkRXZlbnRQYXRocyIsInNldEhvdmVyZWRFZGdlUGF0aHMiLCJpc0RhdGFGZXRjaGVkQW5kRXZlbnROb3RGb2N1c2VkIiwic2V0Rm9jdXNlZEV2ZW50SWZGb3VuZEluUGFyYW1zIiwiZSIsInBhcnNlSW50IiwidmFsaWRFdmVudCIsInVzZU1lbW8iLCJ0b1N0cmluZyIsInRyaWdnZXJTb3J0Iiwic29ydCIsImFjdGl2ZUZpbHRlciIsIktRTCIsIlVSTCIsImJ1aWxkS1FMUXVlcnkiLCJjYWxjRXZlbnRzUmVhbEFtb3VudCIsImV2ZW50c0NvdW50IiwiZXZlbnRzX2NvdW50IiwidXNlRWZmZWN0IiwiZmV0Y2hFdmVudHMiLCJtb3JlSW5mbyIsImFjdGl2ZSIsInJlT3BlbkZpbHRlciIsIm9uQ2xpY2siLCJGb250QXdlc29tZUljb24iLCJpY29uIiwiZmFDYXJldExlZnQiLCJmYUNhcmV0UmlnaHQiLCJocmVmIiwiZmFBcnJvd0xlZnQiLCJMaW5rIiwidG8iLCJzcmMiLCJMZWZ0QXJyb3dJY29uIiwiaGVpZ2h0Iiwid2lkdGgiLCJhbHQiLCJldmVudHMiLCJldmVudHNGZXRjaGluZyIsIlJlYWN0Q29tcG9uZW50IiwiZmlsbCIsImZldGNoVHlwZSIsIk5vRXZlbnRzSW1hZ2UiLCJTZXZlcmVFdmVudCIsImhhbmRsZUNsaWNrIiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBldGMvbm8tY29tbWVudGVkLW91dC1jb2RlICovXG5pbXBvcnQge1xuICBmYUFycm93TGVmdCxcbiAgZmFDYXJldExlZnQsXG4gIGZhQ2FyZXRSaWdodCxcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgTGluaywgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMZWZ0QXJyb3dJY29uIGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvYXJyb3ctbGVmdC5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgRmlsdGVySWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvZnVubmVsLnN2Zyc7XG5pbXBvcnQgTm9FdmVudHNJbWFnZSBmcm9tICdzcmMvYXNzZXRzL25vX2V2ZW50cy5zdmcnO1xuaW1wb3J0IHsgU2V2ZXJlRXZlbnQgfSBmcm9tICdzcmMvY29tcG9uZW50cy9TZXZlcmVFdmVudC9TZXZlcmVFdmVudCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyB1c2VMYXN0VmlzaXRlZCB9IGZyb20gJ3NyYy9wcm92aWRlcnMvVXJsSGlzdG9yeSc7XG5pbXBvcnQge1xuICBmZXRjaEV2ZW50cyxcbiAgc2V0Rm9jdXNlZEV2ZW50LFxuICBzZXRIb3ZlcmVkRWRnZVBhdGhzLFxuICBzZXRIb3ZlcmVkRXZlbnQsXG4gIHNldEhvdmVyZWRFdmVudFBhdGhzLFxufSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHNldEV2ZW50RmlsdGVyUGFyYW0sIHNpZGVOYXZFeHBhbmRlZCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgYnVpbGRLUUxRdWVyeSB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi4vRXZlbnRzU3R5bGUuc2Nzcyc7XG5pbXBvcnQgRXZlbnRJbmZvIGZyb20gJy4uL2V2ZW50X2luZm8vRXZlbnRJbmZvJztcbmltcG9ydCBNb3JlSW5mbyBmcm9tICcuLi9Nb3JlSW5mbyc7XG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gJy4vRmlsdGVyL0ZpbHRlckNvbnRhaW5lcic7XG5pbXBvcnQgU29ydCBmcm9tICcuL1NvcnQnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBzaWRlbmF2RXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG5jb25zdCBFdmVudHNMaXN0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgYXJlYXNfZGF0YSxcbiAgcG9pbnRzX2RhdGEsXG4gIGVkZ2VzX2RhdGEsXG4gIGdsb2JhbF9kYXRhLFxuICBzaWRlbmF2RXhwYW5kZWQsXG4gIGV2ZW50c19kYXRhLFxuICBuYXZfY29udGV4dF9kYXRhLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHtcbiAgICBpdGVtcyxcbiAgICBpc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgaG92ZXJlZEV2ZW50UGF0aHMsXG4gICAgaG92ZXJlZEVkZ2VQYXRocyxcbiAgfSA9IGV2ZW50c19kYXRhO1xuICBjb25zdCB7IHdhdGVyQXV0aG9yaXR5SWQsIG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IFtmaWx0ZXJQb3B1cE9wZW4sIHNldEZpbHRlclBvcHVwT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW2V4Y2VwdGlvbkFsZXJ0LCBzZXRFeGNlcHRpb25BbGVydF0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZXM6IHsgbWVzc2FnZTogYW55OyBldmVudF9pZDogbnVtYmVyIH1bXTtcbiAgICBldmVudF9pZHM6IG51bWJlcltdO1xuICB9Pih7IG1lc3NhZ2VzOiBbeyBtZXNzYWdlOiAnJywgZXZlbnRfaWQ6IDAgfV0sIGV2ZW50X2lkczogW10gfSk7XG4gIGNvbnN0IGxhc3RWaXNpdGVkID0gdXNlTGFzdFZpc2l0ZWQoKTtcblxuICBjb25zdCB1c2VRdWVyeSA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyh1c2VMb2NhdGlvbigpLnNlYXJjaCk7XG4gIH07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnkoKTtcbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG4gIGNvbnN0IGdldEV2ZW50SWRGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ2V2ZW50SWQnKTtcbiAgfTtcblxuICBjb25zdCBsb2FkZXIgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKGlzRmV0Y2hpbmcgJiYgaXRlbXMubGVuZ3RoID09PSAwKSB8fFxuICAgICAgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgIGVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsnbG9hZGVyJ30+PC9kaXY+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNpZGVOYXZFeHBhbmRlZCghc2lkZW5hdkV4cGFuZGVkKSk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlEZWZhdWx0RmlsdGVyID0gKCkgPT4ge1xuICAgIGhpc3RvcnkucHVzaChcbiAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD1gLFxuICAgICk7XG4gICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbSgnJykpO1xuICB9O1xuXG4gIGNvbnN0IHZhbGlkYXRlRXZlbnQgPSAoZXZlbnQ6IElFdmVudCkgPT4ge1xuICAgIC8vIGNoZWNrIHRoYXQgYWxsIG9ic2VydmF0aW9ucycgZWRnZXMgZXhpc3RzLiBJZiB0aGV5IGFyZSBub3QgZXhpc3RzIGl0J3MgaW5kaWNhdGVzIHRoYXQgdGhlaXIgcG9pbnRzIGFyZVxuICAgIC8vIG5vdCBpbiB0aGUgaGllcmFyY2h5IG9yIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXM6IGFueSA9IFtdO1xuICAgIGV2ZW50Lm9ic2VydmF0aW9ucy5mb3JFYWNoKChvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgICAvLyBpZiBvYnNlcnZhdGlvbiBpcyByb290IChleC4gV1dUUCkgdGhlcmUgaXMgbm8gZWRnZSB0aGF0IGl0cyBhIHNvdXJjZS4gc28gd2UgY2FuIHNraXAgdGhpcyBjaGVja1xuICAgICAgaWYgKCFvYnNlcnZhdGlvbi5wb2ludF9pc19yb290KSB7XG4gICAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gb2JzZXJ2YXRpb24ucG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlZGdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIGAke29ic2VydmF0aW9uLnBvaW50X25hbWV9ICgke29ic2VydmF0aW9uLnBvaW50X2lkfSkgYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IGluZGV4ID0gZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMuZmluZEluZGV4KFxuICAgICAgICAobXNnKSA9PiBtc2cuZXZlbnRfaWQgPT09IGV2ZW50LmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBzZXRFeGNlcHRpb25BbGVydCh7XG4gICAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAgIC4uLmV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldmVudF9kYXRhX21pc3NpbmcnKX08L3A+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc2FtZSBjaGVjayBhcyBhYm92ZSBidXQgdGhpcyB0aW1lIGZvciB0aGUgZXZlbnQgcGF0aC4gSWYgZWRnZSBkb2Vzbid0IGV4aXN0LCBpdCdzIGluZGljYXRlcyB0aGF0IG9uZSBvZiB0aGVcbiAgICAvLyBwb2ludHMgZG93bnN0cmVhbSBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZFBhdGhNZXNzYWdlczogYW55ID0gW107XG4gICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXRoLmVkZ2VfaWQpO1xuICAgICAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBlZGdlICR7cGF0aC5lZGdlX2lkfSBjYW4gbm90IGJlIGZvdW5kYCk7XG4gICAgICAgIGxldCBvYnNlcnZhdGlvbiA9IGV2ZW50Lm9ic2VydmF0aW9ucy5maW5kKFxuICAgICAgICAgIChvYnNlcnZhdGlvbikgPT4gb2JzZXJ2YXRpb24uaWQgPT09IHBhdGgubGFzdF9vYnNlcnZhdGlvbl9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGxhc3RPYnNlcnZhdGlvblBvaW50ID0gJ05vdCBmb3VuZCc7XG4gICAgICAgIGlmIChvYnNlcnZhdGlvbikge1xuICAgICAgICAgIGxhc3RPYnNlcnZhdGlvblBvaW50ID0gb2JzZXJ2YXRpb24ucG9pbnRfbmFtZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdsYXN0T2JzZXJ2YXRpb25Qb2ludCcsIGxhc3RPYnNlcnZhdGlvblBvaW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGludmFsaWRQYXRoTWVzc2FnZXMucHVzaChgJHtsYXN0T2JzZXJ2YXRpb25Qb2ludH0gYCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZFBhdGhNZXNzYWdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHNldEV4Y2VwdGlvbkFsZXJ0KHtcbiAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAuLi5leGNlcHRpb25BbGVydC5tZXNzYWdlcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50X3ZlcmlmeV9jb29yZGluYXRlcycpfTwvcD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57aW52YWxpZFBhdGhNZXNzYWdlc308L3NwYW4+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV2ZW50SXRlbUNsaWNrID0gKFxuICAgIGV2ZW50OiBJRXZlbnQsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+IHwgbnVsbCxcbiAgKSA9PiB7XG4gICAgaWYgKHJlZiAhPT0gbnVsbCkgb25Nb3VzZUxlYXZlRXZlbnQoKTtcbiAgICAvLyBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgLy8gICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAvLyAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFtdKSk7XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJFdmVudEluZGljYXRvcihudWxsKSk7XG4gICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEV2ZW50KGV2ZW50KSk7XG4gICAgc2V0RmlsdGVyUG9wdXBPcGVuKGZhbHNlKTtcbiAgICBpZiAoZ2V0RXZlbnRJZEZyb21VUkwoKSA9PT0gbnVsbCB8fCBnZXRFdmVudElkRnJvbVVSTCgpID09PSAnbnVsbCcpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JmV2ZW50SWQ9JHtcbiAgICAgICAgICAgIGV2ZW50LmlkXG4gICAgICAgICAgfSZ2YWx1ZXNGcm9tS1FMPSR7XG4gICAgICAgICAgICBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtXG4gICAgICAgICAgfSZ2YWxpZEV2ZW50PSR7dmFsaWRhdGVFdmVudChldmVudCl9YCxcbiAgICAgICAgKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uTW91c2VFbnRlckV2ZW50ID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFmb2N1c2VkRXZlbnQgJiYgIWhvdmVyZWRFdmVudCAmJiB2YWxpZGF0ZUV2ZW50KGV2ZW50KSkge1xuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KGV2ZW50KSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uTW91c2VMZWF2ZUV2ZW50ID0gKCkgPT4ge1xuICAgIGlmIChob3ZlcmVkRXZlbnQgJiYgaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgICBob3ZlcmVkRXZlbnRQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoaG92ZXJlZEVkZ2VQYXRocykge1xuICAgICAgICBob3ZlcmVkRWRnZVBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgICBjb25zdCBrYW5kb19vYmplY3QgPSBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGthbmRvX29iamVjdD8uaW5jbHVkZXMoJ0V2ZW50Qm9keScpIHx8XG4gICAgICAgICAgW1xuICAgICAgICAgICAgJ0V2ZW50VGFpbCcsXG4gICAgICAgICAgICAnU2FtcGxpbmdQb2ludCcsXG4gICAgICAgICAgICAnRGVjb3JhdG9yJyxcbiAgICAgICAgICAgICdIb3ZlcmVkRWRnZScsXG4gICAgICAgICAgICAnSG92ZXJlZEVkZ2VGcm9udCcsXG4gICAgICAgICAgICAnRm9jdXNlZEVkZ2UnLFxuICAgICAgICAgICAgJ0ZvY3VzZWRFZGdlRnJvbnQnLFxuICAgICAgICAgIF0uaW5jbHVkZXMoa2FuZG9fb2JqZWN0KVxuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgfTtcblxuICBjb25zdCBpc0RhdGFGZXRjaGVkQW5kRXZlbnROb3RGb2N1c2VkID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAoZ2V0RXZlbnRJZEZyb21VUkwoKSA9PT0gJ251bGwnIHx8IGdldEV2ZW50SWRGcm9tVVJMKCkgPT09IG51bGwpICYmXG4gICAgICBmb2N1c2VkRXZlbnQgPT09IG51bGwgJiZcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgIWlzRmV0Y2hpbmcgJiZcbiAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gbnVsbCAmJlxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gJ251bGwnICYmXG4gICAgICBmb2N1c2VkRXZlbnQgPT09IG51bGwgJiZcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgIWlzRmV0Y2hpbmcgJiZcbiAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICBsZXQgZXZlbnQgPSBldmVudHNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAoZTogSUV2ZW50KSA9PiBlLmlkID09PSBwYXJzZUludChnZXRFdmVudElkRnJvbVVSTCgpISksXG4gICAgICApO1xuICAgICAgaWYgKGV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRXZlbnRJdGVtQ2xpY2soZXZlbnQsIG51bGwpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB2YWxpZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IGV2ZW50ID0gZXZlbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgIChlKSA9PiBlLmlkLnRvU3RyaW5nKCkgPT09IGdldEV2ZW50SWRGcm9tVVJMKCksXG4gICAgKTtcblxuICAgIGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGVFdmVudChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSwgW1xuICAgIGV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCxcbiAgICBhcmVhc19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgcG9pbnRzX2RhdGEuaXNGZXRjaGluZyxcbiAgICBlZGdlc19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgZXZlbnRzX2RhdGEuaXNGZXRjaGluZyxcbiAgXSk7XG5cbiAgY29uc3QgdHJpZ2dlclNvcnQgPSAoc29ydDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyICE9PSBudWxsICYmXG4gICAgICBpc0RhdGFGZXRjaGVkQW5kRXZlbnROb3RGb2N1c2VkKClcbiAgICApIHtcbiAgICAgIGxldCBLUUw7XG4gICAgICBsZXQgVVJMO1xuICAgICAgc3dpdGNoIChzb3J0KSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ25ld2VzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWVcbiAgICAgICAgICB9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JmxvY2FsZT0ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke0tRTH0mdmFsaWRFdmVudD0ke3ZhbGlkRXZlbnR9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICdvbGRlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnc2V2ZXJpdHknKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2FsY0V2ZW50c1JlYWxBbW91bnQgPSAoKSA9PiB7XG4gICAgbGV0IGV2ZW50c0NvdW50OiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICAgIGV2ZW50c0NvdW50ID0gZXZlbnRzX2RhdGEuZXZlbnRzX2NvdW50O1xuICAgIGlmIChldmVudHNDb3VudCA+IDUwKVxuICAgICAgZXZlbnRzQ291bnQgPSBgJHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5tb3JlX3RoYW4nKX0gNTBgO1xuXG4gICAgcmV0dXJuIGV2ZW50c0NvdW50O1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBmZXRjaEV2ZW50cyhcbiAgICAgICAgd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIHx8ICdERUZBVUxUJyxcbiAgICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSxcbiAgICAgICksXG4gICAgKTtcbiAgfSwgW1xuICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICAgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbSxcbiAgICBmb2N1c2VkRXZlbnQsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIWV2ZW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICBhcmVhc19kYXRhLm5ld0FyZWFzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwICYmXG4gICAgICBmaWx0ZXJQb3B1cE9wZW5cbiAgICApIHtcbiAgICAgIHNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcygpO1xuICAgIH1cbiAgfSwgW1xuICAgIGV2ZW50c19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgZWRnZXNfZGF0YS5pc0ZldGNoaW5nLFxuICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcsXG4gICAgcG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoLFxuICAgIGFyZWFzX2RhdGEuaXRlbXMubGVuZ3RoLFxuICAgIGFyZWFzX2RhdGEuaXNGZXRjaGluZyxcbiAgICBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtLFxuICAgIGZpbHRlclBvcHVwT3BlbixcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J3NpZGVuYXYgJyArIChzaWRlbmF2RXhwYW5kZWQgPyAnJyA6ICdzaWRlbmF2LS1jb2xsYXBzZWQnKX0+XG4gICAgICB7Z2xvYmFsX2RhdGEubW9yZUluZm8gIT09IHVuZGVmaW5lZCAmJiBnbG9iYWxfZGF0YS5tb3JlSW5mby5hY3RpdmUgJiYgKFxuICAgICAgICA8TW9yZUluZm8gLz5cbiAgICAgICl9XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAnZXZlbnQtaW5mbyAnICtcbiAgICAgICAgICAoIWhvdmVyZWRFdmVudCAmJiBmb2N1c2VkRXZlbnQgIT09IG51bGxcbiAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgIDogJ2V2ZW50LWluZm8tLWNvbGxhcHNlZCcpXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAgeyFob3ZlcmVkRXZlbnQgJiYgZm9jdXNlZEV2ZW50ICE9PSBudWxsICYmIChcbiAgICAgICAgICA8RXZlbnRJbmZvXG4gICAgICAgICAgICBldmVudD17Zm9jdXNlZEV2ZW50fVxuICAgICAgICAgICAgcmVPcGVuRmlsdGVyPXsoKSA9PiBzZXRGaWx0ZXJQb3B1cE9wZW4odHJ1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJ0b2dnbGUtZXhwYW5zaW9uLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVFeHBhbnNpb25Ub2dnbGUoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuYXYtZXhwYW5zaW9uLWljb25cIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uXG4gICAgICAgICAgICBpY29uPXtzaWRlbmF2RXhwYW5kZWQgPyBmYUNhcmV0TGVmdCA6IGZhQ2FyZXRSaWdodH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9eyd0b2dnbGUtZXhwYW5zaW9uLWJ1dHRvbi1tb2JpbGUnfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlKCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxhIGhyZWY9XCIjXCI+XG4gICAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtmYUFycm93TGVmdH0gLz5cbiAgICAgICAgICA8c3Bhbj4ge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmJhY2tfdG9fZGV0YWlscycpfTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImV2ZW50cy1oZWFkZXJcIj5cbiAgICAgICAge2xhc3RWaXNpdGVkICYmICFpc0ZldGNoaW5nICYmIChcbiAgICAgICAgICA8TGluayBjbGFzc05hbWU9XCJiYWNrXCIgdG89e2xhc3RWaXNpdGVkfT5cbiAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz17TGVmdEFycm93SWNvbn1cbiAgICAgICAgICAgICAgaGVpZ2h0PVwiMTBweFwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTJweFwiXG4gICAgICAgICAgICAgIGFsdD1cImJhY2tcIlxuICAgICAgICAgICAgLz57JyAnfVxuICAgICAgICAgICAge2kxOG4udCgnYXJlYV9zY3JlZW4uYmFjaycpfVxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKX1cbiAgICAgICAgPGg0PlxuICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldmVudHNfbGlzdCcpfVxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2V2ZW50cy1oZWFkZXJfX2V2ZW50c19hbW91bnQnfT5cbiAgICAgICAgICAgICh7Y2FsY0V2ZW50c1JlYWxBbW91bnQoKX0pXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2g0PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmluZ1wiPlxuICAgICAgICAgIHtldmVudHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgJiYgKFxuICAgICAgICAgICAgPFNvcnRcbiAgICAgICAgICAgICAgdHJpZ2dlclNvcnQ9e3RyaWdnZXJTb3J0fVxuICAgICAgICAgICAgICBldmVudHM9e2V2ZW50c19kYXRhLml0ZW1zfVxuICAgICAgICAgICAgICBldmVudHNGZXRjaGluZz17ZXZlbnRzX2RhdGEuaXNGZXRjaGluZ31cbiAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyPXtnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRGaWx0ZXJQb3B1cE9wZW4oIWZpbHRlclBvcHVwT3Blbil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxGaWx0ZXJJY29uIHdpZHRoPVwiMTdweFwiIGhlaWdodD1cIjE3cHhcIiBmaWxsPVwiI2Y2MDA0ZlwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge3BvaW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAhZm9jdXNlZEV2ZW50ICYmIChcbiAgICAgICAgICA8RmlsdGVyQ29udGFpbmVyXG4gICAgICAgICAgICBmaWx0ZXJQb3B1cE9wZW49e2ZpbHRlclBvcHVwT3Blbn1cbiAgICAgICAgICAgIGZldGNoVHlwZT17J0V2ZW50RmlsdGVyJ31cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImV2ZW50cy1jb250YWluZXIgc2Nyb2xsYmFyIFwiPlxuICAgICAgICB7bG9hZGVyKCl9XG4gICAgICAgIHshaXNGZXRjaGluZyAmJlxuICAgICAgICAgIGl0ZW1zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIWVkZ2VzX2RhdGEuaXNGZXRjaGluZyAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2V2ZW50c19fYmxhbmtzbGF0ZSd9PlxuICAgICAgICAgICAgICA8aW1nIHNyYz17Tm9FdmVudHNJbWFnZX0gYWx0PVwiTm9FdmVudHNJY29uXCIgLz5cbiAgICAgICAgICAgICAgPGgyPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5oZWFkZXInKX08L2gyPlxuICAgICAgICAgICAgICA8cD57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuYm9keScpfTwvcD5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9eydhcHBseV9kZWZhdWx0X2ZpbHRlcl9idXR0b24nfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFwcGx5RGVmYXVsdEZpbHRlcigpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmJ1dHRvbicpfVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICB7aXRlbXMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgICAgIWFyZWFzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIWVkZ2VzX2RhdGEuaXNGZXRjaGluZyAmJiAoXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwiZXZlbnRzIFwiPlxuICAgICAgICAgICAgICB7aXRlbXMubWFwKChldmVudDogYW55KSA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17ZXZlbnQuaWR9IGNsYXNzTmFtZT1cImV2ZW50XCIgZGF0YS1ldmVudC1pZD17ZXZlbnQuaWR9PlxuICAgICAgICAgICAgICAgICAgPFNldmVyZUV2ZW50XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50PXtldmVudH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2xpY2s9e2hhbmRsZUV2ZW50SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXJFdmVudD17b25Nb3VzZUVudGVyRXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZUV2ZW50PXtvbk1vdXNlTGVhdmVFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVFdmVudD17dmFsaWRhdGVFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQWxlcnQ9e2V4Y2VwdGlvbkFsZXJ0fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKEV2ZW50c0xpc3QpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUtBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFDQSxJ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
@@ -253,7 +253,6 @@ var FilterContainer = function FilterContainer(props) {
253
253
  }
254
254
  }
255
255
  if (nav_context_data.navContext.name === 'events_view') {
256
- console.warn('buildKQL', (0, _kql.buildKQLQuery)(filter, value));
257
256
  history.push("/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&locale=").concat(nav_context_data.navContext.locale, "&eventId=").concat(getEventIdFromURL(), "&valuesFromKQL=").concat((0, _kql.buildKQLQuery)(filter, value)));
258
257
  }
259
258
  if (nav_context_data.navContext.name === 'samplings-list') {
@@ -363,4 +362,4 @@ var FilterContainer = function FilterContainer(props) {
363
362
  var connector = (0, _reactRedux.connect)(mapStateToProps);
364
363
  var _default = connector(FilterContainer);
365
364
  exports.default = _default;
366
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfRHJvcGRvd24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RSb3V0ZXJEb20iLCJfZGlza2V0dGUiLCJfbGlzdCIsIl9hY3Rpb25zIiwiX2kxOG4iLCJfa3FsIiwiX0ZpbHRlciIsIl9GaWx0ZXJzRHJvcERvd24iLCJfYWN0aW9uc0NyZWF0b3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJuYXZfY29udGV4dF9kYXRhIiwicG9pbnRzX2RhdGEiLCJGaWx0ZXJDb250YWluZXIiLCJwcm9wcyIsImZpbHRlclBvcHVwT3BlbiIsImFwcGx5TG9naWMiLCJfcHJvcHMkZmV0Y2hUeXBlIiwiZmV0Y2hUeXBlIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIm5hbWVJbnB1dCIsInVzZVJlZiIsImZpbHRlckNvbnRlbnQiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWx0ZXJzIiwic2V0RmlsdGVycyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYXZhaWxhYmxlRmlsdGVySXRlbXMiLCJzZXRBdmFpbGFibGVGaWx0ZXJJdGVtcyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicmVuZGVyZWQiLCJzZXRSZW5kZXJlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiV2FJZCIsInNldFdhSWQiLCJfdXNlU3RhdGU5IiwidW5kZWZpbmVkIiwiX3VzZVN0YXRlMTAiLCJhY3RpdmVGaWx0ZXIiLCJzZXRBY3RpdmVGaWx0ZXIiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiYWN0aXZlRmlsdGVyQ29weSIsInNldEFjdGl2ZUZpbHRlckNvcHkiLCJjc3JmIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZ2V0QXR0cmlidXRlIiwidXNlUXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJ1c2VMb2NhdGlvbiIsInNlYXJjaCIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwicXVlcnkiLCJnZXRLUUxGcm9tVVJMIiwiZ2V0UG9pbnRzVG9GaWx0ZXJzIiwiaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0iLCJmaW5kIiwiZiIsInR5cGUiLCJmaWx0ZXJlZFBvaW50c0RhdGEiLCJpdGVtcyIsImZpbHRlciIsInBvaW50IiwicGFydF9vZl9vYnNlcnZhdGlvbiIsIm1hcCIsImlkIiwibmFtZSIsImdyb3VwIiwib3B0aW9ucyIsImZvckVhY2giLCJmaWx0ZXJJdGVtIiwiZmlsdGVyX2l0ZW1zIiwiZmkiLCJhdmFpbGFibGVfb3B0aW9ucyIsImZldGNoRXZlbnRGaWx0ZXJzIiwicHJlcGFyZWRQYXJhbXMiLCJtZXRob2QiLCJ1cmwiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmZXRjaCIsImhlYWRlcnMiLCJBY2NlcHQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInRoZW4iLCJyZXNwb25zZSIsImpzb24iLCJkYXRhIiwiYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcyIsInNhdmVkIiwiZGVlcENsb25lIiwicGFyc2UiLCJnZXREYXRhIiwiY29uY2F0Iiwid2F0ZXJBdXRob3JpdHlJZCIsImpzb25TaGFsbG93Q29weSIsImFzc2lnbiIsImFjdGl2ZSIsImRpc3BsYXllZF9maWx0ZXIiLCJzZWxlY3RlZFBlcmlvZCIsInNlbGVjdGVkX29wdGlvbnMiLCJhY3RpdmF0ZUZpbHRlciIsImFwcGx5RmlsdGVyIiwiaGFuZGxlRmlsdGVyQ2hhbmdlIiwiY3VycmVudCIsImNsaWNrIiwic2F2ZUFjdGl2ZUZpbHRlciIsImNsb25lZEZpbHRlcnMiLCJmaWx0ZXJUb01vZGlmeUluZGV4IiwiaW5kZXhPZiIsImZpbHRlcl90eXBlIiwidWlfZmlsdGVyIiwiaXNfYWN0aXZlIiwiTWF0aCIsInNpZ24iLCJjcmVhdGVGaWx0ZXIiLCJuZXdGaWx0ZXIiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZGVsZXRlRmlsdGVyIiwiZ2V0RXZlbnRJZEZyb21VUkwiLCJnZXRXYUlkRnJvbVVSTCIsImdldEtRTFZhbHVlc0Zyb21VUkwiLCJ2YWx1ZSIsIm5hdkNvbnRleHQiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIiwiYnVpbGRLUUxRdWVyeSIsInB1c2giLCJsb2NhbGUiLCJzZXRFdmVudEZpbHRlclBhcmFtIiwic2V0QWN0aXZlRmlsdGVyR2xvYmFsbHkiLCJzZXRTYW1wbGluZ0RhdGEiLCJjdXJyZW50UGFnZSIsImlzRmV0Y2giLCJoYW5kbGVDcmVhdGlvbkNsaWNrIiwidXNlRWZmZWN0IiwiZXZlbnRGaWx0ZXJQYXJhbSIsImNsZWFudXAiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwicmVmIiwiaTE4biIsInQiLCJUb2dnbGUiLCJ2YXJpYW50IiwiUmVhY3RDb21wb25lbnQiLCJoZWlnaHQiLCJ3aWR0aCIsImZpbGwiLCJNZW51IiwiSXRlbSIsImRpc2FibGVkIiwib25DbGljayIsIkZvcm1Db250cm9sIiwicGxhY2Vob2xkZXIiLCJhdXRvRm9jdXMiLCJCdXR0b24iLCJwYXJzZVNlbGVjdGVkSXRlbXMiLCJjb25uZWN0b3IiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9GaWx0ZXJDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIEZvcm1Db250cm9sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBEcm9wZG93biBmcm9tICdyZWFjdC1ib290c3RyYXAvRHJvcGRvd24nO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFNhdmVJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9kaXNrZXR0ZS5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgTGlzdEljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2xpc3Quc3ZnJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElGaWx0ZXIgfSBmcm9tICdzcmMvc3RvcmUvZmlsdGVycy9JRmlsdGVyJztcbmltcG9ydCB7IElGaWx0ZXJJdGVtIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlckl0ZW0nO1xuaW1wb3J0IHtcbiAgc2V0QWN0aXZlRmlsdGVyR2xvYmFsbHksXG4gIHNldEV2ZW50RmlsdGVyUGFyYW0sXG59IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IGJ1aWxkS1FMUXVlcnksIHBhcnNlU2VsZWN0ZWRJdGVtcyB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi9GaWx0ZXJTdHlsZS5zY3NzJztcbmltcG9ydCBGaWx0ZXIgZnJvbSAnLi9GaWx0ZXInO1xuaW1wb3J0IEZpbHRlcnNEcm9wRG93biBmcm9tICcuL0ZpbHRlcnNEcm9wRG93bic7XG5pbXBvcnQgeyBzZXRTYW1wbGluZ0RhdGEgfSBmcm9tICdzcmMvc3RvcmUvc2FtcGxpbmdzL2FjdGlvbnNDcmVhdG9yJztcbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZ2xvYmFsX2RhdGEsIG5hdl9jb250ZXh0X2RhdGEsIHBvaW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGdsb2JhbF9kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIGZpbHRlclBvcHVwT3BlbjogYm9vbGVhbjtcbiAgZmV0Y2hUeXBlOiBzdHJpbmc7XG4gIGFwcGx5TG9naWM/OiAodmFsdWVzOiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBGaWx0ZXJDb250YWluZXI6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGdsb2JhbF9kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZmlsdGVyUG9wdXBPcGVuLFxuICAgIGFwcGx5TG9naWMsXG4gICAgZmV0Y2hUeXBlID0gJ0V2ZW50RmlsdGVycycsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYW1lSW5wdXQgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZpbHRlckNvbnRlbnQgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbZmlsdGVycywgc2V0RmlsdGVyc10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW2F2YWlsYWJsZUZpbHRlckl0ZW1zLCBzZXRBdmFpbGFibGVGaWx0ZXJJdGVtc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtyZW5kZXJlZCwgc2V0UmVuZGVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbV2FJZCwgc2V0V2FJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPigpO1xuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBjb25zdCBbYWN0aXZlRmlsdGVyLCBzZXRBY3RpdmVGaWx0ZXJdID0gdXNlU3RhdGU8YW55Pih1bmRlZmluZWQpO1xuICBjb25zdCBbYWN0aXZlRmlsdGVyQ29weSwgc2V0QWN0aXZlRmlsdGVyQ29weV0gPSB1c2VTdGF0ZTxhbnk+KHVuZGVmaW5lZCk7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY3NyZiA9IGRvY3VtZW50XG4gICAgLnF1ZXJ5U2VsZWN0b3IoXCJtZXRhW25hbWU9J2NzcmYtdG9rZW4nXVwiKVxuICAgIC5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKTtcbiAgY29uc3QgdXNlUXVlcnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXModXNlTG9jYXRpb24oKS5zZWFyY2gpO1xuICB9O1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5KCk7XG4gIGNvbnN0IGdldEtRTEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuXG4gIGNvbnN0IGdldFBvaW50c1RvRmlsdGVycyA9IChhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55LCBmaWx0ZXJzOiBhbnkpID0+IHtcbiAgICBsZXQgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gPSBhdmFpbGFibGVGaWx0ZXJJdGVtcy5maW5kKFxuICAgICAgKGY6IElGaWx0ZXJJdGVtKSA9PiBmLnR5cGUgPT09ICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbScsXG4gICAgKTtcbiAgICBsZXQgZmlsdGVyZWRQb2ludHNEYXRhID0gcG9pbnRzX2RhdGEuaXRlbXNcbiAgICAgIC5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LnBhcnRfb2Zfb2JzZXJ2YXRpb24gPT09IHRydWUpXG4gICAgICAubWFwKChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGlkOiBwb2ludC5pZCwgbmFtZTogcG9pbnQuZ3JvdXAubmFtZSB9O1xuICAgICAgfSk7XG5cbiAgICBpZiAoaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0ub3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICB9XG5cbiAgICBmaWx0ZXJzLmZvckVhY2goKGY6IElGaWx0ZXIpID0+IHtcbiAgICAgIGxldCBmaWx0ZXJJdGVtID0gZi5maWx0ZXJfaXRlbXMuZmluZChcbiAgICAgICAgKGZpOiBJRmlsdGVySXRlbSkgPT4gZmkudHlwZSA9PT0gJ0ludGVyZXN0UG9pbnRGaWx0ZXJJdGVtJyxcbiAgICAgICk7XG5cbiAgICAgIGlmIChmaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHNldEZpbHRlcnMoZmlsdGVycyk7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hFdmVudEZpbHRlcnMgPSAoXG4gICAgcHJlcGFyZWRQYXJhbXM6IGFueSxcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICB1cmw6IHN0cmluZyxcbiAgICBmaWx0ZXI6IGFueSA9IG51bGwsXG4gICkgPT4ge1xuICAgIGlmIChjc3JmICE9PSBudWxsKSB7XG4gICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICdYLUNTUkYtVG9rZW4nOiBjc3JmLFxuICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwcmVwYXJlZFBhcmFtcyksXG4gICAgICB9KVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICBnZXRQb2ludHNUb0ZpbHRlcnMoZGF0YS5hdmFpbGFibGVfZmlsdGVyX2l0ZW1zLCBkYXRhLmZpbHRlcnMpO1xuXG4gICAgICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IHNhdmVkID0gZGF0YS5maWx0ZXJzLmZpbmQoXG4gICAgICAgICAgICAgIChmOiBJRmlsdGVyKSA9PiBmLm5hbWUgPT09IGZpbHRlci5uYW1lLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihzYXZlZCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KHNhdmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZWVwQ2xvbmUgPSAoZGF0YTogYW55KSA9PiB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9O1xuXG4gIGNvbnN0IGdldERhdGEgPSAoKSA9PiB7XG4gICAgZmV0Y2goXG4gICAgICBgL3VpX2ZpbHRlcnMuanNvbj93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX0mdmFsdWVzRnJvbUtRTD0ke2dldEtRTEZyb21VUkwoKX1gLFxuICAgIClcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgZ2V0UG9pbnRzVG9GaWx0ZXJzKGpzb24uYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcywganNvbi5maWx0ZXJzKTtcblxuICAgICAgICBsZXQganNvblNoYWxsb3dDb3B5ID0gT2JqZWN0LmFzc2lnbih7fSwganNvbik7XG4gICAgICAgIGpzb25TaGFsbG93Q29weS5maWx0ZXJzID0gZGVlcENsb25lKGpzb25TaGFsbG93Q29weS5maWx0ZXJzKTtcbiAgICAgICAgbGV0IGFjdGl2ZSA9IGpzb25TaGFsbG93Q29weS5kaXNwbGF5ZWRfZmlsdGVyO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBnbG9iYWxfZGF0YS5zZWxlY3RlZFBlcmlvZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2VsZWN0ZWRQZXJpb2QgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgYWN0aXZlLmZpbHRlcl9pdGVtc1sxXS5zZWxlY3RlZF9vcHRpb25zID0gW1xuICAgICAgICAgICAgZ2xvYmFsX2RhdGEuc2VsZWN0ZWRQZXJpb2QsXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3RpdmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGl2YXRlRmlsdGVyKGpzb25TaGFsbG93Q29weS5maWx0ZXJzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBdmFpbGFibGVGaWx0ZXJJdGVtcyhqc29uU2hhbGxvd0NvcHkuYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcyk7XG4gICAgICAgICAgc2V0QWN0aXZlRmlsdGVyKGFjdGl2ZSk7XG4gICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXBwbHlGaWx0ZXIoYWN0aXZlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZpbHRlckNoYW5nZSA9IChmaWx0ZXI6IElGaWx0ZXIpID0+IHtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIGZpbHRlckNvbnRlbnQuY3VycmVudCEuY2xpY2soKTtcbiAgfTtcblxuICBjb25zdCBzYXZlQWN0aXZlRmlsdGVyID0gKFxuICAgIGZpbHRlcjpcbiAgICAgIHwgSUZpbHRlclxuICAgICAgfCB7XG4gICAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgZmlsdGVyX2l0ZW1zOiBJRmlsdGVySXRlbVtdO1xuICAgICAgICAgIGlzX2FjdGl2ZTogYm9vbGVhbjtcbiAgICAgICAgfSxcbiAgKSA9PiB7XG4gICAgbGV0IGNsb25lZEZpbHRlcnMgPSBkZWVwQ2xvbmUoZmlsdGVycyk7XG4gICAgbGV0IGZpbHRlclRvTW9kaWZ5SW5kZXggPSBjbG9uZWRGaWx0ZXJzLmluZGV4T2YoXG4gICAgICBjbG9uZWRGaWx0ZXJzLmZpbmQoKGY6IGFueSkgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSxcbiAgICApO1xuICAgIGxldCBwcmVwYXJlZFBhcmFtcyA9IHtcbiAgICAgIGZpbHRlcl90eXBlOiBmZXRjaFR5cGUsXG4gICAgICB1aV9maWx0ZXI6IHtcbiAgICAgICAgbmFtZTogZmlsdGVyLm5hbWUsXG4gICAgICAgIGlzX2FjdGl2ZTogZmlsdGVyLmlzX2FjdGl2ZSxcbiAgICAgICAgZmlsdGVyX2l0ZW1zOiBKU09OLnN0cmluZ2lmeShmaWx0ZXIuZmlsdGVyX2l0ZW1zKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNsb25lZEZpbHRlcnNbZmlsdGVyVG9Nb2RpZnlJbmRleF0gPSBmaWx0ZXI7XG4gICAgc2V0RmlsdGVycyhjbG9uZWRGaWx0ZXJzKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZmlsdGVyKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG5cbiAgICBpZiAoTWF0aC5zaWduKGZpbHRlci5pZCkgPiAwKSB7XG4gICAgICBmZXRjaEV2ZW50RmlsdGVycyhcbiAgICAgICAgcHJlcGFyZWRQYXJhbXMsXG4gICAgICAgICdQVVQnLFxuICAgICAgICBgL3VpX2ZpbHRlcnMvJHtmaWx0ZXIuaWR9P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICAgIHByZXBhcmVkUGFyYW1zLFxuICAgICAgICAnUE9TVCcsXG4gICAgICAgIGAvdWlfZmlsdGVycz93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUZpbHRlciA9IChmaWx0ZXI6IElGaWx0ZXIsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGxldCBuZXdGaWx0ZXIgPSB7XG4gICAgICBpZDogLTEsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgZmlsdGVyX2l0ZW1zOiBmaWx0ZXIuZmlsdGVyX2l0ZW1zLFxuICAgICAgaXNfYWN0aXZlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgc2V0RmlsdGVycyhbLi4uZmlsdGVycywgbmV3RmlsdGVyXSk7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShuZXdGaWx0ZXIpO1xuICAgIHNldEFjdGl2ZUZpbHRlcihuZXdGaWx0ZXIpO1xuICAgIHNhdmVBY3RpdmVGaWx0ZXIobmV3RmlsdGVyKTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgaWYgKGNzcmYgIT09IG51bGwgJiYgZmlsdGVyLmlkICE9PSAtMSkge1xuICAgICAgZmV0Y2goXG4gICAgICAgIGAvdWlfZmlsdGVycy8ke2ZpbHRlci5pZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mZmlsdGVyX3R5cGU9JHtmZXRjaFR5cGV9YCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ1gtQ1NSRi1Ub2tlbic6IGNzcmYsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgbGV0IGFjdGl2ZSA9IGRhdGEuZmlsdGVycy5maW5kKFxuICAgICAgICAgICAgKGZpbHRlcjogSUZpbHRlcikgPT4gZmlsdGVyLmlzX2FjdGl2ZSA9PT0gdHJ1ZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGFjdGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRGaWx0ZXJzKGRhdGEuZmlsdGVycyk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoYWN0aXZlKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRhdGEuZmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgZ2V0RGF0YSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGF0YS5maWx0ZXJzWzBdLmlzX2FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihkYXRhLmZpbHRlcnNbMF0pO1xuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGRhdGEuZmlsdGVyc1swXSk7XG4gICAgICAgICAgICAgIHNldEZpbHRlcnMoZGF0YS5maWx0ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRFdmVudElkRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCdldmVudElkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0V2FJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnd2F0ZXJfYXV0aG9yaXR5X2lkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG5cbiAgY29uc3QgYWN0aXZhdGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICB7fSxcbiAgICAgICdQVVQnLFxuICAgICAgYC91aV9maWx0ZXJzL2FjdGl2YXRlLyR7ZmlsdGVyLmlkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX1gLFxuICAgICAgZmlsdGVyLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlGaWx0ZXIgPSAoZmlsdGVyID0gYWN0aXZlRmlsdGVyQ29weSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9ICdzZXZlcml0eSc7XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIHZhbHVlID0gJ25ld2VzdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChnZXRLUUxWYWx1ZXNGcm9tVVJMKCkgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCduZXdlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICduZXdlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdvbGRlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICdvbGRlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdzZXZlcml0eScpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhbHVlID0gJ3NldmVyaXR5JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZSA9PT0gJ2V2ZW50c192aWV3Jykge1xuICAgICAgY29uc29sZS53YXJuKCdidWlsZEtRTCcsIGJ1aWxkS1FMUXVlcnkoZmlsdGVyLCB2YWx1ZSkpO1xuICAgICAgaGlzdG9yeS5wdXNoKFxuICAgICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgfSZsb2NhbGU9JHtcbiAgICAgICAgICBuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlXG4gICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7XG4gICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KGZpbHRlciwgdmFsdWUpfWAsXG4gICAgICApO1xuXG4gICAgICBpZiAoYXBwbHlMb2dpYyAhPT0gdW5kZWZpbmVkKSBhcHBseUxvZ2ljKGJ1aWxkS1FMUXVlcnkoZmlsdGVyLCB2YWx1ZSkpO1xuICAgIH1cblxuICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oYnVpbGRLUUxRdWVyeShmaWx0ZXIsIHZhbHVlKSkpO1xuICAgIGRpc3BhdGNoKHNldEFjdGl2ZUZpbHRlckdsb2JhbGx5KGZpbHRlcikpO1xuICAgIC8vIEFsd2F5cyByZXNldCBwYWdlIHRvIDEgd2hlbiBhIG5ldyBmaWx0ZXIgaXMgYXBwbGllZFxuICAgIGRpc3BhdGNoKHNldFNhbXBsaW5nRGF0YSh7IGN1cnJlbnRQYWdlOiAxLCBpc0ZldGNoOiBmYWxzZSB9KSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRpb25DbGljayA9ICgpID0+IHtcbiAgICBjcmVhdGVGaWx0ZXIoYWN0aXZlRmlsdGVyQ29weSwgbmFtZUlucHV0LmN1cnJlbnQhLnZhbHVlKTtcbiAgICBuYW1lSW5wdXQuY3VycmVudCEudmFsdWUgPSAnJztcbiAgICBmaWx0ZXJDb250ZW50LmN1cnJlbnQhLmNsaWNrKCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRXYUlkKGdldFdhSWRGcm9tVVJMKCkpO1xuICAgIGlmICghcmVuZGVyZWQpIHtcbiAgICAgIHNldFJlbmRlcmVkKHRydWUpO1xuICAgICAgZ2V0RGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbSA9PT0gJycgJiYgZmlsdGVycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgbGV0IGZpbHRlciA9IGZpbHRlcnMuZmluZCgoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlci5pc19hY3RpdmU7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgc2V0UmVuZGVyZWQoZmFsc2UpO1xuICAgIH07XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLCBXYUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BmaWx0ZXItY29udGFpbmVyICR7XG4gICAgICAgIGZpbHRlclBvcHVwT3BlbiA/ICcnIDogJ2ZpbHRlci1jb250YWluZXItLWhpZGRlbidcbiAgICAgIH1gfVxuICAgID5cbiAgICAgIHthY3RpdmVGaWx0ZXJDb3B5ICE9PSB1bmRlZmluZWQgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbHRlci1jb250YWluZXJfX2NvbnRlbnQnfSByZWY9e2ZpbHRlckNvbnRlbnR9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmlsdGVyLWNvbnRhaW5lcl9fY29udGVudF9faGVhZGVyJ30+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3RpdGxlJ30+XG4gICAgICAgICAgICAgIDxoND57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmZpbHRlcicpfTwvaDQ+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydhY3Rpb25zJ30+XG4gICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24nfT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgPExpc3RJY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInByZXNldC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRweFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRweFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMWQxZDFkXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7YWN0aXZlRmlsdGVyQ29weS5uYW1lfXsnICd9XG4gICAgICAgICAgICAgICAgICB7YWN0aXZlRmlsdGVyQ29weS5pZCA9PT0gLTEgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxiPiAoe2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci51bnNhdmVkJyl9KSA8L2I+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgIDxGaWx0ZXJzRHJvcERvd25cbiAgICAgICAgICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVGaWx0ZXJDaGFuZ2U9e2hhbmRsZUZpbHRlckNoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHk9e2FjdGl2ZUZpbHRlckNvcHl9XG4gICAgICAgICAgICAgICAgICBhY3RpdmF0ZUZpbHRlcj17YWN0aXZhdGVGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICBkZWxldGVGaWx0ZXI9e2RlbGV0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duPlxuXG4gICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24nfT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgPFNhdmVJY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNhdmUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEzcHhcIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEzcHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFkMWQxZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLmxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uVG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgICAgICA8RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YWN0aXZlRmlsdGVyQ29weS5pZCA9PT0gLTEgPyB0cnVlIDogZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzYXZlQWN0aXZlRmlsdGVyKGFjdGl2ZUZpbHRlckNvcHkpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUuZXhpc3RpbmcnKX1cbiAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uSXRlbT5cbiAgICAgICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24gYWN0aW9uLS1zYXZlJ30+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bi5Ub2dnbGUgdmFyaWFudD1cInN1Y2Nlc3NcIiBpZD1cImRyb3Bkb3duLWJhc2ljXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLm5ldycpfVxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J25ldy1maWx0ZXItcG9wdXAnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUuZmllbGRfcGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmFtZSB0aGlzIGZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJiYXNpYy1hZGRvbjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25hbWVJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ3JlYXRpb25DbGljaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2RldmljZV9oZWFsdGhfc3RhdHVzLm9rJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgIDwvRHJvcGRvd24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmlsdGVyLWNvbnRhaW5lcl9fY29udGVudF9fYm9keSd9PlxuICAgICAgICAgICAgPEZpbHRlclxuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5PXtzZXRBY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5PXthY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcz17YXZhaWxhYmxlRmlsdGVySXRlbXN9XG4gICAgICAgICAgICAgIHBhcnNlU2VsZWN0ZWRJdGVtcz17cGFyc2VTZWxlY3RlZEl0ZW1zfVxuICAgICAgICAgICAgICBhcHBseUZpbHRlcj17YXBwbHlGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRmlsdGVyQ29udGFpbmVyKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGVBQUEsR0FBQUwsT0FBQTtBQUEyRCxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFBQSxJQUFBTyxLQUFBLEdBQUFQLE9BQUE7QUFNM0QsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBS0EsSUFBQVMsS0FBQSxHQUFBTixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVUsSUFBQSxHQUFBVixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBVyxPQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBWSxnQkFBQSxHQUFBVCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQXFFLFNBQUFjLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBaEIsd0JBQUFvQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFYLEdBQUEsRUFBQVksR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWixHQUFBLENBQUFZLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFILEdBQUEsTUFBQUksS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWpCLEdBQUEsRUFBQU8sTUFBQSxZQUFBQSxNQUFBO0FBQ3JFLFNBQVNXLGVBQWVBLENBQUNDLEtBQWdCLEVBQUU7RUFDekMsSUFBUUMsV0FBVyxHQUFvQ0QsS0FBSyxDQUFwREMsV0FBVztJQUFFQyxnQkFBZ0IsR0FBa0JGLEtBQUssQ0FBdkNFLGdCQUFnQjtJQUFFQyxXQUFXLEdBQUtILEtBQUssQ0FBckJHLFdBQVc7RUFFbEQsT0FBTztJQUNMRixXQUFXLEVBQVhBLFdBQVc7SUFDWEMsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJDLFdBQVcsRUFBWEE7RUFDRixDQUFDO0FBQ0g7QUFRQSxJQUFNQyxlQUFpQyxHQUFHLFNBQXBDQSxlQUFpQ0EsQ0FBSUMsS0FBSyxFQUFLO0VBQ25ELElBQ0VKLFdBQVcsR0FNVEksS0FBSyxDQU5QSixXQUFXO0lBQ1hDLGdCQUFnQixHQUtkRyxLQUFLLENBTFBILGdCQUFnQjtJQUNoQkMsV0FBVyxHQUlURSxLQUFLLENBSlBGLFdBQVc7SUFDWEcsZUFBZSxHQUdiRCxLQUFLLENBSFBDLGVBQWU7SUFDZkMsVUFBVSxHQUVSRixLQUFLLENBRlBFLFVBQVU7SUFBQUMsZ0JBQUEsR0FFUkgsS0FBSyxDQURQSSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRyxjQUFjLEdBQUFBLGdCQUFBO0VBRTVCLElBQU1FLFFBQVEsR0FBRyxJQUFBQyx1QkFBVyxFQUFDLENBQUM7RUFDOUIsSUFBTUMsU0FBUyxHQUFHLElBQUFDLGFBQU0sRUFBbUIsSUFBSSxDQUFDO0VBQ2hELElBQU1DLGFBQWEsR0FBRyxJQUFBRCxhQUFNLEVBQWlCLElBQUksQ0FBQztFQUNsRCxJQUFBRSxTQUFBLEdBQThCLElBQUFDLGVBQVEsRUFBTSxFQUFFLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLENBQUFsQyxPQUFBLEVBQUErQixTQUFBO0lBQXhDSSxPQUFPLEdBQUFGLFVBQUE7SUFBRUcsVUFBVSxHQUFBSCxVQUFBO0VBQzFCLElBQUFJLFVBQUEsR0FBd0QsSUFBQUwsZUFBUSxFQUFDLEVBQUUsQ0FBQztJQUFBTSxVQUFBLE9BQUFKLGVBQUEsQ0FBQWxDLE9BQUEsRUFBQXFDLFVBQUE7SUFBN0RFLG9CQUFvQixHQUFBRCxVQUFBO0lBQUVFLHVCQUF1QixHQUFBRixVQUFBO0VBQ3BELElBQUFHLFVBQUEsR0FBZ0MsSUFBQVQsZUFBUSxFQUFDLEtBQUssQ0FBQztJQUFBVSxVQUFBLE9BQUFSLGVBQUEsQ0FBQWxDLE9BQUEsRUFBQXlDLFVBQUE7SUFBeENFLFFBQVEsR0FBQUQsVUFBQTtJQUFFRSxXQUFXLEdBQUFGLFVBQUE7RUFDNUIsSUFBQUcsVUFBQSxHQUF3QixJQUFBYixlQUFRLEVBQWdCLENBQUM7SUFBQWMsVUFBQSxPQUFBWixlQUFBLENBQUFsQyxPQUFBLEVBQUE2QyxVQUFBO0lBQTFDRSxJQUFJLEdBQUFELFVBQUE7SUFBRUUsT0FBTyxHQUFBRixVQUFBO0VBQ3BCO0VBQ0EsSUFBQUcsVUFBQSxHQUF3QyxJQUFBakIsZUFBUSxFQUFNa0IsU0FBUyxDQUFDO0lBQUFDLFdBQUEsT0FBQWpCLGVBQUEsQ0FBQWxDLE9BQUEsRUFBQWlELFVBQUE7SUFBekRHLFlBQVksR0FBQUQsV0FBQTtJQUFFRSxlQUFlLEdBQUFGLFdBQUE7RUFDcEMsSUFBQUcsV0FBQSxHQUFnRCxJQUFBdEIsZUFBUSxFQUFNa0IsU0FBUyxDQUFDO0lBQUFLLFdBQUEsT0FBQXJCLGVBQUEsQ0FBQWxDLE9BQUEsRUFBQXNELFdBQUE7SUFBakVFLGdCQUFnQixHQUFBRCxXQUFBO0lBQUVFLG1CQUFtQixHQUFBRixXQUFBO0VBQzVDO0VBQ0EsSUFBTUcsSUFBSSxHQUFHQyxRQUFRLENBQ2xCQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FDeENDLFlBQVksQ0FBQyxTQUFTLENBQUM7RUFDMUIsSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztJQUNyQixPQUFPLElBQUlDLGVBQWUsQ0FBQyxJQUFBQywyQkFBVyxFQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDO0VBQ2xELENBQUM7RUFDRCxJQUFNQyxPQUFPLEdBQUcsSUFBQUMsMEJBQVUsRUFBQyxDQUFDO0VBQzVCLElBQU1DLEtBQUssR0FBR04sUUFBUSxDQUFDLENBQUM7RUFDeEIsSUFBTU8sYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBLEVBQVM7SUFDMUIsT0FBT0QsS0FBSyxDQUFDakUsR0FBRyxDQUFDLGVBQWUsQ0FBQztFQUNuQyxDQUFDO0VBRUQsSUFBTW1FLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUkvQixvQkFBeUIsRUFBRUosT0FBWSxFQUFLO0lBQ3RFLElBQUlvQyx1QkFBdUIsR0FBR2hDLG9CQUFvQixDQUFDaUMsSUFBSSxDQUNyRCxVQUFDQyxDQUFjO01BQUEsT0FBS0EsQ0FBQyxDQUFDQyxJQUFJLEtBQUsseUJBQXlCO0lBQUEsQ0FDMUQsQ0FBQztJQUNELElBQUlDLGtCQUFrQixHQUFHeEQsV0FBVyxDQUFDeUQsS0FBSyxDQUN2Q0MsTUFBTSxDQUFDLFVBQUNDLEtBQWE7TUFBQSxPQUFLQSxLQUFLLENBQUNDLG1CQUFtQixLQUFLLElBQUk7SUFBQSxFQUFDLENBQzdEQyxHQUFHLENBQUMsVUFBQ0YsS0FBYSxFQUFLO01BQ3RCLE9BQU87UUFBRUcsRUFBRSxFQUFFSCxLQUFLLENBQUNHLEVBQUU7UUFBRUMsSUFBSSxFQUFFSixLQUFLLENBQUNLLEtBQUssQ0FBQ0Q7TUFBSyxDQUFDO0lBQ2pELENBQUMsQ0FBQztJQUVKLElBQUlYLHVCQUF1QixLQUFLckIsU0FBUyxFQUFFO01BQ3pDcUIsdUJBQXVCLENBQUNhLE9BQU8sR0FBR1Qsa0JBQWtCO0lBQ3REO0lBRUF4QyxPQUFPLENBQUNrRCxPQUFPLENBQUMsVUFBQ1osQ0FBVSxFQUFLO01BQzlCLElBQUlhLFVBQVUsR0FBR2IsQ0FBQyxDQUFDYyxZQUFZLENBQUNmLElBQUksQ0FDbEMsVUFBQ2dCLEVBQWU7UUFBQSxPQUFLQSxFQUFFLENBQUNkLElBQUksS0FBSyx5QkFBeUI7TUFBQSxDQUM1RCxDQUFDO01BRUQsSUFBSVksVUFBVSxLQUFLcEMsU0FBUyxFQUFFO1FBQzVCb0MsVUFBVSxDQUFDRyxpQkFBaUIsR0FBR2Qsa0JBQWtCO01BQ25EO0lBQ0YsQ0FBQyxDQUFDO0lBRUZ2QyxVQUFVLENBQUNELE9BQU8sQ0FBQztFQUNyQixDQUFDO0VBRUQsSUFBTXVELGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQ3JCQyxjQUFtQixFQUNuQkMsTUFBYyxFQUNkQyxHQUFXLEVBRVI7SUFBQSxJQURIaEIsTUFBVyxHQUFBaUIsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQTVDLFNBQUEsR0FBQTRDLFNBQUEsTUFBRyxJQUFJO0lBRWxCLElBQUlwQyxJQUFJLEtBQUssSUFBSSxFQUFFO01BQ2pCc0MsS0FBSyxDQUFDSCxHQUFHLEVBQUU7UUFDVEQsTUFBTSxFQUFFQSxNQUFNO1FBQ2RLLE9BQU8sRUFBRTtVQUNQLGNBQWMsRUFBRSxrQkFBa0I7VUFDbEMsY0FBYyxFQUFFdkMsSUFBSTtVQUNwQndDLE1BQU0sRUFBRTtRQUNWLENBQUM7UUFDREMsSUFBSSxFQUFFQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ1YsY0FBYztNQUNyQyxDQUFDLENBQUMsQ0FDQ1csSUFBSSxDQUFDLFVBQUNDLFFBQVE7UUFBQSxPQUFLQSxRQUFRLENBQUNDLElBQUksQ0FBQyxDQUFDO01BQUEsRUFBQyxDQUNuQ0YsSUFBSSxDQUFDLFVBQUNHLElBQUksRUFBSztRQUNkbkMsa0JBQWtCLENBQUNtQyxJQUFJLENBQUNDLHNCQUFzQixFQUFFRCxJQUFJLENBQUN0RSxPQUFPLENBQUM7UUFFN0QsSUFBSTBDLE1BQU0sS0FBSyxJQUFJLEVBQUU7VUFDbkIsSUFBSThCLEtBQUssR0FBR0YsSUFBSSxDQUFDdEUsT0FBTyxDQUFDcUMsSUFBSSxDQUMzQixVQUFDQyxDQUFVO1lBQUEsT0FBS0EsQ0FBQyxDQUFDUyxJQUFJLEtBQUtMLE1BQU0sQ0FBQ0ssSUFBSTtVQUFBLENBQ3hDLENBQUM7VUFDRDdCLGVBQWUsQ0FBQ3NELEtBQUssQ0FBQztVQUN0QmxELG1CQUFtQixDQUFDa0QsS0FBSyxDQUFDO1FBQzVCO01BQ0YsQ0FBQyxDQUFDO0lBQ047RUFDRixDQUFDO0VBRUQsSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlILElBQVMsRUFBSztJQUMvQixPQUFPTCxJQUFJLENBQUNTLEtBQUssQ0FBQ1QsSUFBSSxDQUFDQyxTQUFTLENBQUNJLElBQUksQ0FBQyxDQUFDO0VBQ3pDLENBQUM7RUFFRCxJQUFNSyxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBQSxFQUFTO0lBQ3BCZCxLQUFLLHdDQUFBZSxNQUFBLENBRUQ5RixXQUFXLENBQUMrRixnQkFBZ0IsbUJBQUFELE1BQUEsQ0FDZHRGLFNBQVMscUJBQUFzRixNQUFBLENBQWtCMUMsYUFBYSxDQUFDLENBQUMsQ0FDNUQsQ0FBQyxDQUNFaUMsSUFBSSxDQUFDLFVBQUNDLFFBQVE7TUFBQSxPQUFLQSxRQUFRLENBQUNDLElBQUksQ0FBQyxDQUFDO0lBQUEsRUFBQyxDQUNuQ0YsSUFBSSxDQUFDLFVBQUNFLElBQUksRUFBSztNQUNkbEMsa0JBQWtCLENBQUNrQyxJQUFJLENBQUNFLHNCQUFzQixFQUFFRixJQUFJLENBQUNyRSxPQUFPLENBQUM7TUFFN0QsSUFBSThFLGVBQWUsR0FBRzNHLE1BQU0sQ0FBQzRHLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRVYsSUFBSSxDQUFDO01BQzdDUyxlQUFlLENBQUM5RSxPQUFPLEdBQUd5RSxTQUFTLENBQUNLLGVBQWUsQ0FBQzlFLE9BQU8sQ0FBQztNQUM1RCxJQUFJZ0YsTUFBTSxHQUFHRixlQUFlLENBQUNHLGdCQUFnQjtNQUU3QyxJQUNFbkcsV0FBVyxDQUFDb0csY0FBYyxLQUFLbkUsU0FBUyxJQUN4Q2pDLFdBQVcsQ0FBQ29HLGNBQWMsS0FBSyxJQUFJLEVBQ25DO1FBQ0FGLE1BQU0sQ0FBQzVCLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQytCLGdCQUFnQixHQUFHLENBQ3hDckcsV0FBVyxDQUFDb0csY0FBYyxDQUMzQjtNQUNIO01BRUEsSUFBSUYsTUFBTSxLQUFLakUsU0FBUyxFQUFFO1FBQ3hCcUUsY0FBYyxDQUFDTixlQUFlLENBQUM5RSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7TUFDNUMsQ0FBQyxNQUFNO1FBQ0xLLHVCQUF1QixDQUFDeUUsZUFBZSxDQUFDUCxzQkFBc0IsQ0FBQztRQUMvRHJELGVBQWUsQ0FBQzhELE1BQU0sQ0FBQztRQUN2QjFELG1CQUFtQixDQUFDMEQsTUFBTSxDQUFDO01BQzdCO01BRUFLLFdBQVcsQ0FBQ0wsTUFBTSxDQUFDO0lBQ3JCLENBQUMsQ0FBQztFQUNOLENBQUM7RUFFRCxJQUFNTSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJNUMsTUFBZSxFQUFLO0lBQzlDeEIsZUFBZSxDQUFDdUQsU0FBUyxDQUFDL0IsTUFBTSxDQUFDLENBQUM7SUFDbENwQixtQkFBbUIsQ0FBQ21ELFNBQVMsQ0FBQy9CLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDL0MsYUFBYSxDQUFDNEYsT0FBTyxDQUFFQyxLQUFLLENBQUMsQ0FBQztFQUNoQyxDQUFDO0VBRUQsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FDcEIvQyxNQU9LLEVBQ0Y7SUFDSCxJQUFJZ0QsYUFBYSxHQUFHakIsU0FBUyxDQUFDekUsT0FBTyxDQUFDO0lBQ3RDLElBQUkyRixtQkFBbUIsR0FBR0QsYUFBYSxDQUFDRSxPQUFPLENBQzdDRixhQUFhLENBQUNyRCxJQUFJLENBQUMsVUFBQ0MsQ0FBTTtNQUFBLE9BQUtBLENBQUMsQ0FBQ1EsRUFBRSxLQUFLSixNQUFNLENBQUNJLEVBQUU7SUFBQSxFQUNuRCxDQUFDO0lBQ0QsSUFBSVUsY0FBYyxHQUFHO01BQ25CcUMsV0FBVyxFQUFFdkcsU0FBUztNQUN0QndHLFNBQVMsRUFBRTtRQUNUL0MsSUFBSSxFQUFFTCxNQUFNLENBQUNLLElBQUk7UUFDakJnRCxTQUFTLEVBQUVyRCxNQUFNLENBQUNxRCxTQUFTO1FBQzNCM0MsWUFBWSxFQUFFYSxJQUFJLENBQUNDLFNBQVMsQ0FBQ3hCLE1BQU0sQ0FBQ1UsWUFBWTtNQUNsRDtJQUNGLENBQUM7SUFFRHNDLGFBQWEsQ0FBQ0MsbUJBQW1CLENBQUMsR0FBR2pELE1BQU07SUFDM0N6QyxVQUFVLENBQUN5RixhQUFhLENBQUM7SUFDekJ4RSxlQUFlLENBQUN3QixNQUFNLENBQUM7SUFDdkJwQixtQkFBbUIsQ0FBQ29CLE1BQU0sQ0FBQztJQUUzQixJQUFJc0QsSUFBSSxDQUFDQyxJQUFJLENBQUN2RCxNQUFNLENBQUNJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRTtNQUM1QlMsaUJBQWlCLENBQ2ZDLGNBQWMsRUFDZCxLQUFLLGlCQUFBb0IsTUFBQSxDQUNVbEMsTUFBTSxDQUFDSSxFQUFFLDBCQUFBOEIsTUFBQSxDQUF1QjlGLFdBQVcsQ0FBQytGLGdCQUFnQixHQUMzRW5DLE1BQ0YsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMYSxpQkFBaUIsQ0FDZkMsY0FBYyxFQUNkLE1BQU0sb0NBQUFvQixNQUFBLENBQzRCOUYsV0FBVyxDQUFDK0YsZ0JBQWdCLEdBQzlEbkMsTUFDRixDQUFDO0lBQ0g7RUFDRixDQUFDO0VBRUQsSUFBTXdELFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJeEQsTUFBZSxFQUFFSyxJQUFZLEVBQUs7SUFDdEQsSUFBSW9ELFNBQVMsR0FBRztNQUNkckQsRUFBRSxFQUFFLENBQUMsQ0FBQztNQUNOQyxJQUFJLEVBQUVBLElBQUk7TUFDVkssWUFBWSxFQUFFVixNQUFNLENBQUNVLFlBQVk7TUFDakMyQyxTQUFTLEVBQUU7SUFDYixDQUFDO0lBRUQ5RixVQUFVLElBQUEyRSxNQUFBLEtBQUF3QixtQkFBQSxDQUFBdkksT0FBQSxFQUFLbUMsT0FBTyxJQUFFbUcsU0FBUyxFQUFDLENBQUM7SUFDbkM3RSxtQkFBbUIsQ0FBQzZFLFNBQVMsQ0FBQztJQUM5QmpGLGVBQWUsQ0FBQ2lGLFNBQVMsQ0FBQztJQUMxQlYsZ0JBQWdCLENBQUNVLFNBQVMsQ0FBQztFQUM3QixDQUFDO0VBRUQsSUFBTUUsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUkzRCxNQUFlLEVBQUs7SUFDeEMsSUFBSW5CLElBQUksS0FBSyxJQUFJLElBQUltQixNQUFNLENBQUNJLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRTtNQUNyQ2UsS0FBSyxnQkFBQWUsTUFBQSxDQUNZbEMsTUFBTSxDQUFDSSxFQUFFLDBCQUFBOEIsTUFBQSxDQUF1QjlGLFdBQVcsQ0FBQytGLGdCQUFnQixtQkFBQUQsTUFBQSxDQUFnQnRGLFNBQVMsR0FDcEc7UUFDRW1FLE1BQU0sRUFBRSxRQUFRO1FBQ2hCSyxPQUFPLEVBQUU7VUFDUCxjQUFjLEVBQUV2QztRQUNsQjtNQUNGLENBQ0YsQ0FBQyxDQUNFNEMsSUFBSSxDQUFDLFVBQUNDLFFBQVE7UUFBQSxPQUFLQSxRQUFRLENBQUNDLElBQUksQ0FBQyxDQUFDO01BQUEsRUFBQyxDQUNuQ0YsSUFBSSxDQUFDLFVBQUNHLElBQUksRUFBSztRQUNkLElBQUlVLE1BQU0sR0FBR1YsSUFBSSxDQUFDdEUsT0FBTyxDQUFDcUMsSUFBSSxDQUM1QixVQUFDSyxNQUFlO1VBQUEsT0FBS0EsTUFBTSxDQUFDcUQsU0FBUyxLQUFLLElBQUk7UUFBQSxDQUNoRCxDQUFDO1FBRUQsSUFBSWYsTUFBTSxLQUFLakUsU0FBUyxFQUFFO1VBQ3hCZCxVQUFVLENBQUNxRSxJQUFJLENBQUN0RSxPQUFPLENBQUM7VUFDeEJrQixlQUFlLENBQUM4RCxNQUFNLENBQUM7VUFDdkIxRCxtQkFBbUIsQ0FBQzBELE1BQU0sQ0FBQztRQUM3QixDQUFDLE1BQU07VUFDTCxJQUFJVixJQUFJLENBQUN0RSxPQUFPLENBQUM0RCxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCZSxPQUFPLENBQUMsQ0FBQztVQUNYLENBQUMsTUFBTTtZQUNMTCxJQUFJLENBQUN0RSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMrRixTQUFTLEdBQUcsSUFBSTtZQUNoQzdFLGVBQWUsQ0FBQ29ELElBQUksQ0FBQ3RFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQ3NCLG1CQUFtQixDQUFDZ0QsSUFBSSxDQUFDdEUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDQyxVQUFVLENBQUNxRSxJQUFJLENBQUN0RSxPQUFPLENBQUM7VUFDMUI7UUFDRjtNQUNGLENBQUMsQ0FBQztJQUNOO0VBQ0YsQ0FBQztFQUVELElBQU1zRyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBLEVBQVM7SUFDOUIsT0FBT3JFLEtBQUssQ0FBQ2pFLEdBQUcsQ0FBQyxTQUFTLENBQUM7RUFDN0IsQ0FBQztFQUVELElBQU11SSxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUEsRUFBUztJQUMzQixPQUFPdEUsS0FBSyxDQUFDakUsR0FBRyxDQUFDLG9CQUFvQixDQUFDO0VBQ3hDLENBQUM7RUFFRCxJQUFNd0ksbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBQSxFQUFTO0lBQ2hDLE9BQU92RSxLQUFLLENBQUNqRSxHQUFHLENBQUMsZUFBZSxDQUFDO0VBQ25DLENBQUM7RUFFRCxJQUFNb0gsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJMUMsTUFBZSxFQUFLO0lBQzFDYSxpQkFBaUIsQ0FDZixDQUFDLENBQUMsRUFDRixLQUFLLDBCQUFBcUIsTUFBQSxDQUNtQmxDLE1BQU0sQ0FBQ0ksRUFBRSwwQkFBQThCLE1BQUEsQ0FBdUI5RixXQUFXLENBQUMrRixnQkFBZ0IsbUJBQUFELE1BQUEsQ0FBZ0J0RixTQUFTLEdBQzdHb0QsTUFDRixDQUFDO0VBQ0gsQ0FBQztFQUVELElBQU0yQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFrQztJQUFBLElBQTlCM0MsTUFBTSxHQUFBaUIsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQTVDLFNBQUEsR0FBQTRDLFNBQUEsTUFBR3RDLGdCQUFnQjtJQUM1QyxJQUFJb0YsS0FBSyxHQUFHLFVBQVU7SUFFdEIsSUFBSTFILGdCQUFnQixDQUFDMkgsVUFBVSxDQUFDM0QsSUFBSSxLQUFLLGdCQUFnQixFQUFFO01BQ3pEMEQsS0FBSyxHQUFHLFFBQVE7SUFDbEIsQ0FBQyxNQUFNO01BQ0wsSUFBSUQsbUJBQW1CLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQyxJQUNFQSxtQkFBbUIsQ0FBQyxDQUFDLENBQUVHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFDM0NILG1CQUFtQixDQUFDLENBQUMsQ0FBRUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUN6QztVQUNBRixLQUFLLEdBQUcsUUFBUTtRQUNsQixDQUFDLE1BQU0sSUFDTEQsbUJBQW1CLENBQUMsQ0FBQyxDQUFFRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQzNDSCxtQkFBbUIsQ0FBQyxDQUFDLENBQUVHLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFDekM7VUFDQUYsS0FBSyxHQUFHLFFBQVE7UUFDbEIsQ0FBQyxNQUFNLElBQ0xELG1CQUFtQixDQUFDLENBQUMsQ0FBRUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUMzQ0gsbUJBQW1CLENBQUMsQ0FBQyxDQUFFRyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQzNDO1VBQ0FGLEtBQUssR0FBRyxVQUFVO1FBQ3BCO01BQ0Y7SUFDRjtJQUVBLElBQUkxSCxnQkFBZ0IsQ0FBQzJILFVBQVUsQ0FBQzNELElBQUksS0FBSyxhQUFhLEVBQUU7TUFDdEQ2RCxPQUFPLENBQUNDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBQUMsa0JBQWEsRUFBQ3BFLE1BQU0sRUFBRStELEtBQUssQ0FBQyxDQUFDO01BQ3REMUUsT0FBTyxDQUFDZ0YsSUFBSSxLQUFBbkMsTUFBQSxDQUNON0YsZ0JBQWdCLENBQUMySCxVQUFVLENBQUMzRCxJQUFJLGdDQUFBNkIsTUFBQSxDQUNsQzlGLFdBQVcsQ0FBQytGLGdCQUFnQixjQUFBRCxNQUFBLENBRTVCN0YsZ0JBQWdCLENBQUMySCxVQUFVLENBQUNNLE1BQU0sZUFBQXBDLE1BQUEsQ0FDeEIwQixpQkFBaUIsQ0FBQyxDQUFDLHFCQUFBMUIsTUFBQSxDQUFrQixJQUFBa0Msa0JBQWEsRUFDNURwRSxNQUFNLEVBQ04rRCxLQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0g7SUFFQSxJQUFJMUgsZ0JBQWdCLENBQUMySCxVQUFVLENBQUMzRCxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7TUFDekRoQixPQUFPLENBQUNnRixJQUFJLEtBQUFuQyxNQUFBLENBQ043RixnQkFBZ0IsQ0FBQzJILFVBQVUsQ0FBQzNELElBQUksZ0NBQUE2QixNQUFBLENBQ2xDOUYsV0FBVyxDQUFDK0YsZ0JBQWdCLGNBQUFELE1BQUEsQ0FFNUI3RixnQkFBZ0IsQ0FBQzJILFVBQVUsQ0FBQ00sTUFBTSxxQkFBQXBDLE1BQUEsQ0FDbEIsSUFBQWtDLGtCQUFhLEVBQUNwRSxNQUFNLEVBQUUrRCxLQUFLLENBQUMsQ0FDaEQsQ0FBQztNQUVELElBQUlySCxVQUFVLEtBQUsyQixTQUFTLEVBQUUzQixVQUFVLENBQUMsSUFBQTBILGtCQUFhLEVBQUNwRSxNQUFNLEVBQUUrRCxLQUFLLENBQUMsQ0FBQztJQUN4RTtJQUVBbEgsUUFBUSxDQUFDLElBQUEwSCw0QkFBbUIsRUFBQyxJQUFBSCxrQkFBYSxFQUFDcEUsTUFBTSxFQUFFK0QsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRGxILFFBQVEsQ0FBQyxJQUFBMkgsZ0NBQXVCLEVBQUN4RSxNQUFNLENBQUMsQ0FBQztJQUN6QztJQUNBbkQsUUFBUSxDQUFDLElBQUE0SCwrQkFBZSxFQUFDO01BQUVDLFdBQVcsRUFBRSxDQUFDO01BQUVDLE9BQU8sRUFBRTtJQUFNLENBQUMsQ0FBQyxDQUFDO0VBQy9ELENBQUM7RUFFRCxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7SUFDaENwQixZQUFZLENBQUM3RSxnQkFBZ0IsRUFBRTVCLFNBQVMsQ0FBQzhGLE9BQU8sQ0FBRWtCLEtBQUssQ0FBQztJQUN4RGhILFNBQVMsQ0FBQzhGLE9BQU8sQ0FBRWtCLEtBQUssR0FBRyxFQUFFO0lBQzdCOUcsYUFBYSxDQUFDNEYsT0FBTyxDQUFFQyxLQUFLLENBQUMsQ0FBQztFQUNoQyxDQUFDO0VBRUQsSUFBQStCLGdCQUFTLEVBQUMsWUFBTTtJQUNkMUcsT0FBTyxDQUFDMEYsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN6QixJQUFJLENBQUMvRixRQUFRLEVBQUU7TUFDYkMsV0FBVyxDQUFDLElBQUksQ0FBQztNQUNqQmtFLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxNQUFNO01BQ0wsSUFBSTdGLFdBQVcsQ0FBQzBJLGdCQUFnQixLQUFLLEVBQUUsSUFBSXhILE9BQU8sQ0FBQzRELE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDL0QsSUFBSWxCLE1BQU0sR0FBRzFDLE9BQU8sQ0FBQ3FDLElBQUksQ0FBQyxVQUFDSyxNQUFlLEVBQUs7VUFDN0MsT0FBT0EsTUFBTSxDQUFDcUQsU0FBUztRQUN6QixDQUFDLENBQUM7UUFDRnpFLG1CQUFtQixDQUFDb0IsTUFBTSxDQUFDO01BQzdCO0lBQ0Y7SUFDQSxPQUFPLFNBQVMrRSxPQUFPQSxDQUFBLEVBQUc7TUFDeEJoSCxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQzNCLFdBQVcsQ0FBQytGLGdCQUFnQixFQUFFakUsSUFBSSxDQUFDLENBQUM7RUFFeEMsb0JBQ0V2RSxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBO0lBQ0VDLFNBQVMsc0JBQUEvQyxNQUFBLENBQ1B6RixlQUFlLEdBQUcsRUFBRSxHQUFHLDBCQUEwQjtFQUNoRCxHQUVGa0MsZ0JBQWdCLEtBQUtOLFNBQVMsaUJBQzdCMUUsTUFBQSxDQUFBd0IsT0FBQSxDQUFBNkosYUFBQTtJQUFLQyxTQUFTLEVBQUUsMkJBQTRCO0lBQUNDLEdBQUcsRUFBRWpJO0VBQWMsZ0JBQzlEdEQsTUFBQSxDQUFBd0IsT0FBQSxDQUFBNkosYUFBQTtJQUFLQyxTQUFTLEVBQUU7RUFBb0MsZ0JBQ2xEdEwsTUFBQSxDQUFBd0IsT0FBQSxDQUFBNkosYUFBQTtJQUFLQyxTQUFTLEVBQUU7RUFBUSxnQkFDdEJ0TCxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLGFBQUtHLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLCtCQUErQixDQUFNLENBQzlDLENBQUMsZUFFTnpMLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUE7SUFBS0MsU0FBUyxFQUFFO0VBQVUsZ0JBQ3hCdEwsTUFBQSxDQUFBd0IsT0FBQSxDQUFBNkosYUFBQSxDQUFDakwsU0FBQSxDQUFBb0IsT0FBUTtJQUFDOEosU0FBUyxFQUFFO0VBQVMsZ0JBQzVCdEwsTUFBQSxDQUFBd0IsT0FBQSxDQUFBNkosYUFBQSxDQUFDakwsU0FBQSxDQUFBb0IsT0FBUSxDQUFDa0ssTUFBTTtJQUFDQyxPQUFPLEVBQUMsU0FBUztJQUFDbEYsRUFBRSxFQUFDO0VBQWdCLGdCQUNwRHpHLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsQ0FBQzVLLEtBQUEsQ0FBQW1MLGNBQVE7SUFDUE4sU0FBUyxFQUFDLGFBQWE7SUFDdkJPLE1BQU0sRUFBQyxNQUFNO0lBQ2JDLEtBQUssRUFBQyxNQUFNO0lBQ1pDLElBQUksRUFBQztFQUFTLENBQ2YsQ0FBQyxFQUNEL0csZ0JBQWdCLENBQUMwQixJQUFJLEVBQUUsR0FBRyxFQUMxQjFCLGdCQUFnQixDQUFDeUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxnQkFDekJ6RyxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLFlBQUcsSUFBRSxFQUFDRyxhQUFJLENBQUNDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFDLElBQUssQ0FBQyxHQUVyRCxFQUVhLENBQUMsZUFFbEJ6TCxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLENBQUN2SyxnQkFBQSxDQUFBVSxPQUFlO0lBQ2RtQyxPQUFPLEVBQUVBLE9BQVE7SUFDakJzRixrQkFBa0IsRUFBRUEsa0JBQW1CO0lBQ3ZDakUsZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUNuQytELGNBQWMsRUFBRUEsY0FBZTtJQUMvQmlCLFlBQVksRUFBRUE7RUFBYSxDQUM1QixDQUNPLENBQUMsZUFFWGhLLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsQ0FBQ2pMLFNBQUEsQ0FBQW9CLE9BQVE7SUFBQzhKLFNBQVMsRUFBRTtFQUFTLGdCQUM1QnRMLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsQ0FBQ2pMLFNBQUEsQ0FBQW9CLE9BQVEsQ0FBQ2tLLE1BQU07SUFBQ0MsT0FBTyxFQUFDLFNBQVM7SUFBQ2xGLEVBQUUsRUFBQztFQUFnQixnQkFDcER6RyxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLENBQUM3SyxTQUFBLENBQUFvTCxjQUFRO0lBQ1BOLFNBQVMsRUFBQyxXQUFXO0lBQ3JCTyxNQUFNLEVBQUMsTUFBTTtJQUNiQyxLQUFLLEVBQUMsTUFBTTtJQUNaQyxJQUFJLEVBQUM7RUFBUyxDQUNmLENBQUMsZUFDRi9MLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsZUFBT0csYUFBSSxDQUFDQyxDQUFDLENBQUMsbUNBQW1DLENBQVEsQ0FDMUMsQ0FBQyxlQUVsQnpMLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsQ0FBQ2pMLFNBQUEsQ0FBQW9CLE9BQVEsQ0FBQ3dLLElBQUkscUJBQ1poTSxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLENBQUNqTCxTQUFBLENBQUFvQixPQUFRLENBQUN5SyxJQUFJO0lBQ1pDLFFBQVEsRUFBRWxILGdCQUFnQixDQUFDeUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFNO0lBQ3BEMEYsT0FBTyxFQUFFLFNBQUFBLFFBQUEsRUFBTTtNQUNiL0MsZ0JBQWdCLENBQUNwRSxnQkFBZ0IsQ0FBQztJQUNwQztFQUFFLEdBRUR3RyxhQUFJLENBQUNDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FDakMsQ0FBQyxlQUNoQnpMLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsQ0FBQ2pMLFNBQUEsQ0FBQW9CLE9BQVE7SUFBQzhKLFNBQVMsRUFBRTtFQUFzQixnQkFDekN0TCxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLENBQUNqTCxTQUFBLENBQUFvQixPQUFRLENBQUNrSyxNQUFNO0lBQUNDLE9BQU8sRUFBQyxTQUFTO0lBQUNsRixFQUFFLEVBQUM7RUFBZ0IsR0FDbkQrRSxhQUFJLENBQUNDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FDMUIsQ0FBQyxlQUVsQnpMLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsQ0FBQ2pMLFNBQUEsQ0FBQW9CLE9BQVEsQ0FBQ3dLLElBQUkscUJBQ1poTSxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBO0lBQUtDLFNBQVMsRUFBRTtFQUFtQixnQkFDakN0TCxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLENBQUNsTCxlQUFBLENBQUFpTSxXQUFXO0lBQ1ZDLFdBQVcsRUFBRWIsYUFBSSxDQUFDQyxDQUFDLENBQ2pCLCtDQUNGLENBQUU7SUFDRixjQUFXLGtCQUFrQjtJQUM3QixvQkFBaUIsY0FBYztJQUMvQkYsR0FBRyxFQUFFbkksU0FBVTtJQUNma0osU0FBUyxFQUFFO0VBQUssQ0FDakIsQ0FBQyxlQUNGdE0sTUFBQSxDQUFBd0IsT0FBQSxDQUFBNkosYUFBQSxXQUFLLENBQUMsZUFDTnJMLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTZKLGFBQUEsQ0FBQ2xMLGVBQUEsQ0FBQW9NLE1BQU07SUFDTEosT0FBTyxFQUFFLFNBQUFBLFFBQUEsRUFBTTtNQUNibEIsbUJBQW1CLENBQUMsQ0FBQztJQUN2QixDQUFFO0lBQ0ZVLE9BQU8sRUFBQztFQUFTLEdBRWhCSCxhQUFJLENBQUNDLENBQUMsQ0FBQyx5QkFBeUIsQ0FDM0IsQ0FDTCxDQUNRLENBQ1AsQ0FDRyxDQUNQLENBQ1AsQ0FDRixDQUFDLGVBRU56TCxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBO0lBQUtDLFNBQVMsRUFBRTtFQUFrQyxnQkFDaER0TCxNQUFBLENBQUF3QixPQUFBLENBQUE2SixhQUFBLENBQUN4SyxPQUFBLENBQUFXLE9BQU07SUFDTHlELG1CQUFtQixFQUFFQSxtQkFBb0I7SUFDekNELGdCQUFnQixFQUFFQSxnQkFBaUI7SUFDbkNqQixvQkFBb0IsRUFBRUEsb0JBQXFCO0lBQzNDeUksa0JBQWtCLEVBQUVBLHVCQUFtQjtJQUN2Q3hELFdBQVcsRUFBRUE7RUFBWSxDQUMxQixDQUNFLENBQ0YsQ0FFSixDQUFDO0FBRVYsQ0FBQztBQUVELElBQU15RCxTQUFTLEdBQUcsSUFBQUMsbUJBQU8sRUFBQ25LLGVBQWUsQ0FBQztBQUFDLElBQUFvSyxRQUFBLEdBQzVCRixTQUFTLENBQUM3SixlQUFlLENBQUM7QUFBQWdLLE9BQUEsQ0FBQXBMLE9BQUEsR0FBQW1MLFFBQUEifQ==
365
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfRHJvcGRvd24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RSb3V0ZXJEb20iLCJfZGlza2V0dGUiLCJfbGlzdCIsIl9hY3Rpb25zIiwiX2kxOG4iLCJfa3FsIiwiX0ZpbHRlciIsIl9GaWx0ZXJzRHJvcERvd24iLCJfYWN0aW9uc0NyZWF0b3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJuYXZfY29udGV4dF9kYXRhIiwicG9pbnRzX2RhdGEiLCJGaWx0ZXJDb250YWluZXIiLCJwcm9wcyIsImZpbHRlclBvcHVwT3BlbiIsImFwcGx5TG9naWMiLCJfcHJvcHMkZmV0Y2hUeXBlIiwiZmV0Y2hUeXBlIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIm5hbWVJbnB1dCIsInVzZVJlZiIsImZpbHRlckNvbnRlbnQiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWx0ZXJzIiwic2V0RmlsdGVycyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYXZhaWxhYmxlRmlsdGVySXRlbXMiLCJzZXRBdmFpbGFibGVGaWx0ZXJJdGVtcyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicmVuZGVyZWQiLCJzZXRSZW5kZXJlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiV2FJZCIsInNldFdhSWQiLCJfdXNlU3RhdGU5IiwidW5kZWZpbmVkIiwiX3VzZVN0YXRlMTAiLCJhY3RpdmVGaWx0ZXIiLCJzZXRBY3RpdmVGaWx0ZXIiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiYWN0aXZlRmlsdGVyQ29weSIsInNldEFjdGl2ZUZpbHRlckNvcHkiLCJjc3JmIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZ2V0QXR0cmlidXRlIiwidXNlUXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJ1c2VMb2NhdGlvbiIsInNlYXJjaCIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwicXVlcnkiLCJnZXRLUUxGcm9tVVJMIiwiZ2V0UG9pbnRzVG9GaWx0ZXJzIiwiaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0iLCJmaW5kIiwiZiIsInR5cGUiLCJmaWx0ZXJlZFBvaW50c0RhdGEiLCJpdGVtcyIsImZpbHRlciIsInBvaW50IiwicGFydF9vZl9vYnNlcnZhdGlvbiIsIm1hcCIsImlkIiwibmFtZSIsImdyb3VwIiwib3B0aW9ucyIsImZvckVhY2giLCJmaWx0ZXJJdGVtIiwiZmlsdGVyX2l0ZW1zIiwiZmkiLCJhdmFpbGFibGVfb3B0aW9ucyIsImZldGNoRXZlbnRGaWx0ZXJzIiwicHJlcGFyZWRQYXJhbXMiLCJtZXRob2QiLCJ1cmwiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmZXRjaCIsImhlYWRlcnMiLCJBY2NlcHQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInRoZW4iLCJyZXNwb25zZSIsImpzb24iLCJkYXRhIiwiYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcyIsInNhdmVkIiwiZGVlcENsb25lIiwicGFyc2UiLCJnZXREYXRhIiwiY29uY2F0Iiwid2F0ZXJBdXRob3JpdHlJZCIsImpzb25TaGFsbG93Q29weSIsImFzc2lnbiIsImFjdGl2ZSIsImRpc3BsYXllZF9maWx0ZXIiLCJzZWxlY3RlZFBlcmlvZCIsInNlbGVjdGVkX29wdGlvbnMiLCJhY3RpdmF0ZUZpbHRlciIsImFwcGx5RmlsdGVyIiwiaGFuZGxlRmlsdGVyQ2hhbmdlIiwiY3VycmVudCIsImNsaWNrIiwic2F2ZUFjdGl2ZUZpbHRlciIsImNsb25lZEZpbHRlcnMiLCJmaWx0ZXJUb01vZGlmeUluZGV4IiwiaW5kZXhPZiIsImZpbHRlcl90eXBlIiwidWlfZmlsdGVyIiwiaXNfYWN0aXZlIiwiTWF0aCIsInNpZ24iLCJjcmVhdGVGaWx0ZXIiLCJuZXdGaWx0ZXIiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZGVsZXRlRmlsdGVyIiwiZ2V0RXZlbnRJZEZyb21VUkwiLCJnZXRXYUlkRnJvbVVSTCIsImdldEtRTFZhbHVlc0Zyb21VUkwiLCJ2YWx1ZSIsIm5hdkNvbnRleHQiLCJpbmNsdWRlcyIsInB1c2giLCJsb2NhbGUiLCJidWlsZEtRTFF1ZXJ5Iiwic2V0RXZlbnRGaWx0ZXJQYXJhbSIsInNldEFjdGl2ZUZpbHRlckdsb2JhbGx5Iiwic2V0U2FtcGxpbmdEYXRhIiwiY3VycmVudFBhZ2UiLCJpc0ZldGNoIiwiaGFuZGxlQ3JlYXRpb25DbGljayIsInVzZUVmZmVjdCIsImV2ZW50RmlsdGVyUGFyYW0iLCJjbGVhbnVwIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsImkxOG4iLCJ0IiwiVG9nZ2xlIiwidmFyaWFudCIsIlJlYWN0Q29tcG9uZW50IiwiaGVpZ2h0Iiwid2lkdGgiLCJmaWxsIiwiTWVudSIsIkl0ZW0iLCJkaXNhYmxlZCIsIm9uQ2xpY2siLCJGb3JtQ29udHJvbCIsInBsYWNlaG9sZGVyIiwiYXV0b0ZvY3VzIiwiQnV0dG9uIiwicGFyc2VTZWxlY3RlZEl0ZW1zIiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBGb3JtQ29udHJvbCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgRHJvcGRvd24gZnJvbSAncmVhY3QtYm9vdHN0cmFwL0Ryb3Bkb3duJztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVzZUhpc3RvcnksIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBTYXZlSWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvZGlza2V0dGUuc3ZnJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIExpc3RJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9saXN0LnN2Zyc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyBJRmlsdGVyIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlcic7XG5pbXBvcnQgeyBJRmlsdGVySXRlbSB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXJJdGVtJztcbmltcG9ydCB7XG4gIHNldEFjdGl2ZUZpbHRlckdsb2JhbGx5LFxuICBzZXRFdmVudEZpbHRlclBhcmFtLFxufSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBidWlsZEtRTFF1ZXJ5LCBwYXJzZVNlbGVjdGVkSXRlbXMgfSBmcm9tICdzcmMvdXRpbGl0aWVzL2txbCc7XG5pbXBvcnQgJy4vRmlsdGVyU3R5bGUuc2Nzcyc7XG5pbXBvcnQgRmlsdGVyIGZyb20gJy4vRmlsdGVyJztcbmltcG9ydCBGaWx0ZXJzRHJvcERvd24gZnJvbSAnLi9GaWx0ZXJzRHJvcERvd24nO1xuaW1wb3J0IHsgc2V0U2FtcGxpbmdEYXRhIH0gZnJvbSAnc3JjL3N0b3JlL3NhbXBsaW5ncy9hY3Rpb25zQ3JlYXRvcic7XG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7IGdsb2JhbF9kYXRhLCBuYXZfY29udGV4dF9kYXRhLCBwb2ludHNfZGF0YSB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIHtcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBmaWx0ZXJQb3B1cE9wZW46IGJvb2xlYW47XG4gIGZldGNoVHlwZTogc3RyaW5nO1xuICBhcHBseUxvZ2ljPzogKHZhbHVlczogc3RyaW5nKSA9PiB2b2lkO1xufTtcblxuY29uc3QgRmlsdGVyQ29udGFpbmVyOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGZpbHRlclBvcHVwT3BlbixcbiAgICBhcHBseUxvZ2ljLFxuICAgIGZldGNoVHlwZSA9ICdFdmVudEZpbHRlcnMnLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmFtZUlucHV0ID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBmaWx0ZXJDb250ZW50ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2ZpbHRlcnMsIHNldEZpbHRlcnNdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFthdmFpbGFibGVGaWx0ZXJJdGVtcywgc2V0QXZhaWxhYmxlRmlsdGVySXRlbXNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbcmVuZGVyZWQsIHNldFJlbmRlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW1dhSWQsIHNldFdhSWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4oKTtcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgY29uc3QgW2FjdGl2ZUZpbHRlciwgc2V0QWN0aXZlRmlsdGVyXSA9IHVzZVN0YXRlPGFueT4odW5kZWZpbmVkKTtcbiAgY29uc3QgW2FjdGl2ZUZpbHRlckNvcHksIHNldEFjdGl2ZUZpbHRlckNvcHldID0gdXNlU3RhdGU8YW55Pih1bmRlZmluZWQpO1xuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNzcmYgPSBkb2N1bWVudFxuICAgIC5xdWVyeVNlbGVjdG9yKFwibWV0YVtuYW1lPSdjc3JmLXRva2VuJ11cIilcbiAgICAuZ2V0QXR0cmlidXRlKCdjb250ZW50Jyk7XG4gIGNvbnN0IHVzZVF1ZXJ5ID0gKCkgPT4ge1xuICAgIHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKHVzZUxvY2F0aW9uKCkuc2VhcmNoKTtcbiAgfTtcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeSgpO1xuICBjb25zdCBnZXRLUUxGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3ZhbHVlc0Zyb21LUUwnKTtcbiAgfTtcblxuICBjb25zdCBnZXRQb2ludHNUb0ZpbHRlcnMgPSAoYXZhaWxhYmxlRmlsdGVySXRlbXM6IGFueSwgZmlsdGVyczogYW55KSA9PiB7XG4gICAgbGV0IGludGVyZXN0UG9pbnRGaWx0ZXJJdGVtID0gYXZhaWxhYmxlRmlsdGVySXRlbXMuZmluZChcbiAgICAgIChmOiBJRmlsdGVySXRlbSkgPT4gZi50eXBlID09PSAnSW50ZXJlc3RQb2ludEZpbHRlckl0ZW0nLFxuICAgICk7XG4gICAgbGV0IGZpbHRlcmVkUG9pbnRzRGF0YSA9IHBvaW50c19kYXRhLml0ZW1zXG4gICAgICAuZmlsdGVyKChwb2ludDogSVBvaW50KSA9PiBwb2ludC5wYXJ0X29mX29ic2VydmF0aW9uID09PSB0cnVlKVxuICAgICAgLm1hcCgocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgICAgICByZXR1cm4geyBpZDogcG9pbnQuaWQsIG5hbWU6IHBvaW50Lmdyb3VwLm5hbWUgfTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKGludGVyZXN0UG9pbnRGaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGludGVyZXN0UG9pbnRGaWx0ZXJJdGVtLm9wdGlvbnMgPSBmaWx0ZXJlZFBvaW50c0RhdGE7XG4gICAgfVxuXG4gICAgZmlsdGVycy5mb3JFYWNoKChmOiBJRmlsdGVyKSA9PiB7XG4gICAgICBsZXQgZmlsdGVySXRlbSA9IGYuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAgIChmaTogSUZpbHRlckl0ZW0pID0+IGZpLnR5cGUgPT09ICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbScsXG4gICAgICApO1xuXG4gICAgICBpZiAoZmlsdGVySXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMgPSBmaWx0ZXJlZFBvaW50c0RhdGE7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzZXRGaWx0ZXJzKGZpbHRlcnMpO1xuICB9O1xuXG4gIGNvbnN0IGZldGNoRXZlbnRGaWx0ZXJzID0gKFxuICAgIHByZXBhcmVkUGFyYW1zOiBhbnksXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZmlsdGVyOiBhbnkgPSBudWxsLFxuICApID0+IHtcbiAgICBpZiAoY3NyZiAhPT0gbnVsbCkge1xuICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAnWC1DU1JGLVRva2VuJzogY3NyZixcbiAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocHJlcGFyZWRQYXJhbXMpLFxuICAgICAgfSlcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgZ2V0UG9pbnRzVG9GaWx0ZXJzKGRhdGEuYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcywgZGF0YS5maWx0ZXJzKTtcblxuICAgICAgICAgIGlmIChmaWx0ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxldCBzYXZlZCA9IGRhdGEuZmlsdGVycy5maW5kKFxuICAgICAgICAgICAgICAoZjogSUZpbHRlcikgPT4gZi5uYW1lID09PSBmaWx0ZXIubmFtZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoc2F2ZWQpO1xuICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShzYXZlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGVlcENsb25lID0gKGRhdGE6IGFueSkgPT4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgfTtcblxuICBjb25zdCBnZXREYXRhID0gKCkgPT4ge1xuICAgIGZldGNoKFxuICAgICAgYC91aV9maWx0ZXJzLmpzb24/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7XG4gICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgIH0mZmlsdGVyX3R5cGU9JHtmZXRjaFR5cGV9JnZhbHVlc0Zyb21LUUw9JHtnZXRLUUxGcm9tVVJMKCl9YCxcbiAgICApXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgIGdldFBvaW50c1RvRmlsdGVycyhqc29uLmF2YWlsYWJsZV9maWx0ZXJfaXRlbXMsIGpzb24uZmlsdGVycyk7XG5cbiAgICAgICAgbGV0IGpzb25TaGFsbG93Q29weSA9IE9iamVjdC5hc3NpZ24oe30sIGpzb24pO1xuICAgICAgICBqc29uU2hhbGxvd0NvcHkuZmlsdGVycyA9IGRlZXBDbG9uZShqc29uU2hhbGxvd0NvcHkuZmlsdGVycyk7XG4gICAgICAgIGxldCBhY3RpdmUgPSBqc29uU2hhbGxvd0NvcHkuZGlzcGxheWVkX2ZpbHRlcjtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2VsZWN0ZWRQZXJpb2QgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGdsb2JhbF9kYXRhLnNlbGVjdGVkUGVyaW9kICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIGFjdGl2ZS5maWx0ZXJfaXRlbXNbMV0uc2VsZWN0ZWRfb3B0aW9ucyA9IFtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLnNlbGVjdGVkUGVyaW9kLFxuICAgICAgICAgIF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aXZlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RpdmF0ZUZpbHRlcihqc29uU2hhbGxvd0NvcHkuZmlsdGVyc1swXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0QXZhaWxhYmxlRmlsdGVySXRlbXMoanNvblNoYWxsb3dDb3B5LmF2YWlsYWJsZV9maWx0ZXJfaXRlbXMpO1xuICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihhY3RpdmUpO1xuICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFwcGx5RmlsdGVyKGFjdGl2ZSk7XG4gICAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGaWx0ZXJDaGFuZ2UgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgc2V0QWN0aXZlRmlsdGVyKGRlZXBDbG9uZShmaWx0ZXIpKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGRlZXBDbG9uZShmaWx0ZXIpKTtcbiAgICBmaWx0ZXJDb250ZW50LmN1cnJlbnQhLmNsaWNrKCk7XG4gIH07XG5cbiAgY29uc3Qgc2F2ZUFjdGl2ZUZpbHRlciA9IChcbiAgICBmaWx0ZXI6XG4gICAgICB8IElGaWx0ZXJcbiAgICAgIHwge1xuICAgICAgICAgIGlkOiBudW1iZXI7XG4gICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgIGZpbHRlcl9pdGVtczogSUZpbHRlckl0ZW1bXTtcbiAgICAgICAgICBpc19hY3RpdmU6IGJvb2xlYW47XG4gICAgICAgIH0sXG4gICkgPT4ge1xuICAgIGxldCBjbG9uZWRGaWx0ZXJzID0gZGVlcENsb25lKGZpbHRlcnMpO1xuICAgIGxldCBmaWx0ZXJUb01vZGlmeUluZGV4ID0gY2xvbmVkRmlsdGVycy5pbmRleE9mKFxuICAgICAgY2xvbmVkRmlsdGVycy5maW5kKChmOiBhbnkpID0+IGYuaWQgPT09IGZpbHRlci5pZCksXG4gICAgKTtcbiAgICBsZXQgcHJlcGFyZWRQYXJhbXMgPSB7XG4gICAgICBmaWx0ZXJfdHlwZTogZmV0Y2hUeXBlLFxuICAgICAgdWlfZmlsdGVyOiB7XG4gICAgICAgIG5hbWU6IGZpbHRlci5uYW1lLFxuICAgICAgICBpc19hY3RpdmU6IGZpbHRlci5pc19hY3RpdmUsXG4gICAgICAgIGZpbHRlcl9pdGVtczogSlNPTi5zdHJpbmdpZnkoZmlsdGVyLmZpbHRlcl9pdGVtcyksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjbG9uZWRGaWx0ZXJzW2ZpbHRlclRvTW9kaWZ5SW5kZXhdID0gZmlsdGVyO1xuICAgIHNldEZpbHRlcnMoY2xvbmVkRmlsdGVycyk7XG4gICAgc2V0QWN0aXZlRmlsdGVyKGZpbHRlcik7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShmaWx0ZXIpO1xuXG4gICAgaWYgKE1hdGguc2lnbihmaWx0ZXIuaWQpID4gMCkge1xuICAgICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICAgIHByZXBhcmVkUGFyYW1zLFxuICAgICAgICAnUFVUJyxcbiAgICAgICAgYC91aV9maWx0ZXJzLyR7ZmlsdGVyLmlkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZldGNoRXZlbnRGaWx0ZXJzKFxuICAgICAgICBwcmVwYXJlZFBhcmFtcyxcbiAgICAgICAgJ1BPU1QnLFxuICAgICAgICBgL3VpX2ZpbHRlcnM/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjcmVhdGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyLCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgbmV3RmlsdGVyID0ge1xuICAgICAgaWQ6IC0xLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIGZpbHRlcl9pdGVtczogZmlsdGVyLmZpbHRlcl9pdGVtcyxcbiAgICAgIGlzX2FjdGl2ZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHNldEZpbHRlcnMoWy4uLmZpbHRlcnMsIG5ld0ZpbHRlcl0pO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkobmV3RmlsdGVyKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXIobmV3RmlsdGVyKTtcbiAgICBzYXZlQWN0aXZlRmlsdGVyKG5ld0ZpbHRlcik7XG4gIH07XG5cbiAgY29uc3QgZGVsZXRlRmlsdGVyID0gKGZpbHRlcjogSUZpbHRlcikgPT4ge1xuICAgIGlmIChjc3JmICE9PSBudWxsICYmIGZpbHRlci5pZCAhPT0gLTEpIHtcbiAgICAgIGZldGNoKFxuICAgICAgICBgL3VpX2ZpbHRlcnMvJHtmaWx0ZXIuaWR9P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmZpbHRlcl90eXBlPSR7ZmV0Y2hUeXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdYLUNTUkYtVG9rZW4nOiBjc3JmLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIGxldCBhY3RpdmUgPSBkYXRhLmZpbHRlcnMuZmluZChcbiAgICAgICAgICAgIChmaWx0ZXI6IElGaWx0ZXIpID0+IGZpbHRlci5pc19hY3RpdmUgPT09IHRydWUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChhY3RpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0RmlsdGVycyhkYXRhLmZpbHRlcnMpO1xuICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyKGFjdGl2ZSk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGFjdGl2ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChkYXRhLmZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIGdldERhdGEoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRhdGEuZmlsdGVyc1swXS5pc19hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoZGF0YS5maWx0ZXJzWzBdKTtcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShkYXRhLmZpbHRlcnNbMF0pO1xuICAgICAgICAgICAgICBzZXRGaWx0ZXJzKGRhdGEuZmlsdGVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0RXZlbnRJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnZXZlbnRJZCcpO1xuICB9O1xuXG4gIGNvbnN0IGdldFdhSWRGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3dhdGVyX2F1dGhvcml0eV9pZCcpO1xuICB9O1xuXG4gIGNvbnN0IGdldEtRTFZhbHVlc0Zyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuXG4gIGNvbnN0IGFjdGl2YXRlRmlsdGVyID0gKGZpbHRlcjogSUZpbHRlcikgPT4ge1xuICAgIGZldGNoRXZlbnRGaWx0ZXJzKFxuICAgICAge30sXG4gICAgICAnUFVUJyxcbiAgICAgIGAvdWlfZmlsdGVycy9hY3RpdmF0ZS8ke2ZpbHRlci5pZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mZmlsdGVyX3R5cGU9JHtmZXRjaFR5cGV9YCxcbiAgICAgIGZpbHRlcixcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGFwcGx5RmlsdGVyID0gKGZpbHRlciA9IGFjdGl2ZUZpbHRlckNvcHkpID0+IHtcbiAgICBsZXQgdmFsdWUgPSAnc2V2ZXJpdHknO1xuXG4gICAgaWYgKG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lID09PSAnc2FtcGxpbmdzLWxpc3QnKSB7XG4gICAgICB2YWx1ZSA9ICduZXdlc3QnO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2V0S1FMVmFsdWVzRnJvbVVSTCgpICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdPUkRFUl9CWScpICYmXG4gICAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIS5pbmNsdWRlcygnbmV3ZXN0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFsdWUgPSAnbmV3ZXN0JztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdPUkRFUl9CWScpICYmXG4gICAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIS5pbmNsdWRlcygnb2xkZXN0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFsdWUgPSAnb2xkZXN0JztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdPUkRFUl9CWScpICYmXG4gICAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIS5pbmNsdWRlcygnc2V2ZXJpdHknKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICdzZXZlcml0eSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdldmVudHNfdmlldycpIHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7XG4gICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZ2YWx1ZXNGcm9tS1FMPSR7YnVpbGRLUUxRdWVyeShcbiAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lID09PSAnc2FtcGxpbmdzLWxpc3QnKSB7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7XG4gICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICB9JmxvY2FsZT0ke1xuICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgfSZ2YWx1ZXNGcm9tS1FMPSR7YnVpbGRLUUxRdWVyeShmaWx0ZXIsIHZhbHVlKX1gLFxuICAgICAgKTtcblxuICAgICAgaWYgKGFwcGx5TG9naWMgIT09IHVuZGVmaW5lZCkgYXBwbHlMb2dpYyhidWlsZEtRTFF1ZXJ5KGZpbHRlciwgdmFsdWUpKTtcbiAgICB9XG5cbiAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKGJ1aWxkS1FMUXVlcnkoZmlsdGVyLCB2YWx1ZSkpKTtcbiAgICBkaXNwYXRjaChzZXRBY3RpdmVGaWx0ZXJHbG9iYWxseShmaWx0ZXIpKTtcbiAgICAvLyBBbHdheXMgcmVzZXQgcGFnZSB0byAxIHdoZW4gYSBuZXcgZmlsdGVyIGlzIGFwcGxpZWRcbiAgICBkaXNwYXRjaChzZXRTYW1wbGluZ0RhdGEoeyBjdXJyZW50UGFnZTogMSwgaXNGZXRjaDogZmFsc2UgfSkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNyZWF0aW9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgY3JlYXRlRmlsdGVyKGFjdGl2ZUZpbHRlckNvcHksIG5hbWVJbnB1dC5jdXJyZW50IS52YWx1ZSk7XG4gICAgbmFtZUlucHV0LmN1cnJlbnQhLnZhbHVlID0gJyc7XG4gICAgZmlsdGVyQ29udGVudC5jdXJyZW50IS5jbGljaygpO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0V2FJZChnZXRXYUlkRnJvbVVSTCgpKTtcbiAgICBpZiAoIXJlbmRlcmVkKSB7XG4gICAgICBzZXRSZW5kZXJlZCh0cnVlKTtcbiAgICAgIGdldERhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW0gPT09ICcnICYmIGZpbHRlcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGxldCBmaWx0ZXIgPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcjogSUZpbHRlcikgPT4ge1xuICAgICAgICAgIHJldHVybiBmaWx0ZXIuaXNfYWN0aXZlO1xuICAgICAgICB9KTtcbiAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShmaWx0ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIHNldFJlbmRlcmVkKGZhbHNlKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCwgV2FJZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgZmlsdGVyLWNvbnRhaW5lciAke1xuICAgICAgICBmaWx0ZXJQb3B1cE9wZW4gPyAnJyA6ICdmaWx0ZXItY29udGFpbmVyLS1oaWRkZW4nXG4gICAgICB9YH1cbiAgICA+XG4gICAgICB7YWN0aXZlRmlsdGVyQ29weSAhPT0gdW5kZWZpbmVkICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eydmaWx0ZXItY29udGFpbmVyX19jb250ZW50J30gcmVmPXtmaWx0ZXJDb250ZW50fT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbHRlci1jb250YWluZXJfX2NvbnRlbnRfX2hlYWRlcid9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd0aXRsZSd9PlxuICAgICAgICAgICAgICA8aDQ+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5maWx0ZXInKX08L2g0PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnYWN0aW9ucyd9PlxuICAgICAgICAgICAgICA8RHJvcGRvd24gY2xhc3NOYW1lPXsnYWN0aW9uJ30+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duLlRvZ2dsZSB2YXJpYW50PVwic3VjY2Vzc1wiIGlkPVwiZHJvcGRvd24tYmFzaWNcIj5cbiAgICAgICAgICAgICAgICAgIDxMaXN0SWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwcmVzZXQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0cHhcIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE0cHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFkMWQxZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2FjdGl2ZUZpbHRlckNvcHkubmFtZX17JyAnfVxuICAgICAgICAgICAgICAgICAge2FjdGl2ZUZpbHRlckNvcHkuaWQgPT09IC0xID8gKFxuICAgICAgICAgICAgICAgICAgICA8Yj4gKHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIudW5zYXZlZCcpfSkgPC9iPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5Ub2dnbGU+XG5cbiAgICAgICAgICAgICAgICA8RmlsdGVyc0Ryb3BEb3duXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJzPXtmaWx0ZXJzfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsdGVyQ2hhbmdlPXtoYW5kbGVGaWx0ZXJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5PXthY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICAgICAgYWN0aXZhdGVGaWx0ZXI9e2FjdGl2YXRlRmlsdGVyfVxuICAgICAgICAgICAgICAgICAgZGVsZXRlRmlsdGVyPXtkZWxldGVGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cblxuICAgICAgICAgICAgICA8RHJvcGRvd24gY2xhc3NOYW1lPXsnYWN0aW9uJ30+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duLlRvZ2dsZSB2YXJpYW50PVwic3VjY2Vzc1wiIGlkPVwiZHJvcGRvd24tYmFzaWNcIj5cbiAgICAgICAgICAgICAgICAgIDxTYXZlSWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzYXZlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxM3B4XCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxM3B4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMxZDFkMWRcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuc2F2ZS5sYWJlbCcpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgIDxEcm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICAgICAgPERyb3Bkb3duLkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2FjdGl2ZUZpbHRlckNvcHkuaWQgPT09IC0xID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc2F2ZUFjdGl2ZUZpbHRlcihhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLmV4aXN0aW5nJyl9XG4gICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgICAgICAgICA8RHJvcGRvd24gY2xhc3NOYW1lPXsnYWN0aW9uIGFjdGlvbi0tc2F2ZSd9PlxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuc2F2ZS5uZXcnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5Ub2dnbGU+XG5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyduZXctZmlsdGVyLXBvcHVwJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLmZpZWxkX3BsYWNlaG9sZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5hbWUgdGhpcyBmaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYmFzaWMtYWRkb24yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtuYW1lSW5wdXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNyZWF0aW9uQ2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdkZXZpY2VfaGVhbHRoX3N0YXR1cy5vaycpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbHRlci1jb250YWluZXJfX2NvbnRlbnRfX2JvZHknfT5cbiAgICAgICAgICAgIDxGaWx0ZXJcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weT17c2V0QWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyQ29weT17YWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgICAgYXZhaWxhYmxlRmlsdGVySXRlbXM9e2F2YWlsYWJsZUZpbHRlckl0ZW1zfVxuICAgICAgICAgICAgICBwYXJzZVNlbGVjdGVkSXRlbXM9e3BhcnNlU2VsZWN0ZWRJdGVtc31cbiAgICAgICAgICAgICAgYXBwbHlGaWx0ZXI9e2FwcGx5RmlsdGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKEZpbHRlckNvbnRhaW5lcik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxlQUFBLEdBQUFMLE9BQUE7QUFBMkQsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQUEsSUFBQU8sS0FBQSxHQUFBUCxPQUFBO0FBTTNELElBQUFRLFFBQUEsR0FBQVIsT0FBQTtBQUtBLElBQUFTLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFVLElBQUEsR0FBQVYsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQVcsT0FBQSxHQUFBUixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVksZ0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFhLGVBQUEsR0FBQWIsT0FBQTtBQUFxRSxTQUFBYyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQWhCLHdCQUFBb0IsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFB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
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL09sZFNpdGVQYWdlL0lEYXNoYm9hcmREYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElTaXRlRGF0YSA9IHtcbiAgcG9pbnRfaWQ6IG51bWJlcjtcbiAgZ3JvdXA6IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbiAgc2VjdG9yX25hbWU6IHN0cmluZztcbiAgc2VjdG9ySWNvbk5hbWU6IHN0cmluZztcbiAgYXJlYToge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuICB3YXRlckF1dGhvcml0eToge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHd3dHBfbmFtZTogc3RyaW5nO1xuICBnZW86IG51bWJlcltdIHwgbnVsbDtcbiAgZGlzY2hhcmdpbmc6IGJvb2xlYW4gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgSVNpdGVJbmZvcm1hdGlvbiA9IHtcbiAgcG9pbnRfaWQ6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xuICBncm91cDoge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuICBzZWN0b3JfbmFtZTogc3RyaW5nO1xuICBzZWN0b3JfaWNvbl9uYW1lOiBzdHJpbmc7XG4gIGFyZWE6IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbiAgd2F0ZXJBdXRob3JpdHk6IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB3d3RwX25hbWU6IHN0cmluZztcbiAgZ2VvOiBudW1iZXJbXSB8IG51bGw7XG4gIGRpc2NoYXJnaW5nOiBib29sZWFuIHwgbnVsbDtcbiAgbWFpbl9jb2xsZWN0b3JzOiB7XG4gICAgcG9pbnRfaWQ6IG51bWJlcjtcbiAgICBsYXQ6IG51bWJlcjtcbiAgICBsbmc6IG51bWJlcjtcbiAgICBzaXRlX25hbWU6IHN0cmluZztcbiAgICBzaXRlX3R5cGU6IHN0cmluZztcbiAgICBzZWN0b3JfaWNvbl9uYW1lOiBzdHJpbmc7XG4gICAgc2VjdG9yX25hbWU6IHN0cmluZztcbiAgfVtdO1xufTtcblxuZXhwb3J0IHR5cGUgSUFyZWFEYXRhID0ge1xuICBhcmVhOiB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiIn0=
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL09sZFNpdGVQYWdlL0lEYXNoYm9hcmREYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElTaXRlRGF0YSA9IHtcbiAgcG9pbnRfaWQ6IG51bWJlcjtcbiAgZ3JvdXA6IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbiAgc2VjdG9yX25hbWU6IHN0cmluZztcbiAgc2VjdG9ySWNvbk5hbWU6IHN0cmluZztcbiAgYXJlYToge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuICB3YXRlckF1dGhvcml0eToge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHd3dHBfbmFtZTogc3RyaW5nO1xuICBnZW86IG51bWJlcltdIHwgbnVsbDtcbiAgZGlzY2hhcmdpbmc6IGJvb2xlYW4gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgSVNpdGVJbmZvcm1hdGlvbiA9IHtcbiAgc2l0ZV9pZDogbnVtYmVyO1xuICBzaXRlX3R5cGU6IHN0cmluZztcbiAgc2l0ZV9uYW1lOiBzdHJpbmc7XG4gIGFyZWFfbmFtZTogc3RyaW5nO1xuICBicmVhZGNydW1iczogKHN0cmluZyB8IHsgbmFtZTogc3RyaW5nOyBsaW5rOiBzdHJpbmcgfSlbXTtcbiAgc2VjdG9yX25hbWU6IHN0cmluZztcbiAgc2VjdG9yX2ljb25fbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHd3dHBfbmFtZTogc3RyaW5nO1xuICBnZW86IG51bWJlcltdIHwgbnVsbDtcbiAgZGlzY2hhcmdpbmc6IGJvb2xlYW4gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgSUFyZWFEYXRhID0ge1xuICBicmVhZGNydW1iczogKHN0cmluZyB8IHsgbmFtZTogc3RyaW5nOyBsaW5rOiBzdHJpbmcgfSlbXTtcbiAgbmFtZTogc3RyaW5nO1xufTtcbiJdLCJtYXBwaW5ncyI6IiJ9
@@ -24,15 +24,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
24
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
25
  var SiteInformation = function SiteInformation(_ref) {
26
26
  var siteData = _ref.siteData;
27
- var PIE_TYPES = ['wastewaterTreatmentPlant', 'collector', 'pumpStation'];
27
+ var PIE_TYPES = ['Groups::WastewaterTreatmentPlant', 'Groups::Collectors', 'Groups::PumpStation'];
28
28
  var wwtp_name = siteData.wwtp_name,
29
29
  geo = siteData.geo,
30
30
  sector_icon_name = siteData.sector_icon_name,
31
31
  sector_name = siteData.sector_name,
32
32
  discharging = siteData.discharging,
33
- area = siteData.area,
33
+ area_name = siteData.area_name,
34
34
  address = siteData.address,
35
- type = siteData.type;
35
+ site_type = siteData.site_type;
36
36
  var _useState = (0, _react.useState)(false),
37
37
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
38
38
  isMapModalOpen = _useState2[0],
@@ -42,7 +42,7 @@ var SiteInformation = function SiteInformation(_ref) {
42
42
  mainCollector = {
43
43
  lat: Number(geo[0]),
44
44
  lng: Number(geo[1]),
45
- site_type: type
45
+ site_type: site_type
46
46
  };
47
47
  }
48
48
  var handleMapModalOpen = function handleMapModalOpen(isOpen) {
@@ -51,7 +51,7 @@ var SiteInformation = function SiteInformation(_ref) {
51
51
  var enable_pollution_contributor = (0, _reactRedux.useSelector)(function (state) {
52
52
  return state.permissions.enable_pollution_contributor;
53
53
  });
54
- var showPie = enable_pollution_contributor && PIE_TYPES.includes(siteData.type);
54
+ var showPie = enable_pollution_contributor && PIE_TYPES.includes(siteData.site_type);
55
55
  var _useState3 = (0, _react.useState)(false),
56
56
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
57
57
  showContributors = _useState4[0],
@@ -108,7 +108,7 @@ var SiteInformation = function SiteInformation(_ref) {
108
108
  className: "label"
109
109
  }, _i18n.default.t('area.area'), ":"), /*#__PURE__*/_react.default.createElement("p", {
110
110
  className: "text"
111
- }, area.name)), /*#__PURE__*/_react.default.createElement("div", {
111
+ }, area_name)), /*#__PURE__*/_react.default.createElement("div", {
112
112
  className: "info"
113
113
  }, /*#__PURE__*/_react.default.createElement("p", {
114
114
  className: "label"
@@ -126,4 +126,4 @@ var Container = _styledComponents.default.div.withConfig({
126
126
  displayName: "SiteInformation__Container",
127
127
  componentId: "sc-8bp3ib-0"
128
128
  })(["grid-area:info;.title{font-family:Gilroy,Arial;font-size:24px;line-height:0.92;color:#1d1d1d;font-weight:normal;margin-bottom:14px;@media (min-width:1200px){@media (max-width:1450px){font-size:20px;@media (max-width:1250px){font-size:16px;}}}@media (max-width:400px){font-size:16px;}}.content{height:calc(100% - 37px);box-shadow:-0.9px -0.5px 5px 0 rgb(0 0 0 / 6%);border:solid 1px #ebebeb;padding:32px 19px 23px;.map-mock{height:calc(100% - 200px);width:100%;img{height:100%;width:100%;}}.header{.top{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid #ebebeb;.discharging{font-size:12px;font-weight:300;border:solid 1px #f6004f;border-radius:11px;padding:4px 13px;background-color:white;}}.bottom{padding-top:20px;font-size:14px;font-weight:300;position:relative;.info{display:flex;.label{width:100px;}}}}.map-container{height:calc(100% - 200px);}.map-box{padding:20px;width:100%;height:50px;}}"]);
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX01hcCIsIl9TZWN0b3IiLCJfTWFwTW9kYWwiLCJfdXJscyIsIl9yZWFjdFJvdXRlckRvbSIsIl9JY29uQWN0aW9uIiwiX2xpc3QiLCJfcmVhY3RSZWR1eCIsIl9Qb2xsdXRpb25Db250cmlidXRvciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiU2l0ZUluZm9ybWF0aW9uIiwiX3JlZiIsInNpdGVEYXRhIiwiUElFX1RZUEVTIiwid3d0cF9uYW1lIiwiZ2VvIiwic2VjdG9yX2ljb25fbmFtZSIsInNlY3Rvcl9uYW1lIiwiZGlzY2hhcmdpbmciLCJhcmVhIiwiYWRkcmVzcyIsInR5cGUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpc01hcE1vZGFsT3BlbiIsInNldElzTWFwTW9kYWxPcGVuIiwibWFpbkNvbGxlY3RvciIsImxhdCIsIk51bWJlciIsImxuZyIsInNpdGVfdHlwZSIsImhhbmRsZU1hcE1vZGFsT3BlbiIsImlzT3BlbiIsImVuYWJsZV9wb2xsdXRpb25fY29udHJpYnV0b3IiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwicGVybWlzc2lvbnMiLCJzaG93UGllIiwiaW5jbHVkZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dDb250cmlidXRvcnMiLCJzZXRTaG93Q29udHJpYnV0b3JzIiwiX3VzZVBhcmFtcyIsInVzZVBhcmFtcyIsInBvaW50SWQiLCJzaXRlSUQiLCJ1cmwiLCJ1cmxzIiwib3ZlcnZpZXciLCJwb2xsdXRpb25Db250cmlidXRvciIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUSIsInVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUTIiLCJjb250cmlidXRvckRhdGEiLCJjcmVhdGVFbGVtZW50IiwiQ29udGFpbmVyIiwiTWFwTW9kYWwiLCJpc01vZGFsT3BlbiIsImFyZWFUb0NlbnRlckJ5IiwiY2xvc2UiLCJjbGFzc05hbWUiLCJpMThuIiwidCIsIndpZHRoIiwiaGVpZ2h0Iiwic2VjdG9ySWNvbk5hbWUiLCJzZWN0b3JOYW1lIiwiY2FsbGJhY2siLCJ0ZXh0X2tleSIsIlJlYWN0Q29tcG9uZW50IiwiYXNzaWduIiwiZGF0YSIsIm9uQ2xvc2UiLCJuYW1lIiwiTWFwIiwibWFya2VycyIsInBvaW50cyIsImNvbG9yIiwib25NYXBNb2RhbE9wZW4iLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvU2l0ZVBhZ2UvU2l0ZUluZm9ybWF0aW9uL1NpdGVJbmZvcm1hdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IH0gZnJvbSAnc3JjL2hvb2tzL3VzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSc7XG5pbXBvcnQgeyBJU2l0ZUluZm9ybWF0aW9uIH0gZnJvbSAnc3JjL3BhZ2VzL09sZFNpdGVQYWdlL0lEYXNoYm9hcmREYXRhJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICdzcmMvV2lkZ2V0cy9Nb3N0UG9sbHV0aW5nL0FyZWFzL0FyZWFCb3gvTWFwL01hcCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCBTZWN0b3IgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9TZWN0b3InO1xuaW1wb3J0IHsgTWFwTW9kYWwgfSBmcm9tICdzcmMvV2lkZ2V0cy9VdGlsaXR5SW5mb3JtYXRpb24vTWFwTW9kYWwvTWFwTW9kYWwnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJ3NyYy91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBJY29uQWN0aW9uIGZyb20gJ3NyYy91aS1raXQvSWNvbkFjdGlvbi9JY29uQWN0aW9uJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIExpc3RJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9saXN0LnN2Zyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBQb2xsdXRpb25Db250cmlidXRvciwge1xuICBQb2xsdXRpb25Db250cmlidXRvclJlc3BvbnNlLFxufSBmcm9tICcuL1BvbGx1dGlvbkNvbnRyaWJ1dG9yJztcblxuZXhwb3J0IGNvbnN0IFNpdGVJbmZvcm1hdGlvbiA9ICh7XG4gIHNpdGVEYXRhLFxufToge1xuICBzaXRlRGF0YTogSVNpdGVJbmZvcm1hdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgUElFX1RZUEVTID0gWyd3YXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnLCAnY29sbGVjdG9yJywgJ3B1bXBTdGF0aW9uJ107XG5cbiAgY29uc3Qge1xuICAgIHd3dHBfbmFtZSxcbiAgICBnZW8sXG4gICAgc2VjdG9yX2ljb25fbmFtZSxcbiAgICBzZWN0b3JfbmFtZSxcbiAgICBkaXNjaGFyZ2luZyxcbiAgICBhcmVhLFxuICAgIGFkZHJlc3MsXG4gICAgdHlwZSxcbiAgfSA9IHNpdGVEYXRhO1xuXG4gIGNvbnN0IFtpc01hcE1vZGFsT3Blbiwgc2V0SXNNYXBNb2RhbE9wZW5dID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGxldCBtYWluQ29sbGVjdG9yID0ge30gYXMge1xuICAgIGxhdDogbnVtYmVyO1xuICAgIGxuZzogbnVtYmVyO1xuICAgIHNpdGVfdHlwZT86IHN0cmluZztcbiAgfTtcbiAgaWYgKGdlbykge1xuICAgIG1haW5Db2xsZWN0b3IgPSB7XG4gICAgICBsYXQ6IE51bWJlcihnZW9bMF0pLFxuICAgICAgbG5nOiBOdW1iZXIoZ2VvWzFdKSxcbiAgICAgIHNpdGVfdHlwZTogdHlwZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgaGFuZGxlTWFwTW9kYWxPcGVuID0gKGlzT3BlbikgPT4ge1xuICAgIHNldElzTWFwTW9kYWxPcGVuKGlzT3Blbik7XG4gIH07XG4gIGNvbnN0IGVuYWJsZV9wb2xsdXRpb25fY29udHJpYnV0b3IgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLnBlcm1pc3Npb25zLmVuYWJsZV9wb2xsdXRpb25fY29udHJpYnV0b3IsXG4gICk7XG4gIGNvbnN0IHNob3dQaWUgPVxuICAgIGVuYWJsZV9wb2xsdXRpb25fY29udHJpYnV0b3IgJiYgUElFX1RZUEVTLmluY2x1ZGVzKHNpdGVEYXRhLnR5cGUpO1xuICBjb25zdCBbc2hvd0NvbnRyaWJ1dG9ycywgc2V0U2hvd0NvbnRyaWJ1dG9yc10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHsgc2l0ZUlEOiBwb2ludElkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgdXJsID0gc2hvd1BpZVxuICAgID8gdXJscyh7IHBvaW50SWQgfSkub3ZlcnZpZXcucG9sbHV0aW9uQ29udHJpYnV0b3IudXJsXG4gICAgOiAnJztcbiAgY29uc3QgW2NvbnRyaWJ1dG9yRGF0YV0gPVxuICAgIHVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeTxQb2xsdXRpb25Db250cmlidXRvclJlc3BvbnNlPih1cmwpO1xuICByZXR1cm4gKFxuICAgIDxDb250YWluZXI+XG4gICAgICA8TWFwTW9kYWxcbiAgICAgICAgaXNNb2RhbE9wZW49e2lzTWFwTW9kYWxPcGVufVxuICAgICAgICBhcmVhVG9DZW50ZXJCeT17W21haW5Db2xsZWN0b3JdfVxuICAgICAgICBjbG9zZT17KCkgPT4gc2V0SXNNYXBNb2RhbE9wZW4oZmFsc2UpfVxuICAgICAgLz5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPiB7aTE4bi50KCdkYXNoYm9hcmRfdjIuaW5mb3JtYXRpb24nKX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidG9wXCI+XG4gICAgICAgICAgICA8U2VjdG9yXG4gICAgICAgICAgICAgIHdpZHRoPVwiMzVweFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjM1cHhcIlxuICAgICAgICAgICAgICBzZWN0b3JJY29uTmFtZT17c2VjdG9yX2ljb25fbmFtZSB8fCAnJ31cbiAgICAgICAgICAgICAgc2VjdG9yTmFtZT17c2VjdG9yX25hbWV9XG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICB7ZGlzY2hhcmdpbmcgJiYgKFxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImRpc2NoYXJnaW5nXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnYXJlYV9kYXNoYm9hcmQuZGlzY2hhcmdpbmcnKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3Nob3dQaWUgJiYgKFxuICAgICAgICAgICAgICA8SWNvbkFjdGlvblxuICAgICAgICAgICAgICAgIGNhbGxiYWNrPXsoKSA9PiBzZXRTaG93Q29udHJpYnV0b3JzKHRydWUpfVxuICAgICAgICAgICAgICAgIHRleHRfa2V5PXsnJ31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxMaXN0SWNvbiAvPlxuICAgICAgICAgICAgICA8L0ljb25BY3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm90dG9tXCI+XG4gICAgICAgICAgICB7c2hvd0NvbnRyaWJ1dG9ycyAmJiAoXG4gICAgICAgICAgICAgIDxQb2xsdXRpb25Db250cmlidXRvclxuICAgICAgICAgICAgICAgIHsuLi5jb250cmlidXRvckRhdGE/LmRhdGF9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0U2hvd0NvbnRyaWJ1dG9ycyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibGFiZWxcIj57aTE4bi50KCd3d3RwLnd3dHAnKX06PC9wPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0XCI+e3d3dHBfbmFtZX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJsYWJlbFwiPntpMThuLnQoJ2FyZWEuYXJlYScpfTo8L3A+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHRcIj57YXJlYS5uYW1lfTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImxhYmVsXCI+e2kxOG4udCgnYWRkcmVzcy5hZGRyZXNzJyl9OjwvcD5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dFwiPiB7YWRkcmVzc308L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtnZW8gJiYgKFxuICAgICAgICAgIDxNYXBcbiAgICAgICAgICAgIG1hcmtlcnM9e1ttYWluQ29sbGVjdG9yXX1cbiAgICAgICAgICAgIHBvaW50cz17W119XG4gICAgICAgICAgICBjb2xvcj1cIlwiXG4gICAgICAgICAgICBvbk1hcE1vZGFsT3Blbj17aGFuZGxlTWFwTW9kYWxPcGVufVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGdyaWQtYXJlYTogaW5mbztcblxuICAudGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBHaWxyb3ksIEFyaWFsO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBsaW5lLWhlaWdodDogMC45MjtcbiAgICBjb2xvcjogIzFkMWQxZDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTQ1MHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNTBweCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxuICAuY29udGVudCB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzN3B4KTtcbiAgICBib3gtc2hhZG93OiAtMC45cHggLTAuNXB4IDVweCAwIHJnYigwIDAgMCAvIDYlKTtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZWJlYmViO1xuICAgIHBhZGRpbmc6IDMycHggMTlweCAyM3B4O1xuICAgIC5tYXAtbW9jayB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwMHB4KTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgICAuaGVhZGVyIHtcbiAgICAgIC50b3Age1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgLmRpc2NoYXJnaW5nIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjZjYwMDRmO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgICAgICAgcGFkZGluZzogNHB4IDEzcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmJvdHRvbSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmluZm8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLm1hcC1jb250YWluZXIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMDBweCk7XG4gICAgfVxuICAgIC5tYXAtYm94IHtcbiAgICAgIC8qIGhlaWdodDogY2FsYyggMTAwJSAtIDE1MHB4ICk7ICovXG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7ICovXG4gICAgfVxuICB9XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMseUJBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLElBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUEwRCxJQUFBVSxLQUFBLEdBQUFWLE9BQUE7QUFFMUQsSUFBQVcsV0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVkscUJBQUEsR0FBQVQsc0JBQUEsQ0FBQUgsT0FBQTtBQUVnQyxTQUFBYSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQWYsd0JBQUFt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
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX01hcCIsIl9TZWN0b3IiLCJfTWFwTW9kYWwiLCJfdXJscyIsIl9yZWFjdFJvdXRlckRvbSIsIl9JY29uQWN0aW9uIiwiX2xpc3QiLCJfcmVhY3RSZWR1eCIsIl9Qb2xsdXRpb25Db250cmlidXRvciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiU2l0ZUluZm9ybWF0aW9uIiwiX3JlZiIsInNpdGVEYXRhIiwiUElFX1RZUEVTIiwid3d0cF9uYW1lIiwiZ2VvIiwic2VjdG9yX2ljb25fbmFtZSIsInNlY3Rvcl9uYW1lIiwiZGlzY2hhcmdpbmciLCJhcmVhX25hbWUiLCJhZGRyZXNzIiwic2l0ZV90eXBlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaXNNYXBNb2RhbE9wZW4iLCJzZXRJc01hcE1vZGFsT3BlbiIsIm1haW5Db2xsZWN0b3IiLCJsYXQiLCJOdW1iZXIiLCJsbmciLCJoYW5kbGVNYXBNb2RhbE9wZW4iLCJpc09wZW4iLCJlbmFibGVfcG9sbHV0aW9uX2NvbnRyaWJ1dG9yIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsInBlcm1pc3Npb25zIiwic2hvd1BpZSIsImluY2x1ZGVzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93Q29udHJpYnV0b3JzIiwic2V0U2hvd0NvbnRyaWJ1dG9ycyIsIl91c2VQYXJhbXMiLCJ1c2VQYXJhbXMiLCJwb2ludElkIiwic2l0ZUlEIiwidXJsIiwidXJscyIsIm92ZXJ2aWV3IiwicG9sbHV0aW9uQ29udHJpYnV0b3IiLCJfdXNlQXBpV2l0aERhc2hib2FyZFEiLCJ1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfdXNlQXBpV2l0aERhc2hib2FyZFEyIiwiY29udHJpYnV0b3JEYXRhIiwiY3JlYXRlRWxlbWVudCIsIkNvbnRhaW5lciIsIk1hcE1vZGFsIiwiaXNNb2RhbE9wZW4iLCJhcmVhVG9DZW50ZXJCeSIsImNsb3NlIiwiY2xhc3NOYW1lIiwiaTE4biIsInQiLCJ3aWR0aCIsImhlaWdodCIsInNlY3Rvckljb25OYW1lIiwic2VjdG9yTmFtZSIsImNhbGxiYWNrIiwidGV4dF9rZXkiLCJSZWFjdENvbXBvbmVudCIsImFzc2lnbiIsImRhdGEiLCJvbkNsb3NlIiwiTWFwIiwibWFya2VycyIsInBvaW50cyIsImNvbG9yIiwib25NYXBNb2RhbE9wZW4iLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvU2l0ZVBhZ2UvU2l0ZUluZm9ybWF0aW9uL1NpdGVJbmZvcm1hdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IH0gZnJvbSAnc3JjL2hvb2tzL3VzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSc7XG5pbXBvcnQgeyBJU2l0ZUluZm9ybWF0aW9uIH0gZnJvbSAnc3JjL3BhZ2VzL09sZFNpdGVQYWdlL0lEYXNoYm9hcmREYXRhJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICdzcmMvV2lkZ2V0cy9Nb3N0UG9sbHV0aW5nL0FyZWFzL0FyZWFCb3gvTWFwL01hcCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCBTZWN0b3IgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9TZWN0b3InO1xuaW1wb3J0IHsgTWFwTW9kYWwgfSBmcm9tICdzcmMvV2lkZ2V0cy9VdGlsaXR5SW5mb3JtYXRpb24vTWFwTW9kYWwvTWFwTW9kYWwnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJ3NyYy91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBJY29uQWN0aW9uIGZyb20gJ3NyYy91aS1raXQvSWNvbkFjdGlvbi9JY29uQWN0aW9uJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIExpc3RJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9saXN0LnN2Zyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBQb2xsdXRpb25Db250cmlidXRvciwge1xuICBQb2xsdXRpb25Db250cmlidXRvclJlc3BvbnNlLFxufSBmcm9tICcuL1BvbGx1dGlvbkNvbnRyaWJ1dG9yJztcblxuZXhwb3J0IGNvbnN0IFNpdGVJbmZvcm1hdGlvbiA9ICh7XG4gIHNpdGVEYXRhLFxufToge1xuICBzaXRlRGF0YTogSVNpdGVJbmZvcm1hdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgUElFX1RZUEVTID0gW1xuICAgICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCcsXG4gICAgJ0dyb3Vwczo6Q29sbGVjdG9ycycsXG4gICAgJ0dyb3Vwczo6UHVtcFN0YXRpb24nLFxuICBdO1xuXG4gIGNvbnN0IHtcbiAgICB3d3RwX25hbWUsXG4gICAgZ2VvLFxuICAgIHNlY3Rvcl9pY29uX25hbWUsXG4gICAgc2VjdG9yX25hbWUsXG4gICAgZGlzY2hhcmdpbmcsXG4gICAgYXJlYV9uYW1lLFxuICAgIGFkZHJlc3MsXG4gICAgc2l0ZV90eXBlLFxuICB9ID0gc2l0ZURhdGE7XG5cbiAgY29uc3QgW2lzTWFwTW9kYWxPcGVuLCBzZXRJc01hcE1vZGFsT3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG5cbiAgbGV0IG1haW5Db2xsZWN0b3IgPSB7fSBhcyB7XG4gICAgbGF0OiBudW1iZXI7XG4gICAgbG5nOiBudW1iZXI7XG4gICAgc2l0ZV90eXBlPzogc3RyaW5nO1xuICB9O1xuICBpZiAoZ2VvKSB7XG4gICAgbWFpbkNvbGxlY3RvciA9IHtcbiAgICAgIGxhdDogTnVtYmVyKGdlb1swXSksXG4gICAgICBsbmc6IE51bWJlcihnZW9bMV0pLFxuICAgICAgc2l0ZV90eXBlOiBzaXRlX3R5cGUsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU1hcE1vZGFsT3BlbiA9IChpc09wZW4pID0+IHtcbiAgICBzZXRJc01hcE1vZGFsT3Blbihpc09wZW4pO1xuICB9O1xuICBjb25zdCBlbmFibGVfcG9sbHV0aW9uX2NvbnRyaWJ1dG9yID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5wZXJtaXNzaW9ucy5lbmFibGVfcG9sbHV0aW9uX2NvbnRyaWJ1dG9yLFxuICApO1xuICBjb25zdCBzaG93UGllID1cbiAgICBlbmFibGVfcG9sbHV0aW9uX2NvbnRyaWJ1dG9yICYmIFBJRV9UWVBFUy5pbmNsdWRlcyhzaXRlRGF0YS5zaXRlX3R5cGUpO1xuICBjb25zdCBbc2hvd0NvbnRyaWJ1dG9ycywgc2V0U2hvd0NvbnRyaWJ1dG9yc10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHsgc2l0ZUlEOiBwb2ludElkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgdXJsID0gc2hvd1BpZVxuICAgID8gdXJscyh7IHBvaW50SWQgfSkub3ZlcnZpZXcucG9sbHV0aW9uQ29udHJpYnV0b3IudXJsXG4gICAgOiAnJztcbiAgY29uc3QgW2NvbnRyaWJ1dG9yRGF0YV0gPVxuICAgIHVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeTxQb2xsdXRpb25Db250cmlidXRvclJlc3BvbnNlPih1cmwpO1xuICByZXR1cm4gKFxuICAgIDxDb250YWluZXI+XG4gICAgICA8TWFwTW9kYWxcbiAgICAgICAgaXNNb2RhbE9wZW49e2lzTWFwTW9kYWxPcGVufVxuICAgICAgICBhcmVhVG9DZW50ZXJCeT17W21haW5Db2xsZWN0b3JdfVxuICAgICAgICBjbG9zZT17KCkgPT4gc2V0SXNNYXBNb2RhbE9wZW4oZmFsc2UpfVxuICAgICAgLz5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPiB7aTE4bi50KCdkYXNoYm9hcmRfdjIuaW5mb3JtYXRpb24nKX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidG9wXCI+XG4gICAgICAgICAgICA8U2VjdG9yXG4gICAgICAgICAgICAgIHdpZHRoPVwiMzVweFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjM1cHhcIlxuICAgICAgICAgICAgICBzZWN0b3JJY29uTmFtZT17c2VjdG9yX2ljb25fbmFtZSB8fCAnJ31cbiAgICAgICAgICAgICAgc2VjdG9yTmFtZT17c2VjdG9yX25hbWV9XG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICB7ZGlzY2hhcmdpbmcgJiYgKFxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImRpc2NoYXJnaW5nXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnYXJlYV9kYXNoYm9hcmQuZGlzY2hhcmdpbmcnKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3Nob3dQaWUgJiYgKFxuICAgICAgICAgICAgICA8SWNvbkFjdGlvblxuICAgICAgICAgICAgICAgIGNhbGxiYWNrPXsoKSA9PiBzZXRTaG93Q29udHJpYnV0b3JzKHRydWUpfVxuICAgICAgICAgICAgICAgIHRleHRfa2V5PXsnJ31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxMaXN0SWNvbiAvPlxuICAgICAgICAgICAgICA8L0ljb25BY3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm90dG9tXCI+XG4gICAgICAgICAgICB7c2hvd0NvbnRyaWJ1dG9ycyAmJiAoXG4gICAgICAgICAgICAgIDxQb2xsdXRpb25Db250cmlidXRvclxuICAgICAgICAgICAgICAgIHsuLi5jb250cmlidXRvckRhdGE/LmRhdGF9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0U2hvd0NvbnRyaWJ1dG9ycyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibGFiZWxcIj57aTE4bi50KCd3d3RwLnd3dHAnKX06PC9wPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0XCI+e3d3dHBfbmFtZX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJsYWJlbFwiPntpMThuLnQoJ2FyZWEuYXJlYScpfTo8L3A+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHRcIj57YXJlYV9uYW1lfTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImxhYmVsXCI+e2kxOG4udCgnYWRkcmVzcy5hZGRyZXNzJyl9OjwvcD5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dFwiPiB7YWRkcmVzc308L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtnZW8gJiYgKFxuICAgICAgICAgIDxNYXBcbiAgICAgICAgICAgIG1hcmtlcnM9e1ttYWluQ29sbGVjdG9yXX1cbiAgICAgICAgICAgIHBvaW50cz17W119XG4gICAgICAgICAgICBjb2xvcj1cIlwiXG4gICAgICAgICAgICBvbk1hcE1vZGFsT3Blbj17aGFuZGxlTWFwTW9kYWxPcGVufVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGdyaWQtYXJlYTogaW5mbztcblxuICAudGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBHaWxyb3ksIEFyaWFsO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBsaW5lLWhlaWdodDogMC45MjtcbiAgICBjb2xvcjogIzFkMWQxZDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTQ1MHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNTBweCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxuICAuY29udGVudCB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzN3B4KTtcbiAgICBib3gtc2hhZG93OiAtMC45cHggLTAuNXB4IDVweCAwIHJnYigwIDAgMCAvIDYlKTtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZWJlYmViO1xuICAgIHBhZGRpbmc6IDMycHggMTlweCAyM3B4O1xuICAgIC5tYXAtbW9jayB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwMHB4KTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgICAuaGVhZGVyIHtcbiAgICAgIC50b3Age1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgLmRpc2NoYXJnaW5nIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjZjYwMDRmO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgICAgICAgcGFkZGluZzogNHB4IDEzcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmJvdHRvbSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmluZm8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLm1hcC1jb250YWluZXIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMDBweCk7XG4gICAgfVxuICAgIC5tYXAtYm94IHtcbiAgICAgIC8qIGhlaWdodDogY2FsYyggMTAwJSAtIDE1MHB4ICk7ICovXG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7ICovXG4gICAgfVxuICB9XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMseUJBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLElBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUEwRCxJQUFBVSxLQUFBLEdBQUFWLE9BQUE7QUFFMUQsSUFBQVcsV0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVkscUJBQUEsR0FBQVQsc0JBQUEsQ0FBQUgsT0FBQTtBQUVnQyxTQUFBYSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEs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