@kepler.gl/reducers 3.3.0-alpha.10 → 3.3.0-alpha.11

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.
@@ -6,7 +6,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
6
6
  // SPDX-License-Identifier: MIT
7
7
  // Copyright contributors to the kepler.gl project
8
8
 
9
- import { getGlobalTaskQueue } from 'react-palm/tasks';
9
+ import { getGlobalTaskQueue } from '@kepler.gl/tasks';
10
10
  import { isObject } from '@kepler.gl/utils';
11
11
  import { toArray } from '@kepler.gl/common-utils';
12
12
  export function isValidMerger(merger) {
@@ -93,4 +93,4 @@ export function resetStateToMergeProps(state, initialState, mergerProps) {
93
93
  return _objectSpread(_objectSpread({}, accu), {}, _defineProperty({}, prop, initialState[prop]));
94
94
  }, state);
95
95
  }
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRHbG9iYWxUYXNrUXVldWUiLCJpc09iamVjdCIsInRvQXJyYXkiLCJpc1ZhbGlkTWVyZ2VyIiwibWVyZ2VyIiwibWVyZ2UiLCJwcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FsbEZ1bmN0aW9uR2V0VGFzayIsImZuIiwiYmVmb3JlIiwicmV0IiwiYWZ0ZXIiLCJkaWZmIiwiZmlsdGVyIiwidCIsImluY2x1ZGVzIiwibWVyZ2VTdGF0ZUZyb21NZXJnZXJzIiwic3RhdGUiLCJpbml0aWFsU3RhdGUiLCJtZXJnZXJzIiwicG9zdE1lcmdlclBheWxvYWQiLCJtZXJnZWRTdGF0ZSIsIm1lcmdlclF1ZXVlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2xvb3AiLCJzaGlmdCIsInRvTWVyZ2VQcm9wIiwiaGFzUHJvcHNUb01lcmdlIiwibWVyZ2VyQWN0aW9uUGF5bG9hZCIsInRvTWVyZ2UiLCJnZXRQcm9wVmFsdWVUb01lcmdlciIsInJlc2V0U3RhdGVUb01lcmdlUHJvcHMiLCJtZXJnZUZ1bmMiLCJfY2FsbEZ1bmN0aW9uR2V0VGFzayIsIl9jYWxsRnVuY3Rpb25HZXRUYXNrMiIsIl9zbGljZWRUb0FycmF5IiwidXBkYXRlZFN0YXRlIiwibmV3VGFza3MiLCJsZW5ndGgiLCJ3YWl0VG9GaW5pc2giLCJ2IiwiYWxsTWVyZ2VkIiwiX3JldCIsIm1lcmdlclByb3BzIiwiQm9vbGVhbiIsInNvbWUiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidG9NZXJnZVByb3BzIiwicmVkdWNlIiwiYWNjdSIsImkiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lcmdlci1oYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Z2V0R2xvYmFsVGFza1F1ZXVlfSBmcm9tICdyZWFjdC1wYWxtL3Rhc2tzJztcbmltcG9ydCB7aXNPYmplY3R9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHt0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge1ZhbHVlT2Z9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtWaXNTdGF0ZSwgTWVyZ2VyLCBQb3N0TWVyZ2VyUGF5bG9hZH0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNZXJnZXIobWVyZ2VyOiBNZXJnZXI8YW55Pik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzT2JqZWN0KG1lcmdlcikgJiZcbiAgICB0eXBlb2YgbWVyZ2VyLm1lcmdlID09PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBtZXJnZXIucHJvcCA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheShtZXJnZXIucHJvcCkpXG4gICk7XG59XG5cbi8qKlxuICogQ2FsbCBzdGF0ZSB1cGRhdGVyLCByZXR1cm4gdGhlIHRhc2tzIGNyZWF0ZWQgYnkgdGhlIHN0YXRlIHVwZGF0ZSB3aXRoIHdpdGhUYXNrKClcbiAqL1xuZnVuY3Rpb24gY2FsbEZ1bmN0aW9uR2V0VGFzayhmbjogKCkgPT4gYW55KTogW2FueSwgYW55XSB7XG4gIGNvbnN0IGJlZm9yZSA9IGdldEdsb2JhbFRhc2tRdWV1ZSgpO1xuICBjb25zdCByZXQgPSBmbigpO1xuICBjb25zdCBhZnRlciA9IGdldEdsb2JhbFRhc2tRdWV1ZSgpO1xuICBjb25zdCBkaWZmID0gYWZ0ZXIuZmlsdGVyKHQgPT4gIWJlZm9yZS5pbmNsdWRlcyh0KSk7XG4gIHJldHVybiBbcmV0LCBkaWZmXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlU3RhdGVGcm9tTWVyZ2VyczxTdGF0ZSBleHRlbmRzIFZpc1N0YXRlPihcbiAgc3RhdGU6IFN0YXRlLFxuICBpbml0aWFsU3RhdGU6IFN0YXRlLFxuICBtZXJnZXJzOiBNZXJnZXI8U3RhdGU+W10sXG4gIHBvc3RNZXJnZXJQYXlsb2FkOiBQb3N0TWVyZ2VyUGF5bG9hZFxuKToge1xuICBtZXJnZWRTdGF0ZTogU3RhdGU7XG4gIGFsbE1lcmdlZDogYm9vbGVhbjtcbn0ge1xuICAvLyBjb25zdCBuZXdEYXRhSWRzID0gT2JqZWN0LmtleXMocG9zdE1lcmdlclBheWxvYWQubmV3RGF0YUVudHJpZXMpO1xuICBsZXQgbWVyZ2VkU3RhdGUgPSBzdGF0ZTtcbiAgLy8gbWVyZ2Ugc3RhdGUgd2l0aCBjb25maWcgdG8gYmUgbWVyZ2VkXG4gIGNvbnN0IG1lcmdlclF1ZXVlID0gWy4uLm1lcmdlcnNdO1xuXG4gIHdoaWxlIChtZXJnZXJRdWV1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCBtZXJnZXIgPSBtZXJnZXJRdWV1ZS5zaGlmdCgpO1xuXG4gICAgaWYgKFxuICAgICAgbWVyZ2VyICYmXG4gICAgICBpc1ZhbGlkTWVyZ2VyKG1lcmdlcikgJiZcbiAgICAgIG1lcmdlci50b01lcmdlUHJvcCAmJlxuICAgICAgaGFzUHJvcHNUb01lcmdlKHN0YXRlLCBtZXJnZXIudG9NZXJnZVByb3ApXG4gICAgKSB7XG4gICAgICAvLyBwdXQgdGhlIHJlc3Qgb2YgbWVyZ2VycyBhbmQgcGF5bG9hZCBmb3IgcG9zdE1lcmdlVXBkYXRlciBpbiBtZXJnZXJBY3Rpb25QYXlsb2FkXG4gICAgICAvLyBhbmQgcGFzcyBpdCB0byBjdXJyZW50IG1lcmdlciwgd2hpY2ggKGlmIGFzeW5jKSBrbm93cyB0byBjb250aW51ZSBtZXJnaW5nXG4gICAgICBjb25zdCBtZXJnZXJBY3Rpb25QYXlsb2FkID0ge1xuICAgICAgICBtZXJnZXJzOiBtZXJnZXJRdWV1ZSxcbiAgICAgICAgcG9zdE1lcmdlclBheWxvYWRcbiAgICAgIH07XG4gICAgICAvLyByZXNldCB0b01lcmdlXG4gICAgICBjb25zdCB0b01lcmdlID0gZ2V0UHJvcFZhbHVlVG9NZXJnZXIobWVyZ2VkU3RhdGUsIG1lcmdlci50b01lcmdlUHJvcCwgbWVyZ2VyLnRvTWVyZ2VQcm9wKTtcblxuICAgICAgbWVyZ2VkU3RhdGUgPSByZXNldFN0YXRlVG9NZXJnZVByb3BzKG1lcmdlZFN0YXRlLCBpbml0aWFsU3RhdGUsIG1lcmdlci50b01lcmdlUHJvcCk7XG4gICAgICAvLyBjYWxsIG1lcmdlclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuICAgICAgY29uc3QgbWVyZ2VGdW5jID0gKCkgPT4gbWVyZ2VyLm1lcmdlKG1lcmdlZFN0YXRlLCB0b01lcmdlLCBmYWxzZSwgbWVyZ2VyQWN0aW9uUGF5bG9hZCk7XG4gICAgICBjb25zdCBbdXBkYXRlZFN0YXRlLCBuZXdUYXNrc10gPSBjYWxsRnVuY3Rpb25HZXRUYXNrKG1lcmdlRnVuYyk7XG5cbiAgICAgIG1lcmdlZFN0YXRlID0gdXBkYXRlZFN0YXRlO1xuXG4gICAgICAvLyBjaGVjayBpZiBhc3luY1Rhc2sgd2FzIGNyZWF0ZWQgKHRpbWUgY29uc3VtaW5nIHRhc2tzKVxuICAgICAgaWYgKG5ld1Rhc2tzLmxlbmd0aCAmJiBtZXJnZXIud2FpdFRvRmluaXNoKSB7XG4gICAgICAgIC8vIHNraXAgcmVzdCwgdGhlIGFzeW5jIG1lcmdlciB3aWxsIGNhbGwgYXBwbHlNZXJnZXJVcGRhdGVyKCkgdG8gY29udGludWVcbiAgICAgICAgcmV0dXJuIHttZXJnZWRTdGF0ZSwgYWxsTWVyZ2VkOiBmYWxzZX07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gd2UgbWVyZ2VkIGFsbCBtZXJnZXJzIGluIHRoZSBxdWV1ZSwgYW5kIHdlIGNhbiBjYWxsIHBvc3QgbWVyZ2VyIG5vd1xuICByZXR1cm4ge21lcmdlZFN0YXRlLCBhbGxNZXJnZWQ6IHRydWV9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUHJvcHNUb01lcmdlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGU6IFN0YXRlLFxuICBtZXJnZXJQcm9wcz86IHN0cmluZyB8IHN0cmluZ1tdXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkobWVyZ2VyUHJvcHMpXG4gICAgPyBCb29sZWFuKG1lcmdlclByb3BzLnNvbWUocCA9PiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhdGUsIHApKSlcbiAgICA6IHR5cGVvZiBtZXJnZXJQcm9wcyA9PT0gJ3N0cmluZycgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLCBtZXJnZXJQcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wVmFsdWVUb01lcmdlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlOiBTdGF0ZSxcbiAgbWVyZ2VyUHJvcHM/OiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgdG9NZXJnZVByb3BzPzogc3RyaW5nIHwgc3RyaW5nW11cbik6IFBhcnRpYWw8U3RhdGU+IHwgVmFsdWVPZjxTdGF0ZT4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShtZXJnZXJQcm9wcykgJiYgQXJyYXkuaXNBcnJheSh0b01lcmdlUHJvcHMpXG4gICAgPyBtZXJnZXJQcm9wcy5yZWR1Y2UoKGFjY3UsIHAsIGkpID0+IHtcbiAgICAgICAgaWYgKCF0b01lcmdlUHJvcHMpIHJldHVybiBhY2N1O1xuICAgICAgICByZXR1cm4gey4uLmFjY3UsIFt0b01lcmdlUHJvcHNbaV1dOiBzdGF0ZVtwXX07XG4gICAgICB9LCB7fSlcbiAgICA6IHN0YXRlW21lcmdlclByb3BzIGFzIHN0cmluZ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldFN0YXRlVG9NZXJnZVByb3BzPFN0YXRlIGV4dGVuZHMgVmlzU3RhdGU+KFxuICBzdGF0ZTogU3RhdGUsXG4gIGluaXRpYWxTdGF0ZTogU3RhdGUsXG4gIG1lcmdlclByb3BzOiBzdHJpbmcgfCBzdHJpbmdbXVxuKSB7XG4gIHJldHVybiB0b0FycmF5KG1lcmdlclByb3BzKS5yZWR1Y2UoXG4gICAgKGFjY3UsIHByb3ApID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgW3Byb3BdOiBpbml0aWFsU3RhdGVbcHJvcF1cbiAgICB9KSxcbiAgICBzdGF0ZVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBUUEsa0JBQWtCLFFBQU8sa0JBQWtCO0FBQ25ELFNBQVFDLFFBQVEsUUFBTyxrQkFBa0I7QUFDekMsU0FBUUMsT0FBTyxRQUFPLHlCQUF5QjtBQUkvQyxPQUFPLFNBQVNDLGFBQWFBLENBQUNDLE1BQW1CLEVBQVc7RUFDMUQsT0FDRUgsUUFBUSxDQUFDRyxNQUFNLENBQUMsSUFDaEIsT0FBT0EsTUFBTSxDQUFDQyxLQUFLLEtBQUssVUFBVSxLQUNqQyxPQUFPRCxNQUFNLENBQUNFLElBQUksS0FBSyxRQUFRLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixNQUFNLENBQUNFLElBQUksQ0FBQyxDQUFDO0FBRW5FOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVNHLG1CQUFtQkEsQ0FBQ0MsRUFBYSxFQUFjO0VBQ3RELElBQU1DLE1BQU0sR0FBR1gsa0JBQWtCLENBQUMsQ0FBQztFQUNuQyxJQUFNWSxHQUFHLEdBQUdGLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCLElBQU1HLEtBQUssR0FBR2Isa0JBQWtCLENBQUMsQ0FBQztFQUNsQyxJQUFNYyxJQUFJLEdBQUdELEtBQUssQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLENBQUM7SUFBQSxPQUFJLENBQUNMLE1BQU0sQ0FBQ00sUUFBUSxDQUFDRCxDQUFDLENBQUM7RUFBQSxFQUFDO0VBQ25ELE9BQU8sQ0FBQ0osR0FBRyxFQUFFRSxJQUFJLENBQUM7QUFDcEI7QUFFQSxPQUFPLFNBQVNJLHFCQUFxQkEsQ0FDbkNDLEtBQVksRUFDWkMsWUFBbUIsRUFDbkJDLE9BQXdCLEVBQ3hCQyxpQkFBb0MsRUFJcEM7RUFDQTtFQUNBLElBQUlDLFdBQVcsR0FBR0osS0FBSztFQUN2QjtFQUNBLElB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
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRHbG9iYWxUYXNrUXVldWUiLCJpc09iamVjdCIsInRvQXJyYXkiLCJpc1ZhbGlkTWVyZ2VyIiwibWVyZ2VyIiwibWVyZ2UiLCJwcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FsbEZ1bmN0aW9uR2V0VGFzayIsImZuIiwiYmVmb3JlIiwicmV0IiwiYWZ0ZXIiLCJkaWZmIiwiZmlsdGVyIiwidCIsImluY2x1ZGVzIiwibWVyZ2VTdGF0ZUZyb21NZXJnZXJzIiwic3RhdGUiLCJpbml0aWFsU3RhdGUiLCJtZXJnZXJzIiwicG9zdE1lcmdlclBheWxvYWQiLCJtZXJnZWRTdGF0ZSIsIm1lcmdlclF1ZXVlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2xvb3AiLCJzaGlmdCIsInRvTWVyZ2VQcm9wIiwiaGFzUHJvcHNUb01lcmdlIiwibWVyZ2VyQWN0aW9uUGF5bG9hZCIsInRvTWVyZ2UiLCJnZXRQcm9wVmFsdWVUb01lcmdlciIsInJlc2V0U3RhdGVUb01lcmdlUHJvcHMiLCJtZXJnZUZ1bmMiLCJfY2FsbEZ1bmN0aW9uR2V0VGFzayIsIl9jYWxsRnVuY3Rpb25HZXRUYXNrMiIsIl9zbGljZWRUb0FycmF5IiwidXBkYXRlZFN0YXRlIiwibmV3VGFza3MiLCJsZW5ndGgiLCJ3YWl0VG9GaW5pc2giLCJ2IiwiYWxsTWVyZ2VkIiwiX3JldCIsIm1lcmdlclByb3BzIiwiQm9vbGVhbiIsInNvbWUiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidG9NZXJnZVByb3BzIiwicmVkdWNlIiwiYWNjdSIsImkiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lcmdlci1oYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Z2V0R2xvYmFsVGFza1F1ZXVlfSBmcm9tICdAa2VwbGVyLmdsL3Rhc2tzJztcbmltcG9ydCB7aXNPYmplY3R9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHt0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge1ZhbHVlT2Z9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtWaXNTdGF0ZSwgTWVyZ2VyLCBQb3N0TWVyZ2VyUGF5bG9hZH0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNZXJnZXIobWVyZ2VyOiBNZXJnZXI8YW55Pik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzT2JqZWN0KG1lcmdlcikgJiZcbiAgICB0eXBlb2YgbWVyZ2VyLm1lcmdlID09PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBtZXJnZXIucHJvcCA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheShtZXJnZXIucHJvcCkpXG4gICk7XG59XG5cbi8qKlxuICogQ2FsbCBzdGF0ZSB1cGRhdGVyLCByZXR1cm4gdGhlIHRhc2tzIGNyZWF0ZWQgYnkgdGhlIHN0YXRlIHVwZGF0ZSB3aXRoIHdpdGhUYXNrKClcbiAqL1xuZnVuY3Rpb24gY2FsbEZ1bmN0aW9uR2V0VGFzayhmbjogKCkgPT4gYW55KTogW2FueSwgYW55XSB7XG4gIGNvbnN0IGJlZm9yZSA9IGdldEdsb2JhbFRhc2tRdWV1ZSgpO1xuICBjb25zdCByZXQgPSBmbigpO1xuICBjb25zdCBhZnRlciA9IGdldEdsb2JhbFRhc2tRdWV1ZSgpO1xuICBjb25zdCBkaWZmID0gYWZ0ZXIuZmlsdGVyKHQgPT4gIWJlZm9yZS5pbmNsdWRlcyh0KSk7XG4gIHJldHVybiBbcmV0LCBkaWZmXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlU3RhdGVGcm9tTWVyZ2VyczxTdGF0ZSBleHRlbmRzIFZpc1N0YXRlPihcbiAgc3RhdGU6IFN0YXRlLFxuICBpbml0aWFsU3RhdGU6IFN0YXRlLFxuICBtZXJnZXJzOiBNZXJnZXI8U3RhdGU+W10sXG4gIHBvc3RNZXJnZXJQYXlsb2FkOiBQb3N0TWVyZ2VyUGF5bG9hZFxuKToge1xuICBtZXJnZWRTdGF0ZTogU3RhdGU7XG4gIGFsbE1lcmdlZDogYm9vbGVhbjtcbn0ge1xuICAvLyBjb25zdCBuZXdEYXRhSWRzID0gT2JqZWN0LmtleXMocG9zdE1lcmdlclBheWxvYWQubmV3RGF0YUVudHJpZXMpO1xuICBsZXQgbWVyZ2VkU3RhdGUgPSBzdGF0ZTtcbiAgLy8gbWVyZ2Ugc3RhdGUgd2l0aCBjb25maWcgdG8gYmUgbWVyZ2VkXG4gIGNvbnN0IG1lcmdlclF1ZXVlID0gWy4uLm1lcmdlcnNdO1xuXG4gIHdoaWxlIChtZXJnZXJRdWV1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCBtZXJnZXIgPSBtZXJnZXJRdWV1ZS5zaGlmdCgpO1xuXG4gICAgaWYgKFxuICAgICAgbWVyZ2VyICYmXG4gICAgICBpc1ZhbGlkTWVyZ2VyKG1lcmdlcikgJiZcbiAgICAgIG1lcmdlci50b01lcmdlUHJvcCAmJlxuICAgICAgaGFzUHJvcHNUb01lcmdlKHN0YXRlLCBtZXJnZXIudG9NZXJnZVByb3ApXG4gICAgKSB7XG4gICAgICAvLyBwdXQgdGhlIHJlc3Qgb2YgbWVyZ2VycyBhbmQgcGF5bG9hZCBmb3IgcG9zdE1lcmdlVXBkYXRlciBpbiBtZXJnZXJBY3Rpb25QYXlsb2FkXG4gICAgICAvLyBhbmQgcGFzcyBpdCB0byBjdXJyZW50IG1lcmdlciwgd2hpY2ggKGlmIGFzeW5jKSBrbm93cyB0byBjb250aW51ZSBtZXJnaW5nXG4gICAgICBjb25zdCBtZXJnZXJBY3Rpb25QYXlsb2FkID0ge1xuICAgICAgICBtZXJnZXJzOiBtZXJnZXJRdWV1ZSxcbiAgICAgICAgcG9zdE1lcmdlclBheWxvYWRcbiAgICAgIH07XG4gICAgICAvLyByZXNldCB0b01lcmdlXG4gICAgICBjb25zdCB0b01lcmdlID0gZ2V0UHJvcFZhbHVlVG9NZXJnZXIobWVyZ2VkU3RhdGUsIG1lcmdlci50b01lcmdlUHJvcCwgbWVyZ2VyLnRvTWVyZ2VQcm9wKTtcblxuICAgICAgbWVyZ2VkU3RhdGUgPSByZXNldFN0YXRlVG9NZXJnZVByb3BzKG1lcmdlZFN0YXRlLCBpbml0aWFsU3RhdGUsIG1lcmdlci50b01lcmdlUHJvcCk7XG4gICAgICAvLyBjYWxsIG1lcmdlclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuICAgICAgY29uc3QgbWVyZ2VGdW5jID0gKCkgPT4gbWVyZ2VyLm1lcmdlKG1lcmdlZFN0YXRlLCB0b01lcmdlLCBmYWxzZSwgbWVyZ2VyQWN0aW9uUGF5bG9hZCk7XG4gICAgICBjb25zdCBbdXBkYXRlZFN0YXRlLCBuZXdUYXNrc10gPSBjYWxsRnVuY3Rpb25HZXRUYXNrKG1lcmdlRnVuYyk7XG5cbiAgICAgIG1lcmdlZFN0YXRlID0gdXBkYXRlZFN0YXRlO1xuXG4gICAgICAvLyBjaGVjayBpZiBhc3luY1Rhc2sgd2FzIGNyZWF0ZWQgKHRpbWUgY29uc3VtaW5nIHRhc2tzKVxuICAgICAgaWYgKG5ld1Rhc2tzLmxlbmd0aCAmJiBtZXJnZXIud2FpdFRvRmluaXNoKSB7XG4gICAgICAgIC8vIHNraXAgcmVzdCwgdGhlIGFzeW5jIG1lcmdlciB3aWxsIGNhbGwgYXBwbHlNZXJnZXJVcGRhdGVyKCkgdG8gY29udGludWVcbiAgICAgICAgcmV0dXJuIHttZXJnZWRTdGF0ZSwgYWxsTWVyZ2VkOiBmYWxzZX07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gd2UgbWVyZ2VkIGFsbCBtZXJnZXJzIGluIHRoZSBxdWV1ZSwgYW5kIHdlIGNhbiBjYWxsIHBvc3QgbWVyZ2VyIG5vd1xuICByZXR1cm4ge21lcmdlZFN0YXRlLCBhbGxNZXJnZWQ6IHRydWV9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUHJvcHNUb01lcmdlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGU6IFN0YXRlLFxuICBtZXJnZXJQcm9wcz86IHN0cmluZyB8IHN0cmluZ1tdXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkobWVyZ2VyUHJvcHMpXG4gICAgPyBCb29sZWFuKG1lcmdlclByb3BzLnNvbWUocCA9PiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhdGUsIHApKSlcbiAgICA6IHR5cGVvZiBtZXJnZXJQcm9wcyA9PT0gJ3N0cmluZycgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLCBtZXJnZXJQcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wVmFsdWVUb01lcmdlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlOiBTdGF0ZSxcbiAgbWVyZ2VyUHJvcHM/OiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgdG9NZXJnZVByb3BzPzogc3RyaW5nIHwgc3RyaW5nW11cbik6IFBhcnRpYWw8U3RhdGU+IHwgVmFsdWVPZjxTdGF0ZT4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShtZXJnZXJQcm9wcykgJiYgQXJyYXkuaXNBcnJheSh0b01lcmdlUHJvcHMpXG4gICAgPyBtZXJnZXJQcm9wcy5yZWR1Y2UoKGFjY3UsIHAsIGkpID0+IHtcbiAgICAgICAgaWYgKCF0b01lcmdlUHJvcHMpIHJldHVybiBhY2N1O1xuICAgICAgICByZXR1cm4gey4uLmFjY3UsIFt0b01lcmdlUHJvcHNbaV1dOiBzdGF0ZVtwXX07XG4gICAgICB9LCB7fSlcbiAgICA6IHN0YXRlW21lcmdlclByb3BzIGFzIHN0cmluZ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldFN0YXRlVG9NZXJnZVByb3BzPFN0YXRlIGV4dGVuZHMgVmlzU3RhdGU+KFxuICBzdGF0ZTogU3RhdGUsXG4gIGluaXRpYWxTdGF0ZTogU3RhdGUsXG4gIG1lcmdlclByb3BzOiBzdHJpbmcgfCBzdHJpbmdbXVxuKSB7XG4gIHJldHVybiB0b0FycmF5KG1lcmdlclByb3BzKS5yZWR1Y2UoXG4gICAgKGFjY3UsIHByb3ApID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgW3Byb3BdOiBpbml0aWFsU3RhdGVbcHJvcF1cbiAgICB9KSxcbiAgICBzdGF0ZVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBUUEsa0JBQWtCLFFBQU8sa0JBQWtCO0FBQ25ELFNBQVFDLFFBQVEsUUFBTyxrQkFBa0I7QUFDekMsU0FBUUMsT0FBTyxRQUFPLHlCQUF5QjtBQUkvQyxPQUFPLFNBQVNDLGFBQWFBLENBQUNDLE1BQW1CLEVBQVc7RUFDMUQsT0FDRUgsUUFBUSxDQUFDRyxNQUFNLENBQUMsSUFDaEIsT0FBT0EsTUFBTSxDQUFDQyxLQUFLLEtBQUssVUFBVSxLQUNqQyxPQUFPRCxNQUFNLENBQUNFLElBQUksS0FBSyxRQUFRLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixNQUFNLENBQUNFLElBQUksQ0FBQyxDQUFDO0FBRW5FOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVNHLG1CQUFtQkEsQ0FBQ0MsRUFBYSxFQUFjO0VBQ3RELElBQU1DLE1BQU0sR0FBR1gsa0JBQWtCLENBQUMsQ0FBQztFQUNuQyxJQUFNWSxHQUFHLEdBQUdGLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCLElBQU1HLEtBQUssR0FBR2Isa0JBQWtCLENBQUMsQ0FBQztFQUNsQyxJQUFNYyxJQUFJLEdBQUdELEtBQUssQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLENBQUM7SUFBQSxPQUFJLENBQUNMLE1BQU0sQ0FBQ00sUUFBUSxDQUFDRCxDQUFDLENBQUM7RUFBQSxFQUFDO0VBQ25ELE9BQU8sQ0FBQ0osR0FBRyxFQUFFRSxJQUFJLENBQUM7QUFDcEI7QUFFQSxPQUFPLFNBQVNJLHFCQUFxQkEsQ0FDbkNDLEtBQVksRUFDWkMsWUFBbUIsRUFDbkJDLE9BQXdCLEVBQ3hCQyxpQkFBb0MsRUFJcEM7RUFDQTtFQUNBLElBQUlDLFdBQVcsR0FBR0osS0FBSztFQUN2QjtFQUNBLElB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
@@ -3,17 +3,15 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
3
  // Copyright contributors to the kepler.gl project
4
4
 
5
5
  // Extra helpers for redux
6
- // We are exposing this secause react-palm has no UMD module and
7
- // users need taskMiddleware to initiate their redux middle ware
8
- import { taskMiddleware } from 'react-palm/tasks';
6
+ import { taskMiddleware } from '@kepler.gl/tasks';
9
7
  /**
10
8
  * This method is used to enhance redux middleware and provide
11
- * functionality to support react-palm
9
+ * functionality to support the kepler.gl task system
12
10
  * @param middlewares current redux middlewares
13
- * @returns {*[]} the original list of middlewares plus the react-palm middleware
11
+ * @returns {*[]} the original list of middlewares plus the task middleware
14
12
  */
15
13
  export function enhanceReduxMiddleware() {
16
14
  var middlewares = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
17
15
  return [].concat(_toConsumableArray(middlewares), [taskMiddleware]);
18
16
  }
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0YXNrTWlkZGxld2FyZSIsImVuaGFuY2VSZWR1eE1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIEV4dHJhIGhlbHBlcnMgZm9yIHJlZHV4XG4vLyBXZSBhcmUgZXhwb3NpbmcgdGhpcyBzZWNhdXNlIHJlYWN0LXBhbG0gaGFzIG5vIFVNRCBtb2R1bGUgYW5kXG4vLyB1c2VycyBuZWVkIHRhc2tNaWRkbGV3YXJlIHRvIGluaXRpYXRlIHRoZWlyIHJlZHV4IG1pZGRsZSB3YXJlXG5pbXBvcnQge3Rhc2tNaWRkbGV3YXJlfSBmcm9tICdyZWFjdC1wYWxtL3Rhc2tzJztcbmltcG9ydCB7TWlkZGxld2FyZX0gZnJvbSAncmVkdXgnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZW5oYW5jZSByZWR1eCBtaWRkbGV3YXJlIGFuZCBwcm92aWRlXG4gKiBmdW5jdGlvbmFsaXR5IHRvIHN1cHBvcnQgcmVhY3QtcGFsbVxuICogQHBhcmFtIG1pZGRsZXdhcmVzIGN1cnJlbnQgcmVkdXggbWlkZGxld2FyZXNcbiAqIEByZXR1cm5zIHsqW119IHRoZSBvcmlnaW5hbCBsaXN0IG9mIG1pZGRsZXdhcmVzIHBsdXMgdGhlIHJlYWN0LXBhbG0gbWlkZGxld2FyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5oYW5jZVJlZHV4TWlkZGxld2FyZShtaWRkbGV3YXJlczogTWlkZGxld2FyZVtdID0gW10pOiBNaWRkbGV3YXJlW10ge1xuICByZXR1cm4gWy4uLm1pZGRsZXdhcmVzLCB0YXNrTWlkZGxld2FyZV07XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVFBLGNBQWMsUUFBTyxrQkFBa0I7QUFHL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQyxzQkFBc0JBLENBQUEsRUFBK0M7RUFBQSxJQUE5Q0MsV0FBeUIsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsRUFBRTtFQUNuRSxVQUFBRyxNQUFBLENBQUFDLGtCQUFBLENBQVdMLFdBQVcsSUFBRUYsY0FBYztBQUN4QyIsImlnbm9yZUxpc3QiOltdfQ==
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0YXNrTWlkZGxld2FyZSIsImVuaGFuY2VSZWR1eE1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIEV4dHJhIGhlbHBlcnMgZm9yIHJlZHV4XG5pbXBvcnQge3Rhc2tNaWRkbGV3YXJlfSBmcm9tICdAa2VwbGVyLmdsL3Rhc2tzJztcbmltcG9ydCB7TWlkZGxld2FyZX0gZnJvbSAncmVkdXgnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZW5oYW5jZSByZWR1eCBtaWRkbGV3YXJlIGFuZCBwcm92aWRlXG4gKiBmdW5jdGlvbmFsaXR5IHRvIHN1cHBvcnQgdGhlIGtlcGxlci5nbCB0YXNrIHN5c3RlbVxuICogQHBhcmFtIG1pZGRsZXdhcmVzIGN1cnJlbnQgcmVkdXggbWlkZGxld2FyZXNcbiAqIEByZXR1cm5zIHsqW119IHRoZSBvcmlnaW5hbCBsaXN0IG9mIG1pZGRsZXdhcmVzIHBsdXMgdGhlIHRhc2sgbWlkZGxld2FyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5oYW5jZVJlZHV4TWlkZGxld2FyZShtaWRkbGV3YXJlczogTWlkZGxld2FyZVtdID0gW10pOiBNaWRkbGV3YXJlW10ge1xuICByZXR1cm4gWy4uLm1pZGRsZXdhcmVzLCB0YXNrTWlkZGxld2FyZV07XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0EsU0FBUUEsY0FBYyxRQUFPLGtCQUFrQjtBQUcvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNDLHNCQUFzQkEsQ0FBQSxFQUErQztFQUFBLElBQTlDQyxXQUF5QixHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxFQUFFO0VBQ25FLFVBQUFHLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBV0wsV0FBVyxJQUFFRixjQUFjO0FBQ3hDIiwiaWdub3JlTGlzdCI6W119
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
7
  // SPDX-License-Identifier: MIT
8
8
  // Copyright contributors to the kepler.gl project
9
9
 
10
- import Task, { withTask } from 'react-palm/tasks';
10
+ import Task, { withTask } from '@kepler.gl/tasks';
11
11
  import Console from 'global/console';
12
12
  import { getApplicationConfig, getError, isPlainObject } from '@kepler.gl/utils';
13
13
  import { generateHashId, toArray } from '@kepler.gl/common-utils';
@@ -142,7 +142,7 @@ export var exportFileSuccessUpdater = function exportFileSuccessUpdater(state, a
142
142
  }), closeModal && ACTION_TASK().map(function () {
143
143
  return postSaveLoadSuccess("Map saved to ".concat(state.currentProvider, "!"));
144
144
  })].filter(function (d) {
145
- return d;
145
+ return Boolean(d);
146
146
  });
147
147
  return tasks.length ? withTask(newState, tasks) : newState;
148
148
  };
@@ -429,7 +429,7 @@ export var loadCloudMapSuccess2Updater = function loadCloudMapSuccess2Updater(st
429
429
  }), ACTION_TASK().map(function () {
430
430
  return postSaveLoadSuccess("Map from ".concat(provider.name, " loaded"));
431
431
  })].filter(function (d) {
432
- return d;
432
+ return Boolean(d);
433
433
  });
434
434
  return tasks.length ? withTask(newState, tasks) : newState;
435
435
  };
@@ -455,4 +455,4 @@ export var resetProviderStatusUpdater = function resetProviderStatusUpdater(stat
455
455
  successInfo: {}
456
456
  });
457
457
  };
458
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUYXNrIiwid2l0aFRhc2siLCJDb25zb2xlIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJnZXRFcnJvciIsImlzUGxhaW5PYmplY3QiLCJnZW5lcmF0ZUhhc2hJZCIsInRvQXJyYXkiLCJFWFBPUlRfRklMRV9UT19DTE9VRF9UQVNLIiwiQUNUSU9OX1RBU0siLCJERUxBWV9UQVNLIiwiTE9BRF9DTE9VRF9NQVBfVEFTSyIsImV4cG9ydEZpbGVTdWNjZXNzIiwiZXhwb3J0RmlsZUVycm9yIiwicG9zdFNhdmVMb2FkU3VjY2VzcyIsImxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJsb2FkQ2xvdWRNYXBTdWNjZXNzMiIsImxvYWRDbG91ZE1hcEVycm9yIiwicmVzZXRQcm92aWRlclN0YXR1cyIsInJlbW92ZU5vdGlmaWNhdGlvbiIsInRvZ2dsZU1vZGFsIiwiYWRkTm90aWZpY2F0aW9uIiwiYWRkRGF0YVRvTWFwIiwiREVGQVVMVF9OT1RJRklDQVRJT05fVFlQRVMiLCJERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MiLCJEQVRBU0VUX0ZPUk1BVFMiLCJPVkVSV1JJVEVfTUFQX0lEIiwiRklMRV9DT05GTElDVF9NU0ciLCJEQVRBU0VUX0hBTkRMRVJTIiwiS2VwbGVyVGFibGUiLCJJTklUSUFMX1BST1ZJREVSX1NUQVRFIiwiaXNQcm92aWRlckxvYWRpbmciLCJpc0Nsb3VkTWFwTG9hZGluZyIsInByb3ZpZGVyRXJyb3IiLCJjdXJyZW50UHJvdmlkZXIiLCJzdWNjZXNzSW5mbyIsIm1hcFNhdmVkIiwic2F2ZWRNYXBJZCIsInZpc3VhbGl6YXRpb25zIiwiY3JlYXRlQWN0aW9uVGFzayIsImFjdGlvbiIsInBheWxvYWQiLCJtYXAiLCJfdmFsaWRhdGVQcm92aWRlciIsInByb3ZpZGVyIiwibWV0aG9kIiwiZXJyb3IiLCJjb25jYXQiLCJuYW1lIiwiY3JlYXRlR2xvYmFsTm90aWZpY2F0aW9uVGFza3MiLCJfcmVmIiwidHlwZSIsIm1lc3NhZ2UiLCJfcmVmJGRlbGF5Q2xvc2UiLCJkZWxheUNsb3NlIiwiaWQiLCJzdWNjZXNzTm90ZSIsInN1Y2Nlc3MiLCJ0b3BpYyIsImdsb2JhbCIsInRhc2siLCJleHBvcnRGaWxlVG9DbG91ZFVwZGF0ZXIiLCJzdGF0ZSIsIl9hY3Rpb24kcGF5bG9hZCIsIm1hcERhdGEiLCJfYWN0aW9uJHBheWxvYWQkb3B0aW8iLCJvcHRpb25zIiwib25TdWNjZXNzIiwib25FcnJvciIsImNsb3NlTW9kYWwiLCJuZXdTdGF0ZSIsIl9vYmplY3RTcHJlYWQiLCJ1cGxvYWRGaWxlVGFzayIsImJpbWFwIiwicmVzcG9uc2UiLCJleHBvcnRGaWxlU3VjY2Vzc1VwZGF0ZXIiLCJfcmVzcG9uc2UkaW5mbyRpZCIsIl9yZXNwb25zZSRpbmZvIiwiX2FjdGlvbiRwYXlsb2FkMiIsIl9hY3Rpb24kcGF5bG9hZDIkb3B0aSIsImlzUHVibGljIiwiaW5mbyIsInRhc2tzIiwiZmlsdGVyIiwiZCIsImxlbmd0aCIsInBvc3RTYXZlTG9hZFN1Y2Nlc3NVcGRhdGVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiZXhwb3J0RmlsZUVycm9yVXBkYXRlciIsIl9hY3Rpb24kcGF5bG9hZDMiLCJpc0ZpbGVDb25mbGljdCIsImxvYWRDbG91ZE1hcFVwZGF0ZXIiLCJfYWN0aW9uJHBheWxvYWQ0IiwibG9hZFBhcmFtcyIsIndhcm4iLCJjaGVja0xvYWRNYXBSZXNwb25zZUVycm9yIiwiRXJyb3IiLCJkYXRhc2V0cyIsImNvbmZpZyIsImdldERhdGFzZXRIYW5kbGVyIiwiZm9ybWF0IiwiX2dldEFwcGxpY2F0aW9uQ29uZmlnIiwiZGVmYXVsdEhhbmRsZXIiLCJjc3YiLCJUYWJsZUNsYXNzIiwidGFibGUiLCJnZXRGaWxlUHJvY2Vzc29yIiwicHJvY2Vzc29yUmVzdWx0IiwicHJvY2Vzc29yIiwic3VwcG9ydGVkRm9ybWF0IiwiT2JqZWN0Iiwia2V5cyIsImsiLCJqb2luIiwicGFyc2VMb2FkTWFwUmVzcG9uc2VUYXNrIiwiX3giLCJfcGFyc2VMb2FkTWFwUmVzcG9uc2VUYXNrIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZTIiLCJfcmVmMiIsInByb2Nlc3Nvck1ldGhvZCIsInBhcnNlZERhdGFzZXRzIiwicGFyc2VkTWFwIiwid3JhcCIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInByZXYiLCJuZXh0Iiwia2VwbGVyZ2wiLCJzZW50IiwiUHJvbWlzZSIsImFsbCIsIl9yZWYzIiwiX2NhbGxlZSIsImRzIiwiZGF0YSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJhYnJ1cHQiLCJzdG9wIiwiX3gyIiwiY2VudGVyTWFwIiwiUEFSU0VfTE9BRF9NQVBfUkVTUE9OU0VfVEFTSyIsImZyb21Qcm9taXNlIiwibG9hZENsb3VkTWFwU3VjY2Vzc1VwZGF0ZXIiLCJfYWN0aW9uJHBheWxvYWQ1IiwiZm9ybWF0RXJyb3IiLCJkYXRhc2V0c1BheWxvYWQiLCJsb2FkQ2xvdWRNYXBTdWNjZXNzMlVwZGF0ZXIiLCJfYWN0aW9uJHBheWxvYWQ2IiwibG9hZENsb3VkTWFwRXJyb3JVcGRhdGVyIiwicmVzZXRQcm92aWRlclN0YXR1c1VwZGF0ZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXItc3RhdGUtdXBkYXRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFRhc2ssIHt3aXRoVGFza30gZnJvbSAncmVhY3QtcGFsbS90YXNrcyc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnLCBnZXRFcnJvciwgaXNQbGFpbk9iamVjdH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2dlbmVyYXRlSGFzaElkLCB0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge1xuICBFWFBPUlRfRklMRV9UT19DTE9VRF9UQVNLLFxuICBBQ1RJT05fVEFTSyxcbiAgREVMQVlfVEFTSyxcbiAgTE9BRF9DTE9VRF9NQVBfVEFTS1xufSBmcm9tICdAa2VwbGVyLmdsL3Rhc2tzJztcbmltcG9ydCB7XG4gIGV4cG9ydEZpbGVTdWNjZXNzLFxuICBleHBvcnRGaWxlRXJyb3IsXG4gIHBvc3RTYXZlTG9hZFN1Y2Nlc3MsXG4gIGxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gIGxvYWRDbG91ZE1hcFN1Y2Nlc3MyLFxuICBsb2FkQ2xvdWRNYXBFcnJvcixcbiAgcmVzZXRQcm92aWRlclN0YXR1cyxcbiAgcmVtb3ZlTm90aWZpY2F0aW9uLFxuICB0b2dnbGVNb2RhbCxcbiAgYWRkTm90aWZpY2F0aW9uLFxuICBhZGREYXRhVG9NYXAsXG4gIFByb3ZpZGVyQWN0aW9uc1xufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9OT1RJRklDQVRJT05fVFlQRVMsXG4gIERFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUyxcbiAgREFUQVNFVF9GT1JNQVRTLFxuICBPVkVSV1JJVEVfTUFQX0lEXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QWRkRGF0YVRvTWFwUGF5bG9hZCwgRXhwb3J0RmlsZVRvQ2xvdWRQYXlsb2FkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtGSUxFX0NPTkZMSUNUX01TRywgTWFwTGlzdEl0ZW19IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcbmltcG9ydCB7REFUQVNFVF9IQU5ETEVSU30gZnJvbSAnQGtlcGxlci5nbC9wcm9jZXNzb3JzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG50eXBlIEFjdGlvblBheWxvYWQ8UD4gPSB7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHBheWxvYWQ6IFA7XG59O1xuXG5leHBvcnQgdHlwZSBQcm92aWRlclN0YXRlID0ge1xuICBpc1Byb3ZpZGVyTG9hZGluZzogYm9vbGVhbjtcbiAgaXNDbG91ZE1hcExvYWRpbmc6IGJvb2xlYW47XG4gIHByb3ZpZGVyRXJyb3I6IGFueTtcbiAgY3VycmVudFByb3ZpZGVyOiBzdHJpbmcgfCBudWxsO1xuICBzdWNjZXNzSW5mbzogYW55O1xuICBtYXBTYXZlZDogbnVsbCB8IHN0cmluZztcbiAgc2F2ZWRNYXBJZDogbnVsbCB8IHN0cmluZztcbiAgaW5pdGlhbFN0YXRlPzogYW55O1xuICB2aXN1YWxpemF0aW9uczogTWFwTGlzdEl0ZW1bXTtcbn07XG5cbmV4cG9ydCBjb25zdCBJTklUSUFMX1BST1ZJREVSX1NUQVRFOiBQcm92aWRlclN0YXRlID0ge1xuICBpc1Byb3ZpZGVyTG9hZGluZzogZmFsc2UsXG4gIGlzQ2xvdWRNYXBMb2FkaW5nOiBmYWxzZSxcbiAgcHJvdmlkZXJFcnJvcjogbnVsbCxcbiAgY3VycmVudFByb3ZpZGVyOiBudWxsLFxuICBzdWNjZXNzSW5mbzoge30sXG4gIG1hcFNhdmVkOiBudWxsLFxuICBzYXZlZE1hcElkOiBudWxsLFxuICB2aXN1YWxpemF0aW9uczogW11cbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUFjdGlvblRhc2soYWN0aW9uLCBwYXlsb2FkKSB7XG4gIGlmICh0eXBlb2YgYWN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIEFDVElPTl9UQVNLKCkubWFwKCgpID0+IGFjdGlvbihwYXlsb2FkKSk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gX3ZhbGlkYXRlUHJvdmlkZXIocHJvdmlkZXIsIG1ldGhvZCkge1xuICBpZiAoIXByb3ZpZGVyKSB7XG4gICAgQ29uc29sZS5lcnJvcihgcHJvdmlkZXIgaXMgbm90IGRlZmluZWRgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByb3ZpZGVyW21ldGhvZF0gIT09ICdmdW5jdGlvbicpIHtcbiAgICBDb25zb2xlLmVycm9yKGAke21ldGhvZH0gaXMgbm90IGEgZnVuY3Rpb24gb2YgQ2xvdWQgcHJvdmlkZXI6ICR7cHJvdmlkZXIubmFtZX1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlR2xvYmFsTm90aWZpY2F0aW9uVGFza3Moe1xuICB0eXBlLFxuICBtZXNzYWdlLFxuICBkZWxheUNsb3NlID0gdHJ1ZVxufToge1xuICB0eXBlPzogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRlbGF5Q2xvc2U/OiBib29sZWFuO1xufSkge1xuICBjb25zdCBpZCA9IGdlbmVyYXRlSGFzaElkKCk7XG4gIGNvbnN0IHN1Y2Nlc3NOb3RlID0ge1xuICAgIGlkLFxuICAgIHR5cGU6IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTW3R5cGUgfHwgJyddIHx8IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTLnN1Y2Nlc3MsXG4gICAgdG9waWM6IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUy5nbG9iYWwsXG4gICAgbWVzc2FnZVxuICB9O1xuICBjb25zdCB0YXNrID0gQUNUSU9OX1RBU0soKS5tYXAoKCkgPT4gYWRkTm90aWZpY2F0aW9uKHN1Y2Nlc3NOb3RlKSk7XG4gIHJldHVybiBkZWxheUNsb3NlID8gW3Rhc2ssIERFTEFZX1RBU0soMzAwMCkubWFwKCgpID0+IHJlbW92ZU5vdGlmaWNhdGlvbihpZCkpXSA6IFt0YXNrXTtcbn1cblxuLyoqXG4gKiBUaGlzIG1ldGhvZCB3aWxsIGV4cG9ydCB0aGUgY3VycmVudCBrZXBsZXIgY29uZmlnIGZpbGUgdG8gdGhlIGNob3NlbiBjbG91ZCBwcm9kZXJcbiAqIGFkZCByZXR1cm5zIGEgc2hhcmUgVVJMXG4gKlxuICovXG5leHBvcnQgY29uc3QgZXhwb3J0RmlsZVRvQ2xvdWRVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPEV4cG9ydEZpbGVUb0Nsb3VkUGF5bG9hZD5cbik6IFByb3ZpZGVyU3RhdGUgPT4ge1xuICBjb25zdCB7bWFwRGF0YSwgcHJvdmlkZXIsIG9wdGlvbnMgPSB7fSwgb25TdWNjZXNzLCBvbkVycm9yLCBjbG9zZU1vZGFsfSA9IGFjdGlvbi5wYXlsb2FkO1xuXG4gIGlmICghX3ZhbGlkYXRlUHJvdmlkZXIocHJvdmlkZXIsICd1cGxvYWRNYXAnKSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGlzUHJvdmlkZXJMb2FkaW5nOiB0cnVlLFxuICAgIGN1cnJlbnRQcm92aWRlcjogcHJvdmlkZXIubmFtZVxuICB9O1xuXG4gIC8vIHBheWxvYWQgY2FsbGVkIGJ5IHByb3ZpZGVyLnVwbG9hZE1hcFxuICBjb25zdCBwYXlsb2FkID0ge1xuICAgIG1hcERhdGEsXG4gICAgb3B0aW9uc1xuICB9O1xuICBjb25zdCB1cGxvYWRGaWxlVGFzayA9IEVYUE9SVF9GSUxFX1RPX0NMT1VEX1RBU0soe3Byb3ZpZGVyLCBwYXlsb2FkfSkuYmltYXAoXG4gICAgLy8gc3VjY2Vzc1xuICAgIHJlc3BvbnNlID0+IGV4cG9ydEZpbGVTdWNjZXNzKHtyZXNwb25zZSwgcHJvdmlkZXIsIG9wdGlvbnMsIG9uU3VjY2VzcywgY2xvc2VNb2RhbH0pLFxuICAgIC8vIGVycm9yXG4gICAgZXJyb3IgPT4gZXhwb3J0RmlsZUVycm9yKHtlcnJvciwgcHJvdmlkZXIsIG9wdGlvbnMsIG9uRXJyb3J9KVxuICApO1xuXG4gIHJldHVybiB3aXRoVGFzayhuZXdTdGF0ZSwgdXBsb2FkRmlsZVRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydEZpbGVTdWNjZXNzVXBkYXRlciA9IChcbiAgc3RhdGU6IFByb3ZpZGVyU3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uUGF5bG9hZDxQcm92aWRlckFjdGlvbnMuRXhwb3J0RmlsZVN1Y2Nlc3NQYXlsb2FkPlxuKTogUHJvdmlkZXJTdGF0ZSA9PiB7XG4gIGNvbnN0IHtyZXNwb25zZSwgcHJvdmlkZXIsIG9wdGlvbnMgPSB7fSwgb25TdWNjZXNzLCBjbG9zZU1vZGFsfSA9IGFjdGlvbi5wYXlsb2FkO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGlzUHJvdmlkZXJMb2FkaW5nOiBmYWxzZSxcbiAgICAvLyBUT0RPOiBkbyB3ZSBhbHdheXMgaGF2ZSB0byBzdG9yZSB0aGlzP1xuICAgIHN1Y2Nlc3NJbmZvOiByZXNwb25zZSxcbiAgICAuLi4oIW9wdGlvbnMuaXNQdWJsaWNcbiAgICAgID8ge1xuICAgICAgICAgIG1hcFNhdmVkOiBwcm92aWRlci5uYW1lLFxuICAgICAgICAgIHNhdmVkTWFwSWQ6IHJlc3BvbnNlPy5pbmZvPy5pZCA/PyBudWxsXG4gICAgICAgIH1cbiAgICAgIDoge30pXG4gIH07XG5cbiAgY29uc3QgdGFza3MgPSBbXG4gICAgY3JlYXRlQWN0aW9uVGFzayhvblN1Y2Nlc3MsIHtyZXNwb25zZSwgcHJvdmlkZXIsIG9wdGlvbnN9KSxcbiAgICBjbG9zZU1vZGFsICYmXG4gICAgICBBQ1RJT05fVEFTSygpLm1hcCgoKSA9PiBwb3N0U2F2ZUxvYWRTdWNjZXNzKGBNYXAgc2F2ZWQgdG8gJHtzdGF0ZS5jdXJyZW50UHJvdmlkZXJ9IWApKVxuICBdLmZpbHRlcihkID0+IGQpO1xuXG4gIHJldHVybiB0YXNrcy5sZW5ndGggPyB3aXRoVGFzayhuZXdTdGF0ZSwgdGFza3MpIDogbmV3U3RhdGU7XG59O1xuXG4vKipcbiAqIENsb3NlIG1vZGFsIG9uIHN1Y2Nlc3MgYW5kIGRpc3BsYXkgbm90aWZpY2F0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBwb3N0U2F2ZUxvYWRTdWNjZXNzVXBkYXRlciA9IChcbiAgc3RhdGU6IFByb3ZpZGVyU3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uUGF5bG9hZDxQcm92aWRlckFjdGlvbnMuUG9zdFNhdmVMb2FkU3VjY2Vzc1BheWxvYWQ+XG4pOiBQcm92aWRlclN0YXRlID0+IHtcbiAgY29uc3QgbWVzc2FnZSA9IGFjdGlvbi5wYXlsb2FkIHx8IGBTYXZlZCAvIExvYWQgdG8gJHtzdGF0ZS5jdXJyZW50UHJvdmlkZXJ9IFN1Y2Nlc3NgO1xuXG4gIGNvbnN0IHRhc2tzID0gW1xuICAgIEFDVElPTl9UQVNLKCkubWFwKCgpID0+IHRvZ2dsZU1vZGFsKG51bGwpKSxcbiAgICBBQ1RJT05fVEFTSygpLm1hcCgoKSA9PiByZXNldFByb3ZpZGVyU3RhdHVzKCkpLFxuICAgIC4uLmNyZWF0ZUdsb2JhbE5vdGlmaWNhdGlvblRhc2tzKHttZXNzYWdlfSlcbiAgXTtcblxuICByZXR1cm4gd2l0aFRhc2soc3RhdGUsIHRhc2tzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHBvcnRGaWxlRXJyb3JVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPFByb3ZpZGVyQWN0aW9ucy5FeHBvcnRGaWxlRXJyb3JQYXlsb2FkPlxuKTogUHJvdmlkZXJTdGF0ZSA9PiB7XG4gIGNvbnN0IHtlcnJvciwgcHJvdmlkZXIsIG9uRXJyb3J9ID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNQcm92aWRlckxvYWRpbmc6IGZhbHNlXG4gIH07XG5cbiAgaWYgKGlzRmlsZUNvbmZsaWN0KGVycm9yKSkge1xuICAgIG5ld1N0YXRlLm1hcFNhdmVkID0gcHJvdmlkZXIubmFtZTtcbiAgICByZXR1cm4gd2l0aFRhc2sobmV3U3RhdGUsIFtBQ1RJT05fVEFTSygpLm1hcCgoKSA9PiB0b2dnbGVNb2RhbChPVkVSV1JJVEVfTUFQX0lEKSldKTtcbiAgfVxuXG4gIG5ld1N0YXRlLnByb3ZpZGVyRXJyb3IgPSBnZXRFcnJvcihlcnJvcik7XG4gIGNvbnN0IHRhc2sgPSBjcmVhdGVBY3Rpb25UYXNrKG9uRXJyb3IsIHtlcnJvciwgcHJvdmlkZXJ9KTtcblxuICByZXR1cm4gdGFzayA/IHdpdGhUYXNrKG5ld1N0YXRlLCB0YXNrKSA6IG5ld1N0YXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvYWRDbG91ZE1hcFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBQcm92aWRlclN0YXRlLFxuICBhY3Rpb246IEFjdGlvblBheWxvYWQ8UHJvdmlkZXJBY3Rpb25zLkxvYWRDbG91ZE1hcFBheWxvYWQ+XG4pOiBQcm92aWRlclN0YXRlID0+IHtcbiAgY29uc3Qge2xvYWRQYXJhbXMsIHByb3ZpZGVyLCBvblN1Y2Nlc3MsIG9uRXJyb3J9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGlmICghbG9hZFBhcmFtcykge1xuICAgIENvbnNvbGUud2FybignbG9hZCBtYXAgZXJyb3I6IGxvYWRQYXJhbXMgaXMgdW5kZWZpbmVkJyk7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG4gIGlmICghX3ZhbGlkYXRlUHJvdmlkZXIocHJvdmlkZXIsICdkb3dubG9hZE1hcCcpKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNQcm92aWRlckxvYWRpbmc6IHRydWUsXG4gICAgaXNDbG91ZE1hcExvYWRpbmc6IHRydWVcbiAgfTtcblxuICAvLyBwYXlsb2FkIGNhbGxlZCBieSBwcm92aWRlci5kb3dubG9hZE1hcFxuICBjb25zdCB1cGxvYWRGaWxlVGFzayA9IExPQURfQ0xPVURfTUFQX1RBU0soe3Byb3ZpZGVyLCBwYXlsb2FkOiBsb2FkUGFyYW1zfSkuYmltYXAoXG4gICAgLy8gc3VjY2Vzc1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICByZXNwb25zZSA9PiBsb2FkQ2xvdWRNYXBTdWNjZXNzKHtyZXNwb25zZSwgbG9hZFBhcmFtcywgcHJvdmlkZXIsIG9uU3VjY2Vzcywgb25FcnJvcn0pLFxuICAgIC8vIGVycm9yXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGVycm9yID0+IGxvYWRDbG91ZE1hcEVycm9yKHtlcnJvciwgcHJvdmlkZXIsIG9uRXJyb3J9KVxuICApO1xuXG4gIHJldHVybiB3aXRoVGFzayhuZXdTdGF0ZSwgdXBsb2FkRmlsZVRhc2spO1xufTtcblxuZnVuY3Rpb24gaXNGaWxlQ29uZmxpY3QoZXJyb3IpIHtcbiAgcmV0dXJuIGVycm9yICYmIGVycm9yLm1lc3NhZ2UgPT09IEZJTEVfQ09ORkxJQ1RfTVNHO1xufVxuXG5mdW5jdGlvbiBjaGVja0xvYWRNYXBSZXNwb25zZUVycm9yKHJlc3BvbnNlKSB7XG4gIGlmICghcmVzcG9uc2UgfHwgIWlzUGxhaW5PYmplY3QocmVzcG9uc2UpKSB7XG4gICAgcmV0dXJuIG5ldyBFcnJvcignTG9hZCBtYXAgcmVzcG9uc2UgaXMgZW1wdHknKTtcbiAgfVxuICBpZiAoIWlzUGxhaW5PYmplY3QocmVzcG9uc2UubWFwKSkge1xuICAgIHJldHVybiBuZXcgRXJyb3IoYExvYWQgbWFwIHJlc3BvbnNlIHNob3VsZCBiZSBhbiBvYmplY3QgcHJvcGVydHkgXCJtYXBcImApO1xuICB9XG4gIGlmICghcmVzcG9uc2UubWFwLmRhdGFzZXRzIHx8ICFyZXNwb25zZS5tYXAuY29uZmlnKSB7XG4gICAgcmV0dXJuIG5ldyBFcnJvcihgTG9hZCBtYXAgcmVzcG9uc2UubWFwIHNob3VsZCBiZSBhbiBvYmplY3Qgd2l0aCBwcm9wZXJ0eSBkYXRhc2V0cyBvciBjb25maWdgKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXREYXRhc2V0SGFuZGxlcihmb3JtYXQpIHtcbiAgY29uc3QgZGVmYXVsdEhhbmRsZXIgPSBEQVRBU0VUX0hBTkRMRVJTW0RBVEFTRVRfRk9STUFUUy5jc3ZdO1xuICBpZiAoIWZvcm1hdCkge1xuICAgIENvbnNvbGUud2FybignZm9ybWF0IGlzIG5vdCBwcm92aWRlZCBpbiBsb2FkIG1hcCByZXNwb25zZSwgd2lsbCB1c2UgY3N2IGJ5IGRlZmF1bHQnKTtcbiAgICByZXR1cm4gZGVmYXVsdEhhbmRsZXI7XG4gIH1cblxuICAvLyB1c2UgY3VzdG9tIHByb2Nlc3NvcnMgZnJvbSB0YWJsZSBjbGFzc1xuICBjb25zdCBUYWJsZUNsYXNzID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS50YWJsZSA/PyBLZXBsZXJUYWJsZTtcbiAgaWYgKHR5cGVvZiBUYWJsZUNsYXNzLmdldEZpbGVQcm9jZXNzb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBwcm9jZXNzb3JSZXN1bHQgPSBUYWJsZUNsYXNzLmdldEZpbGVQcm9jZXNzb3IobnVsbCwgZm9ybWF0KTtcbiAgICBpZiAoIXByb2Nlc3NvclJlc3VsdC5wcm9jZXNzb3IpIHtcbiAgICAgIENvbnNvbGUud2FybihgTm8gcHJvY2Vzc29yIGZvdW5kIGZvciBmb3JtYXQgJHtmb3JtYXR9LCB3aWxsIHVzZSBjc3YgYnkgZGVmYXVsdGApO1xuICAgICAgcmV0dXJuIGRlZmF1bHRIYW5kbGVyO1xuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc29yUmVzdWx0LnByb2Nlc3NvcjtcbiAgfVxuXG4gIGlmICghREFUQVNFVF9IQU5ETEVSU1tmb3JtYXRdKSB7XG4gICAgY29uc3Qgc3VwcG9ydGVkRm9ybWF0ID0gT2JqZWN0LmtleXMoREFUQVNFVF9GT1JNQVRTKVxuICAgICAgLm1hcChrID0+IGAnJHtrfSdgKVxuICAgICAgLmpvaW4oJywgJyk7XG4gICAgQ29uc29sZS53YXJuKFxuICAgICAgYHVua25vd24gZm9ybWF0ICR7Zm9ybWF0fS4gUGxlYXNlIHVzZSBvbmUgb2YgJHtzdXBwb3J0ZWRGb3JtYXR9LCB3aWxsIHVzZSBjc3YgYnkgZGVmYXVsdGBcbiAgICApO1xuICAgIHJldHVybiBkZWZhdWx0SGFuZGxlcjtcbiAgfVxuXG4gIHJldHVybiBEQVRBU0VUX0hBTkRMRVJTW2Zvcm1hdF07XG59XG5cbi8qKlxuICogQSB0YXNrIHRvIGhhbmRsZSBhc3luYyBwcm9jZXNzb3JNZXRob2RcbiAqIEBwYXJhbSBwYXJhbTBcbiAqIEByZXR1cm5zXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlTG9hZE1hcFJlc3BvbnNlVGFzayh7XG4gIHJlc3BvbnNlLFxuICBsb2FkUGFyYW1zLFxuICBwcm92aWRlclxufToge1xuICByZXNwb25zZTogUHJvdmlkZXJBY3Rpb25zLkxvYWRDbG91ZE1hcFN1Y2Nlc3NQYXlsb2FkWydyZXNwb25zZSddO1xuICBsb2FkUGFyYW1zOiBQcm92aWRlckFjdGlvbnMuTG9hZENsb3VkTWFwU3VjY2Vzc1BheWxvYWRbJ2xvYWRQYXJhbXMnXTtcbiAgcHJvdmlkZXI6IFByb3ZpZGVyQWN0aW9ucy5Mb2FkQ2xvdWRNYXBTdWNjZXNzUGF5bG9hZFsncHJvdmlkZXInXTtcbn0pIHtcbiAgY29uc3Qge21hcCwgZm9ybWF0fSA9IHJlc3BvbnNlO1xuICBjb25zdCBwcm9jZXNzb3JNZXRob2QgPSBnZXREYXRhc2V0SGFuZGxlcihmb3JtYXQpO1xuXG4gIGxldCBwYXJzZWREYXRhc2V0czogQWRkRGF0YVRvTWFwUGF5bG9hZFsnZGF0YXNldHMnXSA9IFtdO1xuXG4gIGlmIChcbiAgICBmb3JtYXQgPT09IERBVEFTRVRfRk9STUFUUy5rZXBsZXJnbCAmJlxuICAgIHByb2Nlc3Nvck1ldGhvZCAhPT0gREFUQVNFVF9IQU5ETEVSU1tEQVRBU0VUX0ZPUk1BVFMua2VwbGVyZ2xdXG4gICkge1xuICAgIC8vIHBsdWdpbiB0YWJsZSBwcm92aWRlcyBwcm9jZXNzb3IgZm9yIGtlcGxlcmdsIG1hcCwgbm90IHNpbmdsZSBkYXRhc2V0IHdpdGggYWxsRGF0YVxuICAgIGNvbnN0IHBhcnNlZE1hcCA9IGF3YWl0IHByb2Nlc3Nvck1ldGhvZChtYXApO1xuICAgIHBhcnNlZERhdGFzZXRzID0gcGFyc2VkTWFwLmRhdGFzZXRzO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGRhdGFzZXRzID0gdG9BcnJheShtYXAuZGF0YXNldHMpO1xuICAgIHBhcnNlZERhdGFzZXRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBkYXRhc2V0cy5tYXAoYXN5bmMgZHMgPT4ge1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBEQVRBU0VUX0ZPUk1BVFMua2VwbGVyZ2wpIHtcbiAgICAgICAgICAvLyBubyBuZWVkIHRvIG9idGFpbiBpZCwgZGlyZWN0bHkgcGFzcyB0aGVtIGluXG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHByb2Nlc3Nvck1ldGhvZChkcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5mbyA9IChkcyAmJiBkcy5pbmZvKSB8fCB7aWQ6IGdlbmVyYXRlSGFzaElkKDYpfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHByb2Nlc3Nvck1ldGhvZChkcy5kYXRhIHx8IGRzKTtcbiAgICAgICAgcmV0dXJuIHtpbmZvLCBkYXRhfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZm8gPSB7XG4gICAgLi4ubWFwLmluZm8sXG4gICAgcHJvdmlkZXI6IHByb3ZpZGVyLm5hbWUsXG4gICAgbG9hZFBhcmFtc1xuICB9O1xuICByZXR1cm4ge1xuICAgIGRhdGFzZXRzOiBwYXJzZWREYXRhc2V0cyxcbiAgICBpbmZvLFxuICAgIC4uLihtYXAuY29uZmlnID8ge2NvbmZpZzogbWFwLmNvbmZpZ30gOiB7fSksXG4gICAgb3B0aW9uczoge1xuICAgICAgLy8gZG8gbm90IGNlbnRlciBtYXAgd2hlbiBsb2FkaW5nIGNsb3VkIG1hcFxuICAgICAgY2VudGVyTWFwOiBmYWxzZVxuICAgIH1cbiAgfTtcbn1cblxuY29uc3QgUEFSU0VfTE9BRF9NQVBfUkVTUE9OU0VfVEFTSyA9IFRhc2suZnJvbVByb21pc2UoXG4gIHBhcnNlTG9hZE1hcFJlc3BvbnNlVGFzayxcbiAgJ1BBUlNFX0xPQURfTUFQX1JFU1BPTlNFX1RBU0snXG4pO1xuXG4vKipcbiAqIFVzZWQgdG8gbG9hZCByZXNvdXJjZXMgc3RvcmVkIGluIGEgcHJpdmF0ZSBzdG9yYWdlLlxuICovXG5leHBvcnQgY29uc3QgbG9hZENsb3VkTWFwU3VjY2Vzc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBQcm92aWRlclN0YXRlLFxuICBhY3Rpb246IEFjdGlvblBheWxvYWQ8UHJvdmlkZXJBY3Rpb25zLkxvYWRDbG91ZE1hcFN1Y2Nlc3NQYXlsb2FkPlxuKTogUHJvdmlkZXJTdGF0ZSA9PiB7XG4gIGNvbnN0IHtyZXNwb25zZSwgbG9hZFBhcmFtcywgcHJvdmlkZXIsIG9uRXJyb3J9ID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgY29uc3QgZm9ybWF0RXJyb3IgPSBjaGVja0xvYWRNYXBSZXNwb25zZUVycm9yKHJlc3BvbnNlKTtcbiAgaWYgKGZvcm1hdEVycm9yKSB7XG4gICAgLy8gaWYgcmVzcG9uc2UgZm9ybWF0IGlzIG5vdCBjb3JyZWN0XG4gICAgcmV0dXJuIGV4cG9ydEZpbGVFcnJvclVwZGF0ZXIoc3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IHtlcnJvcjogZm9ybWF0RXJyb3IsIHByb3ZpZGVyLCBvbkVycm9yfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gcHJvY2Vzc29yTWV0aG9kIGNhbiBiZSBhc3luYyBzbyBjcmVhdGUgYSB0YXNrXG4gIGNvbnN0IHBhcnNlTG9hZE1hcFJlc3BvbnNlVGFzayA9IFBBUlNFX0xPQURfTUFQX1JFU1BPTlNFX1RBU0soe1xuICAgIHJlc3BvbnNlLFxuICAgIGxvYWRQYXJhbXMsXG4gICAgcHJvdmlkZXJcbiAgfSkuYmltYXAoXG4gICAgKGRhdGFzZXRzUGF5bG9hZDogQWRkRGF0YVRvTWFwUGF5bG9hZCkgPT4ge1xuICAgICAgcmV0dXJuIGxvYWRDbG91ZE1hcFN1Y2Nlc3MyKHsuLi5hY3Rpb24ucGF5bG9hZCwgZGF0YXNldHNQYXlsb2FkfSk7XG4gICAgfSxcbiAgICBlcnJvciA9PlxuICAgICAgZXhwb3J0RmlsZUVycm9yVXBkYXRlcihzdGF0ZSwge1xuICAgICAgICBwYXlsb2FkOiB7ZXJyb3IsIHByb3ZpZGVyLCBvbkVycm9yfVxuICAgICAgfSlcbiAgKTtcblxuICByZXR1cm4gd2l0aFRhc2soc3RhdGUsIHBhcnNlTG9hZE1hcFJlc3BvbnNlVGFzayk7XG59O1xuXG5leHBvcnQgY29uc3QgbG9hZENsb3VkTWFwU3VjY2VzczJVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPFByb3ZpZGVyQWN0aW9ucy5Mb2FkQ2xvdWRNYXBTdWNjZXNzMlBheWxvYWQ+XG4pOiBQcm92aWRlclN0YXRlID0+IHtcbiAgY29uc3Qge2RhdGFzZXRzUGF5bG9hZCwgcmVzcG9uc2UsIGxvYWRQYXJhbXMsIHByb3ZpZGVyLCBvblN1Y2Nlc3N9ID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFwU2F2ZWQ6IHByb3ZpZGVyLm5hbWUsXG4gICAgY3VycmVudFByb3ZpZGVyOiBwcm92aWRlci5uYW1lLFxuICAgIGlzQ2xvdWRNYXBMb2FkaW5nOiBmYWxzZSxcbiAgICBpc1Byb3ZpZGVyTG9hZGluZzogZmFsc2VcbiAgfTtcblxuICBjb25zdCB0YXNrcyA9IFtcbiAgICBBQ1RJT05fVEFTSygpLm1hcCgoKSA9PiBhZGREYXRhVG9NYXAoZGF0YXNldHNQYXlsb2FkKSksXG4gICAgY3JlYXRlQWN0aW9uVGFzayhvblN1Y2Nlc3MsIHtyZXNwb25zZSwgbG9hZFBhcmFtcywgcHJvdmlkZXJ9KSxcbiAgICBBQ1RJT05fVEFTSygpLm1hcCgoKSA9PiBwb3N0U2F2ZUxvYWRTdWNjZXNzKGBNYXAgZnJvbSAke3Byb3ZpZGVyLm5hbWV9IGxvYWRlZGApKVxuICBdLmZpbHRlcihkID0+IGQpO1xuXG4gIHJldHVybiB0YXNrcy5sZW5ndGggPyB3aXRoVGFzayhuZXdTdGF0ZSwgdGFza3MpIDogbmV3U3RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgbG9hZENsb3VkTWFwRXJyb3JVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPFByb3ZpZGVyQWN0aW9ucy5Mb2FkQ2xvdWRNYXBFcnJvclBheWxvYWQ+XG4pOiBQcm92aWRlclN0YXRlID0+IHtcbiAgY29uc3QgbWVzc2FnZSA9IGdldEVycm9yKGFjdGlvbi5wYXlsb2FkLmVycm9yKSB8fCBgRXJyb3IgbG9hZGluZyBzYXZlZCBtYXBgO1xuXG4gIENvbnNvbGUud2FybihtZXNzYWdlKTtcblxuICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpc1Byb3ZpZGVyTG9hZGluZzogZmFsc2UsXG4gICAgaXNDbG91ZE1hcExvYWRpbmc6IGZhbHNlLFxuICAgIHByb3ZpZGVyRXJyb3I6IG51bGxcbiAgfTtcblxuICByZXR1cm4gd2l0aFRhc2soXG4gICAgbmV3U3RhdGUsXG4gICAgY3JlYXRlR2xvYmFsTm90aWZpY2F0aW9uVGFza3Moe3R5cGU6ICdlcnJvcicsIG1lc3NhZ2UsIGRlbGF5Q2xvc2U6IGZhbHNlfSlcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldFByb3ZpZGVyU3RhdHVzVXBkYXRlciA9IChzdGF0ZTogUHJvdmlkZXJTdGF0ZSk6IFByb3ZpZGVyU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGlzUHJvdmlkZXJMb2FkaW5nOiBmYWxzZSxcbiAgcHJvdmlkZXJFcnJvcjogbnVsbCxcbiAgaXNDbG91ZE1hcExvYWRpbmc6IGZhbHNlLFxuICBzdWNjZXNzSW5mbzoge31cbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLElBQUksSUFBR0MsUUFBUSxRQUFPLGtCQUFrQjtBQUMvQyxPQUFPQyxPQUFPLE1BQU0sZ0JBQWdCO0FBQ3BDLFNBQVFDLG9CQUFvQixFQUFFQyxRQUFRLEVBQUVDLGFBQWEsUUFBTyxrQkFBa0I7QUFDOUUsU0FBUUMsY0FBYyxFQUFFQyxPQUFPLFFBQU8seUJBQXlCO0FBQy9ELFNBQ0VDLHlCQUF5QixFQUN6QkMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLG1CQUFtQixRQUNkLGtCQUFrQjtBQUN6QixTQUNFQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsbUJBQW1CLEVBQ25CQyxtQkFBbUIsRUFDbkJDLG9C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LENBQUNpQyxHQUFHLENBQUM7SUFBQSxPQUFNcEIsWUFBWSxDQUFDaUksZUFBZSxDQUFDO0VBQUEsRUFBQyxFQUN0RGhILGdCQUFnQixDQUFDNEIsU0FBUyxFQUFFO0lBQUNPLFFBQVEsRUFBUkEsUUFBUTtJQUFFbUIsVUFBVSxFQUFWQSxVQUFVO0lBQUVqRCxRQUFRLEVBQVJBO0VBQVEsQ0FBQyxDQUFDLEVBQzdEbkMsV0FBVyxDQUFDLENBQUMsQ0FBQ2lDLEdBQUcsQ0FBQztJQUFBLE9BQU01QixtQkFBbUIsYUFBQWlDLE1BQUEsQ0FBYUgsUUFBUSxDQUFDSSxJQUFJLFlBQVMsQ0FBQztFQUFBLEVBQUMsQ0FDakYsQ0FBQ21DLE1BQU0sQ0FBQyxVQUFBQyxDQUFDO0lBQUEsT0FBSUEsQ0FBQztFQUFBLEVBQUM7RUFFaEIsT0FBT0YsS0FBSyxDQUFDRyxNQUFNLEdBQUdwRixRQUFRLENBQUNxRSxRQUFRLEVBQUVZLEtBQUssQ0FBQyxHQUFHWixRQUFRO0FBQzVELENBQUM7QUFFRCxPQUFPLElBQU1vRix3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUNuQzVGLEtBQW9CLEVBQ3BCdEIsTUFBK0QsRUFDN0M7RUFDbEIsSUFBTVksT0FBTyxHQUFHaEQsUUFBUSxDQUFDb0MsTUFBTSxDQUFDQyxPQUFPLENBQUNLLEtBQUssQ0FBQyw2QkFBNkI7RUFFM0U1QyxPQUFPLENBQUM0RixJQUFJLENBQUMxQyxPQUFPLENBQUM7RUFFckIsSUFBTWtCLFFBQVEsR0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ1RULEtBQUs7SUFDUi9CLGlCQUFpQixFQUFFLEtBQUs7SUFDeEJDLGlCQUFpQixFQUFFLEtBQUs7SUFDeEJDLGFBQWEsRUFBRTtFQUFJLEVBQ3BCO0VBRUQsT0FBT2hDLFFBQVEsQ0FDYnFFLFFBQVEsRUFDUnJCLDZCQUE2QixDQUFDO0lBQUNFLElBQUksRUFBRSxPQUFPO0lBQUVDLE9BQU8sRUFBUEEsT0FBTztJQUFFRSxVQUFVLEVBQUU7RUFBSyxDQUFDLENBQzNFLENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxJQUFNcUcsMEJBQTBCLEdBQUcsU0FBN0JBLDBCQUEwQkEsQ0FBSTdGLEtBQW9CO0VBQUEsT0FBQVMsYUFBQSxDQUFBQSxhQUFBLEtBQzFEVCxLQUFLO0lBQ1IvQixpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCRSxhQUFhLEVBQUUsSUFBSTtJQUNuQkQsaUJBQWlCLEVBQUUsS0FBSztJQUN4QkcsV0FBVyxFQUFFLENBQUM7RUFBQztBQUFBLENBQ2YiLCJpZ25vcmVMaXN0IjpbXX0=
458
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUYXNrIiwid2l0aFRhc2siLCJDb25zb2xlIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJnZXRFcnJvciIsImlzUGxhaW5PYmplY3QiLCJnZW5lcmF0ZUhhc2hJZCIsInRvQXJyYXkiLCJFWFBPUlRfRklMRV9UT19DTE9VRF9UQVNLIiwiQUNUSU9OX1RBU0siLCJERUxBWV9UQVNLIiwiTE9BRF9DTE9VRF9NQVBfVEFTSyIsImV4cG9ydEZpbGVTdWNjZXNzIiwiZXhwb3J0RmlsZUVycm9yIiwicG9zdFNhdmVMb2FkU3VjY2VzcyIsImxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJsb2FkQ2xvdWRNYXBTdWNjZXNzMiIsImxvYWRDbG91ZE1hcEVycm9yIiwicmVzZXRQcm92aWRlclN0YXR1cyIsInJlbW92ZU5vdGlmaWNhdGlvbiIsInRvZ2dsZU1vZGFsIiwiYWRkTm90aWZpY2F0aW9uIiwiYWRkRGF0YVRvTWFwIiwiREVGQVVMVF9OT1RJRklDQVRJT05fVFlQRVMiLCJERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MiLCJEQVRBU0VUX0ZPUk1BVFMiLCJPVkVSV1JJVEVfTUFQX0lEIiwiRklMRV9DT05GTElDVF9NU0ciLCJEQVRBU0VUX0hBTkRMRVJTIiwiS2VwbGVyVGFibGUiLCJJTklUSUFMX1BST1ZJREVSX1NUQVRFIiwiaXNQcm92aWRlckxvYWRpbmciLCJpc0Nsb3VkTWFwTG9hZGluZyIsInByb3ZpZGVyRXJyb3IiLCJjdXJyZW50UHJvdmlkZXIiLCJzdWNjZXNzSW5mbyIsIm1hcFNhdmVkIiwic2F2ZWRNYXBJZCIsInZpc3VhbGl6YXRpb25zIiwiY3JlYXRlQWN0aW9uVGFzayIsImFjdGlvbiIsInBheWxvYWQiLCJtYXAiLCJfdmFsaWRhdGVQcm92aWRlciIsInByb3ZpZGVyIiwibWV0aG9kIiwiZXJyb3IiLCJjb25jYXQiLCJuYW1lIiwiY3JlYXRlR2xvYmFsTm90aWZpY2F0aW9uVGFza3MiLCJfcmVmIiwidHlwZSIsIm1lc3NhZ2UiLCJfcmVmJGRlbGF5Q2xvc2UiLCJkZWxheUNsb3NlIiwiaWQiLCJzdWNjZXNzTm90ZSIsInN1Y2Nlc3MiLCJ0b3BpYyIsImdsb2JhbCIsInRhc2siLCJleHBvcnRGaWxlVG9DbG91ZFVwZGF0ZXIiLCJzdGF0ZSIsIl9hY3Rpb24kcGF5bG9hZCIsIm1hcERhdGEiLCJfYWN0aW9uJHBheWxvYWQkb3B0aW8iLCJvcHRpb25zIiwib25TdWNjZXNzIiwib25FcnJvciIsImNsb3NlTW9kYWwiLCJuZXdTdGF0ZSIsIl9vYmplY3RTcHJlYWQiLCJ1cGxvYWRGaWxlVGFzayIsImJpbWFwIiwicmVzcG9uc2UiLCJleHBvcnRGaWxlU3VjY2Vzc1VwZGF0ZXIiLCJfcmVzcG9uc2UkaW5mbyRpZCIsIl9yZXNwb25zZSRpbmZvIiwiX2FjdGlvbiRwYXlsb2FkMiIsIl9hY3Rpb24kcGF5bG9hZDIkb3B0aSIsImlzUHVibGljIiwiaW5mbyIsInRhc2tzIiwiZmlsdGVyIiwiZCIsIkJvb2xlYW4iLCJsZW5ndGgiLCJwb3N0U2F2ZUxvYWRTdWNjZXNzVXBkYXRlciIsIl90b0NvbnN1bWFibGVBcnJheSIsImV4cG9ydEZpbGVFcnJvclVwZGF0ZXIiLCJfYWN0aW9uJHBheWxvYWQzIiwiaXNGaWxlQ29uZmxpY3QiLCJsb2FkQ2xvdWRNYXBVcGRhdGVyIiwiX2FjdGlvbiRwYXlsb2FkNCIsImxvYWRQYXJhbXMiLCJ3YXJuIiwiY2hlY2tMb2FkTWFwUmVzcG9uc2VFcnJvciIsIkVycm9yIiwiZGF0YXNldHMiLCJjb25maWciLCJnZXREYXRhc2V0SGFuZGxlciIsImZvcm1hdCIsIl9nZXRBcHBsaWNhdGlvbkNvbmZpZyIsImRlZmF1bHRIYW5kbGVyIiwiY3N2IiwiVGFibGVDbGFzcyIsInRhYmxlIiwiZ2V0RmlsZVByb2Nlc3NvciIsInByb2Nlc3NvclJlc3VsdCIsInByb2Nlc3NvciIsInN1cHBvcnRlZEZvcm1hdCIsIk9iamVjdCIsImtleXMiLCJrIiwiam9pbiIsInBhcnNlTG9hZE1hcFJlc3BvbnNlVGFzayIsIl94IiwiX3BhcnNlTG9hZE1hcFJlc3BvbnNlVGFzayIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUyIiwiX3JlZjIiLCJwcm9jZXNzb3JNZXRob2QiLCJwYXJzZWREYXRhc2V0cyIsInBhcnNlZE1hcCIsIndyYXAiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJwcmV2IiwibmV4dCIsImtlcGxlcmdsIiwic2VudCIsIlByb21pc2UiLCJhbGwiLCJfcmVmMyIsIl9jYWxsZWUiLCJkcyIsImRhdGEiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiYWJydXB0Iiwic3RvcCIsIl94MiIsImNlbnRlck1hcCIsIlBBUlNFX0xPQURfTUFQX1JFU1BPTlNFX1RBU0siLCJmcm9tUHJvbWlzZSIsImxvYWRDbG91ZE1hcFN1Y2Nlc3NVcGRhdGVyIiwiX2FjdGlvbiRwYXlsb2FkNSIsImZvcm1hdEVycm9yIiwiZGF0YXNldHNQYXlsb2FkIiwibG9hZENsb3VkTWFwU3VjY2VzczJVcGRhdGVyIiwiX2FjdGlvbiRwYXlsb2FkNiIsImxvYWRDbG91ZE1hcEVycm9yVXBkYXRlciIsInJlc2V0UHJvdmlkZXJTdGF0dXNVcGRhdGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVyLXN0YXRlLXVwZGF0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBUYXNrLCB7d2l0aFRhc2t9IGZyb20gJ0BrZXBsZXIuZ2wvdGFza3MnO1xuaW1wb3J0IHR5cGUge1Rhc2tEZXNjcmlwdG9yfSBmcm9tICdAa2VwbGVyLmdsL3Rhc2tzJztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWcsIGdldEVycm9yLCBpc1BsYWluT2JqZWN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWQsIHRvQXJyYXl9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7XG4gIEVYUE9SVF9GSUxFX1RPX0NMT1VEX1RBU0ssXG4gIEFDVElPTl9UQVNLLFxuICBERUxBWV9UQVNLLFxuICBMT0FEX0NMT1VEX01BUF9UQVNLXG59IGZyb20gJ0BrZXBsZXIuZ2wvdGFza3MnO1xuaW1wb3J0IHtcbiAgZXhwb3J0RmlsZVN1Y2Nlc3MsXG4gIGV4cG9ydEZpbGVFcnJvcixcbiAgcG9zdFNhdmVMb2FkU3VjY2VzcyxcbiAgbG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgbG9hZENsb3VkTWFwU3VjY2VzczIsXG4gIGxvYWRDbG91ZE1hcEVycm9yLFxuICByZXNldFByb3ZpZGVyU3RhdHVzLFxuICByZW1vdmVOb3RpZmljYXRpb24sXG4gIHRvZ2dsZU1vZGFsLFxuICBhZGROb3RpZmljYXRpb24sXG4gIGFkZERhdGFUb01hcCxcbiAgUHJvdmlkZXJBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1xuICBERUZBVUxUX05PVElGSUNBVElPTl9UWVBFUyxcbiAgREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTLFxuICBEQVRBU0VUX0ZPUk1BVFMsXG4gIE9WRVJXUklURV9NQVBfSURcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBZGREYXRhVG9NYXBQYXlsb2FkLCBFeHBvcnRGaWxlVG9DbG91ZFBheWxvYWR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge0ZJTEVfQ09ORkxJQ1RfTVNHLCBNYXBMaXN0SXRlbX0gZnJvbSAnQGtlcGxlci5nbC9jbG91ZC1wcm92aWRlcnMnO1xuaW1wb3J0IHtEQVRBU0VUX0hBTkRMRVJTfSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbnR5cGUgQWN0aW9uUGF5bG9hZDxQPiA9IHtcbiAgdHlwZT86IHN0cmluZztcbiAgcGF5bG9hZDogUDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb3ZpZGVyU3RhdGUgPSB7XG4gIGlzUHJvdmlkZXJMb2FkaW5nOiBib29sZWFuO1xuICBpc0Nsb3VkTWFwTG9hZGluZzogYm9vbGVhbjtcbiAgcHJvdmlkZXJFcnJvcjogYW55O1xuICBjdXJyZW50UHJvdmlkZXI6IHN0cmluZyB8IG51bGw7XG4gIHN1Y2Nlc3NJbmZvOiBhbnk7XG4gIG1hcFNhdmVkOiBudWxsIHwgc3RyaW5nO1xuICBzYXZlZE1hcElkOiBudWxsIHwgc3RyaW5nO1xuICBpbml0aWFsU3RhdGU/OiBhbnk7XG4gIHZpc3VhbGl6YXRpb25zOiBNYXBMaXN0SXRlbVtdO1xufTtcblxuZXhwb3J0IGNvbnN0IElOSVRJQUxfUFJPVklERVJfU1RBVEU6IFByb3ZpZGVyU3RhdGUgPSB7XG4gIGlzUHJvdmlkZXJMb2FkaW5nOiBmYWxzZSxcbiAgaXNDbG91ZE1hcExvYWRpbmc6IGZhbHNlLFxuICBwcm92aWRlckVycm9yOiBudWxsLFxuICBjdXJyZW50UHJvdmlkZXI6IG51bGwsXG4gIHN1Y2Nlc3NJbmZvOiB7fSxcbiAgbWFwU2F2ZWQ6IG51bGwsXG4gIHNhdmVkTWFwSWQ6IG51bGwsXG4gIHZpc3VhbGl6YXRpb25zOiBbXVxufTtcblxuZnVuY3Rpb24gY3JlYXRlQWN0aW9uVGFzayhhY3Rpb24sIHBheWxvYWQpIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gQUNUSU9OX1RBU0soKS5tYXAoKCkgPT4gYWN0aW9uKHBheWxvYWQpKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBfdmFsaWRhdGVQcm92aWRlcihwcm92aWRlciwgbWV0aG9kKSB7XG4gIGlmICghcHJvdmlkZXIpIHtcbiAgICBDb25zb2xlLmVycm9yKGBwcm92aWRlciBpcyBub3QgZGVmaW5lZGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcHJvdmlkZXJbbWV0aG9kXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIENvbnNvbGUuZXJyb3IoYCR7bWV0aG9kfSBpcyBub3QgYSBmdW5jdGlvbiBvZiBDbG91ZCBwcm92aWRlcjogJHtwcm92aWRlci5uYW1lfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVHbG9iYWxOb3RpZmljYXRpb25UYXNrcyh7XG4gIHR5cGUsXG4gIG1lc3NhZ2UsXG4gIGRlbGF5Q2xvc2UgPSB0cnVlXG59OiB7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGVsYXlDbG9zZT86IGJvb2xlYW47XG59KSB7XG4gIGNvbnN0IGlkID0gZ2VuZXJhdGVIYXNoSWQoKTtcbiAgY29uc3Qgc3VjY2Vzc05vdGUgPSB7XG4gICAgaWQsXG4gICAgdHlwZTogREVGQVVMVF9OT1RJRklDQVRJT05fVFlQRVNbdHlwZSB8fCAnJ10gfHwgREVGQVVMVF9OT1RJRklDQVRJT05fVFlQRVMuc3VjY2VzcyxcbiAgICB0b3BpYzogREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTLmdsb2JhbCxcbiAgICBtZXNzYWdlXG4gIH07XG4gIGNvbnN0IHRhc2sgPSBBQ1RJT05fVEFTSygpLm1hcCgoKSA9PiBhZGROb3RpZmljYXRpb24oc3VjY2Vzc05vdGUpKTtcbiAgcmV0dXJuIGRlbGF5Q2xvc2UgPyBbdGFzaywgREVMQVlfVEFTSygzMDAwKS5tYXAoKCkgPT4gcmVtb3ZlTm90aWZpY2F0aW9uKGlkKSldIDogW3Rhc2tdO1xufVxuXG4vKipcbiAqIFRoaXMgbWV0aG9kIHdpbGwgZXhwb3J0IHRoZSBjdXJyZW50IGtlcGxlciBjb25maWcgZmlsZSB0byB0aGUgY2hvc2VuIGNsb3VkIHByb2RlclxuICogYWRkIHJldHVybnMgYSBzaGFyZSBVUkxcbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBleHBvcnRGaWxlVG9DbG91ZFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBQcm92aWRlclN0YXRlLFxuICBhY3Rpb246IEFjdGlvblBheWxvYWQ8RXhwb3J0RmlsZVRvQ2xvdWRQYXlsb2FkPlxuKTogUHJvdmlkZXJTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBEYXRhLCBwcm92aWRlciwgb3B0aW9ucyA9IHt9LCBvblN1Y2Nlc3MsIG9uRXJyb3IsIGNsb3NlTW9kYWx9ID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgaWYgKCFfdmFsaWRhdGVQcm92aWRlcihwcm92aWRlciwgJ3VwbG9hZE1hcCcpKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNQcm92aWRlckxvYWRpbmc6IHRydWUsXG4gICAgY3VycmVudFByb3ZpZGVyOiBwcm92aWRlci5uYW1lXG4gIH07XG5cbiAgLy8gcGF5bG9hZCBjYWxsZWQgYnkgcHJvdmlkZXIudXBsb2FkTWFwXG4gIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgbWFwRGF0YSxcbiAgICBvcHRpb25zXG4gIH07XG4gIGNvbnN0IHVwbG9hZEZpbGVUYXNrID0gRVhQT1JUX0ZJTEVfVE9fQ0xPVURfVEFTSyh7cHJvdmlkZXIsIHBheWxvYWR9KS5iaW1hcChcbiAgICAvLyBzdWNjZXNzXG4gICAgcmVzcG9uc2UgPT4gZXhwb3J0RmlsZVN1Y2Nlc3Moe3Jlc3BvbnNlLCBwcm92aWRlciwgb3B0aW9ucywgb25TdWNjZXNzLCBjbG9zZU1vZGFsfSksXG4gICAgLy8gZXJyb3JcbiAgICBlcnJvciA9PiBleHBvcnRGaWxlRXJyb3Ioe2Vycm9yLCBwcm92aWRlciwgb3B0aW9ucywgb25FcnJvcn0pXG4gICk7XG5cbiAgcmV0dXJuIHdpdGhUYXNrKG5ld1N0YXRlLCB1cGxvYWRGaWxlVGFzayk7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0RmlsZVN1Y2Nlc3NVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPFByb3ZpZGVyQWN0aW9ucy5FeHBvcnRGaWxlU3VjY2Vzc1BheWxvYWQ+XG4pOiBQcm92aWRlclN0YXRlID0+IHtcbiAgY29uc3Qge3Jlc3BvbnNlLCBwcm92aWRlciwgb3B0aW9ucyA9IHt9LCBvblN1Y2Nlc3MsIGNsb3NlTW9kYWx9ID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNQcm92aWRlckxvYWRpbmc6IGZhbHNlLFxuICAgIC8vIFRPRE86IGRvIHdlIGFsd2F5cyBoYXZlIHRvIHN0b3JlIHRoaXM/XG4gICAgc3VjY2Vzc0luZm86IHJlc3BvbnNlLFxuICAgIC4uLighb3B0aW9ucy5pc1B1YmxpY1xuICAgICAgPyB7XG4gICAgICAgICAgbWFwU2F2ZWQ6IHByb3ZpZGVyLm5hbWUsXG4gICAgICAgICAgc2F2ZWRNYXBJZDogcmVzcG9uc2U/LmluZm8/LmlkID8/IG51bGxcbiAgICAgICAgfVxuICAgICAgOiB7fSlcbiAgfTtcblxuICBjb25zdCB0YXNrcyA9IFtcbiAgICBjcmVhdGVBY3Rpb25UYXNrKG9uU3VjY2Vzcywge3Jlc3BvbnNlLCBwcm92aWRlciwgb3B0aW9uc30pLFxuICAgIGNsb3NlTW9kYWwgJiZcbiAgICAgIEFDVElPTl9UQVNLKCkubWFwKCgpID0+IHBvc3RTYXZlTG9hZFN1Y2Nlc3MoYE1hcCBzYXZlZCB0byAke3N0YXRlLmN1cnJlbnRQcm92aWRlcn0hYCkpXG4gIF0uZmlsdGVyKChkKTogZCBpcyBUYXNrRGVzY3JpcHRvciA9PiBCb29sZWFuKGQpKTtcblxuICByZXR1cm4gdGFza3MubGVuZ3RoID8gd2l0aFRhc2sobmV3U3RhdGUsIHRhc2tzKSA6IG5ld1N0YXRlO1xufTtcblxuLyoqXG4gKiBDbG9zZSBtb2RhbCBvbiBzdWNjZXNzIGFuZCBkaXNwbGF5IG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgY29uc3QgcG9zdFNhdmVMb2FkU3VjY2Vzc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBQcm92aWRlclN0YXRlLFxuICBhY3Rpb246IEFjdGlvblBheWxvYWQ8UHJvdmlkZXJBY3Rpb25zLlBvc3RTYXZlTG9hZFN1Y2Nlc3NQYXlsb2FkPlxuKTogUHJvdmlkZXJTdGF0ZSA9PiB7XG4gIGNvbnN0IG1lc3NhZ2UgPSBhY3Rpb24ucGF5bG9hZCB8fCBgU2F2ZWQgLyBMb2FkIHRvICR7c3RhdGUuY3VycmVudFByb3ZpZGVyfSBTdWNjZXNzYDtcblxuICBjb25zdCB0YXNrcyA9IFtcbiAgICBBQ1RJT05fVEFTSygpLm1hcCgoKSA9PiB0b2dnbGVNb2RhbChudWxsKSksXG4gICAgQUNUSU9OX1RBU0soKS5tYXAoKCkgPT4gcmVzZXRQcm92aWRlclN0YXR1cygpKSxcbiAgICAuLi5jcmVhdGVHbG9iYWxOb3RpZmljYXRpb25UYXNrcyh7bWVzc2FnZX0pXG4gIF07XG5cbiAgcmV0dXJuIHdpdGhUYXNrKHN0YXRlLCB0YXNrcyk7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0RmlsZUVycm9yVXBkYXRlciA9IChcbiAgc3RhdGU6IFByb3ZpZGVyU3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uUGF5bG9hZDxQcm92aWRlckFjdGlvbnMuRXhwb3J0RmlsZUVycm9yUGF5bG9hZD5cbik6IFByb3ZpZGVyU3RhdGUgPT4ge1xuICBjb25zdCB7ZXJyb3IsIHByb3ZpZGVyLCBvbkVycm9yfSA9IGFjdGlvbi5wYXlsb2FkO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGlzUHJvdmlkZXJMb2FkaW5nOiBmYWxzZVxuICB9O1xuXG4gIGlmIChpc0ZpbGVDb25mbGljdChlcnJvcikpIHtcbiAgICBuZXdTdGF0ZS5tYXBTYXZlZCA9IHByb3ZpZGVyLm5hbWU7XG4gICAgcmV0dXJuIHdpdGhUYXNrKG5ld1N0YXRlLCBbQUNUSU9OX1RBU0soKS5tYXAoKCkgPT4gdG9nZ2xlTW9kYWwoT1ZFUldSSVRFX01BUF9JRCkpXSk7XG4gIH1cblxuICBuZXdTdGF0ZS5wcm92aWRlckVycm9yID0gZ2V0RXJyb3IoZXJyb3IpO1xuICBjb25zdCB0YXNrID0gY3JlYXRlQWN0aW9uVGFzayhvbkVycm9yLCB7ZXJyb3IsIHByb3ZpZGVyfSk7XG5cbiAgcmV0dXJuIHRhc2sgPyB3aXRoVGFzayhuZXdTdGF0ZSwgdGFzaykgOiBuZXdTdGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2FkQ2xvdWRNYXBVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPFByb3ZpZGVyQWN0aW9ucy5Mb2FkQ2xvdWRNYXBQYXlsb2FkPlxuKTogUHJvdmlkZXJTdGF0ZSA9PiB7XG4gIGNvbnN0IHtsb2FkUGFyYW1zLCBwcm92aWRlciwgb25TdWNjZXNzLCBvbkVycm9yfSA9IGFjdGlvbi5wYXlsb2FkO1xuICBpZiAoIWxvYWRQYXJhbXMpIHtcbiAgICBDb25zb2xlLndhcm4oJ2xvYWQgbWFwIGVycm9yOiBsb2FkUGFyYW1zIGlzIHVuZGVmaW5lZCcpO1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICBpZiAoIV92YWxpZGF0ZVByb3ZpZGVyKHByb3ZpZGVyLCAnZG93bmxvYWRNYXAnKSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGlzUHJvdmlkZXJMb2FkaW5nOiB0cnVlLFxuICAgIGlzQ2xvdWRNYXBMb2FkaW5nOiB0cnVlXG4gIH07XG5cbiAgLy8gcGF5bG9hZCBjYWxsZWQgYnkgcHJvdmlkZXIuZG93bmxvYWRNYXBcbiAgY29uc3QgdXBsb2FkRmlsZVRhc2sgPSBMT0FEX0NMT1VEX01BUF9UQVNLKHtwcm92aWRlciwgcGF5bG9hZDogbG9hZFBhcmFtc30pLmJpbWFwKFxuICAgIC8vIHN1Y2Nlc3NcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcmVzcG9uc2UgPT4gbG9hZENsb3VkTWFwU3VjY2Vzcyh7cmVzcG9uc2UsIGxvYWRQYXJhbXMsIHByb3ZpZGVyLCBvblN1Y2Nlc3MsIG9uRXJyb3J9KSxcbiAgICAvLyBlcnJvclxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBlcnJvciA9PiBsb2FkQ2xvdWRNYXBFcnJvcih7ZXJyb3IsIHByb3ZpZGVyLCBvbkVycm9yfSlcbiAgKTtcblxuICByZXR1cm4gd2l0aFRhc2sobmV3U3RhdGUsIHVwbG9hZEZpbGVUYXNrKTtcbn07XG5cbmZ1bmN0aW9uIGlzRmlsZUNvbmZsaWN0KGVycm9yKSB7XG4gIHJldHVybiBlcnJvciAmJiBlcnJvci5tZXNzYWdlID09PSBGSUxFX0NPTkZMSUNUX01TRztcbn1cblxuZnVuY3Rpb24gY2hlY2tMb2FkTWFwUmVzcG9uc2VFcnJvcihyZXNwb25zZSkge1xuICBpZiAoIXJlc3BvbnNlIHx8ICFpc1BsYWluT2JqZWN0KHJlc3BvbnNlKSkge1xuICAgIHJldHVybiBuZXcgRXJyb3IoJ0xvYWQgbWFwIHJlc3BvbnNlIGlzIGVtcHR5Jyk7XG4gIH1cbiAgaWYgKCFpc1BsYWluT2JqZWN0KHJlc3BvbnNlLm1hcCkpIHtcbiAgICByZXR1cm4gbmV3IEVycm9yKGBMb2FkIG1hcCByZXNwb25zZSBzaG91bGQgYmUgYW4gb2JqZWN0IHByb3BlcnR5IFwibWFwXCJgKTtcbiAgfVxuICBpZiAoIXJlc3BvbnNlLm1hcC5kYXRhc2V0cyB8fCAhcmVzcG9uc2UubWFwLmNvbmZpZykge1xuICAgIHJldHVybiBuZXcgRXJyb3IoYExvYWQgbWFwIHJlc3BvbnNlLm1hcCBzaG91bGQgYmUgYW4gb2JqZWN0IHdpdGggcHJvcGVydHkgZGF0YXNldHMgb3IgY29uZmlnYCk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0RGF0YXNldEhhbmRsZXIoZm9ybWF0KSB7XG4gIGNvbnN0IGRlZmF1bHRIYW5kbGVyID0gREFUQVNFVF9IQU5ETEVSU1tEQVRBU0VUX0ZPUk1BVFMuY3N2XTtcbiAgaWYgKCFmb3JtYXQpIHtcbiAgICBDb25zb2xlLndhcm4oJ2Zvcm1hdCBpcyBub3QgcHJvdmlkZWQgaW4gbG9hZCBtYXAgcmVzcG9uc2UsIHdpbGwgdXNlIGNzdiBieSBkZWZhdWx0Jyk7XG4gICAgcmV0dXJuIGRlZmF1bHRIYW5kbGVyO1xuICB9XG5cbiAgLy8gdXNlIGN1c3RvbSBwcm9jZXNzb3JzIGZyb20gdGFibGUgY2xhc3NcbiAgY29uc3QgVGFibGVDbGFzcyA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkudGFibGUgPz8gS2VwbGVyVGFibGU7XG4gIGlmICh0eXBlb2YgVGFibGVDbGFzcy5nZXRGaWxlUHJvY2Vzc29yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgcHJvY2Vzc29yUmVzdWx0ID0gVGFibGVDbGFzcy5nZXRGaWxlUHJvY2Vzc29yKG51bGwsIGZvcm1hdCk7XG4gICAgaWYgKCFwcm9jZXNzb3JSZXN1bHQucHJvY2Vzc29yKSB7XG4gICAgICBDb25zb2xlLndhcm4oYE5vIHByb2Nlc3NvciBmb3VuZCBmb3IgZm9ybWF0ICR7Zm9ybWF0fSwgd2lsbCB1c2UgY3N2IGJ5IGRlZmF1bHRgKTtcbiAgICAgIHJldHVybiBkZWZhdWx0SGFuZGxlcjtcbiAgICB9XG4gICAgcmV0dXJuIHByb2Nlc3NvclJlc3VsdC5wcm9jZXNzb3I7XG4gIH1cblxuICBpZiAoIURBVEFTRVRfSEFORExFUlNbZm9ybWF0XSkge1xuICAgIGNvbnN0IHN1cHBvcnRlZEZvcm1hdCA9IE9iamVjdC5rZXlzKERBVEFTRVRfRk9STUFUUylcbiAgICAgIC5tYXAoayA9PiBgJyR7a30nYClcbiAgICAgIC5qb2luKCcsICcpO1xuICAgIENvbnNvbGUud2FybihcbiAgICAgIGB1bmtub3duIGZvcm1hdCAke2Zvcm1hdH0uIFBsZWFzZSB1c2Ugb25lIG9mICR7c3VwcG9ydGVkRm9ybWF0fSwgd2lsbCB1c2UgY3N2IGJ5IGRlZmF1bHRgXG4gICAgKTtcbiAgICByZXR1cm4gZGVmYXVsdEhhbmRsZXI7XG4gIH1cblxuICByZXR1cm4gREFUQVNFVF9IQU5ETEVSU1tmb3JtYXRdO1xufVxuXG4vKipcbiAqIEEgdGFzayB0byBoYW5kbGUgYXN5bmMgcHJvY2Vzc29yTWV0aG9kXG4gKiBAcGFyYW0gcGFyYW0wXG4gKiBAcmV0dXJuc1xuICovXG5hc3luYyBmdW5jdGlvbiBwYXJzZUxvYWRNYXBSZXNwb25zZVRhc2soe1xuICByZXNwb25zZSxcbiAgbG9hZFBhcmFtcyxcbiAgcHJvdmlkZXJcbn06IHtcbiAgcmVzcG9uc2U6IFByb3ZpZGVyQWN0aW9ucy5Mb2FkQ2xvdWRNYXBTdWNjZXNzUGF5bG9hZFsncmVzcG9uc2UnXTtcbiAgbG9hZFBhcmFtczogUHJvdmlkZXJBY3Rpb25zLkxvYWRDbG91ZE1hcFN1Y2Nlc3NQYXlsb2FkWydsb2FkUGFyYW1zJ107XG4gIHByb3ZpZGVyOiBQcm92aWRlckFjdGlvbnMuTG9hZENsb3VkTWFwU3VjY2Vzc1BheWxvYWRbJ3Byb3ZpZGVyJ107XG59KSB7XG4gIGNvbnN0IHttYXAsIGZvcm1hdH0gPSByZXNwb25zZTtcbiAgY29uc3QgcHJvY2Vzc29yTWV0aG9kID0gZ2V0RGF0YXNldEhhbmRsZXIoZm9ybWF0KTtcblxuICBsZXQgcGFyc2VkRGF0YXNldHM6IEFkZERhdGFUb01hcFBheWxvYWRbJ2RhdGFzZXRzJ10gPSBbXTtcblxuICBpZiAoXG4gICAgZm9ybWF0ID09PSBEQVRBU0VUX0ZPUk1BVFMua2VwbGVyZ2wgJiZcbiAgICBwcm9jZXNzb3JNZXRob2QgIT09IERBVEFTRVRfSEFORExFUlNbREFUQVNFVF9GT1JNQVRTLmtlcGxlcmdsXVxuICApIHtcbiAgICAvLyBwbHVnaW4gdGFibGUgcHJvdmlkZXMgcHJvY2Vzc29yIGZvciBrZXBsZXJnbCBtYXAsIG5vdCBzaW5nbGUgZGF0YXNldCB3aXRoIGFsbERhdGFcbiAgICBjb25zdCBwYXJzZWRNYXAgPSBhd2FpdCBwcm9jZXNzb3JNZXRob2QobWFwKTtcbiAgICBwYXJzZWREYXRhc2V0cyA9IHBhcnNlZE1hcC5kYXRhc2V0cztcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRvQXJyYXkobWFwLmRhdGFzZXRzKTtcbiAgICBwYXJzZWREYXRhc2V0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZGF0YXNldHMubWFwKGFzeW5jIGRzID0+IHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gREFUQVNFVF9GT1JNQVRTLmtlcGxlcmdsKSB7XG4gICAgICAgICAgLy8gbm8gbmVlZCB0byBvYnRhaW4gaWQsIGRpcmVjdGx5IHBhc3MgdGhlbSBpblxuICAgICAgICAgIHJldHVybiBhd2FpdCBwcm9jZXNzb3JNZXRob2QoZHMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZm8gPSAoZHMgJiYgZHMuaW5mbykgfHwge2lkOiBnZW5lcmF0ZUhhc2hJZCg2KX07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBwcm9jZXNzb3JNZXRob2QoZHMuZGF0YSB8fCBkcyk7XG4gICAgICAgIHJldHVybiB7aW5mbywgZGF0YX07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmZvID0ge1xuICAgIC4uLm1hcC5pbmZvLFxuICAgIHByb3ZpZGVyOiBwcm92aWRlci5uYW1lLFxuICAgIGxvYWRQYXJhbXNcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBkYXRhc2V0czogcGFyc2VkRGF0YXNldHMsXG4gICAgaW5mbyxcbiAgICAuLi4obWFwLmNvbmZpZyA/IHtjb25maWc6IG1hcC5jb25maWd9IDoge30pLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIC8vIGRvIG5vdCBjZW50ZXIgbWFwIHdoZW4gbG9hZGluZyBjbG91ZCBtYXBcbiAgICAgIGNlbnRlck1hcDogZmFsc2VcbiAgICB9XG4gIH07XG59XG5cbmNvbnN0IFBBUlNFX0xPQURfTUFQX1JFU1BPTlNFX1RBU0sgPSBUYXNrLmZyb21Qcm9taXNlKFxuICBwYXJzZUxvYWRNYXBSZXNwb25zZVRhc2ssXG4gICdQQVJTRV9MT0FEX01BUF9SRVNQT05TRV9UQVNLJ1xuKTtcblxuLyoqXG4gKiBVc2VkIHRvIGxvYWQgcmVzb3VyY2VzIHN0b3JlZCBpbiBhIHByaXZhdGUgc3RvcmFnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRDbG91ZE1hcFN1Y2Nlc3NVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPFByb3ZpZGVyQWN0aW9ucy5Mb2FkQ2xvdWRNYXBTdWNjZXNzUGF5bG9hZD5cbik6IFByb3ZpZGVyU3RhdGUgPT4ge1xuICBjb25zdCB7cmVzcG9uc2UsIGxvYWRQYXJhbXMsIHByb3ZpZGVyLCBvbkVycm9yfSA9IGFjdGlvbi5wYXlsb2FkO1xuXG4gIGNvbnN0IGZvcm1hdEVycm9yID0gY2hlY2tMb2FkTWFwUmVzcG9uc2VFcnJvcihyZXNwb25zZSk7XG4gIGlmIChmb3JtYXRFcnJvcikge1xuICAgIC8vIGlmIHJlc3BvbnNlIGZvcm1hdCBpcyBub3QgY29ycmVjdFxuICAgIHJldHVybiBleHBvcnRGaWxlRXJyb3JVcGRhdGVyKHN0YXRlLCB7XG4gICAgICBwYXlsb2FkOiB7ZXJyb3I6IGZvcm1hdEVycm9yLCBwcm92aWRlciwgb25FcnJvcn1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIHByb2Nlc3Nvck1ldGhvZCBjYW4gYmUgYXN5bmMgc28gY3JlYXRlIGEgdGFza1xuICBjb25zdCBwYXJzZUxvYWRNYXBSZXNwb25zZVRhc2sgPSBQQVJTRV9MT0FEX01BUF9SRVNQT05TRV9UQVNLKHtcbiAgICByZXNwb25zZSxcbiAgICBsb2FkUGFyYW1zLFxuICAgIHByb3ZpZGVyXG4gIH0pLmJpbWFwKFxuICAgIChkYXRhc2V0c1BheWxvYWQ6IEFkZERhdGFUb01hcFBheWxvYWQpID0+IHtcbiAgICAgIHJldHVybiBsb2FkQ2xvdWRNYXBTdWNjZXNzMih7Li4uYWN0aW9uLnBheWxvYWQsIGRhdGFzZXRzUGF5bG9hZH0pO1xuICAgIH0sXG4gICAgZXJyb3IgPT5cbiAgICAgIGV4cG9ydEZpbGVFcnJvclVwZGF0ZXIoc3RhdGUsIHtcbiAgICAgICAgcGF5bG9hZDoge2Vycm9yLCBwcm92aWRlciwgb25FcnJvcn1cbiAgICAgIH0pXG4gICk7XG5cbiAgcmV0dXJuIHdpdGhUYXNrKHN0YXRlLCBwYXJzZUxvYWRNYXBSZXNwb25zZVRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvYWRDbG91ZE1hcFN1Y2Nlc3MyVXBkYXRlciA9IChcbiAgc3RhdGU6IFByb3ZpZGVyU3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uUGF5bG9hZDxQcm92aWRlckFjdGlvbnMuTG9hZENsb3VkTWFwU3VjY2VzczJQYXlsb2FkPlxuKTogUHJvdmlkZXJTdGF0ZSA9PiB7XG4gIGNvbnN0IHtkYXRhc2V0c1BheWxvYWQsIHJlc3BvbnNlLCBsb2FkUGFyYW1zLCBwcm92aWRlciwgb25TdWNjZXNzfSA9IGFjdGlvbi5wYXlsb2FkO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1hcFNhdmVkOiBwcm92aWRlci5uYW1lLFxuICAgIGN1cnJlbnRQcm92aWRlcjogcHJvdmlkZXIubmFtZSxcbiAgICBpc0Nsb3VkTWFwTG9hZGluZzogZmFsc2UsXG4gICAgaXNQcm92aWRlckxvYWRpbmc6IGZhbHNlXG4gIH07XG5cbiAgY29uc3QgdGFza3MgPSBbXG4gICAgQUNUSU9OX1RBU0soKS5tYXAoKCkgPT4gYWRkRGF0YVRvTWFwKGRhdGFzZXRzUGF5bG9hZCkpLFxuICAgIGNyZWF0ZUFjdGlvblRhc2sob25TdWNjZXNzLCB7cmVzcG9uc2UsIGxvYWRQYXJhbXMsIHByb3ZpZGVyfSksXG4gICAgQUNUSU9OX1RBU0soKS5tYXAoKCkgPT4gcG9zdFNhdmVMb2FkU3VjY2VzcyhgTWFwIGZyb20gJHtwcm92aWRlci5uYW1lfSBsb2FkZWRgKSlcbiAgXS5maWx0ZXIoKGQpOiBkIGlzIFRhc2tEZXNjcmlwdG9yID0+IEJvb2xlYW4oZCkpO1xuXG4gIHJldHVybiB0YXNrcy5sZW5ndGggPyB3aXRoVGFzayhuZXdTdGF0ZSwgdGFza3MpIDogbmV3U3RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgbG9hZENsb3VkTWFwRXJyb3JVcGRhdGVyID0gKFxuICBzdGF0ZTogUHJvdmlkZXJTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25QYXlsb2FkPFByb3ZpZGVyQWN0aW9ucy5Mb2FkQ2xvdWRNYXBFcnJvclBheWxvYWQ+XG4pOiBQcm92aWRlclN0YXRlID0+IHtcbiAgY29uc3QgbWVzc2FnZSA9IGdldEVycm9yKGFjdGlvbi5wYXlsb2FkLmVycm9yKSB8fCBgRXJyb3IgbG9hZGluZyBzYXZlZCBtYXBgO1xuXG4gIENvbnNvbGUud2FybihtZXNzYWdlKTtcblxuICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpc1Byb3ZpZGVyTG9hZGluZzogZmFsc2UsXG4gICAgaXNDbG91ZE1hcExvYWRpbmc6IGZhbHNlLFxuICAgIHByb3ZpZGVyRXJyb3I6IG51bGxcbiAgfTtcblxuICByZXR1cm4gd2l0aFRhc2soXG4gICAgbmV3U3RhdGUsXG4gICAgY3JlYXRlR2xvYmFsTm90aWZpY2F0aW9uVGFza3Moe3R5cGU6ICdlcnJvcicsIG1lc3NhZ2UsIGRlbGF5Q2xvc2U6IGZhbHNlfSlcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldFByb3ZpZGVyU3RhdHVzVXBkYXRlciA9IChzdGF0ZTogUHJvdmlkZXJTdGF0ZSk6IFByb3ZpZGVyU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGlzUHJvdmlkZXJMb2FkaW5nOiBmYWxzZSxcbiAgcHJvdmlkZXJFcnJvcjogbnVsbCxcbiAgaXNDbG91ZE1hcExvYWRpbmc6IGZhbHNlLFxuICBzdWNjZXNzSW5mbzoge31cbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLElBQUksSUFBR0MsUUFBUSxRQUFPLGtCQUFrQjtBQUUvQyxPQUFPQyxPQUFPLE1BQU0sZ0JBQWdCO0FBQ3BDLFNBQVFDLG9CQUFvQixFQUFFQyxRQUFRLEVBQUVDLGFBQWEsUUFBTyxrQkFBa0I7QUFDOUUsU0FBUUMsY0FBYyxFQUFFQyxPQUFPLFFBQU8seUJBQXlCO0FBQy9E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
package/dist/esm/root.js CHANGED
@@ -182,7 +182,7 @@ function decorate(target) {
182
182
  * @example
183
183
  * import keplerGlReducer from '@kepler.gl/reducers';
184
184
  * import {createStore, combineReducers, applyMiddleware, compose} from 'redux';
185
- * import {taskMiddleware} from 'react-palm/tasks';
185
+ * import {taskMiddleware} from '@kepler.gl/tasks';
186
186
  *
187
187
  * const initialState = {};
188
188
  * const reducers = combineReducers({
@@ -198,4 +198,4 @@ function decorate(target) {
198
198
  */
199
199
  var keplerGlReducer = decorate(_keplerGlReducer);
200
200
  export default keplerGlReducer;
201
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25UeXBlcyIsImtlcGxlckdsSW5pdCIsIl9hY3Rpb25Gb3IiLCJfdXBkYXRlUHJvcGVydHkiLCJoYW5kbGVBY3Rpb25zIiwiY29yZVJlZHVjZXJGYWN0b3J5IiwiaW5pdGlhbENvcmVTdGF0ZSIsInByb3ZpZGVJbml0aWFsU3RhdGUiLCJpbml0aWFsU3RhdGUiLCJleHRyYVJlZHVjZXJzIiwiY29yZVJlZHVjZXIiLCJoYW5kbGVSZWdpc3RlckVudHJ5Iiwic3RhdGUiLCJfcmVmIiwiX3JlZiRwYXlsb2FkIiwicGF5bG9hZCIsImlkIiwibWludCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJpbml0aWFsVWlTdGF0ZSIsInByZXZpb3VzU3RhdGUiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlRGVsZXRlRW50cnkiLCJfcmVmMiIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJhY2N1IiwiY3VyciIsImhhbmRsZVJlbmFtZUVudHJ5IiwiX3JlZjQiLCJfcmVmNCRwYXlsb2FkIiwib2xkSWQiLCJuZXdJZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFjdGlvbiIsImZvckVhY2giLCJ1cGRhdGVJdGVtU3RhdGUiLCJoYW5kbGVycyIsIlJFR0lTVEVSX0VOVFJZIiwiREVMRVRFX0VOVFJZIiwiUkVOQU1FX0VOVFJZIiwiX2tlcGxlckdsUmVkdWNlciIsIm1lcmdlSW5pdGlhbFN0YXRlIiwic2F2ZWQiLCJwcm92aWRlZCIsImV4dHJhSW5pdGlhbFN0YXRlS2V5cyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5ld1N0YXRlIiwia2V5IiwiZGVjb3JhdGUiLCJ0YXJnZXQiLCJzYXZlZEluaXRpYWxTdGF0ZSIsInRhcmdldEluaXRpYWxTdGF0ZSIsInBsdWdpbiIsImN1c3RvbVJlZHVjZXIiLCJvcHRpb25zIiwiX3RoaXMiLCJfdHlwZW9mIiwiX29wdGlvbnMkb3ZlcnJpZGUiLCJuZXh0U3RhdGUiLCJ0eXBlIiwib3ZlcnJpZGUiLCJpbmlTdCIsIm1lcmdlZCIsInRhcmdldFJlZHVjZXIiLCJrZXBsZXJHbFJlZHVjZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICBBY3Rpb25UeXBlcyxcbiAga2VwbGVyR2xJbml0LFxuICBfYWN0aW9uRm9yLFxuICBfdXBkYXRlUHJvcGVydHksXG4gIFJlZ2lzdGVyRW50cnlVcGRhdGVyQWN0aW9uLFxuICBSZW5hbWVFbnRyeVVwZGF0ZXJBY3Rpb25cbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7aGFuZGxlQWN0aW9uc30gZnJvbSAncmVkdXgtYWN0aW9ucyc7XG5cbmltcG9ydCB7Y29yZVJlZHVjZXJGYWN0b3J5LCBLZXBsZXJHbFN0YXRlfSBmcm9tICcuL2NvcmUnO1xuXG50eXBlIEtlcGxlckdsU3RhdGVNYXAgPSB7XG4gIFtpZDogc3RyaW5nXTogUGFydGlhbDxLZXBsZXJHbFN0YXRlPjtcbn07XG5cbnR5cGUgQ29tYmluZVJlZ2lzdGVyVXBkYXRlQWN0aW9ucyA9IFJlZ2lzdGVyRW50cnlVcGRhdGVyQWN0aW9uWydwYXlsb2FkJ10gJlxuICBSZW5hbWVFbnRyeVVwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXTsgLy8gRXh0ZW5kIHRoaXMgdHlwZSB3aXRoIGFkZGl0aW9uYWwgYWN0aW9ucyB0byBlbmZvcmNlIHN0cmljdCB0eXBpbmdzXG5cbi8vIElOSVRJQUxfU1RBVEVcbmNvbnN0IGluaXRpYWxDb3JlU3RhdGUgPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJbml0aWFsU3RhdGUoaW5pdGlhbFN0YXRlLCBleHRyYVJlZHVjZXJzPykge1xuICBjb25zdCBjb3JlUmVkdWNlciA9IGNvcmVSZWR1Y2VyRmFjdG9yeShpbml0aWFsU3RhdGUsIGV4dHJhUmVkdWNlcnMpO1xuXG4gIGNvbnN0IGhhbmRsZVJlZ2lzdGVyRW50cnkgPSAoXG4gICAgc3RhdGU6IEtlcGxlckdsU3RhdGVNYXAsXG4gICAge1xuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBpZCxcbiAgICAgICAgbWludCxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQsXG4gICAgICAgIGluaXRpYWxVaVN0YXRlXG4gICAgICB9XG4gICAgfToge1xuICAgICAgcGF5bG9hZDogUmVnaXN0ZXJFbnRyeVVwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXTtcbiAgICB9XG4gICk6IEtlcGxlckdsU3RhdGVNYXAgPT4ge1xuICAgIC8vIGJ5IGRlZmF1bHQsIGFsd2F5cyBjcmVhdGUgYSBtaW50IHN0YXRlIGV2ZW4gaWYgdGhlIHNhbWUgaWQgYWxyZWFkeSBleGlzdFxuICAgIC8vIGlmIHN0YXRlLmlkIGV4aXN0IGFuZCBtaW50PWZhbHNlLCBrZWVwIHRoZSBleGlzdGluZyBzdGF0ZVxuICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBzdGF0ZVtpZF0gJiYgbWludCA9PT0gZmFsc2UgPyBzdGF0ZVtpZF0gOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLy8gcmVnaXN0ZXIgZW50cnkgdG8ga2VwbGVyLmdsIHBhc3NpbmcgaW4gbWFwYm94IGNvbmZpZyB0byBtYXBTdHlsZVxuICAgICAgLi4uc3RhdGUsXG4gICAgICBbaWRdOiBjb3JlUmVkdWNlcihcbiAgICAgICAgcHJldmlvdXNTdGF0ZSxcbiAgICAgICAga2VwbGVyR2xJbml0KHttYXBib3hBcGlBY2Nlc3NUb2tlbiwgbWFwYm94QXBpVXJsLCBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCwgaW5pdGlhbFVpU3RhdGV9KVxuICAgICAgKVxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlRW50cnkgPSAoXG4gICAgc3RhdGU6IEtlcGxlckdsU3RhdGVNYXAsXG4gICAge3BheWxvYWQ6IHtpZH19OiB7cGF5bG9hZDoge2lkOiBzdHJpbmd9fVxuICApOiBLZXBsZXJHbFN0YXRlTWFwID0+XG4gICAgT2JqZWN0LmtleXMoc3RhdGUpLnJlZHVjZShcbiAgICAgIChhY2N1LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICAuLi4oY3VyciA9PT0gaWQgPyB7fSA6IHtbY3Vycl06IHN0YXRlW2N1cnJdfSlcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gIGNvbnN0IGhhbmRsZVJlbmFtZUVudHJ5ID0gKFxuICAgIHN0YXRlOiBLZXBsZXJHbFN0YXRlTWFwLFxuICAgIHtcbiAgICAgIHBheWxvYWQ6IHtvbGRJZCwgbmV3SWR9XG4gICAgfToge1xuICAgICAgcGF5bG9hZDogUmVuYW1lRW50cnlVcGRhdGVyQWN0aW9uWydwYXlsb2FkJ107XG4gICAgfVxuICApOiBLZXBsZXJHbFN0YXRlTWFwID0+XG4gICAgT2JqZWN0LmtleXMoc3RhdGUpLnJlZHVjZShcbiAgICAgIChhY2N1LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICAuLi57W2N1cnIgPT09IG9sZElkID8gbmV3SWQgOiBjdXJyXTogc3RhdGVbY3Vycl19XG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICByZXR1cm4gKHN0YXRlID0gaW5pdGlhbENvcmVTdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgLy8gdXBkYXRlIGNoaWxkIHN0YXRlc1xuICAgIE9iamVjdC5rZXlzKHN0YXRlKS5mb3JFYWNoKGlkID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZUl0ZW1TdGF0ZSA9IGNvcmVSZWR1Y2VyKHN0YXRlW2lkXSwgX2FjdGlvbkZvcihpZCwgYWN0aW9uKSk7XG4gICAgICBzdGF0ZSA9IF91cGRhdGVQcm9wZXJ0eShzdGF0ZSwgaWQsIHVwZGF0ZUl0ZW1TdGF0ZSk7XG4gICAgfSk7XG5cbiAgICAvLyBwZXJmb3JtIGFkZGl0aW9uYWwgc3RhdGUgcmVkdWNpbmcgKGUuZy4gc3dpdGNoIGFjdGlvbi50eXBlIGV0Yy4uLilcbiAgICBjb25zdCBoYW5kbGVycyA9IHtcbiAgICAgIFtBY3Rpb25UeXBlcy5SRUdJU1RFUl9FTlRSWV06IGhhbmRsZVJlZ2lzdGVyRW50cnksXG4gICAgICBbQWN0aW9uVHlwZXMuREVMRVRFX0VOVFJZXTogaGFuZGxlRGVsZXRlRW50cnksXG4gICAgICBbQWN0aW9uVHlwZXMuUkVOQU1FX0VOVFJZXTogaGFuZGxlUmVuYW1lRW50cnlcbiAgICB9O1xuXG4gICAgcmV0dXJuIGhhbmRsZUFjdGlvbnM8S2VwbGVyR2xTdGF0ZU1hcCwgQ29tYmluZVJlZ2lzdGVyVXBkYXRlQWN0aW9ucz4oXG4gICAgICBoYW5kbGVycyxcbiAgICAgIGluaXRpYWxDb3JlU3RhdGVcbiAgICApKHN0YXRlLCBhY3Rpb24pO1xuICB9O1xufVxuXG5jb25zdCBfa2VwbGVyR2xSZWR1Y2VyID0gcHJvdmlkZUluaXRpYWxTdGF0ZShpbml0aWFsQ29yZVN0YXRlKTtcblxuZnVuY3Rpb24gbWVyZ2VJbml0aWFsU3RhdGUoc2F2ZWQgPSB7fSwgcHJvdmlkZWQgPSB7fSwgZXh0cmFJbml0aWFsU3RhdGVLZXlzOiBzdHJpbmdbXSA9IFtdKSB7XG4gIGNvbnN0IGtleXMgPSBbJ21hcFN0YXRlJywgJ21hcFN0eWxlJywgJ3Zpc1N0YXRlJywgJ3VpU3RhdGUnLCAuLi5leHRyYUluaXRpYWxTdGF0ZUtleXNdO1xuXG4gIC8vIHNoYWxsb3cgbWVyZ2UgZWFjaCByZWR1Y2VyXG4gIGNvbnN0IG5ld1N0YXRlID0ga2V5cy5yZWR1Y2UoXG4gICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICAuLi4oc2F2ZWRba2V5XSAmJiBwcm92aWRlZFtrZXldXG4gICAgICAgID8ge1trZXldOiB7Li4uc2F2ZWRba2V5XSwgLi4ucHJvdmlkZWRba2V5XX19XG4gICAgICAgIDoge1trZXldOiBzYXZlZFtrZXldIHx8IHByb3ZpZGVkW2tleV0gfHwge319KVxuICAgIH0pLFxuICAgIHt9XG4gICk7XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZSh0YXJnZXQsIHNhdmVkSW5pdGlhbFN0YXRlID0ge30pIHtcbiAgY29uc3QgdGFyZ2V0SW5pdGlhbFN0YXRlID0gc2F2ZWRJbml0aWFsU3RhdGU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBrZXBsZXIuZ2wgcmVkdWNlciB0aGF0IHdpbGwgYWxzbyBwYXNzIGVhY2ggYWN0aW9uIHRocm91Z2ggYWRkaXRpb25hbCByZWR1Y2VycyBzcGllY2lmaWVkLlxuICAgKiBUaGUgcGFyYW1ldGVyIHNob3VsZCBiZSBlaXRoZXIgYSByZWR1Y2VyIG1hcCBvciBhIHJlZHVjZXIgZnVuY3Rpb24uXG4gICAqIFRoZSBzdGF0ZSBwYXNzZWQgaW50byB0aGUgYWRkaXRpb25hbCBhY3Rpb24gaGFuZGxlciBpcyB0aGUgaW5zdGFuY2Ugc3RhdGUuXG4gICAqIEl0IHdpbGwgaW5jbHVkZSBhbGwgdGhlIHN1YnJlZHVjZXJzIGB2aXNTdGF0ZWAsIGB1aVN0YXRlYCwgYG1hcFN0YXRlYCBhbmQgYG1hcFN0eWxlYC5cbiAgICogYC5wbHVnaW5gIGlzIG9ubHkgbWVhbnQgdG8gYmUgY2FsbGVkIG9uY2Ugd2hlbiBtb3VudGluZyB0aGUga2VwbGVyR2xSZWR1Y2VyIHRvIHRoZSBzdG9yZS5cbiAgICogKipOb3RlKiogVGhpcyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gdG8gZ2l2ZSB5b3UgbW9yZSBmcmVlZG9tIHRvIG1vZGlmeSB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIGtlcGxlci5nbCBpbnN0YW5jZS5cbiAgICogWW91IHNob3VsZCBvbmx5IHVzZSB0aGlzIHRvIGFkZGluZyBhZGRpdGlvbmFsIGFjdGlvbnMgaW5zdGVhZCBvZiByZXBsYWNpbmcgZGVmYXVsdCBhY3Rpb25zLlxuICAgKlxuICAgKiBAbWl4aW4ga2VwbGVyR2xSZWR1Y2VyLnBsdWdpblxuICAgKiBAbWVtYmVyb2Yga2VwbGVyR2xSZWR1Y2VyXG4gICAqIEBwYXJhbSB7T2JqZWN0fEZ1bmN0aW9ufSBjdXN0b21SZWR1Y2VyIC0gQSByZWR1Y2VyIG1hcCBvciBhIHJlZHVjZXJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRvIGJlIGFwcGxpZWQgdG8gY3VzdG9tIHJlZHVjZXIgbG9naWNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMub3ZlcnJpZGUgLSBvYmplY3RzIHRoYXQgZGVzY3JpYmUgd2hpY2ggYWN0aW9uIHRvIG92ZXJyaWRlLCBlLmcuIHtbQWN0aW9uVHlwZXMuTEFZRVJfVFlQRV9DSEFOR0VdOiB0cnVlfVxuICAgKiBAcHVibGljXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IG15S2VwbGVyR2xSZWR1Y2VyID0ga2VwbGVyR2xSZWR1Y2VyXG4gICAqICAucGx1Z2luKHtcbiAgICogICAgLy8gMS4gYXMgcmVkdWNlciBtYXBcbiAgICogICAgSElERV9BTkRfU0hPV19TSURFX1BBTkVMOiAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICogICAgICAuLi5zdGF0ZSxcbiAgICogICAgICB1aVN0YXRlOiB7XG4gICAqICAgICAgICAuLi5zdGF0ZS51aVN0YXRlLFxuICAgKiAgICAgICAgcmVhZE9ubHk6ICFzdGF0ZS51aVN0YXRlLnJlYWRPbmx5XG4gICAqICAgICAgfVxuICAgKiAgICB9KVxuICAgKiAgfSlcbiAgICogLnBsdWdpbihoYW5kbGVBY3Rpb25zKHtcbiAgICogICAvLyAyLiBhcyByZWR1Y2VyXG4gICAqICAgJ0hJREVfTUFQX0NPTlRST0xTJzogKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAqICAgICAuLi5zdGF0ZSxcbiAgICogICAgIHVpU3RhdGU6IHtcbiAgICogICAgICAgLi4uc3RhdGUudWlTdGF0ZSxcbiAgICogICAgICAgbWFwQ29udHJvbHM6IGhpZGRlbk1hcENvbnRyb2xcbiAgICogICAgIH1cbiAgICogICB9KVxuICAgKiB9LCB7fSkpO1xuICAgKi9cbiAgdGFyZ2V0LnBsdWdpbiA9IGZ1bmN0aW9uIHBsdWdpbihjdXN0b21SZWR1Y2VyLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBjdXN0b21SZWR1Y2VyID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gaWYgb25seSBwcm92aWRlZCBhIHJlZHVjZXJNYXAsIHdyYXAgaXQgaW4gYSByZWR1Y2VyXG4gICAgICBjdXN0b21SZWR1Y2VyID0gaGFuZGxlQWN0aW9ucyhjdXN0b21SZWR1Y2VyLCB7fSk7XG4gICAgfVxuXG4gICAgLy8gdXNlICdmdW5jdGlvbicga2V5d29yZCB0byBlbmFibGUgJ3RoaXMnXG4gICAgLy8gVE9ETzogdGVtcG9yYXJpbHkgbWFraW5nIGFjdGlvbiB0eXBlIHRvIGFueSwgd2lsbCBmaXggdGhhdCBieSBjcmVhdGluZyBhIHNoYXJlZCBhY3Rpb24gaW50ZXJmYWNlXG4gICAgcmV0dXJuIGRlY29yYXRlKChzdGF0ZSA9IHt9LCBhY3Rpb246IGFueSA9IHt9KSA9PiB7XG4gICAgICBsZXQgbmV4dFN0YXRlID0gc3RhdGU7XG4gICAgICBpZiAoYWN0aW9uLnR5cGUgJiYgIW9wdGlvbnM/Lm92ZXJyaWRlPy5bYWN0aW9uLnR5cGVdKSB7XG4gICAgICAgIG5leHRTdGF0ZSA9IHRoaXMoc3RhdGUsIGFjdGlvbik7XG4gICAgICB9XG5cbiAgICAgIC8vIGZvciBlYWNoIGVudHJ5IGluIHRoZSBzdGF0ZW5cbiAgICAgIE9iamVjdC5rZXlzKG5leHRTdGF0ZSkuZm9yRWFjaChpZCA9PiB7XG4gICAgICAgIC8vIHVwZGF0ZSBjaGlsZCBzdGF0ZXNcbiAgICAgICAgbmV4dFN0YXRlID0gX3VwZGF0ZVByb3BlcnR5KFxuICAgICAgICAgIG5leHRTdGF0ZSxcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjdXN0b21SZWR1Y2VyKG5leHRTdGF0ZVtpZF0sIF9hY3Rpb25Gb3IoaWQsIGFjdGlvbikpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXh0U3RhdGU7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHJlZHVjZXIgdGhhdCBpbml0aWF0ZWQgd2l0aCBjdXN0b20gaW5pdGlhbCBzdGF0ZS5cbiAgICogVGhlIHBhcmFtZXRlciBzaG91bGQgYmUgYW4gb2JqZWN0IG1hcHBpbmcgZnJvbSBgc3VicmVkdWNlcmAgbmFtZSB0byBjdXN0b20gc3VicmVkdWNlciBzdGF0ZSxcbiAgICogd2hpY2ggd2lsbCBiZSBzaGFsbG93ICoqbWVyZ2VkKiogd2l0aCBkZWZhdWx0IGluaXRpYWwgc3RhdGUuXG4gICAqXG4gICAqIERlZmF1bHQgc3VicmVkdWNlciBzdGF0ZTpcbiAgICogIC0gW2B2aXNTdGF0ZWBdKC4vdmlzLXN0YXRlLm1kI0lOSVRJQUxfVklTX1NUQVRFKVxuICAgKiAgLSBbYG1hcFN0YXRlYF0oLi9tYXAtc3RhdGUubWQjSU5JVElBTF9NQVBfU1RBVEUpXG4gICAqICAtIFtgbWFwU3R5bGVgXSguL21hcC1zdHlsZS5tZCNJTklUSUFMX01BUF9TVFlMRSlcbiAgICogIC0gW2B1aVN0YXRlYF0oLi91aS1zdGF0ZS5tZCNJTklUSUFMX1VJX1NUQVRFKVxuICAgKiBAbWl4aW4ga2VwbGVyR2xSZWR1Y2VyLmluaXRpYWxTdGF0ZVxuICAgKiBAbWVtYmVyb2Yga2VwbGVyR2xSZWR1Y2VyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpbmlTdCAtIGN1c3RvbSBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBkZWZhdWx0IGluaXRpYWwgc3RhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGV4dHJhUmVkdWNlcnMgLSBvcHRpb25hbCBjdXN0b20gcmVkdWNlcnMgaW4gYWRkaXRpb24gdG8gdGhlIGRlZmF1bHQgYHZpc1N0YXRlYCwgYG1hcFN0YXRlYCwgYG1hcFN0eWxlYCwgYW5kIGB1aVN0YXRlYFxuICAgKiBAcHVibGljXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IG15S2VwbGVyR2xSZWR1Y2VyID0ga2VwbGVyR2xSZWR1Y2VyXG4gICAqICAuaW5pdGlhbFN0YXRlKHtcbiAgICogICAgdWlTdGF0ZToge3JlYWRPbmx5OiB0cnVlfVxuICAgKiAgfSk7XG4gICAqL1xuICB0YXJnZXQuaW5pdGlhbFN0YXRlID0gZnVuY3Rpb24gaW5pdGlhbFN0YXRlKGluaVN0LCBleHRyYVJlZHVjZXJzID0ge30pIHtcbiAgICAvLyBwYXNzaW5nIHRocm91Z2ggZXh0cmFJbml0aWFsU3RhdGVLZXlzIGFuZCBleHRyYVJlZHVjZXJzIGFsbG93cyBleHRlcm5hbCBjdXN0b21pemF0aW9uIGJ5IGFkZGluZyBhZGRpdGlvbmFsIHN1YnJlZHVjZXJzIGFuZCBzdGF0ZSBiZXlvbmQgdGhlIGRlZmF1bHQgYHZpc1N0YXRlYCwgYG1hcFN0YXRlYCwgYG1hcFN0eWxlYCwgYW5kIGB1aVN0YXRlYFxuICAgIGNvbnN0IGV4dHJhSW5pdGlhbFN0YXRlS2V5cyA9IE9iamVjdC5rZXlzKGV4dHJhUmVkdWNlcnMpO1xuICAgIGNvbnN0IG1lcmdlZCA9IG1lcmdlSW5pdGlhbFN0YXRlKHRhcmdldEluaXRpYWxTdGF0ZSwgaW5pU3QsIGV4dHJhSW5pdGlhbFN0YXRlS2V5cyk7XG4gICAgY29uc3QgdGFyZ2V0UmVkdWNlciA9IHByb3ZpZGVJbml0aWFsU3RhdGUobWVyZ2VkLCBleHRyYVJlZHVjZXJzKTtcblxuICAgIHJldHVybiBkZWNvcmF0ZSh0YXJnZXRSZWR1Y2VyLCBtZXJnZWQpO1xuICB9O1xuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbi8qKlxuICogS2VwbGVyLmdsIHJlZHVjZXIgdG8gYmUgbW91bnRlZCB0byB5b3VyIHN0b3JlLiBZb3UgY2FuIG1vdW50IGBrZXBsZXJHbFJlZHVjZXJgIGF0IHByb3BlcnR5IGBrZXBsZXJHbGAsIGlmIHlvdSBjaG9vc2VcbiAqIHRvIG1vdW50IGl0IGF0IGFub3RoZXIgYWRkcmVzcyBlLmcuIGBmb29gIHlvdSB3aWxsIG5lZWQgdG8gc3BlY2lmeSBpdCB3aGVuIHlvdSBtb3VudCBgS2VwbGVyR2xgIGNvbXBvbmVudCBpbiB5b3VyIGFwcCB3aXRoIGBnZXRTdGF0ZTogc3RhdGUgPT4gc3RhdGUuZm9vYFxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIgZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiBpbXBvcnQge2NyZWF0ZVN0b3JlLCBjb21iaW5lUmVkdWNlcnMsIGFwcGx5TWlkZGxld2FyZSwgY29tcG9zZX0gZnJvbSAncmVkdXgnO1xuICogaW1wb3J0IHt0YXNrTWlkZGxld2FyZX0gZnJvbSAncmVhY3QtcGFsbS90YXNrcyc7XG4gKlxuICogY29uc3QgaW5pdGlhbFN0YXRlID0ge307XG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAgIC8vIDwtLSBtb3VudCBrZXBsZXIuZ2wgcmVkdWNlciBpbiB5b3VyIGFwcFxuICogICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICpcbiAqICAgLy8gWW91ciBvdGhlciByZWR1Y2VycyBoZXJlXG4gKiAgIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogLy8gdXNpbmcgY3JlYXRlU3RvcmVcbiAqIGV4cG9ydCBkZWZhdWx0IGNyZWF0ZVN0b3JlKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgYXBwbHlNaWRkbGV3YXJlKHRhc2tNaWRkbGV3YXJlKSk7XG4gKi9cbmNvbnN0IGtlcGxlckdsUmVkdWNlciA9IGRlY29yYXRlKF9rZXBsZXJHbFJlZHVjZXIpO1xuZXhwb3J0IGRlZmF1bHQga2VwbGVyR2xSZWR1Y2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsU0FDRUEsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFVBQVUsRUFDVkMsZUFBZSxRQUdWLG9CQUFvQjtBQUMzQixTQUFRQyxhQUFhLFFBQU8sZUFBZTtBQUUzQyxTQUFRQyxrQkFBa0IsUUFBc0IsUUFBUTtBQU9q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
201
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25UeXBlcyIsImtlcGxlckdsSW5pdCIsIl9hY3Rpb25Gb3IiLCJfdXBkYXRlUHJvcGVydHkiLCJoYW5kbGVBY3Rpb25zIiwiY29yZVJlZHVjZXJGYWN0b3J5IiwiaW5pdGlhbENvcmVTdGF0ZSIsInByb3ZpZGVJbml0aWFsU3RhdGUiLCJpbml0aWFsU3RhdGUiLCJleHRyYVJlZHVjZXJzIiwiY29yZVJlZHVjZXIiLCJoYW5kbGVSZWdpc3RlckVudHJ5Iiwic3RhdGUiLCJfcmVmIiwiX3JlZiRwYXlsb2FkIiwicGF5bG9hZCIsImlkIiwibWludCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJpbml0aWFsVWlTdGF0ZSIsInByZXZpb3VzU3RhdGUiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlRGVsZXRlRW50cnkiLCJfcmVmMiIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJhY2N1IiwiY3VyciIsImhhbmRsZVJlbmFtZUVudHJ5IiwiX3JlZjQiLCJfcmVmNCRwYXlsb2FkIiwib2xkSWQiLCJuZXdJZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFjdGlvbiIsImZvckVhY2giLCJ1cGRhdGVJdGVtU3RhdGUiLCJoYW5kbGVycyIsIlJFR0lTVEVSX0VOVFJZIiwiREVMRVRFX0VOVFJZIiwiUkVOQU1FX0VOVFJZIiwiX2tlcGxlckdsUmVkdWNlciIsIm1lcmdlSW5pdGlhbFN0YXRlIiwic2F2ZWQiLCJwcm92aWRlZCIsImV4dHJhSW5pdGlhbFN0YXRlS2V5cyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5ld1N0YXRlIiwia2V5IiwiZGVjb3JhdGUiLCJ0YXJnZXQiLCJzYXZlZEluaXRpYWxTdGF0ZSIsInRhcmdldEluaXRpYWxTdGF0ZSIsInBsdWdpbiIsImN1c3RvbVJlZHVjZXIiLCJvcHRpb25zIiwiX3RoaXMiLCJfdHlwZW9mIiwiX29wdGlvbnMkb3ZlcnJpZGUiLCJuZXh0U3RhdGUiLCJ0eXBlIiwib3ZlcnJpZGUiLCJpbmlTdCIsIm1lcmdlZCIsInRhcmdldFJlZHVjZXIiLCJrZXBsZXJHbFJlZHVjZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICBBY3Rpb25UeXBlcyxcbiAga2VwbGVyR2xJbml0LFxuICBfYWN0aW9uRm9yLFxuICBfdXBkYXRlUHJvcGVydHksXG4gIFJlZ2lzdGVyRW50cnlVcGRhdGVyQWN0aW9uLFxuICBSZW5hbWVFbnRyeVVwZGF0ZXJBY3Rpb25cbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7aGFuZGxlQWN0aW9uc30gZnJvbSAncmVkdXgtYWN0aW9ucyc7XG5cbmltcG9ydCB7Y29yZVJlZHVjZXJGYWN0b3J5LCBLZXBsZXJHbFN0YXRlfSBmcm9tICcuL2NvcmUnO1xuXG50eXBlIEtlcGxlckdsU3RhdGVNYXAgPSB7XG4gIFtpZDogc3RyaW5nXTogUGFydGlhbDxLZXBsZXJHbFN0YXRlPjtcbn07XG5cbnR5cGUgQ29tYmluZVJlZ2lzdGVyVXBkYXRlQWN0aW9ucyA9IFJlZ2lzdGVyRW50cnlVcGRhdGVyQWN0aW9uWydwYXlsb2FkJ10gJlxuICBSZW5hbWVFbnRyeVVwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXTsgLy8gRXh0ZW5kIHRoaXMgdHlwZSB3aXRoIGFkZGl0aW9uYWwgYWN0aW9ucyB0byBlbmZvcmNlIHN0cmljdCB0eXBpbmdzXG5cbi8vIElOSVRJQUxfU1RBVEVcbmNvbnN0IGluaXRpYWxDb3JlU3RhdGUgPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJbml0aWFsU3RhdGUoaW5pdGlhbFN0YXRlLCBleHRyYVJlZHVjZXJzPykge1xuICBjb25zdCBjb3JlUmVkdWNlciA9IGNvcmVSZWR1Y2VyRmFjdG9yeShpbml0aWFsU3RhdGUsIGV4dHJhUmVkdWNlcnMpO1xuXG4gIGNvbnN0IGhhbmRsZVJlZ2lzdGVyRW50cnkgPSAoXG4gICAgc3RhdGU6IEtlcGxlckdsU3RhdGVNYXAsXG4gICAge1xuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBpZCxcbiAgICAgICAgbWludCxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQsXG4gICAgICAgIGluaXRpYWxVaVN0YXRlXG4gICAgICB9XG4gICAgfToge1xuICAgICAgcGF5bG9hZDogUmVnaXN0ZXJFbnRyeVVwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXTtcbiAgICB9XG4gICk6IEtlcGxlckdsU3RhdGVNYXAgPT4ge1xuICAgIC8vIGJ5IGRlZmF1bHQsIGFsd2F5cyBjcmVhdGUgYSBtaW50IHN0YXRlIGV2ZW4gaWYgdGhlIHNhbWUgaWQgYWxyZWFkeSBleGlzdFxuICAgIC8vIGlmIHN0YXRlLmlkIGV4aXN0IGFuZCBtaW50PWZhbHNlLCBrZWVwIHRoZSBleGlzdGluZyBzdGF0ZVxuICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBzdGF0ZVtpZF0gJiYgbWludCA9PT0gZmFsc2UgPyBzdGF0ZVtpZF0gOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLy8gcmVnaXN0ZXIgZW50cnkgdG8ga2VwbGVyLmdsIHBhc3NpbmcgaW4gbWFwYm94IGNvbmZpZyB0byBtYXBTdHlsZVxuICAgICAgLi4uc3RhdGUsXG4gICAgICBbaWRdOiBjb3JlUmVkdWNlcihcbiAgICAgICAgcHJldmlvdXNTdGF0ZSxcbiAgICAgICAga2VwbGVyR2xJbml0KHttYXBib3hBcGlBY2Nlc3NUb2tlbiwgbWFwYm94QXBpVXJsLCBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCwgaW5pdGlhbFVpU3RhdGV9KVxuICAgICAgKVxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlRW50cnkgPSAoXG4gICAgc3RhdGU6IEtlcGxlckdsU3RhdGVNYXAsXG4gICAge3BheWxvYWQ6IHtpZH19OiB7cGF5bG9hZDoge2lkOiBzdHJpbmd9fVxuICApOiBLZXBsZXJHbFN0YXRlTWFwID0+XG4gICAgT2JqZWN0LmtleXMoc3RhdGUpLnJlZHVjZShcbiAgICAgIChhY2N1LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICAuLi4oY3VyciA9PT0gaWQgPyB7fSA6IHtbY3Vycl06IHN0YXRlW2N1cnJdfSlcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gIGNvbnN0IGhhbmRsZVJlbmFtZUVudHJ5ID0gKFxuICAgIHN0YXRlOiBLZXBsZXJHbFN0YXRlTWFwLFxuICAgIHtcbiAgICAgIHBheWxvYWQ6IHtvbGRJZCwgbmV3SWR9XG4gICAgfToge1xuICAgICAgcGF5bG9hZDogUmVuYW1lRW50cnlVcGRhdGVyQWN0aW9uWydwYXlsb2FkJ107XG4gICAgfVxuICApOiBLZXBsZXJHbFN0YXRlTWFwID0+XG4gICAgT2JqZWN0LmtleXMoc3RhdGUpLnJlZHVjZShcbiAgICAgIChhY2N1LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICAuLi57W2N1cnIgPT09IG9sZElkID8gbmV3SWQgOiBjdXJyXTogc3RhdGVbY3Vycl19XG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICByZXR1cm4gKHN0YXRlID0gaW5pdGlhbENvcmVTdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgLy8gdXBkYXRlIGNoaWxkIHN0YXRlc1xuICAgIE9iamVjdC5rZXlzKHN0YXRlKS5mb3JFYWNoKGlkID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZUl0ZW1TdGF0ZSA9IGNvcmVSZWR1Y2VyKHN0YXRlW2lkXSwgX2FjdGlvbkZvcihpZCwgYWN0aW9uKSk7XG4gICAgICBzdGF0ZSA9IF91cGRhdGVQcm9wZXJ0eShzdGF0ZSwgaWQsIHVwZGF0ZUl0ZW1TdGF0ZSk7XG4gICAgfSk7XG5cbiAgICAvLyBwZXJmb3JtIGFkZGl0aW9uYWwgc3RhdGUgcmVkdWNpbmcgKGUuZy4gc3dpdGNoIGFjdGlvbi50eXBlIGV0Yy4uLilcbiAgICBjb25zdCBoYW5kbGVycyA9IHtcbiAgICAgIFtBY3Rpb25UeXBlcy5SRUdJU1RFUl9FTlRSWV06IGhhbmRsZVJlZ2lzdGVyRW50cnksXG4gICAgICBbQWN0aW9uVHlwZXMuREVMRVRFX0VOVFJZXTogaGFuZGxlRGVsZXRlRW50cnksXG4gICAgICBbQWN0aW9uVHlwZXMuUkVOQU1FX0VOVFJZXTogaGFuZGxlUmVuYW1lRW50cnlcbiAgICB9O1xuXG4gICAgcmV0dXJuIGhhbmRsZUFjdGlvbnM8S2VwbGVyR2xTdGF0ZU1hcCwgQ29tYmluZVJlZ2lzdGVyVXBkYXRlQWN0aW9ucz4oXG4gICAgICBoYW5kbGVycyxcbiAgICAgIGluaXRpYWxDb3JlU3RhdGVcbiAgICApKHN0YXRlLCBhY3Rpb24pO1xuICB9O1xufVxuXG5jb25zdCBfa2VwbGVyR2xSZWR1Y2VyID0gcHJvdmlkZUluaXRpYWxTdGF0ZShpbml0aWFsQ29yZVN0YXRlKTtcblxuZnVuY3Rpb24gbWVyZ2VJbml0aWFsU3RhdGUoc2F2ZWQgPSB7fSwgcHJvdmlkZWQgPSB7fSwgZXh0cmFJbml0aWFsU3RhdGVLZXlzOiBzdHJpbmdbXSA9IFtdKSB7XG4gIGNvbnN0IGtleXMgPSBbJ21hcFN0YXRlJywgJ21hcFN0eWxlJywgJ3Zpc1N0YXRlJywgJ3VpU3RhdGUnLCAuLi5leHRyYUluaXRpYWxTdGF0ZUtleXNdO1xuXG4gIC8vIHNoYWxsb3cgbWVyZ2UgZWFjaCByZWR1Y2VyXG4gIGNvbnN0IG5ld1N0YXRlID0ga2V5cy5yZWR1Y2UoXG4gICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICAuLi4oc2F2ZWRba2V5XSAmJiBwcm92aWRlZFtrZXldXG4gICAgICAgID8ge1trZXldOiB7Li4uc2F2ZWRba2V5XSwgLi4ucHJvdmlkZWRba2V5XX19XG4gICAgICAgIDoge1trZXldOiBzYXZlZFtrZXldIHx8IHByb3ZpZGVkW2tleV0gfHwge319KVxuICAgIH0pLFxuICAgIHt9XG4gICk7XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZSh0YXJnZXQsIHNhdmVkSW5pdGlhbFN0YXRlID0ge30pIHtcbiAgY29uc3QgdGFyZ2V0SW5pdGlhbFN0YXRlID0gc2F2ZWRJbml0aWFsU3RhdGU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBrZXBsZXIuZ2wgcmVkdWNlciB0aGF0IHdpbGwgYWxzbyBwYXNzIGVhY2ggYWN0aW9uIHRocm91Z2ggYWRkaXRpb25hbCByZWR1Y2VycyBzcGllY2lmaWVkLlxuICAgKiBUaGUgcGFyYW1ldGVyIHNob3VsZCBiZSBlaXRoZXIgYSByZWR1Y2VyIG1hcCBvciBhIHJlZHVjZXIgZnVuY3Rpb24uXG4gICAqIFRoZSBzdGF0ZSBwYXNzZWQgaW50byB0aGUgYWRkaXRpb25hbCBhY3Rpb24gaGFuZGxlciBpcyB0aGUgaW5zdGFuY2Ugc3RhdGUuXG4gICAqIEl0IHdpbGwgaW5jbHVkZSBhbGwgdGhlIHN1YnJlZHVjZXJzIGB2aXNTdGF0ZWAsIGB1aVN0YXRlYCwgYG1hcFN0YXRlYCBhbmQgYG1hcFN0eWxlYC5cbiAgICogYC5wbHVnaW5gIGlzIG9ubHkgbWVhbnQgdG8gYmUgY2FsbGVkIG9uY2Ugd2hlbiBtb3VudGluZyB0aGUga2VwbGVyR2xSZWR1Y2VyIHRvIHRoZSBzdG9yZS5cbiAgICogKipOb3RlKiogVGhpcyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gdG8gZ2l2ZSB5b3UgbW9yZSBmcmVlZG9tIHRvIG1vZGlmeSB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIGtlcGxlci5nbCBpbnN0YW5jZS5cbiAgICogWW91IHNob3VsZCBvbmx5IHVzZSB0aGlzIHRvIGFkZGluZyBhZGRpdGlvbmFsIGFjdGlvbnMgaW5zdGVhZCBvZiByZXBsYWNpbmcgZGVmYXVsdCBhY3Rpb25zLlxuICAgKlxuICAgKiBAbWl4aW4ga2VwbGVyR2xSZWR1Y2VyLnBsdWdpblxuICAgKiBAbWVtYmVyb2Yga2VwbGVyR2xSZWR1Y2VyXG4gICAqIEBwYXJhbSB7T2JqZWN0fEZ1bmN0aW9ufSBjdXN0b21SZWR1Y2VyIC0gQSByZWR1Y2VyIG1hcCBvciBhIHJlZHVjZXJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRvIGJlIGFwcGxpZWQgdG8gY3VzdG9tIHJlZHVjZXIgbG9naWNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMub3ZlcnJpZGUgLSBvYmplY3RzIHRoYXQgZGVzY3JpYmUgd2hpY2ggYWN0aW9uIHRvIG92ZXJyaWRlLCBlLmcuIHtbQWN0aW9uVHlwZXMuTEFZRVJfVFlQRV9DSEFOR0VdOiB0cnVlfVxuICAgKiBAcHVibGljXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IG15S2VwbGVyR2xSZWR1Y2VyID0ga2VwbGVyR2xSZWR1Y2VyXG4gICAqICAucGx1Z2luKHtcbiAgICogICAgLy8gMS4gYXMgcmVkdWNlciBtYXBcbiAgICogICAgSElERV9BTkRfU0hPV19TSURFX1BBTkVMOiAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICogICAgICAuLi5zdGF0ZSxcbiAgICogICAgICB1aVN0YXRlOiB7XG4gICAqICAgICAgICAuLi5zdGF0ZS51aVN0YXRlLFxuICAgKiAgICAgICAgcmVhZE9ubHk6ICFzdGF0ZS51aVN0YXRlLnJlYWRPbmx5XG4gICAqICAgICAgfVxuICAgKiAgICB9KVxuICAgKiAgfSlcbiAgICogLnBsdWdpbihoYW5kbGVBY3Rpb25zKHtcbiAgICogICAvLyAyLiBhcyByZWR1Y2VyXG4gICAqICAgJ0hJREVfTUFQX0NPTlRST0xTJzogKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAqICAgICAuLi5zdGF0ZSxcbiAgICogICAgIHVpU3RhdGU6IHtcbiAgICogICAgICAgLi4uc3RhdGUudWlTdGF0ZSxcbiAgICogICAgICAgbWFwQ29udHJvbHM6IGhpZGRlbk1hcENvbnRyb2xcbiAgICogICAgIH1cbiAgICogICB9KVxuICAgKiB9LCB7fSkpO1xuICAgKi9cbiAgdGFyZ2V0LnBsdWdpbiA9IGZ1bmN0aW9uIHBsdWdpbihjdXN0b21SZWR1Y2VyLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBjdXN0b21SZWR1Y2VyID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gaWYgb25seSBwcm92aWRlZCBhIHJlZHVjZXJNYXAsIHdyYXAgaXQgaW4gYSByZWR1Y2VyXG4gICAgICBjdXN0b21SZWR1Y2VyID0gaGFuZGxlQWN0aW9ucyhjdXN0b21SZWR1Y2VyLCB7fSk7XG4gICAgfVxuXG4gICAgLy8gdXNlICdmdW5jdGlvbicga2V5d29yZCB0byBlbmFibGUgJ3RoaXMnXG4gICAgLy8gVE9ETzogdGVtcG9yYXJpbHkgbWFraW5nIGFjdGlvbiB0eXBlIHRvIGFueSwgd2lsbCBmaXggdGhhdCBieSBjcmVhdGluZyBhIHNoYXJlZCBhY3Rpb24gaW50ZXJmYWNlXG4gICAgcmV0dXJuIGRlY29yYXRlKChzdGF0ZSA9IHt9LCBhY3Rpb246IGFueSA9IHt9KSA9PiB7XG4gICAgICBsZXQgbmV4dFN0YXRlID0gc3RhdGU7XG4gICAgICBpZiAoYWN0aW9uLnR5cGUgJiYgIW9wdGlvbnM/Lm92ZXJyaWRlPy5bYWN0aW9uLnR5cGVdKSB7XG4gICAgICAgIG5leHRTdGF0ZSA9IHRoaXMoc3RhdGUsIGFjdGlvbik7XG4gICAgICB9XG5cbiAgICAgIC8vIGZvciBlYWNoIGVudHJ5IGluIHRoZSBzdGF0ZW5cbiAgICAgIE9iamVjdC5rZXlzKG5leHRTdGF0ZSkuZm9yRWFjaChpZCA9PiB7XG4gICAgICAgIC8vIHVwZGF0ZSBjaGlsZCBzdGF0ZXNcbiAgICAgICAgbmV4dFN0YXRlID0gX3VwZGF0ZVByb3BlcnR5KFxuICAgICAgICAgIG5leHRTdGF0ZSxcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjdXN0b21SZWR1Y2VyKG5leHRTdGF0ZVtpZF0sIF9hY3Rpb25Gb3IoaWQsIGFjdGlvbikpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXh0U3RhdGU7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHJlZHVjZXIgdGhhdCBpbml0aWF0ZWQgd2l0aCBjdXN0b20gaW5pdGlhbCBzdGF0ZS5cbiAgICogVGhlIHBhcmFtZXRlciBzaG91bGQgYmUgYW4gb2JqZWN0IG1hcHBpbmcgZnJvbSBgc3VicmVkdWNlcmAgbmFtZSB0byBjdXN0b20gc3VicmVkdWNlciBzdGF0ZSxcbiAgICogd2hpY2ggd2lsbCBiZSBzaGFsbG93ICoqbWVyZ2VkKiogd2l0aCBkZWZhdWx0IGluaXRpYWwgc3RhdGUuXG4gICAqXG4gICAqIERlZmF1bHQgc3VicmVkdWNlciBzdGF0ZTpcbiAgICogIC0gW2B2aXNTdGF0ZWBdKC4vdmlzLXN0YXRlLm1kI0lOSVRJQUxfVklTX1NUQVRFKVxuICAgKiAgLSBbYG1hcFN0YXRlYF0oLi9tYXAtc3RhdGUubWQjSU5JVElBTF9NQVBfU1RBVEUpXG4gICAqICAtIFtgbWFwU3R5bGVgXSguL21hcC1zdHlsZS5tZCNJTklUSUFMX01BUF9TVFlMRSlcbiAgICogIC0gW2B1aVN0YXRlYF0oLi91aS1zdGF0ZS5tZCNJTklUSUFMX1VJX1NUQVRFKVxuICAgKiBAbWl4aW4ga2VwbGVyR2xSZWR1Y2VyLmluaXRpYWxTdGF0ZVxuICAgKiBAbWVtYmVyb2Yga2VwbGVyR2xSZWR1Y2VyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpbmlTdCAtIGN1c3RvbSBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBkZWZhdWx0IGluaXRpYWwgc3RhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGV4dHJhUmVkdWNlcnMgLSBvcHRpb25hbCBjdXN0b20gcmVkdWNlcnMgaW4gYWRkaXRpb24gdG8gdGhlIGRlZmF1bHQgYHZpc1N0YXRlYCwgYG1hcFN0YXRlYCwgYG1hcFN0eWxlYCwgYW5kIGB1aVN0YXRlYFxuICAgKiBAcHVibGljXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IG15S2VwbGVyR2xSZWR1Y2VyID0ga2VwbGVyR2xSZWR1Y2VyXG4gICAqICAuaW5pdGlhbFN0YXRlKHtcbiAgICogICAgdWlTdGF0ZToge3JlYWRPbmx5OiB0cnVlfVxuICAgKiAgfSk7XG4gICAqL1xuICB0YXJnZXQuaW5pdGlhbFN0YXRlID0gZnVuY3Rpb24gaW5pdGlhbFN0YXRlKGluaVN0LCBleHRyYVJlZHVjZXJzID0ge30pIHtcbiAgICAvLyBwYXNzaW5nIHRocm91Z2ggZXh0cmFJbml0aWFsU3RhdGVLZXlzIGFuZCBleHRyYVJlZHVjZXJzIGFsbG93cyBleHRlcm5hbCBjdXN0b21pemF0aW9uIGJ5IGFkZGluZyBhZGRpdGlvbmFsIHN1YnJlZHVjZXJzIGFuZCBzdGF0ZSBiZXlvbmQgdGhlIGRlZmF1bHQgYHZpc1N0YXRlYCwgYG1hcFN0YXRlYCwgYG1hcFN0eWxlYCwgYW5kIGB1aVN0YXRlYFxuICAgIGNvbnN0IGV4dHJhSW5pdGlhbFN0YXRlS2V5cyA9IE9iamVjdC5rZXlzKGV4dHJhUmVkdWNlcnMpO1xuICAgIGNvbnN0IG1lcmdlZCA9IG1lcmdlSW5pdGlhbFN0YXRlKHRhcmdldEluaXRpYWxTdGF0ZSwgaW5pU3QsIGV4dHJhSW5pdGlhbFN0YXRlS2V5cyk7XG4gICAgY29uc3QgdGFyZ2V0UmVkdWNlciA9IHByb3ZpZGVJbml0aWFsU3RhdGUobWVyZ2VkLCBleHRyYVJlZHVjZXJzKTtcblxuICAgIHJldHVybiBkZWNvcmF0ZSh0YXJnZXRSZWR1Y2VyLCBtZXJnZWQpO1xuICB9O1xuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbi8qKlxuICogS2VwbGVyLmdsIHJlZHVjZXIgdG8gYmUgbW91bnRlZCB0byB5b3VyIHN0b3JlLiBZb3UgY2FuIG1vdW50IGBrZXBsZXJHbFJlZHVjZXJgIGF0IHByb3BlcnR5IGBrZXBsZXJHbGAsIGlmIHlvdSBjaG9vc2VcbiAqIHRvIG1vdW50IGl0IGF0IGFub3RoZXIgYWRkcmVzcyBlLmcuIGBmb29gIHlvdSB3aWxsIG5lZWQgdG8gc3BlY2lmeSBpdCB3aGVuIHlvdSBtb3VudCBgS2VwbGVyR2xgIGNvbXBvbmVudCBpbiB5b3VyIGFwcCB3aXRoIGBnZXRTdGF0ZTogc3RhdGUgPT4gc3RhdGUuZm9vYFxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIgZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiBpbXBvcnQge2NyZWF0ZVN0b3JlLCBjb21iaW5lUmVkdWNlcnMsIGFwcGx5TWlkZGxld2FyZSwgY29tcG9zZX0gZnJvbSAncmVkdXgnO1xuICogaW1wb3J0IHt0YXNrTWlkZGxld2FyZX0gZnJvbSAnQGtlcGxlci5nbC90YXNrcyc7XG4gKlxuICogY29uc3QgaW5pdGlhbFN0YXRlID0ge307XG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAgIC8vIDwtLSBtb3VudCBrZXBsZXIuZ2wgcmVkdWNlciBpbiB5b3VyIGFwcFxuICogICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICpcbiAqICAgLy8gWW91ciBvdGhlciByZWR1Y2VycyBoZXJlXG4gKiAgIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogLy8gdXNpbmcgY3JlYXRlU3RvcmVcbiAqIGV4cG9ydCBkZWZhdWx0IGNyZWF0ZVN0b3JlKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgYXBwbHlNaWRkbGV3YXJlKHRhc2tNaWRkbGV3YXJlKSk7XG4gKi9cbmNvbnN0IGtlcGxlckdsUmVkdWNlciA9IGRlY29yYXRlKF9rZXBsZXJHbFJlZHVjZXIpO1xuZXhwb3J0IGRlZmF1bHQga2VwbGVyR2xSZWR1Y2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsU0FDRUEsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFVBQVUsRUFDVkMsZUFBZSxRQUdWLG9CQUFvQjtBQUMzQixTQUFRQyxhQUFhLFFBQU8sZUFBZTtBQUUzQyxTQUFRQyxrQkFBa0IsUUFBc0IsUUFBUTtBQU9q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