@1money/component-ui 0.0.64-alpha.3 → 0.0.64-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/business/Select/Asset/style/AssetSelect.css +1 -1
- package/es/business/Select/Country/CountrySelect.js +6 -2
- package/es/business/Select/Country/style/CountrySelect.css +28 -0
- package/es/business/Select/Country/style/css.js +2 -0
- package/es/business/Select/Country/style/index.d.ts +1 -0
- package/es/business/Select/Country/style/index.js +2 -0
- package/es/business/Select/Network/NetworkSelect.js +90 -182
- package/es/business/Select/Network/interface.d.ts +22 -10
- package/es/business/Select/Network/style/NetworkSelect.css +7 -26
- package/es/components/Empty/style/Empty.css +1 -0
- package/es/components/Select/Select.js +6 -2
- package/es/components/Select/interface.d.ts +6 -0
- package/es/components/Select/style/Select.css +5 -0
- package/es/index.css +1 -1
- package/lib/business/Select/Asset/style/AssetSelect.css +1 -1
- package/lib/business/Select/Country/CountrySelect.js +6 -2
- package/lib/business/Select/Country/style/CountrySelect.css +28 -0
- package/lib/business/Select/Country/style/css.js +4 -0
- package/lib/business/Select/Country/style/index.d.ts +1 -0
- package/lib/business/Select/Country/style/index.js +4 -0
- package/lib/business/Select/Network/NetworkSelect.js +87 -180
- package/lib/business/Select/Network/interface.d.ts +22 -10
- package/lib/business/Select/Network/style/NetworkSelect.css +7 -26
- package/lib/components/Empty/style/Empty.css +1 -0
- package/lib/components/Select/Select.js +6 -2
- package/lib/components/Select/interface.d.ts +6 -0
- package/lib/components/Select/style/Select.css +5 -0
- package/lib/index.css +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/index.generated.json +8 -0
|
@@ -77,6 +77,7 @@ var Select = exports.Select = function Select(props) {
|
|
|
77
77
|
prefix = props.prefix,
|
|
78
78
|
_props$emptyContent = props.emptyContent,
|
|
79
79
|
emptyContent = _props$emptyContent === void 0 ? 'No options' : _props$emptyContent,
|
|
80
|
+
panelHeader = props.panelHeader,
|
|
80
81
|
panelFooter = props.panelFooter,
|
|
81
82
|
open = props.open,
|
|
82
83
|
_props$defaultOpen = props.defaultOpen,
|
|
@@ -485,7 +486,10 @@ var Select = exports.Select = function Select(props) {
|
|
|
485
486
|
className: (0, _classnames.joinCls)(classes('panel'), panelClassName),
|
|
486
487
|
style: Object.assign(Object.assign({}, floatingStyles), transitionStyles)
|
|
487
488
|
}), {
|
|
488
|
-
children: [
|
|
489
|
+
children: [panelHeader != null && (0, _jsxRuntime.jsx)("div", {
|
|
490
|
+
className: classes('panel-header'),
|
|
491
|
+
children: panelHeader
|
|
492
|
+
}), searchable && (0, _jsxRuntime.jsx)(_SelectSearchControl["default"], {
|
|
489
493
|
ref: setSearchInputRef,
|
|
490
494
|
classes: classes,
|
|
491
495
|
// size={normalizedSize}
|
|
@@ -577,4 +581,4 @@ var Select = exports.Select = function Select(props) {
|
|
|
577
581
|
};
|
|
578
582
|
Select.displayName = 'Select';
|
|
579
583
|
var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
|
|
580
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkcmVhZE9ubHkiLCJyZWFkT25seSIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJfcHJvcHMkZmlsdGVySW5wdXRBdXQiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsImxhYmVsIiwibGFiZWxDbGFzc05hbWUiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib2Zmc2V0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJyZW5kZXJWYWx1ZSIsInJlZiIsImludGVyYWN0aXZlIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJvcHRpb25JZFByZWZpeCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwibm9ybWFsaXplU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsInVzZU1lbW8iLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJ1c2VSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCIsIl91c2VTZWxlY3RTaGVsbCIsInVzZVNlbGVjdFNoZWxsIiwiaW5uZXJPcGVuIiwiaXNPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInNldE9wZW4iLCJyZWZzIiwiY29udGV4dCIsImZsb2F0aW5nU3R5bGVzIiwidHJhbnNpdGlvblN0eWxlcyIsImlzTW91bnRlZCIsImJhc2VJbnRlcmFjdGlvbnMiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ2aXJ0dWFsIiwidHlwZWFoZWFkIiwidXNlVHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJ1c2VFZmZlY3QiLCJwcmV2IiwiX2EiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsInNldFNlYXJjaElucHV0UmVmIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsInRvZ2dsZU11bHRpcGxlVmFsdWUiLCJuZXh0T3B0aW9ucyIsImdldE9wdGlvbnNCeVZhbHVlcyIsImhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUiLCJvcHRpb25WYWx1ZSIsImdldE11bHRpcGxlVmFsdWUiLCJpbmNsdWRlcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJoYW5kbGVUcmlnZ2VyS2V5RG93biIsImtleSIsIktFWUJPQVJEIiwiRU5URVIiLCJTUEFDRSIsInByZXZlbnREZWZhdWx0IiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJpbmRleCIsImhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhZ1JlbW92ZUNsaWNrIiwiaGFuZGxlU2VhcmNoQmx1ciIsImhhbmRsZVNlYXJjaENoYW5nZSIsIl9ldmVudCIsImZpbmRFbmFibGVkSW5kZXgiLCJkaXJlY3Rpb24iLCJzdGFydCIsInN0ZXAiLCJjYW5kaWRhdGUiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwibmV4dCIsIkVTQ0FQRSIsInJlbmRlclZhbHVlTWV0YSIsImZvbnRTaXplIiwiZ2V0Rm9udFNpemUiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiam9pbkNscyIsImljb25TaXplIiwiYWN0aXZlT3B0aW9uSWQiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsIl9qc3hzIiwiU2VsZWN0RmllbGRTaGVsbCIsImNoaWxkcmVuIiwiYXNzaWduIiwidHlwZSIsIm9uS2V5RG93biIsIl9qc3giLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJvblJlbW92ZSIsIm9uUmVtb3ZlQ2xpY2siLCJvblJlbW92ZU1vdXNlRG93biIsIlNwaW5uZXIiLCJzdHJva2VXaWR0aCIsIkljb25zIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJGbG9hdGluZ0ZvY3VzTWFuYWdlciIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJTZWxlY3RTZWFyY2hDb250cm9sIiwiYWN0aXZlRGVzY2VuZGFudCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsInJvbGUiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsImNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBT0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUixPQUFBO0FBZ0JBLElBQUFTLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBVyxvQkFBQSxHQUFBRCxzQkFBQSxDQUFBVixPQUFBO0FBQ0EsSUFBQVksb0JBQUEsR0FBQUYsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFhLG1CQUFBLEdBQUFILHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBYyxnQkFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLE1BQUEsR0FBQWhCLE9BQUE7QUFjQUEsT0FBQTtBQUFpQixTQUFBaUIseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFWLHdCQUFBVSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEs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dGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VUeXBlYWhlYWQsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlSWQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RTaGVsbCB9IGZyb20gJy4vdXNlU2VsZWN0U2hlbGwnO1xuaW1wb3J0IHsgS0VZQk9BUkQsIFNFTEVDVF9UWVBPR1JBUEhZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0Rm9udFNpemUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIHJlYWRPbmx5ID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gdHJ1ZSwgbGFiZWwsIGxhYmVsQ2xhc3NOYW1lLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gdHJ1ZSwgcHJlZml4LCBlbXB0eUNvbnRlbnQgPSAnTm8gb3B0aW9ucycsIHBhbmVsRm9vdGVyLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBhbGxvd0Rlc2VsZWN0ID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9mZnNldCwgYW5pbWF0aW9uLCBvbkNoYW5nZSwgb25PcGVuQ2hhbmdlLCBvblNlYXJjaENoYW5nZSwgb25CbHVyLCBmaWx0ZXJPcHRpb24sIHJlbmRlck9wdGlvbiwgcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWUsIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IG9wdGlvbklkUHJlZml4ID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuOiBpbm5lck9wZW4sIHNldE9wZW46IGhhbmRsZU9wZW5DaGFuZ2UsIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICB2aXJ0dWFsOiBzZWFyY2hhYmxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICBjb25zdCBzZXRTZWFyY2hJbnB1dFJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChub2RlICYmIGlubmVyT3BlbiAmJiBmaWx0ZXJJbnB1dEF1dG9Gb2N1cykge1xuICAgICAgICAgICAgbm9kZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbiwgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoIWludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgaWYgKGlubmVyT3BlbiAmJlxuICAgICAgICAgICAgICAgIGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZmluZEVuYWJsZWRJbmRleCA9IHVzZUV2ZW50Q2FsbGJhY2soKGN1cnJlbnQsIGRpcmVjdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB2b2lkIDAgPyBjdXJyZW50IDogKGRpcmVjdGlvbiA9PT0gMSA/IC0xIDogbGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gbGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9ICgoc3RhcnQgKyBkaXJlY3Rpb24gKiBzdGVwKSAlIGxlbmd0aCArIGxlbmd0aCkgJSBsZW5ndGg7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbY2FuZGlkYXRlXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAxKTtcbiAgICAgICAgICAgIGlmIChuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgLTEpO1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUikge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgc2l6ZTogbm9ybWFsaXplZFNpemUsXG4gICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgIWRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItcmVhZG9ubHknKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbklkID0gc2VhcmNoYWJsZSAmJiBpbm5lck9wZW4gJiYgYWN0aXZlSW5kZXggIT09IG51bGxcbiAgICAgICAgPyBgJHtvcHRpb25JZFByZWZpeH0tJHthY3RpdmVJbmRleH1gXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkT25seSwgbG9hZGluZzogbG9hZGluZywgbGFiZWw6IGxhYmVsLCBsYWJlbENsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAnYXJpYS1yZWFkb25seSc6IHJlYWRPbmx5IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSldIH0pKSwgaXNNb3VudGVkICYmIGludGVyYWN0aXZlICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZXRTZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpemU9e25vcm1hbGl6ZWRTaXplfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogXCJzbWFsbFwiLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBhY3RpdmVEZXNjZW5kYW50OiBhY3RpdmVPcHRpb25JZCwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogZ2V0Rm9udFNpemUobm9ybWFsaXplZFNpemUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7b3B0aW9uSWRQcmVmaXh9LSR7b3B0aW9uRmxhdEluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCBjb250ZW50OiByZW5kZXJPcHRpb25Db250ZW50ID09PSBudWxsIHx8IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbmRlck9wdGlvbkNvbnRlbnQob3B0aW9uLCBvcHRpb25NZXRhKSB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
584
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkcmVhZE9ubHkiLCJyZWFkT25seSIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJfcHJvcHMkZmlsdGVySW5wdXRBdXQiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsImxhYmVsIiwibGFiZWxDbGFzc05hbWUiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsSGVhZGVyIiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwiX3Byb3BzJGFsbG93RGVzZWxlY3QiLCJhbGxvd0Rlc2VsZWN0IiwicGFuZWxDbGFzc05hbWUiLCJvcHRpb25DbGFzc05hbWUiLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJvZmZzZXQiLCJhbmltYXRpb24iLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uQ29udGVudCIsInJlbmRlclZhbHVlIiwicmVmIiwiaW50ZXJhY3RpdmUiLCJjbGFzc2VzIiwicm9vdENsYXNzbmFtZXMiLCJhdXRvSWQiLCJ1c2VJZCIsInRyaWdnZXJJZCIsImxhYmVsSWQiLCJkZXNjcmlwdGlvbklkIiwiZmVlZGJhY2tJZCIsIm9wdGlvbklkUHJlZml4IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl91c2VDb250cm9sbGVkU3RhdGU0IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJub3JtYWxpemVTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwidXNlTWVtbyIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJmaWx0ZXJPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsInVzZVJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiX3VzZVNlbGVjdFNoZWxsIiwidXNlU2VsZWN0U2hlbGwiLCJpbm5lck9wZW4iLCJpc09wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwibGlzdE5hdmlnYXRpb24iLCJ1c2VMaXN0TmF2aWdhdGlvbiIsIm9uTmF2aWdhdGUiLCJlbmFibGVkIiwibG9vcCIsInZpcnR1YWwiLCJ0eXBlYWhlYWQiLCJ1c2VUeXBlYWhlYWQiLCJvbk1hdGNoIiwiX3VzZUludGVyYWN0aW9ucyIsInVzZUludGVyYWN0aW9ucyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJmaXJzdEVuYWJsZWRJbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJfYSIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInNsaWNlIiwic2V0U2VhcmNoSW5wdXRSZWYiLCJub3RpZnlCbHVySWZPdXRzaWRlIiwicmVsYXRlZFRhcmdldCIsImV2ZW50IiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImhhbmRsZU9wdGlvbkJsdXIiLCJjb21taXRDaGFuZ2UiLCJuZXh0VmFsdWUiLCJuZXh0T3B0aW9uIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwidG9nZ2xlTXVsdGlwbGVWYWx1ZSIsIm5leHRPcHRpb25zIiwiZ2V0T3B0aW9uc0J5VmFsdWVzIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiZ2V0TXVsdGlwbGVWYWx1ZSIsImluY2x1ZGVzIiwicmVtb3ZlTXVsdGlwbGVWYWx1ZSIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiS0VZQk9BUkQiLCJFTlRFUiIsIlNQQUNFIiwicHJldmVudERlZmF1bHQiLCJBUlJPV19ET1dOIiwiQVJST1dfVVAiLCJoYW5kbGVJdGVtTW91c2VFbnRlciIsImluZGV4IiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiZmluZEVuYWJsZWRJbmRleCIsImRpcmVjdGlvbiIsInN0YXJ0Iiwic3RlcCIsImNhbmRpZGF0ZSIsImhhbmRsZVNlYXJjaEtleURvd24iLCJuZXh0IiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwiZm9udFNpemUiLCJnZXRGb250U2l6ZSIsInZhbHVlTGFiZWxDbGFzcyIsImlzTXVsdGlwbGVWYWx1ZUZpbGxlZCIsInRyaWdnZXJDbGFzc05hbWUiLCJqb2luQ2xzIiwiaWNvblNpemUiLCJhY3RpdmVPcHRpb25JZCIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJhc3NpZ24iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwiSWNvbnMiLCJjb2xvciIsInBhbmVsTm9kZSIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwibW9kYWwiLCJpbml0aWFsRm9jdXMiLCJyZXR1cm5Gb2N1cyIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJhY3RpdmVEZXNjZW5kYW50IiwiVHlwb2dyYXBoeUJvZHkiLCJTRUxFQ1RfVFlQT0dSQVBIWSIsImVtcHR5IiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJUeXBvZ3JhcGh5TGFiZWwiLCJncm91cExhYmVsIiwic3Ryb25nIiwib3B0aW9uRmxhdEluZGV4Iiwic2VsZWN0ZWQiLCJpc09wdGlvblNlbGVjdGVkIiwiYWN0aXZlIiwib3B0aW9uTWV0YSIsImV4dHJhY3RPcHRpb25UZXh0Iiwicm9sZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJTZWxlY3RPcHRpb25Db250ZW50IiwiY29udGVudCIsIkZsb2F0aW5nUG9ydGFsIiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFPQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFDLHVCQUFBLENBQUFSLE9BQUE7QUFnQkEsSUFBQVMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFXLG9CQUFBLEdBQUFELHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBWSxvQkFBQSxHQUFBRixzQkFBQSxDQUFBVixPQUFBO0FBQ0EsSUFBQWEsbUJBQUEsR0FBQUgsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFjLGdCQUFBLEdBQUFkLE9BQUE7QUFDQSxJQUFBZSxVQUFBLEdBQUFmLE9BQUE7QUFDQSxJQUFBZ0IsTUFBQSxHQUFBaEIsT0FBQTtBQWNBQSxPQUFBO0FBQWlCLFNBQUFpQix5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVYsd0JBQUFVLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFB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QUMsQ0FBRTtFQUFBLENBQUEsQ0FDYTtBQUV2QixDQUFDO0FBRURwUCxNQUFNLENBQUNnUixXQUFXLEdBQUcsUUFBUTtBQUFDLElBQUFDLFFBQUEsR0FBQWhSLE9BQUEsMkJBRWYsSUFBQWlSLFlBQUksRUFBQ2xSLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VUeXBlYWhlYWQsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlSWQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RTaGVsbCB9IGZyb20gJy4vdXNlU2VsZWN0U2hlbGwnO1xuaW1wb3J0IHsgS0VZQk9BUkQsIFNFTEVDVF9UWVBPR1JBUEhZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0Rm9udFNpemUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIHJlYWRPbmx5ID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gdHJ1ZSwgbGFiZWwsIGxhYmVsQ2xhc3NOYW1lLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gdHJ1ZSwgcHJlZml4LCBlbXB0eUNvbnRlbnQgPSAnTm8gb3B0aW9ucycsIHBhbmVsSGVhZGVyLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBwYW5lbENsYXNzTmFtZSwgb3B0aW9uQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9NQVhfSEVJR0hULCBvZmZzZXQsIGFuaW1hdGlvbiwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlck9wdGlvbkNvbnRlbnQsIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGludGVyYWN0aXZlID0gIWRpc2FibGVkICYmICFyZWFkT25seTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBvcHRpb25JZFByZWZpeCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3BlbjogaW5uZXJPcGVuLCBzZXRPcGVuOiBoYW5kbGVPcGVuQ2hhbmdlLCByZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgdHJhbnNpdGlvblN0eWxlcywgaXNNb3VudGVkLCBiYXNlSW50ZXJhY3Rpb25zLCB9ID0gdXNlU2VsZWN0U2hlbGwoe1xuICAgICAgICBvcGVuLFxuICAgICAgICBkZWZhdWx0T3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgb2Zmc2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgdmlydHVhbDogc2VhcmNoYWJsZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICAuLi5iYXNlSW50ZXJhY3Rpb25zLFxuICAgICAgICBsaXN0TmF2aWdhdGlvbixcbiAgICAgICAgdHlwZWFoZWFkLFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpLCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgY29uc3Qgc2V0U2VhcmNoSW5wdXRSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAobm9kZSAmJiBpbm5lck9wZW4gJiYgZmlsdGVySW5wdXRBdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIG5vZGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24sIG5hbWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFpbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChpbm5lck9wZW4gJiZcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIF9ldmVudCkgPT4ge1xuICAgICAgICBzZXRJbm5lclNlYXJjaFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZShuZXh0VmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmRFbmFibGVkSW5kZXggPSB1c2VFdmVudENhbGxiYWNrKChjdXJyZW50LCBkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBsZW5ndGggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFydCA9IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudCAhPT0gdm9pZCAwID8gY3VycmVudCA6IChkaXJlY3Rpb24gPT09IDEgPyAtMSA6IGxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IHN0ZXAgPSAxOyBzdGVwIDw9IGxlbmd0aDsgc3RlcCArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSAoKHN0YXJ0ICsgZGlyZWN0aW9uICogc3RlcCkgJSBsZW5ndGggKyBsZW5ndGgpICUgbGVuZ3RoO1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2NhbmRpZGF0ZV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04pIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgMSk7XG4gICAgICAgICAgICBpZiAobmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KG5leHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgcHJldiA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIC0xKTtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgocHJldik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIpIHtcbiAgICAgICAgICAgIGlmIChhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVTQ0FQRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIHNpemU6IG5vcm1hbGl6ZWRTaXplLFxuICAgICAgICBmb250U2l6ZTogZ2V0Rm9udFNpemUobm9ybWFsaXplZFNpemUpLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJyksIHJlYWRPbmx5ICYmICFkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLXJlYWRvbmx5JykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IHNlYXJjaGFibGUgJiYgaW5uZXJPcGVuICYmIGFjdGl2ZUluZGV4ICE9PSBudWxsXG4gICAgICAgID8gYCR7b3B0aW9uSWRQcmVmaXh9LSR7YWN0aXZlSW5kZXh9YFxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCByZWFkT25seTogcmVhZE9ubHksIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgbGFiZWxDbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcmVhZG9ubHknOiByZWFkT25seSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZWFkT25seVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSksIGlzTW91bnRlZCAmJiBpbnRlcmFjdGl2ZSAmJiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsTm9kZSA9IChfanN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQ6IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgaW5pdGlhbEZvY3VzOiAtMSwgcmV0dXJuRm9jdXM6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNldEZsb2F0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3BhbmVsJyksIHBhbmVsQ2xhc3NOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgdHJhbnNpdGlvblN0eWxlcyksXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbcGFuZWxIZWFkZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaGVhZGVyJyksIGNoaWxkcmVuOiBwYW5lbEhlYWRlciB9KSksIHNlYXJjaGFibGUgJiYgKF9qc3goU2VsZWN0U2VhcmNoQ29udHJvbCwgeyByZWY6IHNldFNlYXJjaElucHV0UmVmLCBjbGFzc2VzOiBjbGFzc2VzLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2l6ZT17bm9ybWFsaXplZFNpemV9IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiBcInNtYWxsXCIsIHBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgdmFsdWU6IGlubmVyU2VhcmNoVmFsdWUsIGFjdGl2ZURlc2NlbmRhbnQ6IGFjdGl2ZU9wdGlvbklkLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudFtvcHRpb25GbGF0SW5kZXhdID0gZXh0cmFjdE9wdGlvblRleHQob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRJdGVtUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RSZWYuY3VycmVudFtvcHRpb25GbGF0SW5kZXhdID0gbm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHtvcHRpb25JZFByZWZpeH0tJHtvcHRpb25GbGF0SW5kZXh9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSwgb3B0aW9uQ2xhc3NOYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gaGFuZGxlSXRlbU1vdXNlRW50ZXIob3B0aW9uRmxhdEluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCwgc2l6ZTogbm9ybWFsaXplZFNpemUsIGNvbnRlbnQ6IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IG51bGwgfHwgcmVuZGVyT3B0aW9uQ29udGVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyT3B0aW9uQ29udGVudChvcHRpb24sIG9wdGlvbk1ldGEpIH0pKSB9KSwgYCR7Z3JvdXAua2V5fS0ke29wdGlvbi52YWx1ZX1gKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXSB9LCBncm91cC5rZXkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkpIH0pLCBwYW5lbEZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1mb290ZXInKSwgY2hpbGRyZW46IHBhbmVsRm9vdGVyIH0pKV0gfSkpIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9ydGFsID8gX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogcGFuZWxOb2RlIH0pIDogcGFuZWxOb2RlO1xuICAgICAgICAgICAgfSkoKV0gfSkpO1xufTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9ICdTZWxlY3QnO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3QpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -114,6 +114,12 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
|
|
|
114
114
|
required?: boolean;
|
|
115
115
|
prefix?: ReactNode;
|
|
116
116
|
emptyContent?: ReactNode;
|
|
117
|
+
/**
|
|
118
|
+
* Content rendered at the top of the panel, above the search box and the
|
|
119
|
+
* option list (e.g. a banner or callout). Stays fixed while the list
|
|
120
|
+
* scrolls — mirror of `panelFooter`.
|
|
121
|
+
*/
|
|
122
|
+
panelHeader?: ReactNode;
|
|
117
123
|
panelFooter?: ReactNode;
|
|
118
124
|
open?: boolean;
|
|
119
125
|
defaultOpen?: boolean;
|
|
@@ -354,6 +354,11 @@
|
|
|
354
354
|
.om-component-ui-select-search-input::placeholder {
|
|
355
355
|
color: var(--om-text-neutral-secondary, #9fa3a3);
|
|
356
356
|
}
|
|
357
|
+
.om-component-ui-select-panel-header {
|
|
358
|
+
flex-shrink: 0;
|
|
359
|
+
width: 100%;
|
|
360
|
+
margin-bottom: var(--om-spacing-200, 8px);
|
|
361
|
+
}
|
|
357
362
|
.om-component-ui-select-panel-body {
|
|
358
363
|
display: flex;
|
|
359
364
|
flex: 1 1 auto;
|