@carto/kepler.gl 0.0.76 → 0.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/kepler-gl.js +2 -11
- package/dist/components/map-container.js +1 -4
- package/dist/components/modal-container.js +1 -3
- package/dist/components/modals/add-map-style-modal.js +1 -4
- package/dist/constants/default-settings.js +1 -1
- package/dist/utils/gl-utils.js +4 -5
- package/package.json +12 -11
- package/src/components/kepler-gl.d.ts +0 -1
- package/src/components/kepler-gl.js +0 -7
- package/src/components/map-container.js +0 -3
- package/src/components/modal-container.d.ts +0 -1
- package/src/components/modal-container.js +0 -2
- package/src/components/modals/add-map-style-modal.js +0 -3
- package/src/utils/gl-utils.js +2 -4
|
@@ -278,6 +278,7 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
278
278
|
}, function (customMessages) {
|
|
279
279
|
return customMessages ? (0, _localeUtils.mergeMessages)(_localization.messages, customMessages) : _localization.messages;
|
|
280
280
|
}));
|
|
281
|
+
/* private methods */
|
|
281
282
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_loadMapStyle", function () {
|
|
282
283
|
var defaultStyles = Object.values(_this.props.mapStyle.mapStyles);
|
|
283
284
|
// add id to custom map styles if not given
|
|
@@ -302,7 +303,6 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
302
303
|
(0, _createClass2["default"])(KeplerGL, [{
|
|
303
304
|
key: "componentDidMount",
|
|
304
305
|
value: function componentDidMount() {
|
|
305
|
-
this._validateMapboxToken();
|
|
306
306
|
this._loadMapStyle();
|
|
307
307
|
if (typeof this.props.onKeplerGlInitialized === 'function') {
|
|
308
308
|
this.props.onKeplerGlInitialized();
|
|
@@ -318,15 +318,6 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
318
318
|
(0, _observeDimensions.unobserveDimensions)(this.root.current);
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
|
-
}, {
|
|
322
|
-
key: "_validateMapboxToken",
|
|
323
|
-
value: /* private methods */
|
|
324
|
-
function _validateMapboxToken() {
|
|
325
|
-
var mapboxApiAccessToken = this.props.mapboxApiAccessToken;
|
|
326
|
-
if (!(0, _mapboxUtils.validateToken)(mapboxApiAccessToken)) {
|
|
327
|
-
_console["default"].warn(_userFeedbacks.MISSING_MAPBOX_TOKEN);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
321
|
}, {
|
|
331
322
|
key: "render",
|
|
332
323
|
value: function render() {
|
|
@@ -476,4 +467,4 @@ function mergeActions(actions, userActions) {
|
|
|
476
467
|
return _objectSpread(_objectSpread({}, actions), overrides);
|
|
477
468
|
}
|
|
478
469
|
var _default = exports["default"] = KeplerGlFactory;
|
|
479
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiVmlzU3RhdGVBY3Rpb25zIiwiTWFwU3RhdGVBY3Rpb25zIiwiTWFwU3R5bGVBY3Rpb25zIiwiVUlTdGF0ZUFjdGlvbnMiLCJQcm92aWRlckFjdGlvbnMiLCJfZGVmYXVsdFNldHRpbmdzIiwiX3VzZXJGZWVkYmFja3MiLCJfc2lkZVBhbmVsIiwiX21hcENvbnRhaW5lciIsIl9tYXBzTGF5b3V0IiwiX2JvdHRvbVdpZGdldCIsIl9tb2RhbENvbnRhaW5lciIsIl9wbG90Q29udGFpbmVyIiwiX25vdGlmaWNhdGlvblBhbmVsIiwiX2dlb2NvZGVyUGFuZWwiLCJfdXRpbHMiLCJfbWFwYm94VXRpbHMiLCJfbG9jYWxlVXRpbHMiLCJfYmFzZSIsIl9vYnNlcnZlRGltZW5zaW9ucyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwidmFsdWVPZiIsIkdsb2JhbFN0eWxlIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJsYWJlbENvbG9yIiwiQm90dG9tV2lkZ2V0T3V0ZXIiLCJfcmVmIiwiYWJzb2x1dGUiLCJjb25jYXQiLCJtYXBGaWVsZHNTZWxlY3RvciIsImV4cG9ydHMiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwiZGVja0dsUHJvcHMiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImVkaXRvciIsInZpc1N0YXRlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJsYXllck9yZGVyIiwibGF5ZXJEYXRhIiwibGF5ZXJCbGVuZGluZyIsImZpbHRlcnMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImhvdmVySW5mbyIsImNsaWNrZWQiLCJtb3VzZVBvcyIsImFuaW1hdGlvbkNvbmZpZyIsImFjdGl2ZVNpZGVQYW5lbCIsInVpU3RhdGUiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwibG9jYWxlIiwicG9wdXBTZXR0aW5ncyIsInNpZGVQYW5lbFNlbGVjdG9yIiwiYXZhaWxhYmxlUHJvdmlkZXJzIiwiYXBwTmFtZSIsInZlcnNpb24iLCJhcHBXZWJzaXRlIiwib25TYXZlTWFwIiwibWFwU3R5bGVBY3Rpb25zIiwibGF5ZXJDbGFzc2VzIiwibWFwSW5mbyIsIndpZHRoIiwic2lkZVBhbmVsV2lkdGgiLCJtYXBTYXZlZCIsInByb3ZpZGVyU3RhdGUiLCJwbG90Q29udGFpbmVyU2VsZWN0b3IiLCJoZWlnaHQiLCJleHBvcnRJbWFnZVNldHRpbmciLCJleHBvcnRJbWFnZSIsIm1hcEZpZWxkcyIsImFkZE5vdGlmaWNhdGlvbiIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlRGF0YVVyaSIsInNldEV4cG9ydEltYWdlRXJyb3IiLCJzcGxpdE1hcHMiLCJtYXNrUG9seWdvbiIsImlzU3BsaXRTZWxlY3RvciIsImJvdHRvbVdpZGdldFNlbGVjdG9yIiwidG9nZ2xlTW9kYWwiLCJzaWRlUGFuZWwiLCJtYXJnaW4iLCJsZWZ0IiwibW9kYWxDb250YWluZXJTZWxlY3RvciIsInJvb3ROb2RlIiwicHJvdmlkZXJBY3Rpb25zIiwiY2xvdWRQcm92aWRlcnMiLCJvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBFcnJvciIsIm9uRXhwb3J0VG9DbG91ZEVycm9yIiwiZ2VvQ29kZXJQYW5lbFNlbGVjdG9yIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ1cGRhdGVWaXNEYXRhIiwicmVtb3ZlRGF0YXNldCIsInVwZGF0ZU1hcCIsIm5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IiLCJyZW1vdmVOb3RpZmljYXRpb24iLCJub3RpZmljYXRpb25zIiwiREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMiLCJtYXBTdHlsZXMiLCJtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJLRVBMRVJfR0xfTkFNRSIsIktFUExFUl9HTF9WRVJTSU9OIiwiRElNRU5TSU9OUyIsIktlcGxlckdsRmFjdG9yeSIsImRlcHMiLCJCb3R0b21XaWRnZXRGYWN0b3J5IiwiR2VvQ29kZXJQYW5lbEZhY3RvcnkiLCJNYXBDb250YWluZXJGYWN0b3J5IiwiTWFwc0xheW91dEZhY3RvcnkiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJTaWRlUGFuZWxGYWN0b3J5IiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkiLCJCb3R0b21XaWRnZXQiLCJHZW9Db2RlclBhbmVsIiwiTWFwQ29udGFpbmVyIiwiTWFwc0xheW91dCIsIk1vZGFsQ29udGFpbmVyIiwiU2lkZVBhbmVsIiwiUGxvdENvbnRhaW5lciIsIk5vdGlmaWNhdGlvblBhbmVsIiwiS2VwbGVyR0wiLCJfQ29tcG9uZW50IiwiX2luaGVyaXRzMiIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZDIiLCJkaW1lbnNpb25zIiwic2V0U3RhdGUiLCJjcmVhdGVSZWYiLCJjcmVhdGVTZWxlY3RvciIsInRoZW1lU2VsZWN0b3IiLCJfdHlwZW9mMiIsImJhc2ljVGhlbWUiLCJUSEVNRSIsImxpZ2h0IiwidGhlbWVMVCIsImJhc2UiLCJ0aGVtZUJTIiwicHJvdmlkZXJzIiwiaXNBcnJheSIsImhhc1N0b3JhZ2UiLCJzb21lIiwicCIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmUiLCJoYXNTaGFyaW5nVXJsIiwibG9jYWxlTWVzc2FnZXMiLCJjdXN0b21NZXNzYWdlcyIsIm1lcmdlTWVzc2FnZXMiLCJtZXNzYWdlcyIsImRlZmF1bHRTdHlsZXMiLCJ2YWx1ZXMiLCJjdXN0b21TdHlsZXMiLCJtYXAiLCJtcyIsImlkIiwiZ2VuZXJhdGVIYXNoSWQiLCJhbGxTdHlsZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicmVkdWNlIiwiYWNjdSIsInN0eWxlIiwiaGFzU3R5bGVPYmplY3QiLCJ0b0xvYWQiLCJ0b1JlcXVlc3QiLCJsb2FkTWFwU3R5bGVzIiwicmVxdWVzdE1hcFN0eWxlcyIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50IiwiX3ZhbGlkYXRlTWFwYm94VG9rZW4iLCJfbG9hZE1hcFN0eWxlIiwib25LZXBsZXJHbEluaXRpYWxpemVkIiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIm9ic2VydmVEaW1lbnNpb25zIiwiX2hhbmRsZVJlc2l6ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsInZhbGlkYXRlVG9rZW4iLCJDb25zb2xlIiwid2FybiIsIk1JU1NJTkdfTUFQQk9YX1RPS0VOIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJzdGF0ZSIsImlzU3BsaXQiLCJhdmFpbGFibGVUaGVtZVNlbGVjdG9yIiwibG9jYWxlTWVzc2FnZXNTZWxlY3RvciIsImlzRXhwb3J0aW5nSW1hZ2UiLCJleHBvcnRpbmciLCJzaWRlRmllbGRzIiwicGxvdENvbnRhaW5lckZpZWxkcyIsImJvdHRvbVdpZGdldEZpZWxkcyIsIm1vZGFsQ29udGFpbmVyRmllbGRzIiwiZ2VvQ29kZXJQYW5lbEZpZWxkcyIsIm5vdGlmaWNhdGlvblBhbmVsRmllbGRzIiwibWFwQ29udGFpbmVycyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJwcmltYXJ5IiwiaW5kZXgiLCJtYXBMYXllcnMiLCJzZXR0aW5ncyIsIlJvb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJJbnRsUHJvdmlkZXIiLCJUaGVtZVByb3ZpZGVyIiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJwb3NpdGlvbiIsInJlZiIsImJvdHRvbVdpZGdldFJlZiIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwiQ29tcG9uZW50Iiwia2VwbGVyR2xDb25uZWN0IiwibWFwU3RhdGVUb1Byb3BzIiwibWFrZU1hcERpc3BhdGNoVG9Qcm9wcyIsIndpdGhUaGVtZSIsInVuZGVmaW5lZCIsImRlZmF1bHRVc2VyQWN0aW9ucyIsImdldERpc3BhdGNoIiwiZGlzcGF0Y2giLCJnZXRVc2VyQWN0aW9ucyIsImFjdGlvbnMiLCJtYWtlR2V0QWN0aW9uQ3JlYXRvcnMiLCJ1c2VyQWN0aW9ucyIsIl9tYXAiLCJiaW5kQWN0aW9uQ3JlYXRvcnMiLCJtZXJnZUFjdGlvbnMiLCJfbWFwMiIsIl9zbGljZWRUb0FycmF5MiIsImdldEFjdGlvbkNyZWF0b3JzIiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwib3duUHJvcHMiLCJncm91cGVkQWN0aW9uQ3JlYXRvcnMiLCJvdmVycmlkZXMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2tlcGxlci1nbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuaW1wb3J0IHtiaW5kQWN0aW9uQ3JlYXRvcnN9IGZyb20gJ3JlZHV4JztcbmltcG9ydCBzdHlsZWQsIHtUaGVtZVByb3ZpZGVyLCB3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7Y29ubmVjdCBhcyBrZXBsZXJHbENvbm5lY3R9IGZyb20gJ2Nvbm5lY3Qva2VwbGVyZ2wtY29ubmVjdCc7XG5pbXBvcnQge0ludGxQcm92aWRlcn0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge21lc3NhZ2VzfSBmcm9tICcuLi9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnY29tcG9uZW50cy9jb250ZXh0JztcblxuaW1wb3J0ICogYXMgVmlzU3RhdGVBY3Rpb25zIGZyb20gJ2FjdGlvbnMvdmlzLXN0YXRlLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgTWFwU3RhdGVBY3Rpb25zIGZyb20gJ2FjdGlvbnMvbWFwLXN0YXRlLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgTWFwU3R5bGVBY3Rpb25zIGZyb20gJ2FjdGlvbnMvbWFwLXN0eWxlLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgVUlTdGF0ZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy91aS1zdGF0ZS1hY3Rpb25zJztcbmltcG9ydCAqIGFzIFByb3ZpZGVyQWN0aW9ucyBmcm9tICdhY3Rpb25zL3Byb3ZpZGVyLWFjdGlvbnMnO1xuXG5pbXBvcnQge1xuICBESU1FTlNJT05TLFxuICBLRVBMRVJfR0xfTkFNRSxcbiAgS0VQTEVSX0dMX1ZFUlNJT04sXG4gIFRIRU1FLFxuICBERUZBVUxUX01BUEJPWF9BUElfVVJMXG59IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7TUlTU0lOR19NQVBCT1hfVE9LRU59IGZyb20gJ2NvbnN0YW50cy91c2VyLWZlZWRiYWNrcyc7XG5cbmltcG9ydCBTaWRlUGFuZWxGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21hcC1jb250YWluZXInO1xuaW1wb3J0IE1hcHNMYXlvdXRGYWN0b3J5IGZyb20gJy4vbWFwcy1sYXlvdXQnO1xuaW1wb3J0IEJvdHRvbVdpZGdldEZhY3RvcnkgZnJvbSAnLi9ib3R0b20td2lkZ2V0JztcbmltcG9ydCBNb2RhbENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tb2RhbC1jb250YWluZXInO1xuaW1wb3J0IFBsb3RDb250YWluZXJGYWN0b3J5IGZyb20gJy4vcGxvdC1jb250YWluZXInO1xuaW1wb3J0IE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeSBmcm9tICcuL25vdGlmaWNhdGlvbi1wYW5lbCc7XG5pbXBvcnQgR2VvQ29kZXJQYW5lbEZhY3RvcnkgZnJvbSAnLi9nZW9jb2Rlci1wYW5lbCc7XG5cbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWR9IGZyb20gJ3V0aWxzL3V0aWxzJztcbmltcG9ydCB7dmFsaWRhdGVUb2tlbn0gZnJvbSAndXRpbHMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7bWVyZ2VNZXNzYWdlc30gZnJvbSAndXRpbHMvbG9jYWxlLXV0aWxzJztcblxuaW1wb3J0IHt0aGVtZSBhcyBiYXNpY1RoZW1lLCB0aGVtZUxULCB0aGVtZUJTfSBmcm9tICdzdHlsZXMvYmFzZSc7XG5pbXBvcnQge29ic2VydmVEaW1lbnNpb25zLCB1bm9ic2VydmVEaW1lbnNpb25zfSBmcm9tICcuLi91dGlscy9vYnNlcnZlLWRpbWVuc2lvbnMnO1xuXG4vLyBNYXliZSB3ZSBzaG91bGQgdGhpbmsgYWJvdXQgZXhwb3J0aW5nIHRoaXMgb3IgY3JlYXRpbmcgYSB2YXJpYWJsZVxuLy8gYXMgcGFydCBvZiB0aGUgYmFzZS5qcyB0aGVtZVxuY29uc3QgR2xvYmFsU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgZm9udC13ZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFdlaWdodH07XG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxpbmVIZWlnaHR9O1xuXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBsaSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICB9XG5gO1xuXG5jb25zdCBCb3R0b21XaWRnZXRPdXRlciA9IHN0eWxlZC5kaXYoXG4gICh7YWJzb2x1dGV9KSA9PiBgXG4gICR7YWJzb2x1dGUgPyAncG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOycgOiAnJ31cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIHByZXZlbnQgcGFkZGluZyBmcm9tIGJsb2NraW5nIGlucHV0ICovXG4gICYgPiAqIHtcbiAgICAvKiBhbGwgY2hpbGRyZW4gc2hvdWxkIGFsbG93IGlucHV0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfWBcbik7XG5cbmV4cG9ydCBjb25zdCBtYXBGaWVsZHNTZWxlY3RvciA9IHByb3BzID0+ICh7XG4gIGdldE1hcGJveFJlZjogcHJvcHMuZ2V0TWFwYm94UmVmLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcGJveEFwaVVybDogcHJvcHMubWFwYm94QXBpVXJsLFxuICBtYXBTdGF0ZTogcHJvcHMubWFwU3RhdGUsXG4gIG1hcFN0eWxlOiBwcm9wcy5tYXBTdHlsZSxcbiAgb25EZWNrSW5pdGlhbGl6ZWQ6IHByb3BzLm9uRGVja0luaXRpYWxpemVkLFxuICBvblZpZXdTdGF0ZUNoYW5nZTogcHJvcHMub25WaWV3U3RhdGVDaGFuZ2UsXG4gIGRlY2tHbFByb3BzOiBwcm9wcy5kZWNrR2xQcm9wcyxcbiAgdWlTdGF0ZUFjdGlvbnM6IHByb3BzLnVpU3RhdGVBY3Rpb25zLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgLy8gdmlzU3RhdGVcbiAgZWRpdG9yOiBwcm9wcy52aXNTdGF0ZS5lZGl0b3IsXG4gIGRhdGFzZXRzOiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cyxcbiAgbGF5ZXJzOiBwcm9wcy52aXNTdGF0ZS5sYXllcnMsXG4gIGxheWVyT3JkZXI6IHByb3BzLnZpc1N0YXRlLmxheWVyT3JkZXIsXG4gIGxheWVyRGF0YTogcHJvcHMudmlzU3RhdGUubGF5ZXJEYXRhLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBpbnRlcmFjdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuaW50ZXJhY3Rpb25Db25maWcsXG4gIGhvdmVySW5mbzogcHJvcHMudmlzU3RhdGUuaG92ZXJJbmZvLFxuICBjbGlja2VkOiBwcm9wcy52aXNTdGF0ZS5jbGlja2VkLFxuICBtb3VzZVBvczogcHJvcHMudmlzU3RhdGUubW91c2VQb3MsXG4gIGFuaW1hdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuXG4gIC8vIHVpU3RhdGVcbiAgYWN0aXZlU2lkZVBhbmVsOiBwcm9wcy51aVN0YXRlLmFjdGl2ZVNpZGVQYW5lbCxcbiAgbWFwQ29udHJvbHM6IHByb3BzLnVpU3RhdGUubWFwQ29udHJvbHMsXG4gIHJlYWRPbmx5OiBwcm9wcy51aVN0YXRlLnJlYWRPbmx5LFxuICBsb2NhbGU6IHByb3BzLnVpU3RhdGUubG9jYWxlLFxuXG4gIC8vIGludGVyYWN0aXZpdHlcbiAgcG9wdXBTZXR0aW5nczogcHJvcHMucG9wdXBTZXR0aW5nc1xufSk7XG5cbmV4cG9ydCBjb25zdCBzaWRlUGFuZWxTZWxlY3RvciA9IChwcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzKSA9PiAoe1xuICBhcHBOYW1lOiBwcm9wcy5hcHBOYW1lLFxuICB2ZXJzaW9uOiBwcm9wcy52ZXJzaW9uLFxuICBhcHBXZWJzaXRlOiBwcm9wcy5hcHBXZWJzaXRlLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIG9uU2F2ZU1hcDogcHJvcHMub25TYXZlTWFwLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcblxuICBkYXRhc2V0czogcHJvcHMudmlzU3RhdGUuZGF0YXNldHMsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckNsYXNzZXM6IHByb3BzLnZpc1N0YXRlLmxheWVyQ2xhc3NlcyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBtYXBJbmZvOiBwcm9wcy52aXNTdGF0ZS5tYXBJbmZvLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuXG4gIHdpZHRoOiBwcm9wcy5zaWRlUGFuZWxXaWR0aCxcbiAgYXZhaWxhYmxlUHJvdmlkZXJzLFxuICBtYXBTYXZlZDogcHJvcHMucHJvdmlkZXJTdGF0ZS5tYXBTYXZlZFxufSk7XG5cbmV4cG9ydCBjb25zdCBwbG90Q29udGFpbmVyU2VsZWN0b3IgPSBwcm9wcyA9PiAoe1xuICB3aWR0aDogcHJvcHMud2lkdGgsXG4gIGhlaWdodDogcHJvcHMuaGVpZ2h0LFxuICBleHBvcnRJbWFnZVNldHRpbmc6IHByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UsXG4gIG1hcEZpZWxkczogbWFwRmllbGRzU2VsZWN0b3IocHJvcHMpLFxuICBhZGROb3RpZmljYXRpb246IHByb3BzLnVpU3RhdGVBY3Rpb25zLmFkZE5vdGlmaWNhdGlvbixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmcsXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaTogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICBzZXRFeHBvcnRJbWFnZUVycm9yOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZUVycm9yLFxuICBzcGxpdE1hcHM6IHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcyxcbiAgbWFza1BvbHlnb246IHByb3BzLm1hc2tQb2x5Z29uXG59KTtcblxuZXhwb3J0IGNvbnN0IGlzU3BsaXRTZWxlY3RvciA9IHByb3BzID0+XG4gIHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcyAmJiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHMubGVuZ3RoID4gMTtcblxuZXhwb3J0IGNvbnN0IGJvdHRvbVdpZGdldFNlbGVjdG9yID0gKHByb3BzLCB0aGVtZSkgPT4gKHtcbiAgZmlsdGVyczogcHJvcHMudmlzU3RhdGUuZmlsdGVycyxcbiAgZGF0YXNldHM6IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBsYXllcnM6IHByb3BzLnZpc1N0YXRlLmxheWVycyxcbiAgYW5pbWF0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5hbmltYXRpb25Db25maWcsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB0b2dnbGVNb2RhbDogcHJvcHMudWlTdGF0ZUFjdGlvbnMudG9nZ2xlTW9kYWwsXG4gIHNpZGVQYW5lbFdpZHRoOiBwcm9wcy51aVN0YXRlLnJlYWRPbmx5ID8gMCA6IHByb3BzLnNpZGVQYW5lbFdpZHRoICsgdGhlbWUuc2lkZVBhbmVsLm1hcmdpbi5sZWZ0XG59KTtcblxuZXhwb3J0IGNvbnN0IG1vZGFsQ29udGFpbmVyU2VsZWN0b3IgPSAocHJvcHMsIHJvb3ROb2RlKSA9PiAoe1xuICBhcHBOYW1lOiBwcm9wcy5hcHBOYW1lLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBwcm92aWRlclN0YXRlOiBwcm9wcy5wcm92aWRlclN0YXRlLFxuXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICBwcm92aWRlckFjdGlvbnM6IHByb3BzLnByb3ZpZGVyQWN0aW9ucyxcblxuICByb290Tm9kZSxcbiAgLy8gVXNlciBkZWZpbmVkIGNsb3VkIHByb3ZpZGVyIHByb3BzXG4gIGNsb3VkUHJvdmlkZXJzOiBwcm9wcy5jbG91ZFByb3ZpZGVycyxcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2VzczogcHJvcHMub25FeHBvcnRUb0Nsb3VkU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzOiBwcm9wcy5vbkxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gIG9uTG9hZENsb3VkTWFwRXJyb3I6IHByb3BzLm9uTG9hZENsb3VkTWFwRXJyb3IsXG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRFcnJvclxufSk7XG5cbmV4cG9ydCBjb25zdCBnZW9Db2RlclBhbmVsU2VsZWN0b3IgPSBwcm9wcyA9PiAoe1xuICBpc0dlb2NvZGVyRW5hYmxlZDogcHJvcHMudmlzU3RhdGUuaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCxcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBTdGF0ZTogcHJvcHMubWFwU3RhdGUsXG4gIHVwZGF0ZVZpc0RhdGE6IHByb3BzLnZpc1N0YXRlQWN0aW9ucy51cGRhdGVWaXNEYXRhLFxuICByZW1vdmVEYXRhc2V0OiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMucmVtb3ZlRGF0YXNldCxcbiAgdXBkYXRlTWFwOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwXG59KTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IgPSBwcm9wcyA9PiAoe1xuICByZW1vdmVOb3RpZmljYXRpb246IHByb3BzLnVpU3RhdGVBY3Rpb25zLnJlbW92ZU5vdGlmaWNhdGlvbixcbiAgbm90aWZpY2F0aW9uczogcHJvcHMudWlTdGF0ZS5ub3RpZmljYXRpb25zXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTID0ge1xuICBtYXBTdHlsZXM6IFtdLFxuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdDogZmFsc2UsXG4gIG1hcGJveEFwaVVybDogREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgd2lkdGg6IDgwMCxcbiAgaGVpZ2h0OiA4MDAsXG4gIGFwcE5hbWU6IEtFUExFUl9HTF9OQU1FLFxuICB2ZXJzaW9uOiBLRVBMRVJfR0xfVkVSU0lPTixcbiAgc2lkZVBhbmVsV2lkdGg6IERJTUVOU0lPTlMuc2lkZVBhbmVsLndpZHRoLFxuICB0aGVtZToge30sXG4gIGNsb3VkUHJvdmlkZXJzOiBbXSxcbiAgcmVhZE9ubHk6IGZhbHNlXG59O1xuXG5LZXBsZXJHbEZhY3RvcnkuZGVwcyA9IFtcbiAgQm90dG9tV2lkZ2V0RmFjdG9yeSxcbiAgR2VvQ29kZXJQYW5lbEZhY3RvcnksXG4gIE1hcENvbnRhaW5lckZhY3RvcnksXG4gIE1hcHNMYXlvdXRGYWN0b3J5LFxuICBNb2RhbENvbnRhaW5lckZhY3RvcnksXG4gIFNpZGVQYW5lbEZhY3RvcnksXG4gIFBsb3RDb250YWluZXJGYWN0b3J5LFxuICBOb3RpZmljYXRpb25QYW5lbEZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEtlcGxlckdsRmFjdG9yeShcbiAgQm90dG9tV2lkZ2V0LFxuICBHZW9Db2RlclBhbmVsLFxuICBNYXBDb250YWluZXIsXG4gIE1hcHNMYXlvdXQsXG4gIE1vZGFsQ29udGFpbmVyLFxuICBTaWRlUGFuZWwsXG4gIFBsb3RDb250YWluZXIsXG4gIE5vdGlmaWNhdGlvblBhbmVsXG4pIHtcbiAgLyoqIEB0eXBlZGVmIHtpbXBvcnQoJy4va2VwbGVyLWdsJykuVW5jb25uZWN0ZWRLZXBsZXJHbFByb3BzfSBLZXBsZXJHbFByb3BzICovXG4gIC8qKiBAYXVnbWVudHMgUmVhY3QuQ29tcG9uZW50PEtlcGxlckdsUHJvcHM+ICovXG4gIGNsYXNzIEtlcGxlckdMIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0gREVGQVVMVF9LRVBMRVJfR0xfUFJPUFM7XG5cbiAgICBzdGF0ZSA9IHtcbiAgICAgIGRpbWVuc2lvbnM6IG51bGxcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZU1hcGJveFRva2VuKCk7XG4gICAgICB0aGlzLl9sb2FkTWFwU3R5bGUoKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2hhbmRsZVJlc2l6ZSA9IGRpbWVuc2lvbnMgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICAgIH07XG5cbiAgICBzdGF0aWMgY29udGV4dFR5cGUgPSBSb290Q29udGV4dDtcblxuICAgIHJvb3QgPSBjcmVhdGVSZWYoKTtcbiAgICBib3R0b21XaWRnZXRSZWYgPSBjcmVhdGVSZWYoKTtcblxuICAgIC8qIHNlbGVjdG9ycyAqL1xuICAgIHRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy50aGVtZTtcbiAgICBhdmFpbGFibGVUaGVtZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy50aGVtZVNlbGVjdG9yLCB0aGVtZSA9PlxuICAgICAgdHlwZW9mIHRoZW1lID09PSAnb2JqZWN0J1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIC4uLmJhc2ljVGhlbWUsXG4gICAgICAgICAgICAuLi50aGVtZVxuICAgICAgICAgIH1cbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUubGlnaHRcbiAgICAgICAgPyB0aGVtZUxUXG4gICAgICAgIDogdGhlbWUgPT09IFRIRU1FLmJhc2VcbiAgICAgICAgPyB0aGVtZUJTXG4gICAgICAgIDogdGhlbWVcbiAgICApO1xuXG4gICAgYXZhaWxhYmxlUHJvdmlkZXJzID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBwcm9wcyA9PiBwcm9wcy5jbG91ZFByb3ZpZGVycyxcbiAgICAgIHByb3ZpZGVycyA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KHByb3ZpZGVycykgJiYgcHJvdmlkZXJzLmxlbmd0aFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBoYXNTdG9yYWdlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzUHJpdmF0ZVN0b3JhZ2UoKSksXG4gICAgICAgICAgICAgIGhhc1NoYXJlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzU2hhcmluZ1VybCgpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge31cbiAgICApO1xuXG4gICAgbG9jYWxlTWVzc2FnZXNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgcHJvcHMgPT4gcHJvcHMubG9jYWxlTWVzc2FnZXMsXG4gICAgICBjdXN0b21NZXNzYWdlcyA9PiAoY3VzdG9tTWVzc2FnZXMgPyBtZXJnZU1lc3NhZ2VzKG1lc3NhZ2VzLCBjdXN0b21NZXNzYWdlcykgOiBtZXNzYWdlcylcbiAgICApO1xuXG4gICAgLyogcHJpdmF0ZSBtZXRob2RzICovXG4gICAgX3ZhbGlkYXRlTWFwYm94VG9rZW4oKSB7XG4gICAgICBjb25zdCB7bWFwYm94QXBpQWNjZXNzVG9rZW59ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICghdmFsaWRhdGVUb2tlbihtYXBib3hBcGlBY2Nlc3NUb2tlbikpIHtcbiAgICAgICAgQ29uc29sZS53YXJuKE1JU1NJTkdfTUFQQk9YX1RPS0VOKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZE1hcFN0eWxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFN0eWxlcyA9IE9iamVjdC52YWx1ZXModGhpcy5wcm9wcy5tYXBTdHlsZS5tYXBTdHlsZXMpO1xuICAgICAgLy8gYWRkIGlkIHRvIGN1c3RvbSBtYXAgc3R5bGVzIGlmIG5vdCBnaXZlblxuICAgICAgY29uc3QgY3VzdG9tU3R5bGVzID0gKHRoaXMucHJvcHMubWFwU3R5bGVzIHx8IFtdKS5tYXAobXMgPT4gKHtcbiAgICAgICAgLi4ubXMsXG4gICAgICAgIGlkOiBtcy5pZCB8fCBnZW5lcmF0ZUhhc2hJZCgpXG4gICAgICB9KSk7XG5cbiAgICAgIGNvbnN0IGFsbFN0eWxlcyA9IFsuLi5jdXN0b21TdHlsZXMsIC4uLmRlZmF1bHRTdHlsZXNdLnJlZHVjZShcbiAgICAgICAgKGFjY3UsIHN0eWxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaGFzU3R5bGVPYmplY3QgPSBzdHlsZS5zdHlsZSAmJiB0eXBlb2Ygc3R5bGUuc3R5bGUgPT09ICdvYmplY3QnO1xuICAgICAgICAgIGFjY3VbaGFzU3R5bGVPYmplY3QgPyAndG9Mb2FkJyA6ICd0b1JlcXVlc3QnXVtzdHlsZS5pZF0gPSBzdHlsZTtcblxuICAgICAgICAgIHJldHVybiBhY2N1O1xuICAgICAgICB9LFxuICAgICAgICB7dG9Mb2FkOiB7fSwgdG9SZXF1ZXN0OiB7fX1cbiAgICAgICk7XG5cbiAgICAgIHRoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRNYXBTdHlsZXMoYWxsU3R5bGVzLnRvTG9hZCk7XG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5yZXF1ZXN0TWFwU3R5bGVzKGFsbFN0eWxlcy50b1JlcXVlc3QpO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICB1aVN0YXRlLFxuICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgLy8gcmVhZE9ubHkgb3ZlcnJpZGVcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIG1hc2tQb2x5Z29uXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgZGltZW5zaW9ucyA9IHRoaXMuc3RhdGUuZGltZW5zaW9ucyB8fCB7d2lkdGgsIGhlaWdodH07XG4gICAgICBjb25zdCB7XG4gICAgICAgIHNwbGl0TWFwcywgLy8gdGhpcyB3aWxsIHN0b3JlIHN1cHBvcnQgZm9yIHNwbGl0IG1hcCB2aWV3IGlzIG5lY2Vzc2FyeVxuICAgICAgICBpbnRlcmFjdGlvbkNvbmZpZ1xuICAgICAgfSA9IHZpc1N0YXRlO1xuXG4gICAgICBjb25zdCBpc1NwbGl0ID0gaXNTcGxpdFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgdGhlbWUgPSB0aGlzLmF2YWlsYWJsZVRoZW1lU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsb2NhbGVNZXNzYWdlcyA9IHRoaXMubG9jYWxlTWVzc2FnZXNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGlzRXhwb3J0aW5nSW1hZ2UgPSB1aVN0YXRlLmV4cG9ydEltYWdlLmV4cG9ydGluZztcbiAgICAgIGNvbnN0IGF2YWlsYWJsZVByb3ZpZGVycyA9IHRoaXMuYXZhaWxhYmxlUHJvdmlkZXJzKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBGaWVsZHMgPSBtYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHNpZGVGaWVsZHMgPSBzaWRlUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMpO1xuICAgICAgY29uc3QgcGxvdENvbnRhaW5lckZpZWxkcyA9IHBsb3RDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGJvdHRvbVdpZGdldEZpZWxkcyA9IGJvdHRvbVdpZGdldFNlbGVjdG9yKHRoaXMucHJvcHMsIHRoZW1lKTtcbiAgICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyRmllbGRzID0gbW9kYWxDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICBjb25zdCBnZW9Db2RlclBhbmVsRmllbGRzID0gZ2VvQ29kZXJQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxGaWVsZHMgPSBub3RpZmljYXRpb25QYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXRcbiAgICAgICAgPyBbXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIHByaW1hcnk9e3RydWV9XG4gICAgICAgICAgICAgIGtleT17MH1cbiAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHN9XG4gICAgICAgICAgICAgIG1hcExheWVycz17bnVsbH1cbiAgICAgICAgICAgICAgbWFza1BvbHlnb249e21hc2tQb2x5Z29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICBdXG4gICAgICAgIDogc3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgcHJpbWFyeT17aW5kZXggPT09IDF9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHN9XG4gICAgICAgICAgICAgIG1hcExheWVycz17c3BsaXRNYXBzW2luZGV4XS5sYXllcnN9XG4gICAgICAgICAgICAgIG1hc2tQb2x5Z29uPXttYXNrUG9seWdvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb290Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dGhpcy5yb290fT5cbiAgICAgICAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17dWlTdGF0ZS5sb2NhbGV9IG1lc3NhZ2VzPXtsb2NhbGVNZXNzYWdlc1t1aVN0YXRlLmxvY2FsZV19PlxuICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgICAgICAgPEdsb2JhbFN0eWxlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwia2VwbGVyLWdsXCJcbiAgICAgICAgICAgICAgICBpZD17YGtlcGxlci1nbF9fJHtpZH1gfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnJvb3R9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uUGFuZWwgey4uLm5vdGlmaWNhdGlvblBhbmVsRmllbGRzfSAvPlxuICAgICAgICAgICAgICAgIHshdWlTdGF0ZS5yZWFkT25seSAmJiAhcmVhZE9ubHkgJiYgPFNpZGVQYW5lbCB7Li4uc2lkZUZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgPE1hcHNMYXlvdXQgY2xhc3NOYW1lPVwibWFwc1wiPnttYXBDb250YWluZXJzfTwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICB7aXNFeHBvcnRpbmdJbWFnZSAmJiA8UGxvdENvbnRhaW5lciB7Li4ucGxvdENvbnRhaW5lckZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAge2ludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiYgPEdlb0NvZGVyUGFuZWwgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRPdXRlciBhYnNvbHV0ZT5cbiAgICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLmJvdHRvbVdpZGdldFJlZn1cbiAgICAgICAgICAgICAgICAgICAgey4uLmJvdHRvbVdpZGdldEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVz17ZGltZW5zaW9ucy53aWR0aH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Cb3R0b21XaWRnZXRPdXRlcj5cbiAgICAgICAgICAgICAgICA8TW9kYWxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5tb2RhbENvbnRhaW5lckZpZWxkc31cbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclc9e2RpbWVuc2lvbnMud2lkdGh9XG4gICAgICAgICAgICAgICAgICBjb250YWluZXJIPXtkaW1lbnNpb25zLmhlaWdodH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0dsb2JhbFN0eWxlPlxuICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgIDwvSW50bFByb3ZpZGVyPlxuICAgICAgICA8L1Jvb3RDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2VwbGVyR2xDb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFrZU1hcERpc3BhdGNoVG9Qcm9wcykod2l0aFRoZW1lKEtlcGxlckdMKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUgPSB7fSwgcHJvcHMpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9wcyxcbiAgICB2aXNTdGF0ZTogc3RhdGUudmlzU3RhdGUsXG4gICAgbWFwU3R5bGU6IHN0YXRlLm1hcFN0eWxlLFxuICAgIG1hcFN0YXRlOiBzdGF0ZS5tYXBTdGF0ZSxcbiAgICB1aVN0YXRlOiBzdGF0ZS51aVN0YXRlLFxuICAgIHByb3ZpZGVyU3RhdGU6IHN0YXRlLnByb3ZpZGVyU3RhdGVcbiAgfTtcbn1cblxuY29uc3QgZGVmYXVsdFVzZXJBY3Rpb25zID0ge307XG5cbmNvbnN0IGdldERpc3BhdGNoID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gZGlzcGF0Y2g7XG5jb25zdCBnZXRVc2VyQWN0aW9ucyA9IChkaXNwYXRjaCwgcHJvcHMpID0+IHByb3BzLmFjdGlvbnMgfHwgZGVmYXVsdFVzZXJBY3Rpb25zO1xuXG4vKiogQHR5cGUgeygpID0+IGltcG9ydCgncmVzZWxlY3QnKS5PdXRwdXRQYXJhbWV0cmljU2VsZWN0b3I8YW55LCBhbnksIGFueSwgYW55Pn0gKi9cbmZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKHVzZXJBY3Rpb25zLmhhc093blByb3BlcnR5KGtleSkgJiYgYWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBvdmVycmlkZXNba2V5XSA9IHVzZXJBY3Rpb25zW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsuLi5hY3Rpb25zLCAuLi5vdmVycmlkZXN9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBLZXBsZXJHbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUwsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxR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
|
|
470
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiVmlzU3RhdGVBY3Rpb25zIiwiTWFwU3RhdGVBY3Rpb25zIiwiTWFwU3R5bGVBY3Rpb25zIiwiVUlTdGF0ZUFjdGlvbnMiLCJQcm92aWRlckFjdGlvbnMiLCJfZGVmYXVsdFNldHRpbmdzIiwiX3VzZXJGZWVkYmFja3MiLCJfc2lkZVBhbmVsIiwiX21hcENvbnRhaW5lciIsIl9tYXBzTGF5b3V0IiwiX2JvdHRvbVdpZGdldCIsIl9tb2RhbENvbnRhaW5lciIsIl9wbG90Q29udGFpbmVyIiwiX25vdGlmaWNhdGlvblBhbmVsIiwiX2dlb2NvZGVyUGFuZWwiLCJfdXRpbHMiLCJfbWFwYm94VXRpbHMiLCJfbG9jYWxlVXRpbHMiLCJfYmFzZSIsIl9vYnNlcnZlRGltZW5zaW9ucyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwidmFsdWVPZiIsIkdsb2JhbFN0eWxlIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJsYWJlbENvbG9yIiwiQm90dG9tV2lkZ2V0T3V0ZXIiLCJfcmVmIiwiYWJzb2x1dGUiLCJjb25jYXQiLCJtYXBGaWVsZHNTZWxlY3RvciIsImV4cG9ydHMiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwiZGVja0dsUHJvcHMiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImVkaXRvciIsInZpc1N0YXRlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJsYXllck9yZGVyIiwibGF5ZXJEYXRhIiwibGF5ZXJCbGVuZGluZyIsImZpbHRlcnMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImhvdmVySW5mbyIsImNsaWNrZWQiLCJtb3VzZVBvcyIsImFuaW1hdGlvbkNvbmZpZyIsImFjdGl2ZVNpZGVQYW5lbCIsInVpU3RhdGUiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwibG9jYWxlIiwicG9wdXBTZXR0aW5ncyIsInNpZGVQYW5lbFNlbGVjdG9yIiwiYXZhaWxhYmxlUHJvdmlkZXJzIiwiYXBwTmFtZSIsInZlcnNpb24iLCJhcHBXZWJzaXRlIiwib25TYXZlTWFwIiwibWFwU3R5bGVBY3Rpb25zIiwibGF5ZXJDbGFzc2VzIiwibWFwSW5mbyIsIndpZHRoIiwic2lkZVBhbmVsV2lkdGgiLCJtYXBTYXZlZCIsInByb3ZpZGVyU3RhdGUiLCJwbG90Q29udGFpbmVyU2VsZWN0b3IiLCJoZWlnaHQiLCJleHBvcnRJbWFnZVNldHRpbmciLCJleHBvcnRJbWFnZSIsIm1hcEZpZWxkcyIsImFkZE5vdGlmaWNhdGlvbiIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlRGF0YVVyaSIsInNldEV4cG9ydEltYWdlRXJyb3IiLCJzcGxpdE1hcHMiLCJtYXNrUG9seWdvbiIsImlzU3BsaXRTZWxlY3RvciIsImJvdHRvbVdpZGdldFNlbGVjdG9yIiwidG9nZ2xlTW9kYWwiLCJzaWRlUGFuZWwiLCJtYXJnaW4iLCJsZWZ0IiwibW9kYWxDb250YWluZXJTZWxlY3RvciIsInJvb3ROb2RlIiwicHJvdmlkZXJBY3Rpb25zIiwiY2xvdWRQcm92aWRlcnMiLCJvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBFcnJvciIsIm9uRXhwb3J0VG9DbG91ZEVycm9yIiwiZ2VvQ29kZXJQYW5lbFNlbGVjdG9yIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ1cGRhdGVWaXNEYXRhIiwicmVtb3ZlRGF0YXNldCIsInVwZGF0ZU1hcCIsIm5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IiLCJyZW1vdmVOb3RpZmljYXRpb24iLCJub3RpZmljYXRpb25zIiwiREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMiLCJtYXBTdHlsZXMiLCJtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJLRVBMRVJfR0xfTkFNRSIsIktFUExFUl9HTF9WRVJTSU9OIiwiRElNRU5TSU9OUyIsIktlcGxlckdsRmFjdG9yeSIsImRlcHMiLCJCb3R0b21XaWRnZXRGYWN0b3J5IiwiR2VvQ29kZXJQYW5lbEZhY3RvcnkiLCJNYXBDb250YWluZXJGYWN0b3J5IiwiTWFwc0xheW91dEZhY3RvcnkiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJTaWRlUGFuZWxGYWN0b3J5IiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkiLCJCb3R0b21XaWRnZXQiLCJHZW9Db2RlclBhbmVsIiwiTWFwQ29udGFpbmVyIiwiTWFwc0xheW91dCIsIk1vZGFsQ29udGFpbmVyIiwiU2lkZVBhbmVsIiwiUGxvdENvbnRhaW5lciIsIk5vdGlmaWNhdGlvblBhbmVsIiwiS2VwbGVyR0wiLCJfQ29tcG9uZW50IiwiX2luaGVyaXRzMiIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZDIiLCJkaW1lbnNpb25zIiwic2V0U3RhdGUiLCJjcmVhdGVSZWYiLCJjcmVhdGVTZWxlY3RvciIsInRoZW1lU2VsZWN0b3IiLCJfdHlwZW9mMiIsImJhc2ljVGhlbWUiLCJUSEVNRSIsImxpZ2h0IiwidGhlbWVMVCIsImJhc2UiLCJ0aGVtZUJTIiwicHJvdmlkZXJzIiwiaXNBcnJheSIsImhhc1N0b3JhZ2UiLCJzb21lIiwicCIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmUiLCJoYXNTaGFyaW5nVXJsIiwibG9jYWxlTWVzc2FnZXMiLCJjdXN0b21NZXNzYWdlcyIsIm1lcmdlTWVzc2FnZXMiLCJtZXNzYWdlcyIsImRlZmF1bHRTdHlsZXMiLCJ2YWx1ZXMiLCJjdXN0b21TdHlsZXMiLCJtYXAiLCJtcyIsImlkIiwiZ2VuZXJhdGVIYXNoSWQiLCJhbGxTdHlsZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicmVkdWNlIiwiYWNjdSIsInN0eWxlIiwiaGFzU3R5bGVPYmplY3QiLCJ0b0xvYWQiLCJ0b1JlcXVlc3QiLCJsb2FkTWFwU3R5bGVzIiwicmVxdWVzdE1hcFN0eWxlcyIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50IiwiX2xvYWRNYXBTdHlsZSIsIm9uS2VwbGVyR2xJbml0aWFsaXplZCIsInJvb3QiLCJjdXJyZW50IiwiSFRNTEVsZW1lbnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsIl9oYW5kbGVSZXNpemUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInVub2JzZXJ2ZURpbWVuc2lvbnMiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsInN0YXRlIiwiaXNTcGxpdCIsImF2YWlsYWJsZVRoZW1lU2VsZWN0b3IiLCJsb2NhbGVNZXNzYWdlc1NlbGVjdG9yIiwiaXNFeHBvcnRpbmdJbWFnZSIsImV4cG9ydGluZyIsInNpZGVGaWVsZHMiLCJwbG90Q29udGFpbmVyRmllbGRzIiwiYm90dG9tV2lkZ2V0RmllbGRzIiwibW9kYWxDb250YWluZXJGaWVsZHMiLCJnZW9Db2RlclBhbmVsRmllbGRzIiwibm90aWZpY2F0aW9uUGFuZWxGaWVsZHMiLCJtYXBDb250YWluZXJzIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsInByaW1hcnkiLCJpbmRleCIsIm1hcExheWVycyIsInNldHRpbmdzIiwiUm9vdENvbnRleHQiLCJQcm92aWRlciIsIkludGxQcm92aWRlciIsIlRoZW1lUHJvdmlkZXIiLCJjbGFzc05hbWUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsInBvc2l0aW9uIiwicmVmIiwiYm90dG9tV2lkZ2V0UmVmIiwiY29udGFpbmVyVyIsImNvbnRhaW5lckgiLCJDb21wb25lbnQiLCJrZXBsZXJHbENvbm5lY3QiLCJtYXBTdGF0ZVRvUHJvcHMiLCJtYWtlTWFwRGlzcGF0Y2hUb1Byb3BzIiwid2l0aFRoZW1lIiwidW5kZWZpbmVkIiwiZGVmYXVsdFVzZXJBY3Rpb25zIiwiZ2V0RGlzcGF0Y2giLCJkaXNwYXRjaCIsImdldFVzZXJBY3Rpb25zIiwiYWN0aW9ucyIsIm1ha2VHZXRBY3Rpb25DcmVhdG9ycyIsInVzZXJBY3Rpb25zIiwiX21hcCIsImJpbmRBY3Rpb25DcmVhdG9ycyIsIm1lcmdlQWN0aW9ucyIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZ2V0QWN0aW9uQ3JlYXRvcnMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJvd25Qcm9wcyIsImdyb3VwZWRBY3Rpb25DcmVhdG9ycyIsIm92ZXJyaWRlcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMva2VwbGVyLWdsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2JpbmRBY3Rpb25DcmVhdG9yc30gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHN0eWxlZCwge1RoZW1lUHJvdmlkZXIsIHdpdGhUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IHtjb25uZWN0IGFzIGtlcGxlckdsQ29ubmVjdH0gZnJvbSAnY29ubmVjdC9rZXBsZXJnbC1jb25uZWN0JztcbmltcG9ydCB7SW50bFByb3ZpZGVyfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7bWVzc2FnZXN9IGZyb20gJy4uL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1Jvb3RDb250ZXh0fSBmcm9tICdjb21wb25lbnRzL2NvbnRleHQnO1xuXG5pbXBvcnQgKiBhcyBWaXNTdGF0ZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy92aXMtc3RhdGUtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBNYXBTdGF0ZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy9tYXAtc3RhdGUtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBNYXBTdHlsZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy9tYXAtc3R5bGUtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBVSVN0YXRlQWN0aW9ucyBmcm9tICdhY3Rpb25zL3VpLXN0YXRlLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgUHJvdmlkZXJBY3Rpb25zIGZyb20gJ2FjdGlvbnMvcHJvdmlkZXItYWN0aW9ucyc7XG5cbmltcG9ydCB7XG4gIERJTUVOU0lPTlMsXG4gIEtFUExFUl9HTF9OQU1FLFxuICBLRVBMRVJfR0xfVkVSU0lPTixcbiAgVEhFTUUsXG4gIERFRkFVTFRfTUFQQk9YX0FQSV9VUkxcbn0gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtNSVNTSU5HX01BUEJPWF9UT0tFTn0gZnJvbSAnY29uc3RhbnRzL3VzZXItZmVlZGJhY2tzJztcblxuaW1wb3J0IFNpZGVQYW5lbEZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQgQm90dG9tV2lkZ2V0RmFjdG9yeSBmcm9tICcuL2JvdHRvbS13aWRnZXQnO1xuaW1wb3J0IE1vZGFsQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21vZGFsLWNvbnRhaW5lcic7XG5pbXBvcnQgUGxvdENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9wbG90LWNvbnRhaW5lcic7XG5pbXBvcnQgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5IGZyb20gJy4vbm90aWZpY2F0aW9uLXBhbmVsJztcbmltcG9ydCBHZW9Db2RlclBhbmVsRmFjdG9yeSBmcm9tICcuL2dlb2NvZGVyLXBhbmVsJztcblxuaW1wb3J0IHtnZW5lcmF0ZUhhc2hJZH0gZnJvbSAndXRpbHMvdXRpbHMnO1xuaW1wb3J0IHt2YWxpZGF0ZVRva2VufSBmcm9tICd1dGlscy9tYXBib3gtdXRpbHMnO1xuaW1wb3J0IHttZXJnZU1lc3NhZ2VzfSBmcm9tICd1dGlscy9sb2NhbGUtdXRpbHMnO1xuXG5pbXBvcnQge3RoZW1lIGFzIGJhc2ljVGhlbWUsIHRoZW1lTFQsIHRoZW1lQlN9IGZyb20gJ3N0eWxlcy9iYXNlJztcbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJy4uL3V0aWxzL29ic2VydmUtZGltZW5zaW9ucyc7XG5cbi8vIE1heWJlIHdlIHNob3VsZCB0aGluayBhYm91dCBleHBvcnRpbmcgdGhpcyBvciBjcmVhdGluZyBhIHZhcmlhYmxlXG4vLyBhcyBwYXJ0IG9mIHRoZSBiYXNlLmpzIHRoZW1lXG5jb25zdCBHbG9iYWxTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXdlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250V2VpZ2h0fTtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGluZUhlaWdodH07XG5cbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGxpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIH1cbmA7XG5cbmNvbnN0IEJvdHRvbVdpZGdldE91dGVyID0gc3R5bGVkLmRpdihcbiAgKHthYnNvbHV0ZX0pID0+IGBcbiAgJHthYnNvbHV0ZSA/ICdwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgcmlnaHQ6IDA7JyA6ICcnfVxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogcHJldmVudCBwYWRkaW5nIGZyb20gYmxvY2tpbmcgaW5wdXQgKi9cbiAgJiA+ICoge1xuICAgIC8qIGFsbCBjaGlsZHJlbiBzaG91bGQgYWxsb3cgaW5wdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9YFxuKTtcblxuZXhwb3J0IGNvbnN0IG1hcEZpZWxkc1NlbGVjdG9yID0gcHJvcHMgPT4gKHtcbiAgZ2V0TWFwYm94UmVmOiBwcm9wcy5nZXRNYXBib3hSZWYsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICBvbkRlY2tJbml0aWFsaXplZDogcHJvcHMub25EZWNrSW5pdGlhbGl6ZWQsXG4gIG9uVmlld1N0YXRlQ2hhbmdlOiBwcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSxcbiAgZGVja0dsUHJvcHM6IHByb3BzLmRlY2tHbFByb3BzLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICBtYXBTdGF0ZUFjdGlvbnM6IHByb3BzLm1hcFN0YXRlQWN0aW9ucyxcblxuICAvLyB2aXNTdGF0ZVxuICBlZGl0b3I6IHByb3BzLnZpc1N0YXRlLmVkaXRvcixcbiAgZGF0YXNldHM6IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzLFxuICBsYXllcnM6IHByb3BzLnZpc1N0YXRlLmxheWVycyxcbiAgbGF5ZXJPcmRlcjogcHJvcHMudmlzU3RhdGUubGF5ZXJPcmRlcixcbiAgbGF5ZXJEYXRhOiBwcm9wcy52aXNTdGF0ZS5sYXllckRhdGEsXG4gIGxheWVyQmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLmxheWVyQmxlbmRpbmcsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGludGVyYWN0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZyxcbiAgaG92ZXJJbmZvOiBwcm9wcy52aXNTdGF0ZS5ob3ZlckluZm8sXG4gIGNsaWNrZWQ6IHByb3BzLnZpc1N0YXRlLmNsaWNrZWQsXG4gIG1vdXNlUG9zOiBwcm9wcy52aXNTdGF0ZS5tb3VzZVBvcyxcbiAgYW5pbWF0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5hbmltYXRpb25Db25maWcsXG5cbiAgLy8gdWlTdGF0ZVxuICBhY3RpdmVTaWRlUGFuZWw6IHByb3BzLnVpU3RhdGUuYWN0aXZlU2lkZVBhbmVsLFxuICBtYXBDb250cm9sczogcHJvcHMudWlTdGF0ZS5tYXBDb250cm9scyxcbiAgcmVhZE9ubHk6IHByb3BzLnVpU3RhdGUucmVhZE9ubHksXG4gIGxvY2FsZTogcHJvcHMudWlTdGF0ZS5sb2NhbGUsXG5cbiAgLy8gaW50ZXJhY3Rpdml0eVxuICBwb3B1cFNldHRpbmdzOiBwcm9wcy5wb3B1cFNldHRpbmdzXG59KTtcblxuZXhwb3J0IGNvbnN0IHNpZGVQYW5lbFNlbGVjdG9yID0gKHByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUsXG4gIHZlcnNpb246IHByb3BzLnZlcnNpb24sXG4gIGFwcFdlYnNpdGU6IHByb3BzLmFwcFdlYnNpdGUsXG4gIG1hcFN0eWxlOiBwcm9wcy5tYXBTdHlsZSxcbiAgb25TYXZlTWFwOiBwcm9wcy5vblNhdmVNYXAsXG4gIHVpU3RhdGU6IHByb3BzLnVpU3RhdGUsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdWlTdGF0ZUFjdGlvbnM6IHByb3BzLnVpU3RhdGVBY3Rpb25zLFxuXG4gIGRhdGFzZXRzOiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cyxcbiAgZmlsdGVyczogcHJvcHMudmlzU3RhdGUuZmlsdGVycyxcbiAgbGF5ZXJzOiBwcm9wcy52aXNTdGF0ZS5sYXllcnMsXG4gIGxheWVyT3JkZXI6IHByb3BzLnZpc1N0YXRlLmxheWVyT3JkZXIsXG4gIGxheWVyQ2xhc3NlczogcHJvcHMudmlzU3RhdGUubGF5ZXJDbGFzc2VzLFxuICBpbnRlcmFjdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuaW50ZXJhY3Rpb25Db25maWcsXG4gIG1hcEluZm86IHByb3BzLnZpc1N0YXRlLm1hcEluZm8sXG4gIGxheWVyQmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLmxheWVyQmxlbmRpbmcsXG5cbiAgd2lkdGg6IHByb3BzLnNpZGVQYW5lbFdpZHRoLFxuICBhdmFpbGFibGVQcm92aWRlcnMsXG4gIG1hcFNhdmVkOiBwcm9wcy5wcm92aWRlclN0YXRlLm1hcFNhdmVkXG59KTtcblxuZXhwb3J0IGNvbnN0IHBsb3RDb250YWluZXJTZWxlY3RvciA9IHByb3BzID0+ICh7XG4gIHdpZHRoOiBwcm9wcy53aWR0aCxcbiAgaGVpZ2h0OiBwcm9wcy5oZWlnaHQsXG4gIGV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZSxcbiAgbWFwRmllbGRzOiBtYXBGaWVsZHNTZWxlY3Rvcihwcm9wcyksXG4gIGFkZE5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuYWRkTm90aWZpY2F0aW9uLFxuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZyxcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gIHNldEV4cG9ydEltYWdlRXJyb3I6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRXJyb3IsXG4gIHNwbGl0TWFwczogcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzLFxuICBtYXNrUG9seWdvbjogcHJvcHMubWFza1BvbHlnb25cbn0pO1xuXG5leHBvcnQgY29uc3QgaXNTcGxpdFNlbGVjdG9yID0gcHJvcHMgPT5cbiAgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzICYmIHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggPiAxO1xuXG5leHBvcnQgY29uc3QgYm90dG9tV2lkZ2V0U2VsZWN0b3IgPSAocHJvcHMsIHRoZW1lKSA9PiAoe1xuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBkYXRhc2V0czogcHJvcHMudmlzU3RhdGUuZGF0YXNldHMsXG4gIHVpU3RhdGU6IHByb3BzLnVpU3RhdGUsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBhbmltYXRpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmFuaW1hdGlvbkNvbmZpZyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHRvZ2dsZU1vZGFsOiBwcm9wcy51aVN0YXRlQWN0aW9ucy50b2dnbGVNb2RhbCxcbiAgc2lkZVBhbmVsV2lkdGg6IHByb3BzLnVpU3RhdGUucmVhZE9ubHkgPyAwIDogcHJvcHMuc2lkZVBhbmVsV2lkdGggKyB0aGVtZS5zaWRlUGFuZWwubWFyZ2luLmxlZnRcbn0pO1xuXG5leHBvcnQgY29uc3QgbW9kYWxDb250YWluZXJTZWxlY3RvciA9IChwcm9wcywgcm9vdE5vZGUpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUsXG4gIG1hcFN0eWxlOiBwcm9wcy5tYXBTdHlsZSxcbiAgdmlzU3RhdGU6IHByb3BzLnZpc1N0YXRlLFxuICBtYXBTdGF0ZTogcHJvcHMubWFwU3RhdGUsXG4gIHVpU3RhdGU6IHByb3BzLnVpU3RhdGUsXG4gIHByb3ZpZGVyU3RhdGU6IHByb3BzLnByb3ZpZGVyU3RhdGUsXG5cbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBib3hBcGlVcmw6IHByb3BzLm1hcGJveEFwaVVybCxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgbWFwU3R5bGVBY3Rpb25zOiBwcm9wcy5tYXBTdHlsZUFjdGlvbnMsXG4gIHByb3ZpZGVyQWN0aW9uczogcHJvcHMucHJvdmlkZXJBY3Rpb25zLFxuXG4gIHJvb3ROb2RlLFxuICAvLyBVc2VyIGRlZmluZWQgY2xvdWQgcHJvdmlkZXIgcHJvcHNcbiAgY2xvdWRQcm92aWRlcnM6IHByb3BzLmNsb3VkUHJvdmlkZXJzLFxuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRTdWNjZXNzLFxuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M6IHByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcjogcHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvcixcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I6IHByb3BzLm9uRXhwb3J0VG9DbG91ZEVycm9yXG59KTtcblxuZXhwb3J0IGNvbnN0IGdlb0NvZGVyUGFuZWxTZWxlY3RvciA9IHByb3BzID0+ICh7XG4gIGlzR2VvY29kZXJFbmFibGVkOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgdXBkYXRlVmlzRGF0YTogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVZpc0RhdGEsXG4gIHJlbW92ZURhdGFzZXQ6IHByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZW1vdmVEYXRhc2V0LFxuICB1cGRhdGVNYXA6IHByb3BzLm1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXBcbn0pO1xuXG5leHBvcnQgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxTZWxlY3RvciA9IHByb3BzID0+ICh7XG4gIHJlbW92ZU5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMucmVtb3ZlTm90aWZpY2F0aW9uLFxuICBub3RpZmljYXRpb25zOiBwcm9wcy51aVN0YXRlLm5vdGlmaWNhdGlvbnNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMgPSB7XG4gIG1hcFN0eWxlczogW10sXG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBmYWxzZSxcbiAgbWFwYm94QXBpVXJsOiBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgYXBwTmFtZTogS0VQTEVSX0dMX05BTUUsXG4gIHZlcnNpb246IEtFUExFUl9HTF9WRVJTSU9OLFxuICBzaWRlUGFuZWxXaWR0aDogRElNRU5TSU9OUy5zaWRlUGFuZWwud2lkdGgsXG4gIHRoZW1lOiB7fSxcbiAgY2xvdWRQcm92aWRlcnM6IFtdLFxuICByZWFkT25seTogZmFsc2Vcbn07XG5cbktlcGxlckdsRmFjdG9yeS5kZXBzID0gW1xuICBCb3R0b21XaWRnZXRGYWN0b3J5LFxuICBHZW9Db2RlclBhbmVsRmFjdG9yeSxcbiAgTWFwQ29udGFpbmVyRmFjdG9yeSxcbiAgTWFwc0xheW91dEZhY3RvcnksXG4gIE1vZGFsQ29udGFpbmVyRmFjdG9yeSxcbiAgU2lkZVBhbmVsRmFjdG9yeSxcbiAgUGxvdENvbnRhaW5lckZhY3RvcnksXG4gIE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gS2VwbGVyR2xGYWN0b3J5KFxuICBCb3R0b21XaWRnZXQsXG4gIEdlb0NvZGVyUGFuZWwsXG4gIE1hcENvbnRhaW5lcixcbiAgTWFwc0xheW91dCxcbiAgTW9kYWxDb250YWluZXIsXG4gIFNpZGVQYW5lbCxcbiAgUGxvdENvbnRhaW5lcixcbiAgTm90aWZpY2F0aW9uUGFuZWxcbikge1xuICAvKiogQHR5cGVkZWYge2ltcG9ydCgnLi9rZXBsZXItZ2wnKS5VbmNvbm5lY3RlZEtlcGxlckdsUHJvcHN9IEtlcGxlckdsUHJvcHMgKi9cbiAgLyoqIEBhdWdtZW50cyBSZWFjdC5Db21wb25lbnQ8S2VwbGVyR2xQcm9wcz4gKi9cbiAgY2xhc3MgS2VwbGVyR0wgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUztcblxuICAgIHN0YXRlID0ge1xuICAgICAgZGltZW5zaW9uczogbnVsbFxuICAgIH07XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuX2xvYWRNYXBTdHlsZSgpO1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uS2VwbGVyR2xJbml0aWFsaXplZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uS2VwbGVyR2xJbml0aWFsaXplZCgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgb2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQsIHRoaXMuX2hhbmRsZVJlc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5yb290LmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtkaW1lbnNpb25zfSk7XG4gICAgfTtcblxuICAgIHN0YXRpYyBjb250ZXh0VHlwZSA9IFJvb3RDb250ZXh0O1xuXG4gICAgcm9vdCA9IGNyZWF0ZVJlZigpO1xuICAgIGJvdHRvbVdpZGdldFJlZiA9IGNyZWF0ZVJlZigpO1xuXG4gICAgLyogc2VsZWN0b3JzICovXG4gICAgdGhlbWVTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnRoZW1lO1xuICAgIGF2YWlsYWJsZVRoZW1lU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLnRoZW1lU2VsZWN0b3IsIHRoZW1lID0+XG4gICAgICB0eXBlb2YgdGhlbWUgPT09ICdvYmplY3QnXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uYmFzaWNUaGVtZSxcbiAgICAgICAgICAgIC4uLnRoZW1lXG4gICAgICAgICAgfVxuICAgICAgICA6IHRoZW1lID09PSBUSEVNRS5saWdodFxuICAgICAgICA/IHRoZW1lTFRcbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUuYmFzZVxuICAgICAgICA/IHRoZW1lQlNcbiAgICAgICAgOiB0aGVtZVxuICAgICk7XG5cbiAgICBhdmFpbGFibGVQcm92aWRlcnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHByb3BzID0+IHByb3BzLmNsb3VkUHJvdmlkZXJzLFxuICAgICAgcHJvdmlkZXJzID0+XG4gICAgICAgIEFycmF5LmlzQXJyYXkocHJvdmlkZXJzKSAmJiBwcm92aWRlcnMubGVuZ3RoXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGhhc1N0b3JhZ2U6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNQcml2YXRlU3RvcmFnZSgpKSxcbiAgICAgICAgICAgICAgaGFzU2hhcmU6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNTaGFyaW5nVXJsKCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fVxuICAgICk7XG5cbiAgICBsb2NhbGVNZXNzYWdlc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBwcm9wcyA9PiBwcm9wcy5sb2NhbGVNZXNzYWdlcyxcbiAgICAgIGN1c3RvbU1lc3NhZ2VzID0+IChjdXN0b21NZXNzYWdlcyA/IG1lcmdlTWVzc2FnZXMobWVzc2FnZXMsIGN1c3RvbU1lc3NhZ2VzKSA6IG1lc3NhZ2VzKVxuICAgICk7XG5cbiAgICAvKiBwcml2YXRlIG1ldGhvZHMgKi9cblxuICAgIF9sb2FkTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0U3R5bGVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnByb3BzLm1hcFN0eWxlLm1hcFN0eWxlcyk7XG4gICAgICAvLyBhZGQgaWQgdG8gY3VzdG9tIG1hcCBzdHlsZXMgaWYgbm90IGdpdmVuXG4gICAgICBjb25zdCBjdXN0b21TdHlsZXMgPSAodGhpcy5wcm9wcy5tYXBTdHlsZXMgfHwgW10pLm1hcChtcyA9PiAoe1xuICAgICAgICAuLi5tcyxcbiAgICAgICAgaWQ6IG1zLmlkIHx8IGdlbmVyYXRlSGFzaElkKClcbiAgICAgIH0pKTtcblxuICAgICAgY29uc3QgYWxsU3R5bGVzID0gWy4uLmN1c3RvbVN0eWxlcywgLi4uZGVmYXVsdFN0eWxlc10ucmVkdWNlKFxuICAgICAgICAoYWNjdSwgc3R5bGUpID0+IHtcbiAgICAgICAgICBjb25zdCBoYXNTdHlsZU9iamVjdCA9IHN0eWxlLnN0eWxlICYmIHR5cGVvZiBzdHlsZS5zdHlsZSA9PT0gJ29iamVjdCc7XG4gICAgICAgICAgYWNjdVtoYXNTdHlsZU9iamVjdCA/ICd0b0xvYWQnIDogJ3RvUmVxdWVzdCddW3N0eWxlLmlkXSA9IHN0eWxlO1xuXG4gICAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICAgIH0sXG4gICAgICAgIHt0b0xvYWQ6IHt9LCB0b1JlcXVlc3Q6IHt9fVxuICAgICAgKTtcblxuICAgICAgdGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMubG9hZE1hcFN0eWxlcyhhbGxTdHlsZXMudG9Mb2FkKTtcbiAgICAgIHRoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLnJlcXVlc3RNYXBTdHlsZXMoYWxsU3R5bGVzLnRvUmVxdWVzdCk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHVpU3RhdGUsXG4gICAgICAgIHZpc1N0YXRlLFxuICAgICAgICAvLyByZWFkT25seSBvdmVycmlkZVxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbWFza1BvbHlnb25cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gdGhpcy5zdGF0ZS5kaW1lbnNpb25zIHx8IHt3aWR0aCwgaGVpZ2h0fTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3BsaXRNYXBzLCAvLyB0aGlzIHdpbGwgc3RvcmUgc3VwcG9ydCBmb3Igc3BsaXQgbWFwIHZpZXcgaXMgbmVjZXNzYXJ5XG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnXG4gICAgICB9ID0gdmlzU3RhdGU7XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBpc1NwbGl0U2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCB0aGVtZSA9IHRoaXMuYXZhaWxhYmxlVGhlbWVTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxvY2FsZU1lc3NhZ2VzID0gdGhpcy5sb2NhbGVNZXNzYWdlc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgaXNFeHBvcnRpbmdJbWFnZSA9IHVpU3RhdGUuZXhwb3J0SW1hZ2UuZXhwb3J0aW5nO1xuICAgICAgY29uc3QgYXZhaWxhYmxlUHJvdmlkZXJzID0gdGhpcy5hdmFpbGFibGVQcm92aWRlcnModGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcEZpZWxkcyA9IG1hcEZpZWxkc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3Qgc2lkZUZpZWxkcyA9IHNpZGVQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMsIGF2YWlsYWJsZVByb3ZpZGVycyk7XG4gICAgICBjb25zdCBwbG90Q29udGFpbmVyRmllbGRzID0gcGxvdENvbnRhaW5lclNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgYm90dG9tV2lkZ2V0RmllbGRzID0gYm90dG9tV2lkZ2V0U2VsZWN0b3IodGhpcy5wcm9wcywgdGhlbWUpO1xuICAgICAgY29uc3QgbW9kYWxDb250YWluZXJGaWVsZHMgPSBtb2RhbENvbnRhaW5lclNlbGVjdG9yKHRoaXMucHJvcHMsIHRoaXMucm9vdC5jdXJyZW50KTtcbiAgICAgIGNvbnN0IGdlb0NvZGVyUGFuZWxGaWVsZHMgPSBnZW9Db2RlclBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25QYW5lbEZpZWxkcyA9IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcENvbnRhaW5lcnMgPSAhaXNTcGxpdFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIDxNYXBDb250YWluZXJcbiAgICAgICAgICAgICAgcHJpbWFyeT17dHJ1ZX1cbiAgICAgICAgICAgICAga2V5PXswfVxuICAgICAgICAgICAgICBpbmRleD17MH1cbiAgICAgICAgICAgICAgey4uLm1hcEZpZWxkc31cbiAgICAgICAgICAgICAgbWFwTGF5ZXJzPXtudWxsfVxuICAgICAgICAgICAgICBtYXNrUG9seWdvbj17bWFza1BvbHlnb259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIF1cbiAgICAgICAgOiBzcGxpdE1hcHMubWFwKChzZXR0aW5ncywgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxNYXBDb250YWluZXJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBwcmltYXJ5PXtpbmRleCA9PT0gMX1cbiAgICAgICAgICAgICAgey4uLm1hcEZpZWxkc31cbiAgICAgICAgICAgICAgbWFwTGF5ZXJzPXtzcGxpdE1hcHNbaW5kZXhdLmxheWVyc31cbiAgICAgICAgICAgICAgbWFza1BvbHlnb249e21hc2tQb2x5Z29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFJvb3RDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0aGlzLnJvb3R9PlxuICAgICAgICAgIDxJbnRsUHJvdmlkZXIgbG9jYWxlPXt1aVN0YXRlLmxvY2FsZX0gbWVzc2FnZXM9e2xvY2FsZU1lc3NhZ2VzW3VpU3RhdGUubG9jYWxlXX0+XG4gICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICAgICAgICA8R2xvYmFsU3R5bGVcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJrZXBsZXItZ2xcIlxuICAgICAgICAgICAgICAgIGlkPXtga2VwbGVyLWdsX18ke2lkfWB9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogYCR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25QYW5lbCB7Li4ubm90aWZpY2F0aW9uUGFuZWxGaWVsZHN9IC8+XG4gICAgICAgICAgICAgICAgeyF1aVN0YXRlLnJlYWRPbmx5ICYmICFyZWFkT25seSAmJiA8U2lkZVBhbmVsIHsuLi5zaWRlRmllbGRzfSAvPn1cbiAgICAgICAgICAgICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJtYXBzXCI+e21hcENvbnRhaW5lcnN9PC9NYXBzTGF5b3V0PlxuICAgICAgICAgICAgICAgIHtpc0V4cG9ydGluZ0ltYWdlICYmIDxQbG90Q29udGFpbmVyIHsuLi5wbG90Q29udGFpbmVyRmllbGRzfSAvPn1cbiAgICAgICAgICAgICAgICB7aW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCAmJiA8R2VvQ29kZXJQYW5lbCB7Li4uZ2VvQ29kZXJQYW5lbEZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldE91dGVyIGFic29sdXRlPlxuICAgICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldFxuICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMuYm90dG9tV2lkZ2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICB7Li4uYm90dG9tV2lkZ2V0RmllbGRzfVxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0JvdHRvbVdpZGdldE91dGVyPlxuICAgICAgICAgICAgICAgIDxNb2RhbENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgey4uLm1vZGFsQ29udGFpbmVyRmllbGRzfVxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyVz17ZGltZW5zaW9ucy53aWR0aH1cbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckg9e2RpbWVuc2lvbnMuaGVpZ2h0fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvR2xvYmFsU3R5bGU+XG4gICAgICAgICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgICAgIDwvUm9vdENvbnRleHQuUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXBsZXJHbENvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYWtlTWFwRGlzcGF0Y2hUb1Byb3BzKSh3aXRoVGhlbWUoS2VwbGVyR0wpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZSA9IHt9LCBwcm9wcykge1xuICByZXR1cm4ge1xuICAgIC4uLnByb3BzLFxuICAgIHZpc1N0YXRlOiBzdGF0ZS52aXNTdGF0ZSxcbiAgICBtYXBTdHlsZTogc3RhdGUubWFwU3R5bGUsXG4gICAgbWFwU3RhdGU6IHN0YXRlLm1hcFN0YXRlLFxuICAgIHVpU3RhdGU6IHN0YXRlLnVpU3RhdGUsXG4gICAgcHJvdmlkZXJTdGF0ZTogc3RhdGUucHJvdmlkZXJTdGF0ZVxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0VXNlckFjdGlvbnMgPSB7fTtcblxuY29uc3QgZ2V0RGlzcGF0Y2ggPSAoZGlzcGF0Y2gsIHByb3BzKSA9PiBkaXNwYXRjaDtcbmNvbnN0IGdldFVzZXJBY3Rpb25zID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gcHJvcHMuYWN0aW9ucyB8fCBkZWZhdWx0VXNlckFjdGlvbnM7XG5cbi8qKiBAdHlwZSB7KCkgPT4gaW1wb3J0KCdyZXNlbGVjdCcpLk91dHB1dFBhcmFtZXRyaWNTZWxlY3RvcjxhbnksIGFueSwgYW55LCBhbnk+fSAqL1xuZnVuY3Rpb24gbWFrZUdldEFjdGlvbkNyZWF0b3JzKCkge1xuICByZXR1cm4gY3JlYXRlU2VsZWN0b3IoW2dldERpc3BhdGNoLCBnZXRVc2VyQWN0aW9uc10sIChkaXNwYXRjaCwgdXNlckFjdGlvbnMpID0+IHtcbiAgICBjb25zdCBbdmlzU3RhdGVBY3Rpb25zLCBtYXBTdGF0ZUFjdGlvbnMsIG1hcFN0eWxlQWN0aW9ucywgdWlTdGF0ZUFjdGlvbnMsIHByb3ZpZGVyQWN0aW9uc10gPSBbXG4gICAgICBWaXNTdGF0ZUFjdGlvbnMsXG4gICAgICBNYXBTdGF0ZUFjdGlvbnMsXG4gICAgICBNYXBTdHlsZUFjdGlvbnMsXG4gICAgICBVSVN0YXRlQWN0aW9ucyxcbiAgICAgIFByb3ZpZGVyQWN0aW9uc1xuICAgIF0ubWFwKGFjdGlvbnMgPT4gYmluZEFjdGlvbkNyZWF0b3JzKG1lcmdlQWN0aW9ucyhhY3Rpb25zLCB1c2VyQWN0aW9ucyksIGRpc3BhdGNoKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3R5bGVBY3Rpb25zLFxuICAgICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgICBwcm92aWRlckFjdGlvbnMsXG4gICAgICBkaXNwYXRjaFxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBtYWtlTWFwRGlzcGF0Y2hUb1Byb3BzKCkge1xuICBjb25zdCBnZXRBY3Rpb25DcmVhdG9ycyA9IG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpO1xuICBjb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSAoZGlzcGF0Y2gsIG93blByb3BzKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBlZEFjdGlvbkNyZWF0b3JzID0gZ2V0QWN0aW9uQ3JlYXRvcnMoZGlzcGF0Y2gsIG93blByb3BzKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5ncm91cGVkQWN0aW9uQ3JlYXRvcnMsXG4gICAgICBkaXNwYXRjaFxuICAgIH07XG4gIH07XG5cbiAgcmV0dXJuIG1hcERpc3BhdGNoVG9Qcm9wcztcbn1cblxuLyoqXG4gKiBPdmVycmlkZSBkZWZhdWx0IGtlcGxlci5nbCBhY3Rpb25zIHdpdGggdXNlciBkZWZpbmVkIGFjdGlvbnMgdXNpbmcgdGhlIHNhbWUga2V5XG4gKi9cbmZ1bmN0aW9uIG1lcmdlQWN0aW9ucyhhY3Rpb25zLCB1c2VyQWN0aW9ucykge1xuICBjb25zdCBvdmVycmlkZXMgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdXNlckFjdGlvbnMpIHtcbiAgICBpZiAodXNlckFjdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBhY3Rpb25zLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIG92ZXJyaWRlc1trZXldID0gdXNlckFjdGlvbnNba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gey4uLmFjdGlvbnMsIC4uLm92ZXJyaWRlc307XG59XG5cbmV4cG9ydCBkZWZhdWx0IEtlcGxlckdsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBTCx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZ0JBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFFBQUEsR0FBQVQsT0FBQTtBQUVBLElBQUFVLGVBQUEsR0FBQVgsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLGVBQUEsR0FBQVosdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFZLGVBQUEsR0FBQWIsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFhLGNBQUEsR0FBQWQsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFjLGVBQUEsR0FBQWYsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFlLGdCQUFBLEdBQUFmLE9BQUE7QUFPQSxJQUFBZ0IsY0FBQSxHQUFBaEIsT0FBQTtBQUVBLElBQUFpQixVQUFBLEdBQUFmLHNCQUFBLENBQUFGLE9BQUE7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
|
|
@@ -282,7 +282,6 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
|
|
|
282
282
|
layerOrder = _this$props5.layerOrder,
|
|
283
283
|
layers = _this$props5.layers,
|
|
284
284
|
visStateActions = _this$props5.visStateActions,
|
|
285
|
-
mapboxApiAccessToken = _this$props5.mapboxApiAccessToken,
|
|
286
285
|
mapboxApiUrl = _this$props5.mapboxApiUrl,
|
|
287
286
|
maskPolygon = _this$props5.maskPolygon;
|
|
288
287
|
var mousePosition = this._mousePosition;
|
|
@@ -327,7 +326,6 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
|
|
|
327
326
|
if (mapStyle.visibleLayerGroups['3d building']) {
|
|
328
327
|
deckGlLayers.push(new _dBuildingLayer["default"]({
|
|
329
328
|
id: '_keplergl_3d-building',
|
|
330
|
-
mapboxApiAccessToken: mapboxApiAccessToken,
|
|
331
329
|
mapboxApiUrl: mapboxApiUrl,
|
|
332
330
|
threeDBuildingColor: mapStyle.threeDBuildingColor,
|
|
333
331
|
updateTriggers: {
|
|
@@ -486,7 +484,6 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
|
|
|
486
484
|
mapState: _propTypes["default"].object.isRequired,
|
|
487
485
|
mapControls: _propTypes["default"].object.isRequired,
|
|
488
486
|
mapStyle: _propTypes["default"].object.isRequired,
|
|
489
|
-
mapboxApiAccessToken: _propTypes["default"].string.isRequired,
|
|
490
487
|
mapboxApiUrl: _propTypes["default"].string,
|
|
491
488
|
visStateActions: _propTypes["default"].object.isRequired,
|
|
492
489
|
mapStateActions: _propTypes["default"].object.isRequired,
|
|
@@ -515,4 +512,4 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
|
|
|
515
512
|
MapContainer.displayName = 'MapContainer';
|
|
516
513
|
return MapContainer;
|
|
517
514
|
}
|
|
518
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdE1hcEdsIiwiX3JlYWN0MiIsIl9yZXNlbGVjdCIsIl9jb3JlIiwiX2xheWVycyIsIl9nZW9MYXllcnMiLCJfbm90aWZpY2F0aW9uc1V0aWxzIiwiX21hcFBvcG92ZXIiLCJfbWFwQ29udHJvbCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2VkaXRvciIsIl9tYXBib3hVdGlscyIsIl9nbFV0aWxzIiwiX21hcGJveFV0aWxzMiIsIl9sYXllclV0aWxzIiwiX2RCdWlsZGluZ0xheWVyIiwiX2RlZmF1bHRTZXR0aW5ncyIsIl9vYnNlcnZlRGltZW5zaW9ucyIsIl9sb2NhbGVzIiwiX3BlcmZvcm1hbmNlIiwiX2V4Y2x1ZGVkIiwiX3dpbmRvdyIsIl93aW5kb3ckbG9jYXRpb24iLCJfd2luZG93JGxvY2F0aW9uJHNlYXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwidmFsdWVPZiIsInRyYWNrZXJzIiwiUEVSRl9ERUJVRyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwiaW5jbHVkZXMiLCJkcmF3Q291bnQiLCJjcmVhdGVUcmFja2VyIiwidmlld3BvcnRDaGFuZ2VDb3VudCIsImNyZWF0ZUxheWVyVXBkYXRlVHJhY2tlciIsIkxheWVyIiwiVGlsZUxheWVyIiwiTUFQX1NUWUxFIiwiY29udGFpbmVyIiwiZGlzcGxheSIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJwb2ludGVyRXZlbnRzIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIk1hcENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwUG9wb3ZlckZhY3RvcnkiLCJNYXBDb250cm9sRmFjdG9yeSIsIkVkaXRvckZhY3RvcnkiLCJNYXBQb3BvdmVyIiwiTWFwQ29udHJvbCIsIkVkaXRvciIsIk1hcENvbnRhaW5lciIsIl9Db21wb25lbnQiLCJfaW5oZXJpdHMyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiIsImRpbWVuc2lvbnMiLCJfdGhpcyRwcm9wcyIsInByaW1hcnkiLCJpc0V4cG9ydCIsIm1hcFN0YXRlQWN0aW9ucyIsInVwZGF0ZU1hcCIsImxheWVycyIsImxheWVyRGF0YSIsIm1hcExheWVycyIsImxheWVyT3JkZXIiLCJwb3B1cFNldHRpbmdzIiwiY3JlYXRlU2VsZWN0b3IiLCJsYXllcnNTZWxlY3RvciIsImxheWVyRGF0YVNlbGVjdG9yIiwibWFwTGF5ZXJzU2VsZWN0b3IiLCJwb3B1cFNldHRpbmdzU2VsZWN0b3IiLCJwcmVwYXJlTGF5ZXJzVG9SZW5kZXIiLCJwcmVwYXJlTGF5ZXJzRm9yRGVjayIsImZpbHRlcnMiLCJmaWx0ZXJzU2VsZWN0b3IiLCJmIiwidHlwZSIsIkZJTFRFUl9UWVBFUyIsInBvbHlnb24iLCJsYXllck9yZGVyU2VsZWN0b3IiLCJsYXllcnNUb1JlbmRlclNlbGVjdG9yIiwiZ2VuZXJhdGVNYXBib3hMYXllcnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJvbkxheWVyQ2xpY2siLCJpZHgiLCJjb2xvckRvbWFpbiIsImxheWVyQ29uZmlnQ2hhbmdlIiwibGF5ZXJJZCIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzMiRpbmRleCIsImluZGV4IiwibWFwSW5kZXgiLCJ0b2dnbGVMYXllckZvck1hcCIsIl9yZWYiLCJnbCIsInNldExheWVyQmxlbmRpbmciLCJsYXllckJsZW5kaW5nIiwiZXJyb3IiLCJsYXllciIsIm1lc3NhZ2UiLCJzZXRTdGF0ZSIsImNvbnRleHRMb3N0IiwiZXJyb3JNZXNzYWdlIiwiY29uY2F0IiwiaWQiLCJub3RpZmljYXRpb25JZCIsIl9kZWNrR0xFcnJvcnNFbGFwc2VkIiwibGFzdFNob3duIiwiRGF0ZSIsIm5vdyIsIlRIUk9UVExFX05PVElGSUNBVElPTl9USU1FIiwidWlTdGF0ZUFjdGlvbnMiLCJhZGROb3RpZmljYXRpb24iLCJlcnJvck5vdGlmaWNhdGlvbiIsInZpZXdTdGF0ZSIsIl90cmFja2VycyR2aWV3cG9ydENoYSIsImluY3JlbWVudCIsInJlc3RWaWV3U3RhdGUiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiX3RoaXMkcHJvcHMzIiwibmV4dCIsInRyYW5zaXRpb25EdXJhdGlvbiIsIm9uVmlld1N0YXRlQ2hhbmdlIiwicGFuZWxJZCIsIl90aGlzJHByb3BzNCIsInRvZ2dsZU1hcENvbnRyb2wiLCJfZGVjayIsImNyZWF0ZVJlZiIsIl9oYXNSZW5kZXJlZCIsIl9tb3VzZVBvc2l0aW9uIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsImN1cnJlbnQiLCJfaGFuZGxlUmVzaXplIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiX3RoaXMkc3RhdGUiLCJzdGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsIl9vbkRlY2tJbml0aWFsaXplZCIsIm9uRGVja0luaXRpYWxpemVkIiwiX3JlbmRlck1hcFBvcG92ZXIiLCJsYXllcnNUb1JlbmRlciIsIl9nZXRIb3ZlclhZIiwidmlld3BvcnQiLCJsbmdMYXQiLCJzY3JlZW5Db29yZCIsInByb2plY3QiLCJ4IiwieSIsIl9yZW5kZXJEZWNrT3ZlcmxheSIsImxheWVyc0ZvckRlY2siLCJfdHJhY2tlcnMkZHJhd0NvdW50IiwiX3RoaXMkcHJvcHMkZGVja0dsUHJvIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMkZGVja0dsUHJvMiIsIl90aGlzJHByb3BzNSIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hc2tQb2x5Z29uIiwibW91c2VQb3NpdGlvbiIsImRlY2tHbExheWVycyIsImRlY2tHbFByb3BzIiwiZGF0YUxheWVycyIsInNsaWNlIiwicmV2ZXJzZSIsInJlZHVjZSIsIm92ZXJsYXlzIiwibGF5ZXJDYWxsYmFja3MiLCJvblNldExheWVyRG9tYWluIiwidmFsIiwiX29uTGF5ZXJTZXREb21haW4iLCJsYXllck92ZXJsYXkiLCJyZW5kZXJEZWNrR2xMYXllciIsImxheWVyc09uVG9wIiwiU29saWRQb2x5Z29uTGF5ZXIiLCJNQVNLX0xBWUVSX0lEIiwib3BlcmF0aW9uIiwiT1BFUkFUSU9OIiwiTUFTSyIsImRhdGEiLCJkYXRhQ29tcGFyYXRvciIsIm9sZERhdGEiLCJnZXRQb2x5Z29uIiwiZCIsImdldEZpbGxDb2xvciIsInZpc2libGVMYXllckdyb3VwcyIsIlRocmVlREJ1aWxkaW5nTGF5ZXIiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwidXBkYXRlVHJpZ2dlcnMiLCJoYXNSZW5kZXJlZCIsInJlc2V0SGFzUmVuZGVyZWQiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiY29udHJvbGxlciIsImdsT3B0aW9ucyIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsIl9yZWYyIiwiX29uVmlld3BvcnRDaGFuZ2UiLCJvbkJlZm9yZVJlbmRlciIsIm9wdHMiLCJfb25CZWZvcmVSZW5kZXIiLCJvbkhvdmVyIiwiaW5mbyIsIm9uTGF5ZXJIb3ZlciIsInBpeGVsIiwib25DbGljayIsIm9uRHJhZ1N0YXJ0Iiwib25FcnJvciIsIl9vbkRlY2tFcnJvciIsInJlZiIsImNvbXAiLCJkZWNrIiwib25XZWJHTEluaXRpYWxpemVkIiwibGF5ZXJGaWx0ZXIiLCJfcmVmMyIsIl9sYXllciRwcm9wcyR2aXNpYmlsaSIsIl9sYXllciRwcm9wcyR2aXNpYmlsaTIiLCJpc05hTiIsInZpc2liaWxpdHlCeVpvb20iLCJtaW4iLCJtYXgiLCJjdXJyZW50Wm9vbVJhbmdlIiwiTWF0aCIsInJvdW5kIiwiem9vbSIsIl9yZW5kZXJNYXAiLCJfdGhpcyRwcm9wczYiLCJNYXBDb21wb25lbnQiLCJkYXRhc2V0cyIsIm1hcENvbnRyb2xzIiwibG9jYWxlIiwiaW50ZXJhY3Rpb25Db25maWciLCJlZGl0b3IiLCJnZW5lcmF0ZVRodW1ibmFpbCIsImxheWVyc0ZvckRlY2tTZWxlY3RvciIsIm1hcFByb3BzIiwidHJhbnNmb3JtUmVxdWVzdCIsImlzU3BsaXQiLCJGcmFnbWVudCIsImF2YWlsYWJsZUxvY2FsZXMiLCJMT0NBTEVfQ09ERVMiLCJkcmFnUm90YXRlIiwicmVhZE9ubHkiLCJzY2FsZSIsImdlb2NvZGVyIiwiZW5hYmxlZCIsIm9uVG9nZ2xlUGVyc3BlY3RpdmUiLCJ0b2dnbGVQZXJzcGVjdGl2ZSIsIm9uVG9nZ2xlU3BsaXRNYXAiLCJ0b2dnbGVTcGxpdE1hcCIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJfaGFuZGxlTWFwVG9nZ2xlTGF5ZXIiLCJvblRvZ2dsZU1hcENvbnRyb2wiLCJfdG9nZ2xlTWFwQ29udHJvbCIsIm9uU2V0RWRpdG9yTW9kZSIsInNldEVkaXRvck1vZGUiLCJvblNldExvY2FsZSIsInNldExvY2FsZSIsIm9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eSIsInRvZ2dsZUVkaXRvclZpc2liaWxpdHkiLCJib3R0b21NYXBTdHlsZSIsInJlbmRlclBlcmZvcm1hbmNlU3RhdHMiLCJyZW5kZXIiLCJfdGhpcyRzdGF0ZTIiLCJfdGhpcyRwcm9wczciLCJTdHlsZWRNYXBDb250YWluZXIiLCJzdHlsZSIsImdsb2JlIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImFycmF5T2YiLCJhbnkiLCJib29sIiwiY2xpY2tlZCIsImhvdmVySW5mbyIsImZ1bmMiLCJvbk1hcFN0eWxlTG9hZGVkIiwiZ2V0TWFwYm94UmVmIiwibnVtYmVyIiwiTWFwYm94R0xNYXAiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL21hcC1jb250YWluZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLy8gbGlicmFyaWVzXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBNYXBib3hHTE1hcCBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge09QRVJBVElPTiwgTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtTb2xpZFBvbHlnb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcbmltcG9ydCB7VGlsZUxheWVyfSBmcm9tICdAZGVjay5nbC9nZW8tbGF5ZXJzJztcbmltcG9ydCB7ZXJyb3JOb3RpZmljYXRpb259IGZyb20gJ3V0aWxzL25vdGlmaWNhdGlvbnMtdXRpbHMnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgTWFwUG9wb3ZlckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9tYXAvbWFwLXBvcG92ZXInO1xuaW1wb3J0IE1hcENvbnRyb2xGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1jb250cm9sJztcbmltcG9ydCB7U3R5bGVkTWFwQ29udGFpbmVyfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBFZGl0b3JGYWN0b3J5IGZyb20gJy4vZWRpdG9yL2VkaXRvcic7XG5cbi8vIHV0aWxzXG5pbXBvcnQge2dlbmVyYXRlTWFwYm94TGF5ZXJzfSBmcm9tICdsYXllcnMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7c2V0TGF5ZXJCbGVuZGluZ30gZnJvbSAndXRpbHMvZ2wtdXRpbHMnO1xuaW1wb3J0IHt0cmFuc2Zvcm1SZXF1ZXN0fSBmcm9tICd1dGlscy9tYXAtc3R5bGUtdXRpbHMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7cmVuZGVyRGVja0dsTGF5ZXIsIHByZXBhcmVMYXllcnNUb1JlbmRlciwgcHJlcGFyZUxheWVyc0ZvckRlY2t9IGZyb20gJ3V0aWxzL2xheWVyLXV0aWxzJztcblxuLy8gZGVmYXVsdC1zZXR0aW5nc1xuaW1wb3J0IFRocmVlREJ1aWxkaW5nTGF5ZXIgZnJvbSAnZGVja2dsLWxheWVycy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllcic7XG5pbXBvcnQge0ZJTFRFUl9UWVBFUywgTUFTS19MQVlFUl9JRCwgVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUV9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuaW1wb3J0IHtvYnNlcnZlRGltZW5zaW9ucywgdW5vYnNlcnZlRGltZW5zaW9uc30gZnJvbSAnLi4vdXRpbHMvb2JzZXJ2ZS1kaW1lbnNpb25zJztcbmltcG9ydCB7TE9DQUxFX0NPREVTfSBmcm9tICdsb2NhbGl6YXRpb24vbG9jYWxlcyc7XG5cbi8vIFBlcmZvcm1hbmNlIGRlYnVnZ2luZ1xuaW1wb3J0IHtjcmVhdGVUcmFja2VyLCBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIsIHJlbmRlclBlcmZvcm1hbmNlU3RhdHN9IGZyb20gJy4vcGVyZm9ybWFuY2UnO1xuY29uc3QgdHJhY2tlcnMgPSB7fTtcbmNvbnN0IFBFUkZfREVCVUcgPSB3aW5kb3c/LmxvY2F0aW9uPy5zZWFyY2g/LmluY2x1ZGVzKCdQRVJGX0RFQlVHJyk7XG5pZiAoUEVSRl9ERUJVRykge1xuICB0cmFja2Vycy5kcmF3Q291bnQgPSBjcmVhdGVUcmFja2VyKCdkcmF3cycpO1xuICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50ID0gY3JlYXRlVHJhY2tlcigndmlld3BvcnQgY2hhbmdlcycpO1xuICBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIoJ3N0YXRlIHVwZGF0ZXMnLCBbTGF5ZXIsIFRpbGVMYXllcl0pO1xufVxuXG4vKiogQHR5cGUge3tba2V5OiBzdHJpbmddOiBSZWFjdC5DU1NQcm9wZXJ0aWVzfX0gKi9cbmNvbnN0IE1BUF9TVFlMRSA9IHtcbiAgY29udGFpbmVyOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJ1xuICB9LFxuICB0b3A6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6ICcwcHgnLFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnXG4gIH1cbn07XG5cbmNvbnN0IFRSQU5TSVRJT05fRFVSQVRJT04gPSAwO1xuXG5NYXBDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwUG9wb3ZlckZhY3RvcnksIE1hcENvbnRyb2xGYWN0b3J5LCBFZGl0b3JGYWN0b3J5XTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwQ29udGFpbmVyRmFjdG9yeShNYXBQb3BvdmVyLCBNYXBDb250cm9sLCBFZGl0b3IpIHtcbiAgY2xhc3MgTWFwQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgLy8gcmVxdWlyZWRcbiAgICAgIGRhdGFzZXRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaW50ZXJhY3Rpb25Db25maWc6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyQmxlbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyT3JkZXI6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllckRhdGE6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllcnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBmaWx0ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcENvbnRyb2xzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBTdHlsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIG1hcGJveEFwaVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHZpc1N0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICB1aVN0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuXG4gICAgICAvLyBvcHRpb25hbFxuICAgICAgcHJpbWFyeTogUHJvcFR5cGVzLmJvb2wsIC8vIHByaW1hcnkgb25lIHdpbGwgYmUgcmVwb3J0aW5nIGl0cyBzaXplIHRvIGFwcFN0YXRlXG4gICAgICByZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBpc0V4cG9ydDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBjbGlja2VkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaG92ZXJJbmZvOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgbWFwTGF5ZXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgb25NYXBUb2dnbGVMYXllcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbk1hcFN0eWxlTG9hZGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdlbmVyYXRlVGh1bWJuYWlsOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdldE1hcGJveFJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBpbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIHBvcHVwU2V0dGluZ3M6IFByb3BUeXBlcy5vYmplY3RcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIE1hcENvbXBvbmVudDogTWFwYm94R0xNYXAsXG4gICAgICBkZWNrR2xQcm9wczoge30sXG4gICAgICBpbmRleDogMCxcbiAgICAgIHByaW1hcnk6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgdGhpcy5fZGVjayA9IG51bGw7XG4gICAgICB0aGlzLl9yZWYgPSBjcmVhdGVSZWYoKTtcblxuICAgICAgLy8gUmVuZGVyIGxpbWl0aW5nIG1lY2hhbmlzbVxuICAgICAgdGhpcy5faGFzUmVuZGVyZWQgPSBjcmVhdGVSZWYoKTtcbiAgICAgIHRoaXMuX21vdXNlUG9zaXRpb24gPSBjcmVhdGVSZWYoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRMb3N0ID0gdGhpcy5zdGF0ZT8uY29udGV4dExvc3Q7XG5cbiAgICAgIGlmIChjb250ZXh0TG9zdCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZGlkLXVwZGF0ZS1zZXQtc3RhdGVcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGV4dExvc3Q6IGZhbHNlfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgICBjb25zdCB7cHJpbWFyeSwgaXNFeHBvcnR9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmIChwcmltYXJ5KSB7XG4gICAgICAgIGNvbnN0IHttYXBTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgaWYgKCFpc0V4cG9ydCAmJiBkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMud2lkdGggPiAwICYmIGRpbWVuc2lvbnMuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoZGltZW5zaW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgbGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllcnM7XG4gICAgbGF5ZXJEYXRhU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllckRhdGE7XG4gICAgbWFwTGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5tYXBMYXllcnM7XG4gICAgbGF5ZXJPcmRlclNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMubGF5ZXJPcmRlcjtcbiAgICBwb3B1cFNldHRpbmdzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5wb3B1cFNldHRpbmdzO1xuXG4gICAgbGF5ZXJzVG9SZW5kZXJTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICB0aGlzLm1hcExheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5wb3B1cFNldHRpbmdzU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzVG9SZW5kZXJcbiAgICApO1xuICAgIGxheWVyc0ZvckRlY2tTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzRm9yRGVja1xuICAgICk7XG4gICAgZmlsdGVyc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuZmlsdGVycztcbiAgICBwb2x5Z29uRmlsdGVycyA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZmlsdGVyc1NlbGVjdG9yLCBmaWx0ZXJzID0+XG4gICAgICBmaWx0ZXJzLmZpbHRlcihmID0+IGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnBvbHlnb24pXG4gICAgKTtcblxuICAgIG1hcGJveExheWVyc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJPcmRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllcnNUb1JlbmRlclNlbGVjdG9yLFxuICAgICAgZ2VuZXJhdGVNYXBib3hMYXllcnNcbiAgICApO1xuXG4gICAgLyogY29tcG9uZW50IHByaXZhdGUgZnVuY3Rpb25zICovXG4gICAgX29uQ2xvc2VNYXBQb3BvdmVyID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMub25MYXllckNsaWNrKG51bGwpO1xuICAgIH07XG5cbiAgICBfb25MYXllclNldERvbWFpbiA9IChpZHgsIGNvbG9yRG9tYWluKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5sYXllckNvbmZpZ0NoYW5nZSh0aGlzLnByb3BzLmxheWVyc1tpZHhdLCB7XG4gICAgICAgIGNvbG9yRG9tYWluXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX2hhbmRsZU1hcFRvZ2dsZUxheWVyID0gbGF5ZXJJZCA9PiB7XG4gICAgICBjb25zdCB7aW5kZXg6IG1hcEluZGV4ID0gMCwgdmlzU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMudG9nZ2xlTGF5ZXJGb3JNYXAobWFwSW5kZXgsIGxheWVySWQpO1xuICAgIH07XG5cbiAgICBfb25EZWNrSW5pdGlhbGl6ZWQoZ2wpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRGVja0luaXRpYWxpemVkKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25EZWNrSW5pdGlhbGl6ZWQodGhpcy5fZGVjaywgZ2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9vbkJlZm9yZVJlbmRlciA9ICh7Z2x9KSA9PiB7XG4gICAgICBzZXRMYXllckJsZW5kaW5nKGdsLCB0aGlzLnByb3BzLmxheWVyQmxlbmRpbmcpO1xuICAgIH07XG5cbiAgICBfb25EZWNrRXJyb3IgPSAoZXJyb3IsIGxheWVyKSA9PiB7XG4gICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT09ICdXZWJHTCBjb250ZXh0IGlzIGxvc3QnKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRleHRMb3N0OiB0cnVlfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIGluIGRlY2suZ2w6ICR7ZXJyb3I/Lm1lc3NhZ2V9IGluICR7bGF5ZXI/LmlkfWA7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25JZCA9IGAke2xheWVyPy5pZH0tJHtlcnJvcj8ubWVzc2FnZX1gO1xuXG4gICAgICAvLyBUaHJvdHRsZSBlcnJvciBub3RpZmljYXRpb25zLCBhcyBSZWFjdCBkb2Vzbid0IGxpa2UgdG9vIG1hbnkgc3RhdGUgY2hhbmdlcyBmcm9tIGhlcmUuXG4gICAgICB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkID0gdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZCB8fCB7fTtcbiAgICAgIGNvbnN0IGxhc3RTaG93biA9IHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdO1xuICAgICAgaWYgKCFsYXN0U2hvd24gfHwgbGFzdFNob3duIDwgRGF0ZS5ub3coKSAtIFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FKSB7XG4gICAgICAgIHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBDcmVhdGUgbmV3IGVycm9yIG5vdGlmaWNhdGlvbiBvciB1cGRhdGUgZXhpc3Rpbmcgb25lIHdpdGggc2FtZSBpZC5cbiAgICAgICAgLy8gVXBkYXRlIGlzIHJlcXVpcmVkIHRvIHByZXNlcnZlIHRoZSBvcmRlciBvZiBub3RpZmljYXRpb25zIGFzIHRoZXkgcHJvYmFibHkgYXJlIGdvaW5nIHRvIFwianVtcFwiIGJhc2VkIG9uIG9yZGVyIG9mIGVycm9ycy5cbiAgICAgICAgY29uc3Qge3VpU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLmFkZE5vdGlmaWNhdGlvbihcbiAgICAgICAgICBlcnJvck5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICBpZDogbm90aWZpY2F0aW9uSWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBjb21wb25lbnQgcmVuZGVyIGZ1bmN0aW9ucyAqL1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICAgIF9yZW5kZXJNYXBQb3BvdmVyKGxheWVyc1RvUmVuZGVyKSB7XG4gICAgICAvLyBPdmVycmlkZW4gaW4gQnVpbGRlcjogZmVhdHVyZXMvYnVpbGRlci91aS9LZXBsZXJHbC9NYXBDb250YWluZXIvTWFwQ29udGFpbmVyLnRzeFxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbiAgICBfZ2V0SG92ZXJYWSh2aWV3cG9ydCwgbG5nTGF0KSB7XG4gICAgICBjb25zdCBzY3JlZW5Db29yZCA9ICF2aWV3cG9ydCB8fCAhbG5nTGF0ID8gbnVsbCA6IHZpZXdwb3J0LnByb2plY3QobG5nTGF0KTtcbiAgICAgIHJldHVybiBzY3JlZW5Db29yZCAmJiB7eDogc2NyZWVuQ29vcmRbMF0sIHk6IHNjcmVlbkNvb3JkWzFdfTtcbiAgICB9XG5cbiAgICBfcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjaykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIGxheWVyRGF0YSxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgIG1hc2tQb2x5Z29uXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbW91c2VQb3NpdGlvbiA9IHRoaXMuX21vdXNlUG9zaXRpb247XG5cbiAgICAgIHRyYWNrZXJzLmRyYXdDb3VudD8uaW5jcmVtZW50KCk7XG5cbiAgICAgIC8vIGluaXRpYWxpc2UgbGF5ZXJzIGZyb20gcHJvcHMgaWYgZXhpc3RzXG4gICAgICBsZXQgZGVja0dsTGF5ZXJzID0gdGhpcy5wcm9wcy5kZWNrR2xQcm9wcz8ubGF5ZXJzIHx8IFtdO1xuXG4gICAgICAvLyB3YWl0IHVudGlsIGRhdGEgaXMgcmVhZHkgYmVmb3JlIHJlbmRlciBkYXRhIGxheWVyc1xuICAgICAgaWYgKGxheWVyRGF0YSAmJiBsYXllckRhdGEubGVuZ3RoKSB7XG4gICAgICAgIC8vIGxhc3QgbGF5ZXIgcmVuZGVyIGZpcnN0XG4gICAgICAgIGNvbnN0IGRhdGFMYXllcnMgPSBsYXllck9yZGVyXG4gICAgICAgICAgLnNsaWNlKClcbiAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgLmZpbHRlcihpZHggPT4gbGF5ZXJzRm9yRGVja1tsYXllcnNbaWR4XS5pZF0pXG4gICAgICAgICAgLnJlZHVjZSgob3ZlcmxheXMsIGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJDYWxsYmFja3MgPSB7XG4gICAgICAgICAgICAgIG9uU2V0TGF5ZXJEb21haW46IHZhbCA9PiB0aGlzLl9vbkxheWVyU2V0RG9tYWluKGlkeCwgdmFsKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGxheWVyT3ZlcmxheSA9IHJlbmRlckRlY2tHbExheWVyKHRoaXMucHJvcHMsIGxheWVyQ2FsbGJhY2tzLCBpZHgpO1xuICAgICAgICAgICAgcmV0dXJuIG92ZXJsYXlzLmNvbmNhdChsYXllck92ZXJsYXkgfHwgW10pO1xuICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgZGVja0dsTGF5ZXJzID0gZGVja0dsTGF5ZXJzLmNvbmNhdChkYXRhTGF5ZXJzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHJvcHMuZGVja0dsUHJvcHM/LmxheWVyc09uVG9wKSB7XG4gICAgICAgIGRlY2tHbExheWVycyA9IGRlY2tHbExheWVycy5jb25jYXQodGhpcy5wcm9wcy5kZWNrR2xQcm9wcy5sYXllcnNPblRvcCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXNrUG9seWdvbikge1xuICAgICAgICBkZWNrR2xMYXllcnMucHVzaChcbiAgICAgICAgICBuZXcgU29saWRQb2x5Z29uTGF5ZXIoe1xuICAgICAgICAgICAgaWQ6IE1BU0tfTEFZRVJfSUQsXG4gICAgICAgICAgICBvcGVyYXRpb246IE9QRVJBVElPTi5NQVNLLFxuICAgICAgICAgICAgZGF0YTogW21hc2tQb2x5Z29uXSxcbiAgICAgICAgICAgIGRhdGFDb21wYXJhdG9yOiAoZGF0YSwgb2xkRGF0YSkgPT4gZGF0YVswXSA9PT0gb2xkRGF0YVswXSxcbiAgICAgICAgICAgIGdldFBvbHlnb246IGQgPT4gZCxcbiAgICAgICAgICAgIGdldEZpbGxDb2xvcjogWzI1NSwgMjU1LCAyNTUsIDI1NV1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAobWFwU3R5bGUudmlzaWJsZUxheWVyR3JvdXBzWyczZCBidWlsZGluZyddKSB7XG4gICAgICAgIGRlY2tHbExheWVycy5wdXNoKFxuICAgICAgICAgIG5ldyBUaHJlZURCdWlsZGluZ0xheWVyKHtcbiAgICAgICAgICAgIGlkOiAnX2tlcGxlcmdsXzNkLWJ1aWxkaW5nJyxcbiAgICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICAgICAgdGhyZWVEQnVpbGRpbmdDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcixcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIExpbWl0IHJlbmRlcnNcbiAgICAgIGNvbnN0IGhhc1JlbmRlcmVkID0gdGhpcy5faGFzUmVuZGVyZWQ7XG4gICAgICBjb25zdCByZXNldEhhc1JlbmRlcmVkID0gKCkgPT4gKGhhc1JlbmRlcmVkLmN1cnJlbnQgPSBmYWxzZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxEZWNrR0xcbiAgICAgICAgICBjb250cm9sbGVyPXt0cnVlfVxuICAgICAgICAgIHsuLi50aGlzLnByb3BzLmRlY2tHbFByb3BzfVxuICAgICAgICAgIGdsT3B0aW9ucz17e3ByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZX19XG4gICAgICAgICAgdmlld1N0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGV9KSA9PiB7XG4gICAgICAgICAgICAvLyBMaW1pdCB1cGRhdGVzIChwcmV2ZW50cyBmcmVlemVzIHdoZW4gZGV2IHRvb2xzIG9wZW4pXG4gICAgICAgICAgICBpZiAoIWhhc1JlbmRlcmVkLmN1cnJlbnQgJiYgdmlld1N0YXRlLndpZHRoID4gMSAmJiB2aWV3U3RhdGUuaGVpZ2h0ID4gMSkge1xuICAgICAgICAgICAgICBoYXNSZW5kZXJlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5fb25WaWV3cG9ydENoYW5nZSh2aWV3U3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgaWQ9XCJkZWZhdWx0LWRlY2tnbC1vdmVybGF5XCJcbiAgICAgICAgICBsYXllcnM9e2RlY2tHbExheWVyc31cbiAgICAgICAgICBvbkJlZm9yZVJlbmRlcj17b3B0cyA9PiB7XG4gICAgICAgICAgICByZXNldEhhc1JlbmRlcmVkKCk7XG4gICAgICAgICAgICB0aGlzLl9vbkJlZm9yZVJlbmRlcihvcHRzKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIC8vIG9uSG92ZXI9e3Zpc1N0YXRlQWN0aW9ucy5vbkxheWVySG92ZXJ9XG4gICAgICAgICAgb25Ib3Zlcj17aW5mbyA9PiB7XG4gICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnMub25MYXllckhvdmVyKGluZm8pO1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0ge21vdXNlUG9zaXRpb246IGluZm8ucGl4ZWx9O1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25DbGljaz17dmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJDbGlja31cbiAgICAgICAgICBvbkRyYWdTdGFydD17KCkgPT4ge1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uRXJyb3I9e3RoaXMuX29uRGVja0Vycm9yfVxuICAgICAgICAgIHJlZj17Y29tcCA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcCAmJiBjb21wLmRlY2sgJiYgY29tcC5kZWNrICE9PSB0aGlzLl9kZWNrKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RlY2sgPSBjb21wLmRlY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbldlYkdMSW5pdGlhbGl6ZWQ9e2dsID0+IHRoaXMuX29uRGVja0luaXRpYWxpemVkKGdsKX1cbiAgICAgICAgICBsYXllckZpbHRlcj17KHtsYXllciwgdmlld3BvcnR9KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGlzTmFOKGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20/Lm1pbikgfHxcbiAgICAgICAgICAgICAgaXNOYU4obGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbT8ubWF4KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudFpvb21SYW5nZSA9IE1hdGgucm91bmQobWFwU3RhdGUuem9vbSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20ubWluIDw9IGN1cnJlbnRab29tUmFuZ2UgJiZcbiAgICAgICAgICAgICAgbGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbS5tYXggPj0gY3VycmVudFpvb21SYW5nZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfb25WaWV3cG9ydENoYW5nZSA9IHZpZXdTdGF0ZSA9PiB7XG4gICAgICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50Py5pbmNyZW1lbnQoKTtcbiAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCAuLi5yZXN0Vmlld1N0YXRlfSA9IHZpZXdTdGF0ZTtcbiAgICAgIGNvbnN0IHtwcmltYXJ5LCBpc0V4cG9ydH0gPSB0aGlzLnByb3BzO1xuICAgICAgLy8gcmVhY3QtbWFwLWdsIHNlbmRzIDAsMCBkaW1lbnNpb25zIGR1cmluZyBpbml0aWFsaXphdGlvblxuICAgICAgLy8gYWZ0ZXIgd2UgaGF2ZSByZWNlaXZlZCBwcm9wZXIgZGltZW5zaW9ucyBmcm9tIG9ic2VydmVEaW1lbnNpb25zXG4gICAgICBjb25zdCBuZXh0ID0ge1xuICAgICAgICAuLi4od2lkdGggPiAwICYmIGhlaWdodCA+IDAgPyB2aWV3U3RhdGUgOiByZXN0Vmlld1N0YXRlKSxcbiAgICAgICAgLy8gZW5hYmxpbmcgdHJhbnNpdGlvbiBpbiB0d28gbWFwcyBtYXkgbGVhZCB0byBlbmRsZXNzIHVwZGF0ZSBsb29wc1xuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IHByaW1hcnkgPyBUUkFOU0lUSU9OX0RVUkFUSU9OIDogMFxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmlld1N0YXRlQ2hhbmdlKG5leHQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXhwb3J0KSB7XG4gICAgICAgIHRoaXMucHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcChuZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RvZ2dsZU1hcENvbnRyb2wgPSBwYW5lbElkID0+IHtcbiAgICAgIGNvbnN0IHtpbmRleCwgdWlTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdWlTdGF0ZUFjdGlvbnMudG9nZ2xlTWFwQ29udHJvbChwYW5lbElkLCBpbmRleCk7XG4gICAgfTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICBfcmVuZGVyTWFwKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICBNYXBDb21wb25lbnQsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBtYXBDb250cm9scyxcbiAgICAgICAgaXNFeHBvcnQsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHByaW1hcnksXG4gICAgICAgIGdlbmVyYXRlVGh1bWJuYWlsXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbGF5ZXJzVG9SZW5kZXIgPSB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllcnNGb3JEZWNrID0gdGhpcy5sYXllcnNGb3JEZWNrU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdCxcbiAgICAgICAgZ2VuZXJhdGVUaHVtYm5haWxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBCb29sZWFuKG1hcFN0YXRlLmlzU3BsaXQpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxNYXBDb250cm9sXG4gICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICBhdmFpbGFibGVMb2NhbGVzPXtPYmplY3Qua2V5cyhMT0NBTEVfQ09ERVMpfVxuICAgICAgICAgICAgZHJhZ1JvdGF0ZT17bWFwU3RhdGUuZHJhZ1JvdGF0ZX1cbiAgICAgICAgICAgIGlzU3BsaXQ9e2lzU3BsaXR9XG4gICAgICAgICAgICBwcmltYXJ5PXtwcmltYXJ5fVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICBsYXllcnNUb1JlbmRlcj17bGF5ZXJzVG9SZW5kZXJ9XG4gICAgICAgICAgICBtYXBJbmRleD17aW5kZXh9XG4gICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICByZWFkT25seT17dGhpcy5wcm9wcy5yZWFkT25seX1cbiAgICAgICAgICAgIHNjYWxlPXttYXBTdGF0ZS5zY2FsZSB8fCAxfVxuICAgICAgICAgICAgdG9wPXtpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2RlciAmJiBpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkID8gNTIgOiAwfVxuICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlUGVyc3BlY3RpdmU9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVQZXJzcGVjdGl2ZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlU3BsaXRNYXA9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVTcGxpdE1hcH1cbiAgICAgICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXI9e3RoaXMuX2hhbmRsZU1hcFRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sPXt0aGlzLl90b2dnbGVNYXBDb250cm9sfVxuICAgICAgICAgICAgb25TZXRFZGl0b3JNb2RlPXt2aXNTdGF0ZUFjdGlvbnMuc2V0RWRpdG9yTW9kZX1cbiAgICAgICAgICAgIG9uU2V0TG9jYWxlPXt1aVN0YXRlQWN0aW9ucy5zZXRMb2NhbGV9XG4gICAgICAgICAgICBvblRvZ2dsZUVkaXRvclZpc2liaWxpdHk9e3Zpc1N0YXRlQWN0aW9ucy50b2dnbGVFZGl0b3JWaXNpYmlsaXR5fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPE1hcENvbXBvbmVudCB7Li4ubWFwUHJvcHN9IGtleT1cImJvdHRvbVwiIG1hcFN0eWxlPXttYXBTdHlsZS5ib3R0b21NYXBTdHlsZX0+XG4gICAgICAgICAgICB7UEVSRl9ERUJVRyAmJiByZW5kZXJQZXJmb3JtYW5jZVN0YXRzKCl9XG4gICAgICAgICAgICB7dGhpcy5fcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjayl9XG4gICAgICAgICAgPC9NYXBDb21wb25lbnQ+XG4gICAgICAgICAge3RoaXMuX3JlbmRlck1hcFBvcG92ZXIobGF5ZXJzVG9SZW5kZXIpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge21hcFN0YXRlLCBtYXBTdHlsZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgY29udGV4dExvc3QgPSB0aGlzLnN0YXRlPy5jb250ZXh0TG9zdDtcblxuICAgICAgaWYgKGNvbnRleHRMb3N0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyIHJlZj17dGhpcy5fcmVmfSBzdHlsZT17TUFQX1NUWUxFLmNvbnRhaW5lcn0gZ2xvYmU9e21hcFN0YXRlLmdsb2JlfT5cbiAgICAgICAgICB7bWFwU3R5bGUuYm90dG9tTWFwU3R5bGUgJiYgdGhpcy5fcmVuZGVyTWFwKCl9XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBNYXBDb250YWluZXIuZGlzcGxheU5hbWUgPSAnTWFwQ29udGFpbmVyJztcblxuICByZXR1cm4gTWFwQ29udGFpbmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxtQkFBQSxHQUFBVCxPQUFBO0FBR0EsSUFBQVUsV0FBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVcsV0FBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVksaUJBQUEsR0FBQVosT0FBQTtBQUVBLElBQUFhLE9BQUEsR0FBQVgsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFjLFlBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLFFBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixhQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLFdBQUEsR0FBQWpCLE9BQUE7QUFHQSxJQUFBa0IsZUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFtQixnQkFBQSxHQUFBbkIsT0FBQTtBQUVBLElBQUFvQixrQkFBQSxHQUFBcEIsT0FBQTtBQUNBLElBQUFxQixRQUFBLEdBQUFyQixPQUFBO0FBR0EsSUFBQXNCLFlBQUEsR0FBQXRCLE9BQUE7QUFBOEYsSUFBQXVCLFNBQUE7QUFBQSxJQUFBQyxPQUFBLEVBQUFDLGdCQUFBLEVBQUFDLHFCQUFBLEVBcEQ5RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBV0E7QUFPQTtBQU1BO0FBT0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQTdCLHdCQUFBNkIsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWpCLENBQUEsRUFBQWMsQ0FBQSxTQUFBSSxDQUFBLEdBQUFSLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUksQ0FBQSxLQUFBQSxDQUFBLENBQUFYLEdBQUEsSUFBQVcsQ0FBQSxDQUFBQyxHQUFBLElBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUksQ0FBQSxJQUFBVixDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWdCLEdBQUEsQ0FBQW5CLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQVksUUFBQXBCLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFRLE1BQUEsQ0FBQVUsSUFBQSxDQUFBckIsQ0FBQSxPQUFBVyxNQUFBLENBQUFXLHFCQUFBLFFBQUFDLENBQUEsR0FBQVosTUFBQSxDQUFBVyxxQkFBQSxDQUFBdEIsQ0FBQSxHQUFBRSxDQUFBLEtBQUFxQixDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBdEIsQ0FBQSxXQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQUUsQ0FBQSxFQUFBdUIsVUFBQSxPQUFBdEIsQ0FBQSxDQUFBdUIsSUFBQSxDQUFBQyxLQUFBLENBQUF4QixDQUFBLEVBQUFvQixDQUFBLFlBQUFwQixDQUFBO0FBQUEsU0FBQXlCLGNBQUE1QixDQUFBLGFBQUFFLENBQUEsTUFBQUEsQ0FBQSxHQUFBMkIsU0FBQSxDQUFBQyxNQUFBLEVBQUE1QixDQUFBLFVBQUFDLENBQUEsV0FBQTBCLFNBQUEsQ0FBQTNCLENBQUEsSUFBQTJCLFNBQUEsQ0FBQTNCLENBQUEsUUFBQUEsQ0FBQSxPQUFBa0IsT0FBQSxDQUFBVCxNQUFBLENBQUFSLENBQUEsT0FBQTRCLE9BQUEsV0FBQTdCLENBQUEsUUFBQThCLGdCQUFBLGFBQUFoQyxDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFTLE1BQUEsQ0FBQXNCLHlCQUFBLEdBQUF0QixNQUFBLENBQUF1QixnQkFBQSxDQUFBbEMsQ0FBQSxFQUFBVyxNQUFBLENBQUFzQix5QkFBQSxDQUFBOUIsQ0FBQSxLQUFBaUIsT0FBQSxDQUFBVCxNQUFBLENBQUFSLENBQUEsR0FBQTRCLE9BQUEsV0FBQTdCLENBQUEsSUFBQVMsTUFBQSxDQUFBQyxjQUFBLENBQUFaLENBQUEsRUFBQUUsQ0FBQSxFQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUYsQ0FBQTtBQUFBLFNBQUFtQyxXQUFBaEMsQ0FBQSxFQUFBb0IsQ0FBQSxFQUFBdkIsQ0FBQSxXQUFBdUIsQ0FBQSxPQUFBYSxnQkFBQSxhQUFBYixDQUFBLE9BQUFjLDJCQUFBLGFBQUFsQyxDQUFBLEVBQUFtQyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQWpCLENBQUEsRUFBQXZCLENBQUEsWUFBQW9DLGdCQUFBLGFBQUFqQyxDQUFBLEVBQUFzQyxXQUFBLElBQUFsQixDQUFBLENBQUFJLEtBQUEsQ0FBQXhCLENBQUEsRUFBQUgsQ0FBQTtBQUFBLFNBQUFzQywwQkFBQSxjQUFBbkMsQ0FBQSxJQUFBdUMsT0FBQSxDQUFBM0IsU0FBQSxDQUFBNEIsT0FBQSxDQUFBMUIsSUFBQSxDQUFBc0IsT0FBQSxDQUFBQyxTQUFBLENBQUFFLE9BQUEsaUNBQUF2QyxDQUFBLGFBQUFtQyx5QkFBQSxZQUFBQSwwQkFBQSxhQUFBbkMsQ0FBQTtBQUVBLElBQU15QyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLElBQU1DLFVBQVUsSUFBQWpELE9BQUEsR0FBR2tELE1BQU0sY0FBQWxELE9BQUEsd0JBQUFDLGdCQUFBLEdBQU5ELE9BQUEsQ0FBUW1ELFFBQVEsY0FBQWxELGdCQUFBLHdCQUFBQyxxQkFBQSxHQUFoQkQsZ0JBQUEsQ0FBa0JtRCxNQUFNLGNBQUFsRCxxQkFBQSx1QkFBeEJBLHFCQUFBLENBQTBCbUQsUUFBUSxDQUFDLFlBQVksQ0FBQztBQUNuRSxJQUFJSixVQUFVLEVBQUU7RUFDZEQsUUFBUSxDQUFDTSxTQUFTLEdBQUcsSUFBQUMsMEJBQWEsRUFBQyxPQUFPLENBQUM7RUFDM0NQLFFBQVEsQ0FBQ1EsbUJBQW1CLEdBQUcsSUFBQUQsMEJBQWEsRUFBQyxrQkFBa0IsQ0FBQztFQUNoRSxJQUFBRSxxQ0FBd0IsRUFBQyxlQUFlLEVBQUUsQ0FBQ0MsV0FBSyxFQUFFQyxvQkFBUyxDQUFDLENBQUM7QUFDL0Q7O0FBRUE7QUFDQSxJQUFNQyxTQUFTLEdBQUc7RUFDaEJDLFNBQVMsRUFBRTtJQUNUQyxPQUFPLEVBQUUsY0FBYztJQUN2QkMsUUFBUSxFQUFFLFVBQVU7SUFDcEJDLEtBQUssRUFBRSxNQUFNO0lBQ2JDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDREMsR0FBRyxFQUFFO0lBQ0hILFFBQVEsRUFBRSxVQUFVO0lBQ3BCRyxHQUFHLEVBQUUsS0FBSztJQUNWQyxhQUFhLEVBQUUsTUFBTTtJQUNyQkgsS0FBSyxFQUFFLE1BQU07SUFDYkMsTUFBTSxFQUFFO0VBQ1Y7QUFDRixDQUFDO0FBRUQsSUFBTUcsbUJBQW1CLEdBQUcsQ0FBQztBQUU3QkMsbUJBQW1CLENBQUNDLElBQUksR0FBRyxDQUFDQyxzQkFBaUIsRUFBRUMsc0JBQWlCLEVBQUVDLGtCQUFhLENBQUM7QUFFakUsU0FBU0osbUJBQW1CQSxDQUFDSyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsTUFBTSxFQUFFO0VBQUEsSUFDcEVDLFlBQVksMEJBQUFDLFVBQUE7SUFBQSxJQUFBQyxVQUFBLGFBQUFGLFlBQUEsRUFBQUMsVUFBQTtJQXlDaEIsU0FBQUQsYUFBWUcsTUFBSyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUFBLElBQUFDLGdCQUFBLG1CQUFBTCxZQUFBO01BQ2pCSSxLQUFBLEdBQUExQyxVQUFBLE9BQUFzQyxZQUFBLEdBQU1HLE1BQUs7TUFBRSxJQUFBNUMsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLG9CQTJCQyxVQUFBRyxVQUFVLEVBQUk7UUFDNUIsSUFBQUMsV0FBQSxHQUE0QkosS0FBQSxDQUFLRCxLQUFLO1VBQS9CTSxPQUFPLEdBQUFELFdBQUEsQ0FBUEMsT0FBTztVQUFFQyxRQUFRLEdBQUFGLFdBQUEsQ0FBUkUsUUFBUTtRQUN4QixJQUFJRCxPQUFPLEVBQUU7VUFDWCxJQUFPRSxlQUFlLEdBQUlQLEtBQUEsQ0FBS0QsS0FBSyxDQUE3QlEsZUFBZTtVQUN0QixJQUFJLENBQUNELFFBQVEsSUFBSUgsVUFBVSxJQUFJQSxVQUFVLENBQUNwQixLQUFLLEdBQUcsQ0FBQyxJQUFJb0IsVUFBVSxDQUFDbkIsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1RXVCLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDTCxVQUFVLENBQUM7VUFDdkM7UUFDRjtNQUNGLENBQUM7TUFBQSxJQUFBaEQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHFCQUVnQixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDVSxNQUFNO01BQUE7TUFBQSxJQUFBdEQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHdCQUNsQixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDVyxTQUFTO01BQUE7TUFBQSxJQUFBdkQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHdCQUN4QixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDWSxTQUFTO01BQUE7TUFBQSxJQUFBeEQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHlCQUN2QixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDYSxVQUFVO01BQUE7TUFBQSxJQUFBekQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDRCQUN0QixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDYyxhQUFhO01BQUE7TUFBQSxJQUFBMUQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDZCQUUzQixJQUFBYyx3QkFBYyxFQUNyQ2QsS0FBQSxDQUFLZSxjQUFjLEVBQ25CZixLQUFBLENBQUtnQixpQkFBaUIsRUFDdEJoQixLQUFBLENBQUtpQixpQkFBaUIsRUFDdEJqQixLQUFBLENBQUtrQixxQkFBcUIsRUFDMUJDLGlDQUNGLENBQUM7TUFBQSxJQUFBaEUsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDRCQUN1QixJQUFBYyx3QkFBYyxFQUNwQ2QsS0FBQSxDQUFLZSxjQUFjLEVBQ25CZixLQUFBLENBQUtnQixpQkFBaUIsRUFDdEJJLGdDQUNGLENBQUM7TUFBQSxJQUFBakUsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHNCQUNpQixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDc0IsT0FBTztNQUFBO01BQUEsSUFBQWxFLGdCQUFBLGlCQUFBK0MsdUJBQUEsYUFBQUYsS0FBQSxxQkFDdkIsSUFBQWMsd0JBQWMsRUFBQ2QsS0FBQSxDQUFLc0IsZUFBZSxFQUFFLFVBQUFELE9BQU87UUFBQSxPQUMzREEsT0FBTyxDQUFDMUUsTUFBTSxDQUFDLFVBQUE0RSxDQUFDO1VBQUEsT0FBSUEsQ0FBQyxDQUFDQyxJQUFJLEtBQUtDLDZCQUFZLENBQUNDLE9BQU87UUFBQSxFQUFDO01BQUEsQ0FDdEQsQ0FBQztNQUFBLElBQUF2RSxnQkFBQSxpQkFBQStDLHVCQUFBLGFBQUFGLEtBQUEsMkJBRXNCLElBQUFjLHdCQUFjLEVBQ25DZCxLQUFBLENBQUtlLGNBQWMsRUFDbkJmLEtBQUEsQ0FBS2dCLGlCQUFpQixFQUN0QmhCLEtBQUEsQ0FBSzJCLGtCQUFrQixFQUN2QjNCLEtBQUEsQ0FBSzRCLHNCQUFzQixFQUMzQkMsaUNBQ0YsQ0FBQztNQUVEO01BQUEsSUFBQTFFLGdCQUFBLGlCQUFBK0MsdUJBQUEsYUFBQUYsS0FBQSx5QkFDcUIsWUFBTTtRQUN6QkEsS0FBQSxDQUFLRCxLQUFLLENBQUMrQixlQUFlLENBQUNDLFlBQVksQ0FBQyxJQUFJLENBQUM7TUFDL0MsQ0FBQztNQUFBLElBQUE1RSxnQkFBQSxpQkFBQStDLHVCQUFBLGFBQUFGLEtBQUEsd0JBRW1CLFVBQUNnQyxHQUFHLEVBQUVDLFdBQVcsRUFBSztRQUN4Q2pDLEtBQUEsQ0FBS0QsS0FBSyxDQUFDK0IsZUFBZSxDQUFDSSxpQkFBaUIsQ0FBQ2xDLEtBQUEsQ0FBS0QsS0FBSyxDQUFDVSxNQUFNLENBQUN1QixHQUFHLENBQUMsRUFBRTtVQUNuRUMsV0FBVyxFQUFYQTtRQUNGLENBQUMsQ0FBQztNQUNKLENBQUM7TUFBQSxJQUFBOUUsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDRCQUV1QixVQUFBbUMsT0FBTyxFQUFJO1FBQ2pDLElBQUFDLFlBQUEsR0FBK0NwQyxLQUFBLENBQUtELEtBQUs7VUFBQXNDLGtCQUFBLEdBQUFELFlBQUEsQ0FBbERFLEtBQUs7VUFBRUMsUUFBUSxHQUFBRixrQkFBQSxjQUFHLENBQUMsR0FBQUEsa0JBQUE7VUFBRVAsZUFBZSxHQUFBTSxZQUFBLENBQWZOLGVBQWU7UUFDM0NBLGVBQWUsQ0FBQ1UsaUJBQWlCLENBQUNELFFBQVEsRUFBRUosT0FBTyxDQUFDO01BQ3RELENBQUM7TUFBQSxJQUFBaEYsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHNCQVFpQixVQUFBeUMsSUFBQSxFQUFVO1FBQUEsSUFBUkMsRUFBRSxHQUFBRCxJQUFBLENBQUZDLEVBQUU7UUFDcEIsSUFBQUMseUJBQWdCLEVBQUNELEVBQUUsRUFBRTFDLEtBQUEsQ0FBS0QsS0FBSyxDQUFDNkMsYUFBYSxDQUFDO01BQ2hELENBQUM7TUFBQSxJQUFBekYsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLG1CQUVjLFVBQUM2QyxLQUFLLEVBQUVDLEtBQUssRUFBSztRQUMvQixJQUFJLENBQUFELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFRSxPQUFPLE1BQUssdUJBQXVCLEVBQUU7VUFDOUMvQyxLQUFBLENBQUtnRCxRQUFRLENBQUM7WUFBQ0MsV0FBVyxFQUFFO1VBQUksQ0FBQyxDQUFDO1VBQ2xDO1FBQ0Y7UUFFQSxJQUFNQyxZQUFZLDJCQUFBQyxNQUFBLENBQTJCTixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUUsT0FBTyxVQUFBSSxNQUFBLENBQU9MLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFTSxFQUFFLENBQUU7UUFDN0UsSUFBTUMsY0FBYyxNQUFBRixNQUFBLENBQU1MLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFTSxFQUFFLE9BQUFELE1BQUEsQ0FBSU4sS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVFLE9BQU8sQ0FBRTs7UUFFdkQ7UUFDQS9DLEtBQUEsQ0FBS3NELG9CQUFvQixHQUFHdEQsS0FBQSxDQUFLc0Qsb0JBQW9CLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQU1DLFNBQVMsR0FBR3ZELEtBQUEsQ0FBS3NELG9CQUFvQixDQUFDRCxjQUFjLENBQUM7UUFDM0QsSUFBSSxDQUFDRSxTQUFTLElBQUlBLFNBQVMsR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxHQUFHQywyQ0FBMEIsRUFBRTtVQUNyRTFELEtBQUEsQ0FBS3NELG9CQUFvQixDQUFDRCxjQUFjLENBQUMsR0FBR0csSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQzs7VUFFdEQ7VUFDQTtVQUNBLElBQU9FLGNBQWMsR0FBSTNELEtBQUEsQ0FBS0QsS0FBSyxDQUE1QjRELGNBQWM7VUFDckJBLGNBQWMsQ0FBQ0MsZUFBZSxDQUM1QixJQUFBQyxxQ0FBaUIsRUFBQztZQUNoQmQsT0FBTyxFQUFFRyxZQUFZO1lBQ3JCRSxFQUFFLEVBQUVDO1VBQ04sQ0FBQyxDQUNILENBQUM7UUFDSDtNQUNGLENBQUM7TUFBQSxJQUFBbEcsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHdCQThJbUIsVUFBQThELFNBQVMsRUFBSTtRQUFBLElBQUFDLHFCQUFBO1FBQy9CLENBQUFBLHFCQUFBLEdBQUFoRyxRQUFRLENBQUNRLG1CQUFtQixjQUFBd0YscUJBQUEsdUJBQTVCQSxxQkFBQSxDQUE4QkMsU0FBUyxDQUFDLENBQUM7UUFDekMsSUFBT2pGLEtBQUssR0FBOEIrRSxTQUFTLENBQTVDL0UsS0FBSztVQUFFQyxNQUFNLEdBQXNCOEUsU0FBUyxDQUFyQzlFLE1BQU07VUFBS2lGLGFBQWEsT0FBQUMseUJBQUEsYUFBSUosU0FBUyxFQUFBaEosU0FBQTtRQUNuRCxJQUFBcUosWUFBQSxHQUE0Qm5FLEtBQUEsQ0FBS0QsS0FBSztVQUEvQk0sT0FBTyxHQUFBOEQsWUFBQSxDQUFQOUQsT0FBTztVQUFFQyxRQUFRLEdBQUE2RCxZQUFBLENBQVI3RCxRQUFRO1FBQ3hCO1FBQ0E7UUFDQSxJQUFNOEQsSUFBSSxHQUFBckgsYUFBQSxDQUFBQSxhQUFBLEtBQ0pnQyxLQUFLLEdBQUcsQ0FBQyxJQUFJQyxNQUFNLEdBQUcsQ0FBQyxHQUFHOEUsU0FBUyxHQUFHRyxhQUFhO1VBQ3ZEO1VBQ0FJLGtCQUFrQixFQUFFaEUsT0FBTyxHQUFHbEIsbUJBQW1CLEdBQUc7UUFBQyxFQUN0RDtRQUNELElBQUksT0FBT2EsS0FBQSxDQUFLRCxLQUFLLENBQUN1RSxpQkFBaUIsS0FBSyxVQUFVLEVBQUU7VUFDdER0RSxLQUFBLENBQUtELEtBQUssQ0FBQ3VFLGlCQUFpQixDQUFDRixJQUFJLENBQUM7UUFDcEM7UUFFQSxJQUFJLENBQUM5RCxRQUFRLEVBQUU7VUFDYk4sS0FBQSxDQUFLRCxLQUFLLENBQUNRLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDNEQsSUFBSSxDQUFDO1FBQzVDO01BQ0YsQ0FBQztNQUFBLElBQUFqSCxnQkFBQSxpQkFBQStDLHVCQUFBLGFBQUFGLEtBQUEsd0JBRW1CLFVBQUF1RSxPQUFPLEVBQUk7UUFDN0IsSUFBQUMsWUFBQSxHQUFnQ3hFLEtBQUEsQ0FBS0QsS0FBSztVQUFuQ3VDLEtBQUssR0FBQWtDLFlBQUEsQ0FBTGxDLEtBQUs7VUFBRXFCLGNBQWMsR0FBQWEsWUFBQSxDQUFkYixjQUFjO1FBRTVCQSxjQUFjLENBQUNjLGdCQUFnQixDQUFDRixPQUFPLEVBQUVqQyxLQUFLLENBQUM7TUFDakQsQ0FBQztNQTNSQ3RDLEtBQUEsQ0FBSzBFLEtBQUssR0FBRyxJQUFJO01BQ2pCMUUsS0FBQSxDQUFLeUMsSUFBSSxnQkFBRyxJQUFBa0MsZ0JBQVMsRUFBQyxDQUFDOztNQUV2QjtNQUNBM0UsS0FBQSxDQUFLNEUsWUFBWSxnQkFBRyxJQUFBRCxnQkFBUyxFQUFDLENBQUM7TUFDL0IzRSxLQUFBLENBQUs2RSxjQUFjLGdCQUFHLElBQUFGLGdCQUFTLEVBQUMsQ0FBQztNQUFDLE9BQUEzRSxLQUFBO0lBQ3BDO0lBQUMsSUFBQThFLGFBQUEsYUFBQWxGLFlBQUE7TUFBQW1GLEdBQUE7TUFBQUMsS0FBQSxFQUVELFNBQUFDLGtCQUFBLEVBQW9CO1FBQ2xCLElBQUFDLG9DQUFpQixFQUFDLElBQUksQ0FBQ3pDLElBQUksQ0FBQzBDLE9BQU8sRUFBRSxJQUFJLENBQUNDLGFBQWEsQ0FBQztNQUMxRDtJQUFDO01BQUFMLEdBQUE7TUFBQUMsS0FBQSxFQUVELFNBQUFLLG1CQUFBLEVBQXFCO1FBQUEsSUFBQUMsV0FBQTtRQUNuQixJQUFNckMsV0FBVyxJQUFBcUMsV0FBQSxHQUFHLElBQUksQ0FBQ0MsS0FBSyxjQUFBRCxXQUFBLHVCQUFWQSxXQUFBLENBQVlyQyxXQUFXO1FBRTNDLElBQUlBLFdBQVcsRUFBRTtVQUNmO1VBQ0EsSUFBSSxDQUFDRCxRQUFRLENBQUM7WUFBQ0MsV0FBVyxFQUFFO1VBQUssQ0FBQyxDQUFDO1FBQ3JDO01BQ0Y7SUFBQztNQUFBOEIsR0FBQTtNQUFBQyxLQUFBLEVBRUQsU0FBQVEscUJBQUEsRUFBdUI7UUFDckIsSUFBQUMsc0NBQW1CLEVBQUMsSUFBSSxDQUFDaEQsSUFBSSxDQUFDMEMsT0FBTyxDQUFDO01BQ3hDO0lBQUM7TUFBQUosR0FBQTtNQUFBQyxLQUFBLEVBMkRELFNBQUFVLG1CQUFtQmhELEVBQUUsRUFBRTtRQUNyQixJQUFJLElBQUksQ0FBQzNDLEtBQUssQ0FBQzRGLGlCQUFpQixFQUFFO1VBQ2hDLElBQUksQ0FBQzVGLEtBQUssQ0FBQzRGLGlCQUFpQixDQUFDLElBQUksQ0FBQ2pCLEtBQUssRUFBRWhDLEVBQUUsQ0FBQztRQUM5QztNQUNGO0lBQUM7TUFBQXFDLEdBQUE7TUFBQUMsS0FBQSxFQWlDRDs7TUFFQTtNQUNBLFNBQUFZLGtCQUFrQkMsY0FBYyxFQUFFO1FBQ2hDO1FBQ0EsT0FBTyxJQUFJO01BQ2I7O01BRUE7SUFBQTtNQUFBZCxHQUFBO01BQUFDLEtBQUEsRUFFQSxTQUFBYyxZQUFZQyxRQUFRLEVBQUVDLE1BQU0sRUFBRTtRQUM1QixJQUFNQyxXQUFXLEdBQUcsQ0FBQ0YsUUFBUSxJQUFJLENBQUNDLE1BQU0sR0FBRyxJQUFJLEdBQUdELFFBQVEsQ0FBQ0csT0FBTyxDQUFDRixNQUFNLENBQUM7UUFDMUUsT0FBT0MsV0FBVyxJQUFJO1VBQUNFLENBQUMsRUFBRUYsV0FBVyxDQUFDLENBQUMsQ0FBQztVQUFFRyxDQUFDLEVBQUVILFdBQVcsQ0FBQyxDQUFDO1FBQUMsQ0FBQztNQUM5RDtJQUFDO01BQUFsQixHQUFBO01BQUFDLEtBQUEsRUFFRCxTQUFBcUIsbUJBQW1CQyxhQUFhLEVBQUU7UUFBQSxJQUFBQyxtQkFBQTtVQUFBQyxxQkFBQTtVQUFBQyxNQUFBO1VBQUFDLHNCQUFBO1FBQ2hDLElBQUFDLFlBQUEsR0FVSSxJQUFJLENBQUM1RyxLQUFLO1VBVFo2RyxRQUFRLEdBQUFELFlBQUEsQ0FBUkMsUUFBUTtVQUNSQyxRQUFRLEdBQUFGLFlBQUEsQ0FBUkUsUUFBUTtVQUNSbkcsU0FBUyxHQUFBaUcsWUFBQSxDQUFUakcsU0FBUztVQUNURSxVQUFVLEdBQUErRixZQUFBLENBQVYvRixVQUFVO1VBQ1ZILE1BQU0sR0FBQWtHLFlBQUEsQ0FBTmxHLE1BQU07VUFDTnFCLGVBQWUsR0FBQTZFLFlBQUEsQ0FBZjdFLGVBQWU7VUFDZmdGLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7VUFDcEJDLFlBQVksR0FBQUosWUFBQSxDQUFaSSxZQUFZO1VBQ1pDLFdBQVcsR0FBQUwsWUFBQSxDQUFYSyxXQUFXO1FBR2IsSUFBTUMsYUFBYSxHQUFHLElBQUksQ0FBQ3BDLGNBQWM7UUFFekMsQ0FBQTBCLG1CQUFBLEdBQUF4SSxRQUFRLENBQUNNLFNBQVMsY0FBQWtJLG1CQUFBLHVCQUFsQkEsbUJBQUEsQ0FBb0J2QyxTQUFTLENBQUMsQ0FBQzs7UUFFL0I7UUFDQSxJQUFJa0QsWUFBWSxHQUFHLEVBQUFWLHFCQUFBLE9BQUksQ0FBQ3pHLEtBQUssQ0FBQ29ILFdBQVcsY0FBQVgscUJBQUEsdUJBQXRCQSxxQkFBQSxDQUF3Qi9GLE1BQU0sS0FBSSxFQUFFOztRQUV2RDtRQUNBLElBQUlDLFNBQVMsSUFBSUEsU0FBUyxDQUFDekQsTUFBTSxFQUFFO1VBQ2pDO1VBQ0EsSUFBTW1LLFVBQVUsR0FBR3hHLFVBQVUsQ0FDMUJ5RyxLQUFLLENBQUMsQ0FBQyxDQUNQQyxPQUFPLENBQUMsQ0FBQyxDQUNUM0ssTUFBTSxDQUFDLFVBQUFxRixHQUFHO1lBQUEsT0FBSXNFLGFBQWEsQ0FBQzdGLE1BQU0sQ0FBQ3VCLEdBQUcsQ0FBQyxDQUFDb0IsRUFBRSxDQUFDO1VBQUEsRUFBQyxDQUM1Q21FLE1BQU0sQ0FBQyxVQUFDQyxRQUFRLEVBQUV4RixHQUFHLEVBQUs7WUFDekIsSUFBTXlGLGNBQWMsR0FBRztjQUNyQkMsZ0JBQWdCLEVBQUUsU0FBQUEsaUJBQUFDLEdBQUc7Z0JBQUEsT0FBSWxCLE1BQUksQ0FBQ21CLGlCQUFpQixDQUFDNUYsR0FBRyxFQUFFMkYsR0FBRyxDQUFDO2NBQUE7WUFDM0QsQ0FBQztZQUNELElBQU1FLFlBQVksR0FBRyxJQUFBQyw2QkFBaUIsRUFBQ3JCLE1BQUksQ0FBQzFHLEtBQUssRUFBRTBILGNBQWMsRUFBRXpGLEdBQUcsQ0FBQztZQUN2RSxPQUFPd0YsUUFBUSxDQUFDckUsTUFBTSxDQUFDMEUsWUFBWSxJQUFJLEVBQUUsQ0FBQztVQUM1QyxDQUFDLEVBQUUsRUFBRSxDQUFDO1VBQ1JYLFlBQVksR0FBR0EsWUFBWSxDQUFDL0QsTUFBTSxDQUFDaUUsVUFBVSxDQUFDO1FBQ2hEO1FBRUEsS0FBQVYsc0JBQUEsR0FBSSxJQUFJLENBQUMzRyxLQUFLLENBQUNvSCxXQUFXLGNBQUFULHNCQUFBLGVBQXRCQSxzQkFBQSxDQUF3QnFCLFdBQVcsRUFBRTtVQUN2Q2IsWUFBWSxHQUFHQSxZQUFZLENBQUMvRCxNQUFNLENBQUMsSUFBSSxDQUFDcEQsS0FBSyxDQUFDb0gsV0FBVyxDQUFDWSxXQUFXLENBQUM7UUFDeEU7UUFFQSxJQUFJZixXQUFXLEVBQUU7VUFDZkUsWUFBWSxDQUFDckssSUFBSSxDQUNmLElBQUltTCx5QkFBaUIsQ0FBQztZQUNwQjVFLEVBQUUsRUFBRTZFLDhCQUFhO1lBQ2pCQyxTQUFTLEVBQUVDLGVBQVMsQ0FBQ0MsSUFBSTtZQUN6QkMsSUFBSSxFQUFFLENBQUNyQixXQUFXLENBQUM7WUFDbkJzQixjQUFjLEVBQUUsU0FBQUEsZUFBQ0QsSUFBSSxFQUFFRSxPQUFPO2NBQUEsT0FBS0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQUE7WUFDekRDLFVBQVUsRUFBRSxTQUFBQSxXQUFBQyxDQUFDO2NBQUEsT0FBSUEsQ0FBQztZQUFBO1lBQ2xCQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHO1VBQ25DLENBQUMsQ0FDSCxDQUFDO1FBQ0g7UUFFQSxJQUFJN0IsUUFBUSxDQUFDOEIsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEVBQUU7VUFDOUN6QixZQUFZLENBQUNySyxJQUFJLENBQ2YsSUFBSStMLDBCQUFtQixDQUFDO1lBQ3RCeEYsRUFBRSxFQUFFLHVCQUF1QjtZQUMzQjBELG9CQUFvQixFQUFwQkEsb0JBQW9CO1lBQ3BCQyxZQUFZLEVBQVpBLFlBQVk7WUFDWjhCLG1CQUFtQixFQUFFaEMsUUFBUSxDQUFDZ0MsbUJBQW1CO1lBQ2pEQyxjQUFjLEVBQUU7Y0FDZEosWUFBWSxFQUFFN0IsUUFBUSxDQUFDZ0M7WUFDekI7VUFDRixDQUFDLENBQ0gsQ0FBQztRQUNIOztRQUVBO1FBQ0EsSUFBTUUsV0FBVyxHQUFHLElBQUksQ0FBQ25FLFlBQVk7UUFDckMsSUFBTW9FLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUE7VUFBQSxPQUFVRCxXQUFXLENBQUM1RCxPQUFPLEdBQUcsS0FBSztRQUFBLENBQUM7UUFFNUQsb0JBQ0U5TCxNQUFBLFlBQUE0UCxhQUFBLENBQUN0UCxPQUFBLFdBQU0sTUFBQXVQLFNBQUE7VUFDTEMsVUFBVSxFQUFFO1FBQUssR0FDYixJQUFJLENBQUNwSixLQUFLLENBQUNvSCxXQUFXO1VBQzFCaUMsU0FBUyxFQUFFO1lBQUNDLHFCQUFxQixFQUFFO1VBQUksQ0FBRTtVQUN6Q3ZGLFNBQVMsRUFBRThDLFFBQVM7VUFDcEJ0QyxpQkFBaUIsRUFBRSxTQUFBQSxrQkFBQWdGLEtBQUEsRUFBaUI7WUFBQSxJQUFmeEYsU0FBUyxHQUFBd0YsS0FBQSxDQUFUeEYsU0FBUztZQUM1QjtZQUNBLElBQUksQ0FBQ2lGLFdBQVcsQ0FBQzVELE9BQU8sSUFBSXJCLFNBQVMsQ0FBQy9FLEtBQUssR0FBRyxDQUFDLElBQUkrRSxTQUFTLENBQUM5RSxNQUFNLEdBQUcsQ0FBQyxFQUFFO2NBQ3ZFK0osV0FBVyxDQUFDNUQsT0FBTyxHQUFHLElBQUk7Y0FDMUJzQixNQUFJLENBQUM4QyxpQkFBaUIsQ0FBQ3pGLFNBQVMsQ0FBQztZQUNuQztVQUNGLENBQUU7VUFDRlYsRUFBRSxFQUFDLHdCQUF3QjtVQUMzQjNDLE1BQU0sRUFBRXlHLFlBQWE7VUFDckJzQyxjQUFjLEVBQUUsU0FBQUEsZUFBQUMsSUFBSSxFQUFJO1lBQ3RCVCxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xCdkMsTUFBSSxDQUFDaUQsZUFBZSxDQUFDRCxJQUFJLENBQUM7VUFDNUI7VUFDQTtVQUFBO1VBQ0FFLE9BQU8sRUFBRSxTQUFBQSxRQUFBQyxJQUFJLEVBQUk7WUFDZjlILGVBQWUsQ0FBQytILFlBQVksQ0FBQ0QsSUFBSSxDQUFDO1lBQ2xDM0MsYUFBYSxDQUFDOUIsT0FBTyxHQUFHO2NBQUM4QixhQUFhLEVBQUUyQyxJQUFJLENBQUNFO1lBQUssQ0FBQztVQUNyRCxDQUFFO1VBQ0ZDLE9BQU8sRUFBRWpJLGVBQWUsQ0FBQ0MsWUFBYTtVQUN0Q2lJLFdBQVcsRUFBRSxTQUFBQSxZQUFBLEVBQU07WUFDakIvQyxhQUFhLENBQUM5QixPQUFPLEdBQUcsSUFBSTtVQUM5QixDQUFFO1VBQ0Y4RSxPQUFPLEVBQUUsSUFBSSxDQUFDQyxZQUFhO1VBQzNCQyxHQUFHLEVBQUUsU0FBQUEsSUFBQUMsSUFBSSxFQUFJO1lBQ1gsSUFBSUEsSUFBSSxJQUFJQSxJQUFJLENBQUNDLElBQUksSUFBSUQsSUFBSSxDQUFDQyxJQUFJLEtBQUs1RCxNQUFJLENBQUMvQixLQUFLLEVBQUU7Y0FDakQrQixNQUFJLENBQUMvQixLQUFLLEdBQUcwRixJQUFJLENBQUNDLElBQUk7WUFDeEI7VUFDRixDQUFFO1VBQ0ZDLGtCQUFrQixFQUFFLFNBQUFBLG1CQUFBNUgsRUFBRTtZQUFBLE9BQUkrRCxNQUFJLENBQUNmLGtCQUFrQixDQUFDaEQsRUFBRSxDQUFDO1VBQUEsQ0FBQztVQUN0RDZILFdBQVcsRUFBRSxTQUFBQSxZQUFBQyxLQUFBLEVBQXVCO1lBQUEsSUFBQUMscUJBQUEsRUFBQUMsc0JBQUE7WUFBQSxJQUFyQjVILEtBQUssR0FBQTBILEtBQUEsQ0FBTDFILEtBQUs7Y0FBRWlELFFBQVEsR0FBQXlFLEtBQUEsQ0FBUnpFLFFBQVE7WUFDNUIsSUFDRTRFLEtBQUssRUFBQUYscUJBQUEsR0FBQzNILEtBQUssQ0FBQy9DLEtBQUssQ0FBQzZLLGdCQUFnQixjQUFBSCxxQkFBQSx1QkFBNUJBLHFCQUFBLENBQThCSSxHQUFHLENBQUMsSUFDeENGLEtBQUssRUFBQUQsc0JBQUEsR0FBQzVILEtBQUssQ0FBQy9DLEtBQUssQ0FBQzZLLGdCQUFnQixjQUFBRixzQkFBQSx1QkFBNUJBLHNCQUFBLENBQThCSSxHQUFHLENBQUMsRUFDeEM7Y0FDQSxPQUFPLElBQUk7WUFDYjtZQUNBLElBQU1DLGdCQUFnQixHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ3JFLFFBQVEsQ0FBQ3NFLElBQUksQ0FBQztZQUVsRCxPQUNFcEksS0FBSyxDQUFDL0MsS0FBSyxDQUFDNkssZ0JBQWdCLENBQUNDLEdBQUcsSUFBSUUsZ0JBQWdCLElBQ3BEakksS0FBSyxDQUFDL0MsS0FBSyxDQUFDNkssZ0JBQWdCLENBQUNFLEdBQUcsSUFBSUMsZ0JBQWdCO1VBRXhEO1FBQUUsRUFDSCxDQUFDO01BRU47SUFBQztNQUFBaEcsR0FBQTtNQUFBQyxLQUFBLEVBNEJEO01BQ0EsU0FBQW1HLFdBQUEsRUFBYTtRQUNYLElBQUFDLFlBQUEsR0FpQkksSUFBSSxDQUFDckwsS0FBSztVQWhCWjZHLFFBQVEsR0FBQXdFLFlBQUEsQ0FBUnhFLFFBQVE7VUFDUkMsUUFBUSxHQUFBdUUsWUFBQSxDQUFSdkUsUUFBUTtVQUNSdEcsZUFBZSxHQUFBNkssWUFBQSxDQUFmN0ssZUFBZTtVQUNmRSxNQUFNLEdBQUEySyxZQUFBLENBQU4zSyxNQUFNO1VBQ040SyxZQUFZLEdBQUFELFlBQUEsQ0FBWkMsWUFBWTtVQUNaQyxRQUFRLEdBQUFGLFlBQUEsQ0FBUkUsUUFBUTtVQUNSQyxXQUFXLEdBQUFILFlBQUEsQ0FBWEcsV0FBVztVQUNYakwsUUFBUSxHQUFBOEssWUFBQSxDQUFSOUssUUFBUTtVQUNSa0wsTUFBTSxHQUFBSixZQUFBLENBQU5JLE1BQU07VUFDTjdILGNBQWMsR0FBQXlILFlBQUEsQ0FBZHpILGNBQWM7VUFDZDdCLGVBQWUsR0FBQXNKLFlBQUEsQ0FBZnRKLGVBQWU7VUFDZjJKLGlCQUFpQixHQUFBTCxZQUFBLENBQWpCSyxpQkFBaUI7VUFDakJDLE1BQU0sR0FBQU4sWUFBQSxDQUFOTSxNQUFNO1VBQ05wSixLQUFLLEdBQUE4SSxZQUFBLENBQUw5SSxLQUFLO1VBQ0xqQyxPQUFPLEdBQUErSyxZQUFBLENBQVAvSyxPQUFPO1VBQ1BzTCxpQkFBaUIsR0FBQVAsWUFBQSxDQUFqQk8saUJBQWlCO1FBR25CLElBQU05RixjQUFjLEdBQUcsSUFBSSxDQUFDakUsc0JBQXNCLENBQUMsSUFBSSxDQUFDN0IsS0FBSyxDQUFDO1FBQzlELElBQU11RyxhQUFhLEdBQUcsSUFBSSxDQUFDc0YscUJBQXFCLENBQUMsSUFBSSxDQUFDN0wsS0FBSyxDQUFDO1FBRTVELElBQU04TCxRQUFRLEdBQUE5TyxhQUFBLENBQUFBLGFBQUEsS0FDVDZKLFFBQVE7VUFDWDdILEtBQUssRUFBRSxNQUFNO1VBQ2JDLE1BQU0sRUFBRSxNQUFNO1VBQ2RxSyxxQkFBcUIsRUFBRSxJQUFJO1VBQzNCeUMsZ0JBQWdCLEVBQWhCQSw4QkFBZ0I7VUFDaEJILGlCQUFpQixFQUFqQkE7UUFBaUIsRUFDbEI7UUFFRCxJQUFNSSxPQUFPLEdBQUdsTyxPQUFPLENBQUMrSSxRQUFRLENBQUNtRixPQUFPLENBQUM7UUFFekMsb0JBQ0UxUyxNQUFBLFlBQUE0UCxhQUFBLENBQUE1UCxNQUFBLFlBQUEyUyxRQUFBLHFCQUNFM1MsTUFBQSxZQUFBNFAsYUFBQSxDQUFDdkosVUFBVTtVQUNUNEwsUUFBUSxFQUFFQSxRQUFTO1VBQ25CVyxnQkFBZ0IsRUFBRW5RLE1BQU0sQ0FBQ1UsSUFBSSxDQUFDMFAscUJBQVksQ0FBRTtVQUM1Q0MsVUFBVSxFQUFFdkYsUUFBUSxDQUFDdUYsVUFBVztVQUNoQ0osT0FBTyxFQUFFQSxPQUFRO1VBQ2pCMUwsT0FBTyxFQUFFQSxPQUFRO1VBQ2pCQyxRQUFRLEVBQUVBLFFBQVM7VUFDbkJHLE1BQU0sRUFBRUEsTUFBTztVQUNmb0YsY0FBYyxFQUFFQSxjQUFlO1VBQy9CdEQsUUFBUSxFQUFFRCxLQUFNO1VBQ2hCaUosV0FBVyxFQUFFQSxXQUFZO1VBQ3pCYSxRQUFRLEVBQUUsSUFBSSxDQUFDck0sS0FBSyxDQUFDcU0sUUFBUztVQUM5QkMsS0FBSyxFQUFFekYsUUFBUSxDQUFDeUYsS0FBSyxJQUFJLENBQUU7VUFDM0JwTixHQUFHLEVBQUV3TSxpQkFBaUIsQ0FBQ2EsUUFBUSxJQUFJYixpQkFBaUIsQ0FBQ2EsUUFBUSxDQUFDQyxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUU7VUFDL0ViLE1BQU0sRUFBRUEsTUFBTztVQUNmRixNQUFNLEVBQUVBLE1BQU87VUFDZmdCLG1CQUFtQixFQUFFak0sZUFBZSxDQUFDa00saUJBQWtCO1VBQ3ZEQyxnQkFBZ0IsRUFBRW5NLGVBQWUsQ0FBQ29NLGNBQWU7VUFDakRDLGdCQUFnQixFQUFFLElBQUksQ0FBQ0MscUJBQXNCO1VBQzdDQyxrQkFBa0IsRUFBRSxJQUFJLENBQUNDLGlCQUFrQjtVQUMzQ0MsZUFBZSxFQUFFbEwsZUFBZSxDQUFDbUwsYUFBYztVQUMvQ0MsV0FBVyxFQUFFdkosY0FBYyxDQUFDd0osU0FBVTtVQUN0Q0Msd0JBQXdCLEVBQUV0TCxlQUFlLENBQUN1TDtRQUF1QixDQUNsRSxDQUFDLGVBQ0ZoVSxNQUFBLFlBQUE0UCxhQUFBLENBQUNvQyxZQUFZLE1BQUFuQyxTQUFBLGlCQUFLMkMsUUFBUTtVQUFFOUcsR0FBRyxFQUFDLFFBQVE7VUFBQzhCLFFBQVEsRUFBRUEsUUFBUSxDQUFDeUc7UUFBZSxJQUN4RXRQLFVBQVUsSUFBSSxJQUFBdVAsbUNBQXNCLEVBQUMsQ0FBQyxFQUN0QyxJQUFJLENBQUNsSCxrQkFBa0IsQ0FBQ0MsYUFBYSxDQUMxQixDQUFDLEVBQ2QsSUFBSSxDQUFDVixpQkFBaUIsQ0FBQ0MsY0FBYyxDQUN0QyxDQUFDO01BRVA7SUFBQztNQUFBZCxHQUFBO01BQUFDLEtBQUEsRUFFRCxTQUFBd0ksT0FBQSxFQUFTO1FBQUEsSUFBQUMsWUFBQTtRQUNQLElBQUFDLFlBQUEsR0FBNkIsSUFBSSxDQUFDM04sS0FBSztVQUFoQzZHLFFBQVEsR0FBQThHLFlBQUEsQ0FBUjlHLFFBQVE7VUFBRUMsUUFBUSxHQUFBNkcsWUFBQSxDQUFSN0csUUFBUTtRQUN6QixJQUFNNUQsV0FBVyxJQUFBd0ssWUFBQSxHQUFHLElBQUksQ0FBQ2xJLEtBQUssY0FBQWtJLFlBQUEsdUJBQVZBLFlBQUEsQ0FBWXhLLFdBQVc7UUFFM0MsSUFBSUEsV0FBVyxFQUFFO1VBQ2YsT0FBTyxJQUFJO1FBQ2I7UUFFQSxvQkFDRTVKLE1BQUEsWUFBQTRQLGFBQUEsQ0FBQzlPLGlCQUFBLENBQUF3VCxrQkFBa0I7VUFBQ3hELEdBQUcsRUFBRSxJQUFJLENBQUMxSCxJQUFLO1VBQUNtTCxLQUFLLEVBQUVqUCxTQUFTLENBQUNDLFNBQVU7VUFBQ2lQLEtBQUssRUFBRWpILFFBQVEsQ0FBQ2lIO1FBQU0sR0FDbkZoSCxRQUFRLENBQUN5RyxjQUFjLElBQUksSUFBSSxDQUFDbkMsVUFBVSxDQUFDLENBQzFCLENBQUM7TUFFekI7SUFBQztJQUFBLE9BQUF2TCxZQUFBO0VBQUEsRUE1WndCa08sZ0JBQVM7RUFBQSxJQUFBM1EsZ0JBQUEsYUFBOUJ5QyxZQUFZLGVBQ0c7SUFDakI7SUFDQTBMLFFBQVEsRUFBRXlDLHFCQUFTLENBQUNDLE1BQU07SUFDMUJ2QyxpQkFBaUIsRUFBRXNDLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUM5Q3JMLGFBQWEsRUFBRW1MLHFCQUFTLENBQUNHLE1BQU0sQ0FBQ0QsVUFBVTtJQUMxQ3JOLFVBQVUsRUFBRW1OLHFCQUFTLENBQUNJLE9BQU8sQ0FBQ0oscUJBQVMsQ0FBQ0ssR0FBRyxDQUFDLENBQUNILFVBQVU7SUFDdkR2TixTQUFTLEVBQUVxTixxQkFBUyxDQUFDSSxPQUFPLENBQUNKLHFCQUFTLENBQUNLLEdBQUcsQ0FBQyxDQUFDSCxVQUFVO0lBQ3REeE4sTUFBTSxFQUFFc04scUJBQVMsQ0FBQ0ksT0FBTyxDQUFDSixxQkFBUyxDQUFDSyxHQUFHLENBQUMsQ0FBQ0gsVUFBVTtJQUNuRDVNLE9BQU8sRUFBRTBNLHFCQUFTLENBQUNJLE9BQU8sQ0FBQ0oscUJBQVMsQ0FBQ0ssR0FBRyxDQUFDLENBQUNILFVBQVU7SUFDcERySCxRQUFRLEVBQUVtSCxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDckMxQyxXQUFXLEVBQUV3QyxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDeENwSCxRQUFRLEVBQUVrSCxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDckNuSCxvQkFBb0IsRUFBRWlILHFCQUFTLENBQUNHLE1BQU0sQ0FBQ0QsVUFBVTtJQUNqRGxILFlBQVksRUFBRWdILHFCQUFTLENBQUNHLE1BQU07SUFDOUJwTSxlQUFlLEVBQUVpTSxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDNUMxTixlQUFlLEVBQUV3TixxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDNUN0SyxjQUFjLEVBQUVvSyxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFFM0M7SUFDQTVOLE9BQU8sRUFBRTBOLHFCQUFTLENBQUNNLElBQUk7SUFBRTtJQUN6QmpDLFFBQVEsRUFBRTJCLHFCQUFTLENBQUNNLElBQUk7SUFDeEIvTixRQUFRLEVBQUV5TixxQkFBUyxDQUFDTSxJQUFJO0lBQ3hCQyxPQUFPLEVBQUVQLHFCQUFTLENBQUNDLE1BQU07SUFDekJPLFNBQVMsRUFBRVIscUJBQVMsQ0FBQ0MsTUFBTTtJQUMzQnJOLFNBQVMsRUFBRW9OLHFCQUFTLENBQUNDLE1BQU07SUFDM0JwQixnQkFBZ0IsRUFBRW1CLHFCQUFTLENBQUNTLElBQUk7SUFDaENDLGdCQUFnQixFQUFFVixxQkFBUyxDQUFDUyxJQUFJO0lBQ2hDN0MsaUJBQWlCLEVBQUVvQyxxQkFBUyxDQUFDUyxJQUFJO0lBQ2pDRSxZQUFZLEVBQUVYLHFCQUFTLENBQUNTLElBQUk7SUFDNUJsTSxLQUFLLEVBQUV5TCxxQkFBUyxDQUFDWSxNQUFNO0lBQ3ZCOU4sYUFBYSxFQUFFa04scUJBQVMsQ0FBQ0M7RUFDM0IsQ0FBQztFQUFBLElBQUE3USxnQkFBQSxhQWhDR3lDLFlBQVksa0JBa0NNO0lBQ3BCeUwsWUFBWSxFQUFFdUQsc0JBQVc7SUFDekJ6SCxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2Y3RSxLQUFLLEVBQUUsQ0FBQztJQUNSakMsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQXdYSFQsWUFBWSxDQUFDaVAsV0FBVyxHQUFHLGNBQWM7RUFFekMsT0FBT2pQLFlBQVk7QUFDckIifQ==
|
|
515
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdE1hcEdsIiwiX3JlYWN0MiIsIl9yZXNlbGVjdCIsIl9jb3JlIiwiX2xheWVycyIsIl9nZW9MYXllcnMiLCJfbm90aWZpY2F0aW9uc1V0aWxzIiwiX21hcFBvcG92ZXIiLCJfbWFwQ29udHJvbCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2VkaXRvciIsIl9tYXBib3hVdGlscyIsIl9nbFV0aWxzIiwiX21hcGJveFV0aWxzMiIsIl9sYXllclV0aWxzIiwiX2RCdWlsZGluZ0xheWVyIiwiX2RlZmF1bHRTZXR0aW5ncyIsIl9vYnNlcnZlRGltZW5zaW9ucyIsIl9sb2NhbGVzIiwiX3BlcmZvcm1hbmNlIiwiX2V4Y2x1ZGVkIiwiX3dpbmRvdyIsIl93aW5kb3ckbG9jYXRpb24iLCJfd2luZG93JGxvY2F0aW9uJHNlYXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwidmFsdWVPZiIsInRyYWNrZXJzIiwiUEVSRl9ERUJVRyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwiaW5jbHVkZXMiLCJkcmF3Q291bnQiLCJjcmVhdGVUcmFja2VyIiwidmlld3BvcnRDaGFuZ2VDb3VudCIsImNyZWF0ZUxheWVyVXBkYXRlVHJhY2tlciIsIkxheWVyIiwiVGlsZUxheWVyIiwiTUFQX1NUWUxFIiwiY29udGFpbmVyIiwiZGlzcGxheSIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJwb2ludGVyRXZlbnRzIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIk1hcENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwUG9wb3ZlckZhY3RvcnkiLCJNYXBDb250cm9sRmFjdG9yeSIsIkVkaXRvckZhY3RvcnkiLCJNYXBQb3BvdmVyIiwiTWFwQ29udHJvbCIsIkVkaXRvciIsIk1hcENvbnRhaW5lciIsIl9Db21wb25lbnQiLCJfaW5oZXJpdHMyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiIsImRpbWVuc2lvbnMiLCJfdGhpcyRwcm9wcyIsInByaW1hcnkiLCJpc0V4cG9ydCIsIm1hcFN0YXRlQWN0aW9ucyIsInVwZGF0ZU1hcCIsImxheWVycyIsImxheWVyRGF0YSIsIm1hcExheWVycyIsImxheWVyT3JkZXIiLCJwb3B1cFNldHRpbmdzIiwiY3JlYXRlU2VsZWN0b3IiLCJsYXllcnNTZWxlY3RvciIsImxheWVyRGF0YVNlbGVjdG9yIiwibWFwTGF5ZXJzU2VsZWN0b3IiLCJwb3B1cFNldHRpbmdzU2VsZWN0b3IiLCJwcmVwYXJlTGF5ZXJzVG9SZW5kZXIiLCJwcmVwYXJlTGF5ZXJzRm9yRGVjayIsImZpbHRlcnMiLCJmaWx0ZXJzU2VsZWN0b3IiLCJmIiwidHlwZSIsIkZJTFRFUl9UWVBFUyIsInBvbHlnb24iLCJsYXllck9yZGVyU2VsZWN0b3IiLCJsYXllcnNUb1JlbmRlclNlbGVjdG9yIiwiZ2VuZXJhdGVNYXBib3hMYXllcnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJvbkxheWVyQ2xpY2siLCJpZHgiLCJjb2xvckRvbWFpbiIsImxheWVyQ29uZmlnQ2hhbmdlIiwibGF5ZXJJZCIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzMiRpbmRleCIsImluZGV4IiwibWFwSW5kZXgiLCJ0b2dnbGVMYXllckZvck1hcCIsIl9yZWYiLCJnbCIsInNldExheWVyQmxlbmRpbmciLCJsYXllckJsZW5kaW5nIiwiZXJyb3IiLCJsYXllciIsIm1lc3NhZ2UiLCJzZXRTdGF0ZSIsImNvbnRleHRMb3N0IiwiZXJyb3JNZXNzYWdlIiwiY29uY2F0IiwiaWQiLCJub3RpZmljYXRpb25JZCIsIl9kZWNrR0xFcnJvcnNFbGFwc2VkIiwibGFzdFNob3duIiwiRGF0ZSIsIm5vdyIsIlRIUk9UVExFX05PVElGSUNBVElPTl9USU1FIiwidWlTdGF0ZUFjdGlvbnMiLCJhZGROb3RpZmljYXRpb24iLCJlcnJvck5vdGlmaWNhdGlvbiIsInZpZXdTdGF0ZSIsIl90cmFja2VycyR2aWV3cG9ydENoYSIsImluY3JlbWVudCIsInJlc3RWaWV3U3RhdGUiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiX3RoaXMkcHJvcHMzIiwibmV4dCIsInRyYW5zaXRpb25EdXJhdGlvbiIsIm9uVmlld1N0YXRlQ2hhbmdlIiwicGFuZWxJZCIsIl90aGlzJHByb3BzNCIsInRvZ2dsZU1hcENvbnRyb2wiLCJfZGVjayIsImNyZWF0ZVJlZiIsIl9oYXNSZW5kZXJlZCIsIl9tb3VzZVBvc2l0aW9uIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsImN1cnJlbnQiLCJfaGFuZGxlUmVzaXplIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiX3RoaXMkc3RhdGUiLCJzdGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsIl9vbkRlY2tJbml0aWFsaXplZCIsIm9uRGVja0luaXRpYWxpemVkIiwiX3JlbmRlck1hcFBvcG92ZXIiLCJsYXllcnNUb1JlbmRlciIsIl9nZXRIb3ZlclhZIiwidmlld3BvcnQiLCJsbmdMYXQiLCJzY3JlZW5Db29yZCIsInByb2plY3QiLCJ4IiwieSIsIl9yZW5kZXJEZWNrT3ZlcmxheSIsImxheWVyc0ZvckRlY2siLCJfdHJhY2tlcnMkZHJhd0NvdW50IiwiX3RoaXMkcHJvcHMkZGVja0dsUHJvIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMkZGVja0dsUHJvMiIsIl90aGlzJHByb3BzNSIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJtYXBib3hBcGlVcmwiLCJtYXNrUG9seWdvbiIsIm1vdXNlUG9zaXRpb24iLCJkZWNrR2xMYXllcnMiLCJkZWNrR2xQcm9wcyIsImRhdGFMYXllcnMiLCJzbGljZSIsInJldmVyc2UiLCJyZWR1Y2UiLCJvdmVybGF5cyIsImxheWVyQ2FsbGJhY2tzIiwib25TZXRMYXllckRvbWFpbiIsInZhbCIsIl9vbkxheWVyU2V0RG9tYWluIiwibGF5ZXJPdmVybGF5IiwicmVuZGVyRGVja0dsTGF5ZXIiLCJsYXllcnNPblRvcCIsIlNvbGlkUG9seWdvbkxheWVyIiwiTUFTS19MQVlFUl9JRCIsIm9wZXJhdGlvbiIsIk9QRVJBVElPTiIsIk1BU0siLCJkYXRhIiwiZGF0YUNvbXBhcmF0b3IiLCJvbGREYXRhIiwiZ2V0UG9seWdvbiIsImQiLCJnZXRGaWxsQ29sb3IiLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJUaHJlZURCdWlsZGluZ0xheWVyIiwidGhyZWVEQnVpbGRpbmdDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiaGFzUmVuZGVyZWQiLCJyZXNldEhhc1JlbmRlcmVkIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImNvbnRyb2xsZXIiLCJnbE9wdGlvbnMiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJfcmVmMiIsIl9vblZpZXdwb3J0Q2hhbmdlIiwib25CZWZvcmVSZW5kZXIiLCJvcHRzIiwiX29uQmVmb3JlUmVuZGVyIiwib25Ib3ZlciIsImluZm8iLCJvbkxheWVySG92ZXIiLCJwaXhlbCIsIm9uQ2xpY2siLCJvbkRyYWdTdGFydCIsIm9uRXJyb3IiLCJfb25EZWNrRXJyb3IiLCJyZWYiLCJjb21wIiwiZGVjayIsIm9uV2ViR0xJbml0aWFsaXplZCIsImxheWVyRmlsdGVyIiwiX3JlZjMiLCJfbGF5ZXIkcHJvcHMkdmlzaWJpbGkiLCJfbGF5ZXIkcHJvcHMkdmlzaWJpbGkyIiwiaXNOYU4iLCJ2aXNpYmlsaXR5Qnlab29tIiwibWluIiwibWF4IiwiY3VycmVudFpvb21SYW5nZSIsIk1hdGgiLCJyb3VuZCIsInpvb20iLCJfcmVuZGVyTWFwIiwiX3RoaXMkcHJvcHM2IiwiTWFwQ29tcG9uZW50IiwiZGF0YXNldHMiLCJtYXBDb250cm9scyIsImxvY2FsZSIsImludGVyYWN0aW9uQ29uZmlnIiwiZWRpdG9yIiwiZ2VuZXJhdGVUaHVtYm5haWwiLCJsYXllcnNGb3JEZWNrU2VsZWN0b3IiLCJtYXBQcm9wcyIsInRyYW5zZm9ybVJlcXVlc3QiLCJpc1NwbGl0IiwiRnJhZ21lbnQiLCJhdmFpbGFibGVMb2NhbGVzIiwiTE9DQUxFX0NPREVTIiwiZHJhZ1JvdGF0ZSIsInJlYWRPbmx5Iiwic2NhbGUiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJvblRvZ2dsZVBlcnNwZWN0aXZlIiwidG9nZ2xlUGVyc3BlY3RpdmUiLCJvblRvZ2dsZVNwbGl0TWFwIiwidG9nZ2xlU3BsaXRNYXAiLCJvbk1hcFRvZ2dsZUxheWVyIiwiX2hhbmRsZU1hcFRvZ2dsZUxheWVyIiwib25Ub2dnbGVNYXBDb250cm9sIiwiX3RvZ2dsZU1hcENvbnRyb2wiLCJvblNldEVkaXRvck1vZGUiLCJzZXRFZGl0b3JNb2RlIiwib25TZXRMb2NhbGUiLCJzZXRMb2NhbGUiLCJvblRvZ2dsZUVkaXRvclZpc2liaWxpdHkiLCJ0b2dnbGVFZGl0b3JWaXNpYmlsaXR5IiwiYm90dG9tTWFwU3R5bGUiLCJyZW5kZXJQZXJmb3JtYW5jZVN0YXRzIiwicmVuZGVyIiwiX3RoaXMkc3RhdGUyIiwiX3RoaXMkcHJvcHM3IiwiU3R5bGVkTWFwQ29udGFpbmVyIiwic3R5bGUiLCJnbG9iZSIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJhcnJheU9mIiwiYW55IiwiYm9vbCIsImNsaWNrZWQiLCJob3ZlckluZm8iLCJmdW5jIiwib25NYXBTdHlsZUxvYWRlZCIsImdldE1hcGJveFJlZiIsIm51bWJlciIsIk1hcGJveEdMTWFwIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9tYXAtY29udGFpbmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTWFwYm94R0xNYXAgZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBEZWNrR0wgZnJvbSAnQGRlY2suZ2wvcmVhY3QnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IHtPUEVSQVRJT04sIExheWVyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7U29saWRQb2x5Z29uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge1RpbGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvZ2VvLWxheWVycyc7XG5pbXBvcnQge2Vycm9yTm90aWZpY2F0aW9ufSBmcm9tICd1dGlscy9ub3RpZmljYXRpb25zLXV0aWxzJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IE1hcFBvcG92ZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1wb3BvdmVyJztcbmltcG9ydCBNYXBDb250cm9sRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL21hcC9tYXAtY29udHJvbCc7XG5pbXBvcnQge1N0eWxlZE1hcENvbnRhaW5lcn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgRWRpdG9yRmFjdG9yeSBmcm9tICcuL2VkaXRvci9lZGl0b3InO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHtnZW5lcmF0ZU1hcGJveExheWVyc30gZnJvbSAnbGF5ZXJzL21hcGJveC11dGlscyc7XG5pbXBvcnQge3NldExheWVyQmxlbmRpbmd9IGZyb20gJ3V0aWxzL2dsLXV0aWxzJztcbmltcG9ydCB7dHJhbnNmb3JtUmVxdWVzdH0gZnJvbSAndXRpbHMvbWFwLXN0eWxlLXV0aWxzL21hcGJveC11dGlscyc7XG5pbXBvcnQge3JlbmRlckRlY2tHbExheWVyLCBwcmVwYXJlTGF5ZXJzVG9SZW5kZXIsIHByZXBhcmVMYXllcnNGb3JEZWNrfSBmcm9tICd1dGlscy9sYXllci11dGlscyc7XG5cbi8vIGRlZmF1bHQtc2V0dGluZ3NcbmltcG9ydCBUaHJlZURCdWlsZGluZ0xheWVyIGZyb20gJ2RlY2tnbC1sYXllcnMvM2QtYnVpbGRpbmctbGF5ZXIvM2QtYnVpbGRpbmctbGF5ZXInO1xuaW1wb3J0IHtGSUxURVJfVFlQRVMsIE1BU0tfTEFZRVJfSUQsIFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJy4uL3V0aWxzL29ic2VydmUtZGltZW5zaW9ucyc7XG5pbXBvcnQge0xPQ0FMRV9DT0RFU30gZnJvbSAnbG9jYWxpemF0aW9uL2xvY2FsZXMnO1xuXG4vLyBQZXJmb3JtYW5jZSBkZWJ1Z2dpbmdcbmltcG9ydCB7Y3JlYXRlVHJhY2tlciwgY3JlYXRlTGF5ZXJVcGRhdGVUcmFja2VyLCByZW5kZXJQZXJmb3JtYW5jZVN0YXRzfSBmcm9tICcuL3BlcmZvcm1hbmNlJztcbmNvbnN0IHRyYWNrZXJzID0ge307XG5jb25zdCBQRVJGX0RFQlVHID0gd2luZG93Py5sb2NhdGlvbj8uc2VhcmNoPy5pbmNsdWRlcygnUEVSRl9ERUJVRycpO1xuaWYgKFBFUkZfREVCVUcpIHtcbiAgdHJhY2tlcnMuZHJhd0NvdW50ID0gY3JlYXRlVHJhY2tlcignZHJhd3MnKTtcbiAgdHJhY2tlcnMudmlld3BvcnRDaGFuZ2VDb3VudCA9IGNyZWF0ZVRyYWNrZXIoJ3ZpZXdwb3J0IGNoYW5nZXMnKTtcbiAgY3JlYXRlTGF5ZXJVcGRhdGVUcmFja2VyKCdzdGF0ZSB1cGRhdGVzJywgW0xheWVyLCBUaWxlTGF5ZXJdKTtcbn1cblxuLyoqIEB0eXBlIHt7W2tleTogc3RyaW5nXTogUmVhY3QuQ1NTUHJvcGVydGllc319ICovXG5jb25zdCBNQVBfU1RZTEUgPSB7XG4gIGNvbnRhaW5lcjoge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMTAwJSdcbiAgfSxcbiAgdG9wOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnMHB4JyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJ1xuICB9XG59O1xuXG5jb25zdCBUUkFOU0lUSU9OX0RVUkFUSU9OID0gMDtcblxuTWFwQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW01hcFBvcG92ZXJGYWN0b3J5LCBNYXBDb250cm9sRmFjdG9yeSwgRWRpdG9yRmFjdG9yeV07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcENvbnRhaW5lckZhY3RvcnkoTWFwUG9wb3ZlciwgTWFwQ29udHJvbCwgRWRpdG9yKSB7XG4gIGNsYXNzIE1hcENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIC8vIHJlcXVpcmVkXG4gICAgICBkYXRhc2V0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgIGludGVyYWN0aW9uQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBsYXllckJsZW5kaW5nOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBsYXllck9yZGVyOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJEYXRhOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgZmlsdGVyczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcbiAgICAgIG1hcFN0YXRlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBDb250cm9sczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3R5bGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcGJveEFwaVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHZpc1N0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICB1aVN0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuXG4gICAgICAvLyBvcHRpb25hbFxuICAgICAgcHJpbWFyeTogUHJvcFR5cGVzLmJvb2wsIC8vIHByaW1hcnkgb25lIHdpbGwgYmUgcmVwb3J0aW5nIGl0cyBzaXplIHRvIGFwcFN0YXRlXG4gICAgICByZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBpc0V4cG9ydDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBjbGlja2VkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaG92ZXJJbmZvOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgbWFwTGF5ZXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgb25NYXBUb2dnbGVMYXllcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbk1hcFN0eWxlTG9hZGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdlbmVyYXRlVGh1bWJuYWlsOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdldE1hcGJveFJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBpbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIHBvcHVwU2V0dGluZ3M6IFByb3BUeXBlcy5vYmplY3RcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIE1hcENvbXBvbmVudDogTWFwYm94R0xNYXAsXG4gICAgICBkZWNrR2xQcm9wczoge30sXG4gICAgICBpbmRleDogMCxcbiAgICAgIHByaW1hcnk6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgdGhpcy5fZGVjayA9IG51bGw7XG4gICAgICB0aGlzLl9yZWYgPSBjcmVhdGVSZWYoKTtcblxuICAgICAgLy8gUmVuZGVyIGxpbWl0aW5nIG1lY2hhbmlzbVxuICAgICAgdGhpcy5faGFzUmVuZGVyZWQgPSBjcmVhdGVSZWYoKTtcbiAgICAgIHRoaXMuX21vdXNlUG9zaXRpb24gPSBjcmVhdGVSZWYoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRMb3N0ID0gdGhpcy5zdGF0ZT8uY29udGV4dExvc3Q7XG5cbiAgICAgIGlmIChjb250ZXh0TG9zdCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZGlkLXVwZGF0ZS1zZXQtc3RhdGVcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGV4dExvc3Q6IGZhbHNlfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgICBjb25zdCB7cHJpbWFyeSwgaXNFeHBvcnR9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmIChwcmltYXJ5KSB7XG4gICAgICAgIGNvbnN0IHttYXBTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgaWYgKCFpc0V4cG9ydCAmJiBkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMud2lkdGggPiAwICYmIGRpbWVuc2lvbnMuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoZGltZW5zaW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgbGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllcnM7XG4gICAgbGF5ZXJEYXRhU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllckRhdGE7XG4gICAgbWFwTGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5tYXBMYXllcnM7XG4gICAgbGF5ZXJPcmRlclNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMubGF5ZXJPcmRlcjtcbiAgICBwb3B1cFNldHRpbmdzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5wb3B1cFNldHRpbmdzO1xuXG4gICAgbGF5ZXJzVG9SZW5kZXJTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICB0aGlzLm1hcExheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5wb3B1cFNldHRpbmdzU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzVG9SZW5kZXJcbiAgICApO1xuICAgIGxheWVyc0ZvckRlY2tTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzRm9yRGVja1xuICAgICk7XG4gICAgZmlsdGVyc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuZmlsdGVycztcbiAgICBwb2x5Z29uRmlsdGVycyA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZmlsdGVyc1NlbGVjdG9yLCBmaWx0ZXJzID0+XG4gICAgICBmaWx0ZXJzLmZpbHRlcihmID0+IGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnBvbHlnb24pXG4gICAgKTtcblxuICAgIG1hcGJveExheWVyc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJPcmRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllcnNUb1JlbmRlclNlbGVjdG9yLFxuICAgICAgZ2VuZXJhdGVNYXBib3hMYXllcnNcbiAgICApO1xuXG4gICAgLyogY29tcG9uZW50IHByaXZhdGUgZnVuY3Rpb25zICovXG4gICAgX29uQ2xvc2VNYXBQb3BvdmVyID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMub25MYXllckNsaWNrKG51bGwpO1xuICAgIH07XG5cbiAgICBfb25MYXllclNldERvbWFpbiA9IChpZHgsIGNvbG9yRG9tYWluKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5sYXllckNvbmZpZ0NoYW5nZSh0aGlzLnByb3BzLmxheWVyc1tpZHhdLCB7XG4gICAgICAgIGNvbG9yRG9tYWluXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX2hhbmRsZU1hcFRvZ2dsZUxheWVyID0gbGF5ZXJJZCA9PiB7XG4gICAgICBjb25zdCB7aW5kZXg6IG1hcEluZGV4ID0gMCwgdmlzU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMudG9nZ2xlTGF5ZXJGb3JNYXAobWFwSW5kZXgsIGxheWVySWQpO1xuICAgIH07XG5cbiAgICBfb25EZWNrSW5pdGlhbGl6ZWQoZ2wpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRGVja0luaXRpYWxpemVkKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25EZWNrSW5pdGlhbGl6ZWQodGhpcy5fZGVjaywgZ2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9vbkJlZm9yZVJlbmRlciA9ICh7Z2x9KSA9PiB7XG4gICAgICBzZXRMYXllckJsZW5kaW5nKGdsLCB0aGlzLnByb3BzLmxheWVyQmxlbmRpbmcpO1xuICAgIH07XG5cbiAgICBfb25EZWNrRXJyb3IgPSAoZXJyb3IsIGxheWVyKSA9PiB7XG4gICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT09ICdXZWJHTCBjb250ZXh0IGlzIGxvc3QnKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRleHRMb3N0OiB0cnVlfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIGluIGRlY2suZ2w6ICR7ZXJyb3I/Lm1lc3NhZ2V9IGluICR7bGF5ZXI/LmlkfWA7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25JZCA9IGAke2xheWVyPy5pZH0tJHtlcnJvcj8ubWVzc2FnZX1gO1xuXG4gICAgICAvLyBUaHJvdHRsZSBlcnJvciBub3RpZmljYXRpb25zLCBhcyBSZWFjdCBkb2Vzbid0IGxpa2UgdG9vIG1hbnkgc3RhdGUgY2hhbmdlcyBmcm9tIGhlcmUuXG4gICAgICB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkID0gdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZCB8fCB7fTtcbiAgICAgIGNvbnN0IGxhc3RTaG93biA9IHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdO1xuICAgICAgaWYgKCFsYXN0U2hvd24gfHwgbGFzdFNob3duIDwgRGF0ZS5ub3coKSAtIFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FKSB7XG4gICAgICAgIHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBDcmVhdGUgbmV3IGVycm9yIG5vdGlmaWNhdGlvbiBvciB1cGRhdGUgZXhpc3Rpbmcgb25lIHdpdGggc2FtZSBpZC5cbiAgICAgICAgLy8gVXBkYXRlIGlzIHJlcXVpcmVkIHRvIHByZXNlcnZlIHRoZSBvcmRlciBvZiBub3RpZmljYXRpb25zIGFzIHRoZXkgcHJvYmFibHkgYXJlIGdvaW5nIHRvIFwianVtcFwiIGJhc2VkIG9uIG9yZGVyIG9mIGVycm9ycy5cbiAgICAgICAgY29uc3Qge3VpU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLmFkZE5vdGlmaWNhdGlvbihcbiAgICAgICAgICBlcnJvck5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICBpZDogbm90aWZpY2F0aW9uSWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBjb21wb25lbnQgcmVuZGVyIGZ1bmN0aW9ucyAqL1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICAgIF9yZW5kZXJNYXBQb3BvdmVyKGxheWVyc1RvUmVuZGVyKSB7XG4gICAgICAvLyBPdmVycmlkZW4gaW4gQnVpbGRlcjogZmVhdHVyZXMvYnVpbGRlci91aS9LZXBsZXJHbC9NYXBDb250YWluZXIvTWFwQ29udGFpbmVyLnRzeFxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbiAgICBfZ2V0SG92ZXJYWSh2aWV3cG9ydCwgbG5nTGF0KSB7XG4gICAgICBjb25zdCBzY3JlZW5Db29yZCA9ICF2aWV3cG9ydCB8fCAhbG5nTGF0ID8gbnVsbCA6IHZpZXdwb3J0LnByb2plY3QobG5nTGF0KTtcbiAgICAgIHJldHVybiBzY3JlZW5Db29yZCAmJiB7eDogc2NyZWVuQ29vcmRbMF0sIHk6IHNjcmVlbkNvb3JkWzFdfTtcbiAgICB9XG5cbiAgICBfcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjaykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIGxheWVyRGF0YSxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFza1BvbHlnb25cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBtb3VzZVBvc2l0aW9uID0gdGhpcy5fbW91c2VQb3NpdGlvbjtcblxuICAgICAgdHJhY2tlcnMuZHJhd0NvdW50Py5pbmNyZW1lbnQoKTtcblxuICAgICAgLy8gaW5pdGlhbGlzZSBsYXllcnMgZnJvbSBwcm9wcyBpZiBleGlzdHNcbiAgICAgIGxldCBkZWNrR2xMYXllcnMgPSB0aGlzLnByb3BzLmRlY2tHbFByb3BzPy5sYXllcnMgfHwgW107XG5cbiAgICAgIC8vIHdhaXQgdW50aWwgZGF0YSBpcyByZWFkeSBiZWZvcmUgcmVuZGVyIGRhdGEgbGF5ZXJzXG4gICAgICBpZiAobGF5ZXJEYXRhICYmIGxheWVyRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbGFzdCBsYXllciByZW5kZXIgZmlyc3RcbiAgICAgICAgY29uc3QgZGF0YUxheWVycyA9IGxheWVyT3JkZXJcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAuZmlsdGVyKGlkeCA9PiBsYXllcnNGb3JEZWNrW2xheWVyc1tpZHhdLmlkXSlcbiAgICAgICAgICAucmVkdWNlKChvdmVybGF5cywgaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXllckNhbGxiYWNrcyA9IHtcbiAgICAgICAgICAgICAgb25TZXRMYXllckRvbWFpbjogdmFsID0+IHRoaXMuX29uTGF5ZXJTZXREb21haW4oaWR4LCB2YWwpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJPdmVybGF5ID0gcmVuZGVyRGVja0dsTGF5ZXIodGhpcy5wcm9wcywgbGF5ZXJDYWxsYmFja3MsIGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gb3ZlcmxheXMuY29uY2F0KGxheWVyT3ZlcmxheSB8fCBbXSk7XG4gICAgICAgICAgfSwgW10pO1xuICAgICAgICBkZWNrR2xMYXllcnMgPSBkZWNrR2xMYXllcnMuY29uY2F0KGRhdGFMYXllcnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5kZWNrR2xQcm9wcz8ubGF5ZXJzT25Ub3ApIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzID0gZGVja0dsTGF5ZXJzLmNvbmNhdCh0aGlzLnByb3BzLmRlY2tHbFByb3BzLmxheWVyc09uVG9wKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hc2tQb2x5Z29uKSB7XG4gICAgICAgIGRlY2tHbExheWVycy5wdXNoKFxuICAgICAgICAgIG5ldyBTb2xpZFBvbHlnb25MYXllcih7XG4gICAgICAgICAgICBpZDogTUFTS19MQVlFUl9JRCxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogT1BFUkFUSU9OLk1BU0ssXG4gICAgICAgICAgICBkYXRhOiBbbWFza1BvbHlnb25dLFxuICAgICAgICAgICAgZGF0YUNvbXBhcmF0b3I6IChkYXRhLCBvbGREYXRhKSA9PiBkYXRhWzBdID09PSBvbGREYXRhWzBdLFxuICAgICAgICAgICAgZ2V0UG9seWdvbjogZCA9PiBkLFxuICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiBbMjU1LCAyNTUsIDI1NSwgMjU1XVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXBTdHlsZS52aXNpYmxlTGF5ZXJHcm91cHNbJzNkIGJ1aWxkaW5nJ10pIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzLnB1c2goXG4gICAgICAgICAgbmV3IFRocmVlREJ1aWxkaW5nTGF5ZXIoe1xuICAgICAgICAgICAgaWQ6ICdfa2VwbGVyZ2xfM2QtYnVpbGRpbmcnLFxuICAgICAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICAgICAgdGhyZWVEQnVpbGRpbmdDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcixcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIExpbWl0IHJlbmRlcnNcbiAgICAgIGNvbnN0IGhhc1JlbmRlcmVkID0gdGhpcy5faGFzUmVuZGVyZWQ7XG4gICAgICBjb25zdCByZXNldEhhc1JlbmRlcmVkID0gKCkgPT4gKGhhc1JlbmRlcmVkLmN1cnJlbnQgPSBmYWxzZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxEZWNrR0xcbiAgICAgICAgICBjb250cm9sbGVyPXt0cnVlfVxuICAgICAgICAgIHsuLi50aGlzLnByb3BzLmRlY2tHbFByb3BzfVxuICAgICAgICAgIGdsT3B0aW9ucz17e3ByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZX19XG4gICAgICAgICAgdmlld1N0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGV9KSA9PiB7XG4gICAgICAgICAgICAvLyBMaW1pdCB1cGRhdGVzIChwcmV2ZW50cyBmcmVlemVzIHdoZW4gZGV2IHRvb2xzIG9wZW4pXG4gICAgICAgICAgICBpZiAoIWhhc1JlbmRlcmVkLmN1cnJlbnQgJiYgdmlld1N0YXRlLndpZHRoID4gMSAmJiB2aWV3U3RhdGUuaGVpZ2h0ID4gMSkge1xuICAgICAgICAgICAgICBoYXNSZW5kZXJlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5fb25WaWV3cG9ydENoYW5nZSh2aWV3U3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgaWQ9XCJkZWZhdWx0LWRlY2tnbC1vdmVybGF5XCJcbiAgICAgICAgICBsYXllcnM9e2RlY2tHbExheWVyc31cbiAgICAgICAgICBvbkJlZm9yZVJlbmRlcj17b3B0cyA9PiB7XG4gICAgICAgICAgICByZXNldEhhc1JlbmRlcmVkKCk7XG4gICAgICAgICAgICB0aGlzLl9vbkJlZm9yZVJlbmRlcihvcHRzKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIC8vIG9uSG92ZXI9e3Zpc1N0YXRlQWN0aW9ucy5vbkxheWVySG92ZXJ9XG4gICAgICAgICAgb25Ib3Zlcj17aW5mbyA9PiB7XG4gICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnMub25MYXllckhvdmVyKGluZm8pO1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0ge21vdXNlUG9zaXRpb246IGluZm8ucGl4ZWx9O1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25DbGljaz17dmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJDbGlja31cbiAgICAgICAgICBvbkRyYWdTdGFydD17KCkgPT4ge1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uRXJyb3I9e3RoaXMuX29uRGVja0Vycm9yfVxuICAgICAgICAgIHJlZj17Y29tcCA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcCAmJiBjb21wLmRlY2sgJiYgY29tcC5kZWNrICE9PSB0aGlzLl9kZWNrKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RlY2sgPSBjb21wLmRlY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbldlYkdMSW5pdGlhbGl6ZWQ9e2dsID0+IHRoaXMuX29uRGVja0luaXRpYWxpemVkKGdsKX1cbiAgICAgICAgICBsYXllckZpbHRlcj17KHtsYXllciwgdmlld3BvcnR9KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGlzTmFOKGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20/Lm1pbikgfHxcbiAgICAgICAgICAgICAgaXNOYU4obGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbT8ubWF4KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudFpvb21SYW5nZSA9IE1hdGgucm91bmQobWFwU3RhdGUuem9vbSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20ubWluIDw9IGN1cnJlbnRab29tUmFuZ2UgJiZcbiAgICAgICAgICAgICAgbGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbS5tYXggPj0gY3VycmVudFpvb21SYW5nZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfb25WaWV3cG9ydENoYW5nZSA9IHZpZXdTdGF0ZSA9PiB7XG4gICAgICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50Py5pbmNyZW1lbnQoKTtcbiAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCAuLi5yZXN0Vmlld1N0YXRlfSA9IHZpZXdTdGF0ZTtcbiAgICAgIGNvbnN0IHtwcmltYXJ5LCBpc0V4cG9ydH0gPSB0aGlzLnByb3BzO1xuICAgICAgLy8gcmVhY3QtbWFwLWdsIHNlbmRzIDAsMCBkaW1lbnNpb25zIGR1cmluZyBpbml0aWFsaXphdGlvblxuICAgICAgLy8gYWZ0ZXIgd2UgaGF2ZSByZWNlaXZlZCBwcm9wZXIgZGltZW5zaW9ucyBmcm9tIG9ic2VydmVEaW1lbnNpb25zXG4gICAgICBjb25zdCBuZXh0ID0ge1xuICAgICAgICAuLi4od2lkdGggPiAwICYmIGhlaWdodCA+IDAgPyB2aWV3U3RhdGUgOiByZXN0Vmlld1N0YXRlKSxcbiAgICAgICAgLy8gZW5hYmxpbmcgdHJhbnNpdGlvbiBpbiB0d28gbWFwcyBtYXkgbGVhZCB0byBlbmRsZXNzIHVwZGF0ZSBsb29wc1xuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IHByaW1hcnkgPyBUUkFOU0lUSU9OX0RVUkFUSU9OIDogMFxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmlld1N0YXRlQ2hhbmdlKG5leHQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXhwb3J0KSB7XG4gICAgICAgIHRoaXMucHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcChuZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RvZ2dsZU1hcENvbnRyb2wgPSBwYW5lbElkID0+IHtcbiAgICAgIGNvbnN0IHtpbmRleCwgdWlTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdWlTdGF0ZUFjdGlvbnMudG9nZ2xlTWFwQ29udHJvbChwYW5lbElkLCBpbmRleCk7XG4gICAgfTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICBfcmVuZGVyTWFwKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICBNYXBDb21wb25lbnQsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBtYXBDb250cm9scyxcbiAgICAgICAgaXNFeHBvcnQsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHByaW1hcnksXG4gICAgICAgIGdlbmVyYXRlVGh1bWJuYWlsXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbGF5ZXJzVG9SZW5kZXIgPSB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllcnNGb3JEZWNrID0gdGhpcy5sYXllcnNGb3JEZWNrU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdCxcbiAgICAgICAgZ2VuZXJhdGVUaHVtYm5haWxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBCb29sZWFuKG1hcFN0YXRlLmlzU3BsaXQpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxNYXBDb250cm9sXG4gICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICBhdmFpbGFibGVMb2NhbGVzPXtPYmplY3Qua2V5cyhMT0NBTEVfQ09ERVMpfVxuICAgICAgICAgICAgZHJhZ1JvdGF0ZT17bWFwU3RhdGUuZHJhZ1JvdGF0ZX1cbiAgICAgICAgICAgIGlzU3BsaXQ9e2lzU3BsaXR9XG4gICAgICAgICAgICBwcmltYXJ5PXtwcmltYXJ5fVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICBsYXllcnNUb1JlbmRlcj17bGF5ZXJzVG9SZW5kZXJ9XG4gICAgICAgICAgICBtYXBJbmRleD17aW5kZXh9XG4gICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICByZWFkT25seT17dGhpcy5wcm9wcy5yZWFkT25seX1cbiAgICAgICAgICAgIHNjYWxlPXttYXBTdGF0ZS5zY2FsZSB8fCAxfVxuICAgICAgICAgICAgdG9wPXtpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2RlciAmJiBpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkID8gNTIgOiAwfVxuICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlUGVyc3BlY3RpdmU9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVQZXJzcGVjdGl2ZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlU3BsaXRNYXA9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVTcGxpdE1hcH1cbiAgICAgICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXI9e3RoaXMuX2hhbmRsZU1hcFRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sPXt0aGlzLl90b2dnbGVNYXBDb250cm9sfVxuICAgICAgICAgICAgb25TZXRFZGl0b3JNb2RlPXt2aXNTdGF0ZUFjdGlvbnMuc2V0RWRpdG9yTW9kZX1cbiAgICAgICAgICAgIG9uU2V0TG9jYWxlPXt1aVN0YXRlQWN0aW9ucy5zZXRMb2NhbGV9XG4gICAgICAgICAgICBvblRvZ2dsZUVkaXRvclZpc2liaWxpdHk9e3Zpc1N0YXRlQWN0aW9ucy50b2dnbGVFZGl0b3JWaXNpYmlsaXR5fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPE1hcENvbXBvbmVudCB7Li4ubWFwUHJvcHN9IGtleT1cImJvdHRvbVwiIG1hcFN0eWxlPXttYXBTdHlsZS5ib3R0b21NYXBTdHlsZX0+XG4gICAgICAgICAgICB7UEVSRl9ERUJVRyAmJiByZW5kZXJQZXJmb3JtYW5jZVN0YXRzKCl9XG4gICAgICAgICAgICB7dGhpcy5fcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjayl9XG4gICAgICAgICAgPC9NYXBDb21wb25lbnQ+XG4gICAgICAgICAge3RoaXMuX3JlbmRlck1hcFBvcG92ZXIobGF5ZXJzVG9SZW5kZXIpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge21hcFN0YXRlLCBtYXBTdHlsZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgY29udGV4dExvc3QgPSB0aGlzLnN0YXRlPy5jb250ZXh0TG9zdDtcblxuICAgICAgaWYgKGNvbnRleHRMb3N0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyIHJlZj17dGhpcy5fcmVmfSBzdHlsZT17TUFQX1NUWUxFLmNvbnRhaW5lcn0gZ2xvYmU9e21hcFN0YXRlLmdsb2JlfT5cbiAgICAgICAgICB7bWFwU3R5bGUuYm90dG9tTWFwU3R5bGUgJiYgdGhpcy5fcmVuZGVyTWFwKCl9XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBNYXBDb250YWluZXIuZGlzcGxheU5hbWUgPSAnTWFwQ29udGFpbmVyJztcblxuICByZXR1cm4gTWFwQ29udGFpbmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxtQkFBQSxHQUFBVCxPQUFBO0FBR0EsSUFBQVUsV0FBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVcsV0FBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVksaUJBQUEsR0FBQVosT0FBQTtBQUVBLElBQUFhLE9BQUEsR0FBQVgsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFjLFlBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLFFBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixhQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLFdBQUEsR0FBQWpCLE9BQUE7QUFHQSxJQUFBa0IsZUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFtQixnQkFBQSxHQUFBbkIsT0FBQTtBQUVBLElBQUFvQixrQkFBQSxHQUFBcEIsT0FBQTtBQUNBLElBQUFxQixRQUFBLEdBQUFyQixPQUFBO0FBR0EsSUFBQXNCLFlBQUEsR0FBQXRCLE9BQUE7QUFBOEYsSUFBQXVCLFNBQUE7QUFBQSxJQUFBQyxPQUFBLEVBQUFDLGdCQUFBLEVBQUFDLHFCQUFBLEVBcEQ5RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBV0E7QUFPQTtBQU1BO0FBT0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQTdCLHdCQUFBNkIsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWpCLENBQUEsRUFBQWMsQ0FBQSxTQUFBSSxDQUFBLEdBQUFSLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUksQ0FBQSxLQUFBQSxDQUFBLENBQUFYLEdBQUEsSUFBQVcsQ0FBQSxDQUFBQyxHQUFBLElBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUksQ0FBQSxJQUFBVixDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWdCLEdBQUEsQ0FBQW5CLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQVksUUFBQXBCLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFRLE1BQUEsQ0FBQVUsSUFBQSxDQUFBckIsQ0FBQSxPQUFBVyxNQUFBLENBQUFXLHFCQUFBLFFBQUFDLENBQUEsR0FBQVosTUFBQSxDQUFBVyxxQkFBQSxDQUFBdEIsQ0FBQSxHQUFBRSxDQUFBLEtBQUFxQixDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBdEIsQ0FBQSxXQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQUUsQ0FBQSxFQUFBdUIsVUFBQSxPQUFBdEIsQ0FBQSxDQUFBdUIsSUFBQSxDQUFBQyxLQUFBLENBQUF4QixDQUFBLEVBQUFvQixDQUFBLFlBQUFwQixDQUFBO0FBQUEsU0FBQXlCLGNBQUE1QixDQUFBLGFBQUFFLENBQUEsTUFBQUEsQ0FBQSxHQUFBMkIsU0FBQSxDQUFBQyxNQUFBLEVBQUE1QixDQUFBLFVBQUFDLENBQUEsV0FBQTBCLFNBQUEsQ0FBQTNCLENBQUEsSUFBQTJCLFNBQUEsQ0FBQTNCLENBQUEsUUFBQUEsQ0FBQSxPQUFBa0IsT0FBQSxDQUFBVCxNQUFBLENBQUFSLENBQUEsT0FBQTRCLE9BQUEsV0FBQTdCLENBQUEsUUFBQThCLGdCQUFBLGFBQUFoQyxDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFTLE1BQUEsQ0FBQXNCLHlCQUFBLEdBQUF0QixNQUFBLENBQUF1QixnQkFBQSxDQUFBbEMsQ0FBQSxFQUFBVyxNQUFBLENBQUFzQix5QkFBQSxDQUFBOUIsQ0FBQSxLQUFBaUIsT0FBQSxDQUFBVCxNQUFBLENBQUFSLENBQUEsR0FBQTRCLE9BQUEsV0FBQTdCLENBQUEsSUFBQVMsTUFBQSxDQUFBQyxjQUFBLENBQUFaLENBQUEsRUFBQUUsQ0FBQSxFQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUYsQ0FBQTtBQUFBLFNBQUFtQyxXQUFBaEMsQ0FBQSxFQUFBb0IsQ0FBQSxFQUFBdkIsQ0FBQSxXQUFBdUIsQ0FBQSxPQUFBYSxnQkFBQSxhQUFBYixDQUFBLE9BQUFjLDJCQUFBLGFBQUFsQyxDQUFBLEVBQUFtQyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQWpCLENBQUEsRUFBQXZCLENBQUEsWUFBQW9DLGdCQUFBLGFBQUFqQyxDQUFBLEVBQUFzQyxXQUFBLElBQUFsQixDQUFBLENBQUFJLEtBQUEsQ0FBQXhCLENBQUEsRUFBQUgsQ0FBQTtBQUFBLFNBQUFzQywwQkFBQSxjQUFBbkMsQ0FBQSxJQUFBdUMsT0FBQSxDQUFBM0IsU0FBQSxDQUFBNEIsT0FBQSxDQUFBMUIsSUFBQSxDQUFBc0IsT0FBQSxDQUFBQyxTQUFBLENBQUFFLE9BQUEsaUNBQUF2QyxDQUFBLGFBQUFtQyx5QkFBQSxZQUFBQSwwQkFBQSxhQUFBbkMsQ0FBQTtBQUVBLElBQU15QyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLElBQU1DLFVBQVUsSUFBQWpELE9BQUEsR0FBR2tELE1BQU0sY0FBQWxELE9BQUEsd0JBQUFDLGdCQUFBLEdBQU5ELE9BQUEsQ0FBUW1ELFFBQVEsY0FBQWxELGdCQUFBLHdCQUFBQyxxQkFBQSxHQUFoQkQsZ0JBQUEsQ0FBa0JtRCxNQUFNLGNBQUFsRCxxQkFBQSx1QkFBeEJBLHFCQUFBLENBQTBCbUQsUUFBUSxDQUFDLFlBQVksQ0FBQztBQUNuRSxJQUFJSixVQUFVLEVBQUU7RUFDZEQsUUFBUSxDQUFDTSxTQUFTLEdBQUcsSUFBQUMsMEJBQWEsRUFBQyxPQUFPLENBQUM7RUFDM0NQLFFBQVEsQ0FBQ1EsbUJBQW1CLEdBQUcsSUFBQUQsMEJBQWEsRUFBQyxrQkFBa0IsQ0FBQztFQUNoRSxJQUFBRSxxQ0FBd0IsRUFBQyxlQUFlLEVBQUUsQ0FBQ0MsV0FBSyxFQUFFQyxvQkFBUyxDQUFDLENBQUM7QUFDL0Q7O0FBRUE7QUFDQSxJQUFNQyxTQUFTLEdBQUc7RUFDaEJDLFNBQVMsRUFBRTtJQUNUQyxPQUFPLEVBQUUsY0FBYztJQUN2QkMsUUFBUSxFQUFFLFVBQVU7SUFDcEJDLEtBQUssRUFBRSxNQUFNO0lBQ2JDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDREMsR0FBRyxFQUFFO0lBQ0hILFFBQVEsRUFBRSxVQUFVO0lBQ3BCRyxHQUFHLEVBQUUsS0FBSztJQUNWQyxhQUFhLEVBQUUsTUFBTTtJQUNyQkgsS0FBSyxFQUFFLE1BQU07SUFDYkMsTUFBTSxFQUFFO0VBQ1Y7QUFDRixDQUFDO0FBRUQsSUFBTUcsbUJBQW1CLEdBQUcsQ0FBQztBQUU3QkMsbUJBQW1CLENBQUNDLElBQUksR0FBRyxDQUFDQyxzQkFBaUIsRUFBRUMsc0JBQWlCLEVBQUVDLGtCQUFhLENBQUM7QUFFakUsU0FBU0osbUJBQW1CQSxDQUFDSyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsTUFBTSxFQUFFO0VBQUEsSUFDcEVDLFlBQVksMEJBQUFDLFVBQUE7SUFBQSxJQUFBQyxVQUFBLGFBQUFGLFlBQUEsRUFBQUMsVUFBQTtJQXdDaEIsU0FBQUQsYUFBWUcsTUFBSyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUFBLElBQUFDLGdCQUFBLG1CQUFBTCxZQUFBO01BQ2pCSSxLQUFBLEdBQUExQyxVQUFBLE9BQUFzQyxZQUFBLEdBQU1HLE1BQUs7TUFBRSxJQUFBNUMsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLG9CQTJCQyxVQUFBRyxVQUFVLEVBQUk7UUFDNUIsSUFBQUMsV0FBQSxHQUE0QkosS0FBQSxDQUFLRCxLQUFLO1VBQS9CTSxPQUFPLEdBQUFELFdBQUEsQ0FBUEMsT0FBTztVQUFFQyxRQUFRLEdBQUFGLFdBQUEsQ0FBUkUsUUFBUTtRQUN4QixJQUFJRCxPQUFPLEVBQUU7VUFDWCxJQUFPRSxlQUFlLEdBQUlQLEtBQUEsQ0FBS0QsS0FBSyxDQUE3QlEsZUFBZTtVQUN0QixJQUFJLENBQUNELFFBQVEsSUFBSUgsVUFBVSxJQUFJQSxVQUFVLENBQUNwQixLQUFLLEdBQUcsQ0FBQyxJQUFJb0IsVUFBVSxDQUFDbkIsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1RXVCLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDTCxVQUFVLENBQUM7VUFDdkM7UUFDRjtNQUNGLENBQUM7TUFBQSxJQUFBaEQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHFCQUVnQixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDVSxNQUFNO01BQUE7TUFBQSxJQUFBdEQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHdCQUNsQixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDVyxTQUFTO01BQUE7TUFBQSxJQUFBdkQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHdCQUN4QixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDWSxTQUFTO01BQUE7TUFBQSxJQUFBeEQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHlCQUN2QixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDYSxVQUFVO01BQUE7TUFBQSxJQUFBekQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDRCQUN0QixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDYyxhQUFhO01BQUE7TUFBQSxJQUFBMUQsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDZCQUUzQixJQUFBYyx3QkFBYyxFQUNyQ2QsS0FBQSxDQUFLZSxjQUFjLEVBQ25CZixLQUFBLENBQUtnQixpQkFBaUIsRUFDdEJoQixLQUFBLENBQUtpQixpQkFBaUIsRUFDdEJqQixLQUFBLENBQUtrQixxQkFBcUIsRUFDMUJDLGlDQUNGLENBQUM7TUFBQSxJQUFBaEUsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDRCQUN1QixJQUFBYyx3QkFBYyxFQUNwQ2QsS0FBQSxDQUFLZSxjQUFjLEVBQ25CZixLQUFBLENBQUtnQixpQkFBaUIsRUFDdEJJLGdDQUNGLENBQUM7TUFBQSxJQUFBakUsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHNCQUNpQixVQUFBRCxLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDc0IsT0FBTztNQUFBO01BQUEsSUFBQWxFLGdCQUFBLGlCQUFBK0MsdUJBQUEsYUFBQUYsS0FBQSxxQkFDdkIsSUFBQWMsd0JBQWMsRUFBQ2QsS0FBQSxDQUFLc0IsZUFBZSxFQUFFLFVBQUFELE9BQU87UUFBQSxPQUMzREEsT0FBTyxDQUFDMUUsTUFBTSxDQUFDLFVBQUE0RSxDQUFDO1VBQUEsT0FBSUEsQ0FBQyxDQUFDQyxJQUFJLEtBQUtDLDZCQUFZLENBQUNDLE9BQU87UUFBQSxFQUFDO01BQUEsQ0FDdEQsQ0FBQztNQUFBLElBQUF2RSxnQkFBQSxpQkFBQStDLHVCQUFBLGFBQUFGLEtBQUEsMkJBRXNCLElBQUFjLHdCQUFjLEVBQ25DZCxLQUFBLENBQUtlLGNBQWMsRUFDbkJmLEtBQUEsQ0FBS2dCLGlCQUFpQixFQUN0QmhCLEtBQUEsQ0FBSzJCLGtCQUFrQixFQUN2QjNCLEtBQUEsQ0FBSzRCLHNCQUFzQixFQUMzQkMsaUNBQ0YsQ0FBQztNQUVEO01BQUEsSUFBQTFFLGdCQUFBLGlCQUFBK0MsdUJBQUEsYUFBQUYsS0FBQSx5QkFDcUIsWUFBTTtRQUN6QkEsS0FBQSxDQUFLRCxLQUFLLENBQUMrQixlQUFlLENBQUNDLFlBQVksQ0FBQyxJQUFJLENBQUM7TUFDL0MsQ0FBQztNQUFBLElBQUE1RSxnQkFBQSxpQkFBQStDLHVCQUFBLGFBQUFGLEtBQUEsd0JBRW1CLFVBQUNnQyxHQUFHLEVBQUVDLFdBQVcsRUFBSztRQUN4Q2pDLEtBQUEsQ0FBS0QsS0FBSyxDQUFDK0IsZUFBZSxDQUFDSSxpQkFBaUIsQ0FBQ2xDLEtBQUEsQ0FBS0QsS0FBSyxDQUFDVSxNQUFNLENBQUN1QixHQUFHLENBQUMsRUFBRTtVQUNuRUMsV0FBVyxFQUFYQTtRQUNGLENBQUMsQ0FBQztNQUNKLENBQUM7TUFBQSxJQUFBOUUsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLDRCQUV1QixVQUFBbUMsT0FBTyxFQUFJO1FBQ2pDLElBQUFDLFlBQUEsR0FBK0NwQyxLQUFBLENBQUtELEtBQUs7VUFBQXNDLGtCQUFBLEdBQUFELFlBQUEsQ0FBbERFLEtBQUs7VUFBRUMsUUFBUSxHQUFBRixrQkFBQSxjQUFHLENBQUMsR0FBQUEsa0JBQUE7VUFBRVAsZUFBZSxHQUFBTSxZQUFBLENBQWZOLGVBQWU7UUFDM0NBLGVBQWUsQ0FBQ1UsaUJBQWlCLENBQUNELFFBQVEsRUFBRUosT0FBTyxDQUFDO01BQ3RELENBQUM7TUFBQSxJQUFBaEYsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHNCQVFpQixVQUFBeUMsSUFBQSxFQUFVO1FBQUEsSUFBUkMsRUFBRSxHQUFBRCxJQUFBLENBQUZDLEVBQUU7UUFDcEIsSUFBQUMseUJBQWdCLEVBQUNELEVBQUUsRUFBRTFDLEtBQUEsQ0FBS0QsS0FBSyxDQUFDNkMsYUFBYSxDQUFDO01BQ2hELENBQUM7TUFBQSxJQUFBekYsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLG1CQUVjLFVBQUM2QyxLQUFLLEVBQUVDLEtBQUssRUFBSztRQUMvQixJQUFJLENBQUFELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFRSxPQUFPLE1BQUssdUJBQXVCLEVBQUU7VUFDOUMvQyxLQUFBLENBQUtnRCxRQUFRLENBQUM7WUFBQ0MsV0FBVyxFQUFFO1VBQUksQ0FBQyxDQUFDO1VBQ2xDO1FBQ0Y7UUFFQSxJQUFNQyxZQUFZLDJCQUFBQyxNQUFBLENBQTJCTixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUUsT0FBTyxVQUFBSSxNQUFBLENBQU9MLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFTSxFQUFFLENBQUU7UUFDN0UsSUFBTUMsY0FBYyxNQUFBRixNQUFBLENBQU1MLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFTSxFQUFFLE9BQUFELE1BQUEsQ0FBSU4sS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVFLE9BQU8sQ0FBRTs7UUFFdkQ7UUFDQS9DLEtBQUEsQ0FBS3NELG9CQUFvQixHQUFHdEQsS0FBQSxDQUFLc0Qsb0JBQW9CLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQU1DLFNBQVMsR0FBR3ZELEtBQUEsQ0FBS3NELG9CQUFvQixDQUFDRCxjQUFjLENBQUM7UUFDM0QsSUFBSSxDQUFDRSxTQUFTLElBQUlBLFNBQVMsR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxHQUFHQywyQ0FBMEIsRUFBRTtVQUNyRTFELEtBQUEsQ0FBS3NELG9CQUFvQixDQUFDRCxjQUFjLENBQUMsR0FBR0csSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQzs7VUFFdEQ7VUFDQTtVQUNBLElBQU9FLGNBQWMsR0FBSTNELEtBQUEsQ0FBS0QsS0FBSyxDQUE1QjRELGNBQWM7VUFDckJBLGNBQWMsQ0FBQ0MsZUFBZSxDQUM1QixJQUFBQyxxQ0FBaUIsRUFBQztZQUNoQmQsT0FBTyxFQUFFRyxZQUFZO1lBQ3JCRSxFQUFFLEVBQUVDO1VBQ04sQ0FBQyxDQUNILENBQUM7UUFDSDtNQUNGLENBQUM7TUFBQSxJQUFBbEcsZ0JBQUEsaUJBQUErQyx1QkFBQSxhQUFBRixLQUFBLHdCQTRJbUIsVUFBQThELFNBQVMsRUFBSTtRQUFBLElBQUFDLHFCQUFBO1FBQy9CLENBQUFBLHFCQUFBLEdBQUFoRyxRQUFRLENBQUNRLG1CQUFtQixjQUFBd0YscUJBQUEsdUJBQTVCQSxxQkFBQSxDQUE4QkMsU0FBUyxDQUFDLENBQUM7UUFDekMsSUFBT2pGLEtBQUssR0FBOEIrRSxTQUFTLENBQTVDL0UsS0FBSztVQUFFQyxNQUFNLEdBQXNCOEUsU0FBUyxDQUFyQzlFLE1BQU07VUFBS2lGLGFBQWEsT0FBQUMseUJBQUEsYUFBSUosU0FBUyxFQUFBaEosU0FBQTtRQUNuRCxJQUFBcUosWUFBQSxHQUE0Qm5FLEtBQUEsQ0FBS0QsS0FBSztVQUEvQk0sT0FBTyxHQUFBOEQsWUFBQSxDQUFQOUQsT0FBTztVQUFFQyxRQUFRLEdBQUE2RCxZQUFBLENBQVI3RCxRQUFRO1FBQ3hCO1FBQ0E7UUFDQSxJQUFNOEQsSUFBSSxHQUFBckgsYUFBQSxDQUFBQSxhQUFBLEtBQ0pnQyxLQUFLLEdBQUcsQ0FBQyxJQUFJQyxNQUFNLEdBQUcsQ0FBQyxHQUFHOEUsU0FBUyxHQUFHRyxhQUFhO1VBQ3ZEO1VBQ0FJLGtCQUFrQixFQUFFaEUsT0FBTyxHQUFHbEIsbUJBQW1CLEdBQUc7UUFBQyxFQUN0RDtRQUNELElBQUksT0FBT2EsS0FBQSxDQUFLRCxLQUFLLENBQUN1RSxpQkFBaUIsS0FBSyxVQUFVLEVBQUU7VUFDdER0RSxLQUFBLENBQUtELEtBQUssQ0FBQ3VFLGlCQUFpQixDQUFDRixJQUFJLENBQUM7UUFDcEM7UUFFQSxJQUFJLENBQUM5RCxRQUFRLEVBQUU7VUFDYk4sS0FBQSxDQUFLRCxLQUFLLENBQUNRLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDNEQsSUFBSSxDQUFDO1FBQzVDO01BQ0YsQ0FBQztNQUFBLElBQUFqSCxnQkFBQSxpQkFBQStDLHVCQUFBLGFBQUFGLEtBQUEsd0JBRW1CLFVBQUF1RSxPQUFPLEVBQUk7UUFDN0IsSUFBQUMsWUFBQSxHQUFnQ3hFLEtBQUEsQ0FBS0QsS0FBSztVQUFuQ3VDLEtBQUssR0FBQWtDLFlBQUEsQ0FBTGxDLEtBQUs7VUFBRXFCLGNBQWMsR0FBQWEsWUFBQSxDQUFkYixjQUFjO1FBRTVCQSxjQUFjLENBQUNjLGdCQUFnQixDQUFDRixPQUFPLEVBQUVqQyxLQUFLLENBQUM7TUFDakQsQ0FBQztNQXpSQ3RDLEtBQUEsQ0FBSzBFLEtBQUssR0FBRyxJQUFJO01BQ2pCMUUsS0FBQSxDQUFLeUMsSUFBSSxnQkFBRyxJQUFBa0MsZ0JBQVMsRUFBQyxDQUFDOztNQUV2QjtNQUNBM0UsS0FBQSxDQUFLNEUsWUFBWSxnQkFBRyxJQUFBRCxnQkFBUyxFQUFDLENBQUM7TUFDL0IzRSxLQUFBLENBQUs2RSxjQUFjLGdCQUFHLElBQUFGLGdCQUFTLEVBQUMsQ0FBQztNQUFDLE9BQUEzRSxLQUFBO0lBQ3BDO0lBQUMsSUFBQThFLGFBQUEsYUFBQWxGLFlBQUE7TUFBQW1GLEdBQUE7TUFBQUMsS0FBQSxFQUVELFNBQUFDLGtCQUFBLEVBQW9CO1FBQ2xCLElBQUFDLG9DQUFpQixFQUFDLElBQUksQ0FBQ3pDLElBQUksQ0FBQzBDLE9BQU8sRUFBRSxJQUFJLENBQUNDLGFBQWEsQ0FBQztNQUMxRDtJQUFDO01BQUFMLEdBQUE7TUFBQUMsS0FBQSxFQUVELFNBQUFLLG1CQUFBLEVBQXFCO1FBQUEsSUFBQUMsV0FBQTtRQUNuQixJQUFNckMsV0FBVyxJQUFBcUMsV0FBQSxHQUFHLElBQUksQ0FBQ0MsS0FBSyxjQUFBRCxXQUFBLHVCQUFWQSxXQUFBLENBQVlyQyxXQUFXO1FBRTNDLElBQUlBLFdBQVcsRUFBRTtVQUNmO1VBQ0EsSUFBSSxDQUFDRCxRQUFRLENBQUM7WUFBQ0MsV0FBVyxFQUFFO1VBQUssQ0FBQyxDQUFDO1FBQ3JDO01BQ0Y7SUFBQztNQUFBOEIsR0FBQTtNQUFBQyxLQUFBLEVBRUQsU0FBQVEscUJBQUEsRUFBdUI7UUFDckIsSUFBQUMsc0NBQW1CLEVBQUMsSUFBSSxDQUFDaEQsSUFBSSxDQUFDMEMsT0FBTyxDQUFDO01BQ3hDO0lBQUM7TUFBQUosR0FBQTtNQUFBQyxLQUFBLEVBMkRELFNBQUFVLG1CQUFtQmhELEVBQUUsRUFBRTtRQUNyQixJQUFJLElBQUksQ0FBQzNDLEtBQUssQ0FBQzRGLGlCQUFpQixFQUFFO1VBQ2hDLElBQUksQ0FBQzVGLEtBQUssQ0FBQzRGLGlCQUFpQixDQUFDLElBQUksQ0FBQ2pCLEtBQUssRUFBRWhDLEVBQUUsQ0FBQztRQUM5QztNQUNGO0lBQUM7TUFBQXFDLEdBQUE7TUFBQUMsS0FBQSxFQWlDRDs7TUFFQTtNQUNBLFNBQUFZLGtCQUFrQkMsY0FBYyxFQUFFO1FBQ2hDO1FBQ0EsT0FBTyxJQUFJO01BQ2I7O01BRUE7SUFBQTtNQUFBZCxHQUFBO01BQUFDLEtBQUEsRUFFQSxTQUFBYyxZQUFZQyxRQUFRLEVBQUVDLE1BQU0sRUFBRTtRQUM1QixJQUFNQyxXQUFXLEdBQUcsQ0FBQ0YsUUFBUSxJQUFJLENBQUNDLE1BQU0sR0FBRyxJQUFJLEdBQUdELFFBQVEsQ0FBQ0csT0FBTyxDQUFDRixNQUFNLENBQUM7UUFDMUUsT0FBT0MsV0FBVyxJQUFJO1VBQUNFLENBQUMsRUFBRUYsV0FBVyxDQUFDLENBQUMsQ0FBQztVQUFFRyxDQUFDLEVBQUVILFdBQVcsQ0FBQyxDQUFDO1FBQUMsQ0FBQztNQUM5RDtJQUFDO01BQUFsQixHQUFBO01BQUFDLEtBQUEsRUFFRCxTQUFBcUIsbUJBQW1CQyxhQUFhLEVBQUU7UUFBQSxJQUFBQyxtQkFBQTtVQUFBQyxxQkFBQTtVQUFBQyxNQUFBO1VBQUFDLHNCQUFBO1FBQ2hDLElBQUFDLFlBQUEsR0FTSSxJQUFJLENBQUM1RyxLQUFLO1VBUlo2RyxRQUFRLEdBQUFELFlBQUEsQ0FBUkMsUUFBUTtVQUNSQyxRQUFRLEdBQUFGLFlBQUEsQ0FBUkUsUUFBUTtVQUNSbkcsU0FBUyxHQUFBaUcsWUFBQSxDQUFUakcsU0FBUztVQUNURSxVQUFVLEdBQUErRixZQUFBLENBQVYvRixVQUFVO1VBQ1ZILE1BQU0sR0FBQWtHLFlBQUEsQ0FBTmxHLE1BQU07VUFDTnFCLGVBQWUsR0FBQTZFLFlBQUEsQ0FBZjdFLGVBQWU7VUFDZmdGLFlBQVksR0FBQUgsWUFBQSxDQUFaRyxZQUFZO1VBQ1pDLFdBQVcsR0FBQUosWUFBQSxDQUFYSSxXQUFXO1FBR2IsSUFBTUMsYUFBYSxHQUFHLElBQUksQ0FBQ25DLGNBQWM7UUFFekMsQ0FBQTBCLG1CQUFBLEdBQUF4SSxRQUFRLENBQUNNLFNBQVMsY0FBQWtJLG1CQUFBLHVCQUFsQkEsbUJBQUEsQ0FBb0J2QyxTQUFTLENBQUMsQ0FBQzs7UUFFL0I7UUFDQSxJQUFJaUQsWUFBWSxHQUFHLEVBQUFULHFCQUFBLE9BQUksQ0FBQ3pHLEtBQUssQ0FBQ21ILFdBQVcsY0FBQVYscUJBQUEsdUJBQXRCQSxxQkFBQSxDQUF3Qi9GLE1BQU0sS0FBSSxFQUFFOztRQUV2RDtRQUNBLElBQUlDLFNBQVMsSUFBSUEsU0FBUyxDQUFDekQsTUFBTSxFQUFFO1VBQ2pDO1VBQ0EsSUFBTWtLLFVBQVUsR0FBR3ZHLFVBQVUsQ0FDMUJ3RyxLQUFLLENBQUMsQ0FBQyxDQUNQQyxPQUFPLENBQUMsQ0FBQyxDQUNUMUssTUFBTSxDQUFDLFVBQUFxRixHQUFHO1lBQUEsT0FBSXNFLGFBQWEsQ0FBQzdGLE1BQU0sQ0FBQ3VCLEdBQUcsQ0FBQyxDQUFDb0IsRUFBRSxDQUFDO1VBQUEsRUFBQyxDQUM1Q2tFLE1BQU0sQ0FBQyxVQUFDQyxRQUFRLEVBQUV2RixHQUFHLEVBQUs7WUFDekIsSUFBTXdGLGNBQWMsR0FBRztjQUNyQkMsZ0JBQWdCLEVBQUUsU0FBQUEsaUJBQUFDLEdBQUc7Z0JBQUEsT0FBSWpCLE1BQUksQ0FBQ2tCLGlCQUFpQixDQUFDM0YsR0FBRyxFQUFFMEYsR0FBRyxDQUFDO2NBQUE7WUFDM0QsQ0FBQztZQUNELElBQU1FLFlBQVksR0FBRyxJQUFBQyw2QkFBaUIsRUFBQ3BCLE1BQUksQ0FBQzFHLEtBQUssRUFBRXlILGNBQWMsRUFBRXhGLEdBQUcsQ0FBQztZQUN2RSxPQUFPdUYsUUFBUSxDQUFDcEUsTUFBTSxDQUFDeUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztVQUM1QyxDQUFDLEVBQUUsRUFBRSxDQUFDO1VBQ1JYLFlBQVksR0FBR0EsWUFBWSxDQUFDOUQsTUFBTSxDQUFDZ0UsVUFBVSxDQUFDO1FBQ2hEO1FBRUEsS0FBQVQsc0JBQUEsR0FBSSxJQUFJLENBQUMzRyxLQUFLLENBQUNtSCxXQUFXLGNBQUFSLHNCQUFBLGVBQXRCQSxzQkFBQSxDQUF3Qm9CLFdBQVcsRUFBRTtVQUN2Q2IsWUFBWSxHQUFHQSxZQUFZLENBQUM5RCxNQUFNLENBQUMsSUFBSSxDQUFDcEQsS0FBSyxDQUFDbUgsV0FBVyxDQUFDWSxXQUFXLENBQUM7UUFDeEU7UUFFQSxJQUFJZixXQUFXLEVBQUU7VUFDZkUsWUFBWSxDQUFDcEssSUFBSSxDQUNmLElBQUlrTCx5QkFBaUIsQ0FBQztZQUNwQjNFLEVBQUUsRUFBRTRFLDhCQUFhO1lBQ2pCQyxTQUFTLEVBQUVDLGVBQVMsQ0FBQ0MsSUFBSTtZQUN6QkMsSUFBSSxFQUFFLENBQUNyQixXQUFXLENBQUM7WUFDbkJzQixjQUFjLEVBQUUsU0FBQUEsZUFBQ0QsSUFBSSxFQUFFRSxPQUFPO2NBQUEsT0FBS0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQUE7WUFDekRDLFVBQVUsRUFBRSxTQUFBQSxXQUFBQyxDQUFDO2NBQUEsT0FBSUEsQ0FBQztZQUFBO1lBQ2xCQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHO1VBQ25DLENBQUMsQ0FDSCxDQUFDO1FBQ0g7UUFFQSxJQUFJNUIsUUFBUSxDQUFDNkIsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEVBQUU7VUFDOUN6QixZQUFZLENBQUNwSyxJQUFJLENBQ2YsSUFBSThMLDBCQUFtQixDQUFDO1lBQ3RCdkYsRUFBRSxFQUFFLHVCQUF1QjtZQUMzQjBELFlBQVksRUFBWkEsWUFBWTtZQUNaOEIsbUJBQW1CLEVBQUUvQixRQUFRLENBQUMrQixtQkFBbUI7WUFDakRDLGNBQWMsRUFBRTtjQUNkSixZQUFZLEVBQUU1QixRQUFRLENBQUMrQjtZQUN6QjtVQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0g7O1FBRUE7UUFDQSxJQUFNRSxXQUFXLEdBQUcsSUFBSSxDQUFDbEUsWUFBWTtRQUNyQyxJQUFNbUUsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBQTtVQUFBLE9BQVVELFdBQVcsQ0FBQzNELE9BQU8sR0FBRyxLQUFLO1FBQUEsQ0FBQztRQUU1RCxvQkFDRTlMLE1BQUEsWUFBQTJQLGFBQUEsQ0FBQ3JQLE9BQUEsV0FBTSxNQUFBc1AsU0FBQTtVQUNMQyxVQUFVLEVBQUU7UUFBSyxHQUNiLElBQUksQ0FBQ25KLEtBQUssQ0FBQ21ILFdBQVc7VUFDMUJpQyxTQUFTLEVBQUU7WUFBQ0MscUJBQXFCLEVBQUU7VUFBSSxDQUFFO1VBQ3pDdEYsU0FBUyxFQUFFOEMsUUFBUztVQUNwQnRDLGlCQUFpQixFQUFFLFNBQUFBLGtCQUFBK0UsS0FBQSxFQUFpQjtZQUFBLElBQWZ2RixTQUFTLEdBQUF1RixLQUFBLENBQVR2RixTQUFTO1lBQzVCO1lBQ0EsSUFBSSxDQUFDZ0YsV0FBVyxDQUFDM0QsT0FBTyxJQUFJckIsU0FBUyxDQUFDL0UsS0FBSyxHQUFHLENBQUMsSUFBSStFLFNBQVMsQ0FBQzlFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Y0FDdkU4SixXQUFXLENBQUMzRCxPQUFPLEdBQUcsSUFBSTtjQUMxQnNCLE1BQUksQ0FBQzZDLGlCQUFpQixDQUFDeEYsU0FBUyxDQUFDO1lBQ25DO1VBQ0YsQ0FBRTtVQUNGVixFQUFFLEVBQUMsd0JBQXdCO1VBQzNCM0MsTUFBTSxFQUFFd0csWUFBYTtVQUNyQnNDLGNBQWMsRUFBRSxTQUFBQSxlQUFBQyxJQUFJLEVBQUk7WUFDdEJULGdCQUFnQixDQUFDLENBQUM7WUFDbEJ0QyxNQUFJLENBQUNnRCxlQUFlLENBQUNELElBQUksQ0FBQztVQUM1QjtVQUNBO1VBQUE7VUFDQUUsT0FBTyxFQUFFLFNBQUFBLFFBQUFDLElBQUksRUFBSTtZQUNmN0gsZUFBZSxDQUFDOEgsWUFBWSxDQUFDRCxJQUFJLENBQUM7WUFDbEMzQyxhQUFhLENBQUM3QixPQUFPLEdBQUc7Y0FBQzZCLGFBQWEsRUFBRTJDLElBQUksQ0FBQ0U7WUFBSyxDQUFDO1VBQ3JELENBQUU7VUFDRkMsT0FBTyxFQUFFaEksZUFBZSxDQUFDQyxZQUFhO1VBQ3RDZ0ksV0FBVyxFQUFFLFNBQUFBLFlBQUEsRUFBTTtZQUNqQi9DLGFBQWEsQ0FBQzdCLE9BQU8sR0FBRyxJQUFJO1VBQzlCLENBQUU7VUFDRjZFLE9BQU8sRUFBRSxJQUFJLENBQUNDLFlBQWE7VUFDM0JDLEdBQUcsRUFBRSxTQUFBQSxJQUFBQyxJQUFJLEVBQUk7WUFDWCxJQUFJQSxJQUFJLElBQUlBLElBQUksQ0FBQ0MsSUFBSSxJQUFJRCxJQUFJLENBQUNDLElBQUksS0FBSzNELE1BQUksQ0FBQy9CLEtBQUssRUFBRTtjQUNqRCtCLE1BQUksQ0FBQy9CLEtBQUssR0FBR3lGLElBQUksQ0FBQ0MsSUFBSTtZQUN4QjtVQUNGLENBQUU7VUFDRkMsa0JBQWtCLEVBQUUsU0FBQUEsbUJBQUEzSCxFQUFFO1lBQUEsT0FBSStELE1BQUksQ0FBQ2Ysa0JBQWtCLENBQUNoRCxFQUFFLENBQUM7VUFBQSxDQUFDO1VBQ3RENEgsV0FBVyxFQUFFLFNBQUFBLFlBQUFDLEtBQUEsRUFBdUI7WUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQTtZQUFBLElBQXJCM0gsS0FBSyxHQUFBeUgsS0FBQSxDQUFMekgsS0FBSztjQUFFaUQsUUFBUSxHQUFBd0UsS0FBQSxDQUFSeEUsUUFBUTtZQUM1QixJQUNFMkUsS0FBSyxFQUFBRixxQkFBQSxHQUFDMUgsS0FBSyxDQUFDL0MsS0FBSyxDQUFDNEssZ0JBQWdCLGNBQUFILHFCQUFBLHVCQUE1QkEscUJBQUEsQ0FBOEJJLEdBQUcsQ0FBQyxJQUN4Q0YsS0FBSyxFQUFBRCxzQkFBQSxHQUFDM0gsS0FBSyxDQUFDL0MsS0FBSyxDQUFDNEssZ0JBQWdCLGNBQUFGLHNCQUFBLHVCQUE1QkEsc0JBQUEsQ0FBOEJJLEdBQUcsQ0FBQyxFQUN4QztjQUNBLE9BQU8sSUFBSTtZQUNiO1lBQ0EsSUFBTUMsZ0JBQWdCLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDcEUsUUFBUSxDQUFDcUUsSUFBSSxDQUFDO1lBRWxELE9BQ0VuSSxLQUFLLENBQUMvQyxLQUFLLENBQUM0SyxnQkFBZ0IsQ0FBQ0MsR0FBRyxJQUFJRSxnQkFBZ0IsSUFDcERoSSxLQUFLLENBQUMvQyxLQUFLLENBQUM0SyxnQkFBZ0IsQ0FBQ0UsR0FBRyxJQUFJQyxnQkFBZ0I7VUFFeEQ7UUFBRSxFQUNILENBQUM7TUFFTjtJQUFDO01BQUEvRixHQUFBO01BQUFDLEtBQUEsRUE0QkQ7TUFDQSxTQUFBa0csV0FBQSxFQUFhO1FBQ1gsSUFBQUMsWUFBQSxHQWlCSSxJQUFJLENBQUNwTCxLQUFLO1VBaEJaNkcsUUFBUSxHQUFBdUUsWUFBQSxDQUFSdkUsUUFBUTtVQUNSQyxRQUFRLEdBQUFzRSxZQUFBLENBQVJ0RSxRQUFRO1VBQ1J0RyxlQUFlLEdBQUE0SyxZQUFBLENBQWY1SyxlQUFlO1VBQ2ZFLE1BQU0sR0FBQTBLLFlBQUEsQ0FBTjFLLE1BQU07VUFDTjJLLFlBQVksR0FBQUQsWUFBQSxDQUFaQyxZQUFZO1VBQ1pDLFFBQVEsR0FBQUYsWUFBQSxDQUFSRSxRQUFRO1VBQ1JDLFdBQVcsR0FBQUgsWUFBQSxDQUFYRyxXQUFXO1VBQ1hoTCxRQUFRLEdBQUE2SyxZQUFBLENBQVI3SyxRQUFRO1VBQ1JpTCxNQUFNLEdBQUFKLFlBQUEsQ0FBTkksTUFBTTtVQUNONUgsY0FBYyxHQUFBd0gsWUFBQSxDQUFkeEgsY0FBYztVQUNkN0IsZUFBZSxHQUFBcUosWUFBQSxDQUFmckosZUFBZTtVQUNmMEosaUJBQWlCLEdBQUFMLFlBQUEsQ0FBakJLLGlCQUFpQjtVQUNqQkMsTUFBTSxHQUFBTixZQUFBLENBQU5NLE1BQU07VUFDTm5KLEtBQUssR0FBQTZJLFlBQUEsQ0FBTDdJLEtBQUs7VUFDTGpDLE9BQU8sR0FBQThLLFlBQUEsQ0FBUDlLLE9BQU87VUFDUHFMLGlCQUFpQixHQUFBUCxZQUFBLENBQWpCTyxpQkFBaUI7UUFHbkIsSUFBTTdGLGNBQWMsR0FBRyxJQUFJLENBQUNqRSxzQkFBc0IsQ0FBQyxJQUFJLENBQUM3QixLQUFLLENBQUM7UUFDOUQsSUFBTXVHLGFBQWEsR0FBRyxJQUFJLENBQUNxRixxQkFBcUIsQ0FBQyxJQUFJLENBQUM1TCxLQUFLLENBQUM7UUFFNUQsSUFBTTZMLFFBQVEsR0FBQTdPLGFBQUEsQ0FBQUEsYUFBQSxLQUNUNkosUUFBUTtVQUNYN0gsS0FBSyxFQUFFLE1BQU07VUFDYkMsTUFBTSxFQUFFLE1BQU07VUFDZG9LLHFCQUFxQixFQUFFLElBQUk7VUFDM0J5QyxnQkFBZ0IsRUFBaEJBLDhCQUFnQjtVQUNoQkgsaUJBQWlCLEVBQWpCQTtRQUFpQixFQUNsQjtRQUVELElBQU1JLE9BQU8sR0FBR2pPLE9BQU8sQ0FBQytJLFFBQVEsQ0FBQ2tGLE9BQU8sQ0FBQztRQUV6QyxvQkFDRXpTLE1BQUEsWUFBQTJQLGFBQUEsQ0FBQTNQLE1BQUEsWUFBQTBTLFFBQUEscUJBQ0UxUyxNQUFBLFlBQUEyUCxhQUFBLENBQUN0SixVQUFVO1VBQ1QyTCxRQUFRLEVBQUVBLFFBQVM7VUFDbkJXLGdCQUFnQixFQUFFbFEsTUFBTSxDQUFDVSxJQUFJLENBQUN5UCxxQkFBWSxDQUFFO1VBQzVDQyxVQUFVLEVBQUV0RixRQUFRLENBQUNzRixVQUFXO1VBQ2hDSixPQUFPLEVBQUVBLE9BQVE7VUFDakJ6TCxPQUFPLEVBQUVBLE9BQVE7VUFDakJDLFFBQVEsRUFBRUEsUUFBUztVQUNuQkcsTUFBTSxFQUFFQSxNQUFPO1VBQ2ZvRixjQUFjLEVBQUVBLGNBQWU7VUFDL0J0RCxRQUFRLEVBQUVELEtBQU07VUFDaEJnSixXQUFXLEVBQUVBLFdBQVk7VUFDekJhLFFBQVEsRUFBRSxJQUFJLENBQUNwTSxLQUFLLENBQUNvTSxRQUFTO1VBQzlCQyxLQUFLLEVBQUV4RixRQUFRLENBQUN3RixLQUFLLElBQUksQ0FBRTtVQUMzQm5OLEdBQUcsRUFBRXVNLGlCQUFpQixDQUFDYSxRQUFRLElBQUliLGlCQUFpQixDQUFDYSxRQUFRLENBQUNDLE9BQU8sR0FBRyxFQUFFLEdBQUcsQ0FBRTtVQUMvRWIsTUFBTSxFQUFFQSxNQUFPO1VBQ2ZGLE1BQU0sRUFBRUEsTUFBTztVQUNmZ0IsbUJBQW1CLEVBQUVoTSxlQUFlLENBQUNpTSxpQkFBa0I7VUFDdkRDLGdCQUFnQixFQUFFbE0sZUFBZSxDQUFDbU0sY0FBZTtVQUNqREMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDQyxxQkFBc0I7VUFDN0NDLGtCQUFrQixFQUFFLElBQUksQ0FBQ0MsaUJBQWtCO1VBQzNDQyxlQUFlLEVBQUVqTCxlQUFlLENBQUNrTCxhQUFjO1VBQy9DQyxXQUFXLEVBQUV0SixjQUFjLENBQUN1SixTQUFVO1VBQ3RDQyx3QkFBd0IsRUFBRXJMLGVBQWUsQ0FBQ3NMO1FBQXVCLENBQ2xFLENBQUMsZUFDRi9ULE1BQUEsWUFBQTJQLGFBQUEsQ0FBQ29DLFlBQVksTUFBQW5DLFNBQUEsaUJBQUsyQyxRQUFRO1VBQUU3RyxHQUFHLEVBQUMsUUFBUTtVQUFDOEIsUUFBUSxFQUFFQSxRQUFRLENBQUN3RztRQUFlLElBQ3hFclAsVUFBVSxJQUFJLElBQUFzUCxtQ0FBc0IsRUFBQyxDQUFDLEVBQ3RDLElBQUksQ0FBQ2pILGtCQUFrQixDQUFDQyxhQUFhLENBQzFCLENBQUMsRUFDZCxJQUFJLENBQUNWLGlCQUFpQixDQUFDQyxjQUFjLENBQ3RDLENBQUM7TUFFUDtJQUFDO01BQUFkLEdBQUE7TUFBQUMsS0FBQSxFQUVELFNBQUF1SSxPQUFBLEVBQVM7UUFBQSxJQUFBQyxZQUFBO1FBQ1AsSUFBQUMsWUFBQSxHQUE2QixJQUFJLENBQUMxTixLQUFLO1VBQWhDNkcsUUFBUSxHQUFBNkcsWUFBQSxDQUFSN0csUUFBUTtVQUFFQyxRQUFRLEdBQUE0RyxZQUFBLENBQVI1RyxRQUFRO1FBQ3pCLElBQU01RCxXQUFXLElBQUF1SyxZQUFBLEdBQUcsSUFBSSxDQUFDakksS0FBSyxjQUFBaUksWUFBQSx1QkFBVkEsWUFBQSxDQUFZdkssV0FBVztRQUUzQyxJQUFJQSxXQUFXLEVBQUU7VUFDZixPQUFPLElBQUk7UUFDYjtRQUVBLG9CQUNFNUosTUFBQSxZQUFBMlAsYUFBQSxDQUFDN08saUJBQUEsQ0FBQXVULGtCQUFrQjtVQUFDeEQsR0FBRyxFQUFFLElBQUksQ0FBQ3pILElBQUs7VUFBQ2tMLEtBQUssRUFBRWhQLFNBQVMsQ0FBQ0MsU0FBVTtVQUFDZ1AsS0FBSyxFQUFFaEgsUUFBUSxDQUFDZ0g7UUFBTSxHQUNuRi9HLFFBQVEsQ0FBQ3dHLGNBQWMsSUFBSSxJQUFJLENBQUNuQyxVQUFVLENBQUMsQ0FDMUIsQ0FBQztNQUV6QjtJQUFDO0lBQUEsT0FBQXRMLFlBQUE7RUFBQSxFQXpad0JpTyxnQkFBUztFQUFBLElBQUExUSxnQkFBQSxhQUE5QnlDLFlBQVksZUFDRztJQUNqQjtJQUNBeUwsUUFBUSxFQUFFeUMscUJBQVMsQ0FBQ0MsTUFBTTtJQUMxQnZDLGlCQUFpQixFQUFFc0MscUJBQVMsQ0FBQ0MsTUFBTSxDQUFDQyxVQUFVO0lBQzlDcEwsYUFBYSxFQUFFa0wscUJBQVMsQ0FBQ0csTUFBTSxDQUFDRCxVQUFVO0lBQzFDcE4sVUFBVSxFQUFFa04scUJBQVMsQ0FBQ0ksT0FBTyxDQUFDSixxQkFBUyxDQUFDSyxHQUFHLENBQUMsQ0FBQ0gsVUFBVTtJQUN2RHROLFNBQVMsRUFBRW9OLHFCQUFTLENBQUNJLE9BQU8sQ0FBQ0oscUJBQVMsQ0FBQ0ssR0FBRyxDQUFDLENBQUNILFVBQVU7SUFDdER2TixNQUFNLEVBQUVxTixxQkFBUyxDQUFDSSxPQUFPLENBQUNKLHFCQUFTLENBQUNLLEdBQUcsQ0FBQyxDQUFDSCxVQUFVO0lBQ25EM00sT0FBTyxFQUFFeU0scUJBQVMsQ0FBQ0ksT0FBTyxDQUFDSixxQkFBUyxDQUFDSyxHQUFHLENBQUMsQ0FBQ0gsVUFBVTtJQUNwRHBILFFBQVEsRUFBRWtILHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUNyQzFDLFdBQVcsRUFBRXdDLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUN4Q25ILFFBQVEsRUFBRWlILHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUNyQ2xILFlBQVksRUFBRWdILHFCQUFTLENBQUNHLE1BQU07SUFDOUJuTSxlQUFlLEVBQUVnTSxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDNUN6TixlQUFlLEVBQUV1TixxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDNUNySyxjQUFjLEVBQUVtSyxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFFM0M7SUFDQTNOLE9BQU8sRUFBRXlOLHFCQUFTLENBQUNNLElBQUk7SUFBRTtJQUN6QmpDLFFBQVEsRUFBRTJCLHFCQUFTLENBQUNNLElBQUk7SUFDeEI5TixRQUFRLEVBQUV3TixxQkFBUyxDQUFDTSxJQUFJO0lBQ3hCQyxPQUFPLEVBQUVQLHFCQUFTLENBQUNDLE1BQU07SUFDekJPLFNBQVMsRUFBRVIscUJBQVMsQ0FBQ0MsTUFBTTtJQUMzQnBOLFNBQVMsRUFBRW1OLHFCQUFTLENBQUNDLE1BQU07SUFDM0JwQixnQkFBZ0IsRUFBRW1CLHFCQUFTLENBQUNTLElBQUk7SUFDaENDLGdCQUFnQixFQUFFVixxQkFBUyxDQUFDUyxJQUFJO0lBQ2hDN0MsaUJBQWlCLEVBQUVvQyxxQkFBUyxDQUFDUyxJQUFJO0lBQ2pDRSxZQUFZLEVBQUVYLHFCQUFTLENBQUNTLElBQUk7SUFDNUJqTSxLQUFLLEVBQUV3TCxxQkFBUyxDQUFDWSxNQUFNO0lBQ3ZCN04sYUFBYSxFQUFFaU4scUJBQVMsQ0FBQ0M7RUFDM0IsQ0FBQztFQUFBLElBQUE1USxnQkFBQSxhQS9CR3lDLFlBQVksa0JBaUNNO0lBQ3BCd0wsWUFBWSxFQUFFdUQsc0JBQVc7SUFDekJ6SCxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2Y1RSxLQUFLLEVBQUUsQ0FBQztJQUNSakMsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQXNYSFQsWUFBWSxDQUFDZ1AsV0FBVyxHQUFHLGNBQWM7RUFFekMsT0FBT2hQLFlBQVk7QUFDckIifQ==
|