@kepler.gl/deckgl-layers 3.3.0-alpha.6 → 3.3.0-alpha.7

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.
@@ -126,9 +126,6 @@ var ZoomToCursorGlobeController = /*#__PURE__*/function (_GlobeController) {
126
126
  // view can't be centered on the poles. deck.gl's applyConstraints clamps
127
127
  // latitude to ~85°, which still lets the camera look straight at a pole.
128
128
  function applyConstraints(props) {
129
- // Avoid `(super.fn as any)(args)` — Babel compiles that to a property GET
130
- // (`_superPropGet(..., 1)`) that drops `this`. A direct call uses method-CALL
131
- // form (`_superPropGet(..., 3)`), which preserves the binding.
132
129
  var result = _superPropGet(PatchedGlobeState, "applyConstraints", this, 3)([props]);
133
130
  var clampedLatitude = (0, _core2.clamp)(result.latitude, -_constants.GLOBE_MAX_LATITUDE, _constants.GLOBE_MAX_LATITUDE);
134
131
  if (clampedLatitude !== result.latitude) {
@@ -404,4 +401,4 @@ var KeplerGlobeView = exports.KeplerGlobeView = /*#__PURE__*/function (_DeckGlob
404
401
  }]);
405
402
  }(DeckGlobeView);
406
403
  KeplerGlobeView.displayName = 'KeplerGlobeView';
407
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNrQ29yZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9jb3JlMiIsIl9jb25zdGFudHMiLCJfZ2xvYmVEZXB0aERpc2tMYXllciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiX2dldFByb3RvdHlwZU9mMiIsInByb3RvdHlwZSIsIl9jYWxsU3VwZXIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJEZWNrR2xvYmVWaWV3IiwiX0dsb2JlVmlldyIsIkdsb2JlQ29udHJvbGxlciIsIl9HbG9iZUNvbnRyb2xsZXIiLCJEZWNrR2xvYmVWaWV3cG9ydCIsIl9HbG9iZVZpZXdwb3J0Iiwiem9vbUFkanVzdCIsImxhdGl0dWRlIiwiTWF0aCIsImxvZzIiLCJQSSIsImNvcyIsImlzUGl4ZWxPbkdsb2JlIiwidmlld3BvcnQiLCJwb3MiLCJtIiwicGl4ZWxVbnByb2plY3Rpb25NYXRyaXgiLCJwMCIsInZlYzQiLCJ0cmFuc2Zvcm1NYXQ0IiwicDEiLCJheCIsImF5IiwiYXoiLCJieCIsImJ5IiwiYnoiLCJkeCIsImR5IiwiZHoiLCJjeCIsImN5IiwiY3oiLCJkU3FyIiwiR0xPQkVfQ09NTU9OX1JBRElVUyIsIlpvb21Ub0N1cnNvckdsb2JlQ29udHJvbGxlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiT3JpZ2luYWxHbG9iZVN0YXRlIiwiQ29udHJvbGxlclN0YXRlIiwib2ZmR2xvYmVab29tQXQiLCJfT3JpZ2luYWxHbG9iZVN0YXRlIiwiUGF0Y2hlZEdsb2JlU3RhdGUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiYXBwbHlDb25zdHJhaW50cyIsInByb3BzIiwicmVzdWx0IiwiY2xhbXBlZExhdGl0dWRlIiwiY2xhbXAiLCJHTE9CRV9NQVhfTEFUSVRVREUiLCJ6b29tIiwiX2NvbnN0cmFpblpvb20iLCJnZXRWaWV3cG9ydFByb3BzIiwiX3Byb3BzIiwibWF4Wm9vbSIsIl9wcm9wczIiLCJtaW5ab29tIiwidW5kZWZpbmVkIiwiWk9PTTAiLCJ6b29tQWRqdXN0bWVudCIsIl9yZWYiLCJzdGFydFBvcyIsInNjYWxlIiwiX2dldFN0YXRlIiwiZ2V0U3RhdGUiLCJzdGFydFpvb20iLCJzdGFydFpvb21MbmdMYXQiLCJjdXJyZW50UHJvcHMiLCJCVVJTVF9USU1FT1VUX01TIiwibm93IiwiRGF0ZSIsImFuY2hvclZpZXdwb3J0IiwibWFrZVZpZXdwb3J0Iiwib25HbG9iZSIsIl9nZXRVcGRhdGVkU3RhdGUiLCJfdW5wcm9qZWN0IiwiaXNBcnJheSIsIk51bWJlciIsImlzRmluaXRlIiwibWluIiwiZExuZyIsImxvbmdpdHVkZSIsInpvb21lZFZpZXdwb3J0IiwiZnJvbVBvc2l0aW9uIiwidW5wcm9qZWN0Iiwiem9vbUVuZCIsInBhblN0YXJ0IiwiX3JlZjIiLCJzdGFydFBhbkxuZ0xhdCIsInBhbiIsIl9yZWYzIiwic3RvcmVkU3RhcnQiLCJ2aXN1YWxab29tIiwicGFuRW5kIiwiS2VwbGVyR2xvYmVWaWV3IiwiZXhwb3J0cyIsIl9EZWNrR2xvYmVWaWV3IiwiZ2V0Vmlld3BvcnRUeXBlIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2xvYmUvZ2xvYmUtdmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBEZWNrQ29yZSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Y2xhbXAsIHZlYzR9IGZyb20gJ0BtYXRoLmdsL2NvcmUnO1xuaW1wb3J0IHtHTE9CRV9NQVhfTEFUSVRVREV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7R0xPQkVfQ09NTU9OX1JBRElVU30gZnJvbSAnLi9nbG9iZS1kZXB0aC1kaXNrLWxheWVyJztcblxuLy8gZGVjay5nbCBleHBvc2VzIEdsb2JlVmlldyAvIEdsb2JlQ29udHJvbGxlciBhcyBleHBlcmltZW50YWwsIHVuZGVyc2NvcmUtcHJlZml4ZWRcbi8vIG1lbWJlcnMuIFRoZWlyIG5hbWVkIHR5cGUgYmluZGluZ3MgYXJlbid0IHJlbGlhYmx5IHJlc29sdmFibGUgdGhyb3VnaCB0aGVcbi8vIHBhY2thZ2UgYmFycmVsIHVuZGVyIHRoaXMgcHJvamVjdCdzIG1vZHVsZSByZXNvbHV0aW9uLCBzbyB3ZSBwdWxsIHRoZW0gb2ZmIHRoZVxuLy8gbmFtZXNwYWNlIHdpdGggYSBsb29zZSB0eXBlLiBSdW50aW1lIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC5cbmNvbnN0IERlY2tHbG9iZVZpZXcgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3IGFzIGFueTtcbmNvbnN0IEdsb2JlQ29udHJvbGxlciA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZUNvbnRyb2xsZXIgYXMgYW55O1xuY29uc3QgRGVja0dsb2JlVmlld3BvcnQgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3cG9ydCBhcyBhbnk7XG5cbi8qKlxuICogTGF0aXR1ZGUtYmFzZWQgem9vbSBhZGp1c3RtZW50IHVzZWQgYnkgZGVjay5nbCdzIEdsb2JlVmlld3BvcnQsIHJlcGxpY2F0ZWRcbiAqIGhlcmUgc28gb3VyIGN1c3RvbSBgX2NvbnN0cmFpblpvb21gIG1hdGNoZXMgZGVjay5nbCdzIGNvb3JkaW5hdGUgbWF0aC5cbiAqIFNlZSBAZGVjay5nbC9jb3JlIGdsb2JlLXZpZXdwb3J0LmpzIGB6b29tQWRqdXN0YC5cbiAqL1xuZnVuY3Rpb24gem9vbUFkanVzdChsYXRpdHVkZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubG9nMihNYXRoLlBJICogTWF0aC5jb3MoKGxhdGl0dWRlICogTWF0aC5QSSkgLyAxODApKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNjcmVlbiBwaXhlbCBgcG9zYCBsaWVzIHdpdGhpbiB0aGUgdmlzaWJsZSBnbG9iZVxuICogc2lsaG91ZXR0ZS5cbiAqXG4gKiBHbG9iZVZpZXdwb3J0LnVucHJvamVjdCgpIGNsYW1wcyB0aGUgcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCB3aXRoXG4gKiBNYXRoLm1heCgwLCBywrLiiJJkwrIpLCBzbyBpdCBhbHdheXMgcmV0dXJucyBhIHZhbGlkIGxuZy9sYXQgZXZlbiBmb3JcbiAqIG9mZi1nbG9iZSBwaXhlbHMgKHNuYXBwaW5nIHRvIHRoZSBsaW1iKS4gIFdlIHJlcGxpY2F0ZSB0aGUgc2FtZSByYXkgY2FzdFxuICogYnV0IGNoZWNrIHRoZSBkaXNjcmltaW5hbnQgYmVmb3JlIHRoZSBjbGFtcCB1c2luZyB0aGUgc3RhbmRhcmRcbiAqIHNxdWFyZWQtZGlzdGFuY2UtZnJvbS1vcmlnaW4tdG8tcmF5IGZvcm11bGE6IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrIuXG4gKi9cbmZ1bmN0aW9uIGlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0OiBhbnksIHBvczogW251bWJlciwgbnVtYmVyXSk6IGJvb2xlYW4ge1xuICBjb25zdCBtOiBudW1iZXJbXSA9IHZpZXdwb3J0LnBpeGVsVW5wcm9qZWN0aW9uTWF0cml4O1xuICBpZiAoIW0pIHJldHVybiB0cnVlOyAvLyBjb25zZXJ2YXRpdmUgZmFsbGJhY2sgaWYgbWF0cml4IHVuYXZhaWxhYmxlXG5cbiAgLy8gQ2FzdCBhIHJheSB0aHJvdWdoIHRoZSBwaXhlbCBhdCB0aGUgbmVhciBhbmQgZmFyIHBsYW5lcy5cbiAgY29uc3QgcDAgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgLTEsIDFdLCBtKTtcbiAgY29uc3QgcDEgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgMSwgMV0sIG0pO1xuICBpZiAocDBbM10gPT09IDAgfHwgcDFbM10gPT09IDApIHJldHVybiB0cnVlOyAvLyBkZWdlbmVyYXRlIHByb2plY3Rpb25cblxuICAvLyBQZXJzcGVjdGl2ZS1kaXZpZGUgdG8gd29ybGQgc3BhY2UuXG4gIGNvbnN0IGF4ID0gcDBbMF0gLyBwMFszXSwgYXkgPSBwMFsxXSAvIHAwWzNdLCBheiA9IHAwWzJdIC8gcDBbM107XG4gIGNvbnN0IGJ4ID0gcDFbMF0gLyBwMVszXSwgYnkgPSBwMVsxXSAvIHAxWzNdLCBieiA9IHAxWzJdIC8gcDFbM107XG5cbiAgLy8gUmF5IGRpcmVjdGlvbi5cbiAgY29uc3QgZHggPSBieCAtIGF4LCBkeSA9IGJ5IC0gYXksIGR6ID0gYnogLSBhejtcblxuICAvLyBTcXVhcmVkIGRpc3RhbmNlIGZyb20gdGhlIG9yaWdpbiAoZ2xvYmUgY2VudGVyKSB0byB0aGUgcmF5OlxuICAvLyAgIGTCsiA9IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrJcbiAgY29uc3QgY3ggPSBheSAqIGR6IC0gYXogKiBkeTtcbiAgY29uc3QgY3kgPSBheiAqIGR4IC0gYXggKiBkejtcbiAgY29uc3QgY3ogPSBheCAqIGR5IC0gYXkgKiBkeDtcbiAgY29uc3QgZFNxciA9IChjeCAqIGN4ICsgY3kgKiBjeSArIGN6ICogY3opIC8gKGR4ICogZHggKyBkeSAqIGR5ICsgZHogKiBkeik7XG5cbiAgcmV0dXJuIGRTcXIgPD0gR0xPQkVfQ09NTU9OX1JBRElVUyAqIEdMT0JFX0NPTU1PTl9SQURJVVM7XG59XG5cbi8qKlxuICogQ3VzdG9tIEdsb2JlQ29udHJvbGxlciB0aGF0IHJlc3RvcmVzIHpvb20tdG8tY3Vyc29yIGJlaGF2aW9yLlxuICpcbiAqIEluIGRlY2suZ2wgOS54LCB0aGUgZGVmYXVsdCBHbG9iZUNvbnRyb2xsZXIncyBHbG9iZVN0YXRlLnpvb20oKSBpZ25vcmVzIHRoZVxuICogY3Vyc29yIHBvc2l0aW9uIGFuZCBhbHdheXMgem9vbXMgdG93YXJkIHRoZSBjZW50ZXIuIFRoaXMgY29udHJvbGxlciBwYXRjaGVzXG4gKiB0aGF0IGJlaGF2aW9yIGJ5IG92ZXJyaWRpbmcgdGhlIENvbnRyb2xsZXJTdGF0ZSdzIHpvb20gbWV0aG9kIHRvIHBhbiB0aGVcbiAqIGdsb2JlIHVuZGVyIHRoZSBjdXJzb3Igd2hpbGUgem9vbWluZywgc28gem9vbS10by1jdXJzb3Igd29ya3MgdGhlIHNhbWUgd2F5IGl0XG4gKiBkb2VzIGZvciB0aGUgMkQgTWFwQ29udHJvbGxlci5cbiAqL1xuY2xhc3MgWm9vbVRvQ3Vyc29yR2xvYmVDb250cm9sbGVyIGV4dGVuZHMgR2xvYmVDb250cm9sbGVyIHtcbiAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICBzdXBlciguLi5hcmdzKTtcbiAgICBjb25zdCBPcmlnaW5hbEdsb2JlU3RhdGUgPSB0aGlzLkNvbnRyb2xsZXJTdGF0ZTtcblxuICAgIC8vIFRyYWNrcyB3aGVuIHRoZSBtb3N0IHJlY2VudCBvZmYtZ2xvYmUgd2hlZWwtem9vbSB0aWNrIGZpcmVkLlxuICAgIC8vIFN0b3JlZCBhcyBhIGNvbnRyb2xsZXItbGV2ZWwgY2xvc3VyZSB2YXJpYWJsZSByYXRoZXIgdGhhbiBpbiBWaWV3U3RhdGVcbiAgICAvLyBiZWNhdXNlIGRlY2suZ2wncyBDb250cm9sbGVyIG5ldmVyIGNhbGxzIHpvb21FbmQoKSBmb3Igd2hlZWwgZXZlbnRzIOKAlFxuICAgIC8vIG9ubHkgZm9yIHBpbmNoL3RvdWNoIOKAlCBzbyB0aGVyZSBpcyBubyByZWxpYWJsZSBob29rIHRvIGNsZWFyIGFcbiAgICAvLyBWaWV3U3RhdGUtYmFzZWQgc2VudGluZWwgYWZ0ZXIgYSB3aGVlbCBzY3JvbGwgc2Vzc2lvbiBlbmRzLlxuICAgIC8vIEEgc2ltcGxlIHRpbWVzdGFtcCBsZXRzIHVzIGRldGVjdCB3aGVuIGEgbmV3IHNjcm9sbCBidXJzdCBoYXMgc3RhcnRlZFxuICAgIC8vICg+IEJVUlNUX1RJTUVPVVRfTVMgc2luY2UgdGhlIGxhc3Qgb2ZmLWdsb2JlIHRpY2spIHNvIGN1cnNvci1hbmNob3JlZFxuICAgIC8vIHpvb20gY2FuIHJlc3VtZSBuYXR1cmFsbHkgb24gdGhlIG5leHQgaW5kZXBlbmRlbnQgc2Nyb2xsLlxuICAgIGxldCBvZmZHbG9iZVpvb21BdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBDcmVhdGUgcGF0Y2hlZCBHbG9iZVN0YXRlIHRoYXQgc3VwcG9ydHMgem9vbS10by1jdXJzb3JcbiAgICB0aGlzLkNvbnRyb2xsZXJTdGF0ZSA9IGNsYXNzIFBhdGNoZWRHbG9iZVN0YXRlIGV4dGVuZHMgT3JpZ2luYWxHbG9iZVN0YXRlIHtcbiAgICAgIC8vIENvbnN0cmFpbiB0aGUgY2FtZXJhIHRhcmdldCB0byBhIGxhdGl0dWRlIGJhbmQgYXJvdW5kIHRoZSBlcXVhdG9yIHNvIHRoZVxuICAgICAgLy8gdmlldyBjYW4ndCBiZSBjZW50ZXJlZCBvbiB0aGUgcG9sZXMuIGRlY2suZ2wncyBhcHBseUNvbnN0cmFpbnRzIGNsYW1wc1xuICAgICAgLy8gbGF0aXR1ZGUgdG8gfjg1wrAsIHdoaWNoIHN0aWxsIGxldHMgdGhlIGNhbWVyYSBsb29rIHN0cmFpZ2h0IGF0IGEgcG9sZS5cbiAgICAgIGFwcGx5Q29uc3RyYWludHMocHJvcHM6IGFueSkge1xuICAgICAgICAvLyBBdm9pZCBgKHN1cGVyLmZuIGFzIGFueSkoYXJncylgIOKAlCBCYWJlbCBjb21waWxlcyB0aGF0IHRvIGEgcHJvcGVydHkgR0VUXG4gICAgICAgIC8vIChgX3N1cGVyUHJvcEdldCguLi4sIDEpYCkgdGhhdCBkcm9wcyBgdGhpc2AuIEEgZGlyZWN0IGNhbGwgdXNlcyBtZXRob2QtQ0FMTFxuICAgICAgICAvLyBmb3JtIChgX3N1cGVyUHJvcEdldCguLi4sIDMpYCksIHdoaWNoIHByZXNlcnZlcyB0aGUgYmluZGluZy5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3VwZXIuYXBwbHlDb25zdHJhaW50cyhwcm9wcyk7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRMYXRpdHVkZSA9IGNsYW1wKHJlc3VsdC5sYXRpdHVkZSwgLUdMT0JFX01BWF9MQVRJVFVERSwgR0xPQkVfTUFYX0xBVElUVURFKTtcbiAgICAgICAgaWYgKGNsYW1wZWRMYXRpdHVkZSAhPT0gcmVzdWx0LmxhdGl0dWRlKSB7XG4gICAgICAgICAgLy8gZGVjay5nbCBjb3VwbGVzIHpvb20gdG8gbGF0aXR1ZGUgdmlhIHpvb21BZGp1c3Q7IHdoZW4gd2UgZnVydGhlclxuICAgICAgICAgIC8vIGNsYW1wIGxhdGl0dWRlLCByZS1hcHBseSB0aGUgc2FtZSBkZWx0YSBzbyB6b29tIHN0YXlzIGNvbnNpc3RlbnQuXG4gICAgICAgICAgcmVzdWx0Lnpvb20gKz0gem9vbUFkanVzdChjbGFtcGVkTGF0aXR1ZGUpIC0gem9vbUFkanVzdChyZXN1bHQubGF0aXR1ZGUpO1xuICAgICAgICAgIHJlc3VsdC5sYXRpdHVkZSA9IGNsYW1wZWRMYXRpdHVkZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICAvLyBkZWNrLmdsJ3MgR2xvYmVTdGF0ZS5fY29uc3RyYWluWm9vbSBkZXJpdmVzIGEgbWluaW11bSB6b29tIGZyb20gYG1heEJvdW5kc2BcbiAgICAgIC8vIHRoYXQgZm9yY2VzIHRoZSBnbG9iZSB0byBmaWxsIHRoZSB2aWV3cG9ydC4gVGhhdCBib3VuZHMtYmFzZWQgbWluaW11bVxuICAgICAgLy8gKH4zIGZvciBhIHR5cGljYWwgd2luZG93KSBvdmVycmlkZXMgYW55IGNvbmZpZ3VyZWQgYG1pblpvb21gLCBzbyB0aGUgdXNlclxuICAgICAgLy8gY2FuIG5ldmVyIHpvb20gb3V0IGZhciBlbm91Z2ggdG8gc2VlIHRoZSB3aG9sZSBnbG9iZSBzbWFsbCBvbiBzY3JlZW4uXG4gICAgICAvLyBPdmVycmlkZSBpdCB0byBob25vciBvbmx5IHRoZSBjb25maWd1cmVkIG1pblpvb20vbWF4Wm9vbSAocGx1cyB0aGUgc2FtZVxuICAgICAgLy8gbGF0aXR1ZGUgYWRqdXN0bWVudCBkZWNrLmdsIHVzZXMpLCBpZ25vcmluZyB0aGUgYm91bmRzLWJhc2VkIGZsb29yLlxuICAgICAgX2NvbnN0cmFpblpvb20oem9vbTogbnVtYmVyLCBwcm9wcz86IGFueSkge1xuICAgICAgICBwcm9wcyA9IHByb3BzIHx8ICh0aGlzIGFzIGFueSkuZ2V0Vmlld3BvcnRQcm9wcygpO1xuICAgICAgICBjb25zdCB7bGF0aXR1ZGUsIG1heFpvb219ID0gcHJvcHM7XG4gICAgICAgIGxldCB7bWluWm9vbX0gPSBwcm9wcztcbiAgICAgICAgaWYgKG1pblpvb20gPT09IHVuZGVmaW5lZCB8fCBtaW5ab29tID09PSBudWxsKSB7XG4gICAgICAgICAgbWluWm9vbSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgWk9PTTAgPSB6b29tQWRqdXN0KDApO1xuICAgICAgICBjb25zdCB6b29tQWRqdXN0bWVudCA9IHpvb21BZGp1c3QobGF0aXR1ZGUpIC0gWk9PTTA7XG4gICAgICAgIHJldHVybiBjbGFtcCh6b29tLCBtaW5ab29tICsgem9vbUFkanVzdG1lbnQsIG1heFpvb20gKyB6b29tQWRqdXN0bWVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4YWN0IHpvb20tdG8tY3Vyc29yLiBkZWNrLmdsIDkueCdzIEdsb2JlQ29udHJvbGxlciBkb2VzIG5vdCBrZWVwIHRoZSBwb2ludFxuICAgICAgLy8gdW5kZXIgdGhlIGN1cnNvciBmaXhlZCB3aGlsZSB6b29taW5nLCBpbiB0d28gd2F5cyB3ZSB3b3JrIGFyb3VuZCBoZXJlOlxuICAgICAgLy8gICAxLiBJdHMgR2xvYmVTdGF0ZS56b29tKCkgaWdub3JlcyB0aGUgY3Vyc29yIGFuZCB6b29tcyB0b3dhcmQgdGhlIGNlbnRlci5cbiAgICAgIC8vICAgMi4gSXRzIEdsb2JlVmlld3BvcnQucGFuQnlQb3NpdGlvbiBpcyBhIGxvc3N5LCAqbGluZWFyaXplZCogMy1hcmdcbiAgICAgIC8vICAgICAgcm90YXRpb24gKGxvbmdpdHVkZSArPSAoMC4yNS9zY2FsZSkqKHN0YXJ0UGl4ZWwtcGl4ZWwpLCByZS1kZXJpdmVzXG4gICAgICAvLyAgICAgIHpvb20pLiBVc2luZyBpdCBwZXIgd2hlZWwgdGljayBhY2N1bXVsYXRlcyBlcnJvciwgc28gYWZ0ZXIgYSBsb25nXG4gICAgICAvLyAgICAgIGNvbnRpbnVvdXMgem9vbSB0aGUgcG9pbnQgZW5kcyB1cCBub3RpY2VhYmx5IHNoaWZ0ZWQgZnJvbSB3aGF0IHdhc1xuICAgICAgLy8gICAgICBvcmlnaW5hbGx5IHVuZGVyIHRoZSBjdXJzb3IuXG4gICAgICAvLyBUaGUgcmVjZW50ZXIgYmVsb3cgaXMgYW4gKmV4YWN0IGFic29sdXRlKiB0cmFuc2xhdGlvbjogdW5wcm9qZWN0IHRoZVxuICAgICAgLy8gY3Vyc29yIHBpeGVsIGluIHRoZSB6b29tZWQgdmlld3BvcnQgdG8gZ2V0IHRoZSBnZW8gcG9pbnQgY3VycmVudGx5IHVuZGVyIGl0LFxuICAgICAgLy8gdGhlbiBzaGlmdCB0aGUgY2VudGVyIGJ5IChhbmNob3IgLSB0aGF0UG9pbnQpLiBObyB6b29tIGNvdXBsaW5nLCBub1xuICAgICAgLy8gcm90YXRpb25TcGVlZCwgYW5kIGl0IGFwcGxpZXMgdG8gem9vbS1pbiBhbmQgem9vbS1vdXQgc3ltbWV0cmljYWxseSwgc29cbiAgICAgIC8vIHRoZXJlIGlzIG5vIHBlci10aWNrIGFjY3VtdWxhdGVkIGRyaWZ0LlxuICAgICAgem9vbSh7XG4gICAgICAgIHBvcyxcbiAgICAgICAgc3RhcnRQb3MsXG4gICAgICAgIHNjYWxlXG4gICAgICB9OiB7XG4gICAgICAgIHBvczogW251bWJlciwgbnVtYmVyXTtcbiAgICAgICAgc3RhcnRQb3M/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAgICAgICBzY2FsZTogbnVtYmVyO1xuICAgICAgfSkge1xuICAgICAgICBsZXQge3N0YXJ0Wm9vbSwgc3RhcnRab29tTG5nTGF0fSA9ICh0aGlzIGFzIGFueSkuZ2V0U3RhdGUoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFByb3BzID0gKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG5cbiAgICAgICAgaWYgKCFzdGFydFpvb21MbmdMYXQpIHtcbiAgICAgICAgICAvLyBXaGVlbCB6b29tOiByZS1kZXJpdmUgYW5jaG9yIGVhY2ggdGljayAocGluY2ggc2V0cyBpdCBvbmNlIGluIHpvb21TdGFydCkuXG4gICAgICAgICAgc3RhcnRab29tID0gY3VycmVudFByb3BzLnpvb207XG5cbiAgICAgICAgICAvLyBTdXBwcmVzcyBjdXJzb3ItYW5jaG9yaW5nIHdoZW4gdGhlIGN1cnNvciBpcyBvZmYtZ2xvYmUgb3Igd2hlbiBhXG4gICAgICAgICAgLy8gcmVjZW50IHRpY2sgd2FzIG9mZi1nbG9iZSAod2l0aGluIEJVUlNUX1RJTUVPVVRfTVMpLiAgZGVjay5nbCBuZXZlclxuICAgICAgICAgIC8vIGNhbGxzIHpvb21FbmQoKSBmb3Igd2hlZWwgZXZlbnRzIHNvIHdlIHRyYWNrIHRoZSBzZXNzaW9uIHdpdGggdGhlXG4gICAgICAgICAgLy8gY2xvc3VyZSB2YXJpYWJsZSBgb2ZmR2xvYmVab29tQXRgIHJhdGhlciB0aGFuIFZpZXdTdGF0ZS5cbiAgICAgICAgICBjb25zdCBCVVJTVF9USU1FT1VUX01TID0gMjAwO1xuICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgY29uc3QgYW5jaG9yVmlld3BvcnQgPSAodGhpcyBhcyBhbnkpLm1ha2VWaWV3cG9ydChjdXJyZW50UHJvcHMpO1xuICAgICAgICAgIGNvbnN0IG9uR2xvYmUgPSBpc1BpeGVsT25HbG9iZShhbmNob3JWaWV3cG9ydCwgc3RhcnRQb3MgfHwgcG9zKTtcblxuICAgICAgICAgIGlmICghb25HbG9iZSkgb2ZmR2xvYmVab29tQXQgPSBub3c7XG5cbiAgICAgICAgICBpZiAoIW9uR2xvYmUgfHwgKG9mZkdsb2JlWm9vbUF0ICE9PSBudWxsICYmIG5vdyAtIG9mZkdsb2JlWm9vbUF0IDwgQlVSU1RfVElNRU9VVF9NUykpIHtcbiAgICAgICAgICAgIGNvbnN0IHpvb20gPSAodGhpcyBhcyBhbnkpLl9jb25zdHJhaW5ab29tKHN0YXJ0Wm9vbSArIE1hdGgubG9nMihzY2FsZSkpO1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7em9vbX0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9mZkdsb2JlWm9vbUF0ID0gbnVsbDtcbiAgICAgICAgICBzdGFydFpvb21MbmdMYXQgPSAodGhpcyBhcyBhbnkpLl91bnByb2plY3Qoc3RhcnRQb3MpIHx8ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChwb3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgem9vbSA9ICh0aGlzIGFzIGFueSkuX2NvbnN0cmFpblpvb20oc3RhcnRab29tICsgTWF0aC5sb2cyKHNjYWxlKSk7XG5cbiAgICAgICAgaWYgKCFzdGFydFpvb21MbmdMYXQpIHtcbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBab29tLW91dCAoc2NhbGUgPCAxKTogZXhhY3QgY3Vyc29yIGFuY2hvcmluZyBpcyB1bnN0YWJsZSBuZWFyIHRoZSBsaW1iXG4gICAgICAgIC8vIChub24tbGluZWFyIGdlby10by1waXhlbCBtYXBwaW5nIHB1bGxzIHRoZSB2aWV3IHRvd2FyZCB0aGUgcG9sZXMpLlxuICAgICAgICAvLyBJbnN0ZWFkLCBnZW50bHkgc3RlZXIgdGhlIGNlbnRlciB0b3dhcmQgdGhlIGN1cnNvciBsb2NhdGlvbiBwZXIgdGljay5cbiAgICAgICAgaWYgKHNjYWxlIDwgMSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHN0YXJ0Wm9vbUxuZ0xhdCkgfHxcbiAgICAgICAgICAgICFOdW1iZXIuaXNGaW5pdGUoc3RhcnRab29tTG5nTGF0WzBdKSB8fFxuICAgICAgICAgICAgIU51bWJlci5pc0Zpbml0ZShzdGFydFpvb21MbmdMYXRbMV0pXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUGVyLXRpY2sgbGVycCBzdHJlbmd0aCBzY2FsZXMgd2l0aCB6b29tLW91dCBhbW91bnQ7IGNsYW1wZWQgdG8gYXZvaWQgb3ZlcnNob290LlxuICAgICAgICAgIGNvbnN0IHQgPSBNYXRoLm1pbigxLCAoMSAtIHNjYWxlKSAqIDAuMTEpO1xuXG4gICAgICAgICAgLy8gU2hvcnRlc3QtcGF0aCBsb25naXR1ZGUgaW50ZXJwb2xhdGlvbiAoaGFuZGxlcyBhbnRpbWVyaWRpYW4gd3JhcCkuXG4gICAgICAgICAgbGV0IGRMbmcgPSBzdGFydFpvb21MbmdMYXRbMF0gLSBjdXJyZW50UHJvcHMubG9uZ2l0dWRlO1xuICAgICAgICAgIGlmIChkTG5nID4gMTgwKSBkTG5nIC09IDM2MDtcbiAgICAgICAgICBpZiAoZExuZyA8IC0xODApIGRMbmcgKz0gMzYwO1xuXG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgICB6b29tLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjdXJyZW50UHJvcHMubG9uZ2l0dWRlICsgZExuZyAqIHQsXG4gICAgICAgICAgICBsYXRpdHVkZTogY3VycmVudFByb3BzLmxhdGl0dWRlICsgKHN0YXJ0Wm9vbUxuZ0xhdFsxXSAtIGN1cnJlbnRQcm9wcy5sYXRpdHVkZSkgKiB0XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB6b29tZWRWaWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KHtcbiAgICAgICAgICAuLi5jdXJyZW50UHJvcHMsXG4gICAgICAgICAgem9vbVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBab29tLWluOiBleGFjdCBhbmNob3Ig4oCUIHVucHJvamVjdCB0aGUgY3Vyc29yIGluIHRoZSBwb3N0LXpvb20gdmlld3BvcnQgYW5kXG4gICAgICAgIC8vIHNoaWZ0IHRoZSBjZW50ZXIgc28gdGhlIGdyYWJiZWQgZ2VvIHBvaW50IGxhbmRzIGJhY2sgdW5kZXIgdGhlIGN1cnNvci5cbiAgICAgICAgLy8gR3VhcmQgd2l0aCBpc1BpeGVsT25HbG9iZTogaWYgcG9zIG1vdmVkIG9mZi1nbG9iZSBkdXJpbmcgYSBmYXN0IHBpbmNoLFxuICAgICAgICAvLyBmYWxsIGJhY2sgdG8gY2VudGVyIHpvb20uXG4gICAgICAgIGlmICghaXNQaXhlbE9uR2xvYmUoem9vbWVkVmlld3BvcnQsIHBvcykpIHtcbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmcm9tUG9zaXRpb24gPSB6b29tZWRWaWV3cG9ydC51bnByb2plY3QocG9zKTtcblxuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICB6b29tLFxuICAgICAgICAgIGxvbmdpdHVkZTogc3RhcnRab29tTG5nTGF0WzBdIC0gZnJvbVBvc2l0aW9uWzBdICsgem9vbWVkVmlld3BvcnQubG9uZ2l0dWRlLFxuICAgICAgICAgIGxhdGl0dWRlOiBzdGFydFpvb21MbmdMYXRbMV0gLSBmcm9tUG9zaXRpb25bMV0gKyB6b29tZWRWaWV3cG9ydC5sYXRpdHVkZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2xlYXIgdGhlIHBlcnNpc3RlZCBwaW5jaCBhbmNob3IgYXQgZ2VzdHVyZSBlbmQuXG4gICAgICB6b29tRW5kKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICBzdGFydFpvb206IG51bGwsXG4gICAgICAgICAgc3RhcnRab29tTG5nTGF0OiBudWxsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBFeGFjdCwgY3Vyc29yLWFuY2hvcmVkIHBhbjogdGhlIGdlbyBwb2ludCBncmFiYmVkIG9uIG1vdXNlZG93biBzdGF5c1xuICAgICAgLy8gbG9ja2VkIHVuZGVyIHRoZSBjdXJzb3IgZm9yIHRoZSB3aG9sZSBkcmFnLlxuICAgICAgLy9cbiAgICAgIC8vIGRlY2suZ2wgOS54J3MgR2xvYmVDb250cm9sbGVyIHBhbnMgd2l0aCBhICpsaW5lYXJpemVkLCBjZW50ZXItYW5jaG9yZWQqXG4gICAgICAvLyByb3RhdGlvbiAoR2xvYmVWaWV3cG9ydC5wYW5CeVBvc2l0aW9uKFtsbmcsbGF0LHpvb21dLCBwaXhlbCwgc3RhcnRQaXhlbCk6XG4gICAgICAvLyBsb25naXR1ZGUgKz0gKDAuMjUvc2NhbGUpKihzdGFydFBpeGVsLXBpeGVsKSkuIEJlY2F1c2UgdGhlIGFuY2hvciBpcyB0aGVcbiAgICAgIC8vIHZpZXcgQ0VOVEVSIHJhdGhlciB0aGFuIHRoZSBncmFiYmVkIHBvaW50LCB0aGUgZmlyc3QgZHJhZyBmcmFtZSBzbmFwcyB0aGVcbiAgICAgIC8vIGNlbnRlciB0byBzYXRpc2Z5IHRoZSBsaW5lYXIgYXBwcm94aW1hdGlvbiwgcHJvZHVjaW5nIHRoZSB2aXNpYmxlIFwianVtcCB0b1xuICAgICAgLy8gdGhlIHNpZGUvdXBcIiBhdCB0aGUgc3RhcnQgb2YgYSBwYW4gKG1vc3Qgbm90aWNlYWJsZSBhdCBoaWdoIHpvb20pLCBhZnRlclxuICAgICAgLy8gd2hpY2ggaW5jcmVtZW50YWwgZGVsdGFzIHRyYWNrIGZpbmUuIFRoZSBleGFjdCBhbmNob3IgYmVsb3cgcmVtb3ZlcyB0aGF0XG4gICAgICAvLyBmaXJzdC1mcmFtZSBzbmFwLlxuICAgICAgcGFuU3RhcnQoe3Bvc306IHtwb3M6IFtudW1iZXIsIG51bWJlcl19KSB7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQoKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCkpO1xuICAgICAgICAvLyBJZiB0aGUgbW91c2Vkb3duIHBpeGVsIGlzIG91dHNpZGUgdGhlIGdsb2JlIHNpbGhvdWV0dGUsIHN0b3JlIGBmYWxzZWBcbiAgICAgICAgLy8gYXMgYW4gZXhwbGljaXQgc2VudGluZWwgc28gdGhhdCBldmVyeSBzdWJzZXF1ZW50IGBwYW5gIGNhbGwgZm9yIHRoaXNcbiAgICAgICAgLy8gZ2VzdHVyZSBpcyBhIG5vLW9wLiAgV2UgY2FuJ3QgcmVseSBvbiBgX3VucHJvamVjdChwb3MpYCByZXR1cm5pbmdcbiAgICAgICAgLy8gdW5kZWZpbmVkIGhlcmUgYmVjYXVzZSBHbG9iZVZpZXdwb3J0LnVucHJvamVjdCBjbGFtcHMgdGhlXG4gICAgICAgIC8vIHJheeKAk3NwaGVyZSBkaXNjcmltaW5hbnQgdG8gMCB2aWEgTWF0aC5tYXgoMCwg4oCmKSwgd2hpY2ggbWVhbnMgaXRcbiAgICAgICAgLy8gYWx3YXlzIHJldHVybnMgYSB2YWxpZC1sb29raW5nIGxuZy9sYXQgZXZlbiBmb3Igb2ZmLWdsb2JlIHBpeGVscy5cbiAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh2aWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3N0YXJ0UGFuTG5nTGF0OiBmYWxzZX0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHN0YXJ0UGFuTG5nTGF0OiAodGhpcyBhcyBhbnkpLl91bnByb2plY3QocG9zKVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcGFuKHtwb3MsIHN0YXJ0UG9zfToge3BvczogW251bWJlciwgbnVtYmVyXTsgc3RhcnRQb3M/OiBbbnVtYmVyLCBudW1iZXJdfSkge1xuICAgICAgICBjb25zdCBzdG9yZWRTdGFydCA9ICh0aGlzIGFzIGFueSkuZ2V0U3RhdGUoKS5zdGFydFBhbkxuZ0xhdDtcblxuICAgICAgICBjb25zdCBwcm9wcyA9ICh0aGlzIGFzIGFueSkuZ2V0Vmlld3BvcnRQcm9wcygpO1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KHByb3BzKTtcblxuICAgICAgICAvLyBgZmFsc2VgIG1lYW5zIHRoZSBkcmFnIHN0YXJ0ZWQgb3V0c2lkZSB0aGUgZ2xvYmUuIElmIHRoZSBjdXJzb3IgaGFzXG4gICAgICAgIC8vIG5vdyBtb3ZlZCBvbnRvIHRoZSBnbG9iZSwgbGF0Y2ggdGhlIGN1cnJlbnQgcG9zaXRpb24gYXMgdGhlIGFuY2hvclxuICAgICAgICAvLyBzbyByb3RhdGlvbiBiZWdpbnMgZnJvbSB0aGUgZW50cnkgcG9pbnQuIE90aGVyd2lzZSBzdGF5IGZyb3plbi5cbiAgICAgICAgaWYgKHN0b3JlZFN0YXJ0ID09PSBmYWxzZSkge1xuICAgICAgICAgIGlmICghaXNQaXhlbE9uR2xvYmUodmlld3BvcnQsIHBvcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBDdXJzb3IganVzdCBlbnRlcmVkIHRoZSBnbG9iZSDigJQgZXN0YWJsaXNoIHRoZSBhbmNob3IgYW5kIHJldHVyblxuICAgICAgICAgIC8vIHdpdGhvdXQgbW92aW5nOyB0aGUgbmV4dCBwYW4gZXZlbnQgd2lsbCBhcHBseSB0aGUgZmlyc3QgZGVsdGEuXG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgICBzdGFydFBhbkxuZ0xhdDogKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHBvcylcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0YXJ0UGFuTG5nTGF0ID0gc3RvcmVkU3RhcnQgfHwgKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHN0YXJ0UG9zKTtcbiAgICAgICAgaWYgKCFzdGFydFBhbkxuZ0xhdCkge1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25jZSB0aGUgY3Vyc29yIGxlYXZlcyB0aGUgZ2xvYmUgc2lsaG91ZXR0ZSBtaWQtZHJhZywgZnJlZXplIHRoZSB2aWV3LlxuICAgICAgICAvLyB2aWV3cG9ydC51bnByb2plY3QoKSBzbmFwcyBvZmYtZ2xvYmUgcGl4ZWxzIHRvIHRoZSBuZWFyZXN0IGxpbWIgcG9pbnRcbiAgICAgICAgLy8gKHZpYSBNYXRoLm1heCgwLCDigKYpIGluIGl0cyByYXnigJNzcGhlcmUgZGlzY3JpbWluYW50KSwgc28gd2l0aG91dCB0aGlzXG4gICAgICAgIC8vIGd1YXJkIHRoZSBnbG9iZSB3b3VsZCBrZWVwIHJvdGF0aW5nIHRvd2FyZCB0aGUgZWRnZSBhcyB0aGUgY3Vyc29yIG1vdmVzXG4gICAgICAgIC8vIGZ1cnRoZXIgb3V0c2lkZS5cbiAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh2aWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJvbVBvc2l0aW9uID0gdmlld3BvcnQudW5wcm9qZWN0KHBvcyk7XG5cbiAgICAgICAgY29uc3QgbG9uZ2l0dWRlID0gc3RhcnRQYW5MbmdMYXRbMF0gLSBmcm9tUG9zaXRpb25bMF0gKyBwcm9wcy5sb25naXR1ZGU7XG4gICAgICAgIGxldCBsYXRpdHVkZSA9IHN0YXJ0UGFuTG5nTGF0WzFdIC0gZnJvbVBvc2l0aW9uWzFdICsgcHJvcHMubGF0aXR1ZGU7XG4gICAgICAgIGxhdGl0dWRlID0gY2xhbXAobGF0aXR1ZGUsIC1HTE9CRV9NQVhfTEFUSVRVREUsIEdMT0JFX01BWF9MQVRJVFVERSk7XG5cbiAgICAgICAgLy8gZGVjay5nbCA5J3MgR2xvYmVWaWV3cG9ydCBzY2FsZSA9IDJeKHpvb20gLSB6b29tQWRqdXN0KGxhdGl0dWRlKSksIHNvIGFcbiAgICAgICAgLy8gY29uc3RhbnQgem9vbSB3b3VsZCBtYWtlIHRoZSBnbG9iZSBncm93IG9uIHNjcmVlbiBhcyB0aGUgY2VudGVyIG1vdmVzXG4gICAgICAgIC8vIHRvd2FyZCB0aGUgcG9sZXMuIFJlLWNvdXBsZSB6b29tIHRvIHRoZSBuZXcgbGF0aXR1ZGUgKGFzIGRlY2suZ2wgOSdzIG93blxuICAgICAgICAvLyBwYW4gZG9lcykgdG8ga2VlcCB0aGUgb24tc2NyZWVuIHNjYWxlIOKAlCBhbmQgdGh1cyB0aWxlIExPRCDigJQgY29uc3RhbnQuXG4gICAgICAgIGNvbnN0IHZpc3VhbFpvb20gPSBwcm9wcy56b29tIC0gem9vbUFkanVzdChwcm9wcy5sYXRpdHVkZSk7XG4gICAgICAgIGNvbnN0IHpvb20gPSB2aXN1YWxab29tICsgem9vbUFkanVzdChsYXRpdHVkZSk7XG5cbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7bG9uZ2l0dWRlLCBsYXRpdHVkZSwgem9vbX0pO1xuICAgICAgfVxuXG4gICAgICBwYW5FbmQoKSB7XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3N0YXJ0UGFuTG5nTGF0OiBudWxsfSk7XG4gICAgICB9XG4gICAgfSBhcyBhbnk7XG4gIH1cbn1cblxuLyoqXG4gKiBDdXN0b20gR2xvYmVWaWV3IHRoYXQgdXNlcyB6b29tLXRvLWN1cnNvciBjb250cm9sbGVyIGJlaGF2aW9yLlxuICovXG5leHBvcnQgY2xhc3MgS2VwbGVyR2xvYmVWaWV3IGV4dGVuZHMgRGVja0dsb2JlVmlldyB7XG4gIC8vIEZvcndhcmQgY29uc3RydWN0b3IgcHJvcHMgdG8gZGVjay5nbCdzIEdsb2JlVmlldy4gRGVjbGFyZWQgZXhwbGljaXRseSBiZWNhdXNlXG4gIC8vIHRoZSBiYXNlIGNsYXNzIGlzIGxvb3NlbHkgdHlwZWQgKHNlZSBEZWNrR2xvYmVWaWV3IGFib3ZlKSwgd2hpY2ggd291bGRcbiAgLy8gb3RoZXJ3aXNlIHN1cmZhY2UgYSBwYXJhbWV0ZXJsZXNzIGNvbnN0cnVjdG9yIHRvIGNhbGxlcnMuXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogYW55KSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgZ2V0IENvbnRyb2xsZXJUeXBlKCkge1xuICAgIHJldHVybiBab29tVG9DdXJzb3JHbG9iZUNvbnRyb2xsZXI7XG4gIH1cblxuICAvLyBkZWNrLmdsIDkncyBHbG9iZVZpZXcuZ2V0Vmlld3BvcnRUeXBlKCkgc3dhcHMgdGhlIHZpZXdwb3J0IGNsYXNzIGJhc2VkIG9uIHpvb206XG4gIC8vICAgYHJldHVybiB2aWV3U3RhdGUuem9vbSA+IDEyID8gV2ViTWVyY2F0b3JWaWV3cG9ydCA6IEdsb2JlVmlld3BvcnQ7YFxuICAvLyBDcm9zc2luZyB6b29tIDEyIHRoZXJlZm9yZSByZWNvbXB1dGVzIHRpbGUgYm91bmRzIHdpdGggY29tcGxldGVseSBkaWZmZXJlbnRcbiAgLy8gcHJvamVjdGlvbiBtYXRoIChnbG9iZSB2cyBmbGF0IG1lcmNhdG9yKS4gVGhhdCBtYWtlcyBkZWNrJ3MgVGlsZUxheWVyL01WVExheWVyXG4gIC8vIHJlc2VsZWN0IHRpbGVzIGluY29uc2lzdGVudGx5IGFjcm9zcyB0aGUgYm91bmRhcnkg4oCUIG1peGVkIExPRHMgKGUuZy4gYSB6NCB0aWxlXG4gIC8vIG5leHQgdG8gejExKSwgYSB2aXNpYmxlIFwiZmxpY2tlclwiIGF0IDEyLCBhbmQgdGlsZXMgdGhhdCBnZXQgZHJvcHBlZCBhbmQgc3RpY2tcbiAgLy8gYXMgYmxhY2svZW1wdHkgcXVhZHMgKG1vc3Qgb2Z0ZW4gY3Jvc3NpbmcgMTIgb24gdGhlIHdheSAqb3V0KikuXG4gIC8vXG4gIC8vIEZvcmNlIEdsb2JlVmlld3BvcnQgYXQgZXZlcnkgem9vbSB0byBlbGltaW5hdGUgdGhlIHo9MTIgdmlld3BvcnQgc3dhcCBzbyB0aWxlXG4gIC8vIHNlbGVjdGlvbiBzdGF5cyBjb25zaXN0ZW50LiBUaGUgdHJhZGUtb2ZmIGlzIHRoYXQgem9vbSA+IDEyIG5vdyB1c2VzIGZsb2F0MzJcbiAgLy8gZ2xvYmUgcHJlY2lzaW9uIChkZWNrJ3MgZG9jdW1lbnRlZCBcIm5vIGhpZ2gtcHJlY2lzaW9uIHJlbmRlcmluZyA+IDEyXCIgbGltaXQpXG4gIC8vIGluc3RlYWQgb2Ygc3dpdGNoaW5nIHRvIG1lcmNhdG9yIOKAlCBmYXIgcHJlZmVyYWJsZSB0byB0aGUgYmxhY2sgcXVhZHMuXG4gIGdldFZpZXdwb3J0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVja0dsb2JlVmlld3BvcnQ7XG4gIH1cbn1cblxuS2VwbGVyR2xvYmVWaWV3LmRpc3BsYXlOYW1lID0gJ0tlcGxlckdsb2JlVmlldyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxRQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxvQkFBQSxHQUFBSCxPQUFBO0FBQTZELFNBQUFELHdCQUFBSyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBUCx1QkFBQSxZQUFBQSx3QkFBQUss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QUFDRCxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQzs7RUFFckI7RUFDQSxJQUFNRSxFQUFFLEdBQUdDLFdBQUksQ0FBQ0MsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0VBQzdELElBQU1LLEVBQUUsR0FBR0YsV0FBSSxDQUFDQyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0VBQzVELElBQUlFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUlHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQzs7RUFFN0M7RUFDQSxJQUFNQyxFQUFFLEdBQUdKLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFSyxFQUFFLEdBQUdMLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFTSxFQUFFLEdBQUdOLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNoRSxJQUFNTyxFQUFFLEdBQUdKLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFSyxFQUFFLEdBQUdMLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFTSxFQUFFLEdBQUdOLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQzs7RUFFaEU7RUFDQSxJQUFNTyxFQUFFLEdBQUdILEVBQUUsR0FBR0gsRUFBRTtJQUFFTyxFQUFFLEdBQUdI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
404
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNrQ29yZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9jb3JlMiIsIl9jb25zdGFudHMiLCJfZ2xvYmVEZXB0aERpc2tMYXllciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiX2dldFByb3RvdHlwZU9mMiIsInByb3RvdHlwZSIsIl9jYWxsU3VwZXIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJEZWNrR2xvYmVWaWV3IiwiX0dsb2JlVmlldyIsIkdsb2JlQ29udHJvbGxlciIsIl9HbG9iZUNvbnRyb2xsZXIiLCJEZWNrR2xvYmVWaWV3cG9ydCIsIl9HbG9iZVZpZXdwb3J0Iiwiem9vbUFkanVzdCIsImxhdGl0dWRlIiwiTWF0aCIsImxvZzIiLCJQSSIsImNvcyIsImlzUGl4ZWxPbkdsb2JlIiwidmlld3BvcnQiLCJwb3MiLCJtIiwicGl4ZWxVbnByb2plY3Rpb25NYXRyaXgiLCJwMCIsInZlYzQiLCJ0cmFuc2Zvcm1NYXQ0IiwicDEiLCJheCIsImF5IiwiYXoiLCJieCIsImJ5IiwiYnoiLCJkeCIsImR5IiwiZHoiLCJjeCIsImN5IiwiY3oiLCJkU3FyIiwiR0xPQkVfQ09NTU9OX1JBRElVUyIsIlpvb21Ub0N1cnNvckdsb2JlQ29udHJvbGxlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiT3JpZ2luYWxHbG9iZVN0YXRlIiwiQ29udHJvbGxlclN0YXRlIiwib2ZmR2xvYmVab29tQXQiLCJfT3JpZ2luYWxHbG9iZVN0YXRlIiwiUGF0Y2hlZEdsb2JlU3RhdGUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiYXBwbHlDb25zdHJhaW50cyIsInByb3BzIiwicmVzdWx0IiwiY2xhbXBlZExhdGl0dWRlIiwiY2xhbXAiLCJHTE9CRV9NQVhfTEFUSVRVREUiLCJ6b29tIiwiX2NvbnN0cmFpblpvb20iLCJnZXRWaWV3cG9ydFByb3BzIiwiX3Byb3BzIiwibWF4Wm9vbSIsIl9wcm9wczIiLCJtaW5ab29tIiwidW5kZWZpbmVkIiwiWk9PTTAiLCJ6b29tQWRqdXN0bWVudCIsIl9yZWYiLCJzdGFydFBvcyIsInNjYWxlIiwiX2dldFN0YXRlIiwiZ2V0U3RhdGUiLCJzdGFydFpvb20iLCJzdGFydFpvb21MbmdMYXQiLCJjdXJyZW50UHJvcHMiLCJCVVJTVF9USU1FT1VUX01TIiwibm93IiwiRGF0ZSIsImFuY2hvclZpZXdwb3J0IiwibWFrZVZpZXdwb3J0Iiwib25HbG9iZSIsIl9nZXRVcGRhdGVkU3RhdGUiLCJfdW5wcm9qZWN0IiwiaXNBcnJheSIsIk51bWJlciIsImlzRmluaXRlIiwibWluIiwiZExuZyIsImxvbmdpdHVkZSIsInpvb21lZFZpZXdwb3J0IiwiZnJvbVBvc2l0aW9uIiwidW5wcm9qZWN0Iiwiem9vbUVuZCIsInBhblN0YXJ0IiwiX3JlZjIiLCJzdGFydFBhbkxuZ0xhdCIsInBhbiIsIl9yZWYzIiwic3RvcmVkU3RhcnQiLCJ2aXN1YWxab29tIiwicGFuRW5kIiwiS2VwbGVyR2xvYmVWaWV3IiwiZXhwb3J0cyIsIl9EZWNrR2xvYmVWaWV3IiwiZ2V0Vmlld3BvcnRUeXBlIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2xvYmUvZ2xvYmUtdmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBEZWNrQ29yZSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Y2xhbXAsIHZlYzR9IGZyb20gJ0BtYXRoLmdsL2NvcmUnO1xuaW1wb3J0IHtHTE9CRV9NQVhfTEFUSVRVREV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7R0xPQkVfQ09NTU9OX1JBRElVU30gZnJvbSAnLi9nbG9iZS1kZXB0aC1kaXNrLWxheWVyJztcblxuLy8gZGVjay5nbCBleHBvc2VzIEdsb2JlVmlldyAvIEdsb2JlQ29udHJvbGxlciBhcyBleHBlcmltZW50YWwsIHVuZGVyc2NvcmUtcHJlZml4ZWRcbi8vIG1lbWJlcnMuIFRoZWlyIG5hbWVkIHR5cGUgYmluZGluZ3MgYXJlbid0IHJlbGlhYmx5IHJlc29sdmFibGUgdGhyb3VnaCB0aGVcbi8vIHBhY2thZ2UgYmFycmVsIHVuZGVyIHRoaXMgcHJvamVjdCdzIG1vZHVsZSByZXNvbHV0aW9uLCBzbyB3ZSBwdWxsIHRoZW0gb2ZmIHRoZVxuLy8gbmFtZXNwYWNlIHdpdGggYSBsb29zZSB0eXBlLiBSdW50aW1lIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC5cbmNvbnN0IERlY2tHbG9iZVZpZXcgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3IGFzIGFueTtcbmNvbnN0IEdsb2JlQ29udHJvbGxlciA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZUNvbnRyb2xsZXIgYXMgYW55O1xuY29uc3QgRGVja0dsb2JlVmlld3BvcnQgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3cG9ydCBhcyBhbnk7XG5cbi8qKlxuICogTGF0aXR1ZGUtYmFzZWQgem9vbSBhZGp1c3RtZW50IHVzZWQgYnkgZGVjay5nbCdzIEdsb2JlVmlld3BvcnQsIHJlcGxpY2F0ZWRcbiAqIGhlcmUgc28gb3VyIGN1c3RvbSBgX2NvbnN0cmFpblpvb21gIG1hdGNoZXMgZGVjay5nbCdzIGNvb3JkaW5hdGUgbWF0aC5cbiAqIFNlZSBAZGVjay5nbC9jb3JlIGdsb2JlLXZpZXdwb3J0LmpzIGB6b29tQWRqdXN0YC5cbiAqL1xuZnVuY3Rpb24gem9vbUFkanVzdChsYXRpdHVkZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubG9nMihNYXRoLlBJICogTWF0aC5jb3MoKGxhdGl0dWRlICogTWF0aC5QSSkgLyAxODApKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNjcmVlbiBwaXhlbCBgcG9zYCBsaWVzIHdpdGhpbiB0aGUgdmlzaWJsZSBnbG9iZVxuICogc2lsaG91ZXR0ZS5cbiAqXG4gKiBHbG9iZVZpZXdwb3J0LnVucHJvamVjdCgpIGNsYW1wcyB0aGUgcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCB3aXRoXG4gKiBNYXRoLm1heCgwLCBywrLiiJJkwrIpLCBzbyBpdCBhbHdheXMgcmV0dXJucyBhIHZhbGlkIGxuZy9sYXQgZXZlbiBmb3JcbiAqIG9mZi1nbG9iZSBwaXhlbHMgKHNuYXBwaW5nIHRvIHRoZSBsaW1iKS4gIFdlIHJlcGxpY2F0ZSB0aGUgc2FtZSByYXkgY2FzdFxuICogYnV0IGNoZWNrIHRoZSBkaXNjcmltaW5hbnQgYmVmb3JlIHRoZSBjbGFtcCB1c2luZyB0aGUgc3RhbmRhcmRcbiAqIHNxdWFyZWQtZGlzdGFuY2UtZnJvbS1vcmlnaW4tdG8tcmF5IGZvcm11bGE6IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrIuXG4gKi9cbmZ1bmN0aW9uIGlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0OiBhbnksIHBvczogW251bWJlciwgbnVtYmVyXSk6IGJvb2xlYW4ge1xuICBjb25zdCBtOiBudW1iZXJbXSA9IHZpZXdwb3J0LnBpeGVsVW5wcm9qZWN0aW9uTWF0cml4O1xuICBpZiAoIW0pIHJldHVybiB0cnVlOyAvLyBjb25zZXJ2YXRpdmUgZmFsbGJhY2sgaWYgbWF0cml4IHVuYXZhaWxhYmxlXG5cbiAgLy8gQ2FzdCBhIHJheSB0aHJvdWdoIHRoZSBwaXhlbCBhdCB0aGUgbmVhciBhbmQgZmFyIHBsYW5lcy5cbiAgY29uc3QgcDAgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgLTEsIDFdLCBtKTtcbiAgY29uc3QgcDEgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgMSwgMV0sIG0pO1xuICBpZiAocDBbM10gPT09IDAgfHwgcDFbM10gPT09IDApIHJldHVybiB0cnVlOyAvLyBkZWdlbmVyYXRlIHByb2plY3Rpb25cblxuICAvLyBQZXJzcGVjdGl2ZS1kaXZpZGUgdG8gd29ybGQgc3BhY2UuXG4gIGNvbnN0IGF4ID0gcDBbMF0gLyBwMFszXSwgYXkgPSBwMFsxXSAvIHAwWzNdLCBheiA9IHAwWzJdIC8gcDBbM107XG4gIGNvbnN0IGJ4ID0gcDFbMF0gLyBwMVszXSwgYnkgPSBwMVsxXSAvIHAxWzNdLCBieiA9IHAxWzJdIC8gcDFbM107XG5cbiAgLy8gUmF5IGRpcmVjdGlvbi5cbiAgY29uc3QgZHggPSBieCAtIGF4LCBkeSA9IGJ5IC0gYXksIGR6ID0gYnogLSBhejtcblxuICAvLyBTcXVhcmVkIGRpc3RhbmNlIGZyb20gdGhlIG9yaWdpbiAoZ2xvYmUgY2VudGVyKSB0byB0aGUgcmF5OlxuICAvLyAgIGTCsiA9IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrJcbiAgY29uc3QgY3ggPSBheSAqIGR6IC0gYXogKiBkeTtcbiAgY29uc3QgY3kgPSBheiAqIGR4IC0gYXggKiBkejtcbiAgY29uc3QgY3ogPSBheCAqIGR5IC0gYXkgKiBkeDtcbiAgY29uc3QgZFNxciA9IChjeCAqIGN4ICsgY3kgKiBjeSArIGN6ICogY3opIC8gKGR4ICogZHggKyBkeSAqIGR5ICsgZHogKiBkeik7XG5cbiAgcmV0dXJuIGRTcXIgPD0gR0xPQkVfQ09NTU9OX1JBRElVUyAqIEdMT0JFX0NPTU1PTl9SQURJVVM7XG59XG5cbi8qKlxuICogQ3VzdG9tIEdsb2JlQ29udHJvbGxlciB0aGF0IHJlc3RvcmVzIHpvb20tdG8tY3Vyc29yIGJlaGF2aW9yLlxuICpcbiAqIEluIGRlY2suZ2wgOS54LCB0aGUgZGVmYXVsdCBHbG9iZUNvbnRyb2xsZXIncyBHbG9iZVN0YXRlLnpvb20oKSBpZ25vcmVzIHRoZVxuICogY3Vyc29yIHBvc2l0aW9uIGFuZCBhbHdheXMgem9vbXMgdG93YXJkIHRoZSBjZW50ZXIuIFRoaXMgY29udHJvbGxlciBwYXRjaGVzXG4gKiB0aGF0IGJlaGF2aW9yIGJ5IG92ZXJyaWRpbmcgdGhlIENvbnRyb2xsZXJTdGF0ZSdzIHpvb20gbWV0aG9kIHRvIHBhbiB0aGVcbiAqIGdsb2JlIHVuZGVyIHRoZSBjdXJzb3Igd2hpbGUgem9vbWluZywgc28gem9vbS10by1jdXJzb3Igd29ya3MgdGhlIHNhbWUgd2F5IGl0XG4gKiBkb2VzIGZvciB0aGUgMkQgTWFwQ29udHJvbGxlci5cbiAqL1xuY2xhc3MgWm9vbVRvQ3Vyc29yR2xvYmVDb250cm9sbGVyIGV4dGVuZHMgR2xvYmVDb250cm9sbGVyIHtcbiAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICBzdXBlciguLi5hcmdzKTtcbiAgICBjb25zdCBPcmlnaW5hbEdsb2JlU3RhdGUgPSB0aGlzLkNvbnRyb2xsZXJTdGF0ZTtcblxuICAgIC8vIFRyYWNrcyB3aGVuIHRoZSBtb3N0IHJlY2VudCBvZmYtZ2xvYmUgd2hlZWwtem9vbSB0aWNrIGZpcmVkLlxuICAgIC8vIFN0b3JlZCBhcyBhIGNvbnRyb2xsZXItbGV2ZWwgY2xvc3VyZSB2YXJpYWJsZSByYXRoZXIgdGhhbiBpbiBWaWV3U3RhdGVcbiAgICAvLyBiZWNhdXNlIGRlY2suZ2wncyBDb250cm9sbGVyIG5ldmVyIGNhbGxzIHpvb21FbmQoKSBmb3Igd2hlZWwgZXZlbnRzIOKAlFxuICAgIC8vIG9ubHkgZm9yIHBpbmNoL3RvdWNoIOKAlCBzbyB0aGVyZSBpcyBubyByZWxpYWJsZSBob29rIHRvIGNsZWFyIGFcbiAgICAvLyBWaWV3U3RhdGUtYmFzZWQgc2VudGluZWwgYWZ0ZXIgYSB3aGVlbCBzY3JvbGwgc2Vzc2lvbiBlbmRzLlxuICAgIC8vIEEgc2ltcGxlIHRpbWVzdGFtcCBsZXRzIHVzIGRldGVjdCB3aGVuIGEgbmV3IHNjcm9sbCBidXJzdCBoYXMgc3RhcnRlZFxuICAgIC8vICg+IEJVUlNUX1RJTUVPVVRfTVMgc2luY2UgdGhlIGxhc3Qgb2ZmLWdsb2JlIHRpY2spIHNvIGN1cnNvci1hbmNob3JlZFxuICAgIC8vIHpvb20gY2FuIHJlc3VtZSBuYXR1cmFsbHkgb24gdGhlIG5leHQgaW5kZXBlbmRlbnQgc2Nyb2xsLlxuICAgIGxldCBvZmZHbG9iZVpvb21BdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBDcmVhdGUgcGF0Y2hlZCBHbG9iZVN0YXRlIHRoYXQgc3VwcG9ydHMgem9vbS10by1jdXJzb3JcbiAgICB0aGlzLkNvbnRyb2xsZXJTdGF0ZSA9IGNsYXNzIFBhdGNoZWRHbG9iZVN0YXRlIGV4dGVuZHMgT3JpZ2luYWxHbG9iZVN0YXRlIHtcbiAgICAgIC8vIENvbnN0cmFpbiB0aGUgY2FtZXJhIHRhcmdldCB0byBhIGxhdGl0dWRlIGJhbmQgYXJvdW5kIHRoZSBlcXVhdG9yIHNvIHRoZVxuICAgICAgLy8gdmlldyBjYW4ndCBiZSBjZW50ZXJlZCBvbiB0aGUgcG9sZXMuIGRlY2suZ2wncyBhcHBseUNvbnN0cmFpbnRzIGNsYW1wc1xuICAgICAgLy8gbGF0aXR1ZGUgdG8gfjg1wrAsIHdoaWNoIHN0aWxsIGxldHMgdGhlIGNhbWVyYSBsb29rIHN0cmFpZ2h0IGF0IGEgcG9sZS5cbiAgICAgIGFwcGx5Q29uc3RyYWludHMocHJvcHM6IGFueSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBzdXBlci5hcHBseUNvbnN0cmFpbnRzKHByb3BzKTtcbiAgICAgICAgY29uc3QgY2xhbXBlZExhdGl0dWRlID0gY2xhbXAocmVzdWx0LmxhdGl0dWRlLCAtR0xPQkVfTUFYX0xBVElUVURFLCBHTE9CRV9NQVhfTEFUSVRVREUpO1xuICAgICAgICBpZiAoY2xhbXBlZExhdGl0dWRlICE9PSByZXN1bHQubGF0aXR1ZGUpIHtcbiAgICAgICAgICAvLyBkZWNrLmdsIGNvdXBsZXMgem9vbSB0byBsYXRpdHVkZSB2aWEgem9vbUFkanVzdDsgd2hlbiB3ZSBmdXJ0aGVyXG4gICAgICAgICAgLy8gY2xhbXAgbGF0aXR1ZGUsIHJlLWFwcGx5IHRoZSBzYW1lIGRlbHRhIHNvIHpvb20gc3RheXMgY29uc2lzdGVudC5cbiAgICAgICAgICByZXN1bHQuem9vbSArPSB6b29tQWRqdXN0KGNsYW1wZWRMYXRpdHVkZSkgLSB6b29tQWRqdXN0KHJlc3VsdC5sYXRpdHVkZSk7XG4gICAgICAgICAgcmVzdWx0LmxhdGl0dWRlID0gY2xhbXBlZExhdGl0dWRlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGRlY2suZ2wncyBHbG9iZVN0YXRlLl9jb25zdHJhaW5ab29tIGRlcml2ZXMgYSBtaW5pbXVtIHpvb20gZnJvbSBgbWF4Qm91bmRzYFxuICAgICAgLy8gdGhhdCBmb3JjZXMgdGhlIGdsb2JlIHRvIGZpbGwgdGhlIHZpZXdwb3J0LiBUaGF0IGJvdW5kcy1iYXNlZCBtaW5pbXVtXG4gICAgICAvLyAofjMgZm9yIGEgdHlwaWNhbCB3aW5kb3cpIG92ZXJyaWRlcyBhbnkgY29uZmlndXJlZCBgbWluWm9vbWAsIHNvIHRoZSB1c2VyXG4gICAgICAvLyBjYW4gbmV2ZXIgem9vbSBvdXQgZmFyIGVub3VnaCB0byBzZWUgdGhlIHdob2xlIGdsb2JlIHNtYWxsIG9uIHNjcmVlbi5cbiAgICAgIC8vIE92ZXJyaWRlIGl0IHRvIGhvbm9yIG9ubHkgdGhlIGNvbmZpZ3VyZWQgbWluWm9vbS9tYXhab29tIChwbHVzIHRoZSBzYW1lXG4gICAgICAvLyBsYXRpdHVkZSBhZGp1c3RtZW50IGRlY2suZ2wgdXNlcyksIGlnbm9yaW5nIHRoZSBib3VuZHMtYmFzZWQgZmxvb3IuXG4gICAgICBfY29uc3RyYWluWm9vbSh6b29tOiBudW1iZXIsIHByb3BzPzogYW55KSB7XG4gICAgICAgIHByb3BzID0gcHJvcHMgfHwgKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHtsYXRpdHVkZSwgbWF4Wm9vbX0gPSBwcm9wcztcbiAgICAgICAgbGV0IHttaW5ab29tfSA9IHByb3BzO1xuICAgICAgICBpZiAobWluWm9vbSA9PT0gdW5kZWZpbmVkIHx8IG1pblpvb20gPT09IG51bGwpIHtcbiAgICAgICAgICBtaW5ab29tID0gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBaT09NMCA9IHpvb21BZGp1c3QoMCk7XG4gICAgICAgIGNvbnN0IHpvb21BZGp1c3RtZW50ID0gem9vbUFkanVzdChsYXRpdHVkZSkgLSBaT09NMDtcbiAgICAgICAgcmV0dXJuIGNsYW1wKHpvb20sIG1pblpvb20gKyB6b29tQWRqdXN0bWVudCwgbWF4Wm9vbSArIHpvb21BZGp1c3RtZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gRXhhY3Qgem9vbS10by1jdXJzb3IuIGRlY2suZ2wgOS54J3MgR2xvYmVDb250cm9sbGVyIGRvZXMgbm90IGtlZXAgdGhlIHBvaW50XG4gICAgICAvLyB1bmRlciB0aGUgY3Vyc29yIGZpeGVkIHdoaWxlIHpvb21pbmcsIGluIHR3byB3YXlzIHdlIHdvcmsgYXJvdW5kIGhlcmU6XG4gICAgICAvLyAgIDEuIEl0cyBHbG9iZVN0YXRlLnpvb20oKSBpZ25vcmVzIHRoZSBjdXJzb3IgYW5kIHpvb21zIHRvd2FyZCB0aGUgY2VudGVyLlxuICAgICAgLy8gICAyLiBJdHMgR2xvYmVWaWV3cG9ydC5wYW5CeVBvc2l0aW9uIGlzIGEgbG9zc3ksICpsaW5lYXJpemVkKiAzLWFyZ1xuICAgICAgLy8gICAgICByb3RhdGlvbiAobG9uZ2l0dWRlICs9ICgwLjI1L3NjYWxlKSooc3RhcnRQaXhlbC1waXhlbCksIHJlLWRlcml2ZXNcbiAgICAgIC8vICAgICAgem9vbSkuIFVzaW5nIGl0IHBlciB3aGVlbCB0aWNrIGFjY3VtdWxhdGVzIGVycm9yLCBzbyBhZnRlciBhIGxvbmdcbiAgICAgIC8vICAgICAgY29udGludW91cyB6b29tIHRoZSBwb2ludCBlbmRzIHVwIG5vdGljZWFibHkgc2hpZnRlZCBmcm9tIHdoYXQgd2FzXG4gICAgICAvLyAgICAgIG9yaWdpbmFsbHkgdW5kZXIgdGhlIGN1cnNvci5cbiAgICAgIC8vIFRoZSByZWNlbnRlciBiZWxvdyBpcyBhbiAqZXhhY3QgYWJzb2x1dGUqIHRyYW5zbGF0aW9uOiB1bnByb2plY3QgdGhlXG4gICAgICAvLyBjdXJzb3IgcGl4ZWwgaW4gdGhlIHpvb21lZCB2aWV3cG9ydCB0byBnZXQgdGhlIGdlbyBwb2ludCBjdXJyZW50bHkgdW5kZXIgaXQsXG4gICAgICAvLyB0aGVuIHNoaWZ0IHRoZSBjZW50ZXIgYnkgKGFuY2hvciAtIHRoYXRQb2ludCkuIE5vIHpvb20gY291cGxpbmcsIG5vXG4gICAgICAvLyByb3RhdGlvblNwZWVkLCBhbmQgaXQgYXBwbGllcyB0byB6b29tLWluIGFuZCB6b29tLW91dCBzeW1tZXRyaWNhbGx5LCBzb1xuICAgICAgLy8gdGhlcmUgaXMgbm8gcGVyLXRpY2sgYWNjdW11bGF0ZWQgZHJpZnQuXG4gICAgICB6b29tKHtcbiAgICAgICAgcG9zLFxuICAgICAgICBzdGFydFBvcyxcbiAgICAgICAgc2NhbGVcbiAgICAgIH06IHtcbiAgICAgICAgcG9zOiBbbnVtYmVyLCBudW1iZXJdO1xuICAgICAgICBzdGFydFBvcz86IFtudW1iZXIsIG51bWJlcl07XG4gICAgICAgIHNjYWxlOiBudW1iZXI7XG4gICAgICB9KSB7XG4gICAgICAgIGxldCB7c3RhcnRab29tLCBzdGFydFpvb21MbmdMYXR9ID0gKHRoaXMgYXMgYW55KS5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UHJvcHMgPSAodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKTtcblxuICAgICAgICBpZiAoIXN0YXJ0Wm9vbUxuZ0xhdCkge1xuICAgICAgICAgIC8vIFdoZWVsIHpvb206IHJlLWRlcml2ZSBhbmNob3IgZWFjaCB0aWNrIChwaW5jaCBzZXRzIGl0IG9uY2UgaW4gem9vbVN0YXJ0KS5cbiAgICAgICAgICBzdGFydFpvb20gPSBjdXJyZW50UHJvcHMuem9vbTtcblxuICAgICAgICAgIC8vIFN1cHByZXNzIGN1cnNvci1hbmNob3Jpbmcgd2hlbiB0aGUgY3Vyc29yIGlzIG9mZi1nbG9iZSBvciB3aGVuIGFcbiAgICAgICAgICAvLyByZWNlbnQgdGljayB3YXMgb2ZmLWdsb2JlICh3aXRoaW4gQlVSU1RfVElNRU9VVF9NUykuICBkZWNrLmdsIG5ldmVyXG4gICAgICAgICAgLy8gY2FsbHMgem9vbUVuZCgpIGZvciB3aGVlbCBldmVudHMgc28gd2UgdHJhY2sgdGhlIHNlc3Npb24gd2l0aCB0aGVcbiAgICAgICAgICAvLyBjbG9zdXJlIHZhcmlhYmxlIGBvZmZHbG9iZVpvb21BdGAgcmF0aGVyIHRoYW4gVmlld1N0YXRlLlxuICAgICAgICAgIGNvbnN0IEJVUlNUX1RJTUVPVVRfTVMgPSAyMDA7XG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBjb25zdCBhbmNob3JWaWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KGN1cnJlbnRQcm9wcyk7XG4gICAgICAgICAgY29uc3Qgb25HbG9iZSA9IGlzUGl4ZWxPbkdsb2JlKGFuY2hvclZpZXdwb3J0LCBzdGFydFBvcyB8fCBwb3MpO1xuXG4gICAgICAgICAgaWYgKCFvbkdsb2JlKSBvZmZHbG9iZVpvb21BdCA9IG5vdztcblxuICAgICAgICAgIGlmICghb25HbG9iZSB8fCAob2ZmR2xvYmVab29tQXQgIT09IG51bGwgJiYgbm93IC0gb2ZmR2xvYmVab29tQXQgPCBCVVJTVF9USU1FT1VUX01TKSkge1xuICAgICAgICAgICAgY29uc3Qgem9vbSA9ICh0aGlzIGFzIGFueSkuX2NvbnN0cmFpblpvb20oc3RhcnRab29tICsgTWF0aC5sb2cyKHNjYWxlKSk7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2ZmR2xvYmVab29tQXQgPSBudWxsO1xuICAgICAgICAgIHN0YXJ0Wm9vbUxuZ0xhdCA9ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChzdGFydFBvcykgfHwgKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHBvcyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB6b29tID0gKHRoaXMgYXMgYW55KS5fY29uc3RyYWluWm9vbShzdGFydFpvb20gKyBNYXRoLmxvZzIoc2NhbGUpKTtcblxuICAgICAgICBpZiAoIXN0YXJ0Wm9vbUxuZ0xhdCkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFpvb20tb3V0IChzY2FsZSA8IDEpOiBleGFjdCBjdXJzb3IgYW5jaG9yaW5nIGlzIHVuc3RhYmxlIG5lYXIgdGhlIGxpbWJcbiAgICAgICAgLy8gKG5vbi1saW5lYXIgZ2VvLXRvLXBpeGVsIG1hcHBpbmcgcHVsbHMgdGhlIHZpZXcgdG93YXJkIHRoZSBwb2xlcykuXG4gICAgICAgIC8vIEluc3RlYWQsIGdlbnRseSBzdGVlciB0aGUgY2VudGVyIHRvd2FyZCB0aGUgY3Vyc29yIGxvY2F0aW9uIHBlciB0aWNrLlxuICAgICAgICBpZiAoc2NhbGUgPCAxKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoc3RhcnRab29tTG5nTGF0KSB8fFxuICAgICAgICAgICAgIU51bWJlci5pc0Zpbml0ZShzdGFydFpvb21MbmdMYXRbMF0pIHx8XG4gICAgICAgICAgICAhTnVtYmVyLmlzRmluaXRlKHN0YXJ0Wm9vbUxuZ0xhdFsxXSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBQZXItdGljayBsZXJwIHN0cmVuZ3RoIHNjYWxlcyB3aXRoIHpvb20tb3V0IGFtb3VudDsgY2xhbXBlZCB0byBhdm9pZCBvdmVyc2hvb3QuXG4gICAgICAgICAgY29uc3QgdCA9IE1hdGgubWluKDEsICgxIC0gc2NhbGUpICogMC4xMSk7XG5cbiAgICAgICAgICAvLyBTaG9ydGVzdC1wYXRoIGxvbmdpdHVkZSBpbnRlcnBvbGF0aW9uIChoYW5kbGVzIGFudGltZXJpZGlhbiB3cmFwKS5cbiAgICAgICAgICBsZXQgZExuZyA9IHN0YXJ0Wm9vbUxuZ0xhdFswXSAtIGN1cnJlbnRQcm9wcy5sb25naXR1ZGU7XG4gICAgICAgICAgaWYgKGRMbmcgPiAxODApIGRMbmcgLT0gMzYwO1xuICAgICAgICAgIGlmIChkTG5nIDwgLTE4MCkgZExuZyArPSAzNjA7XG5cbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICAgIHpvb20sXG4gICAgICAgICAgICBsb25naXR1ZGU6IGN1cnJlbnRQcm9wcy5sb25naXR1ZGUgKyBkTG5nICogdCxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjdXJyZW50UHJvcHMubGF0aXR1ZGUgKyAoc3RhcnRab29tTG5nTGF0WzFdIC0gY3VycmVudFByb3BzLmxhdGl0dWRlKSAqIHRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHpvb21lZFZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQoe1xuICAgICAgICAgIC4uLmN1cnJlbnRQcm9wcyxcbiAgICAgICAgICB6b29tXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFpvb20taW46IGV4YWN0IGFuY2hvciDigJQgdW5wcm9qZWN0IHRoZSBjdXJzb3IgaW4gdGhlIHBvc3Qtem9vbSB2aWV3cG9ydCBhbmRcbiAgICAgICAgLy8gc2hpZnQgdGhlIGNlbnRlciBzbyB0aGUgZ3JhYmJlZCBnZW8gcG9pbnQgbGFuZHMgYmFjayB1bmRlciB0aGUgY3Vyc29yLlxuICAgICAgICAvLyBHdWFyZCB3aXRoIGlzUGl4ZWxPbkdsb2JlOiBpZiBwb3MgbW92ZWQgb2ZmLWdsb2JlIGR1cmluZyBhIGZhc3QgcGluY2gsXG4gICAgICAgIC8vIGZhbGwgYmFjayB0byBjZW50ZXIgem9vbS5cbiAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh6b29tZWRWaWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZyb21Qb3NpdGlvbiA9IHpvb21lZFZpZXdwb3J0LnVucHJvamVjdChwb3MpO1xuXG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHpvb20sXG4gICAgICAgICAgbG9uZ2l0dWRlOiBzdGFydFpvb21MbmdMYXRbMF0gLSBmcm9tUG9zaXRpb25bMF0gKyB6b29tZWRWaWV3cG9ydC5sb25naXR1ZGUsXG4gICAgICAgICAgbGF0aXR1ZGU6IHN0YXJ0Wm9vbUxuZ0xhdFsxXSAtIGZyb21Qb3NpdGlvblsxXSArIHpvb21lZFZpZXdwb3J0LmxhdGl0dWRlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBDbGVhciB0aGUgcGVyc2lzdGVkIHBpbmNoIGFuY2hvciBhdCBnZXN0dXJlIGVuZC5cbiAgICAgIHpvb21FbmQoKSB7XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHN0YXJ0Wm9vbTogbnVsbCxcbiAgICAgICAgICBzdGFydFpvb21MbmdMYXQ6IG51bGxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4YWN0LCBjdXJzb3ItYW5jaG9yZWQgcGFuOiB0aGUgZ2VvIHBvaW50IGdyYWJiZWQgb24gbW91c2Vkb3duIHN0YXlzXG4gICAgICAvLyBsb2NrZWQgdW5kZXIgdGhlIGN1cnNvciBmb3IgdGhlIHdob2xlIGRyYWcuXG4gICAgICAvL1xuICAgICAgLy8gZGVjay5nbCA5LngncyBHbG9iZUNvbnRyb2xsZXIgcGFucyB3aXRoIGEgKmxpbmVhcml6ZWQsIGNlbnRlci1hbmNob3JlZCpcbiAgICAgIC8vIHJvdGF0aW9uIChHbG9iZVZpZXdwb3J0LnBhbkJ5UG9zaXRpb24oW2xuZyxsYXQsem9vbV0sIHBpeGVsLCBzdGFydFBpeGVsKTpcbiAgICAgIC8vIGxvbmdpdHVkZSArPSAoMC4yNS9zY2FsZSkqKHN0YXJ0UGl4ZWwtcGl4ZWwpKS4gQmVjYXVzZSB0aGUgYW5jaG9yIGlzIHRoZVxuICAgICAgLy8gdmlldyBDRU5URVIgcmF0aGVyIHRoYW4gdGhlIGdyYWJiZWQgcG9pbnQsIHRoZSBmaXJzdCBkcmFnIGZyYW1lIHNuYXBzIHRoZVxuICAgICAgLy8gY2VudGVyIHRvIHNhdGlzZnkgdGhlIGxpbmVhciBhcHByb3hpbWF0aW9uLCBwcm9kdWNpbmcgdGhlIHZpc2libGUgXCJqdW1wIHRvXG4gICAgICAvLyB0aGUgc2lkZS91cFwiIGF0IHRoZSBzdGFydCBvZiBhIHBhbiAobW9zdCBub3RpY2VhYmxlIGF0IGhpZ2ggem9vbSksIGFmdGVyXG4gICAgICAvLyB3aGljaCBpbmNyZW1lbnRhbCBkZWx0YXMgdHJhY2sgZmluZS4gVGhlIGV4YWN0IGFuY2hvciBiZWxvdyByZW1vdmVzIHRoYXRcbiAgICAgIC8vIGZpcnN0LWZyYW1lIHNuYXAuXG4gICAgICBwYW5TdGFydCh7cG9zfToge3BvczogW251bWJlciwgbnVtYmVyXX0pIHtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSAodGhpcyBhcyBhbnkpLm1ha2VWaWV3cG9ydCgodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKSk7XG4gICAgICAgIC8vIElmIHRoZSBtb3VzZWRvd24gcGl4ZWwgaXMgb3V0c2lkZSB0aGUgZ2xvYmUgc2lsaG91ZXR0ZSwgc3RvcmUgYGZhbHNlYFxuICAgICAgICAvLyBhcyBhbiBleHBsaWNpdCBzZW50aW5lbCBzbyB0aGF0IGV2ZXJ5IHN1YnNlcXVlbnQgYHBhbmAgY2FsbCBmb3IgdGhpc1xuICAgICAgICAvLyBnZXN0dXJlIGlzIGEgbm8tb3AuICBXZSBjYW4ndCByZWx5IG9uIGBfdW5wcm9qZWN0KHBvcylgIHJldHVybmluZ1xuICAgICAgICAvLyB1bmRlZmluZWQgaGVyZSBiZWNhdXNlIEdsb2JlVmlld3BvcnQudW5wcm9qZWN0IGNsYW1wcyB0aGVcbiAgICAgICAgLy8gcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCB0byAwIHZpYSBNYXRoLm1heCgwLCDigKYpLCB3aGljaCBtZWFucyBpdFxuICAgICAgICAvLyBhbHdheXMgcmV0dXJucyBhIHZhbGlkLWxvb2tpbmcgbG5nL2xhdCBldmVuIGZvciBvZmYtZ2xvYmUgcGl4ZWxzLlxuICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7c3RhcnRQYW5MbmdMYXQ6IGZhbHNlfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgc3RhcnRQYW5MbmdMYXQ6ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChwb3MpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBwYW4oe3Bvcywgc3RhcnRQb3N9OiB7cG9zOiBbbnVtYmVyLCBudW1iZXJdOyBzdGFydFBvcz86IFtudW1iZXIsIG51bWJlcl19KSB7XG4gICAgICAgIGNvbnN0IHN0b3JlZFN0YXJ0ID0gKHRoaXMgYXMgYW55KS5nZXRTdGF0ZSgpLnN0YXJ0UGFuTG5nTGF0O1xuXG4gICAgICAgIGNvbnN0IHByb3BzID0gKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQocHJvcHMpO1xuXG4gICAgICAgIC8vIGBmYWxzZWAgbWVhbnMgdGhlIGRyYWcgc3RhcnRlZCBvdXRzaWRlIHRoZSBnbG9iZS4gSWYgdGhlIGN1cnNvciBoYXNcbiAgICAgICAgLy8gbm93IG1vdmVkIG9udG8gdGhlIGdsb2JlLCBsYXRjaCB0aGUgY3VycmVudCBwb3NpdGlvbiBhcyB0aGUgYW5jaG9yXG4gICAgICAgIC8vIHNvIHJvdGF0aW9uIGJlZ2lucyBmcm9tIHRoZSBlbnRyeSBwb2ludC4gT3RoZXJ3aXNlIHN0YXkgZnJvemVuLlxuICAgICAgICBpZiAoc3RvcmVkU3RhcnQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh2aWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEN1cnNvciBqdXN0IGVudGVyZWQgdGhlIGdsb2JlIOKAlCBlc3RhYmxpc2ggdGhlIGFuY2hvciBhbmQgcmV0dXJuXG4gICAgICAgICAgLy8gd2l0aG91dCBtb3Zpbmc7IHRoZSBuZXh0IHBhbiBldmVudCB3aWxsIGFwcGx5IHRoZSBmaXJzdCBkZWx0YS5cbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICAgIHN0YXJ0UGFuTG5nTGF0OiAodGhpcyBhcyBhbnkpLl91bnByb2plY3QocG9zKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhcnRQYW5MbmdMYXQgPSBzdG9yZWRTdGFydCB8fCAodGhpcyBhcyBhbnkpLl91bnByb2plY3Qoc3RhcnRQb3MpO1xuICAgICAgICBpZiAoIXN0YXJ0UGFuTG5nTGF0KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmNlIHRoZSBjdXJzb3IgbGVhdmVzIHRoZSBnbG9iZSBzaWxob3VldHRlIG1pZC1kcmFnLCBmcmVlemUgdGhlIHZpZXcuXG4gICAgICAgIC8vIHZpZXdwb3J0LnVucHJvamVjdCgpIHNuYXBzIG9mZi1nbG9iZSBwaXhlbHMgdG8gdGhlIG5lYXJlc3QgbGltYiBwb2ludFxuICAgICAgICAvLyAodmlhIE1hdGgubWF4KDAsIOKApikgaW4gaXRzIHJheeKAk3NwaGVyZSBkaXNjcmltaW5hbnQpLCBzbyB3aXRob3V0IHRoaXNcbiAgICAgICAgLy8gZ3VhcmQgdGhlIGdsb2JlIHdvdWxkIGtlZXAgcm90YXRpbmcgdG93YXJkIHRoZSBlZGdlIGFzIHRoZSBjdXJzb3IgbW92ZXNcbiAgICAgICAgLy8gZnVydGhlciBvdXRzaWRlLlxuICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmcm9tUG9zaXRpb24gPSB2aWV3cG9ydC51bnByb2plY3QocG9zKTtcblxuICAgICAgICBjb25zdCBsb25naXR1ZGUgPSBzdGFydFBhbkxuZ0xhdFswXSAtIGZyb21Qb3NpdGlvblswXSArIHByb3BzLmxvbmdpdHVkZTtcbiAgICAgICAgbGV0IGxhdGl0dWRlID0gc3RhcnRQYW5MbmdMYXRbMV0gLSBmcm9tUG9zaXRpb25bMV0gKyBwcm9wcy5sYXRpdHVkZTtcbiAgICAgICAgbGF0aXR1ZGUgPSBjbGFtcChsYXRpdHVkZSwgLUdMT0JFX01BWF9MQVRJVFVERSwgR0xPQkVfTUFYX0xBVElUVURFKTtcblxuICAgICAgICAvLyBkZWNrLmdsIDkncyBHbG9iZVZpZXdwb3J0IHNjYWxlID0gMl4oem9vbSAtIHpvb21BZGp1c3QobGF0aXR1ZGUpKSwgc28gYVxuICAgICAgICAvLyBjb25zdGFudCB6b29tIHdvdWxkIG1ha2UgdGhlIGdsb2JlIGdyb3cgb24gc2NyZWVuIGFzIHRoZSBjZW50ZXIgbW92ZXNcbiAgICAgICAgLy8gdG93YXJkIHRoZSBwb2xlcy4gUmUtY291cGxlIHpvb20gdG8gdGhlIG5ldyBsYXRpdHVkZSAoYXMgZGVjay5nbCA5J3Mgb3duXG4gICAgICAgIC8vIHBhbiBkb2VzKSB0byBrZWVwIHRoZSBvbi1zY3JlZW4gc2NhbGUg4oCUIGFuZCB0aHVzIHRpbGUgTE9EIOKAlCBjb25zdGFudC5cbiAgICAgICAgY29uc3QgdmlzdWFsWm9vbSA9IHByb3BzLnpvb20gLSB6b29tQWRqdXN0KHByb3BzLmxhdGl0dWRlKTtcbiAgICAgICAgY29uc3Qgem9vbSA9IHZpc3VhbFpvb20gKyB6b29tQWRqdXN0KGxhdGl0dWRlKTtcblxuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtsb25naXR1ZGUsIGxhdGl0dWRlLCB6b29tfSk7XG4gICAgICB9XG5cbiAgICAgIHBhbkVuZCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7c3RhcnRQYW5MbmdMYXQ6IG51bGx9KTtcbiAgICAgIH1cbiAgICB9IGFzIGFueTtcbiAgfVxufVxuXG4vKipcbiAqIEN1c3RvbSBHbG9iZVZpZXcgdGhhdCB1c2VzIHpvb20tdG8tY3Vyc29yIGNvbnRyb2xsZXIgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXBsZXJHbG9iZVZpZXcgZXh0ZW5kcyBEZWNrR2xvYmVWaWV3IHtcbiAgLy8gRm9yd2FyZCBjb25zdHJ1Y3RvciBwcm9wcyB0byBkZWNrLmdsJ3MgR2xvYmVWaWV3LiBEZWNsYXJlZCBleHBsaWNpdGx5IGJlY2F1c2VcbiAgLy8gdGhlIGJhc2UgY2xhc3MgaXMgbG9vc2VseSB0eXBlZCAoc2VlIERlY2tHbG9iZVZpZXcgYWJvdmUpLCB3aGljaCB3b3VsZFxuICAvLyBvdGhlcndpc2Ugc3VyZmFjZSBhIHBhcmFtZXRlcmxlc3MgY29uc3RydWN0b3IgdG8gY2FsbGVycy5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBhbnkpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICBnZXQgQ29udHJvbGxlclR5cGUoKSB7XG4gICAgcmV0dXJuIFpvb21Ub0N1cnNvckdsb2JlQ29udHJvbGxlcjtcbiAgfVxuXG4gIC8vIGRlY2suZ2wgOSdzIEdsb2JlVmlldy5nZXRWaWV3cG9ydFR5cGUoKSBzd2FwcyB0aGUgdmlld3BvcnQgY2xhc3MgYmFzZWQgb24gem9vbTpcbiAgLy8gICBgcmV0dXJuIHZpZXdTdGF0ZS56b29tID4gMTIgPyBXZWJNZXJjYXRvclZpZXdwb3J0IDogR2xvYmVWaWV3cG9ydDtgXG4gIC8vIENyb3NzaW5nIHpvb20gMTIgdGhlcmVmb3JlIHJlY29tcHV0ZXMgdGlsZSBib3VuZHMgd2l0aCBjb21wbGV0ZWx5IGRpZmZlcmVudFxuICAvLyBwcm9qZWN0aW9uIG1hdGggKGdsb2JlIHZzIGZsYXQgbWVyY2F0b3IpLiBUaGF0IG1ha2VzIGRlY2sncyBUaWxlTGF5ZXIvTVZUTGF5ZXJcbiAgLy8gcmVzZWxlY3QgdGlsZXMgaW5jb25zaXN0ZW50bHkgYWNyb3NzIHRoZSBib3VuZGFyeSDigJQgbWl4ZWQgTE9EcyAoZS5nLiBhIHo0IHRpbGVcbiAgLy8gbmV4dCB0byB6MTEpLCBhIHZpc2libGUgXCJmbGlja2VyXCIgYXQgMTIsIGFuZCB0aWxlcyB0aGF0IGdldCBkcm9wcGVkIGFuZCBzdGlja1xuICAvLyBhcyBibGFjay9lbXB0eSBxdWFkcyAobW9zdCBvZnRlbiBjcm9zc2luZyAxMiBvbiB0aGUgd2F5ICpvdXQqKS5cbiAgLy9cbiAgLy8gRm9yY2UgR2xvYmVWaWV3cG9ydCBhdCBldmVyeSB6b29tIHRvIGVsaW1pbmF0ZSB0aGUgej0xMiB2aWV3cG9ydCBzd2FwIHNvIHRpbGVcbiAgLy8gc2VsZWN0aW9uIHN0YXlzIGNvbnNpc3RlbnQuIFRoZSB0cmFkZS1vZmYgaXMgdGhhdCB6b29tID4gMTIgbm93IHVzZXMgZmxvYXQzMlxuICAvLyBnbG9iZSBwcmVjaXNpb24gKGRlY2sncyBkb2N1bWVudGVkIFwibm8gaGlnaC1wcmVjaXNpb24gcmVuZGVyaW5nID4gMTJcIiBsaW1pdClcbiAgLy8gaW5zdGVhZCBvZiBzd2l0Y2hpbmcgdG8gbWVyY2F0b3Ig4oCUIGZhciBwcmVmZXJhYmxlIHRvIHRoZSBibGFjayBxdWFkcy5cbiAgZ2V0Vmlld3BvcnRUeXBlKCkge1xuICAgIHJldHVybiBEZWNrR2xvYmVWaWV3cG9ydDtcbiAgfVxufVxuXG5LZXBsZXJHbG9iZVZpZXcuZGlzcGxheU5hbWUgPSAnS2VwbGVyR2xvYmVWaWV3JztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFILE9BQUE7QUFBNkQsU0FBQUQsd0JBQUFLLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFQLHVCQUFBLFlBQUFBLHdCQUFBSyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxH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a0QsNkJBQWtCLEVBQUVBLDZCQUFrQixDQUFDOztVQUVuRTtVQUNBO1VBQ0E7VUFDQTtVQUNBLElBQU0yQyxVQUFVLEdBQUcvQyxLQUFLLENBQUNLLElBQUksR0FBR3BELFVBQVUsQ0FBQytDLEtBQUssQ0FBQzlDLFFBQVEsQ0FBQztVQUMxRCxJQUFNbUQsSUFBSSxHQUFHMEMsVUFBVSxHQUFHOUYsVUFBVSxDQUFDQyxRQUFRLENBQUM7VUFFOUMsT0FBUSxJQUFJLENBQVMyRSxnQkFBZ0IsQ0FBQztZQUFDTyxTQUFTLEVBQVRBLFNBQVM7WUFBRWxGLFFBQVEsRUFBUkEsUUFBUTtZQUFFbUQsSUFBSSxFQUFKQTtVQUFJLENBQUMsQ0FBQztRQUNwRTtNQUFDO1FBQUFSLEdBQUE7UUFBQUMsS0FBQSxFQUVELFNBQUFrRCxNQUFNQSxDQUFBLEVBQUc7VUFDUCxPQUFRLElBQUksQ0FBU25CLGdCQUFnQixDQUFDO1lBQUNjLGNBQWMsRUFBRTtVQUFJLENBQUMsQ0FBQztRQUMvRDtNQUFDO0lBQUEsRUFqT29EckQsa0JBQWtCLENBa09qRTtJQUFDLE9BQUFQLEtBQUE7RUFDWDtFQUFDLElBQUFZLFVBQUEsYUFBQWIsMkJBQUEsRUFBQWhDLGdCQUFBO0VBQUEsV0FBQThDLGFBQUEsYUFBQWQsMkJBQUE7QUFBQSxFQW5QdUNqQyxlQUFlO0FBc1B6RDtBQUNBO0FBQ0E7QUFGQSxJQUdhb0csZUFBZSxHQUFBQyxPQUFBLENBQUFELGVBQUEsMEJBQUFFLGNBQUE7RUFDMUI7RUFDQTtFQUNBO0VBQ0EsU0FBQUYsZ0JBQVlqRCxLQUFXLEVBQUU7SUFBQSxJQUFBaEIsZ0JBQUEsbUJBQUFpRSxlQUFBO0lBQUEsT0FBQTlHLFVBQUEsT0FBQThHLGVBQUEsR0FDakJqRCxLQUFLO0VBQ2I7RUFBQyxJQUFBTCxVQUFBLGFBQUFzRCxlQUFBLEVBQUFFLGNBQUE7RUFBQSxXQUFBdkQsYUFBQSxhQUFBcUQsZUFBQTtJQUFBcEQsR0FBQTtJQUFBckYsR0FBQSxFQUVELFNBQUFBLElBQUEsRUFBcUI7TUFDbkIsT0FBT3NFLDJCQUEyQjtJQUNwQzs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFBQTtJQUFBZSxHQUFBO0lBQUFDLEtBQUEsRUFDQSxTQUFBc0QsZUFBZUEsQ0FBQSxFQUFHO01BQ2hCLE9BQU9yRyxpQkFBaUI7SUFDMUI7RUFBQztBQUFBLEVBMUJrQ0osYUFBYTtBQTZCbERzRyxlQUFlLENBQUNJLFdBQVcsR0FBRyxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -4,6 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ Object.defineProperty(exports, "AtmosphereHugeHaloLayer", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _atmosphereLayer.AtmosphereHugeHaloLayer;
11
+ }
12
+ });
7
13
  Object.defineProperty(exports, "AtmosphereLayerRealistic", {
8
14
  enumerable: true,
9
15
  get: function get() {
@@ -46,6 +52,12 @@ Object.defineProperty(exports, "MVTLabelLayer", {
46
52
  return _mvtLabelLayer.MVTLabelLayer;
47
53
  }
48
54
  });
55
+ Object.defineProperty(exports, "drawStarsBackground", {
56
+ enumerable: true,
57
+ get: function get() {
58
+ return _globeStarsLayer.drawStarsBackground;
59
+ }
60
+ });
49
61
  Object.defineProperty(exports, "getBasemapColors", {
50
62
  enumerable: true,
51
63
  get: function get() {
@@ -94,6 +106,12 @@ Object.defineProperty(exports, "getGlobeDepthDiskLayer", {
94
106
  return _globeDepthDiskLayer.getGlobeDepthDiskLayer;
95
107
  }
96
108
  });
109
+ Object.defineProperty(exports, "getGlobeHugeHaloLayer", {
110
+ enumerable: true,
111
+ get: function get() {
112
+ return _atmosphereLayer.getGlobeHugeHaloLayer;
113
+ }
114
+ });
97
115
  Object.defineProperty(exports, "getGlobeTopLayers", {
98
116
  enumerable: true,
99
117
  get: function get() {
@@ -119,4 +137,4 @@ var _mvtLabelLayer = require("./mvt-label-layer");
119
137
  var _enhancedMultiIconLayer = _interopRequireDefault(require("./enhanced-multi-icon-layer"));
120
138
  var _globeView = require("./globe-view");
121
139
  var _globeStarsLayer = require("./globe-stars-layer");
122
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXRtb3NwaGVyZUxheWVyIiwicmVxdWlyZSIsIl9nbG9iZURlcHRoRGlza0xheWVyIiwiX2dsb2JlTGF5ZXJzIiwiX212dExhYmVsTGF5ZXIiLCJfZW5oYW5jZWRNdWx0aUljb25MYXllciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2xvYmVWaWV3IiwiX2dsb2JlU3RhcnNMYXllciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBHbG9iZSBtb2RlIGxheWVyIGFkanVzdG1lbnRzLlxuLy9cbi8vIEdsb2JlLXNwZWNpZmljIGFkanVzdG1lbnRzIGhhbmRsZWQgaGVyZTpcbi8vIC0gR3JpZCAvIEhleGFnb24gYWdncmVnYXRpb24gY2VsbHMgb24gdGhlIGdsb2JlOiBkZWNrLmdsIDkueCdzIEdyaWRDZWxsTGF5ZXIgL1xuLy8gICBIZXhhZ29uQ2VsbExheWVyIHBvc2l0aW9uIGNlbGxzIGluIGZsYXQgbWVyY2F0b3IgY29tbW9uIHNwYWNlIGFuZCBkcmF3IHRoZW0gd2l0aFxuLy8gICBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UsIHdoaWNoIGxlYXZlcyB0aGVtIG9uIHRoZSBYWSBwbGFuZSB0aHJvdWdoIHRoZVxuLy8gICBnbG9iZSBjZW50ZXIgcmF0aGVyIHRoYW4gb24gaXRzIHN1cmZhY2UuIFNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIgL1xuLy8gICBTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyIHN3YXAgaW4gYSBnbG9iZS1hd2FyZSBjZWxsIHN1YmNsYXNzIChzZWVcbi8vICAgbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscykgdGhhdCByZW1hcHMgZWFjaCBjZWxsIHZlcnRleCBmcm9tIGNvbW1vbiBzcGFjZSBiYWNrIHRvXG4vLyAgIGxuZy9sYXQgYW5kIG9udG8gdGhlIHNwaGVyZS5cbi8vIC0gVGV4dC9MYWJlbCByZW5kZXJpbmcgd2l0aCBiYWNrLWZhY2UgY3VsbGluZzogTVZUTGFiZWxMYXllciByZW5kZXJzIHBsYWNlIGxhYmVscyB2aWEgYVxuLy8gICBUZXh0TGF5ZXIgd2hvc2UgZ2x5cGggc3VibGF5ZXIgaXMgRW5oYW5jZWRNdWx0aUljb25MYXllciwgd2hpY2ggZGVnZW5lcmF0ZXMgZ2x5cGhcbi8vICAgdmVydGljZXMgb24gdGhlIGZhciBzaWRlIG9mIHRoZSBnbG9iZSAoZG90KHN1cmZhY2VOb3JtYWwsIHRvQ2FtZXJhKSA8IDAuMSkgc28gbGFiZWxzXG4vLyAgIGRvbid0IHNob3cgdGhyb3VnaCB0aGUgcGxhbmV0LiBJbXBsZW1lbnRlZCBhcyBhIEdMU0wgaW5qZWN0LlxuXG5leHBvcnQge1xuICBBdG1vc3BoZXJlTGF5ZXJSZWFsaXN0aWMsXG4gIEF0bW9zcGhlcmVTa3lMYXllclJlYWxpc3RpYyxcbiAgZ2V0R2xvYmVBdG1vc3BoZXJlTGF5ZXIsXG4gIGdldEdsb2JlQXRtb3NwaGVyZVNreUxheWVyXG59IGZyb20gJy4vYXRtb3NwaGVyZS1sYXllcic7XG5leHBvcnQge0dsb2JlRGVwdGhEaXNrTGF5ZXIsIGdldEdsb2JlRGVwdGhEaXNrTGF5ZXJ9IGZyb20gJy4vZ2xvYmUtZGVwdGgtZGlzay1sYXllcic7XG5leHBvcnQge1xuICBnZXRHbG9iZUJhc2VMYXllcnMsXG4gIGdldEdsb2JlVG9wTGF5ZXJzLFxuICBnZXRHbG9iZUNsZWFyQ29sb3IsXG4gIGdldEdsb2JlQmFzZW1hcEF0dHJpYnV0aW9ucyxcbiAgcmVzb2x2ZUdsb2JlQmFzZW1hcFByb3ZpZGVyLFxuICBERUZBVUxUX0JBU0VNQVBfQ09MT1IsXG4gIGdldEJhc2VtYXBDb2xvcnMsXG4gIGdldEJhc2VtYXBDb2xvcnNGb3JTdHlsZVxufSBmcm9tICcuL2dsb2JlLWxheWVycyc7XG5leHBvcnQgdHlwZSB7R2xvYmVCYXNlbWFwUHJvdmlkZXIsIEdsb2JlQXR0cmlidXRpb259IGZyb20gJy4vZ2xvYmUtbGF5ZXJzJztcbmV4cG9ydCB7TVZUTGFiZWxMYXllcn0gZnJvbSAnLi9tdnQtbGFiZWwtbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkTXVsdGlJY29uTGF5ZXJ9IGZyb20gJy4vZW5oYW5jZWQtbXVsdGktaWNvbi1sYXllcic7XG5leHBvcnQge0tlcGxlckdsb2JlVmlld30gZnJvbSAnLi9nbG9iZS12aWV3JztcbmV4cG9ydCB7Z2V0U3RhcnNCYWNrZ3JvdW5kSW1hZ2V9IGZyb20gJy4vZ2xvYmUtc3RhcnMtbGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQU1BLElBQUFDLG9CQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFXQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXRtb3NwaGVyZUxheWVyIiwicmVxdWlyZSIsIl9nbG9iZURlcHRoRGlza0xheWVyIiwiX2dsb2JlTGF5ZXJzIiwiX212dExhYmVsTGF5ZXIiLCJfZW5oYW5jZWRNdWx0aUljb25MYXllciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2xvYmVWaWV3IiwiX2dsb2JlU3RhcnNMYXllciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBHbG9iZSBtb2RlIGxheWVyIGFkanVzdG1lbnRzLlxuLy9cbi8vIEdsb2JlLXNwZWNpZmljIGFkanVzdG1lbnRzIGhhbmRsZWQgaGVyZTpcbi8vIC0gR3JpZCAvIEhleGFnb24gYWdncmVnYXRpb24gY2VsbHMgb24gdGhlIGdsb2JlOiBkZWNrLmdsIDkueCdzIEdyaWRDZWxsTGF5ZXIgL1xuLy8gICBIZXhhZ29uQ2VsbExheWVyIHBvc2l0aW9uIGNlbGxzIGluIGZsYXQgbWVyY2F0b3IgY29tbW9uIHNwYWNlIGFuZCBkcmF3IHRoZW0gd2l0aFxuLy8gICBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UsIHdoaWNoIGxlYXZlcyB0aGVtIG9uIHRoZSBYWSBwbGFuZSB0aHJvdWdoIHRoZVxuLy8gICBnbG9iZSBjZW50ZXIgcmF0aGVyIHRoYW4gb24gaXRzIHN1cmZhY2UuIFNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIgL1xuLy8gICBTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyIHN3YXAgaW4gYSBnbG9iZS1hd2FyZSBjZWxsIHN1YmNsYXNzIChzZWVcbi8vICAgbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscykgdGhhdCByZW1hcHMgZWFjaCBjZWxsIHZlcnRleCBmcm9tIGNvbW1vbiBzcGFjZSBiYWNrIHRvXG4vLyAgIGxuZy9sYXQgYW5kIG9udG8gdGhlIHNwaGVyZS5cbi8vIC0gVGV4dC9MYWJlbCByZW5kZXJpbmcgd2l0aCBiYWNrLWZhY2UgY3VsbGluZzogTVZUTGFiZWxMYXllciByZW5kZXJzIHBsYWNlIGxhYmVscyB2aWEgYVxuLy8gICBUZXh0TGF5ZXIgd2hvc2UgZ2x5cGggc3VibGF5ZXIgaXMgRW5oYW5jZWRNdWx0aUljb25MYXllciwgd2hpY2ggZGVnZW5lcmF0ZXMgZ2x5cGhcbi8vICAgdmVydGljZXMgb24gdGhlIGZhciBzaWRlIG9mIHRoZSBnbG9iZSAoZG90KHN1cmZhY2VOb3JtYWwsIHRvQ2FtZXJhKSA8IDAuMSkgc28gbGFiZWxzXG4vLyAgIGRvbid0IHNob3cgdGhyb3VnaCB0aGUgcGxhbmV0LiBJbXBsZW1lbnRlZCBhcyBhIEdMU0wgaW5qZWN0LlxuXG5leHBvcnQge1xuICBBdG1vc3BoZXJlTGF5ZXJSZWFsaXN0aWMsXG4gIEF0bW9zcGhlcmVTa3lMYXllclJlYWxpc3RpYyxcbiAgQXRtb3NwaGVyZUh1Z2VIYWxvTGF5ZXIsXG4gIGdldEdsb2JlQXRtb3NwaGVyZUxheWVyLFxuICBnZXRHbG9iZUF0bW9zcGhlcmVTa3lMYXllcixcbiAgZ2V0R2xvYmVIdWdlSGFsb0xheWVyXG59IGZyb20gJy4vYXRtb3NwaGVyZS1sYXllcic7XG5leHBvcnQge0dsb2JlRGVwdGhEaXNrTGF5ZXIsIGdldEdsb2JlRGVwdGhEaXNrTGF5ZXJ9IGZyb20gJy4vZ2xvYmUtZGVwdGgtZGlzay1sYXllcic7XG5leHBvcnQge1xuICBnZXRHbG9iZUJhc2VMYXllcnMsXG4gIGdldEdsb2JlVG9wTGF5ZXJzLFxuICBnZXRHbG9iZUNsZWFyQ29sb3IsXG4gIGdldEdsb2JlQmFzZW1hcEF0dHJpYnV0aW9ucyxcbiAgcmVzb2x2ZUdsb2JlQmFzZW1hcFByb3ZpZGVyLFxuICBERUZBVUxUX0JBU0VNQVBfQ09MT1IsXG4gIGdldEJhc2VtYXBDb2xvcnMsXG4gIGdldEJhc2VtYXBDb2xvcnNGb3JTdHlsZVxufSBmcm9tICcuL2dsb2JlLWxheWVycyc7XG5leHBvcnQgdHlwZSB7R2xvYmVCYXNlbWFwUHJvdmlkZXIsIEdsb2JlQXR0cmlidXRpb259IGZyb20gJy4vZ2xvYmUtbGF5ZXJzJztcbmV4cG9ydCB7TVZUTGFiZWxMYXllcn0gZnJvbSAnLi9tdnQtbGFiZWwtbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkTXVsdGlJY29uTGF5ZXJ9IGZyb20gJy4vZW5oYW5jZWQtbXVsdGktaWNvbi1sYXllcic7XG5leHBvcnQge0tlcGxlckdsb2JlVmlld30gZnJvbSAnLi9nbG9iZS12aWV3JztcbmV4cG9ydCB7Z2V0U3RhcnNCYWNrZ3JvdW5kSW1hZ2UsIGRyYXdTdGFyc0JhY2tncm91bmR9IGZyb20gJy4vZ2xvYmUtc3RhcnMtbGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQVFBLElBQUFDLG9CQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFXQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -140,7 +140,7 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
140
140
  return (0, _createClass2["default"])(GlobeCellLayer, [{
141
141
  key: "getShaders",
142
142
  value: function getShaders() {
143
- var shaders = _superPropGet(GlobeCellLayer, "getShaders", this, 1)();
143
+ var shaders = _superPropGet(GlobeCellLayer, "getShaders", this, 3)([]);
144
144
  return _objectSpread(_objectSpread({}, shaders), {}, {
145
145
  vs: addGlobeCellProjection(shaders.vs, type),
146
146
  modules: [].concat((0, _toConsumableArray2["default"])(shaders.modules || []), [globeCellUniforms])
@@ -162,7 +162,7 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
162
162
  }
163
163
  });
164
164
  }
165
- _superPropGet(GlobeCellLayer, "draw", this, 1)(opts);
165
+ _superPropGet(GlobeCellLayer, "draw", this, 3)([opts]);
166
166
  }
167
167
  }]);
168
168
  }(BaseCellLayer);
@@ -170,4 +170,4 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
170
170
  globeCellClassCache.set(BaseCellLayer, GlobeCellLayer);
171
171
  return GlobeCellLayer;
172
172
  }
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJnbG9iZUNlbGxVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImdsb2JlTW9kZSIsIkdMT0JFX0NFTExfREVDTCIsImFkZEdsb2JlQ2VsbFByb2plY3Rpb24iLCJ0eXBlIiwiZGVjbCIsImNvbmNhdCIsIndpdGhEZWNsIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwicnVuQmluT3B0aW9uc1dpdGhNZXJjYXRvclZpZXdwb3J0IiwibGF5ZXIiLCJjYWxsU3VwZXIiLCJfbGF5ZXIkY29udGV4dCIsInZpZXdwb3J0IiwiY29udGV4dCIsImlzR2xvYmUiLCJyZXNvbHV0aW9uIiwibWVyY2F0b3JWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm9yaWdpbmFsVmlld3BvcnQiLCJnbG9iZUNlbGxDbGFzc0NhY2hlIiwiV2Vha01hcCIsIm1ha2VHbG9iZUNlbGxMYXllckNsYXNzIiwiQmFzZUNlbGxMYXllciIsImNhY2hlZCIsImdldCIsIkdsb2JlQ2VsbExheWVyIiwiX3JlZiIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gKHN1cGVyLmdldFNoYWRlcnMgYXMgKCkgPT4gYW55KSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIChzdXBlci5kcmF3IGFzIChvOiBhbnkpID0+IHZvaWQpKG9wdHMpO1xuICAgIH1cbiAgfVxuICAoR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyB7bGF5ZXJOYW1lOiBzdHJpbmd9KS5sYXllck5hbWUgPSBgR2xvYmUke3R5cGV9Q2VsbExheWVyYDtcbiAgZ2xvYmVDZWxsQ2xhc3NDYWNoZS5zZXQoQmFzZUNlbGxMYXllciwgR2xvYmVDZWxsTGF5ZXIpO1xuICByZXR1cm4gR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyBUO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLEtBQUEsR0FB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
173
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJnbG9iZUNlbGxVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImdsb2JlTW9kZSIsIkdMT0JFX0NFTExfREVDTCIsImFkZEdsb2JlQ2VsbFByb2plY3Rpb24iLCJ0eXBlIiwiZGVjbCIsImNvbmNhdCIsIndpdGhEZWNsIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwicnVuQmluT3B0aW9uc1dpdGhNZXJjYXRvclZpZXdwb3J0IiwibGF5ZXIiLCJjYWxsU3VwZXIiLCJfbGF5ZXIkY29udGV4dCIsInZpZXdwb3J0IiwiY29udGV4dCIsImlzR2xvYmUiLCJyZXNvbHV0aW9uIiwibWVyY2F0b3JWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm9yaWdpbmFsVmlld3BvcnQiLCJnbG9iZUNlbGxDbGFzc0NhY2hlIiwiV2Vha01hcCIsIm1ha2VHbG9iZUNlbGxMYXllckNsYXNzIiwiQmFzZUNlbGxMYXllciIsImNhY2hlZCIsImdldCIsIkdsb2JlQ2VsbExheWVyIiwiX3JlZiIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIHN1cGVyLmRyYXcob3B0cyk7XG4gICAgfVxuICB9XG4gIChHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIHtsYXllck5hbWU6IHN0cmluZ30pLmxheWVyTmFtZSA9IGBHbG9iZSR7dHlwZX1DZWxsTGF5ZXJgO1xuICBnbG9iZUNlbGxDbGFzc0NhY2hlLnNldChCYXNlQ2VsbExheWVyLCBHbG9iZUNlbGxMYXllcik7XG4gIHJldHVybiBHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIFQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQWtELFNBQUFDLFFBQUFDLENBQUEsRUFBQUMs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