@renaissancerentals/renaissance-component 12.1.53 → 12.1.55

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.
@@ -12,12 +12,13 @@ var _AssetService = require("../asset/service/AssetService");
12
12
  var _RenaissanceData = require("../data/RenaissanceData");
13
13
  var _GalleryHeroSkeleton = require("../gallery/GalleryHeroSkeleton");
14
14
  var _GalleryModal = require("../gallery/GalleryModal");
15
- var _GalleryHeroMain = require("../gallery/GalleryHeroMain");
16
15
  var _GalleryHeroMobile = require("../gallery/GalleryHeroMobile");
17
16
  var _VideoTours = require("../gallery/VideoTours");
18
17
  var _VirtualTour = require("../gallery/VirtualTour");
19
18
  var _HeroBadgeStats = require("../floorplan/section/HeroBadgeStats");
20
19
  var _AssetModal = require("../asset/AssetModal");
20
+ var _GridGalleryCover = require("../gallery/GridGalleryCover");
21
+ var _GridGallery = require("../gallery/GridGallery");
21
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
24
  const ShortTermFloorplanHero = _ref => {
@@ -32,14 +33,16 @@ const ShortTermFloorplanHero = _ref => {
32
33
  const [isAssetsLoading, setIsAssetsLoading] = (0, _react.useState)(true);
33
34
  const [videoTours, setVideoTours] = (0, _react.useState)([]);
34
35
  const [virtualTour, setVirtualTour] = (0, _react.useState)(undefined);
36
+ const [videoTourImageBackground, setVideoTourImageBackground] = (0, _react.useState)();
37
+ const [virtualTourImageBackground, setVirtualTourImageBackground] = (0, _react.useState)();
35
38
  const [showFloorplanModal, setShowFloorplanModal] = (0, _react.useState)(false);
36
39
  const [totalPages, setTotalPages] = (0, _react.useState)(1);
37
- const [toursCount, setToursCount] = (0, _react.useState)(0);
40
+ const [toursCount, setToursCount] = (0, _react.useState)(1);
38
41
  const [currentView, setCurrentView] = (0, _react.useState)("photo");
39
42
  const [assetInFocus, setAssetInFocus] = (0, _react.useState)({});
40
43
  const [assetIndex, setAssetIndex] = (0, _react.useState)(0);
41
44
  const [showModal, setShowModal] = (0, _react.useState)(false);
42
- const FIRST_PAGE_ASSET_COUNT = 5;
45
+ const [firstPageImageCount, setFirstPageImageCount] = (0, _react.useState)(4);
43
46
  const GRID_SIZE = 8;
44
47
  const imageClickedHandler = image => {
45
48
  setShowModal(true);
@@ -51,50 +54,64 @@ const ShortTermFloorplanHero = _ref => {
51
54
  setAssetInFocus({});
52
55
  };
53
56
  (0, _react.useEffect)(() => {
54
- if (floorplan.virtualTourLink) setVirtualTour(floorplan.virtualTourLink);
55
- const tourLinks = [];
56
- if (floorplan.videoTourLink) tourLinks.push(floorplan.videoTourLink);
57
- if (floorplan.threeSixtyVideoTourLink) tourLinks.push(floorplan.threeSixtyVideoTourLink);
58
- setVideoTours(tourLinks);
59
- let otherAssetCounts = (tourLinks.length > 0 ? 1 : 0) + (floorplan.virtualTourLink ? 1 : 0);
60
- setToursCount(otherAssetCounts);
61
57
  const images = [];
62
58
  images.push({
63
59
  id: (0, _Utils.extractIdFrom)(floorplan.coverImage),
64
60
  name: "cover image"
65
61
  });
62
+ let firstPageCount = firstPageImageCount;
66
63
  if (floorplan.photosFolderId) {
67
64
  (0, _AssetService.getAssetsFrom)(floorplan.photosFolderId).then(galleryAssets => {
65
+ if (galleryAssets.length > 0) images.pop();
68
66
  images.push(...galleryAssets);
69
- let totalAssets = images.length + otherAssetCounts;
70
- if (totalAssets > FIRST_PAGE_ASSET_COUNT) {
71
- let pages = Math.trunc((totalAssets - FIRST_PAGE_ASSET_COUNT) / GRID_SIZE + 1);
72
- if ((totalAssets - FIRST_PAGE_ASSET_COUNT - 1) % GRID_SIZE === 0) {
73
- setTotalPages(pages);
74
- } else setTotalPages(pages + 1);
67
+ if (images.length > 1) {
68
+ const backgroundImageUrl = (0, _AssetService.assetUrlFrom)(images[1].id, floorplan.property.id);
69
+ if (floorplan.virtualTourLink) {
70
+ setVirtualTour(floorplan.virtualTourLink);
71
+ setVirtualTourImageBackground(backgroundImageUrl);
72
+ firstPageCount -= 1;
73
+ }
74
+ const tourLinks = [];
75
+ if (floorplan.videoTourLink) tourLinks.push(floorplan.videoTourLink);
76
+ if (floorplan.threeSixtyVideoTourLink) tourLinks.push(floorplan.threeSixtyVideoTourLink);
77
+ setVideoTours(tourLinks);
78
+ if (tourLinks.length > 0) {
79
+ setVideoTourImageBackground(backgroundImageUrl);
80
+ firstPageCount -= 1;
81
+ }
82
+ let otherAssetCounts = (tourLinks.length > 0 ? 1 : 0) + (floorplan.virtualTourLink ? 1 : 0);
83
+ setToursCount(otherAssetCounts);
75
84
  }
76
85
  }).finally(() => {
86
+ let pages = 1;
87
+ if (images.length > firstPageCount) {
88
+ const remaining = images.length - firstPageCount;
89
+ pages += remaining / 8;
90
+ if (remaining % 8 > 0) pages += 1;
91
+ }
92
+ setTotalPages(Math.trunc(pages));
93
+ setFirstPageImageCount(firstPageCount);
77
94
  setAssets(images);
78
95
  setIsAssetsLoading(false);
79
96
  });
80
97
  } else {
81
98
  setAssets(images);
82
- console.log(images);
83
99
  setIsAssetsLoading(false);
84
100
  }
85
101
  }, [floorplan]);
86
- const isFirstSliderPage = slideIndex => slideIndex === 0;
87
- const imageCountForFirstPage = () => FIRST_PAGE_ASSET_COUNT - toursCount;
88
- const getImagesForFirstSliderPage = assets.slice(0, assets.length >= imageCountForFirstPage() ? imageCountForFirstPage() : assets.length);
89
- const assetsToShow = slideIndex => {
90
- if (isFirstSliderPage(slideIndex)) return getImagesForFirstSliderPage;
91
- const startIndex = imageCountForFirstPage() + (slideIndex - 1) * 8;
92
- const endIndex = startIndex + GRID_SIZE;
93
- return assets.slice(startIndex, endIndex);
94
- };
95
102
  const printFloorplanAddress = () => {
96
103
  return floorplan.address + ", " + _RenaissanceData.renaissance.city + ", " + _RenaissanceData.renaissance.state + " " + floorplan.zipcode;
97
104
  };
105
+ const isFirstSliderPage = slideIndex => slideIndex === 0;
106
+ const assetsToShow = slideIndex => {
107
+ if (isFirstSliderPage(slideIndex)) {
108
+ console.log("firstPageImageCount", firstPageImageCount);
109
+ return assets.slice(0, firstPageImageCount - 1);
110
+ }
111
+ const startIndex = firstPageImageCount - 1 + GRID_SIZE * (slideIndex - 1);
112
+ const endIndex = firstPageImageCount - 1 + GRID_SIZE * slideIndex;
113
+ return assets.slice(startIndex, endIndex > assets.length ? assets.length : endIndex);
114
+ };
98
115
  return /*#__PURE__*/_react.default.createElement("section", {
99
116
  className: "section-short-term-floorplan--hero"
100
117
  }, isAssetsLoading ? /*#__PURE__*/_react.default.createElement(_GalleryHeroSkeleton.GalleryHeroSkeleton, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
@@ -111,16 +128,27 @@ const ShortTermFloorplanHero = _ref => {
111
128
  }), currentView === "photo" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
112
129
  className: "photo-view main"
113
130
  }, /*#__PURE__*/_react.default.createElement(_muncherUi.ItemSlider, {
114
- sliderItems: [...Array(totalPages)].map((x, i) => /*#__PURE__*/_react.default.createElement(_GalleryHeroMain.GalleryHeroMain, {
115
- isAvailableNow: false,
116
- virtualTour: virtualTour,
117
- isFirst: i === 0,
118
- toursCount: toursCount,
131
+ sliderItems: [...Array(totalPages)].map((x, i) => i == 0 ? /*#__PURE__*/_react.default.createElement(_GridGalleryCover.GridGalleryCover, {
132
+ assets: assetsToShow(i),
133
+ floorplanAddress: {
134
+ address: floorplan.address,
135
+ city: _RenaissanceData.renaissance.city,
136
+ state: _RenaissanceData.renaissance.state,
137
+ zipcode: floorplan.zipcode
138
+ },
139
+ propertyId: floorplan.property.id,
140
+ heroImage: assets[0],
141
+ imageClickedHandler: imageClickedHandler,
119
142
  webSpecials: webSpecials,
143
+ isAvailableNow: false,
120
144
  setCurrentView: setCurrentView,
145
+ videoTourImageBackground: videoTourImageBackground,
146
+ virtualTourImageBackground: virtualTourImageBackground,
147
+ showOnlyHeroImage: assets.length === 1
148
+ }) : /*#__PURE__*/_react.default.createElement(_GridGallery.GridGallery, {
121
149
  imageClickedHandler: imageClickedHandler,
122
- assetsToShow: assetsToShow(i),
123
- propertyId: floorplan.property.id
150
+ propertyId: floorplan.property.id,
151
+ assets: assetsToShow(i)
124
152
  }))
125
153
  })), /*#__PURE__*/_react.default.createElement("div", {
126
154
  className: "photo-view mobile"
@@ -133,9 +161,9 @@ const ShortTermFloorplanHero = _ref => {
133
161
  webSpecials: webSpecials,
134
162
  isAvailableNow: false,
135
163
  propertyId: floorplan.property.id
136
- }))) : "", currentView === "video tour" ? /*#__PURE__*/_react.default.createElement(_VideoTours.VideoTours, {
164
+ }))) : "", currentView === "Video Tour" ? /*#__PURE__*/_react.default.createElement(_VideoTours.VideoTours, {
137
165
  videoTourUrls: videoTours
138
- }) : "", currentView === "virtual tour" ? /*#__PURE__*/_react.default.createElement(_VirtualTour.VirtualTour, {
166
+ }) : "", currentView === "Virtual Tour" ? /*#__PURE__*/_react.default.createElement(_VirtualTour.VirtualTour, {
139
167
  virtualTourUrl: virtualTour
140
168
  }) : "", /*#__PURE__*/_react.default.createElement(_HeroBadgeStats.HeroBadgeStats, {
141
169
  currentView: currentView,
@@ -195,4 +223,4 @@ const ShortTermFloorplanHero = _ref => {
195
223
  }))))));
196
224
  };
197
225
  exports.ShortTermFloorplanHero = ShortTermFloorplanHero;
198
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX1V0aWxzIiwiX0Fzc2V0U2VydmljZSIsIl9SZW5haXNzYW5jZURhdGEiLCJfR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIl9HYWxsZXJ5TW9kYWwiLCJfR2FsbGVyeUhlcm9NYWluIiwiX0dhbGxlcnlIZXJvTW9iaWxlIiwiX1ZpZGVvVG91cnMiLCJfVmlydHVhbFRvdXIiLCJfSGVyb0JhZGdlU3RhdHMiLCJfQXNzZXRNb2RhbCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlNob3J0VGVybUZsb29ycGxhbkhlcm8iLCJfcmVmIiwiZmxvb3JwbGFuIiwiY29udGFjdENsaWNrSGFuZGxlciIsImFwcGx5Q2xpY2tIYW5kbGVyIiwiaGFuZGxlUmVmVG9NYXAiLCJ3ZWJTcGVjaWFscyIsImFzc2V0cyIsInNldEFzc2V0cyIsInVzZVN0YXRlIiwiaXNBc3NldHNMb2FkaW5nIiwic2V0SXNBc3NldHNMb2FkaW5nIiwidmlkZW9Ub3VycyIsInNldFZpZGVvVG91cnMiLCJ2aXJ0dWFsVG91ciIsInNldFZpcnR1YWxUb3VyIiwidW5kZWZpbmVkIiwic2hvd0Zsb29ycGxhbk1vZGFsIiwic2V0U2hvd0Zsb29ycGxhbk1vZGFsIiwidG90YWxQYWdlcyIsInNldFRvdGFsUGFnZXMiLCJ0b3Vyc0NvdW50Iiwic2V0VG91cnNDb3VudCIsImN1cnJlbnRWaWV3Iiwic2V0Q3VycmVudFZpZXciLCJhc3NldEluRm9jdXMiLCJzZXRBc3NldEluRm9jdXMiLCJhc3NldEluZGV4Iiwic2V0QXNzZXRJbmRleCIsInNob3dNb2RhbCIsInNldFNob3dNb2RhbCIsIkZJUlNUX1BBR0VfQVNTRVRfQ09VTlQiLCJHUklEX1NJWkUiLCJpbWFnZUNsaWNrZWRIYW5kbGVyIiwiaW1hZ2UiLCJmaW5kSW5kZXgiLCJ2YWx1ZSIsImlkIiwibW9kYWxDbG9zZUhhbmRsZXIiLCJ1c2VFZmZlY3QiLCJ2aXJ0dWFsVG91ckxpbmsiLCJ0b3VyTGlua3MiLCJ2aWRlb1RvdXJMaW5rIiwicHVzaCIsInRocmVlU2l4dHlWaWRlb1RvdXJMaW5rIiwib3RoZXJBc3NldENvdW50cyIsImxlbmd0aCIsImltYWdlcyIsImV4dHJhY3RJZEZyb20iLCJjb3ZlckltYWdlIiwibmFtZSIsInBob3Rvc0ZvbGRlcklkIiwiZ2V0QXNzZXRzRnJvbSIsInRoZW4iLCJnYWxsZXJ5QXNzZXRzIiwidG90YWxBc3NldHMiLCJwYWdlcyIsIk1hdGgiLCJ0cnVuYyIsImZpbmFsbHkiLCJjb25zb2xlIiwibG9nIiwiaXNGaXJzdFNsaWRlclBhZ2UiLCJzbGlkZUluZGV4IiwiaW1hZ2VDb3VudEZvckZpcnN0UGFnZSIsImdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZSIsInNsaWNlIiwiYXNzZXRzVG9TaG93Iiwic3RhcnRJbmRleCIsImVuZEluZGV4IiwicHJpbnRGbG9vcnBsYW5BZGRyZXNzIiwiYWRkcmVzcyIsInJlbmFpc3NhbmNlIiwiY2l0eSIsInN0YXRlIiwiemlwY29kZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJHYWxsZXJ5SGVyb1NrZWxldG9uIiwiRnJhZ21lbnQiLCJHYWxsZXJ5TW9kYWwiLCJwcm9wZXJ0eUlkIiwicHJvcGVydHkiLCJJdGVtU2xpZGVyIiwic2xpZGVySXRlbXMiLCJBcnJheSIsIm1hcCIsIngiLCJHYWxsZXJ5SGVyb01haW4iLCJpc0F2YWlsYWJsZU5vdyIsImlzRmlyc3QiLCJHYWxsZXJ5SGVyb01vYmlsZSIsIlZpZGVvVG91cnMiLCJ2aWRlb1RvdXJVcmxzIiwiVmlydHVhbFRvdXIiLCJ2aXJ0dWFsVG91clVybCIsIkhlcm9CYWRnZVN0YXRzIiwiQXNzZXRNb2RhbCIsImFzc2V0VXJsIiwicGhvdG8iLCJhc3NldFRpdGxlIiwic2hvcnRUZXJtIiwicHJpY2VGb3I0YW5kTW9yZU1vbnRocyIsInByaWNlRm9yNVRvMTNEYXlzIiwiQnV0dG9uIiwic2l6ZSIsIm9uQ2xpY2siLCJJY29uIiwib3JpZW50YXRpb24iLCJidXNSb3V0ZXMiLCJidXNSb3V0ZSIsImluZGV4Iiwia2V5IiwiaHJlZiIsImJ1c1JvdXRlTGluayIsInRhcmdldCIsInJlbCIsInZhcmlhbnQiLCJTaGFyZUJ1dHRvbiIsInRpdGxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaG9ydC10ZXJtL1Nob3J0VGVybUZsb29ycGxhbkhlcm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hc3NldHMvU2hvcnRUZXJtRmxvb3JwbGFuSGVyby5zY3NzXCI7XG5pbXBvcnQge0J1dHRvbiwgSWNvbiwgSXRlbVNsaWRlciwgU2hhcmVCdXR0b259IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7Rmxvb3JwbGFuU2hvcnRUZXJtfSBmcm9tIFwiLi9kYXRhL1Nob3J0VGVybVwiO1xuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4uL2Fzc2V0L2RhdGEvQXNzZXRcIjtcbmltcG9ydCB7ZXh0cmFjdElkRnJvbX0gZnJvbSBcIi4uL3V0aWxzL1V0aWxzXCI7XG5pbXBvcnQge2dldEFzc2V0c0Zyb219IGZyb20gXCIuLi9hc3NldC9zZXJ2aWNlL0Fzc2V0U2VydmljZVwiO1xuaW1wb3J0IHtXZWJTcGVjaWFsfSBmcm9tIFwiLi4vZmxvb3JwbGFuL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge3JlbmFpc3NhbmNlfSBmcm9tIFwiLi4vZGF0YS9SZW5haXNzYW5jZURhdGFcIjtcbmltcG9ydCB7R2FsbGVyeUhlcm9Ta2VsZXRvbn0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeUhlcm9Ta2VsZXRvblwiO1xuaW1wb3J0IHtHYWxsZXJ5TW9kYWx9IGZyb20gXCIuLi9nYWxsZXJ5L0dhbGxlcnlNb2RhbFwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb01haW59IGZyb20gXCIuLi9nYWxsZXJ5L0dhbGxlcnlIZXJvTWFpblwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb01vYmlsZX0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeUhlcm9Nb2JpbGVcIjtcbmltcG9ydCB7VmlkZW9Ub3Vyc30gZnJvbSBcIi4uL2dhbGxlcnkvVmlkZW9Ub3Vyc1wiO1xuaW1wb3J0IHtWaXJ0dWFsVG91cn0gZnJvbSBcIi4uL2dhbGxlcnkvVmlydHVhbFRvdXJcIjtcbmltcG9ydCB7SGVyb0JhZGdlU3RhdHN9IGZyb20gXCIuLi9mbG9vcnBsYW4vc2VjdGlvbi9IZXJvQmFkZ2VTdGF0c1wiO1xuaW1wb3J0IHtBc3NldE1vZGFsfSBmcm9tIFwiLi4vYXNzZXQvQXNzZXRNb2RhbFwiO1xuXG5leHBvcnQgY29uc3QgU2hvcnRUZXJtRmxvb3JwbGFuSGVybzogUmVhY3QuRkM8U2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzPiA9IChcbiAgICB7Zmxvb3JwbGFuLCBjb250YWN0Q2xpY2tIYW5kbGVyLCBhcHBseUNsaWNrSGFuZGxlciwgaGFuZGxlUmVmVG9NYXAsIHdlYlNwZWNpYWxzfSkgPT4ge1xuICAgIGNvbnN0IFthc3NldHMsIHNldEFzc2V0c10gPSB1c2VTdGF0ZTxBc3NldFtdPihbXSk7XG4gICAgY29uc3QgW2lzQXNzZXRzTG9hZGluZywgc2V0SXNBc3NldHNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFt2aWRlb1RvdXJzLCBzZXRWaWRlb1RvdXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XG4gICAgY29uc3QgW3ZpcnR1YWxUb3VyLCBzZXRWaXJ0dWFsVG91cl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgY29uc3QgW3Nob3dGbG9vcnBsYW5Nb2RhbCwgc2V0U2hvd0Zsb29ycGxhbk1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdG90YWxQYWdlcywgc2V0VG90YWxQYWdlc10gPSB1c2VTdGF0ZSgxKTtcbiAgICBjb25zdCBbdG91cnNDb3VudCwgc2V0VG91cnNDb3VudF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbY3VycmVudFZpZXcsIHNldEN1cnJlbnRWaWV3XSA9IHVzZVN0YXRlPFwicGhvdG9cIiB8IFwidmlydHVhbCB0b3VyXCIgfCBcInZpZGVvIHRvdXJcIj4oXCJwaG90b1wiKTtcbiAgICBjb25zdCBbYXNzZXRJbkZvY3VzLCBzZXRBc3NldEluRm9jdXNdID0gdXNlU3RhdGU8QXNzZXQ+KHt9IGFzIEFzc2V0KTtcbiAgICBjb25zdCBbYXNzZXRJbmRleCwgc2V0QXNzZXRJbmRleF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbc2hvd01vZGFsLCBzZXRTaG93TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgRklSU1RfUEFHRV9BU1NFVF9DT1VOVCA9IDU7XG4gICAgY29uc3QgR1JJRF9TSVpFID0gODtcbiAgICBjb25zdCBpbWFnZUNsaWNrZWRIYW5kbGVyID0gKGltYWdlOiBBc3NldCkgPT4ge1xuICAgICAgICBzZXRTaG93TW9kYWwodHJ1ZSk7XG4gICAgICAgIHNldEFzc2V0SW5Gb2N1cyhpbWFnZSk7XG4gICAgICAgIHNldEFzc2V0SW5kZXgoYXNzZXRzLmZpbmRJbmRleCh2YWx1ZSA9PiB2YWx1ZS5pZCA9PT0gaW1hZ2UuaWQpKTtcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsQ2xvc2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBzZXRTaG93TW9kYWwoZmFsc2UpO1xuICAgICAgICBzZXRBc3NldEluRm9jdXMoe30gYXMgQXNzZXQpO1xuICAgIH07XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGZsb29ycGxhbi52aXJ0dWFsVG91ckxpbmspXG4gICAgICAgICAgICBzZXRWaXJ0dWFsVG91cihmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rKTtcbiAgICAgICAgY29uc3QgdG91ckxpbmtzID0gW107XG4gICAgICAgIGlmIChmbG9vcnBsYW4udmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi52aWRlb1RvdXJMaW5rKTtcbiAgICAgICAgaWYgKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluayk7XG4gICAgICAgIHNldFZpZGVvVG91cnModG91ckxpbmtzKTtcblxuICAgICAgICBsZXQgb3RoZXJBc3NldENvdW50cyA9ICh0b3VyTGlua3MubGVuZ3RoID4gMCA/IDEgOiAwKSArIChmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rID8gMSA6IDApO1xuICAgICAgICBzZXRUb3Vyc0NvdW50KG90aGVyQXNzZXRDb3VudHMpO1xuICAgICAgICBjb25zdCBpbWFnZXM6IEFzc2V0W10gPSBbXTtcbiAgICAgICAgaW1hZ2VzLnB1c2goe2lkOiBleHRyYWN0SWRGcm9tKGZsb29ycGxhbi5jb3ZlckltYWdlKSwgbmFtZTogXCJjb3ZlciBpbWFnZVwifSBhcyBBc3NldCk7XG5cbiAgICAgICAgaWYgKGZsb29ycGxhbi5waG90b3NGb2xkZXJJZCkge1xuICAgICAgICAgICAgZ2V0QXNzZXRzRnJvbShmbG9vcnBsYW4ucGhvdG9zRm9sZGVySWQpLnRoZW4oZ2FsbGVyeUFzc2V0cyA9PiB7XG4gICAgICAgICAgICAgICAgaW1hZ2VzLnB1c2goLi4uZ2FsbGVyeUFzc2V0cyk7XG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsQXNzZXRzID0gaW1hZ2VzLmxlbmd0aCArIG90aGVyQXNzZXRDb3VudHM7XG4gICAgICAgICAgICAgICAgaWYgKHRvdGFsQXNzZXRzID4gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBwYWdlcyA9IE1hdGgudHJ1bmMoKCh0b3RhbEFzc2V0cyAtIEZJUlNUX1BBR0VfQVNTRVRfQ09VTlQpIC8gR1JJRF9TSVpFKSArIDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgodG90YWxBc3NldHMgLSBGSVJTVF9QQUdFX0FTU0VUX0NPVU5UIC0gMSkgJSBHUklEX1NJWkUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvdGFsUGFnZXMocGFnZXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvdGFsUGFnZXMocGFnZXMgKyAxKTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICAgICAgc2V0SXNBc3NldHNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhpbWFnZXMpXG4gICAgICAgICAgICBzZXRJc0Fzc2V0c0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICB9LCBbZmxvb3JwbGFuXSlcblxuICAgIGNvbnN0IGlzRmlyc3RTbGlkZXJQYWdlID0gKHNsaWRlSW5kZXg6IG51bWJlcikgPT4gc2xpZGVJbmRleCA9PT0gMDtcbiAgICBjb25zdCBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlID0gKCkgPT4gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCAtIHRvdXJzQ291bnQ7XG5cbiAgICBjb25zdCBnZXRJbWFnZXNGb3JGaXJzdFNsaWRlclBhZ2UgPSBhc3NldHMuc2xpY2UoMCwgYXNzZXRzLmxlbmd0aCA+PSBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgPyBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgOiBhc3NldHMubGVuZ3RoKTtcbiAgICBjb25zdCBhc3NldHNUb1Nob3cgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiB7XG5cbiAgICAgICAgaWYgKGlzRmlyc3RTbGlkZXJQYWdlKHNsaWRlSW5kZXgpKVxuICAgICAgICAgICAgcmV0dXJuIGdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZTtcblxuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gaW1hZ2VDb3VudEZvckZpcnN0UGFnZSgpICsgKHNsaWRlSW5kZXggLSAxKSAqIDg7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIEdSSURfU0laRTtcblxuICAgICAgICByZXR1cm4gYXNzZXRzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICB9O1xuXG4gICAgY29uc3QgcHJpbnRGbG9vcnBsYW5BZGRyZXNzID0gKCkgPT4ge1xuXG4gICAgICAgIHJldHVybiBmbG9vcnBsYW4uYWRkcmVzcyArIFwiLCBcIiArIHJlbmFpc3NhbmNlLmNpdHkgKyBcIiwgXCIgKyByZW5haXNzYW5jZS5zdGF0ZSArIFwiIFwiICsgZmxvb3JwbGFuLnppcGNvZGU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tc2hvcnQtdGVybS1mbG9vcnBsYW4tLWhlcm9cIj5cbiAgICAgICAgICAgIHtpc0Fzc2V0c0xvYWRpbmcgPyA8R2FsbGVyeUhlcm9Ta2VsZXRvbi8+IDpcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnktaGVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdhbGxlcnlNb2RhbCBhc3NldHM9e2Fzc2V0c30gYXNzZXRJbkZvY3VzPXthc3NldEluRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFzc2V0SW5Gb2N1cz17c2V0QXNzZXRJbkZvY3VzfSBzaG93TW9kYWw9e3Nob3dNb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRJbmRleD17YXNzZXRJbmRleH0gc2V0QXNzZXRJbmRleD17c2V0QXNzZXRJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxDbG9zZUhhbmRsZXI9e21vZGFsQ2xvc2VIYW5kbGVyfSBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VmlldyA9PT0gXCJwaG90b1wiID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW1TbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJJdGVtcz17Wy4uLkFycmF5KHRvdGFsUGFnZXMpXS5tYXAoKHgsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHYWxsZXJ5SGVyb01haW4gaXNBdmFpbGFibGVOb3c9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyPXt2aXJ0dWFsVG91cn0gaXNGaXJzdD17aSA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3Vyc0NvdW50PXt0b3Vyc0NvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VDbGlja2VkSGFuZGxlcj17aW1hZ2VDbGlja2VkSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldHNUb1Nob3c9e2Fzc2V0c1RvU2hvdyhpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2FsbGVyeUhlcm9Nb2JpbGUgYXNzZXRzPXthc3NldHN9IHRvdXJzQ291bnQ9e3RvdXJzQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbFRvdXI9e3ZpcnR1YWxUb3VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEN1cnJlbnRWaWV3PXtzZXRDdXJyZW50Vmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUNsaWNrZWRIYW5kbGVyPXtpbWFnZUNsaWNrZWRIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZU5vdz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPiA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpZGVvIHRvdXJcIiA/IDxWaWRlb1RvdXJzIHZpZGVvVG91clVybHM9e3ZpZGVvVG91cnN9Lz4gOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpcnR1YWwgdG91clwiID8gPFZpcnR1YWxUb3VyIHZpcnR1YWxUb3VyVXJsPXt2aXJ0dWFsVG91cn0vPiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGVyb0JhZGdlU3RhdHMgY3VycmVudFZpZXc9e2N1cnJlbnRWaWV3fSBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxBc3NldHM9e2Fzc2V0cz8ubGVuZ3RofSB2aWRlb1RvdXJzPXt2aWRlb1RvdXJzfSB2aXJ0dWFsVG91cj17dmlydHVhbFRvdXJ9Lz5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPEFzc2V0TW9kYWwgYXNzZXRVcmw9e2Zsb29ycGxhbi5waG90b30gYXNzZXRUaXRsZT1cIkZsb29ycGxhbiBpbWFnZVwiIHNob3dNb2RhbD17c2hvd0Zsb29ycGxhbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd01vZGFsPXtzZXRTaG93Rmxvb3JwbGFuTW9kYWx9IHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tdHdvLWNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tY29sdW1uLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57Zmxvb3JwbGFuLm5hbWV9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND4ke2Zsb29ycGxhbi5zaG9ydFRlcm0ucHJpY2VGb3I0YW5kTW9yZU1vbnRoc30gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Zmxvb3JwbGFuLnNob3J0VGVybS5wcmljZUZvcjVUbzEzRGF5c30vRGF5PC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZGVzY3JpcHRpb25cIj57cHJpbnRGbG9vcnBsYW5BZGRyZXNzKCl9PC9wPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9eygpID0+IHNldFNob3dGbG9vcnBsYW5Nb2RhbCh0cnVlKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIG5hbWU9XCJtYXhcIiBvcmllbnRhdGlvbj1cInJpZ2h0XCI+Vmlld0Zsb29ycGxhbjwvSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Jm5ic3A7Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVSZWZUb01hcCgpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gb3JpZW50YXRpb249XCJyaWdodFwiIG5hbWU9XCJtYXBcIj5WaWV3IG9uIE1hcDwvSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLnByb3BlcnR5LmJ1c1JvdXRlcy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+QnVzIFJvdXRlczombmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4ucHJvcGVydHkuYnVzUm91dGVzLm1hcCgoYnVzUm91dGUsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17XCJidXMtcm91dGUtXCIgKyBpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2J1c1JvdXRlLmJ1c1JvdXRlTGlua30gdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiPntidXNSb3V0ZS5idXNSb3V0ZX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbmRleCA8IGZsb29ycGxhbi5wcm9wZXJ0eS5idXNSb3V0ZXMubGVuZ3RoIC0gMSA/IFwiLCBcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCIgZmxvb3JwbGFuLWNvbHVtbi1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInByaW1hcnlcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17Y29udGFjdENsaWNrSGFuZGxlcn0+Y29udGFjdCB1czwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInRlcnRpYXJ5XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2FwcGx5Q2xpY2tIYW5kbGVyfT5hcHBseTwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGFyZUJ1dHRvbiB0aXRsZT1cIkNoZWNrIG91dCB0aGlzIGFwYXJ0bWVudFwiIHNpemU9XCJsYXJnZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzIHtcbiAgICBmbG9vcnBsYW46IEZsb29ycGxhblNob3J0VGVybTtcbiAgICB3ZWJTcGVjaWFsczogV2ViU3BlY2lhbFtdO1xuICAgIGNvbnRhY3RDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgYXBwbHlDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgaGFuZGxlUmVmVG9NYXA6ICgpID0+IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLG9CQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxnQkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsa0JBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFlBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGVBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFdBQUEsR0FBQVosT0FBQTtBQUErQyxTQUFBYSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBZix3QkFBQWUsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBakIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFJLENBQUEsR0FBQVIsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBSSxDQUFBLEtBQUFBLENBQUEsQ0FBQVgsR0FBQSxJQUFBVyxDQUFBLENBQUFDLEdBQUEsSUFBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBSSxDQUFBLElBQUFWLENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxDQUFBSCxPQUFBLEdBQUFMLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFnQixHQUFBLENBQUFuQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUV4QyxNQUFNWSxzQkFBNkQsR0FBR0MsSUFBQSxJQUNZO0VBQUEsSUFBckY7SUFBQ0MsU0FBUztJQUFFQyxtQkFBbUI7SUFBRUMsaUJBQWlCO0lBQUVDLGNBQWM7SUFBRUM7RUFBVyxDQUFDLEdBQUFMLElBQUE7RUFDaEYsTUFBTSxDQUFDTSxNQUFNLEVBQUVDLFNBQVMsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBVSxFQUFFLENBQUM7RUFDakQsTUFBTSxDQUFDQyxlQUFlLEVBQUVDLGtCQUFrQixDQUFDLEdBQUcsSUFBQUYsZUFBUSxFQUFDLElBQUksQ0FBQztFQUM1RCxNQUFNLENBQUNHLFVBQVUsRUFBRUMsYUFBYSxDQUFDLEdBQUcsSUFBQUosZUFBUSxFQUFXLEVBQUUsQ0FBQztFQUMxRCxNQUFNLENBQUNLLFdBQVcsRUFBRUMsY0FBYyxDQUFDLEdBQUcsSUFBQU4sZUFBUSxFQUFxQk8sU0FBUyxDQUFDO0VBQzdFLE1BQU0sQ0FBQ0Msa0JBQWtCLEVBQUVDLHFCQUFxQixDQUFDLEdBQUcsSUFBQVQsZUFBUSxFQUFDLEtBQUssQ0FBQztFQUNuRSxNQUFNLENBQUNVLFVBQVUsRUFBRUMsYUFBYSxDQUFDLEdBQUcsSUFBQVgsZUFBUSxFQUFDLENBQUMsQ0FBQztFQUMvQyxNQUFNLENBQUNZLFVBQVUsRUFBRUMsYUFBYSxDQUFDLEdBQUcsSUFBQWIsZUFBUSxFQUFDLENBQUMsQ0FBQztFQUMvQyxNQUFNLENBQUNjLFdBQVcsRUFBRUMsY0FBYyxDQUFDLEdBQUcsSUFBQWYsZUFBUSxFQUEwQyxPQUFPLENBQUM7RUFDaEcsTUFBTSxDQUFDZ0IsWUFBWSxFQUFFQyxlQUFlLENBQUMsR0FBRyxJQUFBakIsZUFBUSxFQUFRLENBQUMsQ0FBVSxDQUFDO0VBQ3BFLE1BQU0sQ0FBQ2tCLFVBQVUsRUFBRUMsYUFBYSxDQUFDLEdBQUcsSUFBQW5CLGVBQVEsRUFBQyxDQUFDLENBQUM7RUFDL0MsTUFBTSxDQUFDb0IsU0FBUyxFQUFFQyxZQUFZLENBQUMsR0FBRyxJQUFBckIsZUFBUSxFQUFDLEtBQUssQ0FBQztFQUVqRCxNQUFNc0Isc0JBQXNCLEdBQUcsQ0FBQztFQUNoQyxNQUFNQyxTQUFTLEdBQUcsQ0FBQztFQUNuQixNQUFNQyxtQkFBbUIsR0FBSUMsS0FBWSxJQUFLO0lBQzFDSixZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2xCSixlQUFlLENBQUNRLEtBQUssQ0FBQztJQUN0Qk4sYUFBYSxDQUFDckIsTUFBTSxDQUFDNEIsU0FBUyxDQUFDQyxLQUFLLElBQUlBLEtBQUssQ0FBQ0MsRUFBRSxLQUFLSCxLQUFLLENBQUNHLEVBQUUsQ0FBQyxDQUFDO0VBQ25FLENBQUM7RUFDRCxNQUFNQyxpQkFBaUIsR0FBR0EsQ0FBQSxLQUFNO0lBQzVCUixZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ25CSixlQUFlLENBQUMsQ0FBQyxDQUFVLENBQUM7RUFDaEMsQ0FBQztFQUNELElBQUFhLGdCQUFTLEVBQUMsTUFBTTtJQUNaLElBQUlyQyxTQUFTLENBQUNzQyxlQUFlLEVBQ3pCekIsY0FBYyxDQUFDYixTQUFTLENBQUNzQyxlQUFlLENBQUM7SUFDN0MsTUFBTUMsU0FBUyxHQUFHLEVBQUU7SUFDcEIsSUFBSXZDLFNBQVMsQ0FBQ3dDLGFBQWEsRUFDdkJELFNBQVMsQ0FBQ0UsSUFBSSxDQUFDekMsU0FBUyxDQUFDd0MsYUFBYSxDQUFDO0lBQzNDLElBQUl4QyxTQUFTLENBQUMwQyx1QkFBdUIsRUFDakNILFNBQVMsQ0FBQ0UsSUFBSSxDQUFDekMsU0FBUyxDQUFDMEMsdUJBQXVCLENBQUM7SUFDckQvQixhQUFhLENBQUM0QixTQUFTLENBQUM7SUFFeEIsSUFBSUksZ0JBQWdCLEdBQUcsQ0FBQ0osU0FBUyxDQUFDSyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUs1QyxTQUFTLENBQUNzQyxlQUFlLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRmxCLGFBQWEsQ0FBQ3VCLGdCQUFnQixDQUFDO0lBQy9CLE1BQU1FLE1BQWUsR0FBRyxFQUFFO0lBQzFCQSxNQUFNLENBQUNKLElBQUksQ0FBQztNQUFDTixFQUFFLEVBQUUsSUFBQVcsb0JBQWEsRUFBQzlDLFNBQVMsQ0FBQytDLFVBQVUsQ0FBQztNQUFFQyxJQUFJLEVBQUU7SUFBYSxDQUFVLENBQUM7SUFFcEYsSUFBSWhELFNBQVMsQ0FBQ2lELGNBQWMsRUFBRTtNQUMxQixJQUFBQywyQkFBYSxFQUFDbEQsU0FBUyxDQUFDaUQsY0FBYyxDQUFDLENBQUNFLElBQUksQ0FBQ0MsYUFBYSxJQUFJO1FBQzFEUCxNQUFNLENBQUNKLElBQUksQ0FBQyxHQUFHVyxhQUFhLENBQUM7UUFDN0IsSUFBSUMsV0FBVyxHQUFHUixNQUFNLENBQUNELE1BQU0sR0FBR0QsZ0JBQWdCO1FBQ2xELElBQUlVLFdBQVcsR0FBR3hCLHNCQUFzQixFQUFFO1VBRXRDLElBQUl5QixLQUFLLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFFLENBQUNILFdBQVcsR0FBR3hCLHNCQUFzQixJQUFJQyxTQUFTLEdBQUksQ0FBQyxDQUFDO1VBRWhGLElBQUksQ0FBQ3VCLFdBQVcsR0FBR3hCLHNCQUFzQixHQUFHLENBQUMsSUFBSUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUM5RFosYUFBYSxDQUFDb0MsS0FBSyxDQUFDO1VBQ3hCLENBQUMsTUFDR3BDLGFBQWEsQ0FBQ29DLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFaEM7TUFFSixDQUFDLENBQUMsQ0FBQ0csT0FBTyxDQUFDLE1BQU07UUFDYm5ELFNBQVMsQ0FBQ3VDLE1BQU0sQ0FBQztRQUNqQnBDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztNQUM3QixDQUFDLENBQUM7SUFDTixDQUFDLE1BQU07TUFDSEgsU0FBUyxDQUFDdUMsTUFBTSxDQUFDO01BQ2pCYSxPQUFPLENBQUNDLEdBQUcsQ0FBQ2QsTUFBTSxDQUFDO01BQ25CcEMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO0lBQzdCO0VBRUosQ0FBQyxFQUFFLENBQUNULFNBQVMsQ0FBQyxDQUFDO0VBRWYsTUFBTTRELGlCQUFpQixHQUFJQyxVQUFrQixJQUFLQSxVQUFVLEtBQUssQ0FBQztFQUNsRSxNQUFNQyxzQkFBc0IsR0FBR0EsQ0FBQSxLQUFNakMsc0JBQXNCLEdBQUdWLFVBQVU7RUFFeEUsTUFBTTRDLDJCQUEyQixHQUFHMUQsTUFBTSxDQUFDMkQsS0FBSyxDQUFDLENBQUMsRUFBRTNELE1BQU0sQ0FBQ3VDLE1BQU0sSUFBSWtCLHNCQUFzQixDQUFDLENBQUMsR0FBR0Esc0JBQXNCLENBQUMsQ0FBQyxHQUFHekQsTUFBTSxDQUFDdUMsTUFBTSxDQUFDO0VBQ3pJLE1BQU1xQixZQUFZLEdBQUlKLFVBQWtCLElBQUs7SUFFekMsSUFBSUQsaUJBQWlCLENBQUNDLFVBQVUsQ0FBQyxFQUM3QixPQUFPRSwyQkFBMkI7SUFFdEMsTUFBTUcsVUFBVSxHQUFHSixzQkFBc0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQ0QsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ2xFLE1BQU1NLFFBQVEsR0FBR0QsVUFBVSxHQUFHcEMsU0FBUztJQUV2QyxPQUFPekIsTUFBTSxDQUFDMkQsS0FBSyxDQUFDRSxVQUFVLEVBQUVDLFFBQVEsQ0FBQztFQUM3QyxDQUFDO0VBRUQsTUFBTUMscUJBQXFCLEdBQUdBLENBQUEsS0FBTTtJQUVoQyxPQUFPcEUsU0FBUyxDQUFDcUUsT0FBTyxHQUFHLElBQUksR0FBR0MsNEJBQVcsQ0FBQ0MsSUFBSSxHQUFHLElBQUksR0FBR0QsNEJBQVcsQ0FBQ0UsS0FBSyxHQUFHLEdBQUcsR0FBR3hFLFNBQVMsQ0FBQ3lFLE9BQU87RUFDM0csQ0FBQztFQUNELG9CQUNJL0csTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQTtJQUFTQyxTQUFTLEVBQUM7RUFBb0MsR0FDbERuRSxlQUFlLGdCQUFHOUMsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQSxDQUFDekcsb0JBQUEsQ0FBQTJHLG1CQUFtQixNQUFDLENBQUMsZ0JBQ3JDbEgsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQSxDQUFBaEgsTUFBQSxDQUFBcUIsT0FBQSxDQUFBOEYsUUFBQSxxQkFDSW5ILE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWMsZ0JBQ3pCakgsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQSxDQUFDeEcsYUFBQSxDQUFBNEcsWUFBWTtJQUFDekUsTUFBTSxFQUFFQSxNQUFPO0lBQUNrQixZQUFZLEVBQUVBLFlBQWE7SUFDM0NDLGVBQWUsRUFBRUEsZUFBZ0I7SUFBQ0csU0FBUyxFQUFFQSxTQUFVO0lBQ3ZERixVQUFVLEVBQUVBLFVBQVc7SUFBQ0MsYUFBYSxFQUFFQSxhQUFjO0lBQ3JEVSxpQkFBaUIsRUFBRUEsaUJBQWtCO0lBQUMyQyxVQUFVLEVBQUUvRSxTQUFTLENBQUNnRixRQUFRLENBQUM3QztFQUFHLENBQUMsQ0FBQyxFQUN2RmQsV0FBVyxLQUFLLE9BQU8sZ0JBQ3BCM0QsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQSxDQUFBaEgsTUFBQSxDQUFBcUIsT0FBQSxDQUFBOEYsUUFBQSxxQkFDSW5ILE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWlCLGdCQUM1QmpILE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUEsQ0FBQzdHLFVBQUEsQ0FBQW9ILFVBQVU7SUFDUEMsV0FBVyxFQUFFLENBQUMsR0FBR0MsS0FBSyxDQUFDbEUsVUFBVSxDQUFDLENBQUMsQ0FBQ21FLEdBQUcsQ0FBQyxDQUFDQyxDQUFDLEVBQUV6RixDQUFDLGtCQUN6Q2xDLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUEsQ0FBQ3ZHLGdCQUFBLENBQUFtSCxlQUFlO01BQUNDLGNBQWMsRUFBRSxLQUFNO01BQ3RCM0UsV0FBVyxFQUFFQSxXQUFZO01BQUM0RSxPQUFPLEVBQUU1RixDQUFDLEtBQUssQ0FBRTtNQUMzQ3VCLFVBQVUsRUFBRUEsVUFBVztNQUN2QmYsV0FBVyxFQUFFQSxXQUFZO01BQ3pCa0IsY0FBYyxFQUFFQSxjQUFlO01BQy9CUyxtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDa0MsWUFBWSxFQUFFQSxZQUFZLENBQUNyRSxDQUFDLENBQUU7TUFDOUJtRixVQUFVLEVBQUUvRSxTQUFTLENBQUNnRixRQUFRLENBQUM3QztJQUFHLENBQUMsQ0FDeEQ7RUFBRSxDQUFDLENBQ04sQ0FBQyxlQUNOekUsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBbUIsZ0JBQzlCakgsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQSxDQUFDdEcsa0JBQUEsQ0FBQXFILGlCQUFpQjtJQUFDcEYsTUFBTSxFQUFFQSxNQUFPO0lBQUNjLFVBQVUsRUFBRUEsVUFBVztJQUN2Q1AsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCVSxjQUFjLEVBQUVBLGNBQWU7SUFDL0JTLG1CQUFtQixFQUFFQSxtQkFBb0I7SUFDekMzQixXQUFXLEVBQUVBLFdBQVk7SUFDekJtRixjQUFjLEVBQUUsS0FBTTtJQUN0QlIsVUFBVSxFQUFFL0UsU0FBUyxDQUFDZ0YsUUFBUSxDQUFDN0M7RUFBRyxDQUFDLENBQ3JELENBQ1AsQ0FBQyxHQUFHLEVBQUUsRUFHWGQsV0FBVyxLQUFLLFlBQVksZ0JBQUczRCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBLENBQUNyRyxXQUFBLENBQUFxSCxVQUFVO0lBQUNDLGFBQWEsRUFBRWpGO0VBQVcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUM1RVcsV0FBVyxLQUFLLGNBQWMsZ0JBQUczRCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBLENBQUNwRyxZQUFBLENBQUFzSCxXQUFXO0lBQUNDLGNBQWMsRUFBRWpGO0VBQVksQ0FBQyxDQUFDLEdBQUcsRUFBRSxlQUNsRmxELE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUEsQ0FBQ25HLGVBQUEsQ0FBQXVILGNBQWM7SUFBQ3pFLFdBQVcsRUFBRUEsV0FBWTtJQUFDQyxjQUFjLEVBQUVBLGNBQWU7SUFDekQrQixXQUFXLEVBQUVoRCxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRXVDLE1BQU87SUFBQ2xDLFVBQVUsRUFBRUEsVUFBVztJQUFDRSxXQUFXLEVBQUVBO0VBQVksQ0FBQyxDQUU5RixDQUNQLENBQUMsZUFHUGxELE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUEsQ0FBQ2xHLFdBQUEsQ0FBQXVILFVBQVU7SUFBQ0MsUUFBUSxFQUFFaEcsU0FBUyxDQUFDaUcsS0FBTTtJQUFDQyxVQUFVLEVBQUMsaUJBQWlCO0lBQUN2RSxTQUFTLEVBQUVaLGtCQUFtQjtJQUN0RmEsWUFBWSxFQUFFWixxQkFBc0I7SUFBQytELFVBQVUsRUFBRS9FLFNBQVMsQ0FBQ2dGLFFBQVEsQ0FBQzdDO0VBQUcsQ0FBQyxDQUFDLGVBQ3JGekUsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBVyxnQkFDdEJqSCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUF3QixnQkFDbkNqSCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUF1QixnQkFDbENqSCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBLGFBQUsxRSxTQUFTLENBQUNnRCxJQUFTLENBQUMsZUFDekJ0RixNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBLGFBQUksR0FBQyxFQUFDMUUsU0FBUyxDQUFDbUcsU0FBUyxDQUFDQyxzQkFBc0IsRUFBQyxNQUM1QyxFQUFDcEcsU0FBUyxDQUFDbUcsU0FBUyxDQUFDRSxpQkFBaUIsRUFBQyxNQUFRLENBQUMsZUFDckQzSSxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBO0lBQUdDLFNBQVMsRUFBQztFQUF3QixHQUFFUCxxQkFBcUIsQ0FBQyxDQUFLLENBQUMsZUFFbkUxRyxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUFxQixnQkFDaENqSCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBLENBQUM3RyxVQUFBLENBQUF5SSxNQUFNO0lBQUNDLElBQUksRUFBQyxPQUFPO0lBQUNDLE9BQU8sRUFBRUEsQ0FBQSxLQUFNeEYscUJBQXFCLENBQUMsSUFBSTtFQUFFLGdCQUM1RHRELE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUEsQ0FBQzdHLFVBQUEsQ0FBQTRJLElBQUk7SUFBQ3pELElBQUksRUFBQyxLQUFLO0lBQUMwRCxXQUFXLEVBQUM7RUFBTyxHQUFDLGVBQW1CLENBQ3BELENBQUMsYUFFVCxlQUFBaEosTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQSxDQUFDN0csVUFBQSxDQUFBeUksTUFBTTtJQUFDQyxJQUFJLEVBQUMsT0FBTztJQUFDQyxPQUFPLEVBQUVBLENBQUEsS0FBTXJHLGNBQWMsQ0FBQztFQUFFLGdCQUNqRHpDLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUEsQ0FBQzdHLFVBQUEsQ0FBQTRJLElBQUk7SUFBQ0MsV0FBVyxFQUFDLE9BQU87SUFBQzFELElBQUksRUFBQztFQUFLLEdBQUMsYUFBaUIsQ0FDbEQsQ0FBQyxFQUNSaEQsU0FBUyxDQUFDZ0YsUUFBUSxDQUFDMkIsU0FBUyxDQUFDL0QsTUFBTSxHQUFHLENBQUMsZ0JBQ3BDbEYsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQSxZQUFHLGlCQUNDLEVBQUMxRSxTQUFTLENBQUNnRixRQUFRLENBQUMyQixTQUFTLENBQUN2QixHQUFHLENBQUMsQ0FBQ3dCLFFBQVEsRUFBRUMsS0FBSyxrQkFDOUNuSixNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBO0lBQU1vQyxHQUFHLEVBQUUsWUFBWSxHQUFHRDtFQUFNLGdCQUM1Qm5KLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUE7SUFBR3FDLElBQUksRUFBRUgsUUFBUSxDQUFDSSxZQUFhO0lBQUNDLE1BQU0sRUFBQyxRQUFRO0lBQzVDQyxHQUFHLEVBQUM7RUFBWSxHQUFFTixRQUFRLENBQUNBLFFBQVksQ0FBQyxFQUMxQ0MsS0FBSyxHQUFHN0csU0FBUyxDQUFDZ0YsUUFBUSxDQUFDMkIsU0FBUyxDQUFDL0QsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFDeEQsQ0FDVixDQUNELENBQUMsR0FDRixFQUNMLENBQ0osQ0FBQyxlQUNObEYsTUFBQSxDQUFBcUIsT0FBQSxDQUFBMkYsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBTSxnQkFDakJqSCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUF5QixnQkFDcENqSCxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBLENBQUM3RyxVQUFBLENBQUF5SSxNQUFNO0lBQUNhLE9BQU8sRUFBQyxTQUFTO0lBQUNaLElBQUksRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRXZHO0VBQW9CLEdBQUMsWUFBa0IsQ0FBQyxlQUN6RnZDLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQTJGLGFBQUEsQ0FBQzdHLFVBQUEsQ0FBQXlJLE1BQU07SUFBQ2EsT0FBTyxFQUFDLFVBQVU7SUFBQ1osSUFBSSxFQUFDLFFBQVE7SUFBQ0MsT0FBTyxFQUFFdEc7RUFBa0IsR0FBQyxPQUFhLENBQUMsZUFDbkZ4QyxNQUFBLENBQUFxQixPQUFBLENBQUEyRixhQUFBLENBQUM3RyxVQUFBLENBQUF1SixXQUFXO0lBQUNDLEtBQUssRUFBQywwQkFBMEI7SUFBQ2QsSUFBSSxFQUFDO0VBQU8sQ0FBQyxDQUMxRCxDQUNKLENBQ0osQ0FDSixDQUNBLENBQUM7QUFFbEIsQ0FBQztBQUFDZSxPQUFBLENBQUF4SCxzQkFBQSxHQUFBQSxzQkFBQSJ9
226
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX1V0aWxzIiwiX0Fzc2V0U2VydmljZSIsIl9SZW5haXNzYW5jZURhdGEiLCJfR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIl9HYWxsZXJ5TW9kYWwiLCJfR2FsbGVyeUhlcm9Nb2JpbGUiLCJfVmlkZW9Ub3VycyIsIl9WaXJ0dWFsVG91ciIsIl9IZXJvQmFkZ2VTdGF0cyIsIl9Bc3NldE1vZGFsIiwiX0dyaWRHYWxsZXJ5Q292ZXIiLCJfR3JpZEdhbGxlcnkiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTaG9ydFRlcm1GbG9vcnBsYW5IZXJvIiwiX3JlZiIsImZsb29ycGxhbiIsImNvbnRhY3RDbGlja0hhbmRsZXIiLCJhcHBseUNsaWNrSGFuZGxlciIsImhhbmRsZVJlZlRvTWFwIiwid2ViU3BlY2lhbHMiLCJhc3NldHMiLCJzZXRBc3NldHMiLCJ1c2VTdGF0ZSIsImlzQXNzZXRzTG9hZGluZyIsInNldElzQXNzZXRzTG9hZGluZyIsInZpZGVvVG91cnMiLCJzZXRWaWRlb1RvdXJzIiwidmlydHVhbFRvdXIiLCJzZXRWaXJ0dWFsVG91ciIsInVuZGVmaW5lZCIsInZpZGVvVG91ckltYWdlQmFja2dyb3VuZCIsInNldFZpZGVvVG91ckltYWdlQmFja2dyb3VuZCIsInZpcnR1YWxUb3VySW1hZ2VCYWNrZ3JvdW5kIiwic2V0VmlydHVhbFRvdXJJbWFnZUJhY2tncm91bmQiLCJzaG93Rmxvb3JwbGFuTW9kYWwiLCJzZXRTaG93Rmxvb3JwbGFuTW9kYWwiLCJ0b3RhbFBhZ2VzIiwic2V0VG90YWxQYWdlcyIsInRvdXJzQ291bnQiLCJzZXRUb3Vyc0NvdW50IiwiY3VycmVudFZpZXciLCJzZXRDdXJyZW50VmlldyIsImFzc2V0SW5Gb2N1cyIsInNldEFzc2V0SW5Gb2N1cyIsImFzc2V0SW5kZXgiLCJzZXRBc3NldEluZGV4Iiwic2hvd01vZGFsIiwic2V0U2hvd01vZGFsIiwiZmlyc3RQYWdlSW1hZ2VDb3VudCIsInNldEZpcnN0UGFnZUltYWdlQ291bnQiLCJHUklEX1NJWkUiLCJpbWFnZUNsaWNrZWRIYW5kbGVyIiwiaW1hZ2UiLCJmaW5kSW5kZXgiLCJ2YWx1ZSIsImlkIiwibW9kYWxDbG9zZUhhbmRsZXIiLCJ1c2VFZmZlY3QiLCJpbWFnZXMiLCJwdXNoIiwiZXh0cmFjdElkRnJvbSIsImNvdmVySW1hZ2UiLCJuYW1lIiwiZmlyc3RQYWdlQ291bnQiLCJwaG90b3NGb2xkZXJJZCIsImdldEFzc2V0c0Zyb20iLCJ0aGVuIiwiZ2FsbGVyeUFzc2V0cyIsImxlbmd0aCIsInBvcCIsImJhY2tncm91bmRJbWFnZVVybCIsImFzc2V0VXJsRnJvbSIsInByb3BlcnR5IiwidmlydHVhbFRvdXJMaW5rIiwidG91ckxpbmtzIiwidmlkZW9Ub3VyTGluayIsInRocmVlU2l4dHlWaWRlb1RvdXJMaW5rIiwib3RoZXJBc3NldENvdW50cyIsImZpbmFsbHkiLCJwYWdlcyIsInJlbWFpbmluZyIsIk1hdGgiLCJ0cnVuYyIsInByaW50Rmxvb3JwbGFuQWRkcmVzcyIsImFkZHJlc3MiLCJyZW5haXNzYW5jZSIsImNpdHkiLCJzdGF0ZSIsInppcGNvZGUiLCJpc0ZpcnN0U2xpZGVyUGFnZSIsInNsaWRlSW5kZXgiLCJhc3NldHNUb1Nob3ciLCJjb25zb2xlIiwibG9nIiwic2xpY2UiLCJzdGFydEluZGV4IiwiZW5kSW5kZXgiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIkZyYWdtZW50IiwiR2FsbGVyeU1vZGFsIiwicHJvcGVydHlJZCIsIkl0ZW1TbGlkZXIiLCJzbGlkZXJJdGVtcyIsIkFycmF5IiwibWFwIiwieCIsIkdyaWRHYWxsZXJ5Q292ZXIiLCJmbG9vcnBsYW5BZGRyZXNzIiwiaGVyb0ltYWdlIiwiaXNBdmFpbGFibGVOb3ciLCJzaG93T25seUhlcm9JbWFnZSIsIkdyaWRHYWxsZXJ5IiwiR2FsbGVyeUhlcm9Nb2JpbGUiLCJWaWRlb1RvdXJzIiwidmlkZW9Ub3VyVXJscyIsIlZpcnR1YWxUb3VyIiwidmlydHVhbFRvdXJVcmwiLCJIZXJvQmFkZ2VTdGF0cyIsInRvdGFsQXNzZXRzIiwiQXNzZXRNb2RhbCIsImFzc2V0VXJsIiwicGhvdG8iLCJhc3NldFRpdGxlIiwic2hvcnRUZXJtIiwicHJpY2VGb3I0YW5kTW9yZU1vbnRocyIsInByaWNlRm9yNVRvMTNEYXlzIiwiQnV0dG9uIiwic2l6ZSIsIm9uQ2xpY2siLCJJY29uIiwib3JpZW50YXRpb24iLCJidXNSb3V0ZXMiLCJidXNSb3V0ZSIsImluZGV4Iiwia2V5IiwiaHJlZiIsImJ1c1JvdXRlTGluayIsInRhcmdldCIsInJlbCIsInZhcmlhbnQiLCJTaGFyZUJ1dHRvbiIsInRpdGxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaG9ydC10ZXJtL1Nob3J0VGVybUZsb29ycGxhbkhlcm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hc3NldHMvU2hvcnRUZXJtRmxvb3JwbGFuSGVyby5zY3NzXCI7XG5pbXBvcnQge0J1dHRvbiwgSWNvbiwgSXRlbVNsaWRlciwgU2hhcmVCdXR0b259IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7Rmxvb3JwbGFuU2hvcnRUZXJtfSBmcm9tIFwiLi9kYXRhL1Nob3J0VGVybVwiO1xuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4uL2Fzc2V0L2RhdGEvQXNzZXRcIjtcbmltcG9ydCB7ZXh0cmFjdElkRnJvbX0gZnJvbSBcIi4uL3V0aWxzL1V0aWxzXCI7XG5pbXBvcnQge2Fzc2V0VXJsRnJvbSwgZ2V0QXNzZXRzRnJvbX0gZnJvbSBcIi4uL2Fzc2V0L3NlcnZpY2UvQXNzZXRTZXJ2aWNlXCI7XG5pbXBvcnQge1dlYlNwZWNpYWx9IGZyb20gXCIuLi9mbG9vcnBsYW4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7cmVuYWlzc2FuY2V9IGZyb20gXCIuLi9kYXRhL1JlbmFpc3NhbmNlRGF0YVwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb1NrZWxldG9ufSBmcm9tIFwiLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb1NrZWxldG9uXCI7XG5pbXBvcnQge0dhbGxlcnlNb2RhbH0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeU1vZGFsXCI7XG5pbXBvcnQge0dhbGxlcnlIZXJvTW9iaWxlfSBmcm9tIFwiLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb01vYmlsZVwiO1xuaW1wb3J0IHtWaWRlb1RvdXJzfSBmcm9tIFwiLi4vZ2FsbGVyeS9WaWRlb1RvdXJzXCI7XG5pbXBvcnQge1ZpcnR1YWxUb3VyfSBmcm9tIFwiLi4vZ2FsbGVyeS9WaXJ0dWFsVG91clwiO1xuaW1wb3J0IHtIZXJvQmFkZ2VTdGF0c30gZnJvbSBcIi4uL2Zsb29ycGxhbi9zZWN0aW9uL0hlcm9CYWRnZVN0YXRzXCI7XG5pbXBvcnQge0Fzc2V0TW9kYWx9IGZyb20gXCIuLi9hc3NldC9Bc3NldE1vZGFsXCI7XG5pbXBvcnQge0dyaWRHYWxsZXJ5Q292ZXIsIFRvdXJUeXBlfSBmcm9tIFwiLi4vZ2FsbGVyeS9HcmlkR2FsbGVyeUNvdmVyXCI7XG5pbXBvcnQge0dyaWRHYWxsZXJ5fSBmcm9tIFwiLi4vZ2FsbGVyeS9HcmlkR2FsbGVyeVwiO1xuXG5leHBvcnQgY29uc3QgU2hvcnRUZXJtRmxvb3JwbGFuSGVybzogUmVhY3QuRkM8U2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzPiA9IChcbiAgICB7Zmxvb3JwbGFuLCBjb250YWN0Q2xpY2tIYW5kbGVyLCBhcHBseUNsaWNrSGFuZGxlciwgaGFuZGxlUmVmVG9NYXAsIHdlYlNwZWNpYWxzfSkgPT4ge1xuICAgIGNvbnN0IFthc3NldHMsIHNldEFzc2V0c10gPSB1c2VTdGF0ZTxBc3NldFtdPihbXSk7XG4gICAgY29uc3QgW2lzQXNzZXRzTG9hZGluZywgc2V0SXNBc3NldHNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFt2aWRlb1RvdXJzLCBzZXRWaWRlb1RvdXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XG4gICAgY29uc3QgW3ZpcnR1YWxUb3VyLCBzZXRWaXJ0dWFsVG91cl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCBbdmlkZW9Ub3VySW1hZ2VCYWNrZ3JvdW5kLCBzZXRWaWRlb1RvdXJJbWFnZUJhY2tncm91bmRdID0gdXNlU3RhdGU8c3RyaW5nPigpO1xuICAgIGNvbnN0IFt2aXJ0dWFsVG91ckltYWdlQmFja2dyb3VuZCwgc2V0VmlydHVhbFRvdXJJbWFnZUJhY2tncm91bmRdID0gdXNlU3RhdGU8c3RyaW5nPigpO1xuXG4gICAgY29uc3QgW3Nob3dGbG9vcnBsYW5Nb2RhbCwgc2V0U2hvd0Zsb29ycGxhbk1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdG90YWxQYWdlcywgc2V0VG90YWxQYWdlc10gPSB1c2VTdGF0ZSgxKTtcbiAgICBjb25zdCBbdG91cnNDb3VudCwgc2V0VG91cnNDb3VudF0gPSB1c2VTdGF0ZSgxKTtcbiAgICBjb25zdCBbY3VycmVudFZpZXcsIHNldEN1cnJlbnRWaWV3XSA9IHVzZVN0YXRlPFwicGhvdG9cIiB8IFRvdXJUeXBlPihcInBob3RvXCIpO1xuICAgIGNvbnN0IFthc3NldEluRm9jdXMsIHNldEFzc2V0SW5Gb2N1c10gPSB1c2VTdGF0ZTxBc3NldD4oe30gYXMgQXNzZXQpO1xuICAgIGNvbnN0IFthc3NldEluZGV4LCBzZXRBc3NldEluZGV4XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2ZpcnN0UGFnZUltYWdlQ291bnQsIHNldEZpcnN0UGFnZUltYWdlQ291bnRdID0gdXNlU3RhdGUoNCk7XG5cbiAgICBjb25zdCBHUklEX1NJWkUgPSA4O1xuICAgIGNvbnN0IGltYWdlQ2xpY2tlZEhhbmRsZXIgPSAoaW1hZ2U6IEFzc2V0KSA9PiB7XG4gICAgICAgIHNldFNob3dNb2RhbCh0cnVlKTtcbiAgICAgICAgc2V0QXNzZXRJbkZvY3VzKGltYWdlKTtcbiAgICAgICAgc2V0QXNzZXRJbmRleChhc3NldHMuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlLmlkID09PSBpbWFnZS5pZCkpO1xuICAgIH07XG4gICAgY29uc3QgbW9kYWxDbG9zZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldFNob3dNb2RhbChmYWxzZSk7XG4gICAgICAgIHNldEFzc2V0SW5Gb2N1cyh7fSBhcyBBc3NldCk7XG4gICAgfTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBpbWFnZXM6IEFzc2V0W10gPSBbXTtcbiAgICAgICAgaW1hZ2VzLnB1c2goe2lkOiBleHRyYWN0SWRGcm9tKGZsb29ycGxhbi5jb3ZlckltYWdlKSwgbmFtZTogXCJjb3ZlciBpbWFnZVwifSBhcyBBc3NldCk7XG5cbiAgICAgICAgbGV0IGZpcnN0UGFnZUNvdW50ID0gZmlyc3RQYWdlSW1hZ2VDb3VudDtcblxuICAgICAgICBpZiAoZmxvb3JwbGFuLnBob3Rvc0ZvbGRlcklkKSB7XG4gICAgICAgICAgICBnZXRBc3NldHNGcm9tKGZsb29ycGxhbi5waG90b3NGb2xkZXJJZCkudGhlbihnYWxsZXJ5QXNzZXRzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZ2FsbGVyeUFzc2V0cy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgICAgICBpbWFnZXMucG9wKCk7XG5cbiAgICAgICAgICAgICAgICBpbWFnZXMucHVzaCguLi5nYWxsZXJ5QXNzZXRzKTtcblxuICAgICAgICAgICAgICAgIGlmIChpbWFnZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWNrZ3JvdW5kSW1hZ2VVcmwgPSBhc3NldFVybEZyb20oaW1hZ2VzWzFdLmlkLCBmbG9vcnBsYW4ucHJvcGVydHkuaWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmxvb3JwbGFuLnZpcnR1YWxUb3VyTGluaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmlydHVhbFRvdXIoZmxvb3JwbGFuLnZpcnR1YWxUb3VyTGluayk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWaXJ0dWFsVG91ckltYWdlQmFja2dyb3VuZChiYWNrZ3JvdW5kSW1hZ2VVcmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RQYWdlQ291bnQgLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvdXJMaW5rcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmxvb3JwbGFuLnZpZGVvVG91ckxpbmspXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3VyTGlua3MucHVzaChmbG9vcnBsYW4udmlkZW9Ub3VyTGluayk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbG9vcnBsYW4udGhyZWVTaXh0eVZpZGVvVG91ckxpbmspXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3VyTGlua3MucHVzaChmbG9vcnBsYW4udGhyZWVTaXh0eVZpZGVvVG91ckxpbmspO1xuICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb1RvdXJzKHRvdXJMaW5rcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3VyTGlua3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmlkZW9Ub3VySW1hZ2VCYWNrZ3JvdW5kKGJhY2tncm91bmRJbWFnZVVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFBhZ2VDb3VudCAtPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IG90aGVyQXNzZXRDb3VudHMgPSAodG91ckxpbmtzLmxlbmd0aCA+IDAgPyAxIDogMCkgKyAoZmxvb3JwbGFuLnZpcnR1YWxUb3VyTGluayA/IDEgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VG91cnNDb3VudChvdGhlckFzc2V0Q291bnRzKTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBsZXQgcGFnZXMgPSAxO1xuXG4gICAgICAgICAgICAgICAgaWYgKGltYWdlcy5sZW5ndGggPiBmaXJzdFBhZ2VDb3VudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW1haW5pbmcgPSBpbWFnZXMubGVuZ3RoIC0gZmlyc3RQYWdlQ291bnQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2VzICs9IHJlbWFpbmluZyAvIDg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgJSA4ID4gMClcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VzICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc2V0VG90YWxQYWdlcyhNYXRoLnRydW5jKHBhZ2VzKSk7XG4gICAgICAgICAgICAgICAgc2V0Rmlyc3RQYWdlSW1hZ2VDb3VudChmaXJzdFBhZ2VDb3VudCk7XG4gICAgICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICAgICAgc2V0SXNBc3NldHNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICBzZXRJc0Fzc2V0c0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICB9LCBbZmxvb3JwbGFuXSlcblxuXG4gICAgY29uc3QgcHJpbnRGbG9vcnBsYW5BZGRyZXNzID0gKCkgPT4ge1xuXG4gICAgICAgIHJldHVybiBmbG9vcnBsYW4uYWRkcmVzcyArIFwiLCBcIiArIHJlbmFpc3NhbmNlLmNpdHkgKyBcIiwgXCIgKyByZW5haXNzYW5jZS5zdGF0ZSArIFwiIFwiICsgZmxvb3JwbGFuLnppcGNvZGU7XG4gICAgfVxuICAgIGNvbnN0IGlzRmlyc3RTbGlkZXJQYWdlID0gKHNsaWRlSW5kZXg6IG51bWJlcikgPT4gc2xpZGVJbmRleCA9PT0gMDtcblxuICAgIGNvbnN0IGFzc2V0c1RvU2hvdyA9IChzbGlkZUluZGV4OiBudW1iZXIpID0+IHtcblxuICAgICAgICBpZiAoaXNGaXJzdFNsaWRlclBhZ2Uoc2xpZGVJbmRleCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmlyc3RQYWdlSW1hZ2VDb3VudFwiLCBmaXJzdFBhZ2VJbWFnZUNvdW50KTtcbiAgICAgICAgICAgIHJldHVybiBhc3NldHMuc2xpY2UoMCwgZmlyc3RQYWdlSW1hZ2VDb3VudCAtIDEpO1xuICAgICAgICB9XG5cblxuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gZmlyc3RQYWdlSW1hZ2VDb3VudCAtIDEgKyAoR1JJRF9TSVpFICogKHNsaWRlSW5kZXggLSAxKSlcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSBmaXJzdFBhZ2VJbWFnZUNvdW50IC0gMSArIChHUklEX1NJWkUgKiBzbGlkZUluZGV4KVxuXG4gICAgICAgIHJldHVybiBhc3NldHMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXggPiBhc3NldHMubGVuZ3RoID8gYXNzZXRzLmxlbmd0aCA6IGVuZEluZGV4KTtcbiAgICB9O1xuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tc2hvcnQtdGVybS1mbG9vcnBsYW4tLWhlcm9cIj5cbiAgICAgICAgICAgIHtpc0Fzc2V0c0xvYWRpbmcgPyA8R2FsbGVyeUhlcm9Ta2VsZXRvbi8+IDpcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnktaGVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdhbGxlcnlNb2RhbCBhc3NldHM9e2Fzc2V0c30gYXNzZXRJbkZvY3VzPXthc3NldEluRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFzc2V0SW5Gb2N1cz17c2V0QXNzZXRJbkZvY3VzfSBzaG93TW9kYWw9e3Nob3dNb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRJbmRleD17YXNzZXRJbmRleH0gc2V0QXNzZXRJbmRleD17c2V0QXNzZXRJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxDbG9zZUhhbmRsZXI9e21vZGFsQ2xvc2VIYW5kbGVyfSBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VmlldyA9PT0gXCJwaG90b1wiID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW1TbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJJdGVtcz17Wy4uLkFycmF5KHRvdGFsUGFnZXMpXS5tYXAoKHgsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpID09IDApID8gPEdyaWRHYWxsZXJ5Q292ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldHM9e2Fzc2V0c1RvU2hvdyhpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW5BZGRyZXNzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IGZsb29ycGxhbi5hZGRyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiByZW5haXNzYW5jZS5jaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogcmVuYWlzc2FuY2Uuc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHppcGNvZGU6IGZsb29ycGxhbi56aXBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVyb0ltYWdlPXthc3NldHNbMF19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VDbGlja2VkSGFuZGxlcj17aW1hZ2VDbGlja2VkSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJTcGVjaWFscz17d2ViU3BlY2lhbHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdmFpbGFibGVOb3c9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEN1cnJlbnRWaWV3PXtzZXRDdXJyZW50Vmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb1RvdXJJbWFnZUJhY2tncm91bmQ9e3ZpZGVvVG91ckltYWdlQmFja2dyb3VuZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsVG91ckltYWdlQmFja2dyb3VuZD17dmlydHVhbFRvdXJJbWFnZUJhY2tncm91bmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd09ubHlIZXJvSW1hZ2U9e2Fzc2V0cy5sZW5ndGggPT09IDF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEdhbGxlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUNsaWNrZWRIYW5kbGVyPXtpbWFnZUNsaWNrZWRIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldHM9e2Fzc2V0c1RvU2hvdyhpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwaG90by12aWV3IG1vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdhbGxlcnlIZXJvTW9iaWxlIGFzc2V0cz17YXNzZXRzfSB0b3Vyc0NvdW50PXt0b3Vyc0NvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyPXt2aXJ0dWFsVG91cn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VDbGlja2VkSGFuZGxlcj17aW1hZ2VDbGlja2VkSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJTcGVjaWFscz17d2ViU3BlY2lhbHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdmFpbGFibGVOb3c9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz4gOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VmlldyA9PT0gXCJWaWRlbyBUb3VyXCIgPyA8VmlkZW9Ub3VycyB2aWRlb1RvdXJVcmxzPXt2aWRlb1RvdXJzfS8+IDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VmlldyA9PT0gXCJWaXJ0dWFsIFRvdXJcIiA/IDxWaXJ0dWFsVG91ciB2aXJ0dWFsVG91clVybD17dmlydHVhbFRvdXJ9Lz4gOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgPEhlcm9CYWRnZVN0YXRzIGN1cnJlbnRWaWV3PXtjdXJyZW50Vmlld30gc2V0Q3VycmVudFZpZXc9e3NldEN1cnJlbnRWaWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQXNzZXRzPXthc3NldHM/Lmxlbmd0aH0gdmlkZW9Ub3Vycz17dmlkZW9Ub3Vyc30gdmlydHVhbFRvdXI9e3ZpcnR1YWxUb3VyfS8+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC8+XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxBc3NldE1vZGFsIGFzc2V0VXJsPXtmbG9vcnBsYW4ucGhvdG99IGFzc2V0VGl0bGU9XCJGbG9vcnBsYW4gaW1hZ2VcIiBzaG93TW9kYWw9e3Nob3dGbG9vcnBsYW5Nb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dNb2RhbD17c2V0U2hvd0Zsb29ycGxhbk1vZGFsfSBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tLXR3by1jb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNvbHVtbi1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDM+e2Zsb29ycGxhbi5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQ+JHtmbG9vcnBsYW4uc2hvcnRUZXJtLnByaWNlRm9yNGFuZE1vcmVNb250aHN9IC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2Zsb29ycGxhbi5zaG9ydFRlcm0ucHJpY2VGb3I1VG8xM0RheXN9L0RheTwvaDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmbG9vcnBsYW4tLWRlc2NyaXB0aW9uXCI+e3ByaW50Rmxvb3JwbGFuQWRkcmVzcygpfTwvcD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Rmxvb3JwbGFuTW9kYWwodHJ1ZSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBuYW1lPVwibWF4XCIgb3JpZW50YXRpb249XCJyaWdodFwiPlZpZXdGbG9vcnBsYW48L0ljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCZuYnNwOyZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gc2l6ZT1cInNtYWxsXCIgb25DbGljaz17KCkgPT4gaGFuZGxlUmVmVG9NYXAoKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIG9yaWVudGF0aW9uPVwicmlnaHRcIiBuYW1lPVwibWFwXCI+VmlldyBvbiBNYXA8L0ljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbi5wcm9wZXJ0eS5idXNSb3V0ZXMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkJ1cyBSb3V0ZXM6Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLnByb3BlcnR5LmJ1c1JvdXRlcy5tYXAoKGJ1c1JvdXRlLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBrZXk9e1wiYnVzLXJvdXRlLVwiICsgaW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXtidXNSb3V0ZS5idXNSb3V0ZUxpbmt9IHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vcmVmZXJyZXJcIj57YnVzUm91dGUuYnVzUm91dGV9PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5kZXggPCBmbG9vcnBsYW4ucHJvcGVydHkuYnVzUm91dGVzLmxlbmd0aCAtIDEgPyBcIiwgXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiIGZsb29ycGxhbi1jb2x1bW4tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJwcmltYXJ5XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2NvbnRhY3RDbGlja0hhbmRsZXJ9PmNvbnRhY3QgdXM8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXthcHBseUNsaWNrSGFuZGxlcn0+YXBwbHk8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hhcmVCdXR0b24gdGl0bGU9XCJDaGVjayBvdXQgdGhpcyBhcGFydG1lbnRcIiBzaXplPVwibGFyZ2VcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNob3J0VGVybUZsb29ycGxhbkhlcm9Qcm9wcyB7XG4gICAgZmxvb3JwbGFuOiBGbG9vcnBsYW5TaG9ydFRlcm07XG4gICAgd2ViU3BlY2lhbHM6IFdlYlNwZWNpYWxbXTtcbiAgICBjb250YWN0Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGFwcGx5Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGhhbmRsZVJlZlRvTWFwOiAoKSA9PiB2b2lkO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGdCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxvQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sa0JBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGVBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLFdBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGlCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxZQUFBLEdBQUFiLE9BQUE7QUFBbUQsU0FBQWMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWhCLHdCQUFBZ0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBakIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFJLENBQUEsR0FBQVIsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBSSxDQUFBLEtBQUFBLENBQUEsQ0FBQVgsR0FBQSxJQUFBVyxDQUFBLENBQUFDLEdBQUEsSUFBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBSSxDQUFBLElBQUFWLENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxDQUFBSCxPQUFBLEdBQUFMLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFnQixHQUFBLENBQUFuQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUU1QyxNQUFNWSxzQkFBNkQsR0FBR0MsSUFBQSxJQUNZO0VBQUEsSUFBckY7SUFBQ0MsU0FBUztJQUFFQyxtQkFBbUI7SUFBRUMsaUJBQWlCO0lBQUVDLGNBQWM7SUFBRUM7RUFBVyxDQUFDLEdBQUFMLElBQUE7RUFDaEYsTUFBTSxDQUFDTSxNQUFNLEVBQUVDLFNBQVMsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBVSxFQUFFLENBQUM7RUFDakQsTUFBTSxDQUFDQyxlQUFlLEVBQUVDLGtCQUFrQixDQUFDLEdBQUcsSUFBQUYsZUFBUSxFQUFDLElBQUksQ0FBQztFQUM1RCxNQUFNLENBQUNHLFVBQVUsRUFBRUMsYUFBYSxDQUFDLEdBQUcsSUFBQUosZUFBUSxFQUFXLEVBQUUsQ0FBQztFQUMxRCxNQUFNLENBQUNLLFdBQVcsRUFBRUMsY0FBYyxDQUFDLEdBQUcsSUFBQU4sZUFBUSxFQUFxQk8sU0FBUyxDQUFDO0VBRTdFLE1BQU0sQ0FBQ0Msd0JBQXdCLEVBQUVDLDJCQUEyQixDQUFDLEdBQUcsSUFBQVQsZUFBUSxFQUFTLENBQUM7RUFDbEYsTUFBTSxDQUFDVSwwQkFBMEIsRUFBRUMsNkJBQTZCLENBQUMsR0FBRyxJQUFBWCxlQUFRLEVBQVMsQ0FBQztFQUV0RixNQUFNLENBQUNZLGtCQUFrQixFQUFFQyxxQkFBcUIsQ0FBQyxHQUFHLElBQUFiLGVBQVEsRUFBQyxLQUFLLENBQUM7RUFDbkUsTUFBTSxDQUFDYyxVQUFVLEVBQUVDLGFBQWEsQ0FBQyxHQUFHLElBQUFmLGVBQVEsRUFBQyxDQUFDLENBQUM7RUFDL0MsTUFBTSxDQUFDZ0IsVUFBVSxFQUFFQyxhQUFhLENBQUMsR0FBRyxJQUFBakIsZUFBUSxFQUFDLENBQUMsQ0FBQztFQUMvQyxNQUFNLENBQUNrQixXQUFXLEVBQUVDLGNBQWMsQ0FBQyxHQUFHLElBQUFuQixlQUFRLEVBQXFCLE9BQU8sQ0FBQztFQUMzRSxNQUFNLENBQUNvQixZQUFZLEVBQUVDLGVBQWUsQ0FBQyxHQUFHLElBQUFyQixlQUFRLEVBQVEsQ0FBQyxDQUFVLENBQUM7RUFDcEUsTUFBTSxDQUFDc0IsVUFBVSxFQUFFQyxhQUFhLENBQUMsR0FBRyxJQUFBdkIsZUFBUSxFQUFDLENBQUMsQ0FBQztFQUMvQyxNQUFNLENBQUN3QixTQUFTLEVBQUVDLFlBQVksQ0FBQyxHQUFHLElBQUF6QixlQUFRLEVBQUMsS0FBSyxDQUFDO0VBQ2pELE1BQU0sQ0FBQzBCLG1CQUFtQixFQUFFQyxzQkFBc0IsQ0FBQyxHQUFHLElBQUEzQixlQUFRLEVBQUMsQ0FBQyxDQUFDO0VBRWpFLE1BQU00QixTQUFTLEdBQUcsQ0FBQztFQUNuQixNQUFNQyxtQkFBbUIsR0FBSUMsS0FBWSxJQUFLO0lBQzFDTCxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2xCSixlQUFlLENBQUNTLEtBQUssQ0FBQztJQUN0QlAsYUFBYSxDQUFDekIsTUFBTSxDQUFDaUMsU0FBUyxDQUFDQyxLQUFLLElBQUlBLEtBQUssQ0FBQ0MsRUFBRSxLQUFLSCxLQUFLLENBQUNHLEVBQUUsQ0FBQyxDQUFDO0VBQ25FLENBQUM7RUFDRCxNQUFNQyxpQkFBaUIsR0FBR0EsQ0FBQSxLQUFNO0lBQzVCVCxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ25CSixlQUFlLENBQUMsQ0FBQyxDQUFVLENBQUM7RUFDaEMsQ0FBQztFQUNELElBQUFjLGdCQUFTLEVBQUMsTUFBTTtJQUNaLE1BQU1DLE1BQWUsR0FBRyxFQUFFO0lBQzFCQSxNQUFNLENBQUNDLElBQUksQ0FBQztNQUFDSixFQUFFLEVBQUUsSUFBQUssb0JBQWEsRUFBQzdDLFNBQVMsQ0FBQzhDLFVBQVUsQ0FBQztNQUFFQyxJQUFJLEVBQUU7SUFBYSxDQUFVLENBQUM7SUFFcEYsSUFBSUMsY0FBYyxHQUFHZixtQkFBbUI7SUFFeEMsSUFBSWpDLFNBQVMsQ0FBQ2lELGNBQWMsRUFBRTtNQUMxQixJQUFBQywyQkFBYSxFQUFDbEQsU0FBUyxDQUFDaUQsY0FBYyxDQUFDLENBQUNFLElBQUksQ0FBQ0MsYUFBYSxJQUFJO1FBQzFELElBQUlBLGFBQWEsQ0FBQ0MsTUFBTSxHQUFHLENBQUMsRUFDeEJWLE1BQU0sQ0FBQ1csR0FBRyxDQUFDLENBQUM7UUFFaEJYLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLEdBQUdRLGFBQWEsQ0FBQztRQUU3QixJQUFJVCxNQUFNLENBQUNVLE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDbkIsTUFBTUUsa0JBQWtCLEdBQUcsSUFBQUMsMEJBQVksRUFBQ2IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDSCxFQUFFLEVBQUV4QyxTQUFTLENBQUN5RCxRQUFRLENBQUNqQixFQUFFLENBQUM7VUFDNUUsSUFBSXhDLFNBQVMsQ0FBQzBELGVBQWUsRUFBRTtZQUMzQjdDLGNBQWMsQ0FBQ2IsU0FBUyxDQUFDMEQsZUFBZSxDQUFDO1lBQ3pDeEMsNkJBQTZCLENBQUNxQyxrQkFBa0IsQ0FBQztZQUNqRFAsY0FBYyxJQUFJLENBQUM7VUFDdkI7VUFFQSxNQUFNVyxTQUFTLEdBQUcsRUFBRTtVQUNwQixJQUFJM0QsU0FBUyxDQUFDNEQsYUFBYSxFQUN2QkQsU0FBUyxDQUFDZixJQUFJLENBQUM1QyxTQUFTLENBQUM0RCxhQUFhLENBQUM7VUFDM0MsSUFBSTVELFNBQVMsQ0FBQzZELHVCQUF1QixFQUNqQ0YsU0FBUyxDQUFDZixJQUFJLENBQUM1QyxTQUFTLENBQUM2RCx1QkFBdUIsQ0FBQztVQUNyRGxELGFBQWEsQ0FBQ2dELFNBQVMsQ0FBQztVQUN4QixJQUFJQSxTQUFTLENBQUNOLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEJyQywyQkFBMkIsQ0FBQ3VDLGtCQUFrQixDQUFDO1lBQy9DUCxjQUFjLElBQUksQ0FBQztVQUN2QjtVQUVBLElBQUljLGdCQUFnQixHQUFHLENBQUNILFNBQVMsQ0FBQ04sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLckQsU0FBUyxDQUFDMEQsZUFBZSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7VUFDM0ZsQyxhQUFhLENBQUNzQyxnQkFBZ0IsQ0FBQztRQUVuQztNQUVKLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsTUFBTTtRQUViLElBQUlDLEtBQUssR0FBRyxDQUFDO1FBRWIsSUFBSXJCLE1BQU0sQ0FBQ1UsTUFBTSxHQUFHTCxjQUFjLEVBQUU7VUFDaEMsTUFBTWlCLFNBQVMsR0FBR3RCLE1BQU0sQ0FBQ1UsTUFBTSxHQUFHTCxjQUFjO1VBQ2hEZ0IsS0FBSyxJQUFJQyxTQUFTLEdBQUcsQ0FBQztVQUN0QixJQUFJQSxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFDakJELEtBQUssSUFBSSxDQUFDO1FBQ2xCO1FBRUExQyxhQUFhLENBQUM0QyxJQUFJLENBQUNDLEtBQUssQ0FBQ0gsS0FBSyxDQUFDLENBQUM7UUFDaEM5QixzQkFBc0IsQ0FBQ2MsY0FBYyxDQUFDO1FBQ3RDMUMsU0FBUyxDQUFDcUMsTUFBTSxDQUFDO1FBQ2pCbEMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO01BQzdCLENBQUMsQ0FBQztJQUNOLENBQUMsTUFBTTtNQUNISCxTQUFTLENBQUNxQyxNQUFNLENBQUM7TUFDakJsQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7SUFDN0I7RUFFSixDQUFDLEVBQUUsQ0FBQ1QsU0FBUyxDQUFDLENBQUM7RUFHZixNQUFNb0UscUJBQXFCLEdBQUdBLENBQUEsS0FBTTtJQUVoQyxPQUFPcEUsU0FBUyxDQUFDcUUsT0FBTyxHQUFHLElBQUksR0FBR0MsNEJBQVcsQ0FBQ0MsSUFBSSxHQUFHLElBQUksR0FBR0QsNEJBQVcsQ0FBQ0UsS0FBSyxHQUFHLEdBQUcsR0FBR3hFLFNBQVMsQ0FBQ3lFLE9BQU87RUFDM0csQ0FBQztFQUNELE1BQU1DLGlCQUFpQixHQUFJQyxVQUFrQixJQUFLQSxVQUFVLEtBQUssQ0FBQztFQUVsRSxNQUFNQyxZQUFZLEdBQUlELFVBQWtCLElBQUs7SUFFekMsSUFBSUQsaUJBQWlCLENBQUNDLFVBQVUsQ0FBQyxFQUFFO01BQy9CRSxPQUFPLENBQUNDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRTdDLG1CQUFtQixDQUFDO01BQ3ZELE9BQU81QixNQUFNLENBQUMwRSxLQUFLLENBQUMsQ0FBQyxFQUFFOUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ25EO0lBR0EsTUFBTStDLFVBQVUsR0FBRy9DLG1CQUFtQixHQUFHLENBQUMsR0FBSUUsU0FBUyxJQUFJd0MsVUFBVSxHQUFHLENBQUMsQ0FBRTtJQUMzRSxNQUFNTSxRQUFRLEdBQUdoRCxtQkFBbUIsR0FBRyxDQUFDLEdBQUlFLFNBQVMsR0FBR3dDLFVBQVc7SUFFbkUsT0FBT3RFLE1BQU0sQ0FBQzBFLEtBQUssQ0FBQ0MsVUFBVSxFQUFFQyxRQUFRLEdBQUc1RSxNQUFNLENBQUNnRCxNQUFNLEdBQUdoRCxNQUFNLENBQUNnRCxNQUFNLEdBQUc0QixRQUFRLENBQUM7RUFDeEYsQ0FBQztFQUNELG9CQUNJeEgsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQTtJQUFTQyxTQUFTLEVBQUM7RUFBb0MsR0FDbEQzRSxlQUFlLGdCQUFHL0MsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFDbEgsb0JBQUEsQ0FBQW9ILG1CQUFtQixNQUFDLENBQUMsZ0JBQ3JDM0gsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFBekgsTUFBQSxDQUFBc0IsT0FBQSxDQUFBc0csUUFBQSxxQkFDSTVILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWMsZ0JBQ3pCMUgsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFDakgsYUFBQSxDQUFBcUgsWUFBWTtJQUFDakYsTUFBTSxFQUFFQSxNQUFPO0lBQUNzQixZQUFZLEVBQUVBLFlBQWE7SUFDM0NDLGVBQWUsRUFBRUEsZUFBZ0I7SUFBQ0csU0FBUyxFQUFFQSxTQUFVO0lBQ3ZERixVQUFVLEVBQUVBLFVBQVc7SUFBQ0MsYUFBYSxFQUFFQSxhQUFjO0lBQ3JEVyxpQkFBaUIsRUFBRUEsaUJBQWtCO0lBQUM4QyxVQUFVLEVBQUV2RixTQUFTLENBQUN5RCxRQUFRLENBQUNqQjtFQUFHLENBQUMsQ0FBQyxFQUN2RmYsV0FBVyxLQUFLLE9BQU8sZ0JBQ3BCaEUsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFBekgsTUFBQSxDQUFBc0IsT0FBQSxDQUFBc0csUUFBQSxxQkFDSTVILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWlCLGdCQUM1QjFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQ3RILFVBQUEsQ0FBQTRILFVBQVU7SUFDUEMsV0FBVyxFQUFFLENBQUMsR0FBR0MsS0FBSyxDQUFDckUsVUFBVSxDQUFDLENBQUMsQ0FBQ3NFLEdBQUcsQ0FBQyxDQUFDQyxDQUFDLEVBQUVoRyxDQUFDLEtBQ3hDQSxDQUFDLElBQUksQ0FBQyxnQkFBSW5DLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQzNHLGlCQUFBLENBQUFzSCxnQkFBZ0I7TUFDcEJ4RixNQUFNLEVBQUV1RSxZQUFZLENBQUNoRixDQUFDLENBQUU7TUFDeEJrRyxnQkFBZ0IsRUFBRTtRQUNkekIsT0FBTyxFQUFFckUsU0FBUyxDQUFDcUUsT0FBTztRQUMxQkUsSUFBSSxFQUFFRCw0QkFBVyxDQUFDQyxJQUFJO1FBQ3RCQyxLQUFLLEVBQUVGLDRCQUFXLENBQUNFLEtBQUs7UUFDeEJDLE9BQU8sRUFBRXpFLFNBQVMsQ0FBQ3lFO01BQ3ZCLENBQUU7TUFDRmMsVUFBVSxFQUFFdkYsU0FBUyxDQUFDeUQsUUFBUSxDQUFDakIsRUFBRztNQUNsQ3VELFNBQVMsRUFBRTFGLE1BQU0sQ0FBQyxDQUFDLENBQUU7TUFDckIrQixtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDaEMsV0FBVyxFQUFFQSxXQUFZO01BQ3pCNEYsY0FBYyxFQUFFLEtBQU07TUFDdEJ0RSxjQUFjLEVBQUVBLGNBQWU7TUFDL0JYLHdCQUF3QixFQUFFQSx3QkFBeUI7TUFDbkRFLDBCQUEwQixFQUFFQSwwQkFBMkI7TUFDdkRnRixpQkFBaUIsRUFBRTVGLE1BQU0sQ0FBQ2dELE1BQU0sS0FBSztJQUFFLENBQzFDLENBQUMsZ0JBQ0Y1RixNQUFBLENBQUFzQixPQUFBLENBQUFtRyxhQUFBLENBQUMxRyxZQUFBLENBQUEwSCxXQUFXO01BQ1I5RCxtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDbUQsVUFBVSxFQUFFdkYsU0FBUyxDQUFDeUQsUUFBUSxDQUFDakIsRUFBRztNQUNsQ25DLE1BQU0sRUFBRXVFLFlBQVksQ0FBQ2hGLENBQUM7SUFBRSxDQUMzQixDQUNUO0VBQUUsQ0FBQyxDQUNOLENBQUMsZUFDTm5DLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQW1CLGdCQUM5QjFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQ2hILGtCQUFBLENBQUFpSSxpQkFBaUI7SUFBQzlGLE1BQU0sRUFBRUEsTUFBTztJQUFDa0IsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZDWCxXQUFXLEVBQUVBLFdBQVk7SUFDekJjLGNBQWMsRUFBRUEsY0FBZTtJQUMvQlUsbUJBQW1CLEVBQUVBLG1CQUFvQjtJQUN6Q2hDLFdBQVcsRUFBRUEsV0FBWTtJQUN6QjRGLGNBQWMsRUFBRSxLQUFNO0lBQ3RCVCxVQUFVLEVBQUV2RixTQUFTLENBQUN5RCxRQUFRLENBQUNqQjtFQUFHLENBQUMsQ0FDckQsQ0FDUCxDQUFDLEdBQUcsRUFBRSxFQUdYZixXQUFXLEtBQUssWUFBWSxnQkFBR2hFLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQy9HLFdBQUEsQ0FBQWlJLFVBQVU7SUFBQ0MsYUFBYSxFQUFFM0Y7RUFBVyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQzVFZSxXQUFXLEtBQUssY0FBYyxnQkFBR2hFLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQzlHLFlBQUEsQ0FBQWtJLFdBQVc7SUFBQ0MsY0FBYyxFQUFFM0Y7RUFBWSxDQUFDLENBQUMsR0FBRyxFQUFFLGVBQ2xGbkQsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFDN0csZUFBQSxDQUFBbUksY0FBYztJQUFDL0UsV0FBVyxFQUFFQSxXQUFZO0lBQUNDLGNBQWMsRUFBRUEsY0FBZTtJQUN6RCtFLFdBQVcsRUFBRXBHLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFZ0QsTUFBTztJQUFDM0MsVUFBVSxFQUFFQSxVQUFXO0lBQUNFLFdBQVcsRUFBRUE7RUFBWSxDQUFDLENBRTlGLENBQ1AsQ0FBQyxlQUdQbkQsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFDNUcsV0FBQSxDQUFBb0ksVUFBVTtJQUFDQyxRQUFRLEVBQUUzRyxTQUFTLENBQUM0RyxLQUFNO0lBQUNDLFVBQVUsRUFBQyxpQkFBaUI7SUFBQzlFLFNBQVMsRUFBRVosa0JBQW1CO0lBQ3RGYSxZQUFZLEVBQUVaLHFCQUFzQjtJQUFDbUUsVUFBVSxFQUFFdkYsU0FBUyxDQUFDeUQsUUFBUSxDQUFDakI7RUFBRyxDQUFDLENBQUMsZUFDckYvRSxNQUFBLENBQUFzQixPQUFBLENBQUFtRyxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUFXLGdCQUN0QjFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQXdCLGdCQUNuQzFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQXVCLGdCQUNsQzFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsYUFBS2xGLFNBQVMsQ0FBQytDLElBQVMsQ0FBQyxlQUN6QnRGLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsYUFBSSxHQUFDLEVBQUNsRixTQUFTLENBQUM4RyxTQUFTLENBQUNDLHNCQUFzQixFQUFDLE1BQzVDLEVBQUMvRyxTQUFTLENBQUM4RyxTQUFTLENBQUNFLGlCQUFpQixFQUFDLE1BQVEsQ0FBQyxlQUNyRHZKLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBR0MsU0FBUyxFQUFDO0VBQXdCLEdBQUVmLHFCQUFxQixDQUFDLENBQUssQ0FBQyxlQUVuRTNHLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQXFCLGdCQUNoQzFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQ3RILFVBQUEsQ0FBQXFKLE1BQU07SUFBQ0MsSUFBSSxFQUFDLE9BQU87SUFBQ0MsT0FBTyxFQUFFQSxDQUFBLEtBQU0vRixxQkFBcUIsQ0FBQyxJQUFJO0VBQUUsZ0JBQzVEM0QsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFDdEgsVUFBQSxDQUFBd0osSUFBSTtJQUFDckUsSUFBSSxFQUFDLEtBQUs7SUFBQ3NFLFdBQVcsRUFBQztFQUFPLEdBQUMsZUFBbUIsQ0FDcEQsQ0FBQyxhQUVULGVBQUE1SixNQUFBLENBQUFzQixPQUFBLENBQUFtRyxhQUFBLENBQUN0SCxVQUFBLENBQUFxSixNQUFNO0lBQUNDLElBQUksRUFBQyxPQUFPO0lBQUNDLE9BQU8sRUFBRUEsQ0FBQSxLQUFNaEgsY0FBYyxDQUFDO0VBQUUsZ0JBQ2pEMUMsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFDdEgsVUFBQSxDQUFBd0osSUFBSTtJQUFDQyxXQUFXLEVBQUMsT0FBTztJQUFDdEUsSUFBSSxFQUFDO0VBQUssR0FBQyxhQUFpQixDQUNsRCxDQUFDLEVBQ1IvQyxTQUFTLENBQUN5RCxRQUFRLENBQUM2RCxTQUFTLENBQUNqRSxNQUFNLEdBQUcsQ0FBQyxnQkFDcEM1RixNQUFBLENBQUFzQixPQUFBLENBQUFtRyxhQUFBLFlBQUcsaUJBQ0MsRUFBQ2xGLFNBQVMsQ0FBQ3lELFFBQVEsQ0FBQzZELFNBQVMsQ0FBQzNCLEdBQUcsQ0FBQyxDQUFDNEIsUUFBUSxFQUFFQyxLQUFLLGtCQUM5Qy9KLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBTXVDLEdBQUcsRUFBRSxZQUFZLEdBQUdEO0VBQU0sZ0JBQzVCL0osTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQTtJQUFHd0MsSUFBSSxFQUFFSCxRQUFRLENBQUNJLFlBQWE7SUFBQ0MsTUFBTSxFQUFDLFFBQVE7SUFDNUNDLEdBQUcsRUFBQztFQUFZLEdBQUVOLFFBQVEsQ0FBQ0EsUUFBWSxDQUFDLEVBQzFDQyxLQUFLLEdBQUd4SCxTQUFTLENBQUN5RCxRQUFRLENBQUM2RCxTQUFTLENBQUNqRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUN4RCxDQUNWLENBQ0QsQ0FBQyxHQUNGLEVBQ0wsQ0FDSixDQUFDLGVBQ041RixNQUFBLENBQUFzQixPQUFBLENBQUFtRyxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUFNLGdCQUNqQjFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQXlCLGdCQUNwQzFILE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQ3RILFVBQUEsQ0FBQXFKLE1BQU07SUFBQ2EsT0FBTyxFQUFDLFNBQVM7SUFBQ1osSUFBSSxFQUFDLFFBQVE7SUFBQ0MsT0FBTyxFQUFFbEg7RUFBb0IsR0FBQyxZQUFrQixDQUFDLGVBQ3pGeEMsTUFBQSxDQUFBc0IsT0FBQSxDQUFBbUcsYUFBQSxDQUFDdEgsVUFBQSxDQUFBcUosTUFBTTtJQUFDYSxPQUFPLEVBQUMsVUFBVTtJQUFDWixJQUFJLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUVqSDtFQUFrQixHQUFDLE9BQWEsQ0FBQyxlQUNuRnpDLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQ3RILFVBQUEsQ0FBQW1LLFdBQVc7SUFBQ0MsS0FBSyxFQUFDLDBCQUEwQjtJQUFDZCxJQUFJLEVBQUM7RUFBTyxDQUFDLENBQzFELENBQ0osQ0FDSixDQUNKLENBQ0EsQ0FBQztBQUVsQixDQUFDO0FBQUNlLE9BQUEsQ0FBQW5JLHNCQUFBLEdBQUFBLHNCQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@renaissancerentals/renaissance-component",
3
- "version": "12.1.53",
3
+ "version": "12.1.55",
4
4
  "description": "Renaissance rentals UI component library",
5
5
  "author": "asikpradhan",
6
6
  "license": "MIT",
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import './assets/GalleryHero.scss';
3
- import { Asset } from "../asset/data/Asset";
4
- import { WebSpecial } from "../floorplan/data/Floorplan";
5
- export declare const GalleryHeroMain: React.FC<GalleryHeroProps>;
6
- export interface GalleryHeroProps {
7
- assetsToShow: Asset[];
8
- virtualTour?: string;
9
- isAvailableNow?: boolean;
10
- isFirst: boolean;
11
- toursCount: number;
12
- webSpecials: WebSpecial[];
13
- setCurrentView: (view: "photo" | "virtual tour" | "video tour") => void;
14
- imageClickedHandler: (image: Asset) => void;
15
- propertyId: string;
16
- }
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GalleryHeroMain = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- require("./assets/GalleryHero.scss");
9
- var _AssetService = require("../asset/service/AssetService");
10
- var _muncherUi = require("@contentmunch/muncher-ui");
11
- var _HeroImageCard = require("./HeroImageCard");
12
- var _icon = _interopRequireDefault(require("../floorplan/card/assets/360-icon.png"));
13
- var _videoIcon = _interopRequireDefault(require("../floorplan/card/assets/video-icon.png"));
14
- var _SpecialOfferBadge = require("../specialOffer/SpecialOfferBadge");
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- const GalleryHeroMain = _ref => {
17
- let {
18
- virtualTour,
19
- setCurrentView,
20
- isAvailableNow,
21
- webSpecials,
22
- assetsToShow,
23
- isFirst,
24
- toursCount,
25
- imageClickedHandler,
26
- propertyId
27
- } = _ref;
28
- const cardImageIcon = i => virtualTour && i === 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
29
- src: _icon.default,
30
- alt: "tour icon",
31
- height: 50
32
- }), /*#__PURE__*/_react.default.createElement("p", null, "Virtual Tour")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
33
- src: _videoIcon.default,
34
- alt: "video icon",
35
- height: 40
36
- }), /*#__PURE__*/_react.default.createElement("p", null, "Video Tour"));
37
- return /*#__PURE__*/_react.default.createElement("div", {
38
- className: "div-gallery"
39
- }, /*#__PURE__*/_react.default.createElement("div", {
40
- className: "badge--info"
41
- }, isFirst && isAvailableNow ? /*#__PURE__*/_react.default.createElement(_muncherUi.Badge, {
42
- variant: "secondary"
43
- }, "Available Now") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), isFirst && webSpecials.length > 0 ? /*#__PURE__*/_react.default.createElement(_SpecialOfferBadge.SpecialOfferBadge, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), isFirst && webSpecials.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
44
- className: "gallery--information"
45
- }, /*#__PURE__*/_react.default.createElement("p", null, webSpecials[0].description)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement("div", {
46
- className: "gallery-hero-two-columns"
47
- }, isFirst ? /*#__PURE__*/_react.default.createElement("div", {
48
- className: assetsToShow.length < 2 ? "gallery-hero-one" : "gallery-hero-column-one"
49
- }, assetsToShow.slice(0, 1).map(asset => /*#__PURE__*/_react.default.createElement("img", {
50
- src: (0, _AssetService.assetUrlFrom)(asset.id, propertyId),
51
- alt: asset.name,
52
- key: asset.id,
53
- className: "gallery-hero--image",
54
- onClick: () => imageClickedHandler(asset)
55
- }))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), assetsToShow.length > 1 ? /*#__PURE__*/_react.default.createElement("div", {
56
- className: isFirst ? "gallery-hero-column-two" : "gallery-hero-column"
57
- }, isFirst ? [...Array(toursCount)].map((x, i) => /*#__PURE__*/_react.default.createElement(_HeroImageCard.HeroImageCard, {
58
- backgroundImage: (0, _AssetService.assetUrlFrom)(assetsToShow[i].id, propertyId),
59
- key: "tour" + i,
60
- onClick: () => {
61
- virtualTour && i === 0 ? setCurrentView("virtual tour") : setCurrentView("video tour");
62
- }
63
- }, cardImageIcon(i))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), assetsToShow.slice(isFirst ? 1 : 0, assetsToShow.length).map(asset => /*#__PURE__*/_react.default.createElement("img", {
64
- src: (0, _AssetService.assetUrlFrom)(asset.id, propertyId),
65
- alt: asset.name,
66
- key: asset.id,
67
- className: "gallery-hero--image",
68
- onClick: () => imageClickedHandler(asset)
69
- }))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)));
70
- };
71
- exports.GalleryHeroMain = GalleryHeroMain;
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Bc3NldFNlcnZpY2UiLCJfbXVuY2hlclVpIiwiX0hlcm9JbWFnZUNhcmQiLCJfaWNvbiIsIl92aWRlb0ljb24iLCJfU3BlY2lhbE9mZmVyQmFkZ2UiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkdhbGxlcnlIZXJvTWFpbiIsIl9yZWYiLCJ2aXJ0dWFsVG91ciIsInNldEN1cnJlbnRWaWV3IiwiaXNBdmFpbGFibGVOb3ciLCJ3ZWJTcGVjaWFscyIsImFzc2V0c1RvU2hvdyIsImlzRmlyc3QiLCJ0b3Vyc0NvdW50IiwiaW1hZ2VDbGlja2VkSGFuZGxlciIsInByb3BlcnR5SWQiLCJjYXJkSW1hZ2VJY29uIiwiaSIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsInNyYyIsInRvdXJJY29uIiwiYWx0IiwiaGVpZ2h0IiwidmlkZW9JY29uIiwiY2xhc3NOYW1lIiwiQmFkZ2UiLCJ2YXJpYW50IiwibGVuZ3RoIiwiU3BlY2lhbE9mZmVyQmFkZ2UiLCJkZXNjcmlwdGlvbiIsInNsaWNlIiwibWFwIiwiYXNzZXQiLCJhc3NldFVybEZyb20iLCJpZCIsIm5hbWUiLCJrZXkiLCJvbkNsaWNrIiwiQXJyYXkiLCJ4IiwiSGVyb0ltYWdlQ2FyZCIsImJhY2tncm91bmRJbWFnZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2FsbGVyeS9HYWxsZXJ5SGVyb01haW4udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAnLi9hc3NldHMvR2FsbGVyeUhlcm8uc2Nzcyc7XG5pbXBvcnQge0Fzc2V0fSBmcm9tIFwiLi4vYXNzZXQvZGF0YS9Bc3NldFwiO1xuaW1wb3J0IHthc3NldFVybEZyb219IGZyb20gXCIuLi9hc3NldC9zZXJ2aWNlL0Fzc2V0U2VydmljZVwiO1xuaW1wb3J0IHtCYWRnZX0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuaW1wb3J0IHtIZXJvSW1hZ2VDYXJkfSBmcm9tIFwiLi9IZXJvSW1hZ2VDYXJkXCI7XG5pbXBvcnQgdG91ckljb24gZnJvbSBcIi4uL2Zsb29ycGxhbi9jYXJkL2Fzc2V0cy8zNjAtaWNvbi5wbmdcIjtcbmltcG9ydCB2aWRlb0ljb24gZnJvbSBcIi4uL2Zsb29ycGxhbi9jYXJkL2Fzc2V0cy92aWRlby1pY29uLnBuZ1wiO1xuaW1wb3J0IHtXZWJTcGVjaWFsfSBmcm9tIFwiLi4vZmxvb3JwbGFuL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge1NwZWNpYWxPZmZlckJhZGdlfSBmcm9tIFwiLi4vc3BlY2lhbE9mZmVyL1NwZWNpYWxPZmZlckJhZGdlXCI7XG5cbmV4cG9ydCBjb25zdCBHYWxsZXJ5SGVyb01haW46IFJlYWN0LkZDPEdhbGxlcnlIZXJvUHJvcHM+ID0gKFxuICAgIHtcbiAgICAgICAgdmlydHVhbFRvdXIsIHNldEN1cnJlbnRWaWV3LCBpc0F2YWlsYWJsZU5vdywgd2ViU3BlY2lhbHMsXG4gICAgICAgIGFzc2V0c1RvU2hvdywgaXNGaXJzdCwgdG91cnNDb3VudCwgaW1hZ2VDbGlja2VkSGFuZGxlciwgcHJvcGVydHlJZFxuICAgIH0pID0+IHtcblxuICAgIGNvbnN0IGNhcmRJbWFnZUljb24gPSAoaTogbnVtYmVyKSA9PiB2aXJ0dWFsVG91ciAmJiBpID09PSAwID9cbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxpbWcgc3JjPXt0b3VySWNvbn0gYWx0PVwidG91ciBpY29uXCIgaGVpZ2h0PXs1MH0vPlxuICAgICAgICAgICAgPHA+VmlydHVhbCBUb3VyPC9wPlxuICAgICAgICA8Lz4gOlxuICAgICAgICA8PlxuICAgICAgICAgICAgPGltZyBzcmM9e3ZpZGVvSWNvbn0gYWx0PVwidmlkZW8gaWNvblwiIGhlaWdodD17NDB9Lz5cbiAgICAgICAgICAgIDxwPlZpZGVvIFRvdXI8L3A+XG4gICAgICAgIDwvPlxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXYtZ2FsbGVyeVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYWRnZS0taW5mb1wiPlxuICAgICAgICAgICAgICAgIHtpc0ZpcnN0ICYmIGlzQXZhaWxhYmxlTm93ID9cbiAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIj5BdmFpbGFibGUgTm93PC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7aXNGaXJzdCAmJiB3ZWJTcGVjaWFscy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgPFNwZWNpYWxPZmZlckJhZGdlLz4gOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2lzRmlyc3QgJiYgd2ViU3BlY2lhbHMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5LS1pbmZvcm1hdGlvblwiPjxwPnt3ZWJTcGVjaWFsc1swXS5kZXNjcmlwdGlvbn08L3A+PC9kaXY+IDogPD48Lz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5LWhlcm8tdHdvLWNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICB7aXNGaXJzdCA/XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YXNzZXRzVG9TaG93Lmxlbmd0aCA8IDIgPyBcImdhbGxlcnktaGVyby1vbmVcIiA6IFwiZ2FsbGVyeS1oZXJvLWNvbHVtbi1vbmVcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzVG9TaG93LnNsaWNlKDAsIDEpLm1hcCgoYXNzZXQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXthc3NldFVybEZyb20oYXNzZXQuaWQsIHByb3BlcnR5SWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17YXNzZXQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Fzc2V0LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImdhbGxlcnktaGVyby0taW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGltYWdlQ2xpY2tlZEhhbmRsZXIoYXNzZXQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IDogPD48Lz59XG4gICAgICAgICAgICAgICAge2Fzc2V0c1RvU2hvdy5sZW5ndGggPiAxID9cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2lzRmlyc3QgPyBcImdhbGxlcnktaGVyby1jb2x1bW4tdHdvXCIgOiBcImdhbGxlcnktaGVyby1jb2x1bW5cIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aXNGaXJzdCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWy4uLkFycmF5KHRvdXJzQ291bnQpXS5tYXAoKHgsIGkpID0+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlcm9JbWFnZUNhcmQgYmFja2dyb3VuZEltYWdlPXthc3NldFVybEZyb20oYXNzZXRzVG9TaG93W2ldLmlkLCBwcm9wZXJ0eUlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtcInRvdXJcIiArIGl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyICYmIGkgPT09IDAgPyBzZXRDdXJyZW50VmlldyhcInZpcnR1YWwgdG91clwiKSA6IHNldEN1cnJlbnRWaWV3KFwidmlkZW8gdG91clwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FyZEltYWdlSWNvbihpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZXJvSW1hZ2VDYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiA8PjwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzVG9TaG93LnNsaWNlKGlzRmlyc3QgPyAxIDogMCwgYXNzZXRzVG9TaG93Lmxlbmd0aCkubWFwKChhc3NldCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2Fzc2V0VXJsRnJvbShhc3NldC5pZCwgcHJvcGVydHlJZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PXthc3NldC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YXNzZXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ2FsbGVyeS1oZXJvLS1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaW1hZ2VDbGlja2VkSGFuZGxlcihhc3NldCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2FsbGVyeUhlcm9Qcm9wcyB7XG5cbiAgICBhc3NldHNUb1Nob3c6IEFzc2V0W107XG4gICAgdmlydHVhbFRvdXI/OiBzdHJpbmc7XG4gICAgaXNBdmFpbGFibGVOb3c/OiBib29sZWFuO1xuICAgIGlzRmlyc3Q6IGJvb2xlYW47XG4gICAgdG91cnNDb3VudDogbnVtYmVyO1xuICAgIHdlYlNwZWNpYWxzOiBXZWJTcGVjaWFsW107XG4gICAgc2V0Q3VycmVudFZpZXc6ICh2aWV3OiBcInBob3RvXCIgfCBcInZpcnR1YWwgdG91clwiIHwgXCJ2aWRlbyB0b3VyXCIpID0+IHZvaWQ7XG4gICAgaW1hZ2VDbGlja2VkSGFuZGxlcjogKGltYWdlOiBBc3NldCkgPT4gdm9pZDtcbiAgICBwcm9wZXJ0eUlkOiBzdHJpbmc7XG5cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFFQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBTSxrQkFBQSxHQUFBTixPQUFBO0FBQW9FLFNBQUFELHVCQUFBUSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUs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