@kepler.gl/components 3.1.3 → 3.1.4

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 (104) hide show
  1. package/dist/common/animation-control/playback-controls.js +10 -6
  2. package/dist/common/checkbox.js +4 -4
  3. package/dist/common/data-table/grid.js +3 -3
  4. package/dist/common/data-table/index.js +6 -6
  5. package/dist/common/file-uploader/file-upload.js +10 -12
  6. package/dist/common/icons/arrow-down.d.ts +1 -0
  7. package/dist/common/icons/arrow-down.js +15 -5
  8. package/dist/common/icons/{map.d.ts → base-map.d.ts} +3 -2
  9. package/dist/common/icons/base-map.js +57 -0
  10. package/dist/common/icons/bug.d.ts +1 -0
  11. package/dist/common/icons/bug.js +33 -5
  12. package/dist/common/icons/{rocket.d.ts → cloud.d.ts} +2 -1
  13. package/dist/common/icons/{rocket.js → cloud.js} +21 -11
  14. package/dist/common/icons/copy.d.ts +5 -0
  15. package/dist/common/icons/copy.js +15 -9
  16. package/dist/common/icons/cube-3d.d.ts +1 -0
  17. package/dist/common/icons/cube-3d.js +17 -7
  18. package/dist/common/icons/data-table.d.ts +1 -0
  19. package/dist/common/icons/data-table.js +39 -4
  20. package/dist/common/icons/db.d.ts +1 -0
  21. package/dist/common/icons/db.js +21 -4
  22. package/dist/common/icons/delete.d.ts +1 -0
  23. package/dist/common/icons/delete.js +17 -7
  24. package/dist/common/icons/docs2.d.ts +10 -0
  25. package/dist/common/icons/docs2.js +51 -0
  26. package/dist/common/icons/eye-seen.d.ts +1 -0
  27. package/dist/common/icons/eye-seen.js +10 -3
  28. package/dist/common/icons/eye-unseen.d.ts +1 -0
  29. package/dist/common/icons/eye-unseen.js +8 -3
  30. package/dist/common/icons/filter-funnel.d.ts +1 -0
  31. package/dist/common/icons/filter-funnel.js +14 -4
  32. package/dist/common/icons/index.d.ts +8 -3
  33. package/dist/common/icons/index.js +49 -14
  34. package/dist/common/icons/layers.d.ts +1 -0
  35. package/dist/common/icons/layers.js +19 -5
  36. package/dist/common/icons/legend.d.ts +1 -0
  37. package/dist/common/icons/legend.js +31 -3
  38. package/dist/common/icons/map-pin.d.ts +10 -0
  39. package/dist/common/icons/map-pin.js +57 -0
  40. package/dist/common/icons/messages.d.ts +1 -0
  41. package/dist/common/icons/messages.js +17 -3
  42. package/dist/common/icons/pause.d.ts +1 -0
  43. package/dist/common/icons/pause.js +23 -3
  44. package/dist/common/icons/picture.d.ts +1 -0
  45. package/dist/common/icons/picture.js +24 -6
  46. package/dist/common/icons/pin.d.ts +2 -1
  47. package/dist/common/icons/pin.js +18 -10
  48. package/dist/common/icons/play.d.ts +1 -0
  49. package/dist/common/icons/play.js +13 -3
  50. package/dist/common/icons/pointer-click.d.ts +10 -0
  51. package/dist/common/icons/pointer-click.js +59 -0
  52. package/dist/common/icons/reset.d.ts +1 -0
  53. package/dist/common/icons/reset.js +19 -3
  54. package/dist/common/icons/save.d.ts +1 -0
  55. package/dist/common/icons/save.js +20 -5
  56. package/dist/common/icons/save2.d.ts +1 -0
  57. package/dist/common/icons/save2.js +15 -7
  58. package/dist/common/icons/settings.d.ts +1 -0
  59. package/dist/common/icons/settings.js +25 -7
  60. package/dist/common/icons/share.d.ts +1 -0
  61. package/dist/common/icons/share.js +33 -3
  62. package/dist/common/icons/speed.d.ts +10 -0
  63. package/dist/common/icons/speed.js +53 -0
  64. package/dist/common/icons/trash.js +18 -7
  65. package/dist/common/icons/zoom-in.d.ts +10 -0
  66. package/dist/common/icons/zoom-in.js +48 -0
  67. package/dist/common/item-selector/chickleted-input.js +2 -1
  68. package/dist/common/item-selector/dropdown-select.js +2 -2
  69. package/dist/common/item-selector/item-selector.js +3 -3
  70. package/dist/common/link-renderer.d.ts +3 -0
  71. package/dist/common/link-renderer.js +20 -0
  72. package/dist/common/modal.js +2 -2
  73. package/dist/common/portaled.js +6 -6
  74. package/dist/common/styled-components.js +4 -2
  75. package/dist/common/time-range-slider.js +3 -3
  76. package/dist/common/timeline-slider.js +3 -3
  77. package/dist/dnd-context.js +1 -4
  78. package/dist/editor/editor.js +4 -4
  79. package/dist/filters/filter-panels/polygon-filter-panel.js +4 -4
  80. package/dist/geocoder/geocoder.js +2 -2
  81. package/dist/index.d.ts +2 -1
  82. package/dist/index.js +23 -1
  83. package/dist/kepler-gl.js +2 -2
  84. package/dist/map/layer-selector-panel.js +2 -2
  85. package/dist/map/map-draw-panel.js +2 -2
  86. package/dist/map/map-legend-panel.js +6 -2
  87. package/dist/map/toggle-3d-button.js +7 -2
  88. package/dist/map-container.js +5 -5
  89. package/dist/map-view-state-context.js +4 -4
  90. package/dist/modal-container.js +3 -3
  91. package/dist/modals/image-modal-container.js +4 -4
  92. package/dist/modals/load-data-modal.js +3 -3
  93. package/dist/notification-panel/notification-item.js +10 -12
  94. package/dist/plot-container.js +4 -4
  95. package/dist/side-panel/common/dataset-tag.js +2 -2
  96. package/dist/side-panel/common/dataset-title.js +2 -2
  97. package/dist/side-panel/filter-panel/filter-panel.js +3 -3
  98. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +2 -1
  99. package/dist/side-panel/layer-panel/custom-palette.js +3 -3
  100. package/dist/side-panel/layer-panel/layer-panel-header.js +31 -7
  101. package/dist/side-panel/panel-header.js +3 -3
  102. package/dist/side-panel.js +22 -6
  103. package/package.json +18 -32
  104. package/dist/common/icons/map.js +0 -48
package/dist/kepler-gl.js CHANGED
@@ -59,7 +59,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
59
59
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
60
60
  // Maybe we should think about exporting this or creating a variable
61
61
  // as part of the base.js theme
62
- var GlobalStyle = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n\n *,\n *:before,\n *:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n margin: 0;\n }\n\n a {\n text-decoration: none;\n color: ", ";\n }\n\n .maplibregl-ctrl .maplibregl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl .mapboxgl-ctrl-logo {\n display: none;\n }\n"])), function (props) {
62
+ var GlobalStyle = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n\n *,\n *:before,\n *:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n margin: 0;\n }\n\n a {\n text-decoration: none;\n color: ", ";\n }\n\n :focus {\n outline: none;\n }\n\n .maplibregl-ctrl .maplibregl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl .mapboxgl-ctrl-logo {\n display: none;\n }\n"])), function (props) {
63
63
  return props.theme.fontFamily;
64
64
  }, function (props) {
65
65
  return props.theme.fontWeight;
@@ -571,4 +571,4 @@ function mergeActions(actions, userActions) {
571
571
  return _objectSpread(_objectSpread({}, actions), overrides);
572
572
  }
573
573
  var _default = exports["default"] = KeplerGlFactory;
574
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2FjdGlvbnMiLCJfY29tbW9uVXRpbHMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfY29uc3RhbnRzIiwiX3NpZGVQYW5lbCIsIl9tYXBDb250YWluZXIyIiwiX21hcHNMYXlvdXQiLCJfYm90dG9tV2lkZ2V0IiwiX21vZGFsQ29udGFpbmVyIiwiX3Bsb3RDb250YWluZXIiLCJfbm90aWZpY2F0aW9uUGFuZWwiLCJfZ2VvY29kZXJQYW5lbCIsIl9lZmZlY3RNYW5hZ2VyIiwiX2RuZENvbnRleHQiLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJfdXRpbHMiLCJfc3R5bGVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiR2xvYmFsU3R5bGUiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsImxhYmVsQ29sb3IiLCJCb3R0b21XaWRnZXRPdXRlciIsIl9yZWYiLCJhYnNvbHV0ZSIsImNvbmNhdCIsImlzVmlld3BvcnREaXNqb2ludGVkIiwiZXhwb3J0cyIsIm1hcFN0YXRlIiwiaXNTcGxpdCIsImlzVmlld3BvcnRTeW5jZWQiLCJzcGxpdE1hcFZpZXdwb3J0cyIsIm1hcFN0YXRlU2VsZWN0b3IiLCJpbmRleCIsIk51bWJlciIsImlzRmluaXRlIiwibWFwRmllbGRzU2VsZWN0b3IiLCJ1bmRlZmluZWQiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIkRFRkFVTFRfS0VQTEVSX0dMX1BST1BTIiwiZGF0YXNldEF0dHJpYnV0aW9ucyIsImF0dHJpYnV0aW9uU2VsZWN0b3IiLCJzb3VyY2VzIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwib25Nb3VzZU1vdmUiLCJkZWNrR2xQcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwidmlzU3RhdGUiLCJhY3RpdmVTaWRlUGFuZWwiLCJ1aVN0YXRlIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsImxvY2FsZSIsImlzTG9hZGluZ0luZGljYXRvclZpc2libGUiLCJsb2FkaW5nSW5kaWNhdG9yVmFsdWUiLCJzaWRlUGFuZWxXaWR0aCIsIndpZHRoIiwidG9wTWFwQ29udGFpbmVyUHJvcHMiLCJib3R0b21NYXBDb250YWluZXJQcm9wcyIsInRyYW5zZm9ybVJlcXVlc3QiLCJnZXRWaXNpYmxlRGF0YXNldHMiLCJkYXRhc2V0cyIsImZpbHRlck9iamVjdEJ5UHJlZGljYXRlIiwia2V5IiwiR0VPQ09ERVJfREFUQVNFVF9OQU1FIiwic2lkZVBhbmVsU2VsZWN0b3IiLCJhdmFpbGFibGVQcm92aWRlcnMiLCJmaWx0ZXJlZERhdGFzZXRzIiwiYXBwTmFtZSIsInZlcnNpb24iLCJhcHBXZWJzaXRlIiwib25TYXZlTWFwIiwibWFwU3R5bGVBY3Rpb25zIiwiZmlsdGVycyIsImxheWVycyIsImxheWVyT3JkZXIiLCJsYXllckNsYXNzZXMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsIm1hcEluZm8iLCJsYXllckJsZW5kaW5nIiwib3ZlcmxheUJsZW5kaW5nIiwibWFwU2F2ZWQiLCJwcm92aWRlclN0YXRlIiwicGxvdENvbnRhaW5lclNlbGVjdG9yIiwiaGVpZ2h0IiwiZXhwb3J0SW1hZ2VTZXR0aW5nIiwiZXhwb3J0SW1hZ2UiLCJtYXBGaWVsZHMiLCJhZGROb3RpZmljYXRpb24iLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwic3BsaXRNYXBzIiwiaXNTcGxpdFNlbGVjdG9yIiwiYm90dG9tV2lkZ2V0U2VsZWN0b3IiLCJhbmltYXRpb25Db25maWciLCJ0b2dnbGVNb2RhbCIsInNpZGVQYW5lbCIsIm1hcmdpbiIsImxlZnQiLCJtb2RhbENvbnRhaW5lclNlbGVjdG9yIiwicm9vdE5vZGUiLCJwcm92aWRlckFjdGlvbnMiLCJjbG91ZFByb3ZpZGVycyIsIm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcEVycm9yIiwib25FeHBvcnRUb0Nsb3VkRXJyb3IiLCJnZW9Db2RlclBhbmVsU2VsZWN0b3IiLCJkaW1lbnNpb25zIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ1cGRhdGVWaXNEYXRhIiwicmVtb3ZlRGF0YXNldCIsInVwZGF0ZU1hcCIsImFwcFdpZHRoIiwiZGF0YXNldEF0dHJpYnV0aW9uU2VsZWN0b3IiLCJjcmVhdGVTZWxlY3RvciIsInN0YXRlIiwidW5pcXVlQXR0cmlidXRpb25zIiwiX2RzJG1ldGFkYXRhIiwiZHMiLCJhdHRyaWJ1dGlvbnMiLCJtZXRhZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImF0dHJpYnV0aW9uIiwibGlua3MiLCJtYXRjaCIsImxpbmsiLCJfbGluayRtYXRjaCIsIl9saW5rJG1hdGNoMiIsImhyZWYiLCJ0aXRsZSIsImluZGV4T2YiLCJ1cmwiLCJlcnJvciIsInVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMiLCJsb2dvcyIsIm5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IiLCJyZW1vdmVOb3RpZmljYXRpb24iLCJub3RpZmljYXRpb25zIiwibWFwU3R5bGVzIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIkRJTUVOU0lPTlMiLCJmZWF0dXJlRmxhZ3MiLCJLZXBsZXJHbEZhY3RvcnkiLCJkZXBzIiwiQm90dG9tV2lkZ2V0RmFjdG9yeSIsIkdlb0NvZGVyUGFuZWxGYWN0b3J5IiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiTW9kYWxDb250YWluZXJGYWN0b3J5IiwiU2lkZVBhbmVsRmFjdG9yeSIsIlBsb3RDb250YWluZXJGYWN0b3J5IiwiTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5IiwiRG5kQ29udGV4dEZhY3RvcnkiLCJFZmZlY3RNYW5hZ2VyRmFjdG9yeSIsIkJvdHRvbVdpZGdldCIsIkdlb0NvZGVyUGFuZWwiLCJNYXBDb250YWluZXIiLCJNYXBzTGF5b3V0IiwiTW9kYWxDb250YWluZXIiLCJTaWRlUGFuZWwiLCJQbG90Q29udGFpbmVyIiwiTm90aWZpY2F0aW9uUGFuZWwiLCJEbmRDb250ZXh0IiwiS2VwbGVyR0wiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJfa2V5Iiwic2V0U3RhdGUiLCJjcmVhdGVSZWYiLCJ0aGVtZVNlbGVjdG9yIiwiX3R5cGVvZjIiLCJiYXNpY1RoZW1lIiwiVEhFTUUiLCJsaWdodCIsInRoZW1lTFQiLCJiYXNlIiwidGhlbWVCUyIsImRhdGFzZXRzU2VsZWN0b3IiLCJwcm92aWRlcnMiLCJoYXNTdG9yYWdlIiwic29tZSIsInAiLCJoYXNQcml2YXRlU3RvcmFnZSIsImhhc1NoYXJlIiwiaGFzU2hhcmluZ1VybCIsImxvY2FsZU1lc3NhZ2VzIiwiY3VzdG9tTWVzc2FnZXMiLCJtZXJnZU1lc3NhZ2VzIiwibWVzc2FnZXMiLCJkZWZhdWx0U3R5bGVzIiwidmFsdWVzIiwiY3VzdG9tU3R5bGVzIiwibWFwIiwibXMiLCJpZCIsImdlbmVyYXRlSGFzaElkIiwiYWxsU3R5bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJlZHVjZSIsImFjY3UiLCJzdHlsZSIsImxvYWRNYXBTdHlsZXMiLCJjb250YWluZXJJZCIsImxheWVySWQiLCJ0b2dnbGVMYXllckZvck1hcCIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwidmFsdWUiLCJjb21wb25lbnREaWRNb3VudCIsIl9nZXRBcHBsaWNhdGlvbkNvbmZpZyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiYmFzZU1hcExpYnJhcnlDb25maWciLCJtYXBMaWJOYW1lIiwiX3ZhbGlkYXRlTWFwYm94VG9rZW4iLCJfbG9hZE1hcFN0eWxlIiwib25LZXBsZXJHbEluaXRpYWxpemVkIiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIm9ic2VydmVEaW1lbnNpb25zIiwiX2hhbmRsZVJlc2l6ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsInZhbGlkYXRlVG9rZW4iLCJDb25zb2xlIiwid2FybiIsIk1JU1NJTkdfTUFQQk9YX1RPS0VOIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRpZCIsIl90aGlzJHByb3BzJHdpZHRoIiwiX3RoaXMkcHJvcHMkaGVpZ2h0IiwiX3RoaXMkcHJvcHMkY2xvdWRQcm92IiwiYXZhaWxhYmxlVGhlbWVTZWxlY3RvciIsImxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IiLCJpc0V4cG9ydGluZ0ltYWdlIiwiZXhwb3J0aW5nIiwiZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yIiwic2lkZUZpZWxkcyIsInBsb3RDb250YWluZXJGaWVsZHMiLCJib3R0b21XaWRnZXRGaWVsZHMiLCJtb2RhbENvbnRhaW5lckZpZWxkcyIsImdlb0NvZGVyUGFuZWxGaWVsZHMiLCJub3RpZmljYXRpb25QYW5lbEZpZWxkcyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwicHJpbWFyeSIsImRlbGV0ZU1hcExhYmVscyIsIl9kZWxldGVNYXBMYWJlbHMiLCJzZXR0aW5ncyIsIlJvb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJJbnRsUHJvdmlkZXIiLCJTdHlsZVNoZWV0TWFuYWdlciIsInNob3VsZEZvcndhcmRQcm9wIiwiVGhlbWVQcm92aWRlciIsIkNsb3VkTGlzdFByb3ZpZGVyIiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJwb3NpdGlvbiIsInJlZiIsInVuc3luY2VkVmlld3BvcnRzIiwiX21hcENvbnRhaW5lciIsImhhc1BvcnRhYmxlV2lkdGgiLCJicmVha1BvaW50VmFsdWVzIiwicm9vdFJlZiIsImJvdHRvbVdpZGdldFJlZiIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwiQ29tcG9uZW50Iiwia2VwbGVyR2xDb25uZWN0IiwibWFwU3RhdGVUb1Byb3BzIiwibWFrZU1hcERpc3BhdGNoVG9Qcm9wcyIsIndpdGhUaGVtZSIsImRlZmF1bHRVc2VyQWN0aW9ucyIsImdldERpc3BhdGNoIiwiZGlzcGF0Y2giLCJnZXRVc2VyQWN0aW9ucyIsImFjdGlvbnMiLCJtYWtlR2V0QWN0aW9uQ3JlYXRvcnMiLCJ1c2VyQWN0aW9ucyIsIl9tYXAiLCJWaXNTdGF0ZUFjdGlvbnMiLCJNYXBTdGF0ZUFjdGlvbnMiLCJNYXBTdHlsZUFjdGlvbnMiLCJVSVN0YXRlQWN0aW9ucyIsIlByb3ZpZGVyQWN0aW9ucyIsImJpbmRBY3Rpb25DcmVhdG9ycyIsIm1lcmdlQWN0aW9ucyIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZ2V0QWN0aW9uQ3JlYXRvcnMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJvd25Qcm9wcyIsImdyb3VwZWRBY3Rpb25DcmVhdG9ycyIsIm92ZXJyaWRlcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2tlcGxlci1nbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIERpc3BhdGNofSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2JpbmRBY3Rpb25DcmVhdG9yc30gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZSwgU3R5bGVTaGVldE1hbmFnZXIsIFRoZW1lUHJvdmlkZXJ9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7Y29ubmVjdCBhcyBrZXBsZXJHbENvbm5lY3R9IGZyb20gJy4vY29ubmVjdC9rZXBsZXJnbC1jb25uZWN0JztcbmltcG9ydCB7SW50bFByb3ZpZGVyfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7bWVzc2FnZXN9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHQsIEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciwgRmVhdHVyZUZsYWdzfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRpb25XaXRoU3R5bGUsXG4gIERhdGFzZXRBdHRyaWJ1dGlvbixcbiAgT25FcnJvckNhbGxCYWNrLFxuICBPblN1Y2Nlc3NDYWxsQmFjayxcbiAgVmlld3BvcnRcbn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7XG4gIE1hcFN0YXRlQWN0aW9ucyxcbiAgTWFwU3R5bGVBY3Rpb25zLFxuICBQcm92aWRlckFjdGlvbnMsXG4gIFVJU3RhdGVBY3Rpb25zLFxuICBWaXNTdGF0ZUFjdGlvbnNcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuaW1wb3J0IHtnZW5lcmF0ZUhhc2hJZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuXG5pbXBvcnQge3Nob3VsZEZvcndhcmRQcm9wfSBmcm9tICcuL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbnR5cGUgS2VwbGVyR2xBY3Rpb25zID0ge1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbiAgbWFwU3R5bGVBY3Rpb25zOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICBwcm92aWRlckFjdGlvbnM6IHR5cGVvZiBQcm92aWRlckFjdGlvbnM7XG59O1xuXG5pbXBvcnQge1xuICBESU1FTlNJT05TLFxuICBLRVBMRVJfR0xfTkFNRSxcbiAgS0VQTEVSX0dMX1ZFUlNJT04sXG4gIFRIRU1FLFxuICBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICBHRU9DT0RFUl9EQVRBU0VUX05BTUUsXG4gIE1JU1NJTkdfTUFQQk9YX1RPS0VOXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IFNpZGVQYW5lbEZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQgQm90dG9tV2lkZ2V0RmFjdG9yeSBmcm9tICcuL2JvdHRvbS13aWRnZXQnO1xuaW1wb3J0IE1vZGFsQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21vZGFsLWNvbnRhaW5lcic7XG5pbXBvcnQgUGxvdENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9wbG90LWNvbnRhaW5lcic7XG5pbXBvcnQgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5IGZyb20gJy4vbm90aWZpY2F0aW9uLXBhbmVsJztcbmltcG9ydCBHZW9Db2RlclBhbmVsRmFjdG9yeSBmcm9tICcuL2dlb2NvZGVyLXBhbmVsJztcbmltcG9ydCBFZmZlY3RNYW5hZ2VyRmFjdG9yeSBmcm9tICcuL2VmZmVjdHMvZWZmZWN0LW1hbmFnZXInO1xuaW1wb3J0IERuZENvbnRleHRGYWN0b3J5IGZyb20gJy4vZG5kLWNvbnRleHQnO1xuaW1wb3J0IHtDbG91ZExpc3RQcm92aWRlcn0gZnJvbSAnLi9ob29rcy91c2UtY2xvdWQtbGlzdC1wcm92aWRlcic7XG5cbmltcG9ydCB7XG4gIGZpbHRlck9iamVjdEJ5UHJlZGljYXRlLFxuICB2YWxpZGF0ZVRva2VuLFxuICBtZXJnZU1lc3NhZ2VzLFxuICBvYnNlcnZlRGltZW5zaW9ucyxcbiAgdW5vYnNlcnZlRGltZW5zaW9ucyxcbiAgaGFzUG9ydGFibGVXaWR0aCxcbiAgZ2V0QXBwbGljYXRpb25Db25maWdcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7dGhlbWUgYXMgYmFzaWNUaGVtZSwgdGhlbWVMVCwgdGhlbWVCUywgYnJlYWtQb2ludFZhbHVlc30gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtLZXBsZXJHbFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcblxuLy8gTWF5YmUgd2Ugc2hvdWxkIHRoaW5rIGFib3V0IGV4cG9ydGluZyB0aGlzIG9yIGNyZWF0aW5nIGEgdmFyaWFibGVcbi8vIGFzIHBhcnQgb2YgdGhlIGJhc2UuanMgdGhlbWVcbmNvbnN0IEdsb2JhbFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRXZWlnaHR9O1xuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFNpemV9O1xuICBsaW5lLWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5lSGVpZ2h0fTtcblxuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgfVxuXG4gIC5tYXBsaWJyZWdsLWN0cmwgLm1hcGxpYnJlZ2wtY3RybC1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1hcGJveGdsLWN0cmwgLm1hcGJveGdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYDtcblxudHlwZSBCb3R0b21XaWRnZXRPdXRlclByb3BzID0ge1xuICBhYnNvbHV0ZT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCb3R0b21XaWRnZXRPdXRlciA9IHN0eWxlZC5kaXY8Qm90dG9tV2lkZ2V0T3V0ZXJQcm9wcz4oXG4gICh7YWJzb2x1dGV9KSA9PiBgXG4gICR7YWJzb2x1dGUgPyAncG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOycgOiAnJ31cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIHByZXZlbnQgcGFkZGluZyBmcm9tIGJsb2NraW5nIGlucHV0ICovXG4gICYgPiAqIHtcbiAgICAvKiBhbGwgY2hpbGRyZW4gc2hvdWxkIGFsbG93IGlucHV0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfWBcbik7XG5cbmV4cG9ydCBjb25zdCBpc1ZpZXdwb3J0RGlzam9pbnRlZCA9IHByb3BzID0+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9wcy5tYXBTdGF0ZS5pc1NwbGl0ICYmXG4gICAgIXByb3BzLm1hcFN0YXRlLmlzVmlld3BvcnRTeW5jZWQgJiZcbiAgICBwcm9wcy5tYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGggPiAxXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwU3RhdGVTZWxlY3RvciA9IChwcm9wczogYW55LCBpbmRleDogbnVtYmVyKTogYW55ID0+IHtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW5kZXgpKSB7XG4gICAgLy8gZWl0aGVyIG5vIGluZGV4IGFyZyBvciBhbiBpbnZhbGlkIGluZGV4IHdhcyBwcm92aWRlZFxuICAgIC8vIGl0IGlzIGV4cGVjdGVkIHRvIGJlIGVpdGhlciAwIG9yIDEgd2hlbiBpbiBzcGxpdCBtb2RlXG4gICAgLy8gb25seSB1c2UgdGhlIG1hcFN0YXRlXG4gICAgcmV0dXJuIHByb3BzLm1hcFN0YXRlO1xuICB9XG5cbiAgcmV0dXJuIGlzVmlld3BvcnREaXNqb2ludGVkKHByb3BzKVxuICAgID8gLy8gbWl4IHRvZ2V0aGVyIHRoZSB2aWV3cG9ydCBwcm9wZXJ0aWVzIGludGVuZGVkIGZvciB0aGlzIGRpc2pvaW50ZWQgPE1hcENvbnRhaW5lcj4gd2l0aCB0aGUgb3RoZXIgbmVjZXNzYXJ5IG1hcFN0YXRlIHByb3BlcnRpZXNcbiAgICAgIHsuLi5wcm9wcy5tYXBTdGF0ZSwgLi4ucHJvcHMubWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHNbaW5kZXhdfVxuICAgIDogLy8gb3RoZXJ3aXNlIG9ubHkgdXNlIHRoZSBtYXBTdGF0ZVxuICAgICAgcHJvcHMubWFwU3RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwRmllbGRzU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMsIGluZGV4ID0gMCkgPT4gKHtcbiAgZ2V0TWFwYm94UmVmOiBwcm9wcy5nZXRNYXBib3hSZWYsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwgPyBwcm9wcy5tYXBib3hBcGlVcmwgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5tYXBib3hBcGlVcmwsXG4gIG1hcFN0YXRlOiBtYXBTdGF0ZVNlbGVjdG9yKHByb3BzLCBpbmRleCksXG4gIGRhdGFzZXRBdHRyaWJ1dGlvbnM6IGF0dHJpYnV0aW9uU2VsZWN0b3IocHJvcHMpLnNvdXJjZXMsXG4gIG1hcFN0eWxlOiBwcm9wcy5tYXBTdHlsZSxcbiAgb25EZWNrSW5pdGlhbGl6ZWQ6IHByb3BzLm9uRGVja0luaXRpYWxpemVkLFxuICBvblZpZXdTdGF0ZUNoYW5nZTogcHJvcHMub25WaWV3U3RhdGVDaGFuZ2UsXG4gIG9uTW91c2VNb3ZlOiBwcm9wcy5vbk1vdXNlTW92ZSxcbiAgZGVja0dsUHJvcHM6IHByb3BzLmRlY2tHbFByb3BzLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICBtYXBTdGF0ZUFjdGlvbnM6IHByb3BzLm1hcFN0YXRlQWN0aW9ucyxcblxuICAvLyB2aXNTdGF0ZVxuICB2aXNTdGF0ZTogcHJvcHMudmlzU3RhdGUsXG5cbiAgLy8gdWlTdGF0ZVxuICBhY3RpdmVTaWRlUGFuZWw6IHByb3BzLnVpU3RhdGUuYWN0aXZlU2lkZVBhbmVsLFxuICBtYXBDb250cm9sczogcHJvcHMudWlTdGF0ZS5tYXBDb250cm9scyxcbiAgcmVhZE9ubHk6IHByb3BzLnVpU3RhdGUucmVhZE9ubHksXG4gIGxvY2FsZTogcHJvcHMudWlTdGF0ZS5sb2NhbGUsXG4gIGlzTG9hZGluZ0luZGljYXRvclZpc2libGU6IE51bWJlcihwcm9wcy51aVN0YXRlLmxvYWRpbmdJbmRpY2F0b3JWYWx1ZSkgPiAwLFxuICBzaWRlUGFuZWxXaWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuXG4gIC8vIG1hcFN0eWxlXG4gIHRvcE1hcENvbnRhaW5lclByb3BzOiBwcm9wcy50b3BNYXBDb250YWluZXJQcm9wcyxcbiAgYm90dG9tTWFwQ29udGFpbmVyUHJvcHM6IHByb3BzLmJvdHRvbU1hcENvbnRhaW5lclByb3BzLFxuXG4gIC8vIHRyYW5zZm9ybVJlcXVlc3QgZm9yIE1hcGJveCBiYXNlbWFwc1xuICB0cmFuc2Zvcm1SZXF1ZXN0OiBwcm9wcy50cmFuc2Zvcm1SZXF1ZXN0XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2libGVEYXRhc2V0cyhkYXRhc2V0cykge1xuICAvLyBXZSBkb24ndCB3YW50IEdlb2NvZGVyIGRhdGFzZXQgdG8gYmUgcHJlc2VudCBpbiBTaWRlUGFuZWwgZGF0YXNldCBsaXN0XG4gIHJldHVybiBmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZShkYXRhc2V0cywga2V5ID0+IGtleSAhPT0gR0VPQ09ERVJfREFUQVNFVF9OQU1FKTtcbn1cblxuZXhwb3J0IGNvbnN0IHNpZGVQYW5lbFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMsIGZpbHRlcmVkRGF0YXNldHMpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUgPyBwcm9wcy5hcHBOYW1lIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMuYXBwTmFtZSxcbiAgdmVyc2lvbjogcHJvcHMudmVyc2lvbiA/IHByb3BzLnZlcnNpb24gOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy52ZXJzaW9uLFxuICBhcHBXZWJzaXRlOiBwcm9wcy5hcHBXZWJzaXRlLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIG9uU2F2ZU1hcDogcHJvcHMub25TYXZlTWFwLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgZGF0YXNldHM6IGZpbHRlcmVkRGF0YXNldHMsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckNsYXNzZXM6IHByb3BzLnZpc1N0YXRlLmxheWVyQ2xhc3NlcyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBtYXBJbmZvOiBwcm9wcy52aXNTdGF0ZS5tYXBJbmZvLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuICBvdmVybGF5QmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLm92ZXJsYXlCbGVuZGluZyxcblxuICB3aWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICBhdmFpbGFibGVQcm92aWRlcnMsXG4gIG1hcFNhdmVkOiBwcm9wcy5wcm92aWRlclN0YXRlLm1hcFNhdmVkXG59KTtcblxuZXhwb3J0IGNvbnN0IHBsb3RDb250YWluZXJTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gKHtcbiAgd2lkdGg6IHByb3BzLndpZHRoLFxuICBoZWlnaHQ6IHByb3BzLmhlaWdodCxcbiAgZXhwb3J0SW1hZ2VTZXR0aW5nOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLFxuICBtYXBGaWVsZHM6IG1hcEZpZWxkc1NlbGVjdG9yKHByb3BzKSxcbiAgYWRkTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5hZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLFxuICBzZXRFeHBvcnRJbWFnZURhdGFVcmk6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc3BsaXRNYXBzOiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHNcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNTcGxpdFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PlxuICBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHMgJiYgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG5cbmV4cG9ydCBjb25zdCBib3R0b21XaWRnZXRTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgdGhlbWUpID0+ICh7XG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGRhdGFzZXRzOiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cyxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbGF5ZXJzOiBwcm9wcy52aXNTdGF0ZS5sYXllcnMsXG4gIGFuaW1hdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdG9nZ2xlTW9kYWw6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1vZGFsLFxuICBzaWRlUGFuZWxXaWR0aDogcHJvcHMudWlTdGF0ZS5yZWFkT25seSA/IDAgOiBwcm9wcy5zaWRlUGFuZWxXaWR0aCArIHRoZW1lLnNpZGVQYW5lbC5tYXJnaW4ubGVmdFxufSk7XG5cbmV4cG9ydCBjb25zdCBtb2RhbENvbnRhaW5lclNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCByb290Tm9kZSkgPT4gKHtcbiAgYXBwTmFtZTogcHJvcHMuYXBwTmFtZSA/IHByb3BzLmFwcE5hbWUgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5hcHBOYW1lLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBwcm92aWRlclN0YXRlOiBwcm9wcy5wcm92aWRlclN0YXRlLFxuXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICBwcm92aWRlckFjdGlvbnM6IHByb3BzLnByb3ZpZGVyQWN0aW9ucyxcblxuICByb290Tm9kZSxcbiAgLy8gVXNlciBkZWZpbmVkIGNsb3VkIHByb3ZpZGVyIHByb3BzXG4gIGNsb3VkUHJvdmlkZXJzOiBwcm9wcy5jbG91ZFByb3ZpZGVyc1xuICAgID8gcHJvcHMuY2xvdWRQcm92aWRlcnNcbiAgICA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmNsb3VkUHJvdmlkZXJzLFxuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRTdWNjZXNzLFxuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M6IHByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcjogcHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvcixcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I6IHByb3BzLm9uRXhwb3J0VG9DbG91ZEVycm9yXG59KTtcblxuZXhwb3J0IGNvbnN0IGdlb0NvZGVyUGFuZWxTZWxlY3RvciA9IChcbiAgcHJvcHM6IEtlcGxlckdMUHJvcHMsXG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn1cbikgPT4gKHtcbiAgaXNHZW9jb2RlckVuYWJsZWQ6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICB1cGRhdGVWaXNEYXRhOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMudXBkYXRlVmlzRGF0YSxcbiAgcmVtb3ZlRGF0YXNldDogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQsXG4gIHVwZGF0ZU1hcDogcHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCxcbiAgYXBwV2lkdGg6IGRpbWVuc2lvbnMud2lkdGhcbn0pO1xuXG4vKipcbiAqIFJldHVybnMgYXJyYXkgb2YgdW5pcXVlIGRhdGFzZXQgYXR0cmlidXRpb25zLCBlYWNoIHdpdGggdGl0bGUgYW5kIHVybCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgY29uc3QgZGF0YXNldEF0dHJpYnV0aW9uU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgW3N0YXRlID0+IHN0YXRlLnZpc1N0YXRlLmRhdGFzZXRzXSxcbiAgZGF0YXNldHMgPT4ge1xuICAgIGNvbnN0IHVuaXF1ZUF0dHJpYnV0aW9uczogRGF0YXNldEF0dHJpYnV0aW9uW10gPSBbXTtcbiAgICBPYmplY3Qua2V5cyhkYXRhc2V0cykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgZHMgPSBkYXRhc2V0c1trZXldO1xuICAgICAgY29uc3QgYXR0cmlidXRpb25zID0gZHM/Lm1ldGFkYXRhPy5hdHRyaWJ1dGlvbnM7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhdHRyaWJ1dGlvbnMpKSB7XG4gICAgICAgIGF0dHJpYnV0aW9ucy5mb3JFYWNoKGF0dHJpYnV0aW9uID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGF0dHJpYnV0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gYXR0cmlidXRpb24gY2FuIGJlIGEgcmF3IHN0cmluZyBvciBhIHN0cmluZyB3aXRoIGxpbmsgdGFnc1xuICAgICAgICAgICAgY29uc3QgbGlua3MgPSBhdHRyaWJ1dGlvbi5tYXRjaCgvPGFbXl0rP2E+L2cpO1xuICAgICAgICAgICAgaWYgKGxpbmtzKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGlua3M/LmZvckVhY2gobGluayA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gbGluay5tYXRjaCgvaHJlZj1cIihbXlwiXSopLyk/LlsxXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gbGluay5tYXRjaCgvdGl0bGU9XCIoW15cIl0qKS8pPy5bMV07XG4gICAgICAgICAgICAgICAgICBpZiAoaHJlZiAmJiB0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB1bmlxdWVBdHRyaWJ1dGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGAke2xpbmsuaW5kZXhPZignJmNvcHk7JykgPj0gMCA/ICfCqSAnIDogJyd9JHt0aXRsZX1gLFxuICAgICAgICAgICAgICAgICAgICAgIHVybDogaHJlZlxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGlnbm9yZSBmb3Igbm93XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVuaXF1ZUF0dHJpYnV0aW9ucy5wdXNoKHt0aXRsZTogYXR0cmlidXRpb24sIHVybDogbnVsbH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHVuaXF1ZUF0dHJpYnV0aW9ucztcbiAgfVxuKTtcblxuLyoqXG4gKiBEZWR1cGxpY2F0ZWQgZGF0YXNldCBhbmQgbGF5ZXIgdGV4dCBhdHRyaWJ1dGlvbnMgYW5kIGxvZ29zLlxuICogUmV0dXJucyB0ZXh0IGF0dHJpYnV0aW9ucyBhbmQgbG9nb3MgdG8gZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNvbnN0IGF0dHJpYnV0aW9uU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgW2RhdGFzZXRBdHRyaWJ1dGlvblNlbGVjdG9yXSxcbiAgZGF0YXNldEF0dHJpYnV0aW9ucyA9PiB7XG4gICAgLy8gVE9ETyBjb2xsZWN0IGF0dHJpYnV0aW9ucyBmcm9tIGxheWVycywgYW5kIG1lcmdlIHdpdGggZGF0YXNldCBhdHRyaWJ1dGlvbnMgaGVyZVxuICAgIGNvbnN0IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMgPSBkYXRhc2V0QXR0cmlidXRpb25zO1xuICAgIGNvbnN0IGxvZ29zOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0gW107XG5cbiAgICByZXR1cm4ge3NvdXJjZXM6IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMsIGxvZ29zfTtcbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+ICh7XG4gIHJlbW92ZU5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMucmVtb3ZlTm90aWZpY2F0aW9uLFxuICBub3RpZmljYXRpb25zOiBwcm9wcy51aVN0YXRlLm5vdGlmaWNhdGlvbnNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMgPSB7XG4gIG1hcFN0eWxlczogW10sXG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBmYWxzZSxcbiAgbWFwYm94QXBpVXJsOiBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgYXBwTmFtZTogS0VQTEVSX0dMX05BTUUsXG4gIHZlcnNpb246IEtFUExFUl9HTF9WRVJTSU9OLFxuICBzaWRlUGFuZWxXaWR0aDogRElNRU5TSU9OUy5zaWRlUGFuZWwud2lkdGgsXG4gIHRoZW1lOiB7fSxcbiAgY2xvdWRQcm92aWRlcnM6IFtdLFxuICByZWFkT25seTogZmFsc2UsXG4gIGZlYXR1cmVGbGFnczoge31cbn07XG5cbnR5cGUgS2VwbGVyR0xCYXNpY1Byb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG5cbiAgYXBwV2Vic2l0ZT86IGFueTtcbiAgb25TYXZlTWFwPzogKCkgPT4gdm9pZDtcbiAgb25WaWV3U3RhdGVDaGFuZ2U/OiAodmlld1N0YXRlOiBWaWV3cG9ydCkgPT4gdm9pZDtcbiAgb25EZWNrSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBvbktlcGxlckdsSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBnZXRNYXBib3hSZWY/OiAoKSA9PiBSZWFjdC5SZWZPYmplY3Q8YW55PjtcbiAgbWFwU3R5bGVzPzoge2lkOiBzdHJpbmc7IHN0eWxlPzogb2JqZWN0fVtdO1xuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdD86IGJvb2xlYW47XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHNpZGVQYW5lbFdpZHRoPzogbnVtYmVyO1xuICB0aGVtZT86IG9iamVjdDtcbiAgY2xvdWRQcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICBkZWNrR2xQcm9wcz86IG9iamVjdDtcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uTG9hZENsb3VkTWFwRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIG9uTW91c2VNb3ZlPzogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50ICYge2xuZ0xhdD86IFtudW1iZXIsIG51bWJlcl19KSA9PiB2b2lkO1xuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yPzogT25FcnJvckNhbGxCYWNrO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIGZlYXR1cmVGbGFncz86IEZlYXR1cmVGbGFncztcblxuICBsb2NhbGVNZXNzYWdlcz86IHtba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfX07XG4gIGRpc3BhdGNoOiBEaXNwYXRjaDxhbnk+O1xuXG4gIHRvcE1hcENvbnRhaW5lclByb3BzPzogb2JqZWN0O1xuICBib3R0b21NYXBDb250YWluZXJQcm9wcz86IG9iamVjdDtcblxuICB0cmFuc2Zvcm1SZXF1ZXN0PzogKHVybDogc3RyaW5nKSA9PiB7dXJsOiBzdHJpbmd9O1xufTtcblxudHlwZSBLZXBsZXJHTFByb3BzID0gS2VwbGVyR2xTdGF0ZSAmIEtlcGxlckdsQWN0aW9ucyAmIEtlcGxlckdMQmFzaWNQcm9wcztcbnR5cGUgS2VwbGVyR0xDb21wU3RhdGUgPSB7XG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn0gfCBudWxsO1xufTtcblxuS2VwbGVyR2xGYWN0b3J5LmRlcHMgPSBbXG4gIEJvdHRvbVdpZGdldEZhY3RvcnksXG4gIEdlb0NvZGVyUGFuZWxGYWN0b3J5LFxuICBNYXBDb250YWluZXJGYWN0b3J5LFxuICBNYXBzTGF5b3V0RmFjdG9yeSxcbiAgTW9kYWxDb250YWluZXJGYWN0b3J5LFxuICBTaWRlUGFuZWxGYWN0b3J5LFxuICBQbG90Q29udGFpbmVyRmFjdG9yeSxcbiAgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5LFxuICBEbmRDb250ZXh0RmFjdG9yeSxcbiAgRWZmZWN0TWFuYWdlckZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEtlcGxlckdsRmFjdG9yeShcbiAgQm90dG9tV2lkZ2V0OiBSZXR1cm5UeXBlPHR5cGVvZiBCb3R0b21XaWRnZXRGYWN0b3J5PixcbiAgR2VvQ29kZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgR2VvQ29kZXJQYW5lbEZhY3Rvcnk+LFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT4sXG4gIE1vZGFsQ29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbENvbnRhaW5lckZhY3Rvcnk+LFxuICBTaWRlUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIFNpZGVQYW5lbEZhY3Rvcnk+LFxuICBQbG90Q29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBQbG90Q29udGFpbmVyRmFjdG9yeT4sXG4gIE5vdGlmaWNhdGlvblBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBOb3RpZmljYXRpb25QYW5lbEZhY3Rvcnk+LFxuICBEbmRDb250ZXh0OiBSZXR1cm5UeXBlPHR5cGVvZiBEbmRDb250ZXh0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8S2VwbGVyR0xCYXNpY1Byb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9PiB7XG4gIC8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2tlcGxlci1nbCcpLlVuY29ubmVjdGVkS2VwbGVyR2xQcm9wc30gS2VwbGVyR2xQcm9wcyAqL1xuICAvKiogQGF1Z21lbnRzIFJlYWN0LkNvbXBvbmVudDxLZXBsZXJHbFByb3BzPiAqL1xuICBjbGFzcyBLZXBsZXJHTCBleHRlbmRzIENvbXBvbmVudDxcbiAgICBLZXBsZXJHTFByb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9LFxuICAgIEtlcGxlckdMQ29tcFN0YXRlXG4gID4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUztcblxuICAgIHN0YXRlOiBLZXBsZXJHTENvbXBTdGF0ZSA9IHtcbiAgICAgIGRpbWVuc2lvbnM6IG51bGxcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBpZiAoZ2V0QXBwbGljYXRpb25Db25maWcoKS5iYXNlTWFwTGlicmFyeUNvbmZpZz8uWydtYXBib3gnXT8ubWFwTGliTmFtZSA9PT0gJ01hcGJveCcpIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVNYXBib3hUb2tlbigpO1xuICAgICAgfVxuICAgICAgdGhpcy5fbG9hZE1hcFN0eWxlKCk7XG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25LZXBsZXJHbEluaXRpYWxpemVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25LZXBsZXJHbEluaXRpYWxpemVkKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5yb290LmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICBvYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCwgdGhpcy5faGFuZGxlUmVzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2RpbWVuc2lvbnN9KTtcbiAgICB9O1xuXG4gICAgc3RhdGljIGNvbnRleHRUeXBlID0gUm9vdENvbnRleHQ7XG5cbiAgICByb290ID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICAgIGJvdHRvbVdpZGdldFJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAgIC8qIHNlbGVjdG9ycyAqL1xuICAgIHRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy50aGVtZTtcbiAgICBhdmFpbGFibGVUaGVtZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy50aGVtZVNlbGVjdG9yLCB0aGVtZSA9PlxuICAgICAgdHlwZW9mIHRoZW1lID09PSAnb2JqZWN0J1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIC4uLmJhc2ljVGhlbWUsXG4gICAgICAgICAgICAuLi50aGVtZVxuICAgICAgICAgIH1cbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUubGlnaHRcbiAgICAgICAgPyB0aGVtZUxUXG4gICAgICAgIDogdGhlbWUgPT09IFRIRU1FLmJhc2VcbiAgICAgICAgPyB0aGVtZUJTXG4gICAgICAgIDogdGhlbWVcbiAgICApO1xuXG4gICAgZGF0YXNldHNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzO1xuICAgIGZpbHRlcmVkRGF0YXNldHNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZGF0YXNldHNTZWxlY3RvciwgZ2V0VmlzaWJsZURhdGFzZXRzKTtcblxuICAgIGF2YWlsYWJsZVByb3ZpZGVycyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PiBwcm9wcy5jbG91ZFByb3ZpZGVycyxcbiAgICAgIHByb3ZpZGVycyA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KHByb3ZpZGVycykgJiYgcHJvdmlkZXJzLmxlbmd0aFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBoYXNTdG9yYWdlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzUHJpdmF0ZVN0b3JhZ2UoKSksXG4gICAgICAgICAgICAgIGhhc1NoYXJlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzU2hhcmluZ1VybCgpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge31cbiAgICApO1xuXG4gICAgbG9jYWxlTWVzc2FnZXNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PiBwcm9wcy5sb2NhbGVNZXNzYWdlcyxcbiAgICAgIGN1c3RvbU1lc3NhZ2VzID0+IChjdXN0b21NZXNzYWdlcyA/IG1lcmdlTWVzc2FnZXMobWVzc2FnZXMsIGN1c3RvbU1lc3NhZ2VzKSA6IG1lc3NhZ2VzKVxuICAgICk7XG5cbiAgICAvKiBwcml2YXRlIG1ldGhvZHMgKi9cbiAgICBfdmFsaWRhdGVNYXBib3hUb2tlbigpIHtcbiAgICAgIGNvbnN0IHttYXBib3hBcGlBY2Nlc3NUb2tlbn0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKCF2YWxpZGF0ZVRva2VuKG1hcGJveEFwaUFjY2Vzc1Rva2VuKSkge1xuICAgICAgICBDb25zb2xlLndhcm4oTUlTU0lOR19NQVBCT1hfVE9LRU4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9sb2FkTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0U3R5bGVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnByb3BzLm1hcFN0eWxlLm1hcFN0eWxlcyk7XG4gICAgICAvLyBhZGQgaWQgdG8gY3VzdG9tIG1hcCBzdHlsZXMgaWYgbm90IGdpdmVuXG4gICAgICBjb25zdCBjdXN0b21TdHlsZXMgPSAodGhpcy5wcm9wcy5tYXBTdHlsZXMgfHwgW10pLm1hcChtcyA9PiAoe1xuICAgICAgICAuLi5tcyxcbiAgICAgICAgaWQ6IG1zLmlkIHx8IGdlbmVyYXRlSGFzaElkKClcbiAgICAgIH0pKTtcblxuICAgICAgY29uc3QgYWxsU3R5bGVzID0gWy4uLmN1c3RvbVN0eWxlcywgLi4uZGVmYXVsdFN0eWxlc10ucmVkdWNlKChhY2N1LCBzdHlsZSkgPT4ge1xuICAgICAgICBhY2N1W3N0eWxlLmlkXSA9IHN0eWxlO1xuICAgICAgICByZXR1cm4gYWNjdTtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgdGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMubG9hZE1hcFN0eWxlcyhhbGxTdHlsZXMpO1xuICAgIH07XG5cbiAgICBfZGVsZXRlTWFwTGFiZWxzID0gKGNvbnRhaW5lcklkLCBsYXllcklkKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy50b2dnbGVMYXllckZvck1hcChjb250YWluZXJJZCwgbGF5ZXJJZCk7XG4gICAgfTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpZCA9ICdtYXAnLFxuICAgICAgICB3aWR0aCA9IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICAgICAgICBoZWlnaHQgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5oZWlnaHQsXG4gICAgICAgIHVpU3RhdGUsXG4gICAgICAgIHZpc1N0YXRlLFxuICAgICAgICAvLyByZWFkT25seSBvdmVycmlkZVxuICAgICAgICByZWFkT25seSxcblxuICAgICAgICAvLyBmZWF0dXJlc1xuICAgICAgICBmZWF0dXJlRmxhZ3MsXG5cbiAgICAgICAgLy8gY2xvdWQgcHJvdmlkZXJzXG4gICAgICAgIGNsb3VkUHJvdmlkZXJzID0gW11cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gdGhpcy5zdGF0ZS5kaW1lbnNpb25zIHx8IHt3aWR0aCwgaGVpZ2h0fTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3BsaXRNYXBzLCAvLyB0aGlzIHdpbGwgc3RvcmUgc3VwcG9ydCBmb3Igc3BsaXQgbWFwIHZpZXcgaXMgbmVjZXNzYXJ5XG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnXG4gICAgICB9ID0gdmlzU3RhdGU7XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBpc1NwbGl0U2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCB0aGVtZSA9IHRoaXMuYXZhaWxhYmxlVGhlbWVTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxvY2FsZU1lc3NhZ2VzID0gdGhpcy5sb2NhbGVNZXNzYWdlc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgaXNFeHBvcnRpbmdJbWFnZSA9IHVpU3RhdGUuZXhwb3J0SW1hZ2UuZXhwb3J0aW5nO1xuICAgICAgY29uc3QgYXZhaWxhYmxlUHJvdmlkZXJzID0gdGhpcy5hdmFpbGFibGVQcm92aWRlcnModGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YXNldHMgPSB0aGlzLmZpbHRlcmVkRGF0YXNldHNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHNpZGVGaWVsZHMgPSBzaWRlUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMsIGZpbHRlcmVkRGF0YXNldHMpO1xuICAgICAgY29uc3QgcGxvdENvbnRhaW5lckZpZWxkcyA9IHBsb3RDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGJvdHRvbVdpZGdldEZpZWxkcyA9IGJvdHRvbVdpZGdldFNlbGVjdG9yKHRoaXMucHJvcHMsIHRoZW1lKTtcbiAgICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyRmllbGRzID0gbW9kYWxDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICBjb25zdCBnZW9Db2RlclBhbmVsRmllbGRzID0gZ2VvQ29kZXJQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMsIGRpbWVuc2lvbnMpO1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxGaWVsZHMgPSBub3RpZmljYXRpb25QYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXRcbiAgICAgICAgPyBbXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIHByaW1hcnk9e3RydWV9XG4gICAgICAgICAgICAgIGtleT17MH1cbiAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgY29udGFpbmVySWQ9ezB9XG4gICAgICAgICAgICAgIGRlbGV0ZU1hcExhYmVscz17dGhpcy5fZGVsZXRlTWFwTGFiZWxzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICBdXG4gICAgICAgIDogc3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgcHJpbWFyeT17aW5kZXggPT09IDF9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzLCBpbmRleCl9XG4gICAgICAgICAgICAgIGNvbnRhaW5lcklkPXtpbmRleH1cbiAgICAgICAgICAgICAgZGVsZXRlTWFwTGFiZWxzPXt0aGlzLl9kZWxldGVNYXBMYWJlbHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um9vdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMucm9vdH0+XG4gICAgICAgICAgPEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciBmZWF0dXJlRmxhZ3M9e2ZlYXR1cmVGbGFnc30+XG4gICAgICAgICAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17dWlTdGF0ZS5sb2NhbGV9IG1lc3NhZ2VzPXtsb2NhbGVNZXNzYWdlc1t1aVN0YXRlLmxvY2FsZV19PlxuICAgICAgICAgICAgICA8U3R5bGVTaGVldE1hbmFnZXIgc2hvdWxkRm9yd2FyZFByb3A9e3Nob3VsZEZvcndhcmRQcm9wfT5cbiAgICAgICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICAgICAgICAgICAgPENsb3VkTGlzdFByb3ZpZGVyIHByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9PlxuICAgICAgICAgICAgICAgICAgICA8R2xvYmFsU3R5bGVcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJrZXBsZXItZ2xcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtga2VwbGVyLWdsX18ke2lkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25QYW5lbCB7Li4ubm90aWZpY2F0aW9uUGFuZWxGaWVsZHN9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPERuZENvbnRleHQgdmlzU3RhdGU9e3Zpc1N0YXRlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHshdWlTdGF0ZS5yZWFkT25seSAmJiAhcmVhZE9ubHkgJiYgPFNpZGVQYW5lbCB7Li4uc2lkZUZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJtYXBzXCIgbWFwU3RhdGU9e3RoaXMucHJvcHMubWFwU3RhdGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0RuZENvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge2lzRXhwb3J0aW5nSW1hZ2UgJiYgPFBsb3RDb250YWluZXIgey4uLnBsb3RDb250YWluZXJGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgICAgICAgIHsvKiAxIGdlb2NvZGVyOiBzaW5nbGUgbW9kZSBPUiBzcGxpdCBtb2RlIGFuZCBzeW5jZWQgdmlld3BvcnRzICovfVxuICAgICAgICAgICAgICAgICAgICAgIHshaXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiYgaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2VvQ29kZXJQYW5lbEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB7LyogMiBnZW9jb2RlcnM6IHNwbGl0IG1vZGUgYW5kIHVuc3luY2VkIHZpZXdwb3J0cyAqL31cbiAgICAgICAgICAgICAgICAgICAgICB7aXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcENvbnRhaW5lcnMubWFwKChfbWFwQ29udGFpbmVyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldE91dGVyIGFic29sdXRlPXshaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm90dG9tV2lkZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZWY9e3RoaXMuYm90dG9tV2lkZ2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYm90dG9tV2lkZ2V0RmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvQm90dG9tV2lkZ2V0T3V0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPE1vZGFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ubW9kYWxDb250YWluZXJGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySD17ZGltZW5zaW9ucy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HbG9iYWxTdHlsZT5cbiAgICAgICAgICAgICAgICAgIDwvQ2xvdWRMaXN0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L1N0eWxlU2hlZXRNYW5hZ2VyPlxuICAgICAgICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvUm9vdENvbnRleHQuUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXBsZXJHbENvbm5lY3QoXG4gICAgbWFwU3RhdGVUb1Byb3BzLFxuICAgIG1ha2VNYXBEaXNwYXRjaFRvUHJvcHNcbiAgKSh3aXRoVGhlbWUoS2VwbGVyR0wpKSBhcyBSZXR1cm5UeXBlPHR5cGVvZiBLZXBsZXJHbEZhY3Rvcnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBLZXBsZXJHbFN0YXRlLCBwcm9wczogS2VwbGVyR0xQcm9wcykge1xuICByZXR1cm4ge1xuICAgIC4uLnByb3BzLFxuICAgIHZpc1N0YXRlOiBzdGF0ZS52aXNTdGF0ZSxcbiAgICBtYXBTdHlsZTogc3RhdGUubWFwU3R5bGUsXG4gICAgbWFwU3RhdGU6IHN0YXRlLm1hcFN0YXRlLFxuICAgIHVpU3RhdGU6IHN0YXRlLnVpU3RhdGUsXG4gICAgcHJvdmlkZXJTdGF0ZTogc3RhdGUucHJvdmlkZXJTdGF0ZVxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0VXNlckFjdGlvbnMgPSB7fTtcblxuY29uc3QgZ2V0RGlzcGF0Y2ggPSBkaXNwYXRjaCA9PiBkaXNwYXRjaDtcbmNvbnN0IGdldFVzZXJBY3Rpb25zID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gcHJvcHMuYWN0aW9ucyB8fCBkZWZhdWx0VXNlckFjdGlvbnM7XG5cbi8qKiBAdHlwZSB7KCkgPT4gaW1wb3J0KCdyZXNlbGVjdCcpLk91dHB1dFBhcmFtZXRyaWNTZWxlY3RvcjxhbnksIGFueSwgYW55LCBhbnk+fSAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJBY3Rpb25zLCBrZXkpICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWN0aW9ucywga2V5KVxuICAgICkge1xuICAgICAgb3ZlcnJpZGVzW2tleV0gPSB1c2VyQWN0aW9uc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7Li4uYWN0aW9ucywgLi4ub3ZlcnJpZGVzfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgS2VwbGVyR2xGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUwsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFTQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFRQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFFQSxJQUFBWSxrQkFBQSxHQUFBWixPQUFBO0FBVUEsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBVUEsSUFBQWMsVUFBQSxHQUFBWixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWUsY0FBQSxHQUFBYixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWdC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
574
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2FjdGlvbnMiLCJfY29tbW9uVXRpbHMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfY29uc3RhbnRzIiwiX3NpZGVQYW5lbCIsIl9tYXBDb250YWluZXIyIiwiX21hcHNMYXlvdXQiLCJfYm90dG9tV2lkZ2V0IiwiX21vZGFsQ29udGFpbmVyIiwiX3Bsb3RDb250YWluZXIiLCJfbm90aWZpY2F0aW9uUGFuZWwiLCJfZ2VvY29kZXJQYW5lbCIsIl9lZmZlY3RNYW5hZ2VyIiwiX2RuZENvbnRleHQiLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJfdXRpbHMiLCJfc3R5bGVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiR2xvYmFsU3R5bGUiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsImxhYmVsQ29sb3IiLCJCb3R0b21XaWRnZXRPdXRlciIsIl9yZWYiLCJhYnNvbHV0ZSIsImNvbmNhdCIsImlzVmlld3BvcnREaXNqb2ludGVkIiwiZXhwb3J0cyIsIm1hcFN0YXRlIiwiaXNTcGxpdCIsImlzVmlld3BvcnRTeW5jZWQiLCJzcGxpdE1hcFZpZXdwb3J0cyIsIm1hcFN0YXRlU2VsZWN0b3IiLCJpbmRleCIsIk51bWJlciIsImlzRmluaXRlIiwibWFwRmllbGRzU2VsZWN0b3IiLCJ1bmRlZmluZWQiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIkRFRkFVTFRfS0VQTEVSX0dMX1BST1BTIiwiZGF0YXNldEF0dHJpYnV0aW9ucyIsImF0dHJpYnV0aW9uU2VsZWN0b3IiLCJzb3VyY2VzIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwib25Nb3VzZU1vdmUiLCJkZWNrR2xQcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwidmlzU3RhdGUiLCJhY3RpdmVTaWRlUGFuZWwiLCJ1aVN0YXRlIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsImxvY2FsZSIsImlzTG9hZGluZ0luZGljYXRvclZpc2libGUiLCJsb2FkaW5nSW5kaWNhdG9yVmFsdWUiLCJzaWRlUGFuZWxXaWR0aCIsIndpZHRoIiwidG9wTWFwQ29udGFpbmVyUHJvcHMiLCJib3R0b21NYXBDb250YWluZXJQcm9wcyIsInRyYW5zZm9ybVJlcXVlc3QiLCJnZXRWaXNpYmxlRGF0YXNldHMiLCJkYXRhc2V0cyIsImZpbHRlck9iamVjdEJ5UHJlZGljYXRlIiwia2V5IiwiR0VPQ09ERVJfREFUQVNFVF9OQU1FIiwic2lkZVBhbmVsU2VsZWN0b3IiLCJhdmFpbGFibGVQcm92aWRlcnMiLCJmaWx0ZXJlZERhdGFzZXRzIiwiYXBwTmFtZSIsInZlcnNpb24iLCJhcHBXZWJzaXRlIiwib25TYXZlTWFwIiwibWFwU3R5bGVBY3Rpb25zIiwiZmlsdGVycyIsImxheWVycyIsImxheWVyT3JkZXIiLCJsYXllckNsYXNzZXMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsIm1hcEluZm8iLCJsYXllckJsZW5kaW5nIiwib3ZlcmxheUJsZW5kaW5nIiwibWFwU2F2ZWQiLCJwcm92aWRlclN0YXRlIiwicGxvdENvbnRhaW5lclNlbGVjdG9yIiwiaGVpZ2h0IiwiZXhwb3J0SW1hZ2VTZXR0aW5nIiwiZXhwb3J0SW1hZ2UiLCJtYXBGaWVsZHMiLCJhZGROb3RpZmljYXRpb24iLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwic3BsaXRNYXBzIiwiaXNTcGxpdFNlbGVjdG9yIiwiYm90dG9tV2lkZ2V0U2VsZWN0b3IiLCJhbmltYXRpb25Db25maWciLCJ0b2dnbGVNb2RhbCIsInNpZGVQYW5lbCIsIm1hcmdpbiIsImxlZnQiLCJtb2RhbENvbnRhaW5lclNlbGVjdG9yIiwicm9vdE5vZGUiLCJwcm92aWRlckFjdGlvbnMiLCJjbG91ZFByb3ZpZGVycyIsIm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcEVycm9yIiwib25FeHBvcnRUb0Nsb3VkRXJyb3IiLCJnZW9Db2RlclBhbmVsU2VsZWN0b3IiLCJkaW1lbnNpb25zIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ1cGRhdGVWaXNEYXRhIiwicmVtb3ZlRGF0YXNldCIsInVwZGF0ZU1hcCIsImFwcFdpZHRoIiwiZGF0YXNldEF0dHJpYnV0aW9uU2VsZWN0b3IiLCJjcmVhdGVTZWxlY3RvciIsInN0YXRlIiwidW5pcXVlQXR0cmlidXRpb25zIiwiX2RzJG1ldGFkYXRhIiwiZHMiLCJhdHRyaWJ1dGlvbnMiLCJtZXRhZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImF0dHJpYnV0aW9uIiwibGlua3MiLCJtYXRjaCIsImxpbmsiLCJfbGluayRtYXRjaCIsIl9saW5rJG1hdGNoMiIsImhyZWYiLCJ0aXRsZSIsImluZGV4T2YiLCJ1cmwiLCJlcnJvciIsInVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMiLCJsb2dvcyIsIm5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IiLCJyZW1vdmVOb3RpZmljYXRpb24iLCJub3RpZmljYXRpb25zIiwibWFwU3R5bGVzIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIkRJTUVOU0lPTlMiLCJmZWF0dXJlRmxhZ3MiLCJLZXBsZXJHbEZhY3RvcnkiLCJkZXBzIiwiQm90dG9tV2lkZ2V0RmFjdG9yeSIsIkdlb0NvZGVyUGFuZWxGYWN0b3J5IiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiTW9kYWxDb250YWluZXJGYWN0b3J5IiwiU2lkZVBhbmVsRmFjdG9yeSIsIlBsb3RDb250YWluZXJGYWN0b3J5IiwiTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5IiwiRG5kQ29udGV4dEZhY3RvcnkiLCJFZmZlY3RNYW5hZ2VyRmFjdG9yeSIsIkJvdHRvbVdpZGdldCIsIkdlb0NvZGVyUGFuZWwiLCJNYXBDb250YWluZXIiLCJNYXBzTGF5b3V0IiwiTW9kYWxDb250YWluZXIiLCJTaWRlUGFuZWwiLCJQbG90Q29udGFpbmVyIiwiTm90aWZpY2F0aW9uUGFuZWwiLCJEbmRDb250ZXh0IiwiS2VwbGVyR0wiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJfa2V5Iiwic2V0U3RhdGUiLCJjcmVhdGVSZWYiLCJ0aGVtZVNlbGVjdG9yIiwiX3R5cGVvZjIiLCJiYXNpY1RoZW1lIiwiVEhFTUUiLCJsaWdodCIsInRoZW1lTFQiLCJiYXNlIiwidGhlbWVCUyIsImRhdGFzZXRzU2VsZWN0b3IiLCJwcm92aWRlcnMiLCJoYXNTdG9yYWdlIiwic29tZSIsInAiLCJoYXNQcml2YXRlU3RvcmFnZSIsImhhc1NoYXJlIiwiaGFzU2hhcmluZ1VybCIsImxvY2FsZU1lc3NhZ2VzIiwiY3VzdG9tTWVzc2FnZXMiLCJtZXJnZU1lc3NhZ2VzIiwibWVzc2FnZXMiLCJkZWZhdWx0U3R5bGVzIiwidmFsdWVzIiwiY3VzdG9tU3R5bGVzIiwibWFwIiwibXMiLCJpZCIsImdlbmVyYXRlSGFzaElkIiwiYWxsU3R5bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJlZHVjZSIsImFjY3UiLCJzdHlsZSIsImxvYWRNYXBTdHlsZXMiLCJjb250YWluZXJJZCIsImxheWVySWQiLCJ0b2dnbGVMYXllckZvck1hcCIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwidmFsdWUiLCJjb21wb25lbnREaWRNb3VudCIsIl9nZXRBcHBsaWNhdGlvbkNvbmZpZyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiYmFzZU1hcExpYnJhcnlDb25maWciLCJtYXBMaWJOYW1lIiwiX3ZhbGlkYXRlTWFwYm94VG9rZW4iLCJfbG9hZE1hcFN0eWxlIiwib25LZXBsZXJHbEluaXRpYWxpemVkIiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIm9ic2VydmVEaW1lbnNpb25zIiwiX2hhbmRsZVJlc2l6ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsInZhbGlkYXRlVG9rZW4iLCJDb25zb2xlIiwid2FybiIsIk1JU1NJTkdfTUFQQk9YX1RPS0VOIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRpZCIsIl90aGlzJHByb3BzJHdpZHRoIiwiX3RoaXMkcHJvcHMkaGVpZ2h0IiwiX3RoaXMkcHJvcHMkY2xvdWRQcm92IiwiYXZhaWxhYmxlVGhlbWVTZWxlY3RvciIsImxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IiLCJpc0V4cG9ydGluZ0ltYWdlIiwiZXhwb3J0aW5nIiwiZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yIiwic2lkZUZpZWxkcyIsInBsb3RDb250YWluZXJGaWVsZHMiLCJib3R0b21XaWRnZXRGaWVsZHMiLCJtb2RhbENvbnRhaW5lckZpZWxkcyIsImdlb0NvZGVyUGFuZWxGaWVsZHMiLCJub3RpZmljYXRpb25QYW5lbEZpZWxkcyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwicHJpbWFyeSIsImRlbGV0ZU1hcExhYmVscyIsIl9kZWxldGVNYXBMYWJlbHMiLCJzZXR0aW5ncyIsIlJvb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJJbnRsUHJvdmlkZXIiLCJTdHlsZVNoZWV0TWFuYWdlciIsInNob3VsZEZvcndhcmRQcm9wIiwiVGhlbWVQcm92aWRlciIsIkNsb3VkTGlzdFByb3ZpZGVyIiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJwb3NpdGlvbiIsInJlZiIsInVuc3luY2VkVmlld3BvcnRzIiwiX21hcENvbnRhaW5lciIsImhhc1BvcnRhYmxlV2lkdGgiLCJicmVha1BvaW50VmFsdWVzIiwicm9vdFJlZiIsImJvdHRvbVdpZGdldFJlZiIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwiQ29tcG9uZW50Iiwia2VwbGVyR2xDb25uZWN0IiwibWFwU3RhdGVUb1Byb3BzIiwibWFrZU1hcERpc3BhdGNoVG9Qcm9wcyIsIndpdGhUaGVtZSIsImRlZmF1bHRVc2VyQWN0aW9ucyIsImdldERpc3BhdGNoIiwiZGlzcGF0Y2giLCJnZXRVc2VyQWN0aW9ucyIsImFjdGlvbnMiLCJtYWtlR2V0QWN0aW9uQ3JlYXRvcnMiLCJ1c2VyQWN0aW9ucyIsIl9tYXAiLCJWaXNTdGF0ZUFjdGlvbnMiLCJNYXBTdGF0ZUFjdGlvbnMiLCJNYXBTdHlsZUFjdGlvbnMiLCJVSVN0YXRlQWN0aW9ucyIsIlByb3ZpZGVyQWN0aW9ucyIsImJpbmRBY3Rpb25DcmVhdG9ycyIsIm1lcmdlQWN0aW9ucyIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZ2V0QWN0aW9uQ3JlYXRvcnMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJvd25Qcm9wcyIsImdyb3VwZWRBY3Rpb25DcmVhdG9ycyIsIm92ZXJyaWRlcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2tlcGxlci1nbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIERpc3BhdGNofSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2JpbmRBY3Rpb25DcmVhdG9yc30gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZSwgU3R5bGVTaGVldE1hbmFnZXIsIFRoZW1lUHJvdmlkZXJ9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7Y29ubmVjdCBhcyBrZXBsZXJHbENvbm5lY3R9IGZyb20gJy4vY29ubmVjdC9rZXBsZXJnbC1jb25uZWN0JztcbmltcG9ydCB7SW50bFByb3ZpZGVyfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7bWVzc2FnZXN9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHQsIEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciwgRmVhdHVyZUZsYWdzfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRpb25XaXRoU3R5bGUsXG4gIERhdGFzZXRBdHRyaWJ1dGlvbixcbiAgT25FcnJvckNhbGxCYWNrLFxuICBPblN1Y2Nlc3NDYWxsQmFjayxcbiAgVmlld3BvcnRcbn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7XG4gIE1hcFN0YXRlQWN0aW9ucyxcbiAgTWFwU3R5bGVBY3Rpb25zLFxuICBQcm92aWRlckFjdGlvbnMsXG4gIFVJU3RhdGVBY3Rpb25zLFxuICBWaXNTdGF0ZUFjdGlvbnNcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuaW1wb3J0IHtnZW5lcmF0ZUhhc2hJZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuXG5pbXBvcnQge3Nob3VsZEZvcndhcmRQcm9wfSBmcm9tICcuL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbnR5cGUgS2VwbGVyR2xBY3Rpb25zID0ge1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbiAgbWFwU3R5bGVBY3Rpb25zOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICBwcm92aWRlckFjdGlvbnM6IHR5cGVvZiBQcm92aWRlckFjdGlvbnM7XG59O1xuXG5pbXBvcnQge1xuICBESU1FTlNJT05TLFxuICBLRVBMRVJfR0xfTkFNRSxcbiAgS0VQTEVSX0dMX1ZFUlNJT04sXG4gIFRIRU1FLFxuICBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICBHRU9DT0RFUl9EQVRBU0VUX05BTUUsXG4gIE1JU1NJTkdfTUFQQk9YX1RPS0VOXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IFNpZGVQYW5lbEZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQgQm90dG9tV2lkZ2V0RmFjdG9yeSBmcm9tICcuL2JvdHRvbS13aWRnZXQnO1xuaW1wb3J0IE1vZGFsQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21vZGFsLWNvbnRhaW5lcic7XG5pbXBvcnQgUGxvdENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9wbG90LWNvbnRhaW5lcic7XG5pbXBvcnQgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5IGZyb20gJy4vbm90aWZpY2F0aW9uLXBhbmVsJztcbmltcG9ydCBHZW9Db2RlclBhbmVsRmFjdG9yeSBmcm9tICcuL2dlb2NvZGVyLXBhbmVsJztcbmltcG9ydCBFZmZlY3RNYW5hZ2VyRmFjdG9yeSBmcm9tICcuL2VmZmVjdHMvZWZmZWN0LW1hbmFnZXInO1xuaW1wb3J0IERuZENvbnRleHRGYWN0b3J5IGZyb20gJy4vZG5kLWNvbnRleHQnO1xuaW1wb3J0IHtDbG91ZExpc3RQcm92aWRlcn0gZnJvbSAnLi9ob29rcy91c2UtY2xvdWQtbGlzdC1wcm92aWRlcic7XG5cbmltcG9ydCB7XG4gIGZpbHRlck9iamVjdEJ5UHJlZGljYXRlLFxuICB2YWxpZGF0ZVRva2VuLFxuICBtZXJnZU1lc3NhZ2VzLFxuICBvYnNlcnZlRGltZW5zaW9ucyxcbiAgdW5vYnNlcnZlRGltZW5zaW9ucyxcbiAgaGFzUG9ydGFibGVXaWR0aCxcbiAgZ2V0QXBwbGljYXRpb25Db25maWdcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7dGhlbWUgYXMgYmFzaWNUaGVtZSwgdGhlbWVMVCwgdGhlbWVCUywgYnJlYWtQb2ludFZhbHVlc30gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtLZXBsZXJHbFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcblxuLy8gTWF5YmUgd2Ugc2hvdWxkIHRoaW5rIGFib3V0IGV4cG9ydGluZyB0aGlzIG9yIGNyZWF0aW5nIGEgdmFyaWFibGVcbi8vIGFzIHBhcnQgb2YgdGhlIGJhc2UuanMgdGhlbWVcbmNvbnN0IEdsb2JhbFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRXZWlnaHR9O1xuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFNpemV9O1xuICBsaW5lLWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5lSGVpZ2h0fTtcblxuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgfVxuXG4gIDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC5tYXBsaWJyZWdsLWN0cmwgLm1hcGxpYnJlZ2wtY3RybC1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1hcGJveGdsLWN0cmwgLm1hcGJveGdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYDtcblxudHlwZSBCb3R0b21XaWRnZXRPdXRlclByb3BzID0ge1xuICBhYnNvbHV0ZT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCb3R0b21XaWRnZXRPdXRlciA9IHN0eWxlZC5kaXY8Qm90dG9tV2lkZ2V0T3V0ZXJQcm9wcz4oXG4gICh7YWJzb2x1dGV9KSA9PiBgXG4gICR7YWJzb2x1dGUgPyAncG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOycgOiAnJ31cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIHByZXZlbnQgcGFkZGluZyBmcm9tIGJsb2NraW5nIGlucHV0ICovXG4gICYgPiAqIHtcbiAgICAvKiBhbGwgY2hpbGRyZW4gc2hvdWxkIGFsbG93IGlucHV0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfWBcbik7XG5cbmV4cG9ydCBjb25zdCBpc1ZpZXdwb3J0RGlzam9pbnRlZCA9IHByb3BzID0+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9wcy5tYXBTdGF0ZS5pc1NwbGl0ICYmXG4gICAgIXByb3BzLm1hcFN0YXRlLmlzVmlld3BvcnRTeW5jZWQgJiZcbiAgICBwcm9wcy5tYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGggPiAxXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwU3RhdGVTZWxlY3RvciA9IChwcm9wczogYW55LCBpbmRleDogbnVtYmVyKTogYW55ID0+IHtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW5kZXgpKSB7XG4gICAgLy8gZWl0aGVyIG5vIGluZGV4IGFyZyBvciBhbiBpbnZhbGlkIGluZGV4IHdhcyBwcm92aWRlZFxuICAgIC8vIGl0IGlzIGV4cGVjdGVkIHRvIGJlIGVpdGhlciAwIG9yIDEgd2hlbiBpbiBzcGxpdCBtb2RlXG4gICAgLy8gb25seSB1c2UgdGhlIG1hcFN0YXRlXG4gICAgcmV0dXJuIHByb3BzLm1hcFN0YXRlO1xuICB9XG5cbiAgcmV0dXJuIGlzVmlld3BvcnREaXNqb2ludGVkKHByb3BzKVxuICAgID8gLy8gbWl4IHRvZ2V0aGVyIHRoZSB2aWV3cG9ydCBwcm9wZXJ0aWVzIGludGVuZGVkIGZvciB0aGlzIGRpc2pvaW50ZWQgPE1hcENvbnRhaW5lcj4gd2l0aCB0aGUgb3RoZXIgbmVjZXNzYXJ5IG1hcFN0YXRlIHByb3BlcnRpZXNcbiAgICAgIHsuLi5wcm9wcy5tYXBTdGF0ZSwgLi4ucHJvcHMubWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHNbaW5kZXhdfVxuICAgIDogLy8gb3RoZXJ3aXNlIG9ubHkgdXNlIHRoZSBtYXBTdGF0ZVxuICAgICAgcHJvcHMubWFwU3RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwRmllbGRzU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMsIGluZGV4ID0gMCkgPT4gKHtcbiAgZ2V0TWFwYm94UmVmOiBwcm9wcy5nZXRNYXBib3hSZWYsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwgPyBwcm9wcy5tYXBib3hBcGlVcmwgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5tYXBib3hBcGlVcmwsXG4gIG1hcFN0YXRlOiBtYXBTdGF0ZVNlbGVjdG9yKHByb3BzLCBpbmRleCksXG4gIGRhdGFzZXRBdHRyaWJ1dGlvbnM6IGF0dHJpYnV0aW9uU2VsZWN0b3IocHJvcHMpLnNvdXJjZXMsXG4gIG1hcFN0eWxlOiBwcm9wcy5tYXBTdHlsZSxcbiAgb25EZWNrSW5pdGlhbGl6ZWQ6IHByb3BzLm9uRGVja0luaXRpYWxpemVkLFxuICBvblZpZXdTdGF0ZUNoYW5nZTogcHJvcHMub25WaWV3U3RhdGVDaGFuZ2UsXG4gIG9uTW91c2VNb3ZlOiBwcm9wcy5vbk1vdXNlTW92ZSxcbiAgZGVja0dsUHJvcHM6IHByb3BzLmRlY2tHbFByb3BzLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICBtYXBTdGF0ZUFjdGlvbnM6IHByb3BzLm1hcFN0YXRlQWN0aW9ucyxcblxuICAvLyB2aXNTdGF0ZVxuICB2aXNTdGF0ZTogcHJvcHMudmlzU3RhdGUsXG5cbiAgLy8gdWlTdGF0ZVxuICBhY3RpdmVTaWRlUGFuZWw6IHByb3BzLnVpU3RhdGUuYWN0aXZlU2lkZVBhbmVsLFxuICBtYXBDb250cm9sczogcHJvcHMudWlTdGF0ZS5tYXBDb250cm9scyxcbiAgcmVhZE9ubHk6IHByb3BzLnVpU3RhdGUucmVhZE9ubHksXG4gIGxvY2FsZTogcHJvcHMudWlTdGF0ZS5sb2NhbGUsXG4gIGlzTG9hZGluZ0luZGljYXRvclZpc2libGU6IE51bWJlcihwcm9wcy51aVN0YXRlLmxvYWRpbmdJbmRpY2F0b3JWYWx1ZSkgPiAwLFxuICBzaWRlUGFuZWxXaWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuXG4gIC8vIG1hcFN0eWxlXG4gIHRvcE1hcENvbnRhaW5lclByb3BzOiBwcm9wcy50b3BNYXBDb250YWluZXJQcm9wcyxcbiAgYm90dG9tTWFwQ29udGFpbmVyUHJvcHM6IHByb3BzLmJvdHRvbU1hcENvbnRhaW5lclByb3BzLFxuXG4gIC8vIHRyYW5zZm9ybVJlcXVlc3QgZm9yIE1hcGJveCBiYXNlbWFwc1xuICB0cmFuc2Zvcm1SZXF1ZXN0OiBwcm9wcy50cmFuc2Zvcm1SZXF1ZXN0XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2libGVEYXRhc2V0cyhkYXRhc2V0cykge1xuICAvLyBXZSBkb24ndCB3YW50IEdlb2NvZGVyIGRhdGFzZXQgdG8gYmUgcHJlc2VudCBpbiBTaWRlUGFuZWwgZGF0YXNldCBsaXN0XG4gIHJldHVybiBmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZShkYXRhc2V0cywga2V5ID0+IGtleSAhPT0gR0VPQ09ERVJfREFUQVNFVF9OQU1FKTtcbn1cblxuZXhwb3J0IGNvbnN0IHNpZGVQYW5lbFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMsIGZpbHRlcmVkRGF0YXNldHMpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUgPyBwcm9wcy5hcHBOYW1lIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMuYXBwTmFtZSxcbiAgdmVyc2lvbjogcHJvcHMudmVyc2lvbiA/IHByb3BzLnZlcnNpb24gOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy52ZXJzaW9uLFxuICBhcHBXZWJzaXRlOiBwcm9wcy5hcHBXZWJzaXRlLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIG9uU2F2ZU1hcDogcHJvcHMub25TYXZlTWFwLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgZGF0YXNldHM6IGZpbHRlcmVkRGF0YXNldHMsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckNsYXNzZXM6IHByb3BzLnZpc1N0YXRlLmxheWVyQ2xhc3NlcyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBtYXBJbmZvOiBwcm9wcy52aXNTdGF0ZS5tYXBJbmZvLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuICBvdmVybGF5QmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLm92ZXJsYXlCbGVuZGluZyxcblxuICB3aWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICBhdmFpbGFibGVQcm92aWRlcnMsXG4gIG1hcFNhdmVkOiBwcm9wcy5wcm92aWRlclN0YXRlLm1hcFNhdmVkXG59KTtcblxuZXhwb3J0IGNvbnN0IHBsb3RDb250YWluZXJTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gKHtcbiAgd2lkdGg6IHByb3BzLndpZHRoLFxuICBoZWlnaHQ6IHByb3BzLmhlaWdodCxcbiAgZXhwb3J0SW1hZ2VTZXR0aW5nOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLFxuICBtYXBGaWVsZHM6IG1hcEZpZWxkc1NlbGVjdG9yKHByb3BzKSxcbiAgYWRkTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5hZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLFxuICBzZXRFeHBvcnRJbWFnZURhdGFVcmk6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc3BsaXRNYXBzOiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHNcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNTcGxpdFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PlxuICBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHMgJiYgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG5cbmV4cG9ydCBjb25zdCBib3R0b21XaWRnZXRTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgdGhlbWUpID0+ICh7XG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGRhdGFzZXRzOiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cyxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbGF5ZXJzOiBwcm9wcy52aXNTdGF0ZS5sYXllcnMsXG4gIGFuaW1hdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdG9nZ2xlTW9kYWw6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1vZGFsLFxuICBzaWRlUGFuZWxXaWR0aDogcHJvcHMudWlTdGF0ZS5yZWFkT25seSA/IDAgOiBwcm9wcy5zaWRlUGFuZWxXaWR0aCArIHRoZW1lLnNpZGVQYW5lbC5tYXJnaW4ubGVmdFxufSk7XG5cbmV4cG9ydCBjb25zdCBtb2RhbENvbnRhaW5lclNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCByb290Tm9kZSkgPT4gKHtcbiAgYXBwTmFtZTogcHJvcHMuYXBwTmFtZSA/IHByb3BzLmFwcE5hbWUgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5hcHBOYW1lLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBwcm92aWRlclN0YXRlOiBwcm9wcy5wcm92aWRlclN0YXRlLFxuXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICBwcm92aWRlckFjdGlvbnM6IHByb3BzLnByb3ZpZGVyQWN0aW9ucyxcblxuICByb290Tm9kZSxcbiAgLy8gVXNlciBkZWZpbmVkIGNsb3VkIHByb3ZpZGVyIHByb3BzXG4gIGNsb3VkUHJvdmlkZXJzOiBwcm9wcy5jbG91ZFByb3ZpZGVyc1xuICAgID8gcHJvcHMuY2xvdWRQcm92aWRlcnNcbiAgICA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmNsb3VkUHJvdmlkZXJzLFxuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRTdWNjZXNzLFxuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M6IHByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcjogcHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvcixcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I6IHByb3BzLm9uRXhwb3J0VG9DbG91ZEVycm9yXG59KTtcblxuZXhwb3J0IGNvbnN0IGdlb0NvZGVyUGFuZWxTZWxlY3RvciA9IChcbiAgcHJvcHM6IEtlcGxlckdMUHJvcHMsXG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn1cbikgPT4gKHtcbiAgaXNHZW9jb2RlckVuYWJsZWQ6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICB1cGRhdGVWaXNEYXRhOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMudXBkYXRlVmlzRGF0YSxcbiAgcmVtb3ZlRGF0YXNldDogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQsXG4gIHVwZGF0ZU1hcDogcHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCxcbiAgYXBwV2lkdGg6IGRpbWVuc2lvbnMud2lkdGhcbn0pO1xuXG4vKipcbiAqIFJldHVybnMgYXJyYXkgb2YgdW5pcXVlIGRhdGFzZXQgYXR0cmlidXRpb25zLCBlYWNoIHdpdGggdGl0bGUgYW5kIHVybCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgY29uc3QgZGF0YXNldEF0dHJpYnV0aW9uU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgW3N0YXRlID0+IHN0YXRlLnZpc1N0YXRlLmRhdGFzZXRzXSxcbiAgZGF0YXNldHMgPT4ge1xuICAgIGNvbnN0IHVuaXF1ZUF0dHJpYnV0aW9uczogRGF0YXNldEF0dHJpYnV0aW9uW10gPSBbXTtcbiAgICBPYmplY3Qua2V5cyhkYXRhc2V0cykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgZHMgPSBkYXRhc2V0c1trZXldO1xuICAgICAgY29uc3QgYXR0cmlidXRpb25zID0gZHM/Lm1ldGFkYXRhPy5hdHRyaWJ1dGlvbnM7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhdHRyaWJ1dGlvbnMpKSB7XG4gICAgICAgIGF0dHJpYnV0aW9ucy5mb3JFYWNoKGF0dHJpYnV0aW9uID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGF0dHJpYnV0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gYXR0cmlidXRpb24gY2FuIGJlIGEgcmF3IHN0cmluZyBvciBhIHN0cmluZyB3aXRoIGxpbmsgdGFnc1xuICAgICAgICAgICAgY29uc3QgbGlua3MgPSBhdHRyaWJ1dGlvbi5tYXRjaCgvPGFbXl0rP2E+L2cpO1xuICAgICAgICAgICAgaWYgKGxpbmtzKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGlua3M/LmZvckVhY2gobGluayA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gbGluay5tYXRjaCgvaHJlZj1cIihbXlwiXSopLyk/LlsxXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gbGluay5tYXRjaCgvdGl0bGU9XCIoW15cIl0qKS8pPy5bMV07XG4gICAgICAgICAgICAgICAgICBpZiAoaHJlZiAmJiB0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB1bmlxdWVBdHRyaWJ1dGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGAke2xpbmsuaW5kZXhPZignJmNvcHk7JykgPj0gMCA/ICfCqSAnIDogJyd9JHt0aXRsZX1gLFxuICAgICAgICAgICAgICAgICAgICAgIHVybDogaHJlZlxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGlnbm9yZSBmb3Igbm93XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVuaXF1ZUF0dHJpYnV0aW9ucy5wdXNoKHt0aXRsZTogYXR0cmlidXRpb24sIHVybDogbnVsbH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHVuaXF1ZUF0dHJpYnV0aW9ucztcbiAgfVxuKTtcblxuLyoqXG4gKiBEZWR1cGxpY2F0ZWQgZGF0YXNldCBhbmQgbGF5ZXIgdGV4dCBhdHRyaWJ1dGlvbnMgYW5kIGxvZ29zLlxuICogUmV0dXJucyB0ZXh0IGF0dHJpYnV0aW9ucyBhbmQgbG9nb3MgdG8gZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNvbnN0IGF0dHJpYnV0aW9uU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgW2RhdGFzZXRBdHRyaWJ1dGlvblNlbGVjdG9yXSxcbiAgZGF0YXNldEF0dHJpYnV0aW9ucyA9PiB7XG4gICAgLy8gVE9ETyBjb2xsZWN0IGF0dHJpYnV0aW9ucyBmcm9tIGxheWVycywgYW5kIG1lcmdlIHdpdGggZGF0YXNldCBhdHRyaWJ1dGlvbnMgaGVyZVxuICAgIGNvbnN0IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMgPSBkYXRhc2V0QXR0cmlidXRpb25zO1xuICAgIGNvbnN0IGxvZ29zOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0gW107XG5cbiAgICByZXR1cm4ge3NvdXJjZXM6IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMsIGxvZ29zfTtcbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+ICh7XG4gIHJlbW92ZU5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMucmVtb3ZlTm90aWZpY2F0aW9uLFxuICBub3RpZmljYXRpb25zOiBwcm9wcy51aVN0YXRlLm5vdGlmaWNhdGlvbnNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMgPSB7XG4gIG1hcFN0eWxlczogW10sXG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBmYWxzZSxcbiAgbWFwYm94QXBpVXJsOiBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgYXBwTmFtZTogS0VQTEVSX0dMX05BTUUsXG4gIHZlcnNpb246IEtFUExFUl9HTF9WRVJTSU9OLFxuICBzaWRlUGFuZWxXaWR0aDogRElNRU5TSU9OUy5zaWRlUGFuZWwud2lkdGgsXG4gIHRoZW1lOiB7fSxcbiAgY2xvdWRQcm92aWRlcnM6IFtdLFxuICByZWFkT25seTogZmFsc2UsXG4gIGZlYXR1cmVGbGFnczoge31cbn07XG5cbnR5cGUgS2VwbGVyR0xCYXNpY1Byb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG5cbiAgYXBwV2Vic2l0ZT86IGFueTtcbiAgb25TYXZlTWFwPzogKCkgPT4gdm9pZDtcbiAgb25WaWV3U3RhdGVDaGFuZ2U/OiAodmlld1N0YXRlOiBWaWV3cG9ydCkgPT4gdm9pZDtcbiAgb25EZWNrSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBvbktlcGxlckdsSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBnZXRNYXBib3hSZWY/OiAoKSA9PiBSZWFjdC5SZWZPYmplY3Q8YW55PjtcbiAgbWFwU3R5bGVzPzoge2lkOiBzdHJpbmc7IHN0eWxlPzogb2JqZWN0fVtdO1xuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdD86IGJvb2xlYW47XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHNpZGVQYW5lbFdpZHRoPzogbnVtYmVyO1xuICB0aGVtZT86IG9iamVjdDtcbiAgY2xvdWRQcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICBkZWNrR2xQcm9wcz86IG9iamVjdDtcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uTG9hZENsb3VkTWFwRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIG9uTW91c2VNb3ZlPzogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50ICYge2xuZ0xhdD86IFtudW1iZXIsIG51bWJlcl19KSA9PiB2b2lkO1xuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yPzogT25FcnJvckNhbGxCYWNrO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIGZlYXR1cmVGbGFncz86IEZlYXR1cmVGbGFncztcblxuICBsb2NhbGVNZXNzYWdlcz86IHtba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfX07XG4gIGRpc3BhdGNoOiBEaXNwYXRjaDxhbnk+O1xuXG4gIHRvcE1hcENvbnRhaW5lclByb3BzPzogb2JqZWN0O1xuICBib3R0b21NYXBDb250YWluZXJQcm9wcz86IG9iamVjdDtcblxuICB0cmFuc2Zvcm1SZXF1ZXN0PzogKHVybDogc3RyaW5nKSA9PiB7dXJsOiBzdHJpbmd9O1xufTtcblxudHlwZSBLZXBsZXJHTFByb3BzID0gS2VwbGVyR2xTdGF0ZSAmIEtlcGxlckdsQWN0aW9ucyAmIEtlcGxlckdMQmFzaWNQcm9wcztcbnR5cGUgS2VwbGVyR0xDb21wU3RhdGUgPSB7XG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn0gfCBudWxsO1xufTtcblxuS2VwbGVyR2xGYWN0b3J5LmRlcHMgPSBbXG4gIEJvdHRvbVdpZGdldEZhY3RvcnksXG4gIEdlb0NvZGVyUGFuZWxGYWN0b3J5LFxuICBNYXBDb250YWluZXJGYWN0b3J5LFxuICBNYXBzTGF5b3V0RmFjdG9yeSxcbiAgTW9kYWxDb250YWluZXJGYWN0b3J5LFxuICBTaWRlUGFuZWxGYWN0b3J5LFxuICBQbG90Q29udGFpbmVyRmFjdG9yeSxcbiAgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5LFxuICBEbmRDb250ZXh0RmFjdG9yeSxcbiAgRWZmZWN0TWFuYWdlckZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEtlcGxlckdsRmFjdG9yeShcbiAgQm90dG9tV2lkZ2V0OiBSZXR1cm5UeXBlPHR5cGVvZiBCb3R0b21XaWRnZXRGYWN0b3J5PixcbiAgR2VvQ29kZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgR2VvQ29kZXJQYW5lbEZhY3Rvcnk+LFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT4sXG4gIE1vZGFsQ29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbENvbnRhaW5lckZhY3Rvcnk+LFxuICBTaWRlUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIFNpZGVQYW5lbEZhY3Rvcnk+LFxuICBQbG90Q29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBQbG90Q29udGFpbmVyRmFjdG9yeT4sXG4gIE5vdGlmaWNhdGlvblBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBOb3RpZmljYXRpb25QYW5lbEZhY3Rvcnk+LFxuICBEbmRDb250ZXh0OiBSZXR1cm5UeXBlPHR5cGVvZiBEbmRDb250ZXh0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8S2VwbGVyR0xCYXNpY1Byb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9PiB7XG4gIC8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2tlcGxlci1nbCcpLlVuY29ubmVjdGVkS2VwbGVyR2xQcm9wc30gS2VwbGVyR2xQcm9wcyAqL1xuICAvKiogQGF1Z21lbnRzIFJlYWN0LkNvbXBvbmVudDxLZXBsZXJHbFByb3BzPiAqL1xuICBjbGFzcyBLZXBsZXJHTCBleHRlbmRzIENvbXBvbmVudDxcbiAgICBLZXBsZXJHTFByb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9LFxuICAgIEtlcGxlckdMQ29tcFN0YXRlXG4gID4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUztcblxuICAgIHN0YXRlOiBLZXBsZXJHTENvbXBTdGF0ZSA9IHtcbiAgICAgIGRpbWVuc2lvbnM6IG51bGxcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBpZiAoZ2V0QXBwbGljYXRpb25Db25maWcoKS5iYXNlTWFwTGlicmFyeUNvbmZpZz8uWydtYXBib3gnXT8ubWFwTGliTmFtZSA9PT0gJ01hcGJveCcpIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVNYXBib3hUb2tlbigpO1xuICAgICAgfVxuICAgICAgdGhpcy5fbG9hZE1hcFN0eWxlKCk7XG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25LZXBsZXJHbEluaXRpYWxpemVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25LZXBsZXJHbEluaXRpYWxpemVkKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5yb290LmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICBvYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCwgdGhpcy5faGFuZGxlUmVzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2RpbWVuc2lvbnN9KTtcbiAgICB9O1xuXG4gICAgc3RhdGljIGNvbnRleHRUeXBlID0gUm9vdENvbnRleHQ7XG5cbiAgICByb290ID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICAgIGJvdHRvbVdpZGdldFJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAgIC8qIHNlbGVjdG9ycyAqL1xuICAgIHRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy50aGVtZTtcbiAgICBhdmFpbGFibGVUaGVtZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy50aGVtZVNlbGVjdG9yLCB0aGVtZSA9PlxuICAgICAgdHlwZW9mIHRoZW1lID09PSAnb2JqZWN0J1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIC4uLmJhc2ljVGhlbWUsXG4gICAgICAgICAgICAuLi50aGVtZVxuICAgICAgICAgIH1cbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUubGlnaHRcbiAgICAgICAgPyB0aGVtZUxUXG4gICAgICAgIDogdGhlbWUgPT09IFRIRU1FLmJhc2VcbiAgICAgICAgPyB0aGVtZUJTXG4gICAgICAgIDogdGhlbWVcbiAgICApO1xuXG4gICAgZGF0YXNldHNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzO1xuICAgIGZpbHRlcmVkRGF0YXNldHNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZGF0YXNldHNTZWxlY3RvciwgZ2V0VmlzaWJsZURhdGFzZXRzKTtcblxuICAgIGF2YWlsYWJsZVByb3ZpZGVycyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PiBwcm9wcy5jbG91ZFByb3ZpZGVycyxcbiAgICAgIHByb3ZpZGVycyA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KHByb3ZpZGVycykgJiYgcHJvdmlkZXJzLmxlbmd0aFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBoYXNTdG9yYWdlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzUHJpdmF0ZVN0b3JhZ2UoKSksXG4gICAgICAgICAgICAgIGhhc1NoYXJlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzU2hhcmluZ1VybCgpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge31cbiAgICApO1xuXG4gICAgbG9jYWxlTWVzc2FnZXNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PiBwcm9wcy5sb2NhbGVNZXNzYWdlcyxcbiAgICAgIGN1c3RvbU1lc3NhZ2VzID0+IChjdXN0b21NZXNzYWdlcyA/IG1lcmdlTWVzc2FnZXMobWVzc2FnZXMsIGN1c3RvbU1lc3NhZ2VzKSA6IG1lc3NhZ2VzKVxuICAgICk7XG5cbiAgICAvKiBwcml2YXRlIG1ldGhvZHMgKi9cbiAgICBfdmFsaWRhdGVNYXBib3hUb2tlbigpIHtcbiAgICAgIGNvbnN0IHttYXBib3hBcGlBY2Nlc3NUb2tlbn0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKCF2YWxpZGF0ZVRva2VuKG1hcGJveEFwaUFjY2Vzc1Rva2VuKSkge1xuICAgICAgICBDb25zb2xlLndhcm4oTUlTU0lOR19NQVBCT1hfVE9LRU4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9sb2FkTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0U3R5bGVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnByb3BzLm1hcFN0eWxlLm1hcFN0eWxlcyk7XG4gICAgICAvLyBhZGQgaWQgdG8gY3VzdG9tIG1hcCBzdHlsZXMgaWYgbm90IGdpdmVuXG4gICAgICBjb25zdCBjdXN0b21TdHlsZXMgPSAodGhpcy5wcm9wcy5tYXBTdHlsZXMgfHwgW10pLm1hcChtcyA9PiAoe1xuICAgICAgICAuLi5tcyxcbiAgICAgICAgaWQ6IG1zLmlkIHx8IGdlbmVyYXRlSGFzaElkKClcbiAgICAgIH0pKTtcblxuICAgICAgY29uc3QgYWxsU3R5bGVzID0gWy4uLmN1c3RvbVN0eWxlcywgLi4uZGVmYXVsdFN0eWxlc10ucmVkdWNlKChhY2N1LCBzdHlsZSkgPT4ge1xuICAgICAgICBhY2N1W3N0eWxlLmlkXSA9IHN0eWxlO1xuICAgICAgICByZXR1cm4gYWNjdTtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgdGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMubG9hZE1hcFN0eWxlcyhhbGxTdHlsZXMpO1xuICAgIH07XG5cbiAgICBfZGVsZXRlTWFwTGFiZWxzID0gKGNvbnRhaW5lcklkLCBsYXllcklkKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy50b2dnbGVMYXllckZvck1hcChjb250YWluZXJJZCwgbGF5ZXJJZCk7XG4gICAgfTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpZCA9ICdtYXAnLFxuICAgICAgICB3aWR0aCA9IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICAgICAgICBoZWlnaHQgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5oZWlnaHQsXG4gICAgICAgIHVpU3RhdGUsXG4gICAgICAgIHZpc1N0YXRlLFxuICAgICAgICAvLyByZWFkT25seSBvdmVycmlkZVxuICAgICAgICByZWFkT25seSxcblxuICAgICAgICAvLyBmZWF0dXJlc1xuICAgICAgICBmZWF0dXJlRmxhZ3MsXG5cbiAgICAgICAgLy8gY2xvdWQgcHJvdmlkZXJzXG4gICAgICAgIGNsb3VkUHJvdmlkZXJzID0gW11cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gdGhpcy5zdGF0ZS5kaW1lbnNpb25zIHx8IHt3aWR0aCwgaGVpZ2h0fTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3BsaXRNYXBzLCAvLyB0aGlzIHdpbGwgc3RvcmUgc3VwcG9ydCBmb3Igc3BsaXQgbWFwIHZpZXcgaXMgbmVjZXNzYXJ5XG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnXG4gICAgICB9ID0gdmlzU3RhdGU7XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBpc1NwbGl0U2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCB0aGVtZSA9IHRoaXMuYXZhaWxhYmxlVGhlbWVTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxvY2FsZU1lc3NhZ2VzID0gdGhpcy5sb2NhbGVNZXNzYWdlc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgaXNFeHBvcnRpbmdJbWFnZSA9IHVpU3RhdGUuZXhwb3J0SW1hZ2UuZXhwb3J0aW5nO1xuICAgICAgY29uc3QgYXZhaWxhYmxlUHJvdmlkZXJzID0gdGhpcy5hdmFpbGFibGVQcm92aWRlcnModGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YXNldHMgPSB0aGlzLmZpbHRlcmVkRGF0YXNldHNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHNpZGVGaWVsZHMgPSBzaWRlUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMsIGZpbHRlcmVkRGF0YXNldHMpO1xuICAgICAgY29uc3QgcGxvdENvbnRhaW5lckZpZWxkcyA9IHBsb3RDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGJvdHRvbVdpZGdldEZpZWxkcyA9IGJvdHRvbVdpZGdldFNlbGVjdG9yKHRoaXMucHJvcHMsIHRoZW1lKTtcbiAgICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyRmllbGRzID0gbW9kYWxDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICBjb25zdCBnZW9Db2RlclBhbmVsRmllbGRzID0gZ2VvQ29kZXJQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMsIGRpbWVuc2lvbnMpO1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxGaWVsZHMgPSBub3RpZmljYXRpb25QYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXRcbiAgICAgICAgPyBbXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIHByaW1hcnk9e3RydWV9XG4gICAgICAgICAgICAgIGtleT17MH1cbiAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgY29udGFpbmVySWQ9ezB9XG4gICAgICAgICAgICAgIGRlbGV0ZU1hcExhYmVscz17dGhpcy5fZGVsZXRlTWFwTGFiZWxzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICBdXG4gICAgICAgIDogc3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgcHJpbWFyeT17aW5kZXggPT09IDF9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzLCBpbmRleCl9XG4gICAgICAgICAgICAgIGNvbnRhaW5lcklkPXtpbmRleH1cbiAgICAgICAgICAgICAgZGVsZXRlTWFwTGFiZWxzPXt0aGlzLl9kZWxldGVNYXBMYWJlbHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um9vdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMucm9vdH0+XG4gICAgICAgICAgPEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciBmZWF0dXJlRmxhZ3M9e2ZlYXR1cmVGbGFnc30+XG4gICAgICAgICAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17dWlTdGF0ZS5sb2NhbGV9IG1lc3NhZ2VzPXtsb2NhbGVNZXNzYWdlc1t1aVN0YXRlLmxvY2FsZV19PlxuICAgICAgICAgICAgICA8U3R5bGVTaGVldE1hbmFnZXIgc2hvdWxkRm9yd2FyZFByb3A9e3Nob3VsZEZvcndhcmRQcm9wfT5cbiAgICAgICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICAgICAgICAgICAgPENsb3VkTGlzdFByb3ZpZGVyIHByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9PlxuICAgICAgICAgICAgICAgICAgICA8R2xvYmFsU3R5bGVcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJrZXBsZXItZ2xcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtga2VwbGVyLWdsX18ke2lkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25QYW5lbCB7Li4ubm90aWZpY2F0aW9uUGFuZWxGaWVsZHN9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPERuZENvbnRleHQgdmlzU3RhdGU9e3Zpc1N0YXRlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHshdWlTdGF0ZS5yZWFkT25seSAmJiAhcmVhZE9ubHkgJiYgPFNpZGVQYW5lbCB7Li4uc2lkZUZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJtYXBzXCIgbWFwU3RhdGU9e3RoaXMucHJvcHMubWFwU3RhdGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0RuZENvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge2lzRXhwb3J0aW5nSW1hZ2UgJiYgPFBsb3RDb250YWluZXIgey4uLnBsb3RDb250YWluZXJGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgICAgICAgIHsvKiAxIGdlb2NvZGVyOiBzaW5nbGUgbW9kZSBPUiBzcGxpdCBtb2RlIGFuZCBzeW5jZWQgdmlld3BvcnRzICovfVxuICAgICAgICAgICAgICAgICAgICAgIHshaXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiYgaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2VvQ29kZXJQYW5lbEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB7LyogMiBnZW9jb2RlcnM6IHNwbGl0IG1vZGUgYW5kIHVuc3luY2VkIHZpZXdwb3J0cyAqL31cbiAgICAgICAgICAgICAgICAgICAgICB7aXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcENvbnRhaW5lcnMubWFwKChfbWFwQ29udGFpbmVyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldE91dGVyIGFic29sdXRlPXshaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm90dG9tV2lkZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZWY9e3RoaXMuYm90dG9tV2lkZ2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYm90dG9tV2lkZ2V0RmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvQm90dG9tV2lkZ2V0T3V0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPE1vZGFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ubW9kYWxDb250YWluZXJGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySD17ZGltZW5zaW9ucy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HbG9iYWxTdHlsZT5cbiAgICAgICAgICAgICAgICAgIDwvQ2xvdWRMaXN0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L1N0eWxlU2hlZXRNYW5hZ2VyPlxuICAgICAgICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvUm9vdENvbnRleHQuUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXBsZXJHbENvbm5lY3QoXG4gICAgbWFwU3RhdGVUb1Byb3BzLFxuICAgIG1ha2VNYXBEaXNwYXRjaFRvUHJvcHNcbiAgKSh3aXRoVGhlbWUoS2VwbGVyR0wpKSBhcyBSZXR1cm5UeXBlPHR5cGVvZiBLZXBsZXJHbEZhY3Rvcnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBLZXBsZXJHbFN0YXRlLCBwcm9wczogS2VwbGVyR0xQcm9wcykge1xuICByZXR1cm4ge1xuICAgIC4uLnByb3BzLFxuICAgIHZpc1N0YXRlOiBzdGF0ZS52aXNTdGF0ZSxcbiAgICBtYXBTdHlsZTogc3RhdGUubWFwU3R5bGUsXG4gICAgbWFwU3RhdGU6IHN0YXRlLm1hcFN0YXRlLFxuICAgIHVpU3RhdGU6IHN0YXRlLnVpU3RhdGUsXG4gICAgcHJvdmlkZXJTdGF0ZTogc3RhdGUucHJvdmlkZXJTdGF0ZVxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0VXNlckFjdGlvbnMgPSB7fTtcblxuY29uc3QgZ2V0RGlzcGF0Y2ggPSBkaXNwYXRjaCA9PiBkaXNwYXRjaDtcbmNvbnN0IGdldFVzZXJBY3Rpb25zID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gcHJvcHMuYWN0aW9ucyB8fCBkZWZhdWx0VXNlckFjdGlvbnM7XG5cbi8qKiBAdHlwZSB7KCkgPT4gaW1wb3J0KCdyZXNlbGVjdCcpLk91dHB1dFBhcmFtZXRyaWNTZWxlY3RvcjxhbnksIGFueSwgYW55LCBhbnk+fSAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJBY3Rpb25zLCBrZXkpICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWN0aW9ucywga2V5KVxuICAgICkge1xuICAgICAgb3ZlcnJpZGVzW2tleV0gPSB1c2VyQWN0aW9uc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7Li4uYWN0aW9ucywgLi4ub3ZlcnJpZGVzfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgS2VwbGVyR2xGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUwsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFTQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFRQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFFQSxJQUFBWSxrQkFBQSxHQUFBWixPQUFBO0FBVUEsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBVUEsSUFBQWMsVUFBQSxHQUFBWixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWUs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
@@ -65,7 +65,7 @@ function LayerSelectorPanelFactory(MapControlTooltip, MapControlPanel) {
65
65
  "data-tip": true,
66
66
  "data-for": "toggle-layer"
67
67
  }, /*#__PURE__*/_react["default"].createElement(_icons.Layers, {
68
- height: "22px"
68
+ height: "16px"
69
69
  }), /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
70
70
  id: "toggle-layer",
71
71
  message: isActive ? 'tooltip.hideLayerPanel' : 'tooltip.showLayerPanel'
@@ -82,4 +82,4 @@ function LayerSelectorPanelFactory(MapControlTooltip, MapControlPanel) {
82
82
  return /*#__PURE__*/_react["default"].memo(LayerSelectorPanel);
83
83
  }
84
84
  var _default = exports["default"] = LayerSelectorPanelFactory;
85
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl9tYXBMYXllclNlbGVjdG9yIiwiX21hcENvbnRyb2xUb29sdGlwIiwiX21hcENvbnRyb2xQYW5lbCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkxheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTGF5ZXJTZWxlY3RvclBhbmVsIiwiX3JlZiIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJvblRvZ2dsZU1hcENvbnRyb2wiLCJsYXllcnMiLCJsYXllcnNUb1JlbmRlciIsImlzU3BsaXQiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwidmlzaWJsZUxheWVycyIsIl9yZWYyIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJzaG93IiwiZGlzYWJsZUNsb3NlIiwibGVnZW5kTGF5ZXJzIiwidXNlTWVtbyIsImZpbHRlciIsIl9yZWYzIiwiY29uZmlnIiwiaXNWaXNpYmxlIiwibWFwIiwiX3JlZjQiLCJpZCIsIm5hbWUiLCJsYWJlbCIsIm9uVG9nZ2xlTWVudVBhbmVsIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIk1hcENvbnRyb2xCdXR0b24iLCJrZXkiLCJvbkNsaWNrIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsIkxheWVycyIsImhlaWdodCIsIm1lc3NhZ2UiLCJoZWFkZXIiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF5ZXItc2VsZWN0b3ItcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtMYXllcnN9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgTWFwTGF5ZXJTZWxlY3RvciBmcm9tICcuLi9jb21tb24vbWFwLWxheWVyLXNlbGVjdG9yJztcbmltcG9ydCBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sdGlwJztcbmltcG9ydCBNYXBDb250cm9sUGFuZWxGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtcGFuZWwnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtNYXBDb250cm9sSXRlbSwgTWFwQ29udHJvbHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5MYXllclNlbGVjdG9yUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5XTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJTZWxlY3RvclBhbmVsUHJvcHMgPSB7XG4gIG9uTWFwVG9nZ2xlTGF5ZXI6IChsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJzVG9SZW5kZXI6IHtba2V5OiBzdHJpbmddOiBib29sZWFufTtcbiAgaXNTcGxpdDogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIExheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkoXG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+LFxuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+XG4pIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItc2VsZWN0b3ItcGFuZWwnKS5MYXllclNlbGVjdG9yUGFuZWxDb21wb25lbnR9ICovXG4gIGNvbnN0IExheWVyU2VsZWN0b3JQYW5lbDogUmVhY3QuRkM8TGF5ZXJTZWxlY3RvclBhbmVsUHJvcHM+ID0gKHtcbiAgICBvbk1hcFRvZ2dsZUxheWVyLFxuICAgIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgICBsYXllcnMsXG4gICAgbGF5ZXJzVG9SZW5kZXIsXG4gICAgaXNTcGxpdCxcbiAgICBtYXBDb250cm9scyxcbiAgICByZWFkT25seVxuICB9KSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxheWVycyA9IG1hcENvbnRyb2xzPy52aXNpYmxlTGF5ZXJzIHx8ICh7fSBhcyBNYXBDb250cm9sSXRlbSk7XG4gICAgY29uc3Qge2FjdGl2ZTogaXNBY3RpdmUsIHNob3csIGRpc2FibGVDbG9zZX0gPSB2aXNpYmxlTGF5ZXJzIHx8IHt9O1xuXG4gICAgY29uc3QgbGVnZW5kTGF5ZXJzID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGxheWVyc1xuICAgICAgICAgIC5maWx0ZXIoKHtjb25maWd9KSA9PiBjb25maWcuaXNWaXNpYmxlKVxuICAgICAgICAgIC5tYXAoKHtpZCwgY29uZmlnfSkgPT4gKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZTogY29uZmlnLmxhYmVsLFxuICAgICAgICAgICAgLy8gbGF5ZXJcbiAgICAgICAgICAgIGlzVmlzaWJsZTogbGF5ZXJzVG9SZW5kZXJbaWRdXG4gICAgICAgICAgfSkpLFxuICAgICAgW2xheWVycywgbGF5ZXJzVG9SZW5kZXJdXG4gICAgKTtcblxuICAgIGNvbnN0IGlzVmlzaWJsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBpc1NwbGl0ICYmIHNob3cgJiYgcmVhZE9ubHkgIT09IHRydWUsXG4gICAgICBbaXNTcGxpdCwgc2hvdywgcmVhZE9ubHldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uVG9nZ2xlTWVudVBhbmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgndmlzaWJsZUxheWVycycpO1xuICAgICAgfSxcbiAgICAgIFtvblRvZ2dsZU1hcENvbnRyb2xdXG4gICAgKTtcblxuICAgIHJldHVybiBpc1Zpc2libGUgPyAoXG4gICAgICAhaXNBY3RpdmUgPyAoXG4gICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAga2V5PXsxfVxuICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlTWVudVBhbmVsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbWFwLWNvbnRyb2wtYnV0dG9uJywgJ3RvZ2dsZS1sYXllcicsIHtpc0FjdGl2ZX0pfVxuICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgZGF0YS1mb3I9XCJ0b2dnbGUtbGF5ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPExheWVycyBoZWlnaHQ9XCIyMnB4XCIgLz5cbiAgICAgICAgICA8TWFwQ29udHJvbFRvb2x0aXBcbiAgICAgICAgICAgIGlkPVwidG9nZ2xlLWxheWVyXCJcbiAgICAgICAgICAgIG1lc3NhZ2U9e2lzQWN0aXZlID8gJ3Rvb2x0aXAuaGlkZUxheWVyUGFuZWwnIDogJ3Rvb2x0aXAuc2hvd0xheWVyUGFuZWwnfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxNYXBDb250cm9sUGFuZWxcbiAgICAgICAgICBoZWFkZXI9XCJoZWFkZXIudmlzaWJsZUxheWVyc1wiXG4gICAgICAgICAgb25DbGljaz17b25Ub2dnbGVNZW51UGFuZWx9XG4gICAgICAgICAgZGlzYWJsZUNsb3NlPXtkaXNhYmxlQ2xvc2V9XG4gICAgICAgID5cbiAgICAgICAgICA8TWFwTGF5ZXJTZWxlY3RvciBsYXllcnM9e2xlZ2VuZExheWVyc30gb25NYXBUb2dnbGVMYXllcj17b25NYXBUb2dnbGVMYXllcn0gLz5cbiAgICAgICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICAgICApXG4gICAgKSA6IG51bGw7XG4gIH07XG5cbiAgTGF5ZXJTZWxlY3RvclBhbmVsLmRpc3BsYXlOYW1lID0gJ0xheWVyU2VsZWN0b3JQYW5lbCc7XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTGF5ZXJTZWxlY3RvclBhbmVsKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJTZWxlY3RvclBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxpQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElB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
85
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl9tYXBMYXllclNlbGVjdG9yIiwiX21hcENvbnRyb2xUb29sdGlwIiwiX21hcENvbnRyb2xQYW5lbCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkxheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTGF5ZXJTZWxlY3RvclBhbmVsIiwiX3JlZiIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJvblRvZ2dsZU1hcENvbnRyb2wiLCJsYXllcnMiLCJsYXllcnNUb1JlbmRlciIsImlzU3BsaXQiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwidmlzaWJsZUxheWVycyIsIl9yZWYyIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJzaG93IiwiZGlzYWJsZUNsb3NlIiwibGVnZW5kTGF5ZXJzIiwidXNlTWVtbyIsImZpbHRlciIsIl9yZWYzIiwiY29uZmlnIiwiaXNWaXNpYmxlIiwibWFwIiwiX3JlZjQiLCJpZCIsIm5hbWUiLCJsYWJlbCIsIm9uVG9nZ2xlTWVudVBhbmVsIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIk1hcENvbnRyb2xCdXR0b24iLCJrZXkiLCJvbkNsaWNrIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsIkxheWVycyIsImhlaWdodCIsIm1lc3NhZ2UiLCJoZWFkZXIiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF5ZXItc2VsZWN0b3ItcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtMYXllcnN9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgTWFwTGF5ZXJTZWxlY3RvciBmcm9tICcuLi9jb21tb24vbWFwLWxheWVyLXNlbGVjdG9yJztcbmltcG9ydCBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sdGlwJztcbmltcG9ydCBNYXBDb250cm9sUGFuZWxGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtcGFuZWwnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtNYXBDb250cm9sSXRlbSwgTWFwQ29udHJvbHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5MYXllclNlbGVjdG9yUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5XTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJTZWxlY3RvclBhbmVsUHJvcHMgPSB7XG4gIG9uTWFwVG9nZ2xlTGF5ZXI6IChsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJzVG9SZW5kZXI6IHtba2V5OiBzdHJpbmddOiBib29sZWFufTtcbiAgaXNTcGxpdDogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIExheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkoXG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+LFxuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+XG4pIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItc2VsZWN0b3ItcGFuZWwnKS5MYXllclNlbGVjdG9yUGFuZWxDb21wb25lbnR9ICovXG4gIGNvbnN0IExheWVyU2VsZWN0b3JQYW5lbDogUmVhY3QuRkM8TGF5ZXJTZWxlY3RvclBhbmVsUHJvcHM+ID0gKHtcbiAgICBvbk1hcFRvZ2dsZUxheWVyLFxuICAgIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgICBsYXllcnMsXG4gICAgbGF5ZXJzVG9SZW5kZXIsXG4gICAgaXNTcGxpdCxcbiAgICBtYXBDb250cm9scyxcbiAgICByZWFkT25seVxuICB9KSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxheWVycyA9IG1hcENvbnRyb2xzPy52aXNpYmxlTGF5ZXJzIHx8ICh7fSBhcyBNYXBDb250cm9sSXRlbSk7XG4gICAgY29uc3Qge2FjdGl2ZTogaXNBY3RpdmUsIHNob3csIGRpc2FibGVDbG9zZX0gPSB2aXNpYmxlTGF5ZXJzIHx8IHt9O1xuXG4gICAgY29uc3QgbGVnZW5kTGF5ZXJzID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGxheWVyc1xuICAgICAgICAgIC5maWx0ZXIoKHtjb25maWd9KSA9PiBjb25maWcuaXNWaXNpYmxlKVxuICAgICAgICAgIC5tYXAoKHtpZCwgY29uZmlnfSkgPT4gKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZTogY29uZmlnLmxhYmVsLFxuICAgICAgICAgICAgLy8gbGF5ZXJcbiAgICAgICAgICAgIGlzVmlzaWJsZTogbGF5ZXJzVG9SZW5kZXJbaWRdXG4gICAgICAgICAgfSkpLFxuICAgICAgW2xheWVycywgbGF5ZXJzVG9SZW5kZXJdXG4gICAgKTtcblxuICAgIGNvbnN0IGlzVmlzaWJsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBpc1NwbGl0ICYmIHNob3cgJiYgcmVhZE9ubHkgIT09IHRydWUsXG4gICAgICBbaXNTcGxpdCwgc2hvdywgcmVhZE9ubHldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uVG9nZ2xlTWVudVBhbmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgndmlzaWJsZUxheWVycycpO1xuICAgICAgfSxcbiAgICAgIFtvblRvZ2dsZU1hcENvbnRyb2xdXG4gICAgKTtcblxuICAgIHJldHVybiBpc1Zpc2libGUgPyAoXG4gICAgICAhaXNBY3RpdmUgPyAoXG4gICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAga2V5PXsxfVxuICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlTWVudVBhbmVsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbWFwLWNvbnRyb2wtYnV0dG9uJywgJ3RvZ2dsZS1sYXllcicsIHtpc0FjdGl2ZX0pfVxuICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgZGF0YS1mb3I9XCJ0b2dnbGUtbGF5ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPExheWVycyBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgICAgICA8TWFwQ29udHJvbFRvb2x0aXBcbiAgICAgICAgICAgIGlkPVwidG9nZ2xlLWxheWVyXCJcbiAgICAgICAgICAgIG1lc3NhZ2U9e2lzQWN0aXZlID8gJ3Rvb2x0aXAuaGlkZUxheWVyUGFuZWwnIDogJ3Rvb2x0aXAuc2hvd0xheWVyUGFuZWwnfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxNYXBDb250cm9sUGFuZWxcbiAgICAgICAgICBoZWFkZXI9XCJoZWFkZXIudmlzaWJsZUxheWVyc1wiXG4gICAgICAgICAgb25DbGljaz17b25Ub2dnbGVNZW51UGFuZWx9XG4gICAgICAgICAgZGlzYWJsZUNsb3NlPXtkaXNhYmxlQ2xvc2V9XG4gICAgICAgID5cbiAgICAgICAgICA8TWFwTGF5ZXJTZWxlY3RvciBsYXllcnM9e2xlZ2VuZExheWVyc30gb25NYXBUb2dnbGVMYXllcj17b25NYXBUb2dnbGVMYXllcn0gLz5cbiAgICAgICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICAgICApXG4gICAgKSA6IG51bGw7XG4gIH07XG5cbiAgTGF5ZXJTZWxlY3RvclBhbmVsLmRpc3BsYXlOYW1lID0gJ0xheWVyU2VsZWN0b3JQYW5lbCc7XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTGF5ZXJTZWxlY3RvclBhbmVsKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJTZWxlY3RvclBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxpQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElB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
@@ -88,11 +88,11 @@ function MapDrawPanelFactory(MapControlTooltip, MapControlToolbar) {
88
88
  },
89
89
  active: isActive
90
90
  }, /*#__PURE__*/_react["default"].createElement(actionIcons.polygon, {
91
- height: "22px"
91
+ height: "18px"
92
92
  }))));
93
93
  });
94
94
  MapDrawPanel.displayName = 'MapDrawPanel';
95
95
  return MapDrawPanel;
96
96
  }
97
97
  var _default = exports["default"] = MapDrawPanelFactory;
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfdG9vbGJhckl0ZW0iLCJfbWFwQ29udHJvbFRvb2x0aXAiLCJfbWFwQ29udHJvbFRvb2xiYXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJNYXBEcmF3UGFuZWxGYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sYmFyRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFRvb2xiYXIiLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJ2aXNpYmxlIiwiRXllU2VlbiIsImhpZGRlbiIsIkV5ZVVuc2VlbiIsInBvbHlnb24iLCJEcmF3UG9seWdvbiIsImN1cnNvciIsIkN1cnNvckNsaWNrIiwiaW5uZXJQb2x5Z29uIiwiUG9seWdvbiIsInJlY3RhbmdsZSIsIlJlY3RhbmdsZSIsIk1hcERyYXdQYW5lbCIsIlJlYWN0IiwibWVtbyIsIl9yZWYiLCJfbWFwQ29udHJvbHMkbWFwRHJhdyIsIl9tYXBDb250cm9scyRtYXBEcmF3MiIsImVkaXRvciIsIm1hcENvbnRyb2xzIiwib25Ub2dnbGVNYXBDb250cm9sIiwib25TZXRFZGl0b3JNb2RlIiwiX3JlZiRhY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwiaXNBY3RpdmUiLCJtYXBEcmF3IiwiYWN0aXZlIiwib25Ub2dnbGVNZW51UGFuZWwiLCJ1c2VDYWxsYmFjayIsInNob3ciLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJwb3NpdGlvbiIsIm9uQ2xpY2siLCJFRElUT1JfTU9ERVMiLCJFRElUIiwibGFiZWwiLCJpY29uIiwibW9kZSIsIkRSQVdfUE9MWUdPTiIsIkRSQVdfUkVDVEFOR0xFIiwiaWQiLCJtZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsImNsYXNzbmFtZXMiLCJwcmV2ZW50RGVmYXVsdCIsImhlaWdodCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtZHJhdy1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5pbXBvcnQge0VESVRPUl9NT0RFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtDdXJzb3JDbGljaywgRHJhd1BvbHlnb24sIEV5ZVNlZW4sIEV5ZVVuc2VlbiwgUG9seWdvbiwgUmVjdGFuZ2xlfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFRvb2xiYXJJdGVtIGZyb20gJy4uL2NvbW1vbi90b29sYmFyLWl0ZW0nO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2x0aXAnO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sYmFyRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2xiYXInO1xuaW1wb3J0IHtFZGl0b3IsIE1hcENvbnRyb2xzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QmFzZVByb3BzfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuXG5NYXBEcmF3UGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sVG9vbGJhckZhY3RvcnldO1xuXG5leHBvcnQgdHlwZSBNYXBEcmF3UGFuZWxQcm9wcyA9IHtcbiAgZWRpdG9yOiBFZGl0b3I7XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbiAgb25Ub2dnbGVNYXBDb250cm9sOiAoY29udHJvbDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblNldEVkaXRvck1vZGU6IChtb2RlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eTogKCkgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IHtbaWQ6IHN0cmluZ106IFJlYWN0LkNvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+Pn07XG59O1xuXG5mdW5jdGlvbiBNYXBEcmF3UGFuZWxGYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFRvb2xiYXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sYmFyRmFjdG9yeT5cbikge1xuICBjb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gICAgdmlzaWJsZTogRXllU2VlbixcbiAgICBoaWRkZW46IEV5ZVVuc2VlbixcbiAgICBwb2x5Z29uOiBEcmF3UG9seWdvbixcbiAgICBjdXJzb3I6IEN1cnNvckNsaWNrLFxuICAgIGlubmVyUG9seWdvbjogUG9seWdvbixcbiAgICByZWN0YW5nbGU6IFJlY3RhbmdsZVxuICB9O1xuXG4gIGNvbnN0IE1hcERyYXdQYW5lbDogUmVhY3QuRkM8TWFwRHJhd1BhbmVsUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgICAoe1xuICAgICAgZWRpdG9yLFxuICAgICAgbWFwQ29udHJvbHMsXG4gICAgICBvblRvZ2dsZU1hcENvbnRyb2wsXG4gICAgICBvblNldEVkaXRvck1vZGUsXG4gICAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29uc1xuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gbWFwQ29udHJvbHM/Lm1hcERyYXc/LmFjdGl2ZTtcbiAgICAgIGNvbnN0IG9uVG9nZ2xlTWVudVBhbmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICgpID0+IG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwRHJhdycpLFxuICAgICAgICBbb25Ub2dnbGVNYXBDb250cm9sXVxuICAgICAgKTtcbiAgICAgIGlmICghbWFwQ29udHJvbHM/Lm1hcERyYXc/LnNob3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1kcmF3LWNvbnRyb2xzXCIgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319PlxuICAgICAgICAgIHtpc0FjdGl2ZSA/IChcbiAgICAgICAgICAgIDxNYXBDb250cm9sVG9vbGJhciBzaG93PXtpc0FjdGl2ZX0+XG4gICAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXQtZmVhdHVyZVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZXRFZGl0b3JNb2RlKEVESVRPUl9NT0RFUy5FRElUKX1cbiAgICAgICAgICAgICAgICBsYWJlbD1cInRvb2xiYXIuc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBpY29uPXthY3Rpb25JY29ucy5jdXJzb3J9XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtlZGl0b3IubW9kZSA9PT0gRURJVE9SX01PREVTLkVESVR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRyYXctZmVhdHVyZVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZXRFZGl0b3JNb2RlKEVESVRPUl9NT0RFUy5EUkFXX1BPTFlHT04pfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwidG9vbGJhci5wb2x5Z29uXCJcbiAgICAgICAgICAgICAgICBpY29uPXthY3Rpb25JY29ucy5pbm5lclBvbHlnb259XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtlZGl0b3IubW9kZSA9PT0gRURJVE9SX01PREVTLkRSQVdfUE9MWUdPTn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFRvb2xiYXJJdGVtXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZHJhdy1yZWN0YW5nbGVcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2V0RWRpdG9yTW9kZShFRElUT1JfTU9ERVMuRFJBV19SRUNUQU5HTEUpfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwidG9vbGJhci5yZWN0YW5nbGVcIlxuICAgICAgICAgICAgICAgIGljb249e2FjdGlvbkljb25zLnJlY3RhbmdsZX1cbiAgICAgICAgICAgICAgICBhY3RpdmU9e2VkaXRvci5tb2RlID09PSBFRElUT1JfTU9ERVMuRFJBV19SRUNUQU5HTEV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L01hcENvbnRyb2xUb29sYmFyPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxNYXBDb250cm9sVG9vbHRpcCBpZD1cIm1hcC1kcmF3XCIgbWVzc2FnZT1cInRvb2x0aXAuRHJhd09uTWFwXCI+XG4gICAgICAgICAgICA8TWFwQ29udHJvbEJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ21hcC1jb250cm9sLWJ1dHRvbicsICdtYXAtZHJhdycsIHtpc0FjdGl2ZX0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgb25Ub2dnbGVNZW51UGFuZWwoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgYWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGFjdGlvbkljb25zLnBvbHlnb24gaGVpZ2h0PVwiMjJweFwiIC8+XG4gICAgICAgICAgICA8L01hcENvbnRyb2xCdXR0b24+XG4gICAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgKTtcblxuICBNYXBEcmF3UGFuZWwuZGlzcGxheU5hbWUgPSAnTWFwRHJhd1BhbmVsJztcbiAgcmV0dXJuIE1hcERyYXdQYW5lbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwRHJhd1BhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxpQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sa0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLGtCQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFBNkQsU0FBQVMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNB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
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfdG9vbGJhckl0ZW0iLCJfbWFwQ29udHJvbFRvb2x0aXAiLCJfbWFwQ29udHJvbFRvb2xiYXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJNYXBEcmF3UGFuZWxGYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sYmFyRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFRvb2xiYXIiLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJ2aXNpYmxlIiwiRXllU2VlbiIsImhpZGRlbiIsIkV5ZVVuc2VlbiIsInBvbHlnb24iLCJEcmF3UG9seWdvbiIsImN1cnNvciIsIkN1cnNvckNsaWNrIiwiaW5uZXJQb2x5Z29uIiwiUG9seWdvbiIsInJlY3RhbmdsZSIsIlJlY3RhbmdsZSIsIk1hcERyYXdQYW5lbCIsIlJlYWN0IiwibWVtbyIsIl9yZWYiLCJfbWFwQ29udHJvbHMkbWFwRHJhdyIsIl9tYXBDb250cm9scyRtYXBEcmF3MiIsImVkaXRvciIsIm1hcENvbnRyb2xzIiwib25Ub2dnbGVNYXBDb250cm9sIiwib25TZXRFZGl0b3JNb2RlIiwiX3JlZiRhY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwiaXNBY3RpdmUiLCJtYXBEcmF3IiwiYWN0aXZlIiwib25Ub2dnbGVNZW51UGFuZWwiLCJ1c2VDYWxsYmFjayIsInNob3ciLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJwb3NpdGlvbiIsIm9uQ2xpY2siLCJFRElUT1JfTU9ERVMiLCJFRElUIiwibGFiZWwiLCJpY29uIiwibW9kZSIsIkRSQVdfUE9MWUdPTiIsIkRSQVdfUkVDVEFOR0xFIiwiaWQiLCJtZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsImNsYXNzbmFtZXMiLCJwcmV2ZW50RGVmYXVsdCIsImhlaWdodCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtZHJhdy1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5pbXBvcnQge0VESVRPUl9NT0RFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtDdXJzb3JDbGljaywgRHJhd1BvbHlnb24sIEV5ZVNlZW4sIEV5ZVVuc2VlbiwgUG9seWdvbiwgUmVjdGFuZ2xlfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFRvb2xiYXJJdGVtIGZyb20gJy4uL2NvbW1vbi90b29sYmFyLWl0ZW0nO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2x0aXAnO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sYmFyRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2xiYXInO1xuaW1wb3J0IHtFZGl0b3IsIE1hcENvbnRyb2xzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QmFzZVByb3BzfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuXG5NYXBEcmF3UGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sVG9vbGJhckZhY3RvcnldO1xuXG5leHBvcnQgdHlwZSBNYXBEcmF3UGFuZWxQcm9wcyA9IHtcbiAgZWRpdG9yOiBFZGl0b3I7XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbiAgb25Ub2dnbGVNYXBDb250cm9sOiAoY29udHJvbDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblNldEVkaXRvck1vZGU6IChtb2RlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eTogKCkgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IHtbaWQ6IHN0cmluZ106IFJlYWN0LkNvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+Pn07XG59O1xuXG5mdW5jdGlvbiBNYXBEcmF3UGFuZWxGYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFRvb2xiYXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sYmFyRmFjdG9yeT5cbikge1xuICBjb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gICAgdmlzaWJsZTogRXllU2VlbixcbiAgICBoaWRkZW46IEV5ZVVuc2VlbixcbiAgICBwb2x5Z29uOiBEcmF3UG9seWdvbixcbiAgICBjdXJzb3I6IEN1cnNvckNsaWNrLFxuICAgIGlubmVyUG9seWdvbjogUG9seWdvbixcbiAgICByZWN0YW5nbGU6IFJlY3RhbmdsZVxuICB9O1xuXG4gIGNvbnN0IE1hcERyYXdQYW5lbDogUmVhY3QuRkM8TWFwRHJhd1BhbmVsUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgICAoe1xuICAgICAgZWRpdG9yLFxuICAgICAgbWFwQ29udHJvbHMsXG4gICAgICBvblRvZ2dsZU1hcENvbnRyb2wsXG4gICAgICBvblNldEVkaXRvck1vZGUsXG4gICAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29uc1xuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gbWFwQ29udHJvbHM/Lm1hcERyYXc/LmFjdGl2ZTtcbiAgICAgIGNvbnN0IG9uVG9nZ2xlTWVudVBhbmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICgpID0+IG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwRHJhdycpLFxuICAgICAgICBbb25Ub2dnbGVNYXBDb250cm9sXVxuICAgICAgKTtcbiAgICAgIGlmICghbWFwQ29udHJvbHM/Lm1hcERyYXc/LnNob3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1kcmF3LWNvbnRyb2xzXCIgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319PlxuICAgICAgICAgIHtpc0FjdGl2ZSA/IChcbiAgICAgICAgICAgIDxNYXBDb250cm9sVG9vbGJhciBzaG93PXtpc0FjdGl2ZX0+XG4gICAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXQtZmVhdHVyZVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZXRFZGl0b3JNb2RlKEVESVRPUl9NT0RFUy5FRElUKX1cbiAgICAgICAgICAgICAgICBsYWJlbD1cInRvb2xiYXIuc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBpY29uPXthY3Rpb25JY29ucy5jdXJzb3J9XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtlZGl0b3IubW9kZSA9PT0gRURJVE9SX01PREVTLkVESVR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRyYXctZmVhdHVyZVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZXRFZGl0b3JNb2RlKEVESVRPUl9NT0RFUy5EUkFXX1BPTFlHT04pfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwidG9vbGJhci5wb2x5Z29uXCJcbiAgICAgICAgICAgICAgICBpY29uPXthY3Rpb25JY29ucy5pbm5lclBvbHlnb259XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtlZGl0b3IubW9kZSA9PT0gRURJVE9SX01PREVTLkRSQVdfUE9MWUdPTn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFRvb2xiYXJJdGVtXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZHJhdy1yZWN0YW5nbGVcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2V0RWRpdG9yTW9kZShFRElUT1JfTU9ERVMuRFJBV19SRUNUQU5HTEUpfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwidG9vbGJhci5yZWN0YW5nbGVcIlxuICAgICAgICAgICAgICAgIGljb249e2FjdGlvbkljb25zLnJlY3RhbmdsZX1cbiAgICAgICAgICAgICAgICBhY3RpdmU9e2VkaXRvci5tb2RlID09PSBFRElUT1JfTU9ERVMuRFJBV19SRUNUQU5HTEV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L01hcENvbnRyb2xUb29sYmFyPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxNYXBDb250cm9sVG9vbHRpcCBpZD1cIm1hcC1kcmF3XCIgbWVzc2FnZT1cInRvb2x0aXAuRHJhd09uTWFwXCI+XG4gICAgICAgICAgICA8TWFwQ29udHJvbEJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ21hcC1jb250cm9sLWJ1dHRvbicsICdtYXAtZHJhdycsIHtpc0FjdGl2ZX0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgb25Ub2dnbGVNZW51UGFuZWwoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgYWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGFjdGlvbkljb25zLnBvbHlnb24gaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICAgICAgICA8L01hcENvbnRyb2xCdXR0b24+XG4gICAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgKTtcblxuICBNYXBEcmF3UGFuZWwuZGlzcGxheU5hbWUgPSAnTWFwRHJhd1BhbmVsJztcbiAgcmV0dXJuIE1hcERyYXdQYW5lbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwRHJhd1BhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxpQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sa0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLGtCQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFBNkQsU0FBQVMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNB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