@1money/component-ui 0.0.90-alpha.14 → 0.0.90-alpha.18

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.
@@ -43,10 +43,17 @@ var FieldList = function FieldList(_ref) {
43
43
  iconSize: 16,
44
44
  className: joinCls(classes('copy'), row.highlight && classes('copy-highlight'))
45
45
  })]
46
+ }) : copyText != null ? _jsxs("div", {
47
+ className: joinCls(classes('col'), classes('value')),
48
+ children: [row.value, _jsx(Copy, {
49
+ value: copyText,
50
+ iconSize: 16,
51
+ className: joinCls(classes('copy'), row.highlight && classes('copy-highlight'))
52
+ })]
46
53
  }) : row.value]
47
54
  }, index);
48
55
  })
49
56
  });
50
57
  };
51
58
  export default /*#__PURE__*/memo(FieldList);
52
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9GaWVsZExpc3QvaW5kZXgudHN4IiwiYnVzaW5lc3MvRmllbGRMaXN0L2luZGV4LmpzIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwiQ29weSIsIlR5cG9ncmFwaHkiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJjbGFzc2VzIiwiRmllbGRMaXN0IiwiX3JlZiIsInJvd3MiLCJfcmVmJGxhYmVsVmFyaWFudCIsImxhYmVsVmFyaWFudCIsIl9yZWYkZGl2aWRlciIsImRpdmlkZXIiLCJfcmVmJGNvcHlhYmxlIiwiY29weWFibGUiLCJjbGFzc05hbWUiLCJMYWJlbFR5cG9ncmFwaHkiLCJUaXRsZSIsIkJvZHkiLCJsYWJlbFNpemUiLCJjb25jYXQiLCJjaGlsZHJlbiIsIm1hcCIsInJvdyIsImluZGV4IiwiX2EiLCJjb3B5VGV4dCIsImNvcHlWYWx1ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiaGlnaGxpZ2h0Iiwic2l6ZSIsImxhYmVsQ2xzIiwibGFiZWwiLCJzdHJvbmciLCJ2YWx1ZUNscyIsImljb25TaXplIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQ0NaLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QURDOUQsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsSUFBSSxRQUFRLHVCQUF1QjtBQUM1QyxTQUFTQyxVQUFVLFFBQVEsNkJBQTZCO0FBQ3hELFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsd0JBQXdCO0FBR3ZFLE9BQU8sU0FBUztBQThCaEIsSUFBTUMsT0FBTyxHQUFHRixVQUFVLENBQUMsWUFBWSxDQUFDO0FBRXhDLElBQU1HLFNBQVMsR0FBdUIsU0FBaENBLFNBQVNBLENBQUFDLElBQUEsRUFNVjtFQUFBLElBTEhDLElBQUksR0FBQUQsSUFBQSxDQUFKQyxJ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VUFBQyxDQUFBLENBRWxGO1FBQUEsQ0FBQSxDQUNHLEdBRU5rQixHQUFHLENBQUNLLEtBQ0w7TUFBQSxDQUFBLEVBNUJJSixLQUFLLENBNkJQO0lBRVQsQ0FBQztFQUFDLENBQUEsQ0FDQztBQUVULENBQUM7QUFFRCw0QkFBZXpCLElBQUksQ0FBQ08sU0FBUyxDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0ZpZWxkTGlzdC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb3B5IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Db3B5JztcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2ZpZWxkLWxpc3QnKTtcbmNvbnN0IEZpZWxkTGlzdCA9ICh7IHJvd3MsIGxhYmVsVmFyaWFudCA9ICd0aXRsZScsIGRpdmlkZXIgPSAnYm90dG9tJywgY29weWFibGUgPSBmYWxzZSwgY2xhc3NOYW1lLCB9KSA9PiB7XG4gICAgY29uc3QgTGFiZWxUeXBvZ3JhcGh5ID0gbGFiZWxWYXJpYW50ID09PSAndGl0bGUnID8gVHlwb2dyYXBoeS5UaXRsZSA6IFR5cG9ncmFwaHkuQm9keTtcbiAgICBjb25zdCBsYWJlbFNpemUgPSBsYWJlbFZhcmlhbnQgPT09ICd0aXRsZScgPyAnc20nIDogJ21kJztcbiAgICByZXR1cm4gKF9qc3goXCJ1bFwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCksIGNsYXNzZXMoYGRpdmlkZXItJHtkaXZpZGVyfWApLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogcm93cy5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IGNvcHlUZXh0ID0gKF9hID0gcm93LmNvcHlWYWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKGNvcHlhYmxlICYmIHR5cGVvZiByb3cudmFsdWUgPT09ICdzdHJpbmcnID8gcm93LnZhbHVlIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeHMoXCJsaVwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdyb3cnKSwgcm93LmhpZ2hsaWdodCAmJiBjbGFzc2VzKCdyb3ctaGlnaGxpZ2h0JykpLCBjaGlsZHJlbjogW3Jvdy5oaWdobGlnaHQgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnYmFuZCcpIH0pLCBfanN4KExhYmVsVHlwb2dyYXBoeSwgeyBzaXplOiBsYWJlbFNpemUsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdjb2wnKSwgcm93LmxhYmVsQ2xzKSwgY2hpbGRyZW46IHJvdy5sYWJlbCB9KSwgdHlwZW9mIHJvdy52YWx1ZSA9PT0gJ3N0cmluZycgPyAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygnY29sJyksIGNsYXNzZXMoJ3ZhbHVlJykpLCBjaGlsZHJlbjogW19qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6ICdtZCcsIHN0cm9uZzogdHJ1ZSwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3ZhbHVlLXRleHQnKSwgcm93LnZhbHVlQ2xzKSwgY2hpbGRyZW46IHJvdy52YWx1ZSB9KSwgY29weVRleHQgIT0gbnVsbCAmJiAoX2pzeChDb3B5LCB7IHZhbHVlOiBjb3B5VGV4dCwgaWNvblNpemU6IDE2LCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygnY29weScpLCByb3cuaGlnaGxpZ2h0ICYmIGNsYXNzZXMoJ2NvcHktaGlnaGxpZ2h0JykpIH0pKV0gfSkpIDogKHJvdy52YWx1ZSldIH0sIGluZGV4KSk7XG4gICAgICAgIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKEZpZWxkTGlzdCk7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
59
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9GaWVsZExpc3QvaW5kZXgudHN4IiwiYnVzaW5lc3MvRmllbGRMaXN0L2luZGV4LmpzIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwiQ29weSIsIlR5cG9ncmFwaHkiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJjbGFzc2VzIiwiRmllbGRMaXN0IiwiX3JlZiIsInJvd3MiLCJfcmVmJGxhYmVsVmFyaWFudCIsImxhYmVsVmFyaWFudCIsIl9yZWYkZGl2aWRlciIsImRpdmlkZXIiLCJfcmVmJGNvcHlhYmxlIiwiY29weWFibGUiLCJjbGFzc05hbWUiLCJMYWJlbFR5cG9ncmFwaHkiLCJUaXRsZSIsIkJvZHkiLCJsYWJlbFNpemUiLCJjb25jYXQiLCJjaGlsZHJlbiIsIm1hcCIsInJvdyIsImluZGV4IiwiX2EiLCJjb3B5VGV4dCIsImNvcHlWYWx1ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiaGlnaGxpZ2h0Iiwic2l6ZSIsImxhYmVsQ2xzIiwibGFiZWwiLCJzdHJvbmciLCJ2YWx1ZUNscyIsImljb25TaXplIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQ0NaLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QURDOUQsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsSUFBSSxRQUFRLHVCQUF1QjtBQUM1QyxTQUFTQyxVQUFVLFFBQVEsNkJBQTZCO0FBQ3hELFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsd0JBQXdCO0FBR3ZFLE9BQU8sU0FBUztBQThCaEIsSUFBTUMsT0FBTyxHQUFHRixVQUFVLENBQUMsWUFBWSxDQUFDO0FBRXhDLElBQU1HLFNBQVMsR0FBdUIsU0FBaENBLFNBQVNBLENBQUFDLElBQUEsRUFNVjtFQUFBLElBTEhDLElBQUksR0FBQUQsSUFBQSxDQUFKQyxJ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VUFBQyxDQUFBLENBRWxGO1FBQUEsQ0FBQSxDQUNHLEdBQ0pxQixRQUFRLElBQUksSUFBSSxHQUNsQjVCLEtBQUEsQ0FBQSxLQUFBLEVBQUE7VUFBS2lCLFNBQVMsRUFBRVgsT0FBTyxDQUFDQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUVBLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztVQUFBZ0IsUUFBQSxFQUFBLENBQ3RERSxHQUFHLENBQUNLLEtBQUssRUFDVmhDLElBQUEsQ0FBQ0ksSUFBSSxFQUFBO1lBQ0g0QixLQUFLLEVBQUVGLFFBQVE7WUFDZlUsUUFBUSxFQUFFLEVBQUU7WUFDWnJCLFNBQVMsRUFBRVgsT0FBTyxDQUFDQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUVrQixHQUFHLENBQUNPLFNBQVMsSUFBSXpCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztVQUFDLENBQUEsQ0FDL0U7UUFBQSxDQUFBLENBQ0UsR0FFTmtCLEdBQUcsQ0FBQ0ssS0FDTDtNQUFBLENBQUEsRUF2Q0lKLEtBQUssQ0F3Q1A7SUFFVCxDQUFDO0VBQUMsQ0FBQSxDQUNDO0FBRVQsQ0FBQztBQUVELDRCQUFlekIsSUFBSSxDQUFDTyxTQUFTLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRmllbGRMaXN0L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvcHkgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0NvcHknO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcygnZmllbGQtbGlzdCcpO1xuY29uc3QgRmllbGRMaXN0ID0gKHsgcm93cywgbGFiZWxWYXJpYW50ID0gJ3RpdGxlJywgZGl2aWRlciA9ICdib3R0b20nLCBjb3B5YWJsZSA9IGZhbHNlLCBjbGFzc05hbWUsIH0pID0+IHtcbiAgICBjb25zdCBMYWJlbFR5cG9ncmFwaHkgPSBsYWJlbFZhcmlhbnQgPT09ICd0aXRsZScgPyBUeXBvZ3JhcGh5LlRpdGxlIDogVHlwb2dyYXBoeS5Cb2R5O1xuICAgIGNvbnN0IGxhYmVsU2l6ZSA9IGxhYmVsVmFyaWFudCA9PT0gJ3RpdGxlJyA/ICdzbScgOiAnbWQnO1xuICAgIHJldHVybiAoX2pzeChcInVsXCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NlcyhgZGl2aWRlci0ke2RpdmlkZXJ9YCksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiByb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgY29weVRleHQgPSAoX2EgPSByb3cuY29weVZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAoY29weWFibGUgJiYgdHlwZW9mIHJvdy52YWx1ZSA9PT0gJ3N0cmluZycgPyByb3cudmFsdWUgOiB1bmRlZmluZWQpO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhcImxpXCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3JvdycpLCByb3cuaGlnaGxpZ2h0ICYmIGNsYXNzZXMoJ3Jvdy1oaWdobGlnaHQnKSksIGNoaWxkcmVuOiBbcm93LmhpZ2hsaWdodCAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdiYW5kJykgfSksIF9qc3goTGFiZWxUeXBvZ3JhcGh5LCB7IHNpemU6IGxhYmVsU2l6ZSwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ2NvbCcpLCByb3cubGFiZWxDbHMpLCBjaGlsZHJlbjogcm93LmxhYmVsIH0pLCB0eXBlb2Ygcm93LnZhbHVlID09PSAnc3RyaW5nJyA/IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdjb2wnKSwgY2xhc3NlcygndmFsdWUnKSksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogJ21kJywgc3Ryb25nOiB0cnVlLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygndmFsdWUtdGV4dCcpLCByb3cudmFsdWVDbHMpLCBjaGlsZHJlbjogcm93LnZhbHVlIH0pLCBjb3B5VGV4dCAhPSBudWxsICYmIChfanN4KENvcHksIHsgdmFsdWU6IGNvcHlUZXh0LCBpY29uU2l6ZTogMTYsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdjb3B5JyksIHJvdy5oaWdobGlnaHQgJiYgY2xhc3NlcygnY29weS1oaWdobGlnaHQnKSkgfSkpXSB9KSkgOiBjb3B5VGV4dCAhPSBudWxsID8gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ2NvbCcpLCBjbGFzc2VzKCd2YWx1ZScpKSwgY2hpbGRyZW46IFtyb3cudmFsdWUsIF9qc3goQ29weSwgeyB2YWx1ZTogY29weVRleHQsIGljb25TaXplOiAxNiwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ2NvcHknKSwgcm93LmhpZ2hsaWdodCAmJiBjbGFzc2VzKCdjb3B5LWhpZ2hsaWdodCcpKSB9KV0gfSkpIDogKHJvdy52YWx1ZSldIH0sIGluZGV4KSk7XG4gICAgICAgIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKEZpZWxkTGlzdCk7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef } from 'react';
3
2
  import { ActionBar } from '../../components/ActionBar';
4
3
  import { FormLayout } from '../../components/FormLayout';
5
4
  import { Typography } from '../../components/Typography';
6
5
  import { BaseProForm, FormField } from '../shared/formCore/BaseProForm';
6
+ import { useRelayedFormRef } from '../shared/formCore/useRelayedFormRef';
7
7
  import { useSubmitAction } from '../shared/formCore/useSubmitAction';
8
8
  /**
9
9
  * Form scenario shell for the PAGE host — the in-document counterpart of
@@ -39,13 +39,10 @@ var FormPageInner = function FormPageInner(_ref) {
39
39
  footnote = _ref.footnote,
40
40
  formRef = _ref.formRef,
41
41
  formProps = _ref.formProps;
42
- var innerRef = useRef(undefined);
42
+ var innerRef = useRelayedFormRef(formRef);
43
43
  var _useSubmitAction = useSubmitAction(onSubmit, onSuccess),
44
44
  submitting = _useSubmitAction.submitting,
45
45
  handleFinish = _useSubmitAction.handleFinish;
46
- useEffect(function () {
47
- if (formRef) formRef.current = innerRef.current;
48
- });
49
46
  return _jsxs(FormLayout, {
50
47
  variant: 'page',
51
48
  size: size,
@@ -92,4 +89,4 @@ var FormPageInner = function FormPageInner(_ref) {
92
89
  export var FormPage = Object.assign(FormPageInner, {
93
90
  Field: FormField
94
91
  });
95
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0Zvcm1QYWdlL0Zvcm1QYWdlLmpzIiwiYnVzaW5lc3Mvc3JjL2J1c2luZXNzL0Zvcm1QYWdlL0Zvcm1QYWdlLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwidXNlRWZmZWN0IiwidXNlUmVmIiwiQWN0aW9uQmFyIiwiRm9ybUxheW91dCIsIlR5cG9ncmFwaHkiLCJCYXNlUHJvRm9ybSIsIkZvcm1GaWVsZCIsInVzZVN1Ym1pdEFjdGlvbiIsIkZvcm1QYWdlSW5uZXIiLCJfcmVmIiwiX3JlZiRzaXplIiwic2l6ZSIsIndpZHRoIiwiY2xhc3NOYW1lIiwidGl0bGUiLCJleHRyYSIsImRlc2NyaXB0aW9uIiwiY2hpbGRyZW4iLCJpbml0aWFsVmFsdWVzIiwib25TdWJtaXQiLCJvblN1Y2Nlc3MiLCJzdWJtaXRUZXh0Iiwic3VibWl0U2xvdCIsInNlY29uZGFyeSIsImZvb3Rub3RlIiwiZm9ybVJlZiIsImZvcm1Qcm9wcyIsImlubmVyUmVmIiwidW5kZWZpbmVkIiwiX3VzZVN1Ym1pdEFjdGlvbiIsInN1Ym1pdHRpbmciLCJoYW5kbGVGaW5pc2giLCJjdXJyZW50IiwidmFyaWFudCIsImZvb3RlciIsImxheW91dCIsInByaW1hcnkiLCJsYWJlbCIsImxvYWRpbmciLCJvbkNsaWNrIiwiX2EiLCJzdWJtaXRGb3JtIiwicHJpbWFyeVNsb3QiLCJzdWJtaXQiLCJCb2R5IiwiYXMiLCJzdHJvbmciLCJjb2xvciIsIk9iamVjdCIsImFzc2lnbiIsIm9uRmluaXNoIiwiRm9ybVBhZ2UiLCJGaWVsZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxTQUFTQyxTQUFTLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3pDLFNBQVNDLFNBQVMsUUFBUSw0QkFBNEI7QUFDdEQsU0FBU0MsVUFBVSxRQUFRLDZCQUE2QjtBQUN4RCxTQUFT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LE1BQUEsSUFBQSxJQUFBUSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUMsVUFBVSxDQUFBLENBQUU7UUFBQSxDQUFBO1FBQzVDWCxVQUFVLEVBQVZBO01EaENBLENDaUNELENBQUM7TUFDRk4sUUFBUSxFQUFFQTtJQUFRLENBQUEsQ0FDbEI7SUFBQVAsUUFBQSxFQUFBLENBR0hELFdBQVcsSUFDVm5CLElBQUEsQ0FBQ08sVUFBVSxDQUFDd0MsSUFBSSxFQUFBO01BQUNDLEVBQUUsRUFBQyxHQUFHO01BQUNsQyxJQUFJLEVBQUMsSUFBSTtNQUFDbUMsTUFBTSxFQUFBLElBQUE7TUFBQ0MsS0FBSyxFQUFDLG1CQUFtQjtNQUFBOUIsUUFBQSxFQUMvREQ7SUFBVyxDQUFBLENBRWYsRUFDRG5CLElBQUEsQ0FBQ1EsV0FBVyxFQUFBMkMsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ052QixTQUFTLEVBQUE7TUFDYk8sT0FBTyxFQUFDLE1BQU07TUFDZHRCLElBQUksRUFBRUEsSUFBSTtNQUNWYyxPQUFPLEVBQUVFLFFBQVE7TUFDakJULGFBQWEsRUFBRUEsYUFBYTtNQUM1QmdDLFFBQVEsRUFBRW5CLFlBQVk7TUFBQWQsUUFBQSxFQUVyQkE7SUFBUSxDQUFBLENBQUEsQ0FDRztFQUFBLENBQUEsQ0FDSDtBQUVqQixDQUFDO0FBRUQsT0FBTyxJQUFNa0MsUUFBUSxHQUFHSCxNQUFNLENBQUNDLE1BQU0sQ0FBQ3pDLGFBQWEsRUFBRTtFQUFFNEMsS0FBSyxFQUFFOUM7QUFBUyxDQUFFLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRm9ybVBhZ2UvRm9ybVBhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBY3Rpb25CYXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0FjdGlvbkJhcic7XG5pbXBvcnQgeyBGb3JtTGF5b3V0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Gb3JtTGF5b3V0JztcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgQmFzZVByb0Zvcm0sIEZvcm1GaWVsZCB9IGZyb20gJy4uL3NoYXJlZC9mb3JtQ29yZS9CYXNlUHJvRm9ybSc7XG5pbXBvcnQgeyB1c2VTdWJtaXRBY3Rpb24gfSBmcm9tICcuLi9zaGFyZWQvZm9ybUNvcmUvdXNlU3VibWl0QWN0aW9uJztcbi8qKlxuICogRm9ybSBzY2VuYXJpbyBzaGVsbCBmb3IgdGhlIFBBR0UgaG9zdCDigJQgdGhlIGluLWRvY3VtZW50IGNvdW50ZXJwYXJ0IG9mXG4gKiBgRm9ybURpYWxvZ2A6XG4gKlxuICogICBGb3JtTGF5b3V0KHBhZ2UpICAgY2FyZCBjaHJvbWUgKyBwYWdlIGRlbnNpdHksIG5vIG92ZXJsYXksIG5ldmVyIHNjcm9sbHNcbiAqICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsbHkuIGBzaXplYCBzZWxlY3RzIHRoZSB3aWR0aDogYGxhcmdlYCAoNzM4LFxuICogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCkgb3IgYHNtYWxsYCAoNDQ4KTsgcGFkZGluZyBhbmQgZ2FwcyBhcmUgdGhlIHNhbWVcbiAqICAgICAgICAgICAgICAgICAgICAgIHBhZ2UgZGVuc2l0eSBlaXRoZXIgd2F5LiBXaWR0aCByZXNvbHZlcyBpbnNpZGVcbiAqICAgICAgICAgICAgICAgICAgICAgIEZvcm1MYXlvdXQ7IHRoaXMgc2hlbGwgb25seSBmb3J3YXJkcyBgc2l6ZWAuXG4gKiAgIOKUnOKUgCBCYXNlUHJvRm9ybSAgICAgc2FtZSBzaW5nbGUgUHJvRm9ybSBjb25maWcgcG9pbnQgKHZhcmlhbnQ9J3BhZ2UnICsgdGhlXG4gKiAgIOKUgiAgICAgICAgICAgICAgICAgIHNhbWUgYHNpemVgLCBzbyBjb250cm9sIHNpemUgLyBndXR0ZXIgLyByb3cgZ2FwIG1hdGNoKVxuICogICDilJTilIAgQWN0aW9uQmFyKGZpbGwpIGZ1bGwtd2lkdGggc3VibWl0IChwYWdlIGZvcm1zIHBlciB0aGUgRFMpXG4gKlxuICogVGhlIFNBTUUgZmllbGRzIHJlbmRlciBpZGVudGljYWxseSBoZXJlIGFuZCBpbiBGb3JtRGlhbG9nIOKAlCBvbmx5IHRoZVxuICogY29udGFpbmVyIGRpZmZlcnMuXG4gKi9cbmNvbnN0IEZvcm1QYWdlSW5uZXIgPSAoeyBzaXplID0gJ2xhcmdlJywgd2lkdGgsIGNsYXNzTmFtZSwgdGl0bGUsIGV4dHJhLCBkZXNjcmlwdGlvbiwgY2hpbGRyZW4sIGluaXRpYWxWYWx1ZXMsIG9uU3VibWl0LCBvblN1Y2Nlc3MsIHN1Ym1pdFRleHQsIHN1Ym1pdFNsb3QsIHNlY29uZGFyeSwgZm9vdG5vdGUsIGZvcm1SZWYsIGZvcm1Qcm9wcywgfSkgPT4ge1xuICAgIGNvbnN0IGlubmVyUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgY29uc3QgeyBzdWJtaXR0aW5nLCBoYW5kbGVGaW5pc2ggfSA9IHVzZVN1Ym1pdEFjdGlvbihvblN1Ym1pdCwgb25TdWNjZXNzKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZm9ybVJlZilcbiAgICAgICAgICAgIGZvcm1SZWYuY3VycmVudCA9IGlubmVyUmVmLmN1cnJlbnQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4cyhGb3JtTGF5b3V0LCB7IHZhcmlhbnQ6ICdwYWdlJywgc2l6ZTogc2l6ZSwgd2lkdGg6IHdpZHRoLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgdGl0bGU6IHRpdGxlLCBleHRyYTogZXh0cmEsIGZvb3RlcjogX2pzeChBY3Rpb25CYXIsIHsgbGF5b3V0OiAnZmlsbCcsIHNlY29uZGFyeTogc2Vjb25kYXJ5LCBwcmltYXJ5OiBzdWJtaXRTbG90ID8gdW5kZWZpbmVkIDoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBzdWJtaXRUZXh0LFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IHN1Ym1pdHRpbmcsXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBpbm5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc3VibWl0Rm9ybSgpOyB9LFxuICAgICAgICAgICAgfSwgcHJpbWFyeVNsb3Q6IHN1Ym1pdFNsb3QgPT09IG51bGwgfHwgc3VibWl0U2xvdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0U2xvdCh7XG4gICAgICAgICAgICAgICAgc3VibWl0OiAoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGlubmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWJtaXRGb3JtKCk7IH0sXG4gICAgICAgICAgICAgICAgc3VibWl0dGluZyxcbiAgICAgICAgICAgIH0pLCBmb290bm90ZTogZm9vdG5vdGUgfSksIGNoaWxkcmVuOiBbZGVzY3JpcHRpb24gJiYgKF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IGFzOiAncCcsIHNpemU6ICdtZCcsIHN0cm9uZzogdHJ1ZSwgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSksIF9qc3goQmFzZVByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyB2YXJpYW50OiAncGFnZScsIHNpemU6IHNpemUsIGZvcm1SZWY6IGlubmVyUmVmLCBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaDogaGFuZGxlRmluaXNoLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpXSB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IEZvcm1QYWdlID0gT2JqZWN0LmFzc2lnbihGb3JtUGFnZUlubmVyLCB7IEZpZWxkOiBGb3JtRmllbGQgfSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
92
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0Zvcm1QYWdlL0Zvcm1QYWdlLmpzIiwiYnVzaW5lc3Mvc3JjL2J1c2luZXNzL0Zvcm1QYWdlL0Zvcm1QYWdlLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQWN0aW9uQmFyIiwiRm9ybUxheW91dCIsIlR5cG9ncmFwaHkiLCJCYXNlUHJvRm9ybSIsIkZvcm1GaWVsZCIsInVzZVJlbGF5ZWRGb3JtUmVmIiwidXNlU3VibWl0QWN0aW9uIiwiRm9ybVBhZ2VJbm5lciIsIl9yZWYiLCJfcmVmJHNpemUiLCJzaXplIiwid2lkdGgiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImV4dHJhIiwiZGVzY3JpcHRpb24iLCJjaGlsZHJlbiIsImluaXRpYWxWYWx1ZXMiLCJvblN1Ym1pdCIsIm9uU3VjY2VzcyIsInN1Ym1pdFRleHQiLCJzdWJtaXRTbG90Iiwic2Vjb25kYXJ5IiwiZm9vdG5vdGUiLCJmb3JtUmVmIiwiZm9ybVByb3BzIiwiaW5uZXJSZWYiLCJfdXNlU3VibWl0QWN0aW9uIiwic3VibWl0dGluZyIsImhhbmRsZUZpbmlzaCIsInZhcmlhbnQiLCJmb290ZXIiLCJsYXlvdXQiLCJwcmltYXJ5IiwidW5kZWZpbmVkIiwibGFiZWwiLCJsb2FkaW5nIiwib25DbGljayIsIl9hIiwiY3VycmVudCIsInN1Ym1pdEZvcm0iLCJwcmltYXJ5U2xvdCIsInN1Ym1pdCIsIkJvZHkiLCJhcyIsInN0cm9uZyIsImNvbG9yIiwiT2JqZWN0IiwiYXNzaWduIiwib25GaW5pc2giLCJGb3JtUGFnZSIsIkZpZWxkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQVNDLFNBQVMsUUFBUSw0QkFBNEI7QUFDdEQsU0FBU0MsVUFBVSxRQUFRLDZCQUE2QjtBQUN4RCxTQUFTQyxVQUFVLFFBQVEsNkJBQTZCO0FBQ3hELFNBQVNDLFdBQVcsRUFB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QUFWQTtNRC9CQSxDQ2dDRCxDQUFDO01BQ0ZMLFFBQVEsRUFBRUE7SUFBUSxDQUFBLENBQ2xCO0lBQUFQLFFBQUEsRUFBQSxDQUdIRCxXQUFXLElBQ1ZsQixJQUFBLENBQUNLLFVBQVUsQ0FBQ3lDLElBQUksRUFBQTtNQUFDQyxFQUFFLEVBQUMsR0FBRztNQUFDbEMsSUFBSSxFQUFDLElBQUk7TUFBQ21DLE1BQU0sRUFBQSxJQUFBO01BQUNDLEtBQUssRUFBQyxtQkFBbUI7TUFBQTlCLFFBQUEsRUFDL0REO0lBQVcsQ0FBQSxDQUVmLEVBQ0RsQixJQUFBLENBQUNNLFdBQVcsRUFBQTRDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNOdkIsU0FBUyxFQUFBO01BQ2JLLE9BQU8sRUFBQyxNQUFNO01BQ2RwQixJQUFJLEVBQUVBLElBQUk7TUFDVmMsT0FBTyxFQUFFRSxRQUFRO01BQ2pCVCxhQUFhLEVBQUVBLGFBQWE7TUFDNUJnQyxRQUFRLEVBQUVwQixZQUFZO01BQUFiLFFBQUEsRUFFckJBO0lBQVEsQ0FBQSxDQUFBLENBQ0c7RUFBQSxDQUFBLENBQ0g7QUFFakIsQ0FBQztBQUVELE9BQU8sSUFBTWtDLFFBQVEsR0FBR0gsTUFBTSxDQUFDQyxNQUFNLENBQUN6QyxhQUFhLEVBQUU7RUFBRTRDLEtBQUssRUFBRS9DO0FBQVMsQ0FBRSxDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0Zvcm1QYWdlL0Zvcm1QYWdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEFjdGlvbkJhciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQWN0aW9uQmFyJztcbmltcG9ydCB7IEZvcm1MYXlvdXQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0Zvcm1MYXlvdXQnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBCYXNlUHJvRm9ybSwgRm9ybUZpZWxkIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1Db3JlL0Jhc2VQcm9Gb3JtJztcbmltcG9ydCB7IHVzZVJlbGF5ZWRGb3JtUmVmIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmJztcbmltcG9ydCB7IHVzZVN1Ym1pdEFjdGlvbiB9IGZyb20gJy4uL3NoYXJlZC9mb3JtQ29yZS91c2VTdWJtaXRBY3Rpb24nO1xuLyoqXG4gKiBGb3JtIHNjZW5hcmlvIHNoZWxsIGZvciB0aGUgUEFHRSBob3N0IOKAlCB0aGUgaW4tZG9jdW1lbnQgY291bnRlcnBhcnQgb2ZcbiAqIGBGb3JtRGlhbG9nYDpcbiAqXG4gKiAgIEZvcm1MYXlvdXQocGFnZSkgICBjYXJkIGNocm9tZSArIHBhZ2UgZGVuc2l0eSwgbm8gb3ZlcmxheSwgbmV2ZXIgc2Nyb2xsc1xuICogICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxseS4gYHNpemVgIHNlbGVjdHMgdGhlIHdpZHRoOiBgbGFyZ2VgICg3MzgsXG4gKiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0KSBvciBgc21hbGxgICg0NDgpOyBwYWRkaW5nIGFuZCBnYXBzIGFyZSB0aGUgc2FtZVxuICogICAgICAgICAgICAgICAgICAgICAgcGFnZSBkZW5zaXR5IGVpdGhlciB3YXkuIFdpZHRoIHJlc29sdmVzIGluc2lkZVxuICogICAgICAgICAgICAgICAgICAgICAgRm9ybUxheW91dDsgdGhpcyBzaGVsbCBvbmx5IGZvcndhcmRzIGBzaXplYC5cbiAqICAg4pSc4pSAIEJhc2VQcm9Gb3JtICAgICBzYW1lIHNpbmdsZSBQcm9Gb3JtIGNvbmZpZyBwb2ludCAodmFyaWFudD0ncGFnZScgKyB0aGVcbiAqICAg4pSCICAgICAgICAgICAgICAgICAgc2FtZSBgc2l6ZWAsIHNvIGNvbnRyb2wgc2l6ZSAvIGd1dHRlciAvIHJvdyBnYXAgbWF0Y2gpXG4gKiAgIOKUlOKUgCBBY3Rpb25CYXIoZmlsbCkgZnVsbC13aWR0aCBzdWJtaXQgKHBhZ2UgZm9ybXMgcGVyIHRoZSBEUylcbiAqXG4gKiBUaGUgU0FNRSBmaWVsZHMgcmVuZGVyIGlkZW50aWNhbGx5IGhlcmUgYW5kIGluIEZvcm1EaWFsb2cg4oCUIG9ubHkgdGhlXG4gKiBjb250YWluZXIgZGlmZmVycy5cbiAqL1xuY29uc3QgRm9ybVBhZ2VJbm5lciA9ICh7IHNpemUgPSAnbGFyZ2UnLCB3aWR0aCwgY2xhc3NOYW1lLCB0aXRsZSwgZXh0cmEsIGRlc2NyaXB0aW9uLCBjaGlsZHJlbiwgaW5pdGlhbFZhbHVlcywgb25TdWJtaXQsIG9uU3VjY2Vzcywgc3VibWl0VGV4dCwgc3VibWl0U2xvdCwgc2Vjb25kYXJ5LCBmb290bm90ZSwgZm9ybVJlZiwgZm9ybVByb3BzLCB9KSA9PiB7XG4gICAgY29uc3QgaW5uZXJSZWYgPSB1c2VSZWxheWVkRm9ybVJlZihmb3JtUmVmKTtcbiAgICBjb25zdCB7IHN1Ym1pdHRpbmcsIGhhbmRsZUZpbmlzaCB9ID0gdXNlU3VibWl0QWN0aW9uKG9uU3VibWl0LCBvblN1Y2Nlc3MpO1xuICAgIHJldHVybiAoX2pzeHMoRm9ybUxheW91dCwgeyB2YXJpYW50OiAncGFnZScsIHNpemU6IHNpemUsIHdpZHRoOiB3aWR0aCwgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHRpdGxlOiB0aXRsZSwgZXh0cmE6IGV4dHJhLCBmb290ZXI6IF9qc3goQWN0aW9uQmFyLCB7IGxheW91dDogJ2ZpbGwnLCBzZWNvbmRhcnk6IHNlY29uZGFyeSwgcHJpbWFyeTogc3VibWl0U2xvdCA/IHVuZGVmaW5lZCA6IHtcbiAgICAgICAgICAgICAgICBsYWJlbDogc3VibWl0VGV4dCxcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiBzdWJtaXR0aW5nLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gaW5uZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN1Ym1pdEZvcm0oKTsgfSxcbiAgICAgICAgICAgIH0sIHByaW1hcnlTbG90OiBzdWJtaXRTbG90ID09PSBudWxsIHx8IHN1Ym1pdFNsb3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdFNsb3Qoe1xuICAgICAgICAgICAgICAgIHN1Ym1pdDogKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBpbm5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc3VibWl0Rm9ybSgpOyB9LFxuICAgICAgICAgICAgICAgIHN1Ym1pdHRpbmcsXG4gICAgICAgICAgICB9KSwgZm9vdG5vdGU6IGZvb3Rub3RlIH0pLCBjaGlsZHJlbjogW2Rlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHkuQm9keSwgeyBhczogJ3AnLCBzaXplOiAnbWQnLCBzdHJvbmc6IHRydWUsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogZGVzY3JpcHRpb24gfSkpLCBfanN4KEJhc2VQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgdmFyaWFudDogJ3BhZ2UnLCBzaXplOiBzaXplLCBmb3JtUmVmOiBpbm5lclJlZiwgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlcywgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBjb25zdCBGb3JtUGFnZSA9IE9iamVjdC5hc3NpZ24oRm9ybVBhZ2VJbm5lciwgeyBGaWVsZDogRm9ybUZpZWxkIH0pOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,16 @@
1
+ import type { RefObject } from 'react';
2
+ import type { ProFormFormInstance } from "../../../components/ProForm";
3
+ /**
4
+ * The inner ref a form shell (FormDialog / FormPage) hands to BaseProForm,
5
+ * wired so writes flow through to the consumer's `formRef` immediately.
6
+ *
7
+ * ProForm publishes its instance from its OWN effect. When the shell's portal
8
+ * mounts the form a commit after the shell (Dialog creates the portal node in
9
+ * an effect), the shell's effects have already run — a passive
10
+ * `formRef.current = innerRef.current` copy never re-fires unless something
11
+ * else re-renders the shell, leaving the consumer's formRef undefined. The
12
+ * setter relay forwards the publish in the same tick instead.
13
+ */
14
+ export declare const useRelayedFormRef: <Values extends Record<string, any>>(formRef: RefObject<ProFormFormInstance<Values> | undefined> | undefined) => {
15
+ current: ProFormFormInstance<Values> | undefined;
16
+ };
@@ -0,0 +1,43 @@
1
+ import { useEffect, useMemo, useRef } from 'react';
2
+ /**
3
+ * The inner ref a form shell (FormDialog / FormPage) hands to BaseProForm,
4
+ * wired so writes flow through to the consumer's `formRef` immediately.
5
+ *
6
+ * ProForm publishes its instance from its OWN effect. When the shell's portal
7
+ * mounts the form a commit after the shell (Dialog creates the portal node in
8
+ * an effect), the shell's effects have already run — a passive
9
+ * `formRef.current = innerRef.current` copy never re-fires unless something
10
+ * else re-renders the shell, leaving the consumer's formRef undefined. The
11
+ * setter relay forwards the publish in the same tick instead.
12
+ */
13
+ export var useRelayedFormRef = function useRelayedFormRef(formRef) {
14
+ var externalRef = useRef(formRef);
15
+ var innerRef = useMemo(function () {
16
+ var instance;
17
+ return {
18
+ get current() {
19
+ return instance;
20
+ },
21
+ set current(next) {
22
+ instance = next;
23
+ var external = externalRef.current;
24
+ if (external) external.current = next;
25
+ }
26
+ };
27
+ }, []);
28
+ // Track a swapped-in formRef prop and backfill it with the live instance;
29
+ // the cleanup clears the outgoing ref on swap and on shell unmount. The
30
+ // inner-form lifecycle needs no handling here: ProForm's own ref-sync
31
+ // cleanup publishes `undefined` through the setter when the form unmounts
32
+ // (e.g. the shell stays mounted with `open=false`), so `innerRef.current`
33
+ // never holds an unmounted instance.
34
+ useEffect(function () {
35
+ externalRef.current = formRef;
36
+ if (formRef) formRef.current = innerRef.current;
37
+ return function () {
38
+ if (formRef) formRef.current = undefined;
39
+ };
40
+ }, [formRef, innerRef]);
41
+ return innerRef;
42
+ };
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NoYXJlZC9zcmMvYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLnRzIiwiYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLmpzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VSZWxheWVkRm9ybVJlZiIsImZvcm1SZWYiLCJleHRlcm5hbFJlZiIsImlubmVyUmVmIiwiaW5zdGFuY2UiLCJjdXJyZW50IiwibmV4dCIsImV4dGVybmFsIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFJbEQ7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRElBLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FDNUJDLE9BQXVFLEVBQ3JFO0VBQ0YsSUFBTUMsV0FBVyxHQUFHSCxNQUFNLENBQUNFLE9BQU8sQ0FBQztFQUVuQyxJQUFNRSxRQUFRLEdBQUdMLE9BQU8sQ0FBQyxZQUFLO0lBQzVCLElBQUlNLFFBQWlEO0lBQ3JELE9BQU87TUFDTCxJQUFJQyxPQUFPQSxDQUFBLEVBQUE7UUFDVCxPQUFPRCxRQUFRO01BQ2pCLENBQUM7TUFDRCxJQUFJQyxPQUFPQSxDQUFDQyxJQUE2QyxFQUFBO1FBQ3ZERixRQUFRLEdBQUdFLElBQUk7UUFDZixJQUFNQyxRQUFRLEdBQUdMLFdBQVcsQ0FBQ0csT0FBTztRQUNwQyxJQUFJRSxRQUFRLEVBQUVBLFFBQVEsQ0FBQ0YsT0FBTyxHQUFHQyxJQUFJO01BQ3ZDO0lDSkUsQ0RLSDtFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQVQsU0FBUyxDQUFDLFlBQUs7SUFDYkssV0FBVyxDQUFDRyxPQUFPLEdBQUdKLE9BQU87SUFDN0IsSUFBSUEsT0FBTyxFQUFFQSxPQUFPLENBQUNJLE9BQU8sR0FBR0YsUUFBUSxDQUFDRSxPQUFPO0lBQy9DLE9BQU8sWUFBSztNQUNWLElBQUlKLE9BQU8sRUFBRUEsT0FBTyxDQUFDSSxPQUFPLEdBQUdHLFNBQVM7SUFDMUMsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDUCxPQUFPLEVBQUVFLFFBQVEsQ0FBQyxDQUFDO0VBRXZCLE9BQU9BLFFBQVE7QUFDakIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9zaGFyZWQvZm9ybUNvcmUvdXNlUmVsYXllZEZvcm1SZWYuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBUaGUgaW5uZXIgcmVmIGEgZm9ybSBzaGVsbCAoRm9ybURpYWxvZyAvIEZvcm1QYWdlKSBoYW5kcyB0byBCYXNlUHJvRm9ybSxcbiAqIHdpcmVkIHNvIHdyaXRlcyBmbG93IHRocm91Z2ggdG8gdGhlIGNvbnN1bWVyJ3MgYGZvcm1SZWZgIGltbWVkaWF0ZWx5LlxuICpcbiAqIFByb0Zvcm0gcHVibGlzaGVzIGl0cyBpbnN0YW5jZSBmcm9tIGl0cyBPV04gZWZmZWN0LiBXaGVuIHRoZSBzaGVsbCdzIHBvcnRhbFxuICogbW91bnRzIHRoZSBmb3JtIGEgY29tbWl0IGFmdGVyIHRoZSBzaGVsbCAoRGlhbG9nIGNyZWF0ZXMgdGhlIHBvcnRhbCBub2RlIGluXG4gKiBhbiBlZmZlY3QpLCB0aGUgc2hlbGwncyBlZmZlY3RzIGhhdmUgYWxyZWFkeSBydW4g4oCUIGEgcGFzc2l2ZVxuICogYGZvcm1SZWYuY3VycmVudCA9IGlubmVyUmVmLmN1cnJlbnRgIGNvcHkgbmV2ZXIgcmUtZmlyZXMgdW5sZXNzIHNvbWV0aGluZ1xuICogZWxzZSByZS1yZW5kZXJzIHRoZSBzaGVsbCwgbGVhdmluZyB0aGUgY29uc3VtZXIncyBmb3JtUmVmIHVuZGVmaW5lZC4gVGhlXG4gKiBzZXR0ZXIgcmVsYXkgZm9yd2FyZHMgdGhlIHB1Ymxpc2ggaW4gdGhlIHNhbWUgdGljayBpbnN0ZWFkLlxuICovXG5leHBvcnQgY29uc3QgdXNlUmVsYXllZEZvcm1SZWYgPSAoZm9ybVJlZikgPT4ge1xuICAgIGNvbnN0IGV4dGVybmFsUmVmID0gdXNlUmVmKGZvcm1SZWYpO1xuICAgIGNvbnN0IGlubmVyUmVmID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBpbnN0YW5jZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgY3VycmVudChuZXh0KSB7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBuZXh0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVybmFsID0gZXh0ZXJuYWxSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAoZXh0ZXJuYWwpXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsLmN1cnJlbnQgPSBuZXh0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgLy8gVHJhY2sgYSBzd2FwcGVkLWluIGZvcm1SZWYgcHJvcCBhbmQgYmFja2ZpbGwgaXQgd2l0aCB0aGUgbGl2ZSBpbnN0YW5jZTtcbiAgICAvLyB0aGUgY2xlYW51cCBjbGVhcnMgdGhlIG91dGdvaW5nIHJlZiBvbiBzd2FwIGFuZCBvbiBzaGVsbCB1bm1vdW50LiBUaGVcbiAgICAvLyBpbm5lci1mb3JtIGxpZmVjeWNsZSBuZWVkcyBubyBoYW5kbGluZyBoZXJlOiBQcm9Gb3JtJ3Mgb3duIHJlZi1zeW5jXG4gICAgLy8gY2xlYW51cCBwdWJsaXNoZXMgYHVuZGVmaW5lZGAgdGhyb3VnaCB0aGUgc2V0dGVyIHdoZW4gdGhlIGZvcm0gdW5tb3VudHNcbiAgICAvLyAoZS5nLiB0aGUgc2hlbGwgc3RheXMgbW91bnRlZCB3aXRoIGBvcGVuPWZhbHNlYCksIHNvIGBpbm5lclJlZi5jdXJyZW50YFxuICAgIC8vIG5ldmVyIGhvbGRzIGFuIHVubW91bnRlZCBpbnN0YW5jZS5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBleHRlcm5hbFJlZi5jdXJyZW50ID0gZm9ybVJlZjtcbiAgICAgICAgaWYgKGZvcm1SZWYpXG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBpbm5lclJlZi5jdXJyZW50O1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvcm1SZWYpXG4gICAgICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB9O1xuICAgIH0sIFtmb3JtUmVmLCBpbm5lclJlZl0pO1xuICAgIHJldHVybiBpbm5lclJlZjtcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -328,10 +328,17 @@ var ProFormBase = function ProFormBase(props) {
328
328
  });
329
329
  }, [formInstance, applyPipeline, wrappedHandleSubmit]);
330
330
  // ── Sync to formRef prop ──
331
+ // The cleanup clears the ref on unmount: a handle to an unmounted form
332
+ // validates an empty field store and reports fake success, so consumers
333
+ // (and the business-shell relay refs) must observe `undefined` instead.
331
334
  useEffect(function () {
332
- if (formRef) {
333
- formRef.current = proFormFormInstance;
334
- }
335
+ if (!formRef) return undefined;
336
+ formRef.current = proFormFormInstance;
337
+ return function () {
338
+ if (formRef.current === proFormFormInstance) {
339
+ formRef.current = undefined;
340
+ }
341
+ };
335
342
  }, [formRef, proFormFormInstance]);
336
343
  // ── request / params auto-load ──
337
344
  var requestRef = useLatest(request);
@@ -500,4 +507,4 @@ var ProFormBase = function ProFormBase(props) {
500
507
  ProFormBase.displayName = 'ProForm';
501
508
  export var ProForm = /*#__PURE__*/memo(ProFormBase);
502
509
  export default ProForm;
503
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzdGFibGVTZXJpYWxpemUiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJvbWl0TmlsVmFsdWVzIiwiZm9ybWF0RGF0ZVZhbHVlcyIsInVzZVNoYWxsb3dTdGFibGUiLCJ1c2VVcmxTeW5jIiwicmVzb2x2ZVZhbHVlIiwic2V0TmVzdGVkVmFsdWUiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiY2xhc3NlcyIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiUHJvRm9ybUJhc2UiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic3VibWl0dGVyIiwiX3Byb3BzJG1vZGUiLCJtb2RlIiwiX3Byb3BzJGdyaWQiLCJncmlkIiwiY29sUHJvcHMiLCJyb3dQcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIm9uSW5pdCIsIm9uTG9hZGluZ0NoYW5nZSIsInN5bmNUb1VybCIsIl9wcm9wcyRzeW5jVG9VcmxBc0ltcCIsInN5bmNUb1VybEFzSW1wb3J0YW50IiwiZXh0cmFVcmxQYXJhbXMiLCJfcHJvcHMkYXV0b0ZvY3VzRmlyc3QiLCJhdXRvRm9jdXNGaXJzdElucHV0IiwiZm9ybUNvbXBvbmVudFR5cGUiLCJmb3JtUmVmIiwiX3Byb3BzJG9taXROaWwiLCJvbWl0TmlsIiwiX3Byb3BzJGRhdGVGb3JtYXR0ZXIiLCJkYXRlRm9ybWF0dGVyIiwiZmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJsYXlvdXQiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyR2YWxpZGF0ZVRyaWdnZSIsInZhbGlkYXRlVHJpZ2dlciIsIl9wcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInNldFJlcXVlc3RMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsInN1Ym1pdHRpbmciLCJzZXRTdWJtaXR0aW5nIiwic3VibWl0dGluZ1JlZiIsImlzTG9hZGluZyIsInRyYW5zZm9ybUtleVJlZiIsInZhbHVlVHlwZVJlZiIsInJlZ2lzdGVyVHJhbnNmb3JtIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXRWYWx1ZXNLZWVwTmlsIiwiX3VzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwiaW50ZXJuYWxzIiwic3RvcmUiLCJ3cmFwcGVkSGFuZGxlU3VibWl0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJfYiIsIl9jIiwiZXBvY2giLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJwaXBlbGluZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJwcmV2ZW50RGVmYXVsdCIsImFicnVwdCIsInZhbGlkYXRlRmllbGRzIiwic2VudCIsImVycm9ycyIsImNvbnNvbGUiLCJlcnJvciIsImZpbmlzaCIsInN0b3AiLCJwcm9Gb3JtRm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJfY2FsbGVlMiIsInZhbHMiLCJfdDIiLCJfY29udGV4dDIiLCJzdWNjZXNzIiwic3VibWl0Rm9ybSIsInJlcXVlc3RSZWYiLCJoYXNSZXF1ZXN0Iiwic2VyaWFsaXplZFBhcmFtcyIsImluaXRGaXJlZFJlZiIsImZpcmVJbml0Iiwic3RhbGUiLCJmZXRjaERhdGEiLCJfY2FsbGVlMyIsInJlcXVlc3RGbiIsImRhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJfdHlwZW9mIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInN0YWJsZUZvcm1JdGVtUHJvcHMiLCJzdGFibGVDb2xQcm9wcyIsInN0YWJsZUxheW91dCIsInN0YWJsZVZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInNldEZpZWxkRXJyb3IiLCJzZXRGaWVsZFdhcm5pbmciLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJXcmFwcGVyQ29tcG9uZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiUHJvdmlkZXIiLCJyZWYiLCJvblN1Ym1pdCIsImhhbmRsZVJlc2V0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFB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QVc7SUFBQWxKLFFBQUEsRUFHL0N0QyxJQUFBLENBQUNtQixtQkFBbUIsQ0FBQ2tMLFFBQVEsRUFBQTtNQUFDaE8sS0FBSyxFQUFFeUosS0FBSztNQUFBeEYsUUFBQSxFQUN4Q3BDLEtBQUEsQ0FBQSxNQUFBLEVBQUFaLE1BQUEsQ0FBQStILE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTWxDLElBQUksRUFBQTtRQUNSbUgsR0FBRyxFQUFFdEIsU0FBUztRQUNkekksU0FBUyxFQUFFTixXQUFXLENBQUNxRSxTQUFTLEVBQUV2RixPQUFPLENBQUNpQixPQUFPLENBQUEsQ0FBRSxFQUFFTyxTQUFTLENBQUMsQ0FBQztRQUNoRWdLLFFBQVEsRUFBRXhFLG1CQUFtQjtRQUM3QnhFLE9BQU8sRUFBRXNFLFNBQVMsQ0FBQzJFLFdBQVc7UUFBQWxLLFFBQUEsRUFBQSxDQUU5QnRDLElBQUEsQ0FBQ2lNLGdCQUFnQixFQUFBM00sTUFBQSxDQUFBK0gsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLNkUsWUFBWSxFQUFBO1VBQUE1SixRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFOEosYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRGhLLFdBQVcsQ0FBQ3FLLFdBQVcsR0FBRyxTQUFTO0FBYW5DLE9BQU8sSUFBTUMsT0FBTyxnQkFBR3RNLElBQUksQ0FBQ2dDLFdBQVcsQ0FBNEI7QUFFbkUsZUFBZXNLLE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtU3RhYmxlQ29udGV4dCwgUHJvRm9ybVN0YXRlQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMsIGZvcm1hdERhdGVWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNoYWxsb3dTdGFibGUgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHVzZVVybFN5bmMgfSBmcm9tICcuL2hvb2tzL3VzZVVybFN5bmMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vY29yZS92YWxpZGF0aW9uRXJyb3InO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoQ1NTX1BSRUZJWCk7XG5jb25zdCBmb3JtQ2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0nKTtcbmNvbnN0IERFRkFVTFRfQ09MX1BST1BTID0geyBzcGFuOiBERUZBVUxUX0NPTF9TUEFOIH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChmb3JtUmVmKSB7XG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
510
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzdGFibGVTZXJpYWxpemUiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJvbWl0TmlsVmFsdWVzIiwiZm9ybWF0RGF0ZVZhbHVlcyIsInVzZVNoYWxsb3dTdGFibGUiLCJ1c2VVcmxTeW5jIiwicmVzb2x2ZVZhbHVlIiwic2V0TmVzdGVkVmFsdWUiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiY2xhc3NlcyIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiUHJvRm9ybUJhc2UiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic3VibWl0dGVyIiwiX3Byb3BzJG1vZGUiLCJtb2RlIiwiX3Byb3BzJGdyaWQiLCJncmlkIiwiY29sUHJvcHMiLCJyb3dQcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIm9uSW5pdCIsIm9uTG9hZGluZ0NoYW5nZSIsInN5bmNUb1VybCIsIl9wcm9wcyRzeW5jVG9VcmxBc0ltcCIsInN5bmNUb1VybEFzSW1wb3J0YW50IiwiZXh0cmFVcmxQYXJhbXMiLCJfcHJvcHMkYXV0b0ZvY3VzRmlyc3QiLCJhdXRvRm9jdXNGaXJzdElucHV0IiwiZm9ybUNvbXBvbmVudFR5cGUiLCJmb3JtUmVmIiwiX3Byb3BzJG9taXROaWwiLCJvbWl0TmlsIiwiX3Byb3BzJGRhdGVGb3JtYXR0ZXIiLCJkYXRlRm9ybWF0dGVyIiwiZmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJsYXlvdXQiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyR2YWxpZGF0ZVRyaWdnZSIsInZhbGlkYXRlVHJpZ2dlciIsIl9wcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInNldFJlcXVlc3RMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsInN1Ym1pdHRpbmciLCJzZXRTdWJtaXR0aW5nIiwic3VibWl0dGluZ1JlZiIsImlzTG9hZGluZyIsInRyYW5zZm9ybUtleVJlZiIsInZhbHVlVHlwZVJlZiIsInJlZ2lzdGVyVHJhbnNmb3JtIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXRWYWx1ZXNLZWVwTmlsIiwiX3VzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwiaW50ZXJuYWxzIiwic3RvcmUiLCJ3cmFwcGVkSGFuZGxlU3VibWl0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJfYiIsIl9jIiwiZXBvY2giLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJwaXBlbGluZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJwcmV2ZW50RGVmYXVsdCIsImFicnVwdCIsInZhbGlkYXRlRmllbGRzIiwic2VudCIsImVycm9ycyIsImNvbnNvbGUiLCJlcnJvciIsImZpbmlzaCIsInN0b3AiLCJwcm9Gb3JtRm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJfY2FsbGVlMiIsInZhbHMiLCJfdDIiLCJfY29udGV4dDIiLCJzdWNjZXNzIiwic3VibWl0Rm9ybSIsInJlcXVlc3RSZWYiLCJoYXNSZXF1ZXN0Iiwic2VyaWFsaXplZFBhcmFtcyIsImluaXRGaXJlZFJlZiIsImZpcmVJbml0Iiwic3RhbGUiLCJmZXRjaERhdGEiLCJfY2FsbGVlMyIsInJlcXVlc3RGbiIsImRhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJfdHlwZW9mIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInN0YWJsZUZvcm1JdGVtUHJvcHMiLCJzdGFibGVDb2xQcm9wcyIsInN0YWJsZUxheW91dCIsInN0YWJsZVZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInNldEZpZWxkRXJyb3IiLCJzZXRGaWVsZFdhcm5pbmciLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJXcmFwcGVyQ29tcG9uZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiUHJvdmlkZXIiLCJyZWYiLCJvblN1Ym1pdCIsImhhbmRsZVJlc2V0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFB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Q3BEZSxPQUFPLEVBQUU0SSxvQkFBb0I7SUFDN0JuSixPQUFPLEVBQUU4QztFQUFTLENBQUEsQ0FBQSxDQUNsQixHQUNBLElBQUk7RUFFVixPQUNFOUYsSUFBQSxDQUFDa0Isb0JBQW9CLENBQUNtTCxRQUFRLEVBQUE7SUFBQ2hPLEtBQUssRUFBRW1OLFdBQVc7SUFBQWxKLFFBQUEsRUFHL0N0QyxJQUFBLENBQUNtQixtQkFBbUIsQ0FBQ2tMLFFBQVEsRUFBQTtNQUFDaE8sS0FBSyxFQUFFeUosS0FBSztNQUFBeEYsUUFBQSxFQUN4Q3BDLEtBQUEsQ0FBQSxNQUFBLEVBQUFaLE1BQUEsQ0FBQStILE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTWxDLElBQUksRUFBQTtRQUNSbUgsR0FBRyxFQUFFdEIsU0FBUztRQUNkekksU0FBUyxFQUFFTixXQUFXLENBQUNxRSxTQUFTLEVBQUV2RixPQUFPLENBQUNpQixPQUFPLENBQUEsQ0FBRSxFQUFFTyxTQUFTLENBQUMsQ0FBQztRQUNoRWdLLFFBQVEsRUFBRXhFLG1CQUFtQjtRQUM3QnhFLE9BQU8sRUFBRXNFLFNBQVMsQ0FBQzJFLFdBQVc7UUFBQWxLLFFBQUEsRUFBQSxDQUU5QnRDLElBQUEsQ0FBQ2lNLGdCQUFnQixFQUFBM00sTUFBQSxDQUFBK0gsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLNkUsWUFBWSxFQUFBO1VBQUE1SixRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFOEosYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRGhLLFdBQVcsQ0FBQ3FLLFdBQVcsR0FBRyxTQUFTO0FBYW5DLE9BQU8sSUFBTUMsT0FBTyxnQkFBR3RNLElBQUksQ0FBQ2dDLFdBQVcsQ0FBNEI7QUFFbkUsZUFBZXNLLE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtU3RhYmxlQ29udGV4dCwgUHJvRm9ybVN0YXRlQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMsIGZvcm1hdERhdGVWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNoYWxsb3dTdGFibGUgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHVzZVVybFN5bmMgfSBmcm9tICcuL2hvb2tzL3VzZVVybFN5bmMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vY29yZS92YWxpZGF0aW9uRXJyb3InO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoQ1NTX1BSRUZJWCk7XG5jb25zdCBmb3JtQ2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0nKTtcbmNvbnN0IERFRkFVTFRfQ09MX1BST1BTID0geyBzcGFuOiBERUZBVUxUX0NPTF9TUEFOIH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIC8vIFRoZSBjbGVhbnVwIGNsZWFycyB0aGUgcmVmIG9uIHVubW91bnQ6IGEgaGFuZGxlIHRvIGFuIHVubW91bnRlZCBmb3JtXG4gICAgLy8gdmFsaWRhdGVzIGFuIGVtcHR5IGZpZWxkIHN0b3JlIGFuZCByZXBvcnRzIGZha2Ugc3VjY2Vzcywgc28gY29uc3VtZXJzXG4gICAgLy8gKGFuZCB0aGUgYnVzaW5lc3Mtc2hlbGwgcmVsYXkgcmVmcykgbXVzdCBvYnNlcnZlIGB1bmRlZmluZWRgIGluc3RlYWQuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFmb3JtUmVmKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gcHJvRm9ybUZvcm1JbnN0YW5jZTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChmb3JtUmVmLmN1cnJlbnQgPT09IHByb0Zvcm1Gb3JtSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9