single-scripture-rcl 3.4.16-beta.12 → 3.4.16-beta.16

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.
@@ -41,7 +41,7 @@ import * as React from 'react';
41
41
  import useDeepCompareEffect from 'use-deep-compare-effect';
42
42
  import { VerseObjects } from 'scripture-resources-rcl';
43
43
  import { UsfmFileConversionHelpers } from 'word-aligner-rcl';
44
- import { BookObjectsType, ScriptureReference } from '../../types';
44
+ import { BookObjectsType, ScriptureReferenceType } from '../../types';
45
45
  import { getResourceMessage, LOADING_RESOURCE, verseObjectsHaveWords } from '../../utils';
46
46
  import { ScriptureALignmentEditProps, useScriptureAlignmentEdit } from '../../hooks/useScriptureAlignmentEdit';
47
47
  import { Container, Content, EmptyContent } from './styled';
@@ -115,15 +115,11 @@ function ScripturePane(_ref) {
115
115
  } else {
116
116
  resourceMessage = getResourceMessage(resourceStatus, server, resourceLink, isNT);
117
117
  }
118
- var chapter = reference.chapter,
119
- projectId = reference.projectId,
120
- verse = reference.verse;
118
+ var _ref2 = reference || {},
119
+ chapter = _ref2.chapter,
120
+ bookId = _ref2.bookId,
121
+ verse = _ref2.verse;
121
122
  direction = direction || 'ltr';
122
- var basicReference = {
123
- chapter: chapter,
124
- verse: verse,
125
- projectId: projectId
126
- };
127
123
  refStyle = refStyle || {
128
124
  fontFamily: 'Noto Sans',
129
125
  fontSize: '90%'
@@ -152,7 +148,7 @@ function ScripturePane(_ref) {
152
148
  newVerseText = _scriptureAlignmentEd2.newVerseText;
153
149
  React.useEffect(function () {
154
150
  if (isVerseSelectedForAlignment && !alignerData && !doingAlignment) {
155
- console.log("ScripturePane - verse selected for alignment", basicReference);
151
+ console.log("ScripturePane - verse selected for alignment", reference);
156
152
  handleAlignmentClick();
157
153
  }
158
154
  }, [isVerseSelectedForAlignment, alignerData, doingAlignment]);
@@ -171,7 +167,7 @@ function ScripturePane(_ref) {
171
167
 
172
168
  React.useEffect(function () {
173
169
  updateVersesAlignmentStatus && updateVersesAlignmentStatus(reference, aligned);
174
- }, [aligned, chapter, verse, projectId]);
170
+ }, [aligned, chapter, verse, bookId]);
175
171
  React.useEffect(function () {
176
172
  if (alignerData && !doingAlignment) {
177
173
  setWordAlignerStatus && setWordAlignerStatus(_scriptureAlignmentEdit);
@@ -181,7 +177,7 @@ function ScripturePane(_ref) {
181
177
  } else {
182
178
  if (!doingAlignment) {
183
179
  console.log("ScripturePane - alignerData went false unexpected", {
184
- basicReference: basicReference,
180
+ reference: reference,
185
181
  alignerData: alignerData,
186
182
  doingAlignment: doingAlignment
187
183
  });
@@ -211,7 +207,7 @@ function ScripturePane(_ref) {
211
207
  newText: null
212
208
  });
213
209
  }, [{
214
- basicReference: basicReference,
210
+ reference: reference,
215
211
  initialVerseObjects: initialVerseObjects
216
212
  }]);
217
213
  function onTextChange(event) {
@@ -227,7 +223,7 @@ function ScripturePane(_ref) {
227
223
  function onBlur(event) {
228
224
  setEditing(false, newText);
229
225
  }
230
- var verseObjects = currentVerseObjects || initialVerseObjects;
226
+ var verseObjects = currentVerseObjects || initialVerseObjects || [];
231
227
  var noWords = React.useMemo(function () {
232
228
  return !verseObjectsHaveWords(verseObjects);
233
229
  }, [currentVerseObjects, initialVerseObjects]);
@@ -288,4 +284,4 @@ ScripturePane.defaultProps = {
288
284
  verseObjects: []
289
285
  };
290
286
  export default ScripturePane;
291
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlZmVyZW5jZSIsImdldFJlc291cmNlTWVzc2FnZSIsIkxPQURJTkdfUkVTT1VSQ0UiLCJ2ZXJzZU9iamVjdHNIYXZlV29yZHMiLCJTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiQ29udGFpbmVyIiwiQ29udGVudCIsIkVtcHR5Q29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIm1pbkhlaWdodCIsIlNjcmlwdHVyZVBhbmUiLCJfcmVmIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMyIsImN1cnJlbnRJbmRleCIsImNvbnRlbnRTdHlsZSIsImRldGVybWluaW5nQnJhbmNoIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwiZ2V0TGV4aWNvbkRhdGEiLCJpc05UIiwiaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50Iiwib25BbGlnbm1lbnRGaW5pc2giLCJvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzIiwicmVmZXJlbmNlIiwicmVmU3R5bGUiLCJyZXNvdXJjZVN0YXR1cyIsInJlc291cmNlTGluayIsInNhdmluZyIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJzZXRTYXZlZENoYW5nZXMiLCJzZXRXb3JkQWxpZ25lclN0YXR1cyIsInNlcnZlciIsInRyYW5zbGF0ZSIsInVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiZG9pbmdBbGlnbm1lbnQiLCJuZXdUZXh0IiwiX1JlYWN0JHVzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiX29iamVjdFNwcmVhZCIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJjaGFwdGVyIiwicHJvamVjdElkIiwidmVyc2UiLCJiYXNpY1JlZmVyZW5jZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMiIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwiZW5hYmxlRWRpdCIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJuZXdWZXJzZVRleHQiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwibG9nIiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uVGV4dENoYW5nZSIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsInZhbHVlIiwiY2hhbmdlZCIsIm9uQmx1ciIsIm5vV29yZHMiLCJ2ZXJzZUNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiZGVmYXVsdFZhbHVlIiwib25DaGFuZ2UiLCJzdHlsZSIsImF1dG9Gb2N1cyIsInZlcnNlS2V5IiwiY29uY2F0IiwicGFkZGluZ0JvdHRvbSIsIm9uQ2xpY2siLCJkZWZhdWx0UHJvcHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9TY3JpcHR1cmVQYW5lL1NjcmlwdHVyZVBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgVmVyc2VPYmplY3RzIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgeyBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IEJvb2tPYmplY3RzVHlwZSwgU2NyaXB0dXJlUmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQge1xuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0J1xuaW1wb3J0IHtcbiAgQ29udGFpbmVyLFxuICBDb250ZW50LFxuICBFbXB0eUNvbnRlbnQsXG59IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8vIGluZGV4IG51bWJlciBmb3IgdGhpcyBzY3JpcHR1cmUgcGFuZVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLy8gd2FpdGluZyB0byBkZXRlcm1pbmUgYnJhbmNoXG4gIGRldGVybWluaW5nQnJhbmNoOiBib29sZWFuLFxuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uIHRvIHVzZSAqKi9cbiAgZGlyZWN0aW9uOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGRvIG5vdCBkaXNwbGF5IGxleGljb24gcG9wb3ZlciBvbiBob3ZlciAqKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBib29sZWFufHVuZGVmaW5lZDtcbiAgLyoqIGZvbnQgc2l6ZSBmb3IgbWVzc2FnZXMgKi9cbiAgZm9udFNpemU6IG51bWJlcjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBGdW5jdGlvbjtcbiAgLyoqIHRydWUgaWYgYnJvd3NpbmcgTlQgKi9cbiAgaXNOVDogYm9vbGVhbjtcbiAgLyoqIHdoZXRoZXIgb3Igbm90IHRoaXMgY3VycmVudCB2ZXJzZSBoYXMgYmVlbiBzZWxlY3RlZCBmb3IgYWxpZ25tZW50ICovXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogYm9vbGVhbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHZlcnNlIGFsaWdubWVudCBoYXMgZmluaXNoZWQgKi9cbiAgb25BbGlnbm1lbnRGaW5pc2g6IEZ1bmN0aW9uO1xuICAvLyBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9va1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byB1cGRhdGUgdmVyc2UgYWxpZ25tZW50IHN0YXR1cyAqL1xuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5jb25zdCBUZXh0QXJlYVN0eWxlID0ge1xuICBoZWlnaHQ6ICc2MCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBtaW5XaWR0aDogJzIyMHB4JyxcbiAgbWluSGVpZ2h0OiAnMTAwcHgnLFxuICBmb250U2l6ZTogJzE2cHgnLFxufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRldGVybWluaW5nQnJhbmNoLFxuICBkaXJlY3Rpb24sXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICBpc05ULFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIHNlcnZlcixcbiAgdHJhbnNsYXRlLFxuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGRvaW5nQWxpZ25tZW50OiBmYWxzZSxcbiAgICBuZXdUZXh0OiBudWxsLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSBpZiAoZGV0ZXJtaW5pbmdCcmFuY2gpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnUHJlLScgKyBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIHByb2plY3RJZCxcbiAgICB2ZXJzZSxcbiAgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcbiAgY29uc3QgYmFzaWNSZWZlcmVuY2UgPSB7XG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICBwcm9qZWN0SWQsXG4gIH1cblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIGVuYWJsZUVkaXQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCAmJiAhYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRgLCBiYXNpY1JlZmVyZW5jZSlcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrKClcbiAgICB9XG4gIH0sIFtpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudF0pXG5cbiAgLy8gY29uc3QgdmVyc2VDaGFuZ2VkID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gIC8vICAgcmV0dXJuIChuZXdWZXJzZVRleHQgIT09IG5ld1RleHQpXG4gIC8vIH0sIFtuZXdWZXJzZVRleHQsIG5ld1RleHRdKVxuICAvL1xuICAvLyBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAvLyAgIGlmIChuZXdWZXJzZVRleHQgIT09IG5ld1RleHQpIHtcbiAgLy8gICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gbmV3IHZlcnNlIHRleHQgZGl2ZXJnZWRgLCB7IG5ld1ZlcnNlVGV4dCwgbmV3VGV4dCB9KVxuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIG5ldyB2ZXJzZSB0ZXh0IGNvbnZlcmdlZGAsIHsgbmV3VmVyc2VUZXh0IH0pXG4gIC8vICAgfVxuICAvLyB9LCBbdmVyc2VDaGFuZ2VkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyAmJiB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMocmVmZXJlbmNlLCBhbGlnbmVkKVxuICB9LCBbYWxpZ25lZCwgY2hhcHRlciwgdmVyc2UsIHByb2plY3RJZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IHRydWUgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFkb2luZ0FsaWdubWVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIGFsaWduZXJEYXRhIHdlbnQgZmFsc2UgdW5leHBlY3RlZGAsIHsgYmFzaWNSZWZlcmVuY2UsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCB9KVxuICAgICAgfVxuXG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlIH0pXG4gICAgICBvbkFsaWdubWVudEZpbmlzaCAmJiBvbkFsaWdubWVudEZpbmlzaCgpXG4gICAgfVxuICB9LCBbX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YV0pXG5cbiAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGZvbnQgc2l6ZVxuICBjb25zdCBjYWxjdWxhdGVkRm9udFNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IChcbiAgICBwYXJzZUZsb2F0KFRleHRBcmVhU3R5bGUuZm9udFNpemUpICogZm9udFNpemUgLyAxMDAgKyAncHgnXG4gICksIFtmb250U2l6ZV0pXG5cbiAgY29uc3QgdGV4dEFyZWFTdHlsZSA9IHtcbiAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgLi4uVGV4dEFyZWFTdHlsZSxcbiAgICBmb250U2l6ZTogY2FsY3VsYXRlZEZvbnRTaXplLFxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgIGNsZWFyQ2hhbmdlcygpXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBudWxsIH0pXG4gIH0sIFt7IGJhc2ljUmVmZXJlbmNlLCBpbml0aWFsVmVyc2VPYmplY3RzIH1dKVxuXG4gIGZ1bmN0aW9uIG9uVGV4dENoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZVxuICAgIGNvbnN0IGNoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICAvLyBjb25zb2xlLmxvZyhgU1Aub25UZXh0Q2hhbmdlYCwgeyBjaGFuZ2VkLCBuZXdUZXh0OiBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQgfSlcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0KVxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbmV3VmVyc2VUZXh0IH0pXG4gIH1cblxuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgc2V0RWRpdGluZyhmYWxzZSwgbmV3VGV4dClcbiAgfVxuXG4gIGNvbnN0IHZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICBjb25zdCBub1dvcmRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAhdmVyc2VPYmplY3RzSGF2ZVdvcmRzKHZlcnNlT2JqZWN0cyksIFtjdXJyZW50VmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzXSlcblxuICAvKipcbiAgICogZGV0ZXJtaW5lIHdoYXQgVUkgdG8gc2hvdyBiYXNlZCBvbiBzdGF0ZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVkaXRpbmcgLSBpZiB0cnVlIHNob3cgZWRpdCBtb2RlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlRWRpdCAtIGlmIHRydWUgdGhlbiBlZGl0IGlzIGVuYWJsZWRcbiAgICogQHBhcmFtIHtib29sZWFufSBub1dvcmRzIC0gaWYgdHJ1ZSB0aGVuIHRoZXJlIGFyZSBubyBkaXNwbGF5YWJsZSB3b3Jkc1xuICAgKi9cbiAgZnVuY3Rpb24gdmVyc2VDb250ZW50KGVkaXRpbmcsIGVuYWJsZUVkaXQsIG5vV29yZHMpIHtcbiAgICBpZiAoZWRpdGluZykge1xuICAgICAgcmV0dXJuIDx0ZXh0YXJlYVxuICAgICAgICBkZWZhdWx0VmFsdWU9e25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0fVxuICAgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfVxuICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgc3R5bGU9e3RleHRBcmVhU3R5bGV9XG4gICAgICAgIGF1dG9Gb2N1c1xuICAgICAgLz5cbiAgICB9XG5cbiAgICBpZiAobm9Xb3JkcyAmJiBlbmFibGVFZGl0KSB7IC8vIHNob3cgYSBjbGlja2FibGUgbWVzc2FnZSBpbiB0aGUgY2FzZSB0aGF0IHRoZXJlIGlzIG5vIHRleHQgdG8gY2xpY2sgb25cbiAgICAgIHJldHVybiA8RW1wdHlDb250ZW50PlxuICAgICAgICBDbGljayB0byBFZGl0XG4gICAgICA8L0VtcHR5Q29udGVudD5cbiAgICB9XG5cbiAgICByZXR1cm4gPFZlcnNlT2JqZWN0c1xuICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgdmVyc2VPYmplY3RzPXt2ZXJzZU9iamVjdHN9XG4gICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgIC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nIH19PlxuICAgICAge3Jlc291cmNlTWVzc2FnZSA/XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgPGRpdiBzdHlsZT17TWVzc2FnZVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCB9fT4ge3Jlc291cmNlTWVzc2FnZX0gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUM5QixPQUFPQyxvQkFBb0IsTUFBTSx5QkFBeUI7QUFDMUQsU0FBU0MsWUFBWSxRQUFRLHlCQUF5QjtBQUN0RCxTQUFTQyx5QkFBeUIsUUFBUSxrQkFBa0I7QUFDNUQsU0FBU0MsZUFBZSxFQUFFQyxrQkFBa0IsUUFBUSxhQUFhO0FBQ2pFLFNBQ0VDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsUUFDaEIsYUFBYTtBQUNwQixTQUFTQywyQkFBMkIsRUFBRUMseUJBQXlCLFFBQVEsdUNBQXVDO0FBQzlHLFNBQ0VDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxZQUFZLFFBQ1AsVUFBVTtBQWlEakIsSUFBTUMsWUFBWSxHQUFHO0VBQ25CQyxTQUFTLEVBQUUsS0FBSztFQUNoQkMsVUFBVSxFQUFFLFVBQVU7RUFDdEJDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxPQUFPLEVBQUUsTUFBTTtFQUNmQyxjQUFjLEVBQUUsUUFBUTtFQUN4QkMsVUFBVSxFQUFFLFFBQVE7RUFDcEJDLE1BQU0sRUFBRSxNQUFNO0VBQ2RDLEtBQUssRUFBRSxN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
287
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlZmVyZW5jZVR5cGUiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJMT0FESU5HX1JFU09VUkNFIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIkNvbnRhaW5lciIsIkNvbnRlbnQiLCJFbXB0eUNvbnRlbnQiLCJNZXNzYWdlU3R5bGUiLCJkaXJlY3Rpb24iLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJ3aWR0aCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJUZXh0QXJlYVN0eWxlIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJTY3JpcHR1cmVQYW5lIiwiX3JlZiIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDMiLCJjdXJyZW50SW5kZXgiLCJjb250ZW50U3R5bGUiLCJkZXRlcm1pbmluZ0JyYW5jaCIsImRpc2FibGVXb3JkUG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaXNOVCIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJzZXJ2ZXIiLCJ0cmFuc2xhdGUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInN0YXRlIiwic2V0U3RhdGVfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsIl9vYmplY3RTcHJlYWQiLCJfUmVhY3QkdXNlU3RhdGUzIiwiX1JlYWN0JHVzZVN0YXRlNCIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNZXNzYWdlIiwiX3JlZjIiLCJjaGFwdGVyIiwiYm9va0lkIiwidmVyc2UiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiX3NjcmlwdHVyZUFsaWdubWVudEVkIiwiYWN0aW9ucyIsImNsZWFyQ2hhbmdlcyIsImhhbmRsZUFsaWdubWVudENsaWNrIiwic2V0RWRpdGluZyIsInNldFZlcnNlQ2hhbmdlZCIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDIiLCJhbGlnbmVkIiwiYWxpZ25lckRhdGEiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwiZWRpdGluZyIsImVuYWJsZUVkaXQiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwibmV3VmVyc2VUZXh0IiwidXNlRWZmZWN0IiwiY29uc29sZSIsImxvZyIsImNhbGN1bGF0ZWRGb250U2l6ZSIsInVzZU1lbW8iLCJwYXJzZUZsb2F0IiwidGV4dEFyZWFTdHlsZSIsInZlcnNlVGV4dCIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJ2ZXJzZU9iamVjdHMiLCJvblRleHRDaGFuZ2UiLCJldmVudCIsIl9ldmVudCR0YXJnZXQiLCJ0YXJnZXQiLCJ2YWx1ZSIsImNoYW5nZWQiLCJvbkJsdXIiLCJub1dvcmRzIiwidmVyc2VDb250ZW50IiwiY3JlYXRlRWxlbWVudCIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwic3R5bGUiLCJhdXRvRm9jdXMiLCJ2ZXJzZUtleSIsImNvbmNhdCIsInBhZGRpbmdCb3R0b20iLCJvbkNsaWNrIiwiZGVmYXVsdFByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvU2NyaXB0dXJlUGFuZS9TY3JpcHR1cmVQYW5lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBCb29rT2JqZWN0c1R5cGUsIFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7XG4gIGdldFJlc291cmNlTWVzc2FnZSxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgdmVyc2VPYmplY3RzSGF2ZVdvcmRzLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcywgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQnXG5pbXBvcnQge1xuICBDb250YWluZXIsXG4gIENvbnRlbnQsXG4gIEVtcHR5Q29udGVudCxcbn0gZnJvbSAnLi9zdHlsZWQnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciBjb250ZW50ICoqL1xuICBjb250ZW50U3R5bGU6IGFueTtcbiAgLy8gaW5kZXggbnVtYmVyIGZvciB0aGlzIHNjcmlwdHVyZSBwYW5lXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyB3YWl0aW5nIHRvIGRldGVybWluZSBicmFuY2hcbiAgZGV0ZXJtaW5pbmdCcmFuY2g6IGJvb2xlYW4sXG4gIC8qKiBsYW5ndWFnZSBkaXJlY3Rpb24gdG8gdXNlICoqL1xuICBkaXJlY3Rpb246IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZG8gbm90IGRpc3BsYXkgbGV4aWNvbiBwb3BvdmVyIG9uIGhvdmVyICoqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IGJvb2xlYW58dW5kZWZpbmVkO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogd2hldGhlciBvciBub3QgdGhpcyBjdXJyZW50IHZlcnNlIGhhcyBiZWVuIHNlbGVjdGVkIGZvciBhbGlnbm1lbnQgKi9cbiAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBib29sZWFuO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdmVyc2UgYWxpZ25tZW50IGhhcyBmaW5pc2hlZCAqL1xuICBvbkFsaWdubWVudEZpbmlzaDogRnVuY3Rpb247XG4gIC8vIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGU7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byB1cGRhdGUgdmVyc2UgYWxpZ25tZW50IHN0YXR1cyAqL1xuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5jb25zdCBUZXh0QXJlYVN0eWxlID0ge1xuICBoZWlnaHQ6ICc2MCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBtaW5XaWR0aDogJzIyMHB4JyxcbiAgbWluSGVpZ2h0OiAnMTAwcHgnLFxuICBmb250U2l6ZTogJzE2cHgnLFxufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRldGVybWluaW5nQnJhbmNoLFxuICBkaXJlY3Rpb24sXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICBpc05ULFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIHNlcnZlcixcbiAgdHJhbnNsYXRlLFxuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGRvaW5nQWxpZ25tZW50OiBmYWxzZSxcbiAgICBuZXdUZXh0OiBudWxsLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSBpZiAoZGV0ZXJtaW5pbmdCcmFuY2gpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnUHJlLScgKyBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIGJvb2tJZCxcbiAgICB2ZXJzZSxcbiAgfSA9IHJlZmVyZW5jZSB8fCB7fVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIGVuYWJsZUVkaXQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCAmJiAhYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRgLCByZWZlcmVuY2UpXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljaygpXG4gICAgfVxuICB9LCBbaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LCBhbGlnbmVyRGF0YSwgZG9pbmdBbGlnbm1lbnRdKVxuXG4gIC8vIGNvbnN0IHZlcnNlQ2hhbmdlZCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAvLyAgIHJldHVybiAobmV3VmVyc2VUZXh0ICE9PSBuZXdUZXh0KVxuICAvLyB9LCBbbmV3VmVyc2VUZXh0LCBuZXdUZXh0XSlcbiAgLy9cbiAgLy8gUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgLy8gICBpZiAobmV3VmVyc2VUZXh0ICE9PSBuZXdUZXh0KSB7XG4gIC8vICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIG5ldyB2ZXJzZSB0ZXh0IGRpdmVyZ2VkYCwgeyBuZXdWZXJzZVRleHQsIG5ld1RleHQgfSlcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBuZXcgdmVyc2UgdGV4dCBjb252ZXJnZWRgLCB7IG5ld1ZlcnNlVGV4dCB9KVxuICAvLyAgIH1cbiAgLy8gfSwgW3ZlcnNlQ2hhbmdlZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgJiYgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzKHJlZmVyZW5jZSwgYWxpZ25lZClcbiAgfSwgW2FsaWduZWQsIGNoYXB0ZXIsIHZlcnNlLCBib29rSWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiB0cnVlIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBhbGlnbmVyRGF0YSB3ZW50IGZhbHNlIHVuZXhwZWN0ZWRgLCB7IHJlZmVyZW5jZSwgYWxpZ25lckRhdGEsIGRvaW5nQWxpZ25tZW50IH0pXG4gICAgICB9XG5cbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogZmFsc2UgfSlcbiAgICAgIG9uQWxpZ25tZW50RmluaXNoICYmIG9uQWxpZ25tZW50RmluaXNoKClcbiAgICB9XG4gIH0sIFtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdD8uc3RhdGU/LmFsaWduZXJEYXRhXSlcblxuICAvLyBkeW5hbWljYWxseSBhZGp1c3QgZm9udCBzaXplXG4gIGNvbnN0IGNhbGN1bGF0ZWRGb250U2l6ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKFxuICAgIHBhcnNlRmxvYXQoVGV4dEFyZWFTdHlsZS5mb250U2l6ZSkgKiBmb250U2l6ZSAvIDEwMCArICdweCdcbiAgKSwgW2ZvbnRTaXplXSlcblxuICBjb25zdCB0ZXh0QXJlYVN0eWxlID0ge1xuICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAuLi5UZXh0QXJlYVN0eWxlLFxuICAgIGZvbnRTaXplOiBjYWxjdWxhdGVkRm9udFNpemUsXG4gIH1cblxuICB1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzOiBpbml0aWFsVmVyc2VPYmplY3RzIH0pXG4gICAgY2xlYXJDaGFuZ2VzKClcbiAgICBzZXRJbml0aWFsVmVyc2VUZXh0KHZlcnNlVGV4dClcbiAgICBzZXRTdGF0ZSh7IG5ld1RleHQ6IG51bGwgfSlcbiAgfSwgW3sgcmVmZXJlbmNlLCBpbml0aWFsVmVyc2VPYmplY3RzIH1dKVxuXG4gIGZ1bmN0aW9uIG9uVGV4dENoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZVxuICAgIGNvbnN0IGNoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICAvLyBjb25zb2xlLmxvZyhgU1Aub25UZXh0Q2hhbmdlYCwgeyBjaGFuZ2VkLCBuZXdUZXh0OiBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQgfSlcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0KVxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbmV3VmVyc2VUZXh0IH0pXG4gIH1cblxuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgc2V0RWRpdGluZyhmYWxzZSwgbmV3VGV4dClcbiAgfVxuXG4gIGNvbnN0IHZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0cyB8fCBbXVxuICBjb25zdCBub1dvcmRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAhdmVyc2VPYmplY3RzSGF2ZVdvcmRzKHZlcnNlT2JqZWN0cyksIFtjdXJyZW50VmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzXSlcblxuICAvKipcbiAgICogZGV0ZXJtaW5lIHdoYXQgVUkgdG8gc2hvdyBiYXNlZCBvbiBzdGF0ZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVkaXRpbmcgLSBpZiB0cnVlIHNob3cgZWRpdCBtb2RlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlRWRpdCAtIGlmIHRydWUgdGhlbiBlZGl0IGlzIGVuYWJsZWRcbiAgICogQHBhcmFtIHtib29sZWFufSBub1dvcmRzIC0gaWYgdHJ1ZSB0aGVuIHRoZXJlIGFyZSBubyBkaXNwbGF5YWJsZSB3b3Jkc1xuICAgKi9cbiAgZnVuY3Rpb24gdmVyc2VDb250ZW50KGVkaXRpbmcsIGVuYWJsZUVkaXQsIG5vV29yZHMpIHtcbiAgICBpZiAoZWRpdGluZykge1xuICAgICAgcmV0dXJuIDx0ZXh0YXJlYVxuICAgICAgICBkZWZhdWx0VmFsdWU9e25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0fVxuICAgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfVxuICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgc3R5bGU9e3RleHRBcmVhU3R5bGV9XG4gICAgICAgIGF1dG9Gb2N1c1xuICAgICAgLz5cbiAgICB9XG5cbiAgICBpZiAobm9Xb3JkcyAmJiBlbmFibGVFZGl0KSB7IC8vIHNob3cgYSBjbGlja2FibGUgbWVzc2FnZSBpbiB0aGUgY2FzZSB0aGF0IHRoZXJlIGlzIG5vIHRleHQgdG8gY2xpY2sgb25cbiAgICAgIHJldHVybiA8RW1wdHlDb250ZW50PlxuICAgICAgICBDbGljayB0byBFZGl0XG4gICAgICA8L0VtcHR5Q29udGVudD5cbiAgICB9XG5cbiAgICByZXR1cm4gPFZlcnNlT2JqZWN0c1xuICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgdmVyc2VPYmplY3RzPXt2ZXJzZU9iamVjdHN9XG4gICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgIC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nIH19PlxuICAgICAge3Jlc291cmNlTWVzc2FnZSA/XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgPGRpdiBzdHlsZT17TWVzc2FnZVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCB9fT4ge3Jlc291cmNlTWVzc2FnZX0gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUM5QixPQUFPQyxvQkFBb0IsTUFBTSx5QkFBeUI7QUFDMUQsU0FBU0MsWUFBWSxRQUFRLHlCQUF5QjtBQUN0RCxTQUFTQyx5QkFBeUIsUUFBUSxrQkFBa0I7QUFDNUQsU0FBU0MsZUFBZSxFQUFFQyxzQkFBc0IsUUFBUSxhQUFhO0FBQ3JFLFNBQ0VDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsUUFDaEIsYUFBYTtBQUNwQixTQUFTQywyQkFBMkIsRUFBRUMseUJBQXlCLFFBQVEsdUNBQXVDO0FBQzlHLFNBQ0VDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxZQUFZLFFBQ1AsVUFBVTtBQWlEakIsSUFBTUMsWUFBWSxHQUFHO0VBQ25CQyxTQUFTLEVBQUUsS0FBSztFQUNoQkMsVUFBVSxFQUFFLFVBQVU7RUFDdEJDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxPQUFPLEVBQUUsTUFBTTtFQUNmQyxjQUFjLEVBQUUsUUFBUTtFQUN4QkMsVUFBVSxFQUFFLFFBQVE7RUFDcEJDLE1BQU0sRUFBRSxNQUFNO0VBQ2RDLEtBQUssRUFBRSxNQUFNO0VBQ2JDLFFBQVEsRUFBRSxNQUFNO0VBQ2hCQyxVQUFVLEVBQUUsV0FBVztFQUN2QkMsVUFBVSxFQUFFO0FBQ2QsQ0FBQztBQUVELElBQU1D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
@@ -62,7 +62,7 @@ import { isEqual } from '@react-hookz/deep-equal';
62
62
  import { AlignmentHelpers, UsfmFileConversionHelpers } from 'word-aligner-rcl';
63
63
  import { delay, fetchBibleBookCore, verseObjectsHaveWords } from '../utils';
64
64
  import { cleanupVerseObjects, getBookNameFromUsfmFileName, getResourceLink, parseResourceLink } from '../utils/ScriptureSettings';
65
- import { BookFetchParams, BookObjectsType, ScriptureResource, ScriptureReference, ServerConfig, VerseObjectsType, VerseReferencesType } from '../types';
65
+ import { BookFetchParams, BookObjectsType, ScriptureResourceType, ScriptureReferenceType, ServerConfigType, VerseObjectsType, VerseReferencesType } from '../types';
66
66
  import { parseResourceManifest } from './parseResourceManifest';
67
67
  /**
68
68
  * extract branch from resource link
@@ -111,7 +111,7 @@ export function getVersesForRefStr(refStr, bookObjects, languageId) {
111
111
 
112
112
  /**
113
113
  * get the verse objects for the reference object
114
- * @param {object} reference
114
+ * @param {ScriptureReferenceType} reference
115
115
  * @param {object} bookObjects - parsed usfm for book
116
116
  * @param {string} languageId
117
117
  * @return {array|null} - of verseObjects
@@ -163,7 +163,7 @@ export function useScripture(_ref2) {
163
163
  _ref3$ref = _ref3.ref,
164
164
  ref = _ref3$ref === void 0 ? null : _ref3$ref;
165
165
  var _ref4 = reference || {},
166
- bookId = _ref4.projectId;
166
+ bookId = _ref4.bookId;
167
167
  var _state = state; // Tricky: work-around for bug that standard typescript type casting does not work in .tsx files
168
168
  var bibleUsfm = _state.bibleUsfm,
169
169
  bookObjects = _state.bookObjects,
@@ -193,7 +193,7 @@ export function useScripture(_ref2) {
193
193
  resourceLink = getResourceLink({
194
194
  owner: owner,
195
195
  languageId: languageId,
196
- resourceId: bookId,
196
+ resourceId: resource_ === null || resource_ === void 0 ? void 0 : resource_.projectId,
197
197
  ref: ref_
198
198
  });
199
199
  }
@@ -247,7 +247,7 @@ export function useScripture(_ref2) {
247
247
  case 0:
248
248
  ignoreSha = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
249
249
  _context.prev = 1;
250
- fetchLink = "".concat(fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.resourceLink, "/").concat(fetchParams === null || fetchParams === void 0 || (_fetchParams$referenc2 = fetchParams.reference) === null || _fetchParams$referenc2 === void 0 ? void 0 : _fetchParams$referenc2.projectId);
250
+ fetchLink = "".concat(fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.resourceLink, "/").concat(fetchParams === null || fetchParams === void 0 || (_fetchParams$referenc2 = fetchParams.reference) === null || _fetchParams$referenc2 === void 0 ? void 0 : _fetchParams$referenc2.bookId);
251
251
  if (!ignoreSha) {
252
252
  _context.next = 8;
253
253
  break;
@@ -362,7 +362,7 @@ export function useScripture(_ref2) {
362
362
  if (isSameBook) {
363
363
  var bibleUsfm_ = fetchedResources === null || fetchedResources === void 0 ? void 0 : fetchedResources.bibleUsfm;
364
364
  var _bookObjects2 = fetchedResources === null || fetchedResources === void 0 ? void 0 : fetchedResources.bookObjects;
365
- var _versesForRef2 = fetchVersesForRef(_bookObjects2);
365
+ var _versesForRef2 = getVersesForRef_(_bookObjects2);
366
366
  console.log("useScripture.validateResponse() - correct book, expectedBookId is ".concat(expectedBookId), {
367
367
  sha: sha,
368
368
  url: url
@@ -471,7 +471,7 @@ export function useScripture(_ref2) {
471
471
  * get the verses for current reference or reference range
472
472
  * @param {BookObjectsType} _bookObjects
473
473
  */
474
- function fetchVersesForRef() {
474
+ function getVersesForRef_() {
475
475
  var _bookObjects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bookObjects;
476
476
  var newVersesForRef = [];
477
477
  if (_bookObjects) {
@@ -544,7 +544,7 @@ export function useScripture(_ref2) {
544
544
  }
545
545
 
546
546
  // @ts-ignore
547
- var currentBookRef = fetchParams === null || fetchParams === void 0 || (_fetchParams$referenc = fetchParams.reference) === null || _fetchParams$referenc === void 0 ? void 0 : _fetchParams$referenc.projectId;
547
+ var currentBookRef = fetchParams === null || fetchParams === void 0 || (_fetchParams$referenc = fetchParams.reference) === null || _fetchParams$referenc === void 0 ? void 0 : _fetchParams$referenc.bookId;
548
548
  useEffect(function () {
549
549
  if (currentBookRef) {
550
550
  console.log("useScripture fetched book changed to ".concat(currentBookRef, ", ").concat(resourceLink_), fetchParams);
@@ -569,7 +569,7 @@ export function useScripture(_ref2) {
569
569
  // }
570
570
  } else {
571
571
  var _bookObjects = fetchedBookSame ? bookObjects : null;
572
- _versesForRef = fetchVersesForRef(_bookObjects);
572
+ _versesForRef = getVersesForRef_(_bookObjects);
573
573
  // console.log(`useScripture _bookObjects is ${!!_bookObjects} and books are the same ${fetchedBook}`, { content, fetchParams })
574
574
  }
575
575
 
@@ -596,4 +596,4 @@ export function useScripture(_ref2) {
596
596
  versesForRef: versesForRef
597
597
  };
598
598
  }
599
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsIkNPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SIiwiRVJST1JfU1RBVEUiLCJJTklUSUFMSVpFRF9TVEFURSIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwidXNlRGVlcENvbXBhcmVFZmZlY3QiLCJnZXRWZXJzZXMiLCJpc0VxdWFsIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJkZWxheSIsImZldGNoQmlibGVCb29rQ29yZSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUiLCJnZXRSZXNvdXJjZUxpbmsiLCJwYXJzZVJlc291cmNlTGluayIsIkJvb2tGZXRjaFBhcmFtcyIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlc291cmNlIiwiU2NyaXB0dXJlUmVmZXJlbmNlIiwiU2VydmVyQ29uZmlnIiwiVmVyc2VPYmplY3RzVHlwZSIsIlZlcnNlUmVmZXJlbmNlc1R5cGUiLCJwYXJzZVJlc291cmNlTWFuaWZlc3QiLCJnZXRCcmFuY2hOYW1lIiwicmVzb3VyY2VMaW5rIiwiYnJhbmNoIiwicGFydHMiLCJzcGxpdCIsIl9wYXJ0cyIsImdldFZlcnNlc0ZvclJlZlN0ciIsInJlZlN0ciIsImJvb2tPYmplY3RzIiwibGFuZ3VhZ2VJZCIsInZlcnNlcyIsImNoYXB0ZXJzIiwibWFwIiwidmVyc2UiLCJfdmVyc2UkdmVyc2VEYXRhIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsIm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMiLCJnZXRWZXJzZXNGb3JSZWYiLCJyZWZlcmVuY2UiLCJjb25jYXQiLCJjaGFwdGVyIiwidXNlU2NyaXB0dXJlIiwiX3JlZjIiLCJfcmVzb3VyY2VTdGF0dXMiLCJfZmV0Y2hQYXJhbXMkcmVmZXJlbmMiLCJjb25maWciLCJyZWFkeUZvckZldGNoIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwiX3JlZjIkd2hvbGVCb29rIiwid2hvbGVCb29rIiwiX3VzZVN0YXRlIiwiYmlibGVVc2ZtIiwiZmV0Y2hDb3VudCIsImZldGNoZWQiLCJmZXRjaGVkQm9vayIsImZldGNoUGFyYW1zIiwiaWdub3JlU2hhIiwiaW5pdGlhbGl6ZWQiLCJyZXNvdXJjZVN0YXRlIiwiY29udGVudCIsImZldGNoUmVzcG9uc2UiLCJmZXRjaGVkUmVzb3VyY2VzIiwibG9hZGluZ1Jlc291cmNlIiwibG9hZGluZ0NvbnRlbnQiLCJzaGEiLCJ1cmwiLCJ2ZXJzZXNGb3JSZWYiLCJfdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfcmVmMyIsIm93bmVyIiwiX3JlZjMkYnJhbmNoIiwiX3JlZjMkcmVmIiwicmVmIiwiX3JlZjQiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJfc3RhdGUiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiaW5pdGlhdGVCb29rRmV0Y2giLCJjb25zb2xlIiwibG9nIiwicmVmXyIsInJlc291cmNlSWQiLCJib29rUmVmIiwibmV3RmV0Y2hQYXJhbXMiLCJmZXRjaEJvb2siLCJfeCIsIl9mZXRjaEJvb2siLCJfY2FsbGVlIiwiX2ZldGNoUGFyYW1zJHJlZmVyZW5jMiIsImZldGNoTGluayIsIl9yZXNvdXJjZVN0YXRlJHJlc291ciIsImZldGNoZWRTaGFNYXRjaGVzSWdub3JlU2hhIiwiX3Jlc291cmNlU3RhdGUkcmVzb3VyMiIsIl9mZXRjaENvdW50IiwicmVzcG9uc2UiLCJfYXJncyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJ0MCIsInZhbGlkYXRlUmVzcG9uc2UiLCJfZmV0Y2hlZEJvb2skdG9Mb3dlckMiLCJpc1NhbWVCb29rIiwiZXhwZWN0ZWRCb29rSWQiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiZmV0Y2hlZEJyYW5jaCIsImZldGNoaW5nQnJhbmNoIiwiYmlibGVVc2ZtXyIsImZldGNoVmVyc2VzRm9yUmVmIiwiX3BhcnNlUmVzb3VyY2VNYW5pZmVzIiwidGl0bGUiLCJ2ZXJzaW9uIiwibG9hZGluZyIsImNvbnRlbnROb3RGb3VuZEVycm9yIiwic2NyaXB0dXJlTm90TG9hZGVkRXJyb3IiLCJtYW5pZmVzdE5vdEZvdW5kRXJyb3IiLCJtYW5pZmVzdCIsImludmFsaWRNYW5pZmVzdEVycm9yIiwicmVzb3VyY2VTdGF0dXMiLCJpbnRpYWxpemVkIiwiX2dldFZlcnNlc0ZvclJlZiIsImNvbnRlbnRfIiwidXBkYXRlVmVyc2UiLCJib29rT2JqZWN0c18iLCJfYm9va09iamVjdHMiLCJuZXdWZXJzZXNGb3JSZWYiLCJfbmV3VmVyc2VzRm9yUmVmIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwidm8iLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50IiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJyZWxvYWRSZXNvdXJjZSIsIl9mZXRjaFBhcmFtcyIsIl9wYXJzZVJlc291cmNlTGluayIsIl9yZWYiLCJfcmVzb3VyY2VMaW5rIiwiY3VycmVudEJvb2tSZWYiLCJmZXRjaGVkQm9va1NhbWUiLCJfdmVyc2VzRm9yUmVmIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNjcmlwdHVyZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHtcbiAgdXNlRWZmZWN0LFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgRVJST1JfU1RBVEUsXG4gIElOSVRJQUxJWkVEX1NUQVRFLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgZ2V0VmVyc2VzIH0gZnJvbSAnYmlibGUtcmVmZXJlbmNlLXJhbmdlJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQge1xuICBkZWxheSxcbiAgZmV0Y2hCaWJsZUJvb2tDb3JlLFxuICB2ZXJzZU9iamVjdHNIYXZlV29yZHMsXG59IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbiAgZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lLFxuICBnZXRSZXNvdXJjZUxpbmssXG4gIHBhcnNlUmVzb3VyY2VMaW5rLFxufSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7XG4gIEJvb2tGZXRjaFBhcmFtcyxcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxuICBTZXJ2ZXJDb25maWcsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG4gIFZlcnNlUmVmZXJlbmNlc1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgcGFyc2VSZXNvdXJjZU1hbmlmZXN0IH0gZnJvbSAnLi9wYXJzZVJlc291cmNlTWFuaWZlc3QnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiByZWZlcmVuY2UgZm9yIHNjcmlwdHVyZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiB3aGVyZSB0byBnZXQgZGF0YSAqKi9cbiAgY29uZmlnOiBTZXJ2ZXJDb25maWc7XG4gIC8qKiBvcHRpb25hbCBkaXJlY3QgcGF0aCB0byBiaWJsZSByZXNvdXJjZSwgaW4gZm9ybWF0ICR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH0vJHtwcm9qZWN0SWR9LyR7YnJhbmNofSAqKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogb3B0aW9uYWwgcmVzb3VyY2Ugb2JqZWN0IHRvIHVzZSB0byBidWlsZCByZXNvdXJjZUxpbmsgKiovXG4gIHJlc291cmNlOiBTY3JpcHR1cmVSZXNvdXJjZXx1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZmV0Y2ggdGhlIGVudGlyZSBib29rICovXG4gIHdob2xlQm9vazogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgdGhlbiBzZXR0aW5ncyBhcmUgcmVhZHkgZm9yIGZldGNoaW5nIGRhdGEgKi9cbiAgcmVhZHlGb3JGZXRjaDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBleHRyYWN0IGJyYW5jaCBmcm9tIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmtcbiAqL1xuZnVuY3Rpb24gZ2V0QnJhbmNoTmFtZShyZXNvdXJjZUxpbms6IHN0cmluZykge1xuICBsZXQgYnJhbmNoID0gbnVsbFxuICByZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmsgfHwgJydcbiAgY29uc3QgcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJz9yZWY9JylcblxuICBpZiAocGFydHMubGVuZ3RoID4gMSkgeyAvLyBpZiByZWYgcGFyYW1ldGVyIGZvdW5kLCBnZXQgYnJhbmNoIG5hbWUgYWZ0ZXJcbiAgICBicmFuY2ggPSBwYXJ0cz8uWzFdXG4gIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byB1c2luZyB1c2VSc3JjIGZvcm1hdCBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91c3QvbWFzdGVyXCJcbiAgICBjb25zdCBfcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuICAgIGJyYW5jaCA9IF9wYXJ0cz8uWzNdXG4gIH1cbiAgcmV0dXJuIGJyYW5jaFxufVxuXG4vKipcbiAqIGdldCB0aGUgdmVyc2Ugb2JqZWN0cyBmb3IgdGhlIHJlZmVyZW5jZSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHIgLSBpbiBmb3JtYXQgPGNoYXB0ZXI+Ojx2ZXJzZT5cbiAqIEBwYXJhbSB7b2JqZWN0fSBib29rT2JqZWN0cyAtIHBhcnNlZCB1c2ZtIGZvciBib29rXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VJZFxuICogQHJldHVybiB7YXJyYXl8bnVsbH0gLSBvZiB2ZXJzZU9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKTogVmVyc2VSZWZlcmVuY2VzVHlwZSB7XG4gIGlmIChib29rT2JqZWN0cykge1xuICAgIGxldCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va09iamVjdHMuY2hhcHRlcnMsIHJlZlN0cilcblxuICAgIGlmIChsYW5ndWFnZUlkID09PSAnZWwteC1rb2luZScgfHwgbGFuZ3VhZ2VJZCA9PT0gJ2hibycpIHtcbiAgICAgIHZlcnNlcyA9IHZlcnNlcy5tYXAodmVyc2UgPT4ge1xuICAgICAgICBpZiAoIHZlcnNlPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIGxldCB2ZXJzZU9iamVjdHNfID0gY29yZS5vY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzKCB2ZXJzZS52ZXJzZURhdGEudmVyc2VPYmplY3RzKVxuICAgICAgICAgIHZlcnNlT2JqZWN0c18gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgdmVyc2UudmVyc2VEYXRhLnZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmVyc2VcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcnNlc1xuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB2ZXJzZSBvYmplY3RzIGZvciB0aGUgcmVmZXJlbmNlIG9iamVjdFxuICogQHBhcmFtIHtvYmplY3R9IHJlZmVyZW5jZVxuICogQHBhcmFtIHtvYmplY3R9IGJvb2tPYmplY3RzIC0gcGFyc2VkIHVzZm0gZm9yIGJvb2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcmV0dXJuIHthcnJheXxudWxsfSAtIG9mIHZlcnNlT2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgYm9va09iamVjdHMsIGxhbmd1YWdlSWQpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgY29uc3QgcmVmU3RyID0gYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBcbiAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHsgLy8gaG9vayBmb3IgZmV0Y2hpbmcgc2NyaXB0dXJlXG4gIGNvbmZpZyxcbiAgcmVhZHlGb3JGZXRjaCxcbiAgcmVmZXJlbmNlLFxuICByZXNvdXJjZTogcmVzb3VyY2VfLFxuICByZXNvdXJjZUxpbms6IHJlc291cmNlTGlua18sXG4gIHdob2xlQm9vayA9IGZhbHNlLFxufSA6IFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBiaWJsZVVzZm06IHN0cmluZyxcbiAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICBmZXRjaGVkOiBib29sZWFuLFxuICAgIGZldGNoZWRCb29rOiBzdHJpbmcsXG4gICAgZmV0Y2hQYXJhbXM6IEJvb2tGZXRjaFBhcmFtc3xudWxsLFxuICAgIGlnbm9yZVNoYTogc3RyaW5nfG51bGwsXG4gICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4sXG4gICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgYmlibGVVc2ZtOiBzdHJpbmcsXG4gICAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgICAgY29udGVudDoge30sXG4gICAgICBmZXRjaFJlc3BvbnNlOiB7fSxcbiAgICAgIGZldGNoZWRSZXNvdXJjZXM6IHtcbiAgICAgICAgYmlibGVVc2ZtOiBzdHJpbmcsXG4gICAgICAgIGJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gICAgICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBzaGE6IHN0cmluZyxcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ1Jlc291cmNlOiBib29sZWFuLFxuICAgICAgbG9hZGluZ0NvbnRlbnQ6IGJvb2xlYW4sXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIG1hbmlmZXN0OiB7fSxcbiAgICAgICAgcmVzb3VyY2VMaW5rOiB7fVxuICAgICAgfSxcbiAgICAgIHNoYTogc3RyaW5nLFxuICAgICAgdXJsOiBzdHJpbmcsXG4gICAgfSxcbiAgICB2ZXJzZXNGb3JSZWY6IGFueVtdLFxuICB9XG5cbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gdXNlU3RhdGUoe1xuICAgIGJpYmxlVXNmbTogbnVsbCxcbiAgICBib29rT2JqZWN0czogbnVsbCxcbiAgICBmZXRjaENvdW50OiAwLFxuICAgIGZldGNoZWQ6IGZhbHNlLFxuICAgIGZldGNoZWRCb29rOiAnJyxcbiAgICBmZXRjaFBhcmFtczogbnVsbCxcbiAgICBpZ25vcmVTaGE6IG51bGwsXG4gICAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgIGJvb2tPYmplY3RzOiBudWxsLFxuICAgICAgYmlibGVVc2ZtOiBudWxsLFxuICAgICAgY29udGVudDogbnVsbCxcbiAgICAgIGZldGNoUmVzcG9uc2U6IG51bGwsXG4gICAgICBmZXRjaGVkUmVzb3VyY2VzOiBudWxsLFxuICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgIGxvYWRpbmdDb250ZW50OiBmYWxzZSxcbiAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgc2hhOiBudWxsLFxuICAgICAgdXJsOiBudWxsLFxuICAgIH0sXG4gICAgdmVyc2VzRm9yUmVmOiBbXSxcbiAgfSlcblxuICBjb25zdCB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICByZWYgPSBudWxsLFxuICB9ID0gcmVzb3VyY2VfIHx8IHt9XG5cbiAgY29uc3QgeyBwcm9qZWN0SWQ6IGJvb2tJZCB9ID0gcmVmZXJlbmNlIHx8IHt9XG5cbiAgY29uc3QgX3N0YXRlOiBTdGF0ZVR5cGVzID0gc3RhdGUgLy8gVHJpY2t5OiB3b3JrLWFyb3VuZCBmb3IgYnVnIHRoYXQgc3RhbmRhcmQgdHlwZXNjcmlwdCB0eXBlIGNhc3RpbmcgZG9lcyBub3Qgd29yayBpbiAudHN4IGZpbGVzXG4gIGNvbnN0IHtcbiAgICBiaWJsZVVzZm0sXG4gICAgYm9va09iamVjdHMsXG4gICAgZmV0Y2hDb3VudCxcbiAgICBmZXRjaGVkLFxuICAgIGZldGNoZWRCb29rLFxuICAgIGZldGNoUGFyYW1zLFxuICAgIGlnbm9yZVNoYSxcbiAgICBpbml0aWFsaXplZCxcbiAgICByZXNvdXJjZVN0YXRlLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBmZXRjaGVkUmVzb3VyY2VzID0gcmVzb3VyY2VTdGF0ZT8uZmV0Y2hlZFJlc291cmNlc1xuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVhZHlGb3JGZXRjaCkge1xuICAgICAgaW5pdGlhdGVCb29rRmV0Y2goKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluaXRpYXRlQm9va0ZldGNoKCkge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIHJlYWR5Rm9yRmV0Y2ggdHJ1ZSwgaW5pdGlhbGl6aW5nYClcbiAgICAgIGxldCByZXNvdXJjZUxpbmsgPSByZWFkeUZvckZldGNoICYmIHJlc291cmNlTGlua19cblxuICAgICAgaWYgKCFyZXNvdXJjZUxpbmtfICYmIHJlc291cmNlXykge1xuICAgICAgICBjb25zdCByZWZfID0gcmVmIHx8IGJyYW5jaFxuXG4gICAgICAgIHJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICAgICAgb3duZXIsXG4gICAgICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgICAgICByZXNvdXJjZUlkOiBib29rSWQsXG4gICAgICAgICAgcmVmOiByZWZfLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCBib29rUmVmID0geyAuLi5yZWZlcmVuY2UgfVxuXG4gICAgICBpZiAod2hvbGVCb29rKSB7XG4gICAgICAgIGRlbGV0ZSBib29rUmVmLmNoYXB0ZXIgLy8gcmVtb3ZlIHRoZSBjaGFwdGVyIGFuZCB2ZXJzZSBzbyB0aGUgd2hvbGUgYm9vayBpcyBmZXRjaGVkXG4gICAgICAgIGRlbGV0ZSBib29rUmVmLnZlcnNlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZUxpbmsgIT09IGZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmspIHtcbiAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIGZvciAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7cmVzb3VyY2VMaW5rfSBhbmQgcmVzb3VyY2VMaW5rXz0ke3Jlc291cmNlTGlua199YClcbiAgICAgIH0gZWxzZSBpZiAoYm9va1JlZiAhPT0gZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIC0gYm9vayBjaGFuZ2VkIHRvICR7cmVzb3VyY2VfPy5wcm9qZWN0SWR9IHJlc291cmNlTGluayBpcyBub3cgJHtyZXNvdXJjZUxpbmt9YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3RmV0Y2hQYXJhbXMgPSB7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcmVmZXJlbmNlOiBib29rUmVmLFxuICAgICAgICByZXNvdXJjZUxpbmssXG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFcXVhbChuZXdGZXRjaFBhcmFtcywgZmV0Y2hQYXJhbXMpKSB7XG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICBmZXRjaFBhcmFtczogbmV3RmV0Y2hQYXJhbXMsXG4gICAgICAgICAgZmV0Y2hlZDogZmFsc2UsXG4gICAgICAgICAgaW5pdGlhbGl6ZWQ6IHRydWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgZmV0Y2hCb29rKG5ld0ZldGNoUGFyYW1zKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBib29rSWQsXG4gICAgYnJhbmNoLFxuICAgIHJlZixcbiAgXSlcblxuICAvKipcbiAgICogZG8gYSBmZXRjaCBvZiBtYW5pZmVzdCBhbmQgYm9vayBvZiB0aGUgYmlibGUgc3BlY2lmaWVkIGluIGZldGNoUGFyYW1zXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBmZXRjaFBhcmFtc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gaWdub3JlU2hhIC0gb3B0aW9uYWwgcHJldmlvdXMgc2hhIC0gaWdub3JlIHJlc3BvbnNlcyB0aGF0IGNhbWUgYmFjayBmb3IgdGhpcyBwcmV2aW91cyBib29rIGNvbW1pdFxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCb29rKGZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMsIGlnbm9yZVNoYSA9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmV0Y2hMaW5rID0gYCR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30vJHtmZXRjaFBhcmFtcz8ucmVmZXJlbmNlPy5wcm9qZWN0SWR9YFxuXG4gICAgICBpZiAoaWdub3JlU2hhKSB7XG4gICAgICAgIGNvbnN0IGZldGNoZWRTaGFNYXRjaGVzSWdub3JlU2hhID0gaWdub3JlU2hhID09PSByZXNvdXJjZVN0YXRlPy5zaGEgLy8gd2Ugd2lsbCByZWxvYWQgaWYgaWdub3JlU2hhIGdpdmVuIGFuZCBpdCBtYXRjaGVzIGN1cnJlbnQgc2hhXG4gICAgICAgIGlmICgoZmV0Y2hMaW5rID09PSByZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucmVzb3VyY2VMaW5rKSAmJiAhZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEpIHsgLy8gc2VlIGlmIHdlIGFscmVhZHkgZmV0Y2hlZCB0aGlzXG4gICAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIEFscmVhZHkgZmV0Y2hpbmcgcmVzb3VyY2VMaW5rICR7cmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnJlc291cmNlTGlua30gYW5kIGlnbm9yZVNoYT0ke2lnbm9yZVNoYX1gLCBmZXRjaFBhcmFtcylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBfZmV0Y2hDb3VudCA9IGZldGNoQ291bnQgKyAxXG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gRkVUQ0hJTkcgYmlibGUgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9IGFuZCBpZ25vcmVTaGE9JHtpZ25vcmVTaGF9YCwgZmV0Y2hQYXJhbXMpXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGZldGNoQ291bnQ6IF9mZXRjaENvdW50LFxuICAgICAgICBmZXRjaGVkOiBmYWxzZSxcbiAgICAgICAgaWdub3JlU2hhLFxuICAgICAgICByZXNvdXJjZVN0YXRlOiB7IGxvYWRpbmdSZXNvdXJjZTogdHJ1ZSB9LFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEJpYmxlQm9va0NvcmUoZmV0Y2hQYXJhbXMpXG5cbiAgICAgIGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2U/LmVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUud2FybigpIC1FcnJvciBGRVRDSElORyBiaWJsZSAke3Jlc291cmNlXz8ucHJvamVjdElkfWAsIHJlc3BvbnNlKVxuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gTE9BREVEIGJpYmxlIGJvb2sgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9fWAsIGZldGNoUGFyYW1zKVxuICAgICAgc2V0U3RhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgZmV0Y2hlZFJlc291cmNlczoge1xuICAgICAgICAgICAgICAuLi5yZXNwb25zZSxcbiAgICAgICAgICAgICAgZmV0Y2hDb3VudDogX2ZldGNoQ291bnQsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZTogZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBoYXJkIGVycm9yIGxvYWRpbmcgcmVzb3VyY2VgLCBmZXRjaFBhcmFtcywgZSApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSBmb3IgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVhZHlGb3JGZXRjaCBpcyBub3cgJHtyZWFkeUZvckZldGNofWApXG4gIH0sIFtyZWFkeUZvckZldGNoXSlcblxuICAvKipcbiAgICogbWFrZSBzdXJlIGxhc3QgZmV0Y2ggcmVzcG9uc2UgaXMgZm9yIGN1cnJlbnQgYm9vay9icmFuY2hcbiAgICovXG4gIGZ1bmN0aW9uIHZhbGlkYXRlUmVzcG9uc2UoKSB7XG4gICAgbGV0IGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBleHBlY3RlZEJvb2tJZCA9IGJvb2tJZCB8fCAnenp6J1xuICAgIGNvbnN0IGZldGNoZWRCb29rID0gZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lKGZldGNoZWRSZXNvdXJjZXM/Lm5hbWUpXG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYW5kIHNlZWluZyAke2ZldGNoZWRCb29rfSBpbiBVU0ZNYClcbiAgICBpc1NhbWVCb29rID0gZmV0Y2hlZEJvb2s/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcblxuICAgIGNvbnN0IHNoYSA9IGZldGNoZWRSZXNvdXJjZXM/LnNoYSB8fCBudWxsXG4gICAgY29uc3QgdXJsID0gZmV0Y2hlZFJlc291cmNlcz8udXJsIHx8IG51bGxcblxuICAgIGlmIChpc1NhbWVCb29rKSB7IC8vIGFsc28gbWFrZSBzdXJlIGl0IGlzIHRoZSBzYW1lIGJyYW5jaFxuICAgICAgY29uc3QgZmV0Y2hlZEJyYW5jaCA9IGdldEJyYW5jaE5hbWUodXJsKVxuICAgICAgY29uc3QgZmV0Y2hpbmdCcmFuY2ggPSBnZXRCcmFuY2hOYW1lKGZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmspXG5cbiAgICAgIGlmIChmZXRjaGVkQnJhbmNoICE9PSBmZXRjaGluZ0JyYW5jaCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSBpbnZhbGlkIGJyYW5jaCwgZXhwZWN0ZWQgYnJhbmNoIGlzICR7ZmV0Y2hpbmdCcmFuY2h9LCBidXQgZmV0Y2hlZEJyYW5jaCBpcyAke2ZldGNoZWRCcmFuY2h9YCwgeyBzaGEsIHVybCB9KVxuICAgICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSAgaW52YWxpZCBib29rLCBleHBlY3RlZEJvb2tJZCBpcyAke2V4cGVjdGVkQm9va0lkfSwgYnV0IHJlY2VpdmVkIGJvb2sgbmFtZSAke2ZldGNoZWRCb29rfWAsIHsgc2hhLCB1cmwgfSlcbiAgICB9XG5cbiAgICBpZiAoaWdub3JlU2hhID09PSBzaGEpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIC0gdGhlIHNoYSBpcyB0aGUgc2FtZSBhcyB0aGUgaWdub3JlIHNoYSAke3NoYX1gLCB7IHNoYSwgdXJsIH0pXG4gICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoaXNTYW1lQm9vaykge1xuICAgICAgY29uc3QgYmlibGVVc2ZtXyA9IGZldGNoZWRSZXNvdXJjZXM/LmJpYmxlVXNmbVxuICAgICAgY29uc3QgYm9va09iamVjdHMgPSBmZXRjaGVkUmVzb3VyY2VzPy5ib29rT2JqZWN0c1xuICAgICAgY29uc3QgdmVyc2VzRm9yUmVmID0gZmV0Y2hWZXJzZXNGb3JSZWYoYm9va09iamVjdHMpXG5cbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIC0gY29ycmVjdCBib29rLCBleHBlY3RlZEJvb2tJZCBpcyAke2V4cGVjdGVkQm9va0lkfWAsIHsgc2hhLCB1cmwgfSlcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBiaWJsZVVzZm06IGJpYmxlVXNmbV8sXG4gICAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgICBmZXRjaGVkOiB0cnVlLFxuICAgICAgICBmZXRjaGVkQm9vazogZXhwZWN0ZWRCb29rSWQsXG4gICAgICAgIGlnbm9yZVNoYTogbnVsbCxcbiAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgICAgIGJpYmxlVXNmbTogYmlibGVVc2ZtXyxcbiAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIGxvYWRpbmdDb250ZW50OiBmYWxzZSxcbiAgICAgICAgICByZXNvdXJjZTogZmV0Y2hlZFJlc291cmNlcyxcbiAgICAgICAgICBzaGEsXG4gICAgICAgICAgdXJsLFxuICAgICAgICB9LFxuICAgICAgICB2ZXJzZXNGb3JSZWYsXG4gICAgICB9XG5cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHsgLy8gdmFsaWRhdGUgcmVzcG9uc2UgdG8gbWFrZSBzdXJlIGZyb20gbGF0ZXN0IHJlcXVlc3RcbiAgICBpZiAocmVhZHlGb3JGZXRjaCAmJiBmZXRjaGVkUmVzb3VyY2VzKSB7XG4gICAgICBpZiAoIWZldGNoZWQgJiYgZmV0Y2hlZFJlc291cmNlcz8uZmV0Y2hDb3VudCA9PT0gZmV0Y2hDb3VudCkge1xuICAgICAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHZhbGlkYXRlUmVzcG9uc2UoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3sgcmVhZHlGb3JGZXRjaCwgZmV0Y2hlZFJlc291cmNlcyB9XSlcblxuICBjb25zdCByZXNvdXJjZSA9IHJlc291cmNlU3RhdGU/LnJlc291cmNlXG4gIGNvbnN0IHsgdGl0bGUsIHZlcnNpb24gfSA9IHBhcnNlUmVzb3VyY2VNYW5pZmVzdChyZXNvdXJjZSlcbiAgY29uc3QgbG9hZGluZyA9IHJlc291cmNlU3RhdGU/LmxvYWRpbmdSZXNvdXJjZSB8fCByZXNvdXJjZVN0YXRlPy5sb2FkaW5nQ29udGVudCB8fCAhcmVhZHlGb3JGZXRjaFxuICBjb25zdCBjb250ZW50Tm90Rm91bmRFcnJvciA9ICFyZXNvdXJjZVN0YXRlPy5iaWJsZVVzZm1cbiAgY29uc3Qgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgPSAhcmVzb3VyY2VTdGF0ZT8uYm9va09iamVjdHNcbiAgY29uc3QgbWFuaWZlc3ROb3RGb3VuZEVycm9yID0gIXJlc291cmNlPy5tYW5pZmVzdFxuICBjb25zdCBpbnZhbGlkTWFuaWZlc3RFcnJvciA9ICF0aXRsZSB8fCAhdmVyc2lvbiB8fCAhbGFuZ3VhZ2VJZFxuICBjb25zdCBlcnJvciA9IHJlYWR5Rm9yRmV0Y2ggJiYgaW5pdGlhbGl6ZWQgJiYgIWxvYWRpbmcgJiZcbiAgICAoY29udGVudE5vdEZvdW5kRXJyb3IgfHwgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgfHwgbWFuaWZlc3ROb3RGb3VuZEVycm9yIHx8IGludmFsaWRNYW5pZmVzdEVycm9yKVxuICBjb25zdCByZXNvdXJjZVN0YXR1cyA9IHtcbiAgICBbTE9BRElOR19TVEFURV06IGxvYWRpbmcsXG4gICAgW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXTogY29udGVudE5vdEZvdW5kRXJyb3IsXG4gICAgW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXTogc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IsXG4gICAgW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdOiBtYW5pZmVzdE5vdEZvdW5kRXJyb3IsXG4gICAgW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdOiBpbnZhbGlkTWFuaWZlc3RFcnJvcixcbiAgICBbRVJST1JfU1RBVEVdOiBlcnJvcixcbiAgICBbSU5JVElBTElaRURfU1RBVEVdOiBpbml0aWFsaXplZCxcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyZWFkeUZvckZldGNoKSB7XG4gICAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgc2V0U3RhdGUoeyBpbnRpYWxpemVkOiBmYWxzZSB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWluaXRpYWxpemVkKSB7XG4gICAgICBpZiAobG9hZGluZykgeyAvLyBvbmNlIGZpcnN0IGxvYWQgaGFzIGJlZ3VuLCB3ZSBhcmUgaW5pdGlhbGl6ZWRcbiAgICAgICAgc2V0U3RhdGUoeyBpbnRpYWxpemVkOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbbG9hZGluZywgcmVhZHlGb3JGZXRjaF0pXG5cbiAgLyoqXG4gICAqIGdldCB2ZXJzZXMgZm9yIHJlZlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmU3RyXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZW50X1xuICAgKi9cbiAgZnVuY3Rpb24gX2dldFZlcnNlc0ZvclJlZihyZWZTdHIsIGNvbnRlbnRfID0gYm9va09iamVjdHMpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgICBpZiAoY29udGVudF8pIHtcbiAgICAgIHJldHVybiBnZXRWZXJzZXNGb3JSZWZTdHIocmVmU3RyLCBjb250ZW50XywgbGFuZ3VhZ2VJZClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgdmVyc2UgZGF0YSBmb3IgY3VycmVudCBib29rXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFwdGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzZVxuICAgKiBAcGFyYW0ge29iamVjdH0gdmVyc2VEYXRhXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVWZXJzZShjaGFwdGVyLCB2ZXJzZSwgdmVyc2VEYXRhKSB7XG4gICAgaWYgKGJvb2tPYmplY3RzKSB7XG4gICAgICBjb25zdCBib29rT2JqZWN0c18gPSB7IC4uLmJvb2tPYmplY3RzIH0gLy8gc2hhbGxvdyBjb3B5XG5cbiAgICAgIGlmIChib29rT2JqZWN0c18/LmNoYXB0ZXJzKSB7XG4gICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVycyA9IHsgLi4uYm9va09iamVjdHNfLmNoYXB0ZXJzIH0gLy8gc2hhbGxvdyBjb3B5IGNoYXB0ZXJzXG5cbiAgICAgICAgaWYgKGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSkge1xuICAgICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSA9IHsgLi4uYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdIH0gLy8gc2hhbGxvdyBjb3B5IHZlcnNlc1xuICAgICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXVt2ZXJzZV0gPSB2ZXJzZURhdGFcbiAgICAgICAgICBzZXRTdGF0ZSh7IGJvb2tPYmplY3RzOiBib29rT2JqZWN0c18gfSlcbiAgICAgICAgICByZXR1cm4gYm9va09iamVjdHNfXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdGhlIHZlcnNlcyBmb3IgY3VycmVudCByZWZlcmVuY2Ugb3IgcmVmZXJlbmNlIHJhbmdlXG4gICAqIEBwYXJhbSB7Qm9va09iamVjdHNUeXBlfSBfYm9va09iamVjdHNcbiAgICovXG4gIGZ1bmN0aW9uIGZldGNoVmVyc2VzRm9yUmVmKF9ib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlID0gYm9va09iamVjdHMpOiBWZXJzZU9iamVjdHNUeXBlIHtcbiAgICBsZXQgbmV3VmVyc2VzRm9yUmVmID0gW11cblxuICAgIGlmIChfYm9va09iamVjdHMpIHtcbiAgICAgIG5ld1ZlcnNlc0ZvclJlZiA9IGdldFZlcnNlc0ZvclJlZihyZWZlcmVuY2UsIF9ib29rT2JqZWN0cywgbGFuZ3VhZ2VJZClcbiAgICAgIGlmIChyZWZlcmVuY2U/LnZlcnNlID09PSAnZnJvbnQnKSB7IC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZyb250IG1hdHRlclxuICAgICAgICBjb25zdCB2ZXJzZURhdGEgPSBuZXdWZXJzZXNGb3JSZWY/LlswXT8udmVyc2VEYXRhXG4gICAgICAgIGNvbnN0IGluaXRpYWxWZXJzZU9iamVjdHMgPSB2ZXJzZURhdGE/LnZlcnNlT2JqZWN0c1xuICAgICAgICBpZiAoaW5pdGlhbFZlcnNlT2JqZWN0cyAmJiAhdmVyc2VPYmplY3RzSGF2ZVdvcmRzKGluaXRpYWxWZXJzZU9iamVjdHMpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCB2byBvZiBpbml0aWFsVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBpZiAodm9bJ3RhZyddID09PSAnZCcpIHsgLy8gY2hlY2sgZm9yIGRlc2NyaXB0aXZlIHRpdGxlXG4gICAgICAgICAgICAgIC8vIHJlcGFyc2Ugc28gZGVzY3JpcHRpdmUgdGl0bGUgdGV4dCBpcyBicm9rZW4gaW50byBhbGlnbi1hYmxlIHdvcmRzXG4gICAgICAgICAgICAgIGxldCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0KVxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0YXJnZXRWZXJzZU9iamVjdHMpXG4gICAgICAgICAgICAgIHZlcnNlRGF0YS52ZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gcmVwbGFjZSB2ZXJzZU9iamVjdHMgd2l0aCBhbGlnbi1hYmxlIGNvbnRlbnRcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdWZXJzZXNGb3JSZWZcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIGZvcmNlIHJlbG9hZCBvZiByZXNvdXJjZVxuICAgKiBAcGFyYW0ge3N0cmluZ3x1bmRlZmluZWR9IGlnbm9yZVNoYSAtIG9wdGlvbmFsIHNoYSB0byBpZ25vcmVcbiAgICogQHBhcmFtIHtzdHJpbmd8dW5kZWZpbmVkfSByZWYgLSBvcHRpb25hbCByZWZlcmVuY2UgdG8gZmV0Y2hcbiAgICovXG4gIGZ1bmN0aW9uIHJlbG9hZFJlc291cmNlKGlnbm9yZVNoYSA9IG51bGwsIHJlZiA9IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnJlbG9hZFJlc291cmNlKCkgaWdub3JlU2hhOiAke2lnbm9yZVNoYX1gIClcbiAgICBjb25zdCBfZmV0Y2hQYXJhbXM6IEJvb2tGZXRjaFBhcmFtcyA9IHsgLi4uZmV0Y2hQYXJhbXMgfVxuXG4gICAgaWYgKHJlZiAmJiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG93bmVyLFxuICAgICAgICBsYW5ndWFnZUlkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICByZWY6IF9yZWYsXG4gICAgICB9ID0gcGFyc2VSZXNvdXJjZUxpbmsoZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rKVxuXG4gICAgICBpZiAocmVmICE9PSBfcmVmKSB7IC8vIGlmIHJlZiBjaGFuZ2VkLCB1cGRhdGUgcmVzb3VyY2VsaW5rXG4gICAgICAgIGNvbnN0IF9yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGxhbmd1YWdlSWQsXG4gICAgICAgICAgcmVzb3VyY2VJZCxcbiAgICAgICAgICByZWYsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUucmVsb2FkUmVzb3VyY2UoKSBvbGQgcmVmIGlzIGRpZmZlcmVudCAke19yZWZ9LCBzd2l0Y2hpbmcgdG8gbG9hZCByZWY6ICR7cmVmfSwgbmV3IHJlc291cmNlTGluazogJHtfcmVzb3VyY2VMaW5rfWAgKVxuICAgICAgICBfZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rID0gX3Jlc291cmNlTGlua1xuICAgICAgfVxuICAgIH1cbiAgICBmZXRjaEJvb2soX2ZldGNoUGFyYW1zLCBpZ25vcmVTaGEpXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGN1cnJlbnRCb29rUmVmID0gZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZT8ucHJvamVjdElkXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY3VycmVudEJvb2tSZWYpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZmV0Y2hlZCBib29rIGNoYW5nZWQgdG8gJHtjdXJyZW50Qm9va1JlZn0sICR7cmVzb3VyY2VMaW5rX31gLCBmZXRjaFBhcmFtcyApXG4gICAgICBzZXRTdGF0ZSh7IGJvb2tPYmplY3RzOiBudWxsLCBiaWJsZVVzZm06IG51bGwgfSlcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbY3VycmVudEJvb2tSZWZdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBib29rIHJlZiBjaGFuZ2VkIHRvICR7Ym9va0lkfSwgJHtyZXNvdXJjZUxpbmtffWApXG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbYm9va0lkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGV4cGVjdGVkQm9va0lkID0gYm9va0lkIHx8ICcnXG4gICAgY29uc3QgZmV0Y2hlZEJvb2tTYW1lID0gZmV0Y2hlZEJvb2sgJiYgKGZldGNoZWRCb29rID09PSBleHBlY3RlZEJvb2tJZClcbiAgICBsZXQgX3ZlcnNlc0ZvclJlZiA9IFtdXG5cbiAgICBpZiAoIWZldGNoZWRCb29rU2FtZSkge1xuICAgICAgLy8gaWYgKGV4cGVjdGVkQm9va0lkICYmIGZldGNoZWRCb29rKSB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZXhwZWN0ZWQgYm9vayAke2V4cGVjdGVkQm9va0lkfSBidXQgZmV0Y2hlZCBib29rIHdhcyAke2ZldGNoZWRCb29rfSAtIGNsZWFyaW5nYClcbiAgICAgIC8vIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgX2Jvb2tPYmplY3RzID0gZmV0Y2hlZEJvb2tTYW1lID8gYm9va09iamVjdHMgOiBudWxsXG4gICAgICBfdmVyc2VzRm9yUmVmID0gZmV0Y2hWZXJzZXNGb3JSZWYoX2Jvb2tPYmplY3RzKVxuICAgICAgLy8gY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBfYm9va09iamVjdHMgaXMgJHshIV9ib29rT2JqZWN0c30gYW5kIGJvb2tzIGFyZSB0aGUgc2FtZSAke2ZldGNoZWRCb29rfWAsIHsgY29udGVudCwgZmV0Y2hQYXJhbXMgfSlcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX3ZlcnNlc0ZvclJlZiwgdmVyc2VzRm9yUmVmKSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZXNGb3JSZWY6IF92ZXJzZXNGb3JSZWYgfSlcbiAgICB9XG4gIH0sIFtyZWZlcmVuY2VdKVxuXG4gIHJldHVybiB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGdldFZlcnNlc0ZvclJlZjogX2dldFZlcnNlc0ZvclJlZixcbiAgICByZWZlcmVuY2U6IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UsXG4gICAgcmVsb2FkUmVzb3VyY2UsXG4gICAgcmVzb3VyY2VMaW5rOiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rLFxuICAgIHJlc291cmNlU3RhdGUsIC8vIHN0YXRlIGluZm9ybWF0aW9uIGZvciBsYXRlc3QgZmV0Y2hlZCByZXNvdXJjZVxuICAgIHJlc291cmNlU3RhdHVzLCAvLyBzdGF0dXMgZmxhZ3MgZm9yIGZldGNoZWQgcmVzb3VyY2VcbiAgICB0aXRsZSxcbiAgICB1cGRhdGVWZXJzZSxcbiAgICB2ZXJzaW9uLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVB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
599
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsIkNPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SIiwiRVJST1JfU1RBVEUiLCJJTklUSUFMSVpFRF9TVEFURSIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwidXNlRGVlcENvbXBhcmVFZmZlY3QiLCJnZXRWZXJzZXMiLCJpc0VxdWFsIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJkZWxheSIsImZldGNoQmlibGVCb29rQ29yZSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUiLCJnZXRSZXNvdXJjZUxpbmsiLCJwYXJzZVJlc291cmNlTGluayIsIkJvb2tGZXRjaFBhcmFtcyIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlc291cmNlVHlwZSIsIlNjcmlwdHVyZVJlZmVyZW5jZVR5cGUiLCJTZXJ2ZXJDb25maWdUeXBlIiwiVmVyc2VPYmplY3RzVHlwZSIsIlZlcnNlUmVmZXJlbmNlc1R5cGUiLCJwYXJzZVJlc291cmNlTWFuaWZlc3QiLCJnZXRCcmFuY2hOYW1lIiwicmVzb3VyY2VMaW5rIiwiYnJhbmNoIiwicGFydHMiLCJzcGxpdCIsIl9wYXJ0cyIsImdldFZlcnNlc0ZvclJlZlN0ciIsInJlZlN0ciIsImJvb2tPYmplY3RzIiwibGFuZ3VhZ2VJZCIsInZlcnNlcyIsImNoYXB0ZXJzIiwibWFwIiwidmVyc2UiLCJfdmVyc2UkdmVyc2VEYXRhIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsIm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMiLCJnZXRWZXJzZXNGb3JSZWYiLCJyZWZlcmVuY2UiLCJjb25jYXQiLCJjaGFwdGVyIiwidXNlU2NyaXB0dXJlIiwiX3JlZjIiLCJfcmVzb3VyY2VTdGF0dXMiLCJfZmV0Y2hQYXJhbXMkcmVmZXJlbmMiLCJjb25maWciLCJyZWFkeUZvckZldGNoIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwiX3JlZjIkd2hvbGVCb29rIiwid2hvbGVCb29rIiwiX3VzZVN0YXRlIiwiYmlibGVVc2ZtIiwiZmV0Y2hDb3VudCIsImZldGNoZWQiLCJmZXRjaGVkQm9vayIsImZldGNoUGFyYW1zIiwiaWdub3JlU2hhIiwiaW5pdGlhbGl6ZWQiLCJyZXNvdXJjZVN0YXRlIiwiY29udGVudCIsImZldGNoUmVzcG9uc2UiLCJmZXRjaGVkUmVzb3VyY2VzIiwibG9hZGluZ1Jlc291cmNlIiwibG9hZGluZ0NvbnRlbnQiLCJzaGEiLCJ1cmwiLCJ2ZXJzZXNGb3JSZWYiLCJfdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfcmVmMyIsIm93bmVyIiwiX3JlZjMkYnJhbmNoIiwiX3JlZjMkcmVmIiwicmVmIiwiX3JlZjQiLCJib29rSWQiLCJfc3RhdGUiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiaW5pdGlhdGVCb29rRmV0Y2giLCJjb25zb2xlIiwibG9nIiwicmVmXyIsInJlc291cmNlSWQiLCJwcm9qZWN0SWQiLCJib29rUmVmIiwibmV3RmV0Y2hQYXJhbXMiLCJmZXRjaEJvb2siLCJfeCIsIl9mZXRjaEJvb2siLCJfY2FsbGVlIiwiX2ZldGNoUGFyYW1zJHJlZmVyZW5jMiIsImZldGNoTGluayIsIl9yZXNvdXJjZVN0YXRlJHJlc291ciIsImZldGNoZWRTaGFNYXRjaGVzSWdub3JlU2hhIiwiX3Jlc291cmNlU3RhdGUkcmVzb3VyMiIsIl9mZXRjaENvdW50IiwicmVzcG9uc2UiLCJfYXJncyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJ0MCIsInZhbGlkYXRlUmVzcG9uc2UiLCJfZmV0Y2hlZEJvb2skdG9Mb3dlckMiLCJpc1NhbWVCb29rIiwiZXhwZWN0ZWRCb29rSWQiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiZmV0Y2hlZEJyYW5jaCIsImZldGNoaW5nQnJhbmNoIiwiYmlibGVVc2ZtXyIsImdldFZlcnNlc0ZvclJlZl8iLCJfcGFyc2VSZXNvdXJjZU1hbmlmZXMiLCJ0aXRsZSIsInZlcnNpb24iLCJsb2FkaW5nIiwiY29udGVudE5vdEZvdW5kRXJyb3IiLCJzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciIsIm1hbmlmZXN0Tm90Rm91bmRFcnJvciIsIm1hbmlmZXN0IiwiaW52YWxpZE1hbmlmZXN0RXJyb3IiLCJyZXNvdXJjZVN0YXR1cyIsImludGlhbGl6ZWQiLCJfZ2V0VmVyc2VzRm9yUmVmIiwiY29udGVudF8iLCJ1cGRhdGVWZXJzZSIsImJvb2tPYmplY3RzXyIsIl9ib29rT2JqZWN0cyIsIm5ld1ZlcnNlc0ZvclJlZiIsIl9uZXdWZXJzZXNGb3JSZWYiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ2byIsInZlcnNlVGV4dCIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlT2JqZWN0cyIsInJlbG9hZFJlc291cmNlIiwiX2ZldGNoUGFyYW1zIiwiX3BhcnNlUmVzb3VyY2VMaW5rIiwiX3JlZiIsIl9yZXNvdXJjZUxpbmsiLCJjdXJyZW50Qm9va1JlZiIsImZldGNoZWRCb29rU2FtZSIsIl92ZXJzZXNGb3JSZWYiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlU2NyaXB0dXJlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQge1xuICB1c2VFZmZlY3QsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNvcmUgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7XG4gIENPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SLFxuICBFUlJPUl9TVEFURSxcbiAgSU5JVElBTElaRURfU1RBVEUsXG4gIElOVkFMSURfTUFOSUZFU1RfRVJST1IsXG4gIExPQURJTkdfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBnZXRWZXJzZXMgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnQHJlYWN0LWhvb2t6L2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7XG4gIGRlbGF5LFxuICBmZXRjaEJpYmxlQm9va0NvcmUsXG4gIHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyxcbn0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQge1xuICBjbGVhbnVwVmVyc2VPYmplY3RzLFxuICBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUsXG4gIGdldFJlc291cmNlTGluayxcbiAgcGFyc2VSZXNvdXJjZUxpbmssXG59IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgQm9va0ZldGNoUGFyYW1zLFxuICBCb29rT2JqZWN0c1R5cGUsXG4gIFNjcmlwdHVyZVJlc291cmNlVHlwZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSxcbiAgU2VydmVyQ29uZmlnVHlwZSxcbiAgVmVyc2VPYmplY3RzVHlwZSxcbiAgVmVyc2VSZWZlcmVuY2VzVHlwZSxcbn0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBwYXJzZVJlc291cmNlTWFuaWZlc3QgfSBmcm9tICcuL3BhcnNlUmVzb3VyY2VNYW5pZmVzdCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIHJlZmVyZW5jZSBmb3Igc2NyaXB0dXJlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGU7XG4gIC8qKiB3aGVyZSB0byBnZXQgZGF0YSAqKi9cbiAgY29uZmlnOiBTZXJ2ZXJDb25maWdUeXBlO1xuICAvKiogb3B0aW9uYWwgZGlyZWN0IHBhdGggdG8gYmlibGUgcmVzb3VyY2UsIGluIGZvcm1hdCAke293bmVyfS8ke2xhbmd1YWdlSWR9LyR7cHJvamVjdElkfS8ke2JyYW5jaH0gKiovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIG9wdGlvbmFsIHJlc291cmNlIG9iamVjdCB0byB1c2UgdG8gYnVpbGQgcmVzb3VyY2VMaW5rICoqL1xuICByZXNvdXJjZTogU2NyaXB0dXJlUmVzb3VyY2VUeXBlfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBmZXRjaCB0aGUgZW50aXJlIGJvb2sgKi9cbiAgd2hvbGVCb29rOiBib29sZWFuO1xuICAvKiogaWYgdHJ1ZSB0aGVuIHNldHRpbmdzIGFyZSByZWFkeSBmb3IgZmV0Y2hpbmcgZGF0YSAqL1xuICByZWFkeUZvckZldGNoOiBib29sZWFuO1xufVxuXG4vKipcbiAqIGV4dHJhY3QgYnJhbmNoIGZyb20gcmVzb3VyY2UgbGlua1xuICogQHBhcmFtIHJlc291cmNlTGlua1xuICovXG5mdW5jdGlvbiBnZXRCcmFuY2hOYW1lKHJlc291cmNlTGluazogc3RyaW5nKSB7XG4gIGxldCBicmFuY2ggPSBudWxsXG4gIHJlc291cmNlTGluayA9IHJlc291cmNlTGluayB8fCAnJ1xuICBjb25zdCBwYXJ0cyA9IHJlc291cmNlTGluay5zcGxpdCgnP3JlZj0nKVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7IC8vIGlmIHJlZiBwYXJhbWV0ZXIgZm91bmQsIGdldCBicmFuY2ggbmFtZSBhZnRlclxuICAgIGJyYW5jaCA9IHBhcnRzPy5bMV1cbiAgfSBlbHNlIHsgLy8gZmFsbCBiYWNrIHRvIHVzaW5nIHVzZVJzcmMgZm9ybWF0IHN1Y2ggYXMgXCJ1bmZvbGRpbmdXb3JkL2VuL3VzdC9tYXN0ZXJcIlxuICAgIGNvbnN0IF9wYXJ0cyA9IHJlc291cmNlTGluay5zcGxpdCgnLycpXG4gICAgYnJhbmNoID0gX3BhcnRzPy5bM11cbiAgfVxuICByZXR1cm4gYnJhbmNoXG59XG5cbi8qKlxuICogZ2V0IHRoZSB2ZXJzZSBvYmplY3RzIGZvciB0aGUgcmVmZXJlbmNlIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IHJlZlN0ciAtIGluIGZvcm1hdCA8Y2hhcHRlcj46PHZlcnNlPlxuICogQHBhcmFtIHtvYmplY3R9IGJvb2tPYmplY3RzIC0gcGFyc2VkIHVzZm0gZm9yIGJvb2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcmV0dXJuIHthcnJheXxudWxsfSAtIG9mIHZlcnNlT2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmU3RyKHJlZlN0ciwgYm9va09iamVjdHMsIGxhbmd1YWdlSWQpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgaWYgKGJvb2tPYmplY3RzKSB7XG4gICAgbGV0IHZlcnNlcyA9IGdldFZlcnNlcyhib29rT2JqZWN0cy5jaGFwdGVycywgcmVmU3RyKVxuXG4gICAgaWYgKGxhbmd1YWdlSWQgPT09ICdlbC14LWtvaW5lJyB8fCBsYW5ndWFnZUlkID09PSAnaGJvJykge1xuICAgICAgdmVyc2VzID0gdmVyc2VzLm1hcCh2ZXJzZSA9PiB7XG4gICAgICAgIGlmICggdmVyc2U/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgbGV0IHZlcnNlT2JqZWN0c18gPSBjb3JlLm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMoIHZlcnNlLnZlcnNlRGF0YS52ZXJzZU9iamVjdHMpXG4gICAgICAgICAgdmVyc2VPYmplY3RzXyA9IGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzXylcbiAgICAgICAgICB2ZXJzZS52ZXJzZURhdGEudmVyc2VPYmplY3RzID0gdmVyc2VPYmplY3RzX1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2ZXJzZVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyc2VzXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuLyoqXG4gKiBnZXQgdGhlIHZlcnNlIG9iamVjdHMgZm9yIHRoZSByZWZlcmVuY2Ugb2JqZWN0XG4gKiBAcGFyYW0ge1NjcmlwdHVyZVJlZmVyZW5jZVR5cGV9IHJlZmVyZW5jZVxuICogQHBhcmFtIHtvYmplY3R9IGJvb2tPYmplY3RzIC0gcGFyc2VkIHVzZm0gZm9yIGJvb2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcmV0dXJuIHthcnJheXxudWxsfSAtIG9mIHZlcnNlT2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgYm9va09iamVjdHMsIGxhbmd1YWdlSWQpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgY29uc3QgcmVmU3RyID0gYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBcbiAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHsgLy8gaG9vayBmb3IgZmV0Y2hpbmcgc2NyaXB0dXJlXG4gIGNvbmZpZyxcbiAgcmVhZHlGb3JGZXRjaCxcbiAgcmVmZXJlbmNlLFxuICByZXNvdXJjZTogcmVzb3VyY2VfLFxuICByZXNvdXJjZUxpbms6IHJlc291cmNlTGlua18sXG4gIHdob2xlQm9vayA9IGZhbHNlLFxufSA6IFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBiaWJsZVVzZm06IHN0cmluZyxcbiAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICBmZXRjaGVkOiBib29sZWFuLFxuICAgIGZldGNoZWRCb29rOiBzdHJpbmcsXG4gICAgZmV0Y2hQYXJhbXM6IEJvb2tGZXRjaFBhcmFtc3xudWxsLFxuICAgIGlnbm9yZVNoYTogc3RyaW5nfG51bGwsXG4gICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4sXG4gICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgYmlibGVVc2ZtOiBzdHJpbmcsXG4gICAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgICAgY29udGVudDoge30sXG4gICAgICBmZXRjaFJlc3BvbnNlOiB7fSxcbiAgICAgIGZldGNoZWRSZXNvdXJjZXM6IHtcbiAgICAgICAgYmlibGVVc2ZtOiBzdHJpbmcsXG4gICAgICAgIGJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gICAgICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBzaGE6IHN0cmluZyxcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ1Jlc291cmNlOiBib29sZWFuLFxuICAgICAgbG9hZGluZ0NvbnRlbnQ6IGJvb2xlYW4sXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIG1hbmlmZXN0OiB7fSxcbiAgICAgICAgcmVzb3VyY2VMaW5rOiB7fVxuICAgICAgfSxcbiAgICAgIHNoYTogc3RyaW5nLFxuICAgICAgdXJsOiBzdHJpbmcsXG4gICAgfSxcbiAgICB2ZXJzZXNGb3JSZWY6IGFueVtdLFxuICB9XG5cbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gdXNlU3RhdGUoe1xuICAgIGJpYmxlVXNmbTogbnVsbCxcbiAgICBib29rT2JqZWN0czogbnVsbCxcbiAgICBmZXRjaENvdW50OiAwLFxuICAgIGZldGNoZWQ6IGZhbHNlLFxuICAgIGZldGNoZWRCb29rOiAnJyxcbiAgICBmZXRjaFBhcmFtczogbnVsbCxcbiAgICBpZ25vcmVTaGE6IG51bGwsXG4gICAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgIGJvb2tPYmplY3RzOiBudWxsLFxuICAgICAgYmlibGVVc2ZtOiBudWxsLFxuICAgICAgY29udGVudDogbnVsbCxcbiAgICAgIGZldGNoUmVzcG9uc2U6IG51bGwsXG4gICAgICBmZXRjaGVkUmVzb3VyY2VzOiBudWxsLFxuICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgIGxvYWRpbmdDb250ZW50OiBmYWxzZSxcbiAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgc2hhOiBudWxsLFxuICAgICAgdXJsOiBudWxsLFxuICAgIH0sXG4gICAgdmVyc2VzRm9yUmVmOiBbXSxcbiAgfSlcblxuICBjb25zdCB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICByZWYgPSBudWxsLFxuICB9ID0gcmVzb3VyY2VfIHx8IHt9XG5cbiAgY29uc3QgeyBib29rSWQgfSA9IHJlZmVyZW5jZSB8fCB7fVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGZldGNoQ291bnQsXG4gICAgZmV0Y2hlZCxcbiAgICBmZXRjaGVkQm9vayxcbiAgICBmZXRjaFBhcmFtcyxcbiAgICBpZ25vcmVTaGEsXG4gICAgaW5pdGlhbGl6ZWQsXG4gICAgcmVzb3VyY2VTdGF0ZSxcbiAgICB2ZXJzZXNGb3JSZWYsXG4gIH0gPSBfc3RhdGVcbiAgY29uc3QgZmV0Y2hlZFJlc291cmNlcyA9IHJlc291cmNlU3RhdGU/LmZldGNoZWRSZXNvdXJjZXNcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlYWR5Rm9yRmV0Y2gpIHtcbiAgICAgIGluaXRpYXRlQm9va0ZldGNoKClcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbml0aWF0ZUJvb2tGZXRjaCgpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSByZWFkeUZvckZldGNoIHRydWUsIGluaXRpYWxpemluZ2ApXG4gICAgICBsZXQgcmVzb3VyY2VMaW5rID0gcmVhZHlGb3JGZXRjaCAmJiByZXNvdXJjZUxpbmtfXG5cbiAgICAgIGlmICghcmVzb3VyY2VMaW5rXyAmJiByZXNvdXJjZV8pIHtcbiAgICAgICAgY29uc3QgcmVmXyA9IHJlZiB8fCBicmFuY2hcblxuICAgICAgICByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGxhbmd1YWdlSWQsXG4gICAgICAgICAgcmVzb3VyY2VJZDogcmVzb3VyY2VfPy5wcm9qZWN0SWQsXG4gICAgICAgICAgcmVmOiByZWZfLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCBib29rUmVmID0geyAuLi5yZWZlcmVuY2UgfVxuXG4gICAgICBpZiAod2hvbGVCb29rKSB7XG4gICAgICAgIGRlbGV0ZSBib29rUmVmLmNoYXB0ZXIgLy8gcmVtb3ZlIHRoZSBjaGFwdGVyIGFuZCB2ZXJzZSBzbyB0aGUgd2hvbGUgYm9vayBpcyBmZXRjaGVkXG4gICAgICAgIGRlbGV0ZSBib29rUmVmLnZlcnNlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZUxpbmsgIT09IGZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmspIHtcbiAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIGZvciAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7cmVzb3VyY2VMaW5rfSBhbmQgcmVzb3VyY2VMaW5rXz0ke3Jlc291cmNlTGlua199YClcbiAgICAgIH0gZWxzZSBpZiAoYm9va1JlZiAhPT0gZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIC0gYm9vayBjaGFuZ2VkIHRvICR7cmVzb3VyY2VfPy5wcm9qZWN0SWR9IHJlc291cmNlTGluayBpcyBub3cgJHtyZXNvdXJjZUxpbmt9YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3RmV0Y2hQYXJhbXMgPSB7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcmVmZXJlbmNlOiBib29rUmVmLFxuICAgICAgICByZXNvdXJjZUxpbmssXG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFcXVhbChuZXdGZXRjaFBhcmFtcywgZmV0Y2hQYXJhbXMpKSB7XG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICBmZXRjaFBhcmFtczogbmV3RmV0Y2hQYXJhbXMsXG4gICAgICAgICAgZmV0Y2hlZDogZmFsc2UsXG4gICAgICAgICAgaW5pdGlhbGl6ZWQ6IHRydWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgZmV0Y2hCb29rKG5ld0ZldGNoUGFyYW1zKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBib29rSWQsXG4gICAgYnJhbmNoLFxuICAgIHJlZixcbiAgXSlcblxuICAvKipcbiAgICogZG8gYSBmZXRjaCBvZiBtYW5pZmVzdCBhbmQgYm9vayBvZiB0aGUgYmlibGUgc3BlY2lmaWVkIGluIGZldGNoUGFyYW1zXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBmZXRjaFBhcmFtc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gaWdub3JlU2hhIC0gb3B0aW9uYWwgcHJldmlvdXMgc2hhIC0gaWdub3JlIHJlc3BvbnNlcyB0aGF0IGNhbWUgYmFjayBmb3IgdGhpcyBwcmV2aW91cyBib29rIGNvbW1pdFxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCb29rKGZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMsIGlnbm9yZVNoYSA9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmV0Y2hMaW5rID0gYCR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30vJHtmZXRjaFBhcmFtcz8ucmVmZXJlbmNlPy5ib29rSWR9YFxuXG4gICAgICBpZiAoaWdub3JlU2hhKSB7XG4gICAgICAgIGNvbnN0IGZldGNoZWRTaGFNYXRjaGVzSWdub3JlU2hhID0gaWdub3JlU2hhID09PSByZXNvdXJjZVN0YXRlPy5zaGEgLy8gd2Ugd2lsbCByZWxvYWQgaWYgaWdub3JlU2hhIGdpdmVuIGFuZCBpdCBtYXRjaGVzIGN1cnJlbnQgc2hhXG4gICAgICAgIGlmICgoZmV0Y2hMaW5rID09PSByZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucmVzb3VyY2VMaW5rKSAmJiAhZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEpIHsgLy8gc2VlIGlmIHdlIGFscmVhZHkgZmV0Y2hlZCB0aGlzXG4gICAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIEFscmVhZHkgZmV0Y2hpbmcgcmVzb3VyY2VMaW5rICR7cmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnJlc291cmNlTGlua30gYW5kIGlnbm9yZVNoYT0ke2lnbm9yZVNoYX1gLCBmZXRjaFBhcmFtcylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBfZmV0Y2hDb3VudCA9IGZldGNoQ291bnQgKyAxXG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gRkVUQ0hJTkcgYmlibGUgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9IGFuZCBpZ25vcmVTaGE9JHtpZ25vcmVTaGF9YCwgZmV0Y2hQYXJhbXMpXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGZldGNoQ291bnQ6IF9mZXRjaENvdW50LFxuICAgICAgICBmZXRjaGVkOiBmYWxzZSxcbiAgICAgICAgaWdub3JlU2hhLFxuICAgICAgICByZXNvdXJjZVN0YXRlOiB7IGxvYWRpbmdSZXNvdXJjZTogdHJ1ZSB9LFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEJpYmxlQm9va0NvcmUoZmV0Y2hQYXJhbXMpXG5cbiAgICAgIGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2U/LmVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUud2FybigpIC1FcnJvciBGRVRDSElORyBiaWJsZSAke3Jlc291cmNlXz8ucHJvamVjdElkfWAsIHJlc3BvbnNlKVxuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gTE9BREVEIGJpYmxlIGJvb2sgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9fWAsIGZldGNoUGFyYW1zKVxuICAgICAgc2V0U3RhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgZmV0Y2hlZFJlc291cmNlczoge1xuICAgICAgICAgICAgICAuLi5yZXNwb25zZSxcbiAgICAgICAgICAgICAgZmV0Y2hDb3VudDogX2ZldGNoQ291bnQsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZTogZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBoYXJkIGVycm9yIGxvYWRpbmcgcmVzb3VyY2VgLCBmZXRjaFBhcmFtcywgZSApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSBmb3IgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVhZHlGb3JGZXRjaCBpcyBub3cgJHtyZWFkeUZvckZldGNofWApXG4gIH0sIFtyZWFkeUZvckZldGNoXSlcblxuICAvKipcbiAgICogbWFrZSBzdXJlIGxhc3QgZmV0Y2ggcmVzcG9uc2UgaXMgZm9yIGN1cnJlbnQgYm9vay9icmFuY2hcbiAgICovXG4gIGZ1bmN0aW9uIHZhbGlkYXRlUmVzcG9uc2UoKSB7XG4gICAgbGV0IGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBleHBlY3RlZEJvb2tJZCA9IGJvb2tJZCB8fCAnenp6J1xuICAgIGNvbnN0IGZldGNoZWRCb29rID0gZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lKGZldGNoZWRSZXNvdXJjZXM/Lm5hbWUpXG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYW5kIHNlZWluZyAke2ZldGNoZWRCb29rfSBpbiBVU0ZNYClcbiAgICBpc1NhbWVCb29rID0gZmV0Y2hlZEJvb2s/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcblxuICAgIGNvbnN0IHNoYSA9IGZldGNoZWRSZXNvdXJjZXM/LnNoYSB8fCBudWxsXG4gICAgY29uc3QgdXJsID0gZmV0Y2hlZFJlc291cmNlcz8udXJsIHx8IG51bGxcblxuICAgIGlmIChpc1NhbWVCb29rKSB7IC8vIGFsc28gbWFrZSBzdXJlIGl0IGlzIHRoZSBzYW1lIGJyYW5jaFxuICAgICAgY29uc3QgZmV0Y2hlZEJyYW5jaCA9IGdldEJyYW5jaE5hbWUodXJsKVxuICAgICAgY29uc3QgZmV0Y2hpbmdCcmFuY2ggPSBnZXRCcmFuY2hOYW1lKGZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmspXG5cbiAgICAgIGlmIChmZXRjaGVkQnJhbmNoICE9PSBmZXRjaGluZ0JyYW5jaCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSBpbnZhbGlkIGJyYW5jaCwgZXhwZWN0ZWQgYnJhbmNoIGlzICR7ZmV0Y2hpbmdCcmFuY2h9LCBidXQgZmV0Y2hlZEJyYW5jaCBpcyAke2ZldGNoZWRCcmFuY2h9YCwgeyBzaGEsIHVybCB9KVxuICAgICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSAgaW52YWxpZCBib29rLCBleHBlY3RlZEJvb2tJZCBpcyAke2V4cGVjdGVkQm9va0lkfSwgYnV0IHJlY2VpdmVkIGJvb2sgbmFtZSAke2ZldGNoZWRCb29rfWAsIHsgc2hhLCB1cmwgfSlcbiAgICB9XG5cbiAgICBpZiAoaWdub3JlU2hhID09PSBzaGEpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIC0gdGhlIHNoYSBpcyB0aGUgc2FtZSBhcyB0aGUgaWdub3JlIHNoYSAke3NoYX1gLCB7IHNoYSwgdXJsIH0pXG4gICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoaXNTYW1lQm9vaykge1xuICAgICAgY29uc3QgYmlibGVVc2ZtXyA9IGZldGNoZWRSZXNvdXJjZXM/LmJpYmxlVXNmbVxuICAgICAgY29uc3QgYm9va09iamVjdHMgPSBmZXRjaGVkUmVzb3VyY2VzPy5ib29rT2JqZWN0c1xuICAgICAgY29uc3QgdmVyc2VzRm9yUmVmID0gZ2V0VmVyc2VzRm9yUmVmXyhib29rT2JqZWN0cylcblxuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSBjb3JyZWN0IGJvb2ssIGV4cGVjdGVkQm9va0lkIGlzICR7ZXhwZWN0ZWRCb29rSWR9YCwgeyBzaGEsIHVybCB9KVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGJpYmxlVXNmbTogYmlibGVVc2ZtXyxcbiAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgIGZldGNoZWQ6IHRydWUsXG4gICAgICAgIGZldGNoZWRCb29rOiBleHBlY3RlZEJvb2tJZCxcbiAgICAgICAgaWdub3JlU2hhOiBudWxsLFxuICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgICAgYmlibGVVc2ZtOiBiaWJsZVVzZm1fLFxuICAgICAgICAgIGxvYWRpbmdSZXNvdXJjZTogZmFsc2UsXG4gICAgICAgICAgbG9hZGluZ0NvbnRlbnQ6IGZhbHNlLFxuICAgICAgICAgIHJlc291cmNlOiBmZXRjaGVkUmVzb3VyY2VzLFxuICAgICAgICAgIHNoYSxcbiAgICAgICAgICB1cmwsXG4gICAgICAgIH0sXG4gICAgICAgIHZlcnNlc0ZvclJlZixcbiAgICAgIH1cblxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgfVxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4geyAvLyB2YWxpZGF0ZSByZXNwb25zZSB0byBtYWtlIHN1cmUgZnJvbSBsYXRlc3QgcmVxdWVzdFxuICAgIGlmIChyZWFkeUZvckZldGNoICYmIGZldGNoZWRSZXNvdXJjZXMpIHtcbiAgICAgIGlmICghZmV0Y2hlZCAmJiBmZXRjaGVkUmVzb3VyY2VzPy5mZXRjaENvdW50ID09PSBmZXRjaENvdW50KSB7XG4gICAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdmFsaWRhdGVSZXNwb25zZSgpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbeyByZWFkeUZvckZldGNoLCBmZXRjaGVkUmVzb3VyY2VzIH1dKVxuXG4gIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2VcbiAgY29uc3QgeyB0aXRsZSwgdmVyc2lvbiB9ID0gcGFyc2VSZXNvdXJjZU1hbmlmZXN0KHJlc291cmNlKVxuICBjb25zdCBsb2FkaW5nID0gcmVzb3VyY2VTdGF0ZT8ubG9hZGluZ1Jlc291cmNlIHx8IHJlc291cmNlU3RhdGU/LmxvYWRpbmdDb250ZW50IHx8ICFyZWFkeUZvckZldGNoXG4gIGNvbnN0IGNvbnRlbnROb3RGb3VuZEVycm9yID0gIXJlc291cmNlU3RhdGU/LmJpYmxlVXNmbVxuICBjb25zdCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciA9ICFyZXNvdXJjZVN0YXRlPy5ib29rT2JqZWN0c1xuICBjb25zdCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgPSAhcmVzb3VyY2U/Lm1hbmlmZXN0XG4gIGNvbnN0IGludmFsaWRNYW5pZmVzdEVycm9yID0gIXRpdGxlIHx8ICF2ZXJzaW9uIHx8ICFsYW5ndWFnZUlkXG4gIGNvbnN0IGVycm9yID0gcmVhZHlGb3JGZXRjaCAmJiBpbml0aWFsaXplZCAmJiAhbG9hZGluZyAmJlxuICAgIChjb250ZW50Tm90Rm91bmRFcnJvciB8fCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciB8fCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgfHwgaW52YWxpZE1hbmlmZXN0RXJyb3IpXG4gIGNvbnN0IHJlc291cmNlU3RhdHVzID0ge1xuICAgIFtMT0FESU5HX1NUQVRFXTogbG9hZGluZyxcbiAgICBbQ09OVEVOVF9OT1RfRk9VTkRfRVJST1JdOiBjb250ZW50Tm90Rm91bmRFcnJvcixcbiAgICBbU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1JdOiBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvcixcbiAgICBbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl06IG1hbmlmZXN0Tm90Rm91bmRFcnJvcixcbiAgICBbSU5WQUxJRF9NQU5JRkVTVF9FUlJPUl06IGludmFsaWRNYW5pZmVzdEVycm9yLFxuICAgIFtFUlJPUl9TVEFURV06IGVycm9yLFxuICAgIFtJTklUSUFMSVpFRF9TVEFURV06IGluaXRpYWxpemVkLFxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXJlYWR5Rm9yRmV0Y2gpIHtcbiAgICAgIGlmIChpbml0aWFsaXplZCkge1xuICAgICAgICBzZXRTdGF0ZSh7IGludGlhbGl6ZWQ6IGZhbHNlIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmIChsb2FkaW5nKSB7IC8vIG9uY2UgZmlyc3QgbG9hZCBoYXMgYmVndW4sIHdlIGFyZSBpbml0aWFsaXplZFxuICAgICAgICBzZXRTdGF0ZSh7IGludGlhbGl6ZWQ6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtsb2FkaW5nLCByZWFkeUZvckZldGNoXSlcblxuICAvKipcbiAgICogZ2V0IHZlcnNlcyBmb3IgcmVmXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRlbnRfXG4gICAqL1xuICBmdW5jdGlvbiBfZ2V0VmVyc2VzRm9yUmVmKHJlZlN0ciwgY29udGVudF8gPSBib29rT2JqZWN0cyk6IFZlcnNlUmVmZXJlbmNlc1R5cGUge1xuICAgIGlmIChjb250ZW50Xykge1xuICAgICAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGNvbnRlbnRfLCBsYW5ndWFnZUlkKVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSB2ZXJzZSBkYXRhIGZvciBjdXJyZW50IGJvb2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXB0ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB2ZXJzZURhdGFcbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZVZlcnNlKGNoYXB0ZXIsIHZlcnNlLCB2ZXJzZURhdGEpIHtcbiAgICBpZiAoYm9va09iamVjdHMpIHtcbiAgICAgIGNvbnN0IGJvb2tPYmplY3RzXyA9IHsgLi4uYm9va09iamVjdHMgfSAvLyBzaGFsbG93IGNvcHlcblxuICAgICAgaWYgKGJvb2tPYmplY3RzXz8uY2hhcHRlcnMpIHtcbiAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzID0geyAuLi5ib29rT2JqZWN0c18uY2hhcHRlcnMgfSAvLyBzaGFsbG93IGNvcHkgY2hhcHRlcnNcblxuICAgICAgICBpZiAoYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdKSB7XG4gICAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdID0geyAuLi5ib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl0gfSAvLyBzaGFsbG93IGNvcHkgdmVyc2VzXG4gICAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdW3ZlcnNlXSA9IHZlcnNlRGF0YVxuICAgICAgICAgIHNldFN0YXRlKHsgYm9va09iamVjdHM6IGJvb2tPYmplY3RzXyB9KVxuICAgICAgICAgIHJldHVybiBib29rT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aGUgdmVyc2VzIGZvciBjdXJyZW50IHJlZmVyZW5jZSBvciByZWZlcmVuY2UgcmFuZ2VcbiAgICogQHBhcmFtIHtCb29rT2JqZWN0c1R5cGV9IF9ib29rT2JqZWN0c1xuICAgKi9cbiAgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmXyhfYm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSA9IGJvb2tPYmplY3RzKTogVmVyc2VPYmplY3RzVHlwZSB7XG4gICAgbGV0IG5ld1ZlcnNlc0ZvclJlZiA9IFtdXG5cbiAgICBpZiAoX2Jvb2tPYmplY3RzKSB7XG4gICAgICBuZXdWZXJzZXNGb3JSZWYgPSBnZXRWZXJzZXNGb3JSZWYocmVmZXJlbmNlLCBfYm9va09iamVjdHMsIGxhbmd1YWdlSWQpXG4gICAgICBpZiAocmVmZXJlbmNlPy52ZXJzZSA9PT0gJ2Zyb250JykgeyAvLyBzcGVjaWFsIGhhbmRsaW5nIGZvciBmcm9udCBtYXR0ZXJcbiAgICAgICAgY29uc3QgdmVyc2VEYXRhID0gbmV3VmVyc2VzRm9yUmVmPy5bMF0/LnZlcnNlRGF0YVxuICAgICAgICBjb25zdCBpbml0aWFsVmVyc2VPYmplY3RzID0gdmVyc2VEYXRhPy52ZXJzZU9iamVjdHNcbiAgICAgICAgaWYgKGluaXRpYWxWZXJzZU9iamVjdHMgJiYgIXZlcnNlT2JqZWN0c0hhdmVXb3Jkcyhpbml0aWFsVmVyc2VPYmplY3RzKSkge1xuICAgICAgICAgIGZvciAoY29uc3Qgdm8gb2YgaW5pdGlhbFZlcnNlT2JqZWN0cykge1xuICAgICAgICAgICAgaWYgKHZvWyd0YWcnXSA9PT0gJ2QnKSB7IC8vIGNoZWNrIGZvciBkZXNjcmlwdGl2ZSB0aXRsZVxuICAgICAgICAgICAgICAvLyByZXBhcnNlIHNvIGRlc2NyaXB0aXZlIHRpdGxlIHRleHQgaXMgYnJva2VuIGludG8gYWxpZ24tYWJsZSB3b3Jkc1xuICAgICAgICAgICAgICBsZXQgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzOiBpbml0aWFsVmVyc2VPYmplY3RzIH0pXG4gICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dClcbiAgICAgICAgICAgICAgY29uc29sZS5sb2codGFyZ2V0VmVyc2VPYmplY3RzKVxuICAgICAgICAgICAgICB2ZXJzZURhdGEudmVyc2VPYmplY3RzID0gdGFyZ2V0VmVyc2VPYmplY3RzIC8vIHJlcGxhY2UgdmVyc2VPYmplY3RzIHdpdGggYWxpZ24tYWJsZSBjb250ZW50XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3VmVyc2VzRm9yUmVmXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBmb3JjZSByZWxvYWQgb2YgcmVzb3VyY2VcbiAgICogQHBhcmFtIHtzdHJpbmd8dW5kZWZpbmVkfSBpZ25vcmVTaGEgLSBvcHRpb25hbCBzaGEgdG8gaWdub3JlXG4gICAqIEBwYXJhbSB7c3RyaW5nfHVuZGVmaW5lZH0gcmVmIC0gb3B0aW9uYWwgcmVmZXJlbmNlIHRvIGZldGNoXG4gICAqL1xuICBmdW5jdGlvbiByZWxvYWRSZXNvdXJjZShpZ25vcmVTaGEgPSBudWxsLCByZWYgPSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5yZWxvYWRSZXNvdXJjZSgpIGlnbm9yZVNoYTogJHtpZ25vcmVTaGF9YCApXG4gICAgY29uc3QgX2ZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMgPSB7IC4uLmZldGNoUGFyYW1zIH1cblxuICAgIGlmIChyZWYgJiYgZmV0Y2hQYXJhbXM/LnJlc291cmNlTGluaykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBvd25lcixcbiAgICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICAgICAgcmVmOiBfcmVmLFxuICAgICAgfSA9IHBhcnNlUmVzb3VyY2VMaW5rKGZldGNoUGFyYW1zLnJlc291cmNlTGluaylcblxuICAgICAgaWYgKHJlZiAhPT0gX3JlZikgeyAvLyBpZiByZWYgY2hhbmdlZCwgdXBkYXRlIHJlc291cmNlbGlua1xuICAgICAgICBjb25zdCBfcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgICAgICBvd25lcixcbiAgICAgICAgICBsYW5ndWFnZUlkLFxuICAgICAgICAgIHJlc291cmNlSWQsXG4gICAgICAgICAgcmVmLFxuICAgICAgICB9KVxuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnJlbG9hZFJlc291cmNlKCkgb2xkIHJlZiBpcyBkaWZmZXJlbnQgJHtfcmVmfSwgc3dpdGNoaW5nIHRvIGxvYWQgcmVmOiAke3JlZn0sIG5ldyByZXNvdXJjZUxpbms6ICR7X3Jlc291cmNlTGlua31gIClcbiAgICAgICAgX2ZldGNoUGFyYW1zLnJlc291cmNlTGluayA9IF9yZXNvdXJjZUxpbmtcbiAgICAgIH1cbiAgICB9XG4gICAgZmV0Y2hCb29rKF9mZXRjaFBhcmFtcywgaWdub3JlU2hhKVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjdXJyZW50Qm9va1JlZiA9IGZldGNoUGFyYW1zPy5yZWZlcmVuY2U/LmJvb2tJZFxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRCb29rUmVmKSB7XG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIGZldGNoZWQgYm9vayBjaGFuZ2VkIHRvICR7Y3VycmVudEJvb2tSZWZ9LCAke3Jlc291cmNlTGlua199YCwgZmV0Y2hQYXJhbXMgKVxuICAgICAgc2V0U3RhdGUoeyBib29rT2JqZWN0czogbnVsbCwgYmlibGVVc2ZtOiBudWxsIH0pXG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgfSwgW2N1cnJlbnRCb29rUmVmXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgYm9vayByZWYgY2hhbmdlZCB0byAke2Jvb2tJZH0sICR7cmVzb3VyY2VMaW5rX31gKVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgfSwgW2Jvb2tJZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBleHBlY3RlZEJvb2tJZCA9IGJvb2tJZCB8fCAnJ1xuICAgIGNvbnN0IGZldGNoZWRCb29rU2FtZSA9IGZldGNoZWRCb29rICYmIChmZXRjaGVkQm9vayA9PT0gZXhwZWN0ZWRCb29rSWQpXG4gICAgbGV0IF92ZXJzZXNGb3JSZWYgPSBbXVxuXG4gICAgaWYgKCFmZXRjaGVkQm9va1NhbWUpIHtcbiAgICAgIC8vIGlmIChleHBlY3RlZEJvb2tJZCAmJiBmZXRjaGVkQm9vaykge1xuICAgICAgLy8gICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIGV4cGVjdGVkIGJvb2sgJHtleHBlY3RlZEJvb2tJZH0gYnV0IGZldGNoZWQgYm9vayB3YXMgJHtmZXRjaGVkQm9va30gLSBjbGVhcmluZ2ApXG4gICAgICAvLyB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IF9ib29rT2JqZWN0cyA9IGZldGNoZWRCb29rU2FtZSA/IGJvb2tPYmplY3RzIDogbnVsbFxuICAgICAgX3ZlcnNlc0ZvclJlZiA9IGdldFZlcnNlc0ZvclJlZl8oX2Jvb2tPYmplY3RzKVxuICAgICAgLy8gY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBfYm9va09iamVjdHMgaXMgJHshIV9ib29rT2JqZWN0c30gYW5kIGJvb2tzIGFyZSB0aGUgc2FtZSAke2ZldGNoZWRCb29rfWAsIHsgY29udGVudCwgZmV0Y2hQYXJhbXMgfSlcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX3ZlcnNlc0ZvclJlZiwgdmVyc2VzRm9yUmVmKSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZXNGb3JSZWY6IF92ZXJzZXNGb3JSZWYgfSlcbiAgICB9XG4gIH0sIFtyZWZlcmVuY2VdKVxuXG4gIHJldHVybiB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGdldFZlcnNlc0ZvclJlZjogX2dldFZlcnNlc0ZvclJlZixcbiAgICByZWZlcmVuY2U6IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UsXG4gICAgcmVsb2FkUmVzb3VyY2UsXG4gICAgcmVzb3VyY2VMaW5rOiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rLFxuICAgIHJlc291cmNlU3RhdGUsIC8vIHN0YXRlIGluZm9ybWF0aW9uIGZvciBsYXRlc3QgZmV0Y2hlZCByZXNvdXJjZVxuICAgIHJlc291cmNlU3RhdHVzLCAvLyBzdGF0dXMgZmxhZ3MgZm9yIGZldGNoZWQgcmVzb3VyY2VcbiAgICB0aXRsZSxcbiAgICB1cGRhdGVWZXJzZSxcbiAgICB2ZXJzaW9uLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENB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