@kaspernj/api-maker 1.0.2016 → 1.0.2018

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.
@@ -1,5 +1,5 @@
1
1
  import React, { useMemo } from "react";
2
- import { Pressable, View } from "react-native";
2
+ import { Pressable, StyleSheet, View } from "react-native";
3
3
  import BaseComponent from "../base-component";
4
4
  import ConfigReader from "./config-reader";
5
5
  import EditPage from "./edit-page";
@@ -18,6 +18,25 @@ import Text from "../utils/text";
18
18
  import useCanCan from "../use-can-can";
19
19
  import useCurrentUser from "../use-current-user";
20
20
  import useQueryParams from "on-location-changed/build/use-query-params";
21
+ import useStyles from "../use-styles";
22
+ const styles = StyleSheet.create({
23
+ actionsView: {
24
+ flexDirection: "row",
25
+ alignItems: "center"
26
+ },
27
+ createNewModelLink: {
28
+ marginLeft: 10,
29
+ marginRight: 10
30
+ },
31
+ destroyModelLink: {
32
+ marginLeft: 10,
33
+ marginRight: 10
34
+ },
35
+ editModelLink: {
36
+ marginLeft: 10,
37
+ marginRight: 10
38
+ }
39
+ });
21
40
  export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponent {
22
41
  setup() {
23
42
  this.queryParams = useQueryParams();
@@ -95,21 +114,16 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
95
114
  } else {
96
115
  pageToShow = "welcome";
97
116
  }
117
+ const actionsViewStyle = useStyles(styles, "actionsView");
98
118
  const actions = useMemo(() => /*#__PURE__*/React.createElement(View, {
99
- style: {
100
- flexDirection: "row",
101
- alignItems: "center"
102
- }
119
+ style: actionsViewStyle
103
120
  }, model && modelConfigActions && modelConfigActions({
104
121
  model
105
122
  }), modelClass && pageToShow == "index" && /*#__PURE__*/React.createElement(React.Fragment, null, canCan?.can("new", modelClass) && hasEditConfig(modelClass) && /*#__PURE__*/React.createElement(Link, {
106
123
  dataSet: {
107
124
  class: "create-new-model-link"
108
125
  },
109
- style: {
110
- marginLeft: 10,
111
- marginRight: 10
112
- },
126
+ style: styles.createNewModelLink,
113
127
  to: Params.withParams({
114
128
  model: modelName,
115
129
  mode: "new"
@@ -118,10 +132,7 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
118
132
  dataSet: {
119
133
  class: "edit-model-link"
120
134
  },
121
- style: {
122
- marginLeft: 10,
123
- marginRight: 10
124
- },
135
+ style: styles.editModelLink,
125
136
  to: Params.withParams({
126
137
  model: modelName,
127
138
  model_id: modelId,
@@ -132,10 +143,7 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
132
143
  class: "destroy-model-link"
133
144
  },
134
145
  onPress: this.tt.onDestroyClicked,
135
- style: {
136
- marginLeft: 10,
137
- marginRight: 10
138
- }
146
+ style: styles.destroyModelLink
139
147
  }, /*#__PURE__*/React.createElement(Text, null, "Delete"))), pageToShow == "show_reflection" && /*#__PURE__*/React.createElement(ShowReflectionActions, {
140
148
  model: model,
141
149
  modelClass: modelClass,
@@ -178,4 +186,4 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
178
186
  }
179
187
  };
180
188
  }));
181
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJQcmVzc2FibGUiLCJWaWV3IiwiQmFzZUNvbXBvbmVudCIsIkNvbmZpZ1JlYWRlciIsIkVkaXRQYWdlIiwiaGFzRWRpdENvbmZpZyIsIkluZGV4UGFnZSIsIkxheW91dCIsIkxpbmsiLCJtZW1vIiwibW9kZWxzIiwiUGFyYW1zIiwic2hhcGVDb21wb25lbnQiLCJTaG93UGFnZSIsIlNob3dSZWZsZWN0aW9uQWN0aW9ucyIsIlNob3dSZWZsZWN0aW9uUGFnZSIsIlRleHQiLCJ1c2VDYW5DYW4iLCJ1c2VDdXJyZW50VXNlciIsInVzZVF1ZXJ5UGFyYW1zIiwiQXBpTWFrZXJTdXBlckFkbWluIiwic2V0dXAiLCJxdWVyeVBhcmFtcyIsIm1vZGVsIiwibW9kZWxDbGFzcyIsImNvbmZpZ1JlYWRlciIsImZvck1vZGVsIiwibW9kZWxJZCIsIm1vZGVsX2lkIiwibW9kZWxOYW1lIiwibW9kZWxDbGFzc0RhdGEiLCJuYW1lIiwiY3VycmVudFVzZXIiLCJjYW5DYW4iLCJhYmlsaXRpZXMiLCJwdXNoIiwiaWQiLCJ1c2VTdGF0ZXMiLCJ1bmRlZmluZWQiLCJsb2FkTW9kZWwiLCJ0dCIsImFiaWxpdGllc0Zvck1vZGVsIiwibGF5b3V0U2VsZWN0IiwibW9kZWxDb25maWciLCJsYXlvdXQiLCJzZWxlY3QiLCJxdWVyeSIsInJhbnNhY2siLCJpZF9lcSIsImZpcnN0Iiwic2V0U3RhdGUiLCJyZW5kZXIiLCJzIiwibW9kZWxDb25maWdBY3Rpb25zIiwiYWN0aW9ucyIsInBhZ2VUb1Nob3ciLCJtb2RlbF9yZWZsZWN0aW9uIiwibW9kZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwiRnJhZ21lbnQiLCJjYW4iLCJkYXRhU2V0IiwiY2xhc3MiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJ0byIsIndpdGhQYXJhbXMiLCJvblByZXNzIiwib25EZXN0cm95Q2xpY2tlZCIsInJlZmxlY3Rpb25OYW1lIiwiYWN0aXZlIiwiaGVhZGVyVGl0bGUiLCJodW1hbiIsImNvdW50Iiwia2V5IiwiY29uZmlybSIsImRlc3Ryb3kiLCJjaGFuZ2VQYXJhbXMiLCJlcnJvciIsIkZsYXNoTWVzc2FnZSIsImVycm9yUmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3VwZXItYWRtaW4vaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCBFZGl0UGFnZSBmcm9tIFwiLi9lZGl0LXBhZ2VcIlxuaW1wb3J0IGhhc0VkaXRDb25maWcgZnJvbSBcIi4vaGFzLWVkaXQtY29uZmlnXCJcbmltcG9ydCBJbmRleFBhZ2UgZnJvbSBcIi4vaW5kZXgtcGFnZVwiXG5pbXBvcnQgTGF5b3V0IGZyb20gXCIuL2xheW91dC9pbmRleFwiXG5pbXBvcnQgTGluayBmcm9tIFwiLi4vbGlua1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gXCJtb2RlbHNcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vcGFyYW1zXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBTaG93UGFnZSBmcm9tIFwiLi9zaG93LXBhZ2UvaW5kZXhcIlxuaW1wb3J0IFNob3dSZWZsZWN0aW9uQWN0aW9ucyBmcm9tIFwiLi9zaG93LXJlZmxlY3Rpb24tYWN0aW9uc1wiXG5pbXBvcnQgU2hvd1JlZmxlY3Rpb25QYWdlIGZyb20gXCIuL3Nob3ctcmVmbGVjdGlvbi1wYWdlXCJcbmltcG9ydCBUZXh0IGZyb20gXCIuLi91dGlscy90ZXh0XCJcbmltcG9ydCB1c2VDYW5DYW4gZnJvbSBcIi4uL3VzZS1jYW4tY2FuXCJcbmltcG9ydCB1c2VDdXJyZW50VXNlciBmcm9tIFwiLi4vdXNlLWN1cnJlbnQtdXNlclwiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtc1wiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxzW3RoaXMucXVlcnlQYXJhbXMubW9kZWxdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxDbGFzcyA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IHVzZU1lbW8oKCkgPT4gdGhpcy5tb2RlbENsYXNzICYmIENvbmZpZ1JlYWRlci5mb3JNb2RlbCh0aGlzLm1vZGVsQ2xhc3MpLCBbdGhpcy5tb2RlbENsYXNzXSlcbiAgICB0aGlzLm1vZGVsSWQgPSB0aGlzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkXG4gICAgdGhpcy5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsQ2xhc3M/Lm1vZGVsQ2xhc3NEYXRhKCk/Lm5hbWVcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuXG4gICAgdGhpcy5jYW5DYW4gPSB1c2VDYW5DYW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFiaWxpdGllcyA9IFtdXG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWxDbGFzcykgYWJpbGl0aWVzLnB1c2goW3RoaXMubW9kZWxDbGFzcywgW1wibmV3XCJdXSlcblxuICAgICAgICByZXR1cm4gYWJpbGl0aWVzXG4gICAgICB9LFxuICAgICAgW3RoaXMuY3VycmVudFVzZXI/LmlkKCksIHRoaXMubW9kZWxDbGFzc11cbiAgICApXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBtb2RlbDogdW5kZWZpbmVkXG4gICAgfSlcbiAgICB1c2VNZW1vKFxuICAgICAgKCkgPT4geyB0aGlzLmxvYWRNb2RlbCgpIH0sXG4gICAgICBbdGhpcy5tb2RlbElkXVxuICAgIClcbiAgfVxuXG4gIGxvYWRNb2RlbCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7Y29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWV9ID0gdGhpcy50dFxuXG4gICAgaWYgKG1vZGVsSWQgJiYgbW9kZWxDbGFzcykge1xuICAgICAgY29uc3QgYWJpbGl0aWVzID0ge31cbiAgICAgIGNvbnN0IGFiaWxpdGllc0Zvck1vZGVsID0gW1wiZGVzdHJveVwiLCBcImVkaXRcIl1cbiAgICAgIGNvbnN0IGxheW91dFNlbGVjdCA9IGNvbmZpZ1JlYWRlcj8ubW9kZWxDb25maWc/LmxheW91dD8uc2VsZWN0XG5cbiAgICAgIGFiaWxpdGllc1ttb2RlbE5hbWVdID0gYWJpbGl0aWVzRm9yTW9kZWxcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBtb2RlbENsYXNzXG4gICAgICAgIC5yYW5zYWNrKHtpZF9lcTogbW9kZWxJZH0pXG4gICAgICAgIC5hYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgICBpZiAobGF5b3V0U2VsZWN0KSBxdWVyeS5zZWxlY3QobGF5b3V0U2VsZWN0KVxuXG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWx9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdW5kZWZpbmVkfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NhbkNhbiwgY29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWUsIHF1ZXJ5UGFyYW1zfSA9IHRoaXMudHRcbiAgICBjb25zdCB7bW9kZWx9ID0gdGhpcy5zXG4gICAgY29uc3QgbW9kZWxDb25maWdBY3Rpb25zID0gY29uZmlnUmVhZGVyPy5tb2RlbENvbmZpZz8uYWN0aW9uc1xuICAgIGxldCBwYWdlVG9TaG93XG5cbiAgICBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQgJiYgcXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbikge1xuICAgICAgcGFnZVRvU2hvdyA9IFwic2hvd19yZWZsZWN0aW9uXCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX2lkICYmIHF1ZXJ5UGFyYW1zLm1vZGUgPT0gXCJlZGl0XCIpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcImVkaXRcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcInNob3dcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZSA9PSBcIm5ld1wiKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJlZGl0XCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJpbmRleFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcIndlbGNvbWVcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gPFZpZXcgc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwifX0+XG4gICAgICAgIHttb2RlbCAmJiBtb2RlbENvbmZpZ0FjdGlvbnMgJiYgbW9kZWxDb25maWdBY3Rpb25zKHttb2RlbH0pfVxuICAgICAgICB7bW9kZWxDbGFzcyAmJiBwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7Y2FuQ2FuPy5jYW4oXCJuZXdcIiwgbW9kZWxDbGFzcykgJiYgaGFzRWRpdENvbmZpZyhtb2RlbENsYXNzKSAmJlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJjcmVhdGUtbmV3LW1vZGVsLWxpbmtcIn19XG4gICAgICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5MZWZ0OiAxMCwgbWFyZ2luUmlnaHQ6IDEwfX1cbiAgICAgICAgICAgICAgICB0bz17UGFyYW1zLndpdGhQYXJhbXMoe21vZGVsOiBtb2RlbE5hbWUsIG1vZGU6IFwibmV3XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgQ3JlYXRlIG5ld1xuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAgIHttb2RlbCAmJiBwYWdlVG9TaG93ID09IFwic2hvd1wiICYmXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHttb2RlbC5jYW4oXCJlZGl0XCIpICYmIGhhc0VkaXRDb25maWcobW9kZWxDbGFzcykgJiZcbiAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXt7Y2xhc3M6IFwiZWRpdC1tb2RlbC1saW5rXCJ9fVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luTGVmdDogMTAsIG1hcmdpblJpZ2h0OiAxMH19XG4gICAgICAgICAgICAgICAgdG89e1BhcmFtcy53aXRoUGFyYW1zKHttb2RlbDogbW9kZWxOYW1lLCBtb2RlbF9pZDogbW9kZWxJZCwgbW9kZTogXCJlZGl0XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgRWRpdFxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge21vZGVsLmNhbihcImRlc3Ryb3lcIikgJiZcbiAgICAgICAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJkZXN0cm95LW1vZGVsLWxpbmtcIn19XG4gICAgICAgICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vbkRlc3Ryb3lDbGlja2VkfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luTGVmdDogMTAsIG1hcmdpblJpZ2h0OiAxMH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvbkFjdGlvbnMgbW9kZWw9e21vZGVsfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSByZWZsZWN0aW9uTmFtZT17cXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbn0gLz5cbiAgICAgICAgfVxuICAgICAgPC9WaWV3PixcbiAgICAgIFtjYW5DYW4sIGNvbmZpZ1JlYWRlcj8uYWN0aW9ucywgbW9kZWwsIG1vZGVsQ2xhc3MsIHBhZ2VUb1Nob3ddXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMYXlvdXQgYWN0aW9ucz17YWN0aW9uc30gYWN0aXZlPXtxdWVyeVBhcmFtcy5tb2RlbH0gaGVhZGVyVGl0bGU9e21vZGVsQ2xhc3M/Lm1vZGVsTmFtZSgpPy5odW1hbih7Y291bnQ6IDJ9KX0+XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDxJbmRleFBhZ2VcbiAgICAgICAgICAgIGtleT17YGluZGV4LXBhZ2UtJHttb2RlbE5hbWV9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7cGFnZVRvU2hvdyA9PSBcInNob3dcIiAmJlxuICAgICAgICAgIDxTaG93UGFnZVxuICAgICAgICAgICAga2V5PXtgc2hvdy1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvblBhZ2VcbiAgICAgICAgICAgIGtleT17YHNob3ctcmVmbGVjdGlvbi1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJlZGl0XCIgJiZcbiAgICAgICAgICA8RWRpdFBhZ2VcbiAgICAgICAgICAgIGtleT17YGVkaXQtcGFnZS0ke21vZGVsTmFtZX0tJHttb2RlbElkfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvTGF5b3V0PlxuICAgIClcbiAgfVxuXG4gIG9uRGVzdHJveUNsaWNrZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFjb25maXJtKFwiQXJlIHlvdSBzdXJlP1wiKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucy5tb2RlbC5kZXN0cm95KClcblxuICAgICAgUGFyYW1zLmNoYW5nZVBhcmFtcyh7bW9kZTogdW5kZWZpbmVkLCBtb2RlbF9pZDogdW5kZWZpbmVkfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgRmxhc2hNZXNzYWdlLmVycm9yUmVzcG9uc2UoZXJyb3IpXG4gICAgfVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUFHQyxPQUFPLFFBQU8sT0FBTztBQUNwQyxTQUFRQyxTQUFTLEVBQUVDLElBQUksUUFBTyxjQUFjO0FBQzVDLE9BQU9DLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsWUFBWSxNQUFNLGlCQUFpQjtBQUMxQyxPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQUNsQyxPQUFPQyxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxjQUFjO0FBQ3BDLE9BQU9DLE1BQU0sTUFBTSxnQkFBZ0I7QUFDbkMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPLEtBQUtDLE1BQU0sTUFBTSxRQUFRO0FBQ2hDLE9BQU9DLE1BQU0sTUFBTSxXQUFXO0FBQzlCLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsT0FBT0MsUUFBUSxNQUFNLG1CQUFtQjtBQUN4QyxPQUFPQyxxQkFBcUIsTUFBTSwyQkFBMkI7QUFDN0QsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxlQUFlO0FBQ2hDLE9BQU9DLFNBQVMsTUFBTSxnQkFBZ0I7QUFDdEMsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxPQUFPQyxjQUFjLE1BQU0sNENBQTRDO0FB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
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJQcmVzc2FibGUiLCJTdHlsZVNoZWV0IiwiVmlldyIsIkJhc2VDb21wb25lbnQiLCJDb25maWdSZWFkZXIiLCJFZGl0UGFnZSIsImhhc0VkaXRDb25maWciLCJJbmRleFBhZ2UiLCJMYXlvdXQiLCJMaW5rIiwibWVtbyIsIm1vZGVscyIsIlBhcmFtcyIsInNoYXBlQ29tcG9uZW50IiwiU2hvd1BhZ2UiLCJTaG93UmVmbGVjdGlvbkFjdGlvbnMiLCJTaG93UmVmbGVjdGlvblBhZ2UiLCJUZXh0IiwidXNlQ2FuQ2FuIiwidXNlQ3VycmVudFVzZXIiLCJ1c2VRdWVyeVBhcmFtcyIsInVzZVN0eWxlcyIsInN0eWxlcyIsImNyZWF0ZSIsImFjdGlvbnNWaWV3IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJjcmVhdGVOZXdNb2RlbExpbmsiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJkZXN0cm95TW9kZWxMaW5rIiwiZWRpdE1vZGVsTGluayIsIkFwaU1ha2VyU3VwZXJBZG1pbiIsInNldHVwIiwicXVlcnlQYXJhbXMiLCJtb2RlbCIsIm1vZGVsQ2xhc3MiLCJjb25maWdSZWFkZXIiLCJmb3JNb2RlbCIsIm1vZGVsSWQiLCJtb2RlbF9pZCIsIm1vZGVsTmFtZSIsIm1vZGVsQ2xhc3NEYXRhIiwibmFtZSIsImN1cnJlbnRVc2VyIiwiY2FuQ2FuIiwiYWJpbGl0aWVzIiwicHVzaCIsImlkIiwidXNlU3RhdGVzIiwidW5kZWZpbmVkIiwibG9hZE1vZGVsIiwidHQiLCJhYmlsaXRpZXNGb3JNb2RlbCIsImxheW91dFNlbGVjdCIsIm1vZGVsQ29uZmlnIiwibGF5b3V0Iiwic2VsZWN0IiwicXVlcnkiLCJyYW5zYWNrIiwiaWRfZXEiLCJmaXJzdCIsInNldFN0YXRlIiwicmVuZGVyIiwicyIsIm1vZGVsQ29uZmlnQWN0aW9ucyIsImFjdGlvbnMiLCJwYWdlVG9TaG93IiwibW9kZWxfcmVmbGVjdGlvbiIsIm1vZGUiLCJhY3Rpb25zVmlld1N0eWxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiRnJhZ21lbnQiLCJjYW4iLCJkYXRhU2V0IiwiY2xhc3MiLCJ0byIsIndpdGhQYXJhbXMiLCJvblByZXNzIiwib25EZXN0cm95Q2xpY2tlZCIsInJlZmxlY3Rpb25OYW1lIiwiYWN0aXZlIiwiaGVhZGVyVGl0bGUiLCJodW1hbiIsImNvdW50Iiwia2V5IiwiY29uZmlybSIsImRlc3Ryb3kiLCJjaGFuZ2VQYXJhbXMiLCJlcnJvciIsIkZsYXNoTWVzc2FnZSIsImVycm9yUmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3VwZXItYWRtaW4vaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1ByZXNzYWJsZSwgU3R5bGVTaGVldCwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCBFZGl0UGFnZSBmcm9tIFwiLi9lZGl0LXBhZ2VcIlxuaW1wb3J0IGhhc0VkaXRDb25maWcgZnJvbSBcIi4vaGFzLWVkaXQtY29uZmlnXCJcbmltcG9ydCBJbmRleFBhZ2UgZnJvbSBcIi4vaW5kZXgtcGFnZVwiXG5pbXBvcnQgTGF5b3V0IGZyb20gXCIuL2xheW91dC9pbmRleFwiXG5pbXBvcnQgTGluayBmcm9tIFwiLi4vbGlua1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gXCJtb2RlbHNcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vcGFyYW1zXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBTaG93UGFnZSBmcm9tIFwiLi9zaG93LXBhZ2UvaW5kZXhcIlxuaW1wb3J0IFNob3dSZWZsZWN0aW9uQWN0aW9ucyBmcm9tIFwiLi9zaG93LXJlZmxlY3Rpb24tYWN0aW9uc1wiXG5pbXBvcnQgU2hvd1JlZmxlY3Rpb25QYWdlIGZyb20gXCIuL3Nob3ctcmVmbGVjdGlvbi1wYWdlXCJcbmltcG9ydCBUZXh0IGZyb20gXCIuLi91dGlscy90ZXh0XCJcbmltcG9ydCB1c2VDYW5DYW4gZnJvbSBcIi4uL3VzZS1jYW4tY2FuXCJcbmltcG9ydCB1c2VDdXJyZW50VXNlciBmcm9tIFwiLi4vdXNlLWN1cnJlbnQtdXNlclwiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtc1wiXG5pbXBvcnQgdXNlU3R5bGVzIGZyb20gXCIuLi91c2Utc3R5bGVzXCJcblxuY29uc3Qgc3R5bGVzID0gU3R5bGVTaGVldC5jcmVhdGUoe1xuICBhY3Rpb25zVmlldzoge1xuICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIlxuICB9LFxuICBjcmVhdGVOZXdNb2RlbExpbms6IHtcbiAgICBtYXJnaW5MZWZ0OiAxMCxcbiAgICBtYXJnaW5SaWdodDogMTBcbiAgfSxcbiAgZGVzdHJveU1vZGVsTGluazoge1xuICAgIG1hcmdpbkxlZnQ6IDEwLFxuICAgIG1hcmdpblJpZ2h0OiAxMFxuICB9LFxuICBlZGl0TW9kZWxMaW5rOiB7XG4gICAgbWFyZ2luTGVmdDogMTAsXG4gICAgbWFyZ2luUmlnaHQ6IDEwXG4gIH1cbn0pXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxzW3RoaXMucXVlcnlQYXJhbXMubW9kZWxdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxDbGFzcyA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IHVzZU1lbW8oKCkgPT4gdGhpcy5tb2RlbENsYXNzICYmIENvbmZpZ1JlYWRlci5mb3JNb2RlbCh0aGlzLm1vZGVsQ2xhc3MpLCBbdGhpcy5tb2RlbENsYXNzXSlcbiAgICB0aGlzLm1vZGVsSWQgPSB0aGlzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkXG4gICAgdGhpcy5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsQ2xhc3M/Lm1vZGVsQ2xhc3NEYXRhKCk/Lm5hbWVcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuXG4gICAgdGhpcy5jYW5DYW4gPSB1c2VDYW5DYW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFiaWxpdGllcyA9IFtdXG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWxDbGFzcykgYWJpbGl0aWVzLnB1c2goW3RoaXMubW9kZWxDbGFzcywgW1wibmV3XCJdXSlcblxuICAgICAgICByZXR1cm4gYWJpbGl0aWVzXG4gICAgICB9LFxuICAgICAgW3RoaXMuY3VycmVudFVzZXI/LmlkKCksIHRoaXMubW9kZWxDbGFzc11cbiAgICApXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBtb2RlbDogdW5kZWZpbmVkXG4gICAgfSlcbiAgICB1c2VNZW1vKFxuICAgICAgKCkgPT4geyB0aGlzLmxvYWRNb2RlbCgpIH0sXG4gICAgICBbdGhpcy5tb2RlbElkXVxuICAgIClcbiAgfVxuXG4gIGxvYWRNb2RlbCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7Y29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWV9ID0gdGhpcy50dFxuXG4gICAgaWYgKG1vZGVsSWQgJiYgbW9kZWxDbGFzcykge1xuICAgICAgY29uc3QgYWJpbGl0aWVzID0ge31cbiAgICAgIGNvbnN0IGFiaWxpdGllc0Zvck1vZGVsID0gW1wiZGVzdHJveVwiLCBcImVkaXRcIl1cbiAgICAgIGNvbnN0IGxheW91dFNlbGVjdCA9IGNvbmZpZ1JlYWRlcj8ubW9kZWxDb25maWc/LmxheW91dD8uc2VsZWN0XG5cbiAgICAgIGFiaWxpdGllc1ttb2RlbE5hbWVdID0gYWJpbGl0aWVzRm9yTW9kZWxcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBtb2RlbENsYXNzXG4gICAgICAgIC5yYW5zYWNrKHtpZF9lcTogbW9kZWxJZH0pXG4gICAgICAgIC5hYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgICBpZiAobGF5b3V0U2VsZWN0KSBxdWVyeS5zZWxlY3QobGF5b3V0U2VsZWN0KVxuXG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWx9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdW5kZWZpbmVkfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NhbkNhbiwgY29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWUsIHF1ZXJ5UGFyYW1zfSA9IHRoaXMudHRcbiAgICBjb25zdCB7bW9kZWx9ID0gdGhpcy5zXG4gICAgY29uc3QgbW9kZWxDb25maWdBY3Rpb25zID0gY29uZmlnUmVhZGVyPy5tb2RlbENvbmZpZz8uYWN0aW9uc1xuICAgIGxldCBwYWdlVG9TaG93XG5cbiAgICBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQgJiYgcXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbikge1xuICAgICAgcGFnZVRvU2hvdyA9IFwic2hvd19yZWZsZWN0aW9uXCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX2lkICYmIHF1ZXJ5UGFyYW1zLm1vZGUgPT0gXCJlZGl0XCIpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcImVkaXRcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcInNob3dcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZSA9PSBcIm5ld1wiKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJlZGl0XCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJpbmRleFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcIndlbGNvbWVcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbnNWaWV3U3R5bGUgPSB1c2VTdHlsZXMoc3R5bGVzLCBcImFjdGlvbnNWaWV3XCIpXG5cbiAgICBjb25zdCBhY3Rpb25zID0gdXNlTWVtbyhcbiAgICAgICgpID0+IDxWaWV3IHN0eWxlPXthY3Rpb25zVmlld1N0eWxlfT5cbiAgICAgICAge21vZGVsICYmIG1vZGVsQ29uZmlnQWN0aW9ucyAmJiBtb2RlbENvbmZpZ0FjdGlvbnMoe21vZGVsfSl9XG4gICAgICAgIHttb2RlbENsYXNzICYmIHBhZ2VUb1Nob3cgPT0gXCJpbmRleFwiICYmXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHtjYW5DYW4/LmNhbihcIm5ld1wiLCBtb2RlbENsYXNzKSAmJiBoYXNFZGl0Q29uZmlnKG1vZGVsQ2xhc3MpICYmXG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgZGF0YVNldD17e2NsYXNzOiBcImNyZWF0ZS1uZXctbW9kZWwtbGlua1wifX1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmNyZWF0ZU5ld01vZGVsTGlua31cbiAgICAgICAgICAgICAgICB0bz17UGFyYW1zLndpdGhQYXJhbXMoe21vZGVsOiBtb2RlbE5hbWUsIG1vZGU6IFwibmV3XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgQ3JlYXRlIG5ld1xuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAgIHttb2RlbCAmJiBwYWdlVG9TaG93ID09IFwic2hvd1wiICYmXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHttb2RlbC5jYW4oXCJlZGl0XCIpICYmIGhhc0VkaXRDb25maWcobW9kZWxDbGFzcykgJiZcbiAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXt7Y2xhc3M6IFwiZWRpdC1tb2RlbC1saW5rXCJ9fVxuICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZXMuZWRpdE1vZGVsTGlua31cbiAgICAgICAgICAgICAgICB0bz17UGFyYW1zLndpdGhQYXJhbXMoe21vZGVsOiBtb2RlbE5hbWUsIG1vZGVsX2lkOiBtb2RlbElkLCBtb2RlOiBcImVkaXRcIn0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgICBFZGl0XG4gICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7bW9kZWwuY2FuKFwiZGVzdHJveVwiKSAmJlxuICAgICAgICAgICAgICA8UHJlc3NhYmxlXG4gICAgICAgICAgICAgICAgZGF0YVNldD17e2NsYXNzOiBcImRlc3Ryb3ktbW9kZWwtbGlua1wifX1cbiAgICAgICAgICAgICAgICBvblByZXNzPXt0aGlzLnR0Lm9uRGVzdHJveUNsaWNrZWR9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5kZXN0cm95TW9kZWxMaW5rfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgICBEZWxldGVcbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwic2hvd19yZWZsZWN0aW9uXCIgJiZcbiAgICAgICAgICA8U2hvd1JlZmxlY3Rpb25BY3Rpb25zIG1vZGVsPXttb2RlbH0gbW9kZWxDbGFzcz17bW9kZWxDbGFzc30gcmVmbGVjdGlvbk5hbWU9e3F1ZXJ5UGFyYW1zLm1vZGVsX3JlZmxlY3Rpb259IC8+XG4gICAgICAgIH1cbiAgICAgIDwvVmlldz4sXG4gICAgICBbY2FuQ2FuLCBjb25maWdSZWFkZXI/LmFjdGlvbnMsIG1vZGVsLCBtb2RlbENsYXNzLCBwYWdlVG9TaG93XVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8TGF5b3V0IGFjdGlvbnM9e2FjdGlvbnN9IGFjdGl2ZT17cXVlcnlQYXJhbXMubW9kZWx9IGhlYWRlclRpdGxlPXttb2RlbENsYXNzPy5tb2RlbE5hbWUoKT8uaHVtYW4oe2NvdW50OiAyfSl9PlxuICAgICAgICB7cGFnZVRvU2hvdyA9PSBcImluZGV4XCIgJiZcbiAgICAgICAgICA8SW5kZXhQYWdlXG4gICAgICAgICAgICBrZXk9e2BpbmRleC1wYWdlLSR7bW9kZWxOYW1lfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93XCIgJiZcbiAgICAgICAgICA8U2hvd1BhZ2VcbiAgICAgICAgICAgIGtleT17YHNob3ctcGFnZS0ke21vZGVsTmFtZX0tJHttb2RlbElkfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgICAgbW9kZWxJZD17bW9kZWxJZH1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwic2hvd19yZWZsZWN0aW9uXCIgJiZcbiAgICAgICAgICA8U2hvd1JlZmxlY3Rpb25QYWdlXG4gICAgICAgICAgICBrZXk9e2BzaG93LXJlZmxlY3Rpb24tcGFnZS0ke21vZGVsTmFtZX0tJHttb2RlbElkfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgICAgbW9kZWxJZD17bW9kZWxJZH1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwiZWRpdFwiICYmXG4gICAgICAgICAgPEVkaXRQYWdlXG4gICAgICAgICAgICBrZXk9e2BlZGl0LXBhZ2UtJHttb2RlbE5hbWV9LSR7bW9kZWxJZH1gfVxuICAgICAgICAgICAgbW9kZWxDbGFzcz17bW9kZWxDbGFzc31cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L0xheW91dD5cbiAgICApXG4gIH1cblxuICBvbkRlc3Ryb3lDbGlja2VkID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghY29uZmlybShcIkFyZSB5b3Ugc3VyZT9cIikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnMubW9kZWwuZGVzdHJveSgpXG5cbiAgICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMoe21vZGU6IHVuZGVmaW5lZCwgbW9kZWxfaWQ6IHVuZGVmaW5lZH0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIEZsYXNoTWVzc2FnZS5lcnJvclJlc3BvbnNlKGVycm9yKVxuICAgIH1cbiAgfVxufSkpXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBR0MsT0FBTyxRQUFPLE9BQU87QUFDcEMsU0FBUUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLElBQUksUUFBTyxjQUFjO0FBQ3hELE9BQU9DLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsWUFBWSxNQUFNLGlCQUFpQjtBQUMxQyxPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQUNsQyxPQUFPQyxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxjQUFjO0FBQ3BDLE9BQU9DLE1BQU0sTUFBTSxnQkFBZ0I7QUFDbkMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPLEtBQUtDLE1BQU0sTUFBTSxRQUFRO0FBQ2hDLE9BQU9DLE1BQU0sTUFBTSxXQUFXO0FBQzlCLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsT0FBT0MsUUFBUSxNQUFNLG1CQUFtQjtBQUN4QyxPQUFPQyxxQkFBcUIsTUFBTSwyQkFBMkI7QUFDN0QsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxlQUFlO0FBQ2hDLE9BQU9DLFNBQVMsTUFBTSxnQkFBZ0I7QUFDdEMsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxPQUFPQyxjQUFjLE1BQU0sNENBQTRDO0FBQ3ZFLE9BQU9DLFNBQVMsTUFBTSxlQUFlO0FBRXJDLE1BQU1DLE1BQU0sR0FBR3JCLFVBQVUsQ0FBQ3NCLE1BQU0sQ0FBQztFQUMvQkMsV0FBVyxFQUFFO0lBQ1hDLGFBQWEsRUFBRSxLQUFLO0lBQ3BCQyxVQUFVLEVBQUU7RUFDZCxDQUFDO0VBQ0RDLGtCQUFrQixFQUFFO0lBQ2xCQyxVQUFVLEVBQUUsRUFBRTtJQUNkQyxXQUFXLEVBQUU7RUFDZixDQUFDO0VBQ0RDLGdCQUFnQixFQUFFO0lBQ2hCRixVQUFVLEVBQUUsRUFBRTtJQUNkQyxXQUFXLEVBQUU7RUFDZixDQUFDO0VBQ0RFLGFBQWEsRUFBRTtJQUNiSCxVQUFVLEVBQUUsRUFBRTtJQUNkQyxXQUFXLEVBQUU7RUFDZjtBQUNGLENBQUMsQ0FBQztBQUVGLGVBQWVuQixJQUFJLENBQUNHLGNBQWMsQ0FBQyxNQUFNbUIsa0JBQWtCLFNBQVM3QixhQUFhLENBQUM7RUFDaEY4QixLQUFLQSxDQUFBLEVBQUc7SUFDTixJQUFJLENBQUNDLFdBQVcsR0FBR2QsY0FBYyxDQUFDLENBQUM7SUFFbkMsSUFBSSxJQUFJLENBQUNjLFdBQVcsQ0FBQ0MsS0FBSyxFQUFFO01BQzFCLElBQUksQ0FBQ0MsVUFBVSxHQUFHekIsTUFBTSxDQUFDLElBQUksQ0FBQ3VCLFdBQVcsQ0FBQ0MsS0FBSyxDQUFDO0lBQ2xELENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQ0MsVUFBVSxHQUFHLElBQUk7SUFDeEI7SUFFQSxJQUFJLENBQUNDLFlBQVksR0FBR3RDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQ3FDLFVBQVUsSUFBSWhDLFlBQVksQ0FBQ2tDLFFBQVEsQ0FBQyxJQUFJLENBQUNGLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDQSxVQUFVLENBQUMsQ0FBQztJQUMvRyxJQUFJLENBQUNHLE9BQU8sR0FBRyxJQUFJLENBQUNMLFdBQVcsQ0FBQ00sUUFBUTtJQUN4QyxJQUFJLENBQUNDLFNBQVMsR0FBRyxJQUFJLENBQUNMLFVBQVUsRUFBRU0sY0FBYyxDQUFDLENBQUMsRUFBRUMsSUFBSTtJQUN4RCxJQUFJLENBQUNDLFdBQVcsR0FBR3pCLGNBQWMsQ0FBQyxDQUFDO0lBRW5DLElBQUksQ0FBQzBCLE1BQU0sR0FBRzNCLFNBQVMsQ0FDckIsTUFBTTtNQUNKLE1BQU00QixTQUFTLEdBQUcsRUFBRTtNQUVwQixJQUFJLElBQUksQ0FBQ1YsVUFBVSxFQUFFVSxTQUFTLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQ1gsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztNQUUvRCxPQUFPVSxTQUFTO0lBQ2xCLENBQUMsRUFDRCxDQUFDLElBQUksQ0FBQ0YsV0FBVyxFQUFFSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ1osVUFBVSxDQUMxQyxDQUFDO0lBRUQsSUFBSSxDQUFDYSxTQUFTLENBQUM7TUFDYmQsS0FBSyxFQUFFZTtJQUNULENBQUMsQ0FBQztJQUNGbkQsT0FBTyxDQUNMLE1BQU07TUFBRSxJQUFJLENBQUNvRCxTQUFTLENBQUMsQ0FBQztJQUFDLENBQUMsRUFDMUIsQ0FBQyxJQUFJLENBQUNaLE9BQU8sQ0FDZixDQUFDO0VBQ0g7RUFFQVksU0FBUyxHQUFHLE1BQUFBLENBQUEsS0FBWTtJQUN0QixNQUFNO01BQUNkLFlBQVk7TUFBRUQsVUFBVTtNQUFFRyxPQUFPO01BQUVFO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ1csRUFBRTtJQUU5RCxJQUFJYixPQUFPLElBQUlILFVBQVUsRUFBRTtNQUN6QixNQUFNVSxTQUFTLEdBQUcsQ0FBQyxDQUFDO01BQ3BCLE1BQU1PLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztNQUM3QyxNQUFNQyxZQUFZLEdBQUdqQixZQUFZLEVBQUVrQixXQUFXLEVBQUVDLE1BQU0sRUFBRUMsTUFBTTtNQUU5RFgsU0FBUyxDQUFDTCxTQUFTLENBQUMsR0FBR1ksaUJBQWlCO01BRXhDLE1BQU1LLEtBQUssR0FBRyxNQUFNdEIsVUFBVSxDQUMzQnVCLE9BQU8sQ0FBQztRQUFDQyxLQUFLLEVBQUVyQjtNQUFPLENBQUMsQ0FBQyxDQUN6Qk8sU0FBUyxDQUFDQSxTQUFTLENBQUM7TUFFdkIsSUFBSVEsWUFBWSxFQUFFSSxLQUFLLENBQUNELE1BQU0sQ0FBQ0gsWUFBWSxDQUFDO01BRTVDLE1BQU1uQixLQUFLLEdBQUcsTUFBTXVCLEtBQUssQ0FBQ0csS0FBSyxDQUFDLENBQUM7TUFFakMsSUFBSSxDQUFDQyxRQUFRLENBQUM7UUFBQzNCO01BQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQzJCLFFBQVEsQ0FBQztRQUFDM0IsS0FBSyxFQUFFZTtNQUFTLENBQUMsQ0FBQztJQUNuQztFQUNGLENBQUM7RUFFRGEsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDbEIsTUFBTTtNQUFFUixZQUFZO01BQUVELFVBQVU7TUFBRUcsT0FBTztNQUFFRSxTQUFTO01BQUVQO0lBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQ2tCLEVBQUU7SUFDbkYsTUFBTTtNQUFDakI7SUFBSyxDQUFDLEdBQUcsSUFBSSxDQUFDNkIsQ0FBQztJQUN0QixNQUFNQyxrQkFBa0IsR0FBRzVCLFlBQVksRUFBRWtCLFdBQVcsRUFBRVcsT0FBTztJQUM3RCxJQUFJQyxVQUFVO0lBRWQsSUFBSWpDLFdBQVcsQ0FBQ0MsS0FBSyxJQUFJRCxXQUFXLENBQUNNLFFBQVEsSUFBSU4sV0FBVyxDQUFDa0MsZ0JBQWdCLEVBQUU7TUFDN0VELFVBQVUsR0FBRyxpQkFBaUI7SUFDaEMsQ0FBQyxNQUFNLElBQUlqQyxXQUFXLENBQUNDLEtBQUssSUFBSUQsV0FBVyxDQUFDTSxRQUFRLElBQUlOLFdBQVcsQ0FBQ21DLElBQUksSUFBSSxNQUFNLEVBQUU7TUFDbEZGLFVBQVUsR0FBRyxNQUFNO0lBQ3JCLENBQUMsTUFBTSxJQUFJakMsV0FBVyxDQUFDQyxLQUFLLElBQUlELFdBQVcsQ0FBQ00sUUFBUSxFQUFFO01BQ3BEMkIsVUFBVSxHQUFHLE1BQU07SUFDckIsQ0FBQyxNQUFNLElBQUlqQyxXQUFXLENBQUNDLEtBQUssSUFBSUQsV0FBVyxDQUFDbUMsSUFBSSxJQUFJLEtBQUssRUFBRTtNQUN6REYsVUFBVSxHQUFHLE1BQU07SUFDckIsQ0FBQyxNQUFNLElBQUlqQyxXQUFXLENBQUNDLEtBQUssRUFBRTtNQUM1QmdDLFVBQVUsR0FBRyxPQUFPO0lBQ3RCLENBQUMsTUFBTTtNQUNMQSxVQUFVLEdBQUcsU0FBUztJQUN4QjtJQUVBLE1BQU1HLGdCQUFnQixHQUFHakQsU0FBUyxDQUFDQyxNQUFNLEVBQUUsYUFBYSxDQUFDO0lBRXpELE1BQU00QyxPQUFPLEdBQUduRSxPQUFPLENBQ3JCLG1CQUFNRCxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxJQUFJO01BQUNzRSxLQUFLLEVBQUVGO0lBQWlCLEdBQ2pDbkMsS0FBSyxJQUFJOEIsa0JBQWtCLElBQUlBLGtCQUFrQixDQUFDO01BQUM5QjtJQUFLLENBQUMsQ0FBQyxFQUMxREMsVUFBVSxJQUFJK0IsVUFBVSxJQUFJLE9BQU8saUJBQ2xDckUsS0FBQSxDQUFBeUUsYUFBQSxDQUFBekUsS0FBQSxDQUFBMkUsUUFBQSxRQUNHNUIsTUFBTSxFQUFFNkIsR0FBRyxDQUFDLEtBQUssRUFBRXRDLFVBQVUsQ0FBQyxJQUFJOUIsYUFBYSxDQUFDOEIsVUFBVSxDQUFDLGlCQUMxRHRDLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQzlELElBQUk7TUFDSGtFLE9BQU8sRUFBRTtRQUFDQyxLQUFLLEVBQUU7TUFBdUIsQ0FBRTtNQUMxQ0osS0FBSyxFQUFFbEQsTUFBTSxDQUFDSyxrQkFBbUI7TUFDakNrRCxFQUFFLEVBQUVqRSxNQUFNLENBQUNrRSxVQUFVLENBQUM7UUFBQzNDLEtBQUssRUFBRU0sU0FBUztRQUFFNEIsSUFBSSxFQUFFO01BQUssQ0FBQztJQUFFLGdCQUV2RHZFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3RELElBQUksUUFBQyxZQUVBLENBQ0YsQ0FFUixDQUFDLEVBRUprQixLQUFLLElBQUlnQyxVQUFVLElBQUksTUFBTSxpQkFDNUJyRSxLQUFBLENBQUF5RSxhQUFBLENBQUF6RSxLQUFBLENBQUEyRSxRQUFBLFFBQ0d0QyxLQUFLLENBQUN1QyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUlwRSxhQUFhLENBQUM4QixVQUFVLENBQUMsaUJBQzdDdEMsS0FBQSxDQUFBeUUsYUFBQSxDQUFDOUQsSUFBSTtNQUNIa0UsT0FBTyxFQUFFO1FBQUNDLEtBQUssRUFBRTtNQUFpQixDQUFFO01BQ3BDSixLQUFLLEVBQUVsRCxNQUFNLENBQUNTLGFBQWM7TUFDNUI4QyxFQUFFLEVBQUVqRSxNQUFNLENBQUNrRSxVQUFVLENBQUM7UUFBQzNDLEtBQUssRUFBRU0sU0FBUztRQUFFRCxRQUFRLEVBQUVELE9BQU87UUFBRThCLElBQUksRUFBRTtNQUFNLENBQUM7SUFBRSxnQkFFM0V2RSxLQUFBLENBQUF5RSxhQUFBLENBQUN0RCxJQUFJLFFBQUMsTUFFQSxDQUNGLENBQUMsRUFFUmtCLEtBQUssQ0FBQ3VDLEdBQUcsQ0FBQyxTQUFTLENBQUMsaUJBQ25CNUUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDdkUsU0FBUztNQUNSMkUsT0FBTyxFQUFFO1FBQUNDLEtBQUssRUFBRTtNQUFvQixDQUFFO01BQ3ZDRyxPQUFPLEVBQUUsSUFBSSxDQUFDM0IsRUFBRSxDQUFDNEIsZ0JBQWlCO01BQ2xDUixLQUFLLEVBQUVsRCxNQUFNLENBQUNRO0lBQWlCLGdCQUUvQmhDLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3RELElBQUksUUFBQyxRQUVBLENBQ0csQ0FFYixDQUFDLEVBRUprRCxVQUFVLElBQUksaUJBQWlCLGlCQUM5QnJFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3hELHFCQUFxQjtNQUFDb0IsS0FBSyxFQUFFQSxLQUFNO01BQUNDLFVBQVUsRUFBRUEsVUFBVztNQUFDNkMsY0FBYyxFQUFFL0MsV0FBVyxDQUFDa0M7SUFBaUIsQ0FBRSxDQUUxRyxDQUFDLEVBQ1AsQ0FBQ3ZCLE1BQU0sRUFBRVIsWUFBWSxFQUFFNkIsT0FBTyxFQUFFL0IsS0FBSyxFQUFFQyxVQUFVLEVBQUUrQixVQUFVLENBQy9ELENBQUM7SUFFRCxvQkFDRXJFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQy9ELE1BQU07TUFBQzBELE9BQU8sRUFBRUEsT0FBUTtNQUFDZ0IsTUFBTSxFQUFFaEQsV0FBVyxDQUFDQyxLQUFNO01BQUNnRCxXQUFXLEVBQUUvQyxVQUFVLEVBQUVLLFNBQVMsQ0FBQyxDQUFDLEVBQUUyQyxLQUFLLENBQUM7UUFBQ0MsS0FBSyxFQUFFO01BQUMsQ0FBQztJQUFFLEdBQzFHbEIsVUFBVSxJQUFJLE9BQU8saUJBQ3BCckUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDaEUsU0FBUztNQUNSK0UsR0FBRyxFQUFFLGNBQWM3QyxTQUFTLEVBQUc7TUFDL0JMLFVBQVUsRUFBRUE7SUFBVyxDQUN4QixDQUFDLEVBRUgrQixVQUFVLElBQUksTUFBTSxpQkFDbkJyRSxLQUFBLENBQUF5RSxhQUFBLENBQUN6RCxRQUFRO01BQ1B3RSxHQUFHLEVBQUUsYUFBYTdDLFNBQVMsSUFBSUYsT0FBTyxFQUFHO01BQ3pDSCxVQUFVLEVBQUVBLFVBQVc7TUFDdkJHLE9BQU8sRUFBRUE7SUFBUSxDQUNsQixDQUFDLEVBRUg0QixVQUFVLElBQUksaUJBQWlCLGlCQUM5QnJFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3ZELGtCQUFrQjtNQUNqQnNFLEdBQUcsRUFBRSx3QkFBd0I3QyxTQUFTLElBQUlGLE9BQU8sRUFBRztNQUNwREgsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCRyxPQUFPLEVBQUVBO0lBQVEsQ0FDbEIsQ0FBQyxFQUVINEIsVUFBVSxJQUFJLE1BQU0saUJBQ25CckUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDbEUsUUFBUTtNQUNQaUYsR0FBRyxFQUFFLGFBQWE3QyxTQUFTLElBQUlGLE9BQU8sRUFBRztNQUN6Q0gsVUFBVSxFQUFFQTtJQUFXLENBQ3hCLENBRUcsQ0FBQztFQUViO0VBRUE0QyxnQkFBZ0IsR0FBRyxNQUFBQSxDQUFBLEtBQVk7SUFDN0IsSUFBSSxDQUFDTyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7TUFDN0I7SUFDRjtJQUVBLElBQUk7TUFDRixNQUFNLElBQUksQ0FBQ3ZCLENBQUMsQ0FBQzdCLEtBQUssQ0FBQ3FELE9BQU8sQ0FBQyxDQUFDO01BRTVCNUUsTUFBTSxDQUFDNkUsWUFBWSxDQUFDO1FBQUNwQixJQUFJLEVBQUVuQixTQUFTO1FBQUVWLFFBQVEsRUFBRVU7TUFBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLE9BQU93QyxLQUFLLEVBQUU7TUFDZEMsWUFBWSxDQUFDQyxhQUFhLENBQUNGLEtBQUssQ0FBQztJQUNuQztFQUNGLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -4,7 +4,7 @@ import PropTypes from "prop-types";
4
4
  import PropTypesExact from "prop-types-exact";
5
5
  import memo from "set-state-compare/src/memo";
6
6
  import Params from "../params";
7
- import React from "react";
7
+ import React, { useMemo } from "react";
8
8
  import { shapeComponent } from "set-state-compare/src/shape-component";
9
9
  import ShowReflectionLink from "./show-reflection-link";
10
10
  import Text from "../utils/text";
@@ -28,10 +28,11 @@ export default memo(shapeComponent(class ApiMakerSuperAdminShowNav extends BaseC
28
28
  } = this.props;
29
29
  const queryParams = useQueryParams();
30
30
  const reflections = modelClass.reflections();
31
+ const dataSet = useMemo(() => ({
32
+ component: "super-admin--show-nav"
33
+ }), []);
31
34
  return /*#__PURE__*/React.createElement(View, {
32
- dataSet: {
33
- component: "super-admin--show-nav"
34
- }
35
+ dataSet: dataSet
35
36
  }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Link, {
36
37
  to: Params.withParams({
37
38
  model: modelClass.modelClassData().name,
@@ -48,4 +49,4 @@ export default memo(shapeComponent(class ApiMakerSuperAdminShowNav extends BaseC
48
49
  }))));
49
50
  }
50
51
  }));
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiTGluayIsIlByb3BUeXBlcyIsIlByb3BUeXBlc0V4YWN0IiwibWVtbyIsIlBhcmFtcyIsIlJlYWN0Iiwic2hhcGVDb21wb25lbnQiLCJTaG93UmVmbGVjdGlvbkxpbmsiLCJUZXh0IiwidXNlSTE4biIsInVzZVF1ZXJ5UGFyYW1zIiwiVmlldyIsIkFwaU1ha2VyU3VwZXJBZG1pblNob3dOYXYiLCJwcm9wVHlwZXMiLCJtb2RlbCIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJtb2RlbENsYXNzIiwiZnVuYyIsInJlbmRlciIsInQiLCJuYW1lc3BhY2UiLCJwcm9wcyIsInF1ZXJ5UGFyYW1zIiwicmVmbGVjdGlvbnMiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNvbXBvbmVudCIsInRvIiwid2l0aFBhcmFtcyIsIm1vZGVsQ2xhc3NEYXRhIiwibmFtZSIsIm1vZGVsX2lkIiwiZGVmYXVsdFZhbHVlIiwiZmlsdGVyIiwicmVmbGVjdGlvbiIsIm1hY3JvIiwibWFwIiwia2V5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N1cGVyLWFkbWluL3Nob3ctbmF2LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IExpbmsgZnJvbSBcIi4uL2xpbmtcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBQYXJhbXMgZnJvbSBcIi4uL3BhcmFtc1wiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBTaG93UmVmbGVjdGlvbkxpbmsgZnJvbSBcIi4vc2hvdy1yZWZsZWN0aW9uLWxpbmtcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4uL3V0aWxzL3RleHRcIlxuaW1wb3J0IHVzZUkxOG4gZnJvbSBcImkxOG4tb24tc3Rlcm9pZHMvc3JjL3VzZS1pMThuXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zXCJcbmltcG9ydCB7Vmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluU2hvd05hdiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gUHJvcFR5cGVzRXhhY3Qoe1xuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7dH0gPSB1c2VJMThuKHtuYW1lc3BhY2U6IFwianMuYXBpX21ha2VyLnN1cHJ0X2FkbWluLnNob3dfcmVmbGVjdGlvbl9wYWdlXCJ9KVxuICAgIGNvbnN0IHttb2RlbCwgbW9kZWxDbGFzc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG4gICAgY29uc3QgcmVmbGVjdGlvbnMgPSBtb2RlbENsYXNzLnJlZmxlY3Rpb25zKClcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y29tcG9uZW50OiBcInN1cGVyLWFkbWluLS1zaG93LW5hdlwifX0+XG4gICAgICAgIDxWaWV3PlxuICAgICAgICAgIDxMaW5rIHRvPXtQYXJhbXMud2l0aFBhcmFtcyh7bW9kZWw6IG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCBtb2RlbF9pZDogcXVlcnlQYXJhbXMubW9kZWxfaWR9KX0+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAge3QoXCIuZ2VuZXJhbFwiLCB7ZGVmYXVsdFZhbHVlOiBcIkdlbmVyYWxcIn0pfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgICB7bW9kZWwgJiYgcmVmbGVjdGlvbnMuZmlsdGVyKChyZWZsZWN0aW9uKSA9PiByZWZsZWN0aW9uLm1hY3JvKCkgPT0gXCJoYXNfbWFueVwiKS5tYXAoKHJlZmxlY3Rpb24pID0+XG4gICAgICAgICAgPFZpZXcga2V5PXtyZWZsZWN0aW9uLm5hbWUoKX0+XG4gICAgICAgICAgICA8U2hvd1JlZmxlY3Rpb25MaW5rIG1vZGVsPXttb2RlbH0gbW9kZWxDbGFzcz17bW9kZWxDbGFzc30gcmVmbGVjdGlvbj17cmVmbGVjdGlvbn0gLz5cbiAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICl9XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsYUFBYSxNQUFNLG1CQUFtQjtBQUM3QyxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxrQkFBa0IsTUFBTSx3QkFBd0I7QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGVBQWU7QUFDaEMsT0FBT0MsT0FBTyxNQUFNLCtCQUErQjtBQUNuRCxPQUFPQyxjQUFjLE1BQU0sNENBQTRDO0FBQ3ZFLFNBQVFDLElBQUksUUFBTyxjQUFjO0FBRWpDLGVBQWVSLElBQUksQ0FBQ0csY0FBYyxDQUFDLE1BQU1NLHlCQUF5QixTQUFTYixhQUFhLENBQUM7RUFDdkYsT0FBT2MsU0FBUyxHQUFHWCxjQUFjLENBQUM7SUFDaENZLEtBQUssRUFBRWIsU0FBUyxDQUFDYyxNQUFNLENBQUNDLFVBQVU7SUFDbENDLFVBQVUsRUFBRWhCLFNBQVMsQ0FBQ2lCLElBQUksQ0FBQ0Y7RUFDN0IsQ0FBQyxDQUFDO0VBRUZHLE1BQU1BLENBQUEsRUFBRztJQUNQLE1BQU07TUFBQ0M7SUFBQyxDQUFDLEdBQUdYLE9BQU8sQ0FBQztNQUFDWSxTQUFTLEVBQUU7SUFBK0MsQ0FBQyxDQUFDO0lBQ2pGLE1BQU07TUFBQ1AsS0FBSztNQUFFRztJQUFVLENBQUMsR0FBRyxJQUFJLENBQUNLLEtBQUs7SUFDdEMsTUFBTUMsV0FBVyxHQUFHYixjQUFjLENBQUMsQ0FBQztJQUNwQyxNQUFNYyxXQUFXLEdBQUdQLFVBQVUsQ0FBQ08sV0FBVyxDQUFDLENBQUM7SUFFNUMsb0JBQ0VuQixLQUFBLENBQUFvQixhQUFBLENBQUNkLElBQUk7TUFBQ2UsT0FBTyxFQUFFO1FBQUNDLFNBQVMsRUFBRTtNQUF1QjtJQUFFLGdCQUNsRHRCLEtBQUEsQ0FBQW9CLGFBQUEsQ0FBQ2QsSUFBSSxxQkFDSE4sS0FBQSxDQUFBb0IsYUFBQSxDQUFDekIsSUFBSTtNQUFDNEIsRUFBRSxFQUFFeEIsTUFBTSxDQUFDeUIsVUFBVSxDQUFDO1FBQUNmLEtBQUssRUFBRUcsVUFBVSxDQUFDYSxjQUFjLENBQUMsQ0FBQyxDQUFDQyxJQUFJO1FBQUVDLFFBQVEsRUFBRVQsV0FBVyxDQUFDUztNQUFRLENBQUM7SUFBRSxnQkFDckczQixLQUFBLENBQUFvQixhQUFBLENBQUNqQixJQUFJLFFBQ0ZZLENBQUMsQ0FBQyxVQUFVLEVBQUU7TUFBQ2EsWUFBWSxFQUFFO0lBQVMsQ0FBQyxDQUNwQyxDQUNGLENBQ0YsQ0FBQyxFQUNObkIsS0FBSyxJQUFJVSxXQUFXLENBQUNVLE1BQU0sQ0FBRUMsVUFBVSxJQUFLQSxVQUFVLENBQUNDLEtBQUssQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUNDLEdBQUcsQ0FBRUYsVUFBVSxpQkFDNUY5QixLQUFBLENBQUFvQixhQUFBLENBQUNkLElBQUk7TUFBQzJCLEdBQUcsRUFBRUgsVUFBVSxDQUFDSixJQUFJLENBQUM7SUFBRSxnQkFDM0IxQixLQUFBLENBQUFvQixhQUFBLENBQUNsQixrQkFBa0I7TUFBQ08sS0FBSyxFQUFFQSxLQUFNO01BQUNHLFVBQVUsRUFBRUEsVUFBVztNQUFDa0IsVUFBVSxFQUFFQTtJQUFXLENBQUUsQ0FDL0UsQ0FDUixDQUNJLENBQUM7RUFFWDtBQUNGLENBQUMsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiTGluayIsIlByb3BUeXBlcyIsIlByb3BUeXBlc0V4YWN0IiwibWVtbyIsIlBhcmFtcyIsIlJlYWN0IiwidXNlTWVtbyIsInNoYXBlQ29tcG9uZW50IiwiU2hvd1JlZmxlY3Rpb25MaW5rIiwiVGV4dCIsInVzZUkxOG4iLCJ1c2VRdWVyeVBhcmFtcyIsIlZpZXciLCJBcGlNYWtlclN1cGVyQWRtaW5TaG93TmF2IiwicHJvcFR5cGVzIiwibW9kZWwiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwibW9kZWxDbGFzcyIsImZ1bmMiLCJyZW5kZXIiLCJ0IiwibmFtZXNwYWNlIiwicHJvcHMiLCJxdWVyeVBhcmFtcyIsInJlZmxlY3Rpb25zIiwiZGF0YVNldCIsImNvbXBvbmVudCIsImNyZWF0ZUVsZW1lbnQiLCJ0byIsIndpdGhQYXJhbXMiLCJtb2RlbENsYXNzRGF0YSIsIm5hbWUiLCJtb2RlbF9pZCIsImRlZmF1bHRWYWx1ZSIsImZpbHRlciIsInJlZmxlY3Rpb24iLCJtYWNybyIsIm1hcCIsImtleSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBlci1hZG1pbi9zaG93LW5hdi5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBMaW5rIGZyb20gXCIuLi9saW5rXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi9wYXJhbXNcIlxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBTaG93UmVmbGVjdGlvbkxpbmsgZnJvbSBcIi4vc2hvdy1yZWZsZWN0aW9uLWxpbmtcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4uL3V0aWxzL3RleHRcIlxuaW1wb3J0IHVzZUkxOG4gZnJvbSBcImkxOG4tb24tc3Rlcm9pZHMvc3JjL3VzZS1pMThuXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zXCJcbmltcG9ydCB7Vmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluU2hvd05hdiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gUHJvcFR5cGVzRXhhY3Qoe1xuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7dH0gPSB1c2VJMThuKHtuYW1lc3BhY2U6IFwianMuYXBpX21ha2VyLnN1cHJ0X2FkbWluLnNob3dfcmVmbGVjdGlvbl9wYWdlXCJ9KVxuICAgIGNvbnN0IHttb2RlbCwgbW9kZWxDbGFzc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG4gICAgY29uc3QgcmVmbGVjdGlvbnMgPSBtb2RlbENsYXNzLnJlZmxlY3Rpb25zKClcbiAgICBjb25zdCBkYXRhU2V0ID0gdXNlTWVtbygoKSA9PiAoe2NvbXBvbmVudDogXCJzdXBlci1hZG1pbi0tc2hvdy1uYXZcIn0pLCBbXSlcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXtkYXRhU2V0fT5cbiAgICAgICAgPFZpZXc+XG4gICAgICAgICAgPExpbmsgdG89e1BhcmFtcy53aXRoUGFyYW1zKHttb2RlbDogbW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIG1vZGVsX2lkOiBxdWVyeVBhcmFtcy5tb2RlbF9pZH0pfT5cbiAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICB7dChcIi5nZW5lcmFsXCIsIHtkZWZhdWx0VmFsdWU6IFwiR2VuZXJhbFwifSl9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICA8L1ZpZXc+XG4gICAgICAgIHttb2RlbCAmJiByZWZsZWN0aW9ucy5maWx0ZXIoKHJlZmxlY3Rpb24pID0+IHJlZmxlY3Rpb24ubWFjcm8oKSA9PSBcImhhc19tYW55XCIpLm1hcCgocmVmbGVjdGlvbikgPT5cbiAgICAgICAgICA8VmlldyBrZXk9e3JlZmxlY3Rpb24ubmFtZSgpfT5cbiAgICAgICAgICAgIDxTaG93UmVmbGVjdGlvbkxpbmsgbW9kZWw9e21vZGVsfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSByZWZsZWN0aW9uPXtyZWZsZWN0aW9ufSAvPlxuICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgKX1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLElBQUksTUFBTSxTQUFTO0FBQzFCLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxNQUFNLE1BQU0sV0FBVztBQUM5QixPQUFPQyxLQUFLLElBQUdDLE9BQU8sUUFBTyxPQUFPO0FBQ3BDLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxlQUFlO0FBQ2hDLE9BQU9DLE9BQU8sTUFBTSwrQkFBK0I7QUFDbkQsT0FBT0MsY0FBYyxNQUFNLDRDQUE0QztBQUN2RSxTQUFRQyxJQUFJLFFBQU8sY0FBYztBQUVqQyxlQUFlVCxJQUFJLENBQUNJLGNBQWMsQ0FBQyxNQUFNTSx5QkFBeUIsU0FBU2QsYUFBYSxDQUFDO0VBQ3ZGLE9BQU9lLFNBQVMsR0FBR1osY0FBYyxDQUFDO0lBQ2hDYSxLQUFLLEVBQUVkLFNBQVMsQ0FBQ2UsTUFBTSxDQUFDQyxVQUFVO0lBQ2xDQyxVQUFVLEVBQUVqQixTQUFTLENBQUNrQixJQUFJLENBQUNGO0VBQzdCLENBQUMsQ0FBQztFQUVGRyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUNDO0lBQUMsQ0FBQyxHQUFHWCxPQUFPLENBQUM7TUFBQ1ksU0FBUyxFQUFFO0lBQStDLENBQUMsQ0FBQztJQUNqRixNQUFNO01BQUNQLEtBQUs7TUFBRUc7SUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDSyxLQUFLO0lBQ3RDLE1BQU1DLFdBQVcsR0FBR2IsY0FBYyxDQUFDLENBQUM7SUFDcEMsTUFBTWMsV0FBVyxHQUFHUCxVQUFVLENBQUNPLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLE1BQU1DLE9BQU8sR0FBR3BCLE9BQU8sQ0FBQyxPQUFPO01BQUNxQixTQUFTLEVBQUU7SUFBdUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRXpFLG9CQUNFdEIsS0FBQSxDQUFBdUIsYUFBQSxDQUFDaEIsSUFBSTtNQUFDYyxPQUFPLEVBQUVBO0lBQVEsZ0JBQ3JCckIsS0FBQSxDQUFBdUIsYUFBQSxDQUFDaEIsSUFBSSxxQkFDSFAsS0FBQSxDQUFBdUIsYUFBQSxDQUFDNUIsSUFBSTtNQUFDNkIsRUFBRSxFQUFFekIsTUFBTSxDQUFDMEIsVUFBVSxDQUFDO1FBQUNmLEtBQUssRUFBRUcsVUFBVSxDQUFDYSxjQUFjLENBQUMsQ0FBQyxDQUFDQyxJQUFJO1FBQUVDLFFBQVEsRUFBRVQsV0FBVyxDQUFDUztNQUFRLENBQUM7SUFBRSxnQkFDckc1QixLQUFBLENBQUF1QixhQUFBLENBQUNuQixJQUFJLFFBQ0ZZLENBQUMsQ0FBQyxVQUFVLEVBQUU7TUFBQ2EsWUFBWSxFQUFFO0lBQVMsQ0FBQyxDQUNwQyxDQUNGLENBQ0YsQ0FBQyxFQUNObkIsS0FBSyxJQUFJVSxXQUFXLENBQUNVLE1BQU0sQ0FBRUMsVUFBVSxJQUFLQSxVQUFVLENBQUNDLEtBQUssQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUNDLEdBQUcsQ0FBRUYsVUFBVSxpQkFDNUYvQixLQUFBLENBQUF1QixhQUFBLENBQUNoQixJQUFJO01BQUMyQixHQUFHLEVBQUVILFVBQVUsQ0FBQ0osSUFBSSxDQUFDO0lBQUUsZ0JBQzNCM0IsS0FBQSxDQUFBdUIsYUFBQSxDQUFDcEIsa0JBQWtCO01BQUNPLEtBQUssRUFBRUEsS0FBTTtNQUFDRyxVQUFVLEVBQUVBLFVBQVc7TUFBQ2tCLFVBQVUsRUFBRUE7SUFBVyxDQUFFLENBQy9FLENBQ1IsQ0FDSSxDQUFDO0VBRVg7QUFDRixDQUFDLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -36,12 +36,13 @@ export default memo(shapeComponent(class SuperAdminShowReflectionActions extends
36
36
  mode: "new"
37
37
  };
38
38
  linkParams[dataParamName] = modelData;
39
+ const dataSet = useMemo(() => ({
40
+ class: "create-new-model-link"
41
+ }), []);
39
42
  return /*#__PURE__*/React.createElement(React.Fragment, null, canCan?.can("new", reflection.modelClass()) && /*#__PURE__*/React.createElement(Link, {
40
- dataSet: {
41
- class: "create-new-model-link"
42
- },
43
+ dataSet: dataSet,
43
44
  to: Params.withParams(linkParams)
44
45
  }, "Create new"));
45
46
  }
46
47
  }));
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsIm1lbW8iLCJSZWFjdCIsInVzZU1lbW8iLCJQcm9wVHlwZXMiLCJwcm9wVHlwZXNFeGFjdCIsInNoYXBlQ29tcG9uZW50IiwiU3VwZXJBZG1pblNob3dSZWZsZWN0aW9uQWN0aW9ucyIsInByb3BUeXBlcyIsIm1vZGVsIiwib2JqZWN0IiwibW9kZWxDbGFzcyIsImZ1bmMiLCJyZWZsZWN0aW9uTmFtZSIsInN0cmluZyIsInNldHVwIiwicCIsInJlZmxlY3Rpb24iLCJyZWZsZWN0aW9ucyIsImZpbmQiLCJuYW1lIiwiY2FuQ2FuIiwidXNlQ2FuQ2FuIiwicmVuZGVyIiwidHQiLCJtb2RlbENsYXNzTmFtZSIsIm1vZGVsRGF0YSIsImRhdGFQYXJhbU5hbWUiLCJpbmZsZWN0aW9uIiwic2luZ3VsYXJpemUiLCJyZWZsZWN0aW9uRGF0YSIsImNvbGxlY3Rpb25OYW1lIiwiZm9yZWlnbktleSIsImlkIiwibGlua1BhcmFtcyIsIm1vZGUiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjYW4iLCJMaW5rIiwiZGF0YVNldCIsImNsYXNzIiwidG8iLCJQYXJhbXMiLCJ3aXRoUGFyYW1zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N1cGVyLWFkbWluL3Nob3ctcmVmbGVjdGlvbi1hY3Rpb25zLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIFN1cGVyQWRtaW5TaG93UmVmbGVjdGlvbkFjdGlvbnMgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBtb2RlbENsYXNzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICByZWZsZWN0aW9uTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzLCByZWZsZWN0aW9uTmFtZX0gPSB0aGlzLnBcblxuICAgIHRoaXMucmVmbGVjdGlvbiA9IHVzZU1lbW8oKCkgPT4gbW9kZWxDbGFzcy5yZWZsZWN0aW9ucygpLmZpbmQoKHJlZmxlY3Rpb24pID0+IHJlZmxlY3Rpb24ubmFtZSgpID09IHJlZmxlY3Rpb25OYW1lKSwgW21vZGVsQ2xhc3MsIHJlZmxlY3Rpb25OYW1lXSlcbiAgICB0aGlzLmNhbkNhbiA9IHVzZUNhbkNhbigoKSA9PiBbW3RoaXMucmVmbGVjdGlvbi5tb2RlbENsYXNzKCksIFtcIm5ld1wiXV1dKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtjYW5DYW4sIHJlZmxlY3Rpb259ID0gdGhpcy50dFxuICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnBcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cocmVmbGVjdGlvbiwgXCJyZWZsZWN0aW9uRGF0YVwiLCBcImNsYXNzTmFtZVwiKVxuICAgIGNvbnN0IG1vZGVsRGF0YSA9IHt9XG4gICAgY29uc3QgZGF0YVBhcmFtTmFtZSA9IGluZmxlY3Rpb24uc2luZ3VsYXJpemUocmVmbGVjdGlvbi5yZWZsZWN0aW9uRGF0YS5jb2xsZWN0aW9uTmFtZSlcblxuICAgIG1vZGVsRGF0YVtyZWZsZWN0aW9uLmZvcmVpZ25LZXkoKV0gPSBtb2RlbD8uaWQoKVxuXG4gICAgY29uc3QgbGlua1BhcmFtcyA9IHtcbiAgICAgIG1vZGVsOiBtb2RlbENsYXNzTmFtZSxcbiAgICAgIG1vZGU6IFwibmV3XCJcbiAgICB9XG5cbiAgICBsaW5rUGFyYW1zW2RhdGFQYXJhbU5hbWVdID0gbW9kZWxEYXRhXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2NhbkNhbj8uY2FuKFwibmV3XCIsIHJlZmxlY3Rpb24ubW9kZWxDbGFzcygpKSAmJlxuICAgICAgICAgIDxMaW5rIGRhdGFTZXQ9e3tjbGFzczogXCJjcmVhdGUtbmV3LW1vZGVsLWxpbmtcIn19IHRvPXtQYXJhbXMud2l0aFBhcmFtcyhsaW5rUGFyYW1zKX0+XG4gICAgICAgICAgICBDcmVhdGUgbmV3XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICB9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsS0FBSyxJQUFHQyxPQUFPLFFBQU8sT0FBTztBQUNwQyxPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFFcEUsZUFBZUwsSUFBSSxDQUFDSyxjQUFjLENBQUMsTUFBTUMsK0JBQStCLFNBQVNSLGFBQWEsQ0FBQztFQUM3RixPQUFPUyxTQUFTLEdBQUdILGNBQWMsQ0FBQztJQUNoQ0ksS0FBSyxFQUFFTCxTQUFTLENBQUNNLE1BQU07SUFDdkJDLFVBQVUsRUFBRVAsU0FBUyxDQUFDUSxJQUFJO0lBQzFCQyxjQUFjLEVBQUVULFNBQVMsQ0FBQ1U7RUFDNUIsQ0FBQyxDQUFDO0VBRUZDLEtBQUtBLENBQUEsRUFBRztJQUNOLE1BQU07TUFBQ0osVUFBVTtNQUFFRTtJQUFjLENBQUMsR0FBRyxJQUFJLENBQUNHLENBQUM7SUFFM0MsSUFBSSxDQUFDQyxVQUFVLEdBQUdkLE9BQU8sQ0FBQyxNQUFNUSxVQUFVLENBQUNPLFdBQVcsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBRUYsVUFBVSxJQUFLQSxVQUFVLENBQUNHLElBQUksQ0FBQyxDQUFDLElBQUlQLGNBQWMsQ0FBQyxFQUFFLENBQUNGLFVBQVUsRUFBRUUsY0FBYyxDQUFDLENBQUM7SUFDakosSUFBSSxDQUFDUSxNQUFNLEdBQUdDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUNMLFVBQVUsQ0FBQ04sVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUMxRTtFQUVBWSxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUNGLE1BQU07TUFBRUo7SUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDTyxFQUFFO0lBQ3BDLE1BQU07TUFBQ2Y7SUFBSyxDQUFDLEdBQUcsSUFBSSxDQUFDTyxDQUFDO0lBQ3RCLE1BQU1TLGNBQWMsR0FBR3pCLElBQUksQ0FBQ2lCLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7SUFDdEUsTUFBTVMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQixNQUFNQyxhQUFhLEdBQUdDLFVBQVUsQ0FBQ0MsV0FBVyxDQUFDWixVQUFVLENBQUNhLGNBQWMsQ0FBQ0MsY0FBYyxDQUFDO0lBRXRGTCxTQUFTLENBQUNULFVBQVUsQ0FBQ2UsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHdkIsS0FBSyxFQUFFd0IsRUFBRSxDQUFDLENBQUM7SUFFaEQsTUFBTUMsVUFBVSxHQUFHO01BQ2pCekIsS0FBSyxFQUFFZ0IsY0FBYztNQUNyQlUsSUFBSSxFQUFFO0lBQ1IsQ0FBQztJQUVERCxVQUFVLENBQUNQLGFBQWEsQ0FBQyxHQUFHRCxTQUFTO0lBRXJDLG9CQUNFeEIsS0FBQSxDQUFBa0MsYUFBQSxDQUFBbEMsS0FBQSxDQUFBbUMsUUFBQSxRQUNHaEIsTUFBTSxFQUFFaUIsR0FBRyxDQUFDLEtBQUssRUFBRXJCLFVBQVUsQ0FBQ04sVUFBVSxDQUFDLENBQUMsQ0FBQyxpQkFDMUNULEtBQUEsQ0FBQWtDLGFBQUEsQ0FBQ0csSUFBSTtNQUFDQyxPQUFPLEVBQUU7UUFBQ0MsS0FBSyxFQUFFO01BQXVCLENBQUU7TUFBQ0MsRUFBRSxFQUFFQyxNQUFNLENBQUNDLFVBQVUsQ0FBQ1YsVUFBVTtJQUFFLEdBQUMsWUFFOUUsQ0FFUixDQUFDO0VBRVA7QUFDRixDQUFDLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsIm1lbW8iLCJSZWFjdCIsInVzZU1lbW8iLCJQcm9wVHlwZXMiLCJwcm9wVHlwZXNFeGFjdCIsInNoYXBlQ29tcG9uZW50IiwiU3VwZXJBZG1pblNob3dSZWZsZWN0aW9uQWN0aW9ucyIsInByb3BUeXBlcyIsIm1vZGVsIiwib2JqZWN0IiwibW9kZWxDbGFzcyIsImZ1bmMiLCJyZWZsZWN0aW9uTmFtZSIsInN0cmluZyIsInNldHVwIiwicCIsInJlZmxlY3Rpb24iLCJyZWZsZWN0aW9ucyIsImZpbmQiLCJuYW1lIiwiY2FuQ2FuIiwidXNlQ2FuQ2FuIiwicmVuZGVyIiwidHQiLCJtb2RlbENsYXNzTmFtZSIsIm1vZGVsRGF0YSIsImRhdGFQYXJhbU5hbWUiLCJpbmZsZWN0aW9uIiwic2luZ3VsYXJpemUiLCJyZWZsZWN0aW9uRGF0YSIsImNvbGxlY3Rpb25OYW1lIiwiZm9yZWlnbktleSIsImlkIiwibGlua1BhcmFtcyIsIm1vZGUiLCJkYXRhU2V0IiwiY2xhc3MiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjYW4iLCJMaW5rIiwidG8iLCJQYXJhbXMiLCJ3aXRoUGFyYW1zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N1cGVyLWFkbWluL3Nob3ctcmVmbGVjdGlvbi1hY3Rpb25zLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIFN1cGVyQWRtaW5TaG93UmVmbGVjdGlvbkFjdGlvbnMgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBtb2RlbENsYXNzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICByZWZsZWN0aW9uTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzLCByZWZsZWN0aW9uTmFtZX0gPSB0aGlzLnBcblxuICAgIHRoaXMucmVmbGVjdGlvbiA9IHVzZU1lbW8oKCkgPT4gbW9kZWxDbGFzcy5yZWZsZWN0aW9ucygpLmZpbmQoKHJlZmxlY3Rpb24pID0+IHJlZmxlY3Rpb24ubmFtZSgpID09IHJlZmxlY3Rpb25OYW1lKSwgW21vZGVsQ2xhc3MsIHJlZmxlY3Rpb25OYW1lXSlcbiAgICB0aGlzLmNhbkNhbiA9IHVzZUNhbkNhbigoKSA9PiBbW3RoaXMucmVmbGVjdGlvbi5tb2RlbENsYXNzKCksIFtcIm5ld1wiXV1dKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtjYW5DYW4sIHJlZmxlY3Rpb259ID0gdGhpcy50dFxuICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnBcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cocmVmbGVjdGlvbiwgXCJyZWZsZWN0aW9uRGF0YVwiLCBcImNsYXNzTmFtZVwiKVxuICAgIGNvbnN0IG1vZGVsRGF0YSA9IHt9XG4gICAgY29uc3QgZGF0YVBhcmFtTmFtZSA9IGluZmxlY3Rpb24uc2luZ3VsYXJpemUocmVmbGVjdGlvbi5yZWZsZWN0aW9uRGF0YS5jb2xsZWN0aW9uTmFtZSlcblxuICAgIG1vZGVsRGF0YVtyZWZsZWN0aW9uLmZvcmVpZ25LZXkoKV0gPSBtb2RlbD8uaWQoKVxuXG4gICAgY29uc3QgbGlua1BhcmFtcyA9IHtcbiAgICAgIG1vZGVsOiBtb2RlbENsYXNzTmFtZSxcbiAgICAgIG1vZGU6IFwibmV3XCJcbiAgICB9XG5cbiAgICBsaW5rUGFyYW1zW2RhdGFQYXJhbU5hbWVdID0gbW9kZWxEYXRhXG5cbiAgICBjb25zdCBkYXRhU2V0ID0gdXNlTWVtbygoKSA9PiAoe2NsYXNzOiBcImNyZWF0ZS1uZXctbW9kZWwtbGlua1wifSksIFtdKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtjYW5DYW4/LmNhbihcIm5ld1wiLCByZWZsZWN0aW9uLm1vZGVsQ2xhc3MoKSkgJiZcbiAgICAgICAgICA8TGluayBkYXRhU2V0PXtkYXRhU2V0fSB0bz17UGFyYW1zLndpdGhQYXJhbXMobGlua1BhcmFtcyl9PlxuICAgICAgICAgICAgQ3JlYXRlIG5ld1xuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsYUFBYSxNQUFNLG1CQUFtQjtBQUM3QyxTQUFRQyxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLE9BQU9DLEtBQUssSUFBR0MsT0FBTyxRQUFPLE9BQU87QUFDcEMsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBRXBFLGVBQWVMLElBQUksQ0FBQ0ssY0FBYyxDQUFDLE1BQU1DLCtCQUErQixTQUFTUixhQUFhLENBQUM7RUFDN0YsT0FBT1MsU0FBUyxHQUFHSCxjQUFjLENBQUM7SUFDaENJLEtBQUssRUFBRUwsU0FBUyxDQUFDTSxNQUFNO0lBQ3ZCQyxVQUFVLEVBQUVQLFNBQVMsQ0FBQ1EsSUFBSTtJQUMxQkMsY0FBYyxFQUFFVCxTQUFTLENBQUNVO0VBQzVCLENBQUMsQ0FBQztFQUVGQyxLQUFLQSxDQUFBLEVBQUc7SUFDTixNQUFNO01BQUNKLFVBQVU7TUFBRUU7SUFBYyxDQUFDLEdBQUcsSUFBSSxDQUFDRyxDQUFDO0lBRTNDLElBQUksQ0FBQ0MsVUFBVSxHQUFHZCxPQUFPLENBQUMsTUFBTVEsVUFBVSxDQUFDTyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUVGLFVBQVUsSUFBS0EsVUFBVSxDQUFDRyxJQUFJLENBQUMsQ0FBQyxJQUFJUCxjQUFjLENBQUMsRUFBRSxDQUFDRixVQUFVLEVBQUVFLGNBQWMsQ0FBQyxDQUFDO0lBQ2pKLElBQUksQ0FBQ1EsTUFBTSxHQUFHQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDTCxVQUFVLENBQUNOLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDMUU7RUFFQVksTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDRixNQUFNO01BQUVKO0lBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQ08sRUFBRTtJQUNwQyxNQUFNO01BQUNmO0lBQUssQ0FBQyxHQUFHLElBQUksQ0FBQ08sQ0FBQztJQUN0QixNQUFNUyxjQUFjLEdBQUd6QixJQUFJLENBQUNpQixVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQ3RFLE1BQU1TLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDcEIsTUFBTUMsYUFBYSxHQUFHQyxVQUFVLENBQUNDLFdBQVcsQ0FBQ1osVUFBVSxDQUFDYSxjQUFjLENBQUNDLGNBQWMsQ0FBQztJQUV0RkwsU0FBUyxDQUFDVCxVQUFVLENBQUNlLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBR3ZCLEtBQUssRUFBRXdCLEVBQUUsQ0FBQyxDQUFDO0lBRWhELE1BQU1DLFVBQVUsR0FBRztNQUNqQnpCLEtBQUssRUFBRWdCLGNBQWM7TUFDckJVLElBQUksRUFBRTtJQUNSLENBQUM7SUFFREQsVUFBVSxDQUFDUCxhQUFhLENBQUMsR0FBR0QsU0FBUztJQUVyQyxNQUFNVSxPQUFPLEdBQUdqQyxPQUFPLENBQUMsT0FBTztNQUFDa0MsS0FBSyxFQUFFO0lBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUVyRSxvQkFDRW5DLEtBQUEsQ0FBQW9DLGFBQUEsQ0FBQXBDLEtBQUEsQ0FBQXFDLFFBQUEsUUFDR2xCLE1BQU0sRUFBRW1CLEdBQUcsQ0FBQyxLQUFLLEVBQUV2QixVQUFVLENBQUNOLFVBQVUsQ0FBQyxDQUFDLENBQUMsaUJBQzFDVCxLQUFBLENBQUFvQyxhQUFBLENBQUNHLElBQUk7TUFBQ0wsT0FBTyxFQUFFQSxPQUFRO01BQUNNLEVBQUUsRUFBRUMsTUFBTSxDQUFDQyxVQUFVLENBQUNWLFVBQVU7SUFBRSxHQUFDLFlBRXJELENBRVIsQ0FBQztFQUVQO0FBQ0YsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -4,7 +4,7 @@ import PropTypes from "prop-types";
4
4
  import propTypesExact from "prop-types-exact";
5
5
  import memo from "set-state-compare/src/memo";
6
6
  import ModelClassTable from "./model-class-table";
7
- import React from "react";
7
+ import React, { useMemo } from "react";
8
8
  import { shapeComponent } from "set-state-compare/src/shape-component";
9
9
  import ShowNav from "./show-nav";
10
10
  import useQueryParams from "on-location-changed/build/use-query-params";
@@ -31,10 +31,11 @@ export default memo(shapeComponent(class ApiMakerSuperAdminShowReflectionPage ex
31
31
  const reflectionModelClass = reflection.modelClass();
32
32
  let collection;
33
33
  if (model) collection = model[reflection.name()]();
34
+ const dataSet = useMemo(() => ({
35
+ component: "super-admin--show-page"
36
+ }), []);
34
37
  return /*#__PURE__*/React.createElement(View, {
35
- dataSet: {
36
- component: "super-admin--show-page"
37
- }
38
+ dataSet: dataSet
38
39
  }, model && /*#__PURE__*/React.createElement(ShowNav, {
39
40
  model: model,
40
41
  modelClass: modelClass
@@ -45,4 +46,4 @@ export default memo(shapeComponent(class ApiMakerSuperAdminShowReflectionPage ex
45
46
  }));
46
47
  }
47
48
  }));
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwibWVtbyIsIk1vZGVsQ2xhc3NUYWJsZSIsIlJlYWN0Iiwic2hhcGVDb21wb25lbnQiLCJTaG93TmF2IiwidXNlUXVlcnlQYXJhbXMiLCJWaWV3IiwiQXBpTWFrZXJTdXBlckFkbWluU2hvd1JlZmxlY3Rpb25QYWdlIiwicHJvcFR5cGVzIiwibW9kZWxDbGFzcyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwibW9kZWxJZCIsInN0cmluZyIsInJlbmRlciIsInAiLCJxdWVyeVBhcmFtcyIsImNhbWVsaXplZExvd2VyIiwibW9kZWxDbGFzc0RhdGEiLCJ1c2VNb2RlbFJlc3VsdCIsInVzZU1vZGVsIiwibG9hZEJ5UXVlcnlQYXJhbSIsIm1vZGVsIiwicmVmbGVjdGlvbnMiLCJyZWZsZWN0aW9uIiwiZmluZCIsInJlZmxlY3Rpb25JIiwibmFtZSIsIm1vZGVsX3JlZmxlY3Rpb24iLCJyZWZsZWN0aW9uTW9kZWxDbGFzcyIsImNvbGxlY3Rpb24iLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNvbXBvbmVudCIsImtleSIsIm1vZGVsTmFtZSIsImh1bWFuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N1cGVyLWFkbWluL3Nob3ctcmVmbGVjdGlvbi1wYWdlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgTW9kZWxDbGFzc1RhYmxlIGZyb20gXCIuL21vZGVsLWNsYXNzLXRhYmxlXCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IFNob3dOYXYgZnJvbSBcIi4vc2hvdy1uYXZcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXNcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclN1cGVyQWRtaW5TaG93UmVmbGVjdGlvblBhZ2UgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBtb2RlbENsYXNzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG1vZGVsSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bW9kZWxDbGFzc30gPSB0aGlzLnBcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgICBjb25zdCBjYW1lbGl6ZWRMb3dlciA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcImNhbWVsaXplZExvd2VyXCIpXG4gICAgY29uc3QgdXNlTW9kZWxSZXN1bHQgPSB1c2VNb2RlbChtb2RlbENsYXNzLCB7bG9hZEJ5UXVlcnlQYXJhbTogKHtxdWVyeVBhcmFtc30pID0+IGRpZ2cocXVlcnlQYXJhbXMsIFwibW9kZWxfaWRcIil9KVxuICAgIGNvbnN0IG1vZGVsID0gZGlnZyh1c2VNb2RlbFJlc3VsdCwgY2FtZWxpemVkTG93ZXIpXG4gICAgY29uc3QgcmVmbGVjdGlvbnMgPSBtb2RlbENsYXNzLnJlZmxlY3Rpb25zKClcbiAgICBjb25zdCByZWZsZWN0aW9uID0gcmVmbGVjdGlvbnMuZmluZCgocmVmbGVjdGlvbkkpID0+IHJlZmxlY3Rpb25JLm5hbWUoKSA9PSBxdWVyeVBhcmFtcy5tb2RlbF9yZWZsZWN0aW9uKVxuICAgIGNvbnN0IHJlZmxlY3Rpb25Nb2RlbENsYXNzID0gcmVmbGVjdGlvbi5tb2RlbENsYXNzKClcbiAgICBsZXQgY29sbGVjdGlvblxuXG4gICAgaWYgKG1vZGVsKSBjb2xsZWN0aW9uID0gbW9kZWxbcmVmbGVjdGlvbi5uYW1lKCldKClcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y29tcG9uZW50OiBcInN1cGVyLWFkbWluLS1zaG93LXBhZ2VcIn19PlxuICAgICAgICB7bW9kZWwgJiZcbiAgICAgICAgICA8U2hvd05hdiBtb2RlbD17bW9kZWx9IG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9IC8+XG4gICAgICAgIH1cbiAgICAgICAge2NvbGxlY3Rpb24gJiZcbiAgICAgICAgICA8TW9kZWxDbGFzc1RhYmxlXG4gICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAga2V5PXtyZWZsZWN0aW9uTW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5odW1hbigpfVxuICAgICAgICAgICAgbW9kZWxDbGFzcz17cmVmbGVjdGlvbk1vZGVsQ2xhc3N9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxufSkpXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLE9BQU9DLGVBQWUsTUFBTSxxQkFBcUI7QUFDakQsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxPQUFPLE1BQU0sWUFBWTtBQUNoQyxPQUFPQyxjQUFjLE1BQU0sNENBQTRDO0FBQ3ZFLFNBQVFDLElBQUksUUFBTyxjQUFjO0FBRWpDLGVBQWVOLElBQUksQ0FBQ0csY0FBYyxDQUFDLE1BQU1JLG9DQUFvQyxTQUFTWCxhQUFhLENBQUM7RUFDbEcsT0FBT1ksU0FBUyxHQUFHVCxjQUFjLENBQUM7SUFDaENVLFVBQVUsRUFBRVgsU0FBUyxDQUFDWSxJQUFJLENBQUNDLFVBQVU7SUFDckNDLE9BQU8sRUFBRWQsU0FBUyxDQUFDZSxNQUFNLENBQUNGO0VBQzVCLENBQUMsQ0FBQztFQUVGRyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUNMO0lBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQ00sQ0FBQztJQUMzQixNQUFNQyxXQUFXLEdBQUdYLGNBQWMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU1ZLGNBQWMsR0FBR3BCLElBQUksQ0FBQ1ksVUFBVSxDQUFDUyxjQUFjLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQzFFLE1BQU1DLGNBQWMsR0FBR0MsUUFBUSxDQUFDWCxVQUFVLEVBQUU7TUFBQ1ksZ0JBQWdCLEVBQUVBLENBQUM7UUFBQ0w7TUFBVyxDQUFDLEtBQUtuQixJQUFJLENBQUNtQixXQUFXLEVBQUUsVUFBVTtJQUFDLENBQUMsQ0FBQztJQUNqSCxNQUFNTSxLQUFLLEdBQUd6QixJQUFJLENBQUNzQixjQUFjLEVBQUVGLGNBQWMsQ0FBQztJQUNsRCxNQUFNTSxXQUFXLEdBQUdkLFVBQVUsQ0FBQ2MsV0FBVyxDQUFDLENBQUM7SUFDNUMsTUFBTUMsVUFBVSxHQUFHRCxXQUFXLENBQUNFLElBQUksQ0FBRUMsV0FBVyxJQUFLQSxXQUFXLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUlYLFdBQVcsQ0FBQ1ksZ0JBQWdCLENBQUM7SUFDeEcsTUFBTUMsb0JBQW9CLEdBQUdMLFVBQVUsQ0FBQ2YsVUFBVSxDQUFDLENBQUM7SUFDcEQsSUFBSXFCLFVBQVU7SUFFZCxJQUFJUixLQUFLLEVBQUVRLFVBQVUsR0FBR1IsS0FBSyxDQUFDRSxVQUFVLENBQUNHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWxELG9CQUNFekIsS0FBQSxDQUFBNkIsYUFBQSxDQUFDekIsSUFBSTtNQUFDMEIsT0FBTyxFQUFFO1FBQUNDLFNBQVMsRUFBRTtNQUF3QjtJQUFFLEdBQ2xEWCxLQUFLLGlCQUNKcEIsS0FBQSxDQUFBNkIsYUFBQSxDQUFDM0IsT0FBTztNQUFDa0IsS0FBSyxFQUFFQSxLQUFNO01BQUNiLFVBQVUsRUFBRUE7SUFBVyxDQUFFLENBQUMsRUFFbERxQixVQUFVLGlCQUNUNUIsS0FBQSxDQUFBNkIsYUFBQSxDQUFDOUIsZUFBZTtNQUNkNkIsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCSSxHQUFHLEVBQUVMLG9CQUFvQixDQUFDTSxTQUFTLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBRTtNQUM5QzNCLFVBQVUsRUFBRW9CO0lBQXFCLENBQ2xDLENBRUMsQ0FBQztFQUVYO0FBQ0YsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
49
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwibWVtbyIsIk1vZGVsQ2xhc3NUYWJsZSIsIlJlYWN0IiwidXNlTWVtbyIsInNoYXBlQ29tcG9uZW50IiwiU2hvd05hdiIsInVzZVF1ZXJ5UGFyYW1zIiwiVmlldyIsIkFwaU1ha2VyU3VwZXJBZG1pblNob3dSZWZsZWN0aW9uUGFnZSIsInByb3BUeXBlcyIsIm1vZGVsQ2xhc3MiLCJmdW5jIiwiaXNSZXF1aXJlZCIsIm1vZGVsSWQiLCJzdHJpbmciLCJyZW5kZXIiLCJwIiwicXVlcnlQYXJhbXMiLCJjYW1lbGl6ZWRMb3dlciIsIm1vZGVsQ2xhc3NEYXRhIiwidXNlTW9kZWxSZXN1bHQiLCJ1c2VNb2RlbCIsImxvYWRCeVF1ZXJ5UGFyYW0iLCJtb2RlbCIsInJlZmxlY3Rpb25zIiwicmVmbGVjdGlvbiIsImZpbmQiLCJyZWZsZWN0aW9uSSIsIm5hbWUiLCJtb2RlbF9yZWZsZWN0aW9uIiwicmVmbGVjdGlvbk1vZGVsQ2xhc3MiLCJjb2xsZWN0aW9uIiwiZGF0YVNldCIsImNvbXBvbmVudCIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJtb2RlbE5hbWUiLCJodW1hbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBlci1hZG1pbi9zaG93LXJlZmxlY3Rpb24tcGFnZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IE1vZGVsQ2xhc3NUYWJsZSBmcm9tIFwiLi9tb2RlbC1jbGFzcy10YWJsZVwiXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IFNob3dOYXYgZnJvbSBcIi4vc2hvdy1uYXZcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXNcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclN1cGVyQWRtaW5TaG93UmVmbGVjdGlvblBhZ2UgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBtb2RlbENsYXNzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG1vZGVsSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bW9kZWxDbGFzc30gPSB0aGlzLnBcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgICBjb25zdCBjYW1lbGl6ZWRMb3dlciA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcImNhbWVsaXplZExvd2VyXCIpXG4gICAgY29uc3QgdXNlTW9kZWxSZXN1bHQgPSB1c2VNb2RlbChtb2RlbENsYXNzLCB7bG9hZEJ5UXVlcnlQYXJhbTogKHtxdWVyeVBhcmFtc30pID0+IGRpZ2cocXVlcnlQYXJhbXMsIFwibW9kZWxfaWRcIil9KVxuICAgIGNvbnN0IG1vZGVsID0gZGlnZyh1c2VNb2RlbFJlc3VsdCwgY2FtZWxpemVkTG93ZXIpXG4gICAgY29uc3QgcmVmbGVjdGlvbnMgPSBtb2RlbENsYXNzLnJlZmxlY3Rpb25zKClcbiAgICBjb25zdCByZWZsZWN0aW9uID0gcmVmbGVjdGlvbnMuZmluZCgocmVmbGVjdGlvbkkpID0+IHJlZmxlY3Rpb25JLm5hbWUoKSA9PSBxdWVyeVBhcmFtcy5tb2RlbF9yZWZsZWN0aW9uKVxuICAgIGNvbnN0IHJlZmxlY3Rpb25Nb2RlbENsYXNzID0gcmVmbGVjdGlvbi5tb2RlbENsYXNzKClcbiAgICBsZXQgY29sbGVjdGlvblxuXG4gICAgaWYgKG1vZGVsKSBjb2xsZWN0aW9uID0gbW9kZWxbcmVmbGVjdGlvbi5uYW1lKCldKClcblxuICAgIGNvbnN0IGRhdGFTZXQgPSB1c2VNZW1vKCgpID0+ICh7Y29tcG9uZW50OiBcInN1cGVyLWFkbWluLS1zaG93LXBhZ2VcIn0pLCBbXSlcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXtkYXRhU2V0fT5cbiAgICAgICAge21vZGVsICYmXG4gICAgICAgICAgPFNob3dOYXYgbW9kZWw9e21vZGVsfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSAvPlxuICAgICAgICB9XG4gICAgICAgIHtjb2xsZWN0aW9uICYmXG4gICAgICAgICAgPE1vZGVsQ2xhc3NUYWJsZVxuICAgICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICAgIGtleT17cmVmbGVjdGlvbk1vZGVsQ2xhc3MubW9kZWxOYW1lKCkuaHVtYW4oKX1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e3JlZmxlY3Rpb25Nb2RlbENsYXNzfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxl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
@@ -7,16 +7,13 @@ import LoadSearchModal from "./load-search-modal";
7
7
  import SaveSearchModal from "./save-search-modal";
8
8
  import Params from "../../params";
9
9
  import PropTypes from "prop-types";
10
- import * as models from "models";
10
+ import { TableSearch } from "models";
11
11
  import memo from "set-state-compare/src/memo";
12
12
  import { shapeComponent } from "set-state-compare/src/shape-component";
13
13
  import React from "react";
14
14
  import useI18n from "i18n-on-steroids/src/use-i18n";
15
15
  import useQueryParams from "on-location-changed/build/use-query-params";
16
16
  import { View } from "react-native";
17
- const {
18
- TableSearch
19
- } = models;
20
17
  export default memo(shapeComponent(class ApiMakerTableFilters extends BaseComponent {
21
18
  static propTypes = {
22
19
  currentUser: PropTypes.object,
@@ -181,4 +178,4 @@ export default memo(shapeComponent(class ApiMakerTableFilters extends BaseCompon
181
178
  };
182
179
  hasAnyFilters = () => Object.keys(this.currentFilters()).length > 0;
183
180
  }));
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsImRpZ3MiLCJGaWx0ZXIiLCJGaWx0ZXJGb3JtIiwiTG9hZFNlYXJjaE1vZGFsIiwiU2F2ZVNlYXJjaE1vZGFsIiwiUGFyYW1zIiwiUHJvcFR5cGVzIiwibW9kZWxzIiwibWVtbyIsInNoYXBlQ29tcG9uZW50IiwiUmVhY3QiLCJ1c2VJMThuIiwidXNlUXVlcnlQYXJhbXMiLCJWaWV3IiwiVGFibGVTZWFyY2giLCJBcGlNYWtlclRhYmxlRmlsdGVycyIsInByb3BUeXBlcyIsImN1cnJlbnRVc2VyIiwib2JqZWN0IiwibW9kZWxDbGFzcyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwicXVlcnlOYW1lIiwic3RyaW5nIiwicXVlcnlTTmFtZSIsInNldHVwIiwidCIsIm5hbWVzcGFjZSIsInF1ZXJ5UGFyYW1zIiwidXNlU3RhdGVzIiwiZmlsdGVyIiwidW5kZWZpbmVkIiwic2hvd0xvYWRTZWFyY2hNb2RhbCIsInNob3dTYXZlU2VhcmNoTW9kYWwiLCJyZW5kZXIiLCJwcm9wcyIsInN0YXRlIiwiY3VycmVudEZpbHRlcnMiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNsYXNzIiwic3R5bGUiLCJhbGlnbkl0ZW1zIiwia2V5IiwiZmlsdGVySW5kZXgiLCJvbkFwcGx5Q2xpY2tlZCIsInF1ZXJ5U2VhcmNoTmFtZSIsIm9uRWRpdFNlYXJjaFByZXNzZWQiLCJvblJlcXVlc3RDbG9zZSIsInNlYXJjaCIsIm1hcCIsImZpbHRlckRhdGEiLCJfZXh0ZW5kcyIsIm9uQ2xpY2siLCJ0dCIsIm9uRmlsdGVyQ2xpY2tlZCIsIm9uUmVtb3ZlQ2xpY2tlZCIsImNsYXNzTmFtZSIsImZsZXhEaXJlY3Rpb24iLCJtYXJnaW5Ub3AiLCJvbkFkZEZpbHRlckNsaWNrZWQiLCJkZWZhdWx0VmFsdWUiLCJGcmFnbWVudCIsIm9uU2F2ZVNlYXJjaENsaWNrZWQiLCJtYXJnaW5MZWZ0Iiwib25Mb2FkU2VhcmNoQ2xpY2tlZCIsImN1cnJlbnRGaWx0ZXIiLCJKU09OIiwicGFyc2UiLCJlIiwicHJldmVudERlZmF1bHQiLCJuZXdGaWx0ZXJJbmRleCIsImxlbmd0aCIsInNldFN0YXRlIiwib25SZXF1ZXN0Q2xvc2VMb2FkU2VhcmNoTW9kYWwiLCJzZWFyY2hQYXJhbXMiLCJuZXdQYXJhbXMiLCJjaGFuZ2VQYXJhbXMiLCJvblJlcXVlc3RDbG9zZVNhdmVTZWFyY2hNb2RhbCIsImhhc0FueUZpbHRlcnMiLCJGbGFzaE1lc3NhZ2UiLCJhbGVydCIsIk9iamVjdCIsImtleXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvZmlsdGVycy9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7ZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRmlsdGVyIGZyb20gXCIuL2ZpbHRlclwiXG5pbXBvcnQgRmlsdGVyRm9ybSBmcm9tIFwiLi9maWx0ZXItZm9ybVwiXG5pbXBvcnQgTG9hZFNlYXJjaE1vZGFsIGZyb20gXCIuL2xvYWQtc2VhcmNoLW1vZGFsXCJcbmltcG9ydCBTYXZlU2VhcmNoTW9kYWwgZnJvbSBcIi4vc2F2ZS1zZWFyY2gtbW9kYWxcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vLi4vcGFyYW1zXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gXCJtb2RlbHNcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZUkxOG4gZnJvbSBcImkxOG4tb24tc3Rlcm9pZHMvc3JjL3VzZS1pMThuXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zXCJcbmltcG9ydCB7Vmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmNvbnN0IHtUYWJsZVNlYXJjaH0gPSBtb2RlbHNcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclRhYmxlRmlsdGVycyBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGN1cnJlbnRVc2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcXVlcnlOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgcXVlcnlTTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH1cblxuICBzZXR1cCgpIHtcbiAgICBjb25zdCB7dH0gPSB1c2VJMThuKHtuYW1lc3BhY2U6IFwianMuYXBpX21ha2VyLnRhYmxlLmZpbHRlcnNcIn0pXG5cbiAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuICAgIHRoaXMudCA9IHRcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBmaWx0ZXI6IHVuZGVmaW5lZCxcbiAgICAgIHNob3dMb2FkU2VhcmNoTW9kYWw6IHVuZGVmaW5lZCxcbiAgICAgIHNob3dTYXZlU2VhcmNoTW9kYWw6IGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bW9kZWxDbGFzcywgcXVlcnlTTmFtZX0gPSBkaWdzKHRoaXMucHJvcHMsIFwibW9kZWxDbGFzc1wiLCBcInF1ZXJ5U05hbWVcIilcbiAgICBjb25zdCB7Y3VycmVudFVzZXJ9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtmaWx0ZXIsIHNob3dMb2FkU2VhcmNoTW9kYWwsIHNob3dTYXZlU2VhcmNoTW9kYWx9ID0gZGlncyh0aGlzLnN0YXRlLCBcImZpbHRlclwiLCBcInNob3dMb2FkU2VhcmNoTW9kYWxcIiwgXCJzaG93U2F2ZVNlYXJjaE1vZGFsXCIpXG4gICAgY29uc3QgY3VycmVudEZpbHRlcnMgPSB0aGlzLmN1cnJlbnRGaWx0ZXJzKClcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y2xhc3M6IFwiYXBpLW1ha2VyLS10YWJsZS0tZmlsdGVyc1wifX0gc3R5bGU9e3thbGlnbkl0ZW1zOiBcImZsZXgtc3RhcnRcIn19PlxuICAgICAgICB7ZmlsdGVyICYmXG4gICAgICAgICAgPEZpbHRlckZvcm1cbiAgICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgICAga2V5PXtgZmlsdGVyLSR7ZmlsdGVyLmZpbHRlckluZGV4fWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgICAgb25BcHBseUNsaWNrZWQ9e2RpZ2codGhpcywgXCJvbkFwcGx5Q2xpY2tlZFwiKX1cbiAgICAgICAgICAgIHF1ZXJ5U2VhcmNoTmFtZT17cXVlcnlTTmFtZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtzaG93TG9hZFNlYXJjaE1vZGFsICYmXG4gICAgICAgICAgPExvYWRTZWFyY2hNb2RhbFxuICAgICAgICAgICAgY3VycmVudFVzZXI9e2N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgbW9kZWxDbGFzcz17bW9kZWxDbGFzc31cbiAgICAgICAgICAgIG9uRWRpdFNlYXJjaFByZXNzZWQ9e2RpZ2codGhpcywgXCJvbkVkaXRTZWFyY2hQcmVzc2VkXCIpfVxuICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U9e2RpZ2codGhpcywgXCJvblJlcXVlc3RDbG9zZUxvYWRTZWFyY2hNb2RhbFwiKX1cbiAgICAgICAgICAgIHF1ZXJ5U2VhcmNoTmFtZT17cXVlcnlTTmFtZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtzaG93U2F2ZVNlYXJjaE1vZGFsICYmXG4gICAgICAgICAgPFNhdmVTZWFyY2hNb2RhbFxuICAgICAgICAgICAgY3VycmVudEZpbHRlcnM9e2RpZ2codGhpcywgXCJjdXJyZW50RmlsdGVyc1wiKX1cbiAgICAgICAgICAgIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn1cbiAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXtkaWdnKHRoaXMsIFwib25SZXF1ZXN0Q2xvc2VTYXZlU2VhcmNoTW9kYWxcIil9XG4gICAgICAgICAgICBzZWFyY2g9e3Nob3dTYXZlU2VhcmNoTW9kYWx9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7Y3VycmVudEZpbHRlcnM/Lm1hcCgoZmlsdGVyRGF0YSwgZmlsdGVySW5kZXgpID0+XG4gICAgICAgICAgPEZpbHRlclxuICAgICAgICAgICAga2V5PXtmaWx0ZXJJbmRleH1cbiAgICAgICAgICAgIGZpbHRlckluZGV4PXtmaWx0ZXJJbmRleH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMudHQub25GaWx0ZXJDbGlja2VkfVxuICAgICAgICAgICAgb25SZW1vdmVDbGlja2VkPXt0aGlzLnR0Lm9uUmVtb3ZlQ2xpY2tlZH1cbiAgICAgICAgICAgIHsuLi5maWx0ZXJEYXRhfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxWaWV3IGNsYXNzTmFtZT1cImZpbHRlci1hY3Rpb25zXCIgc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBtYXJnaW5Ub3A6IDEwfX0+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhZGQtbmV3LWZpbHRlci1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uQWRkRmlsdGVyQ2xpY2tlZH0+XG4gICAgICAgICAgICB7dGhpcy50KFwiLmFkZF9uZXdfZmlsdGVyXCIsIHtkZWZhdWx0VmFsdWU6IFwiQWRkIG5ldyBmaWx0ZXJcIn0pfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIHtjdXJyZW50VXNlciAmJlxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJzYXZlLXNlYXJjaC1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uU2F2ZVNlYXJjaENsaWNrZWR9IHN0eWxlPXt7bWFyZ2luTGVmdDogMTB9fT5cbiAgICAgICAgICAgICAgICB7dGhpcy50KFwiLnNhdmVfc2VhcmNoXCIsIHtkZWZhdWx0VmFsdWU6IFwiU2F2ZSBzZWFyY2hcIn0pfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJsb2FkLXNlYXJjaC1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uTG9hZFNlYXJjaENsaWNrZWR9IHN0eWxlPXt7bWFyZ2luTGVmdDogMTB9fT5cbiAgICAgICAgICAgICAgICB7dGhpcy50KFwiLmxvYWRfc2VhcmNoXCIsIHtkZWZhdWx0VmFsdWU6IFwiTG9hZCBzZWFyY2hcIn0pfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIGN1cnJlbnRGaWx0ZXJzID0gKCkgPT4ge1xuICAgIGNvbnN0IHtxdWVyeVNOYW1lfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJxdWVyeVNOYW1lXCIpXG4gICAgY29uc3QgY3VycmVudEZpbHRlcnMgPSB0aGlzLnF1ZXJ5UGFyYW1zW3F1ZXJ5U05hbWVdIHx8IFtdXG5cbiAgICByZXR1cm4gY3VycmVudEZpbHRlcnMubWFwKChjdXJyZW50RmlsdGVyKSA9PiBKU09OLnBhcnNlKGN1cnJlbnRGaWx0ZXIpKVxuICB9XG5cbiAgb25BZGRGaWx0ZXJDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGNvbnN0IG5ld0ZpbHRlckluZGV4ID0gdGhpcy5jdXJyZW50RmlsdGVycygpLmxlbmd0aFxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgZmlsdGVySW5kZXg6IG5ld0ZpbHRlckluZGV4XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uQXBwbHlDbGlja2VkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7ZmlsdGVyOiB1bmRlZmluZWR9KVxuXG4gIG9uRWRpdFNlYXJjaFByZXNzZWQgPSAoe3NlYXJjaH0pID0+IHtcbiAgICB0aGlzLm9uUmVxdWVzdENsb3NlTG9hZFNlYXJjaE1vZGFsKClcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNob3dTYXZlU2VhcmNoTW9kYWw6IHNlYXJjaFxuICAgIH0pXG4gIH1cblxuICBvbkZpbHRlckNsaWNrZWQgPSAoZmlsdGVyKSA9PiB0aGlzLnNldFN0YXRlKHtmaWx0ZXJ9KVxuXG4gIG9uTG9hZFNlYXJjaENsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzaG93TG9hZFNlYXJjaE1vZGFsOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVtb3ZlQ2xpY2tlZCA9ICh7ZmlsdGVySW5kZXh9KSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5U05hbWV9ID0gZGlncyh0aGlzLnByb3BzLCBcInF1ZXJ5U05hbWVcIilcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBQYXJhbXMucGFyc2UoKVtxdWVyeVNOYW1lXSB8fCB7fVxuXG4gICAgZGVsZXRlIHNlYXJjaFBhcmFtc1tmaWx0ZXJJbmRleF1cblxuICAgIGNvbnN0IG5ld1BhcmFtcyA9IHt9XG5cbiAgICBuZXdQYXJhbXNbcXVlcnlTTmFtZV0gPSBzZWFyY2hQYXJhbXNcblxuICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMobmV3UGFyYW1zKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBmaWx0ZXI6IHVuZGVmaW5lZFxuICAgIH0pXG4gIH1cblxuICBvblJlcXVlc3RDbG9zZUxvYWRTZWFyY2hNb2RhbCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe3Nob3dMb2FkU2VhcmNoTW9kYWw6IGZhbHNlfSlcbiAgb25SZXF1ZXN0Q2xvc2VTYXZlU2VhcmNoTW9kYWwgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzaG93U2F2ZVNlYXJjaE1vZGFsOiB1bmRlZmluZWR9KVxuXG4gIG9uU2F2ZVNlYXJjaENsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgaWYgKHRoaXMuaGFzQW55RmlsdGVycygpKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93U2F2ZVNlYXJjaE1vZGFsOiBuZXcgVGFibGVTZWFyY2goKX0pXG4gICAgfSBlbHNlIHtcbiAgICAgIEZsYXNoTWVzc2FnZS5hbGVydCh0aGlzLnQoXCIubm9fZmlsdGVyc19oYXNfYmVlbl9zZXRcIiwge2RlZmF1bHRWYWx1ZTogXCJObyBmaWx0ZXJzIGhhcyBiZWVuIHNldFwifSkpXG4gICAgfVxuICB9XG5cbiAgaGFzQW55RmlsdGVycyA9ICgpID0+IE9iamVjdC5rZXlzKHRoaXMuY3VycmVudEZpbHRlcnMoKSkubGVuZ3RoID4gMFxufSkpXG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELFNBQVFDLElBQUksRUFBRUMsSUFBSSxRQUFPLFdBQVc7QUFDcEMsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsT0FBT0MsVUFBVSxNQUFNLGVBQWU7QUFDdEMsT0FBT0MsZUFBZSxNQUFNLHFCQUFxQjtBQUNqRCxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU8sS0FBS0MsTUFBTSxNQUFNLFFBQVE7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBQ3BFLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9B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
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsImRpZ3MiLCJGaWx0ZXIiLCJGaWx0ZXJGb3JtIiwiTG9hZFNlYXJjaE1vZGFsIiwiU2F2ZVNlYXJjaE1vZGFsIiwiUGFyYW1zIiwiUHJvcFR5cGVzIiwiVGFibGVTZWFyY2giLCJtZW1vIiwic2hhcGVDb21wb25lbnQiLCJSZWFjdCIsInVzZUkxOG4iLCJ1c2VRdWVyeVBhcmFtcyIsIlZpZXciLCJBcGlNYWtlclRhYmxlRmlsdGVycyIsInByb3BUeXBlcyIsImN1cnJlbnRVc2VyIiwib2JqZWN0IiwibW9kZWxDbGFzcyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwicXVlcnlOYW1lIiwic3RyaW5nIiwicXVlcnlTTmFtZSIsInNldHVwIiwidCIsIm5hbWVzcGFjZSIsInF1ZXJ5UGFyYW1zIiwidXNlU3RhdGVzIiwiZmlsdGVyIiwidW5kZWZpbmVkIiwic2hvd0xvYWRTZWFyY2hNb2RhbCIsInNob3dTYXZlU2VhcmNoTW9kYWwiLCJyZW5kZXIiLCJwcm9wcyIsInN0YXRlIiwiY3VycmVudEZpbHRlcnMiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNsYXNzIiwic3R5bGUiLCJhbGlnbkl0ZW1zIiwia2V5IiwiZmlsdGVySW5kZXgiLCJvbkFwcGx5Q2xpY2tlZCIsInF1ZXJ5U2VhcmNoTmFtZSIsIm9uRWRpdFNlYXJjaFByZXNzZWQiLCJvblJlcXVlc3RDbG9zZSIsInNlYXJjaCIsIm1hcCIsImZpbHRlckRhdGEiLCJfZXh0ZW5kcyIsIm9uQ2xpY2siLCJ0dCIsIm9uRmlsdGVyQ2xpY2tlZCIsIm9uUmVtb3ZlQ2xpY2tlZCIsImNsYXNzTmFtZSIsImZsZXhEaXJlY3Rpb24iLCJtYXJnaW5Ub3AiLCJvbkFkZEZpbHRlckNsaWNrZWQiLCJkZWZhdWx0VmFsdWUiLCJGcmFnbWVudCIsIm9uU2F2ZVNlYXJjaENsaWNrZWQiLCJtYXJnaW5MZWZ0Iiwib25Mb2FkU2VhcmNoQ2xpY2tlZCIsImN1cnJlbnRGaWx0ZXIiLCJKU09OIiwicGFyc2UiLCJlIiwicHJldmVudERlZmF1bHQiLCJuZXdGaWx0ZXJJbmRleCIsImxlbmd0aCIsInNldFN0YXRlIiwib25SZXF1ZXN0Q2xvc2VMb2FkU2VhcmNoTW9kYWwiLCJzZWFyY2hQYXJhbXMiLCJuZXdQYXJhbXMiLCJjaGFuZ2VQYXJhbXMiLCJvblJlcXVlc3RDbG9zZVNhdmVTZWFyY2hNb2RhbCIsImhhc0FueUZpbHRlcnMiLCJGbGFzaE1lc3NhZ2UiLCJhbGVydCIsIk9iamVjdCIsImtleXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvZmlsdGVycy9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7ZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRmlsdGVyIGZyb20gXCIuL2ZpbHRlclwiXG5pbXBvcnQgRmlsdGVyRm9ybSBmcm9tIFwiLi9maWx0ZXItZm9ybVwiXG5pbXBvcnQgTG9hZFNlYXJjaE1vZGFsIGZyb20gXCIuL2xvYWQtc2VhcmNoLW1vZGFsXCJcbmltcG9ydCBTYXZlU2VhcmNoTW9kYWwgZnJvbSBcIi4vc2F2ZS1zZWFyY2gtbW9kYWxcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vLi4vcGFyYW1zXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHtUYWJsZVNlYXJjaH0gZnJvbSBcIm1vZGVsc1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlSTE4biBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkcy9zcmMvdXNlLWkxOG5cIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXNcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclRhYmxlRmlsdGVycyBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGN1cnJlbnRVc2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcXVlcnlOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgcXVlcnlTTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH1cblxuICBzZXR1cCgpIHtcbiAgICBjb25zdCB7dH0gPSB1c2VJMThuKHtuYW1lc3BhY2U6IFwianMuYXBpX21ha2VyLnRhYmxlLmZpbHRlcnNcIn0pXG5cbiAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuICAgIHRoaXMudCA9IHRcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBmaWx0ZXI6IHVuZGVmaW5lZCxcbiAgICAgIHNob3dMb2FkU2VhcmNoTW9kYWw6IHVuZGVmaW5lZCxcbiAgICAgIHNob3dTYXZlU2VhcmNoTW9kYWw6IGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bW9kZWxDbGFzcywgcXVlcnlTTmFtZX0gPSBkaWdzKHRoaXMucHJvcHMsIFwibW9kZWxDbGFzc1wiLCBcInF1ZXJ5U05hbWVcIilcbiAgICBjb25zdCB7Y3VycmVudFVzZXJ9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtmaWx0ZXIsIHNob3dMb2FkU2VhcmNoTW9kYWwsIHNob3dTYXZlU2VhcmNoTW9kYWx9ID0gZGlncyh0aGlzLnN0YXRlLCBcImZpbHRlclwiLCBcInNob3dMb2FkU2VhcmNoTW9kYWxcIiwgXCJzaG93U2F2ZVNlYXJjaE1vZGFsXCIpXG4gICAgY29uc3QgY3VycmVudEZpbHRlcnMgPSB0aGlzLmN1cnJlbnRGaWx0ZXJzKClcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y2xhc3M6IFwiYXBpLW1ha2VyLS10YWJsZS0tZmlsdGVyc1wifX0gc3R5bGU9e3thbGlnbkl0ZW1zOiBcImZsZXgtc3RhcnRcIn19PlxuICAgICAgICB7ZmlsdGVyICYmXG4gICAgICAgICAgPEZpbHRlckZvcm1cbiAgICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgICAga2V5PXtgZmlsdGVyLSR7ZmlsdGVyLmZpbHRlckluZGV4fWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgICAgb25BcHBseUNsaWNrZWQ9e2RpZ2codGhpcywgXCJvbkFwcGx5Q2xpY2tlZFwiKX1cbiAgICAgICAgICAgIHF1ZXJ5U2VhcmNoTmFtZT17cXVlcnlTTmFtZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtzaG93TG9hZFNlYXJjaE1vZGFsICYmXG4gICAgICAgICAgPExvYWRTZWFyY2hNb2RhbFxuICAgICAgICAgICAgY3VycmVudFVzZXI9e2N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgbW9kZWxDbGFzcz17bW9kZWxDbGFzc31cbiAgICAgICAgICAgIG9uRWRpdFNlYXJjaFByZXNzZWQ9e2RpZ2codGhpcywgXCJvbkVkaXRTZWFyY2hQcmVzc2VkXCIpfVxuICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U9e2RpZ2codGhpcywgXCJvblJlcXVlc3RDbG9zZUxvYWRTZWFyY2hNb2RhbFwiKX1cbiAgICAgICAgICAgIHF1ZXJ5U2VhcmNoTmFtZT17cXVlcnlTTmFtZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtzaG93U2F2ZVNlYXJjaE1vZGFsICYmXG4gICAgICAgICAgPFNhdmVTZWFyY2hNb2RhbFxuICAgICAgICAgICAgY3VycmVudEZpbHRlcnM9e2RpZ2codGhpcywgXCJjdXJyZW50RmlsdGVyc1wiKX1cbiAgICAgICAgICAgIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn1cbiAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXtkaWdnKHRoaXMsIFwib25SZXF1ZXN0Q2xvc2VTYXZlU2VhcmNoTW9kYWxcIil9XG4gICAgICAgICAgICBzZWFyY2g9e3Nob3dTYXZlU2VhcmNoTW9kYWx9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7Y3VycmVudEZpbHRlcnM/Lm1hcCgoZmlsdGVyRGF0YSwgZmlsdGVySW5kZXgpID0+XG4gICAgICAgICAgPEZpbHRlclxuICAgICAgICAgICAga2V5PXtmaWx0ZXJJbmRleH1cbiAgICAgICAgICAgIGZpbHRlckluZGV4PXtmaWx0ZXJJbmRleH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMudHQub25GaWx0ZXJDbGlja2VkfVxuICAgICAgICAgICAgb25SZW1vdmVDbGlja2VkPXt0aGlzLnR0Lm9uUmVtb3ZlQ2xpY2tlZH1cbiAgICAgICAgICAgIHsuLi5maWx0ZXJEYXRhfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxWaWV3IGNsYXNzTmFtZT1cImZpbHRlci1hY3Rpb25zXCIgc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBtYXJnaW5Ub3A6IDEwfX0+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhZGQtbmV3LWZpbHRlci1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uQWRkRmlsdGVyQ2xpY2tlZH0+XG4gICAgICAgICAgICB7dGhpcy50KFwiLmFkZF9uZXdfZmlsdGVyXCIsIHtkZWZhdWx0VmFsdWU6IFwiQWRkIG5ldyBmaWx0ZXJcIn0pfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIHtjdXJyZW50VXNlciAmJlxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJzYXZlLXNlYXJjaC1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uU2F2ZVNlYXJjaENsaWNrZWR9IHN0eWxlPXt7bWFyZ2luTGVmdDogMTB9fT5cbiAgICAgICAgICAgICAgICB7dGhpcy50KFwiLnNhdmVfc2VhcmNoXCIsIHtkZWZhdWx0VmFsdWU6IFwiU2F2ZSBzZWFyY2hcIn0pfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJsb2FkLXNlYXJjaC1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uTG9hZFNlYXJjaENsaWNrZWR9IHN0eWxlPXt7bWFyZ2luTGVmdDogMTB9fT5cbiAgICAgICAgICAgICAgICB7dGhpcy50KFwiLmxvYWRfc2VhcmNoXCIsIHtkZWZhdWx0VmFsdWU6IFwiTG9hZCBzZWFyY2hcIn0pfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIGN1cnJlbnRGaWx0ZXJzID0gKCkgPT4ge1xuICAgIGNvbnN0IHtxdWVyeVNOYW1lfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJxdWVyeVNOYW1lXCIpXG4gICAgY29uc3QgY3VycmVudEZpbHRlcnMgPSB0aGlzLnF1ZXJ5UGFyYW1zW3F1ZXJ5U05hbWVdIHx8IFtdXG5cbiAgICByZXR1cm4gY3VycmVudEZpbHRlcnMubWFwKChjdXJyZW50RmlsdGVyKSA9PiBKU09OLnBhcnNlKGN1cnJlbnRGaWx0ZXIpKVxuICB9XG5cbiAgb25BZGRGaWx0ZXJDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGNvbnN0IG5ld0ZpbHRlckluZGV4ID0gdGhpcy5jdXJyZW50RmlsdGVycygpLmxlbmd0aFxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgZmlsdGVySW5kZXg6IG5ld0ZpbHRlckluZGV4XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uQXBwbHlDbGlja2VkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7ZmlsdGVyOiB1bmRlZmluZWR9KVxuXG4gIG9uRWRpdFNlYXJjaFByZXNzZWQgPSAoe3NlYXJjaH0pID0+IHtcbiAgICB0aGlzLm9uUmVxdWVzdENsb3NlTG9hZFNlYXJjaE1vZGFsKClcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNob3dTYXZlU2VhcmNoTW9kYWw6IHNlYXJjaFxuICAgIH0pXG4gIH1cblxuICBvbkZpbHRlckNsaWNrZWQgPSAoZmlsdGVyKSA9PiB0aGlzLnNldFN0YXRlKHtmaWx0ZXJ9KVxuXG4gIG9uTG9hZFNlYXJjaENsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzaG93TG9hZFNlYXJjaE1vZGFsOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVtb3ZlQ2xpY2tlZCA9ICh7ZmlsdGVySW5kZXh9KSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5U05hbWV9ID0gZGlncyh0aGlzLnByb3BzLCBcInF1ZXJ5U05hbWVcIilcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBQYXJhbXMucGFyc2UoKVtxdWVyeVNOYW1lXSB8fCB7fVxuXG4gICAgZGVsZXRlIHNlYXJjaFBhcmFtc1tmaWx0ZXJJbmRleF1cblxuICAgIGNvbnN0IG5ld1BhcmFtcyA9IHt9XG5cbiAgICBuZXdQYXJhbXNbcXVlcnlTTmFtZV0gPSBzZWFyY2hQYXJhbXNcblxuICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMobmV3UGFyYW1zKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBmaWx0ZXI6IHVuZGVmaW5lZFxuICAgIH0pXG4gIH1cblxuICBvblJlcXVlc3RDbG9zZUxvYWRTZWFyY2hNb2RhbCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe3Nob3dMb2FkU2VhcmNoTW9kYWw6IGZhbHNlfSlcbiAgb25SZXF1ZXN0Q2xvc2VTYXZlU2VhcmNoTW9kYWwgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzaG93U2F2ZVNlYXJjaE1vZGFsOiB1bmRlZmluZWR9KVxuXG4gIG9uU2F2ZVNlYXJjaENsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgaWYgKHRoaXMuaGFzQW55RmlsdGVycygpKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93U2F2ZVNlYXJjaE1vZGFsOiBuZXcgVGFibGVTZWFyY2goKX0pXG4gICAgfSBlbHNlIHtcbiAgICAgIEZsYXNoTWVzc2FnZS5hbGVydCh0aGlzLnQoXCIubm9fZmlsdGVyc19oYXNfYmVlbl9zZXRcIiwge2RlZmF1bHRWYWx1ZTogXCJObyBmaWx0ZXJzIGhhcyBiZWVuIHNldFwifSkpXG4gICAgfVxuICB9XG5cbiAgaGFzQW55RmlsdGVycyA9ICgpID0+IE9iamVjdC5rZXlzKHRoaXMuY3VycmVudEZpbHRlcnMoKSkubGVuZ3RoID4gMFxufSkpXG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELFNBQVFDLElBQUksRUFBRUMsSUFBSSxRQUFPLFdBQVc7QUFDcEMsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsT0FBT0MsVUFBVSxNQUFNLGVBQWU7QUFDdEMsT0FBT0MsZUFBZSxNQUFNLHFCQUFxQjtBQUNqRCxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLFNBQVFDLFdBQVcsUUFBTyxRQUFRO0FBQ2xDLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxPQUFPLE1BQU0sK0JBQStCO0FBQ25ELE9BQU9DLGNBQWMsTUFBTSw0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
@@ -1,7 +1,7 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import { digg, digs } from "diggerize";
3
3
  import React, { createContext, useContext, useMemo, useRef } from "react";
4
- import { Animated, Pressable, View } from "react-native";
4
+ import { Animated, Platform, Pressable, View } from "react-native";
5
5
  import BaseComponent from "../base-component";
6
6
  import Card from "../bootstrap/card";
7
7
  import classNames from "classnames";
@@ -17,6 +17,7 @@ import Header from "./components/header";
17
17
  import HeaderColumn from "./header-column";
18
18
  import HeaderSelect from "./header-select";
19
19
  import Icon from "../utils/icon";
20
+ import { incorporate } from "incorporator";
20
21
  import * as inflection from "inflection";
21
22
  import memo from "set-state-compare/src/memo";
22
23
  import modelClassRequire from "../model-class-require";
@@ -953,15 +954,19 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
953
954
  });
954
955
  };
955
956
  submitFilter = () => {
956
- const filterForm = digg(this.tt.filterFormRef, "current");
957
957
  const {
958
958
  appHistory
959
959
  } = this.props;
960
- const qParams = Params.serializeForm(filterForm);
961
960
  const {
962
961
  queryQName
963
962
  } = this.s;
964
963
  const changeParamsParams = {};
964
+ const qParams = this.s.filterForm.asObject();
965
+ if (Platform.OS == "web") {
966
+ const filterForm = digg(this.tt.filterFormRef, "current");
967
+ const navtiveFormParams = Params.serializeForm(filterForm);
968
+ incorporate(qParams, navtiveFormParams);
969
+ }
965
970
  changeParamsParams[queryQName] = JSON.stringify(qParams);
966
971
  Params.changeParams(changeParamsParams, {
967
972
  appHistory
@@ -969,4 +974,4 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
969
974
  };
970
975
  submitFilterDebounce = debounce(this.tt.submitFilter);
971
976
  }));
972
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiZGlncyIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwidXNlUmVmIiwiQW5pbWF0ZWQiLCJQcmVzc2FibGUiLCJWaWV3IiwiQmFzZUNvbXBvbmVudCIsIkNhcmQiLCJjbGFzc05hbWVzIiwiQ29sbGVjdGlvbiIsImNvbHVtblZpc2libGUiLCJkZWJvdW5jZSIsIkRyYWdnYWJsZVNvcnQiLCJFdmVudEVtaXR0ZXIiLCJGaWx0ZXJzIiwiRmxhdExpc3QiLCJGb3JtIiwiSGVhZGVyIiwiSGVhZGVyQ29sdW1uIiwiSGVhZGVyU2VsZWN0IiwiSWNvbiIsImluZmxlY3Rpb24iLCJtZW1vIiwibW9kZWxDbGFzc1JlcXVpcmUiLCJNb2RlbFJvdyIsIlBhZ2luYXRlIiwiUGFyYW1zIiwiUHJvcFR5cGVzIiwiUm93Iiwic2VsZWN0Q2FsY3VsYXRvciIsIlNlbGVjdCIsIlNldHRpbmdzIiwic2hhcGVDb21wb25lbnQiLCJUYWJsZVNldHRpbmdzIiwiVGV4dCIsInVuaXF1bml6ZSIsInVzZUJyZWFrcG9pbnQiLCJ1c2VDb2xsZWN0aW9uIiwidXNlSTE4biIsInVzZUV2ZW50RW1pdHRlciIsInVzZU1vZGVsRXZlbnQiLCJ1c2VRdWVyeVBhcmFtcyIsIldpZHRocyIsInBhZ2luYXRpb25PcHRpb25zIiwiV29ya2VyUGx1Z2luc0NoZWNrQWxsQ2hlY2tib3giLCJsYXp5IiwiVGFibGVDb250ZXh0IiwiTGlzdEhlYWRlckNvbXBvbmVudCIsInNldHVwIiwidXNlU3RhdGVzIiwibGFzdFVwZGF0ZSIsIkRhdGUiLCJyZW5kZXIiLCJtZFVwIiwidGFibGVDb250ZXh0VmFsdWUiLCJ0YWJsZSIsImNvbGxlY3Rpb24iLCJldmVudHMiLCJxdWVyeVdpdGhvdXRQYWdpbmF0aW9uIiwidCIsInR0IiwicXVlcnkiLCJvbkNvbHVtblZpc2liaWxpdHlVcGRhdGVkIiwiY3JlYXRlRWxlbWVudCIsImRhdGFTZXQiLCJjbGFzcyIsInN0eWxlIiwic3R5bGVGb3JSb3dIZWFkZXIiLCJwIiwid29ya3BsYWNlIiwicyIsImN1cnJlbnRXb3JrcGxhY2UiLCJzdHlsZUZvckhlYWRlciIsIndpZHRoIiwidW5kZWZpbmVkIiwibWFyZ2luSG9yaXpvbnRhbCIsIm1hcmdpbkxlZnQiLCJkZWZhdWx0VmFsdWUiLCJwcmVwYXJlZENvbHVtbnMiLCJGcmFnbWVudCIsImhlYWRlcnNDb250ZW50RnJvbUNvbHVtbnMiLCJ0eXBlIiwic2V0U3RhdGUiLCJBcGlNYWtlclRhYmxlIiwiZGVmYXVsdFByb3BzIiwiY2FyZCIsImN1cnJlbnRVc2VyIiwiZGVzdHJveUVuYWJsZWQiLCJmaWx0ZXJDYXJkIiwiZmlsdGVyU3VibWl0QnV0dG9uIiwibm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCIsIm5vUmVjb3Jkc0ZvdW5kQ29udGVudCIsInByZWxvYWRzIiwic2VsZWN0Iiwic3R5bGVVSSIsInByb3BUeXBlcyIsImFiaWxpdGllcyIsIm9iamVjdCIsImFjdGlvbnNDb250ZW50IiwiZnVuYyIsImFwcEhpc3RvcnkiLCJib29sIiwiaXNSZXF1aXJlZCIsImNsYXNzTmFtZSIsInN0cmluZyIsImluc3RhbmNlT2YiLCJjb2x1bW5zIiwib25lT2ZUeXBlIiwiYXJyYXkiLCJjb250cm9scyIsImRlZmF1bHREYXRlRm9ybWF0TmFtZSIsImRlZmF1bHREYXRlVGltZUZvcm1hdE5hbWUiLCJkZWZhdWx0UGFyYW1zIiwiZGVzdHJveU1lc3NhZ2UiLCJlZGl0TW9kZWxQYXRoIiwiZmlsdGVyQ29udGVudCIsImZpbHRlclN1Ym1pdExhYmVsIiwibm9kZSIsImdyb3VwQnkiLCJoZWFkZXIiLCJpZGVudGlmaWVyIiwibW9kZWxDbGFzcyIsIm9uTW9kZWxzTG9hZGVkIiwicGFnaW5hdGVDb250ZW50IiwicGFnaW5hdGlvbkNvbXBvbmVudCIsInF1ZXJ5TWV0aG9kIiwicXVlcnlOYW1lIiwic2VsZWN0Q29sdW1ucyIsInN0eWxlcyIsInZpZXdNb2RlbFBhdGgiLCJkcmFnZ2FibGVTb3J0RXZlbnRzIiwidGFibGVTZXR0aW5ncyIsIm5hbWVzcGFjZSIsIm5hbWUiLCJicmVha3BvaW50IiwicXVlcnlQYXJhbXMiLCJzZXRJbnN0YW5jZSIsImZpbHRlckZvcm1SZWYiLCJjb2xsZWN0aW9uS2V5IiwibW9kZWxDbGFzc0RhdGEiLCJwcm9wcyIsInF1ZXJ5U05hbWUiLCJjb2x1bW5zQXNBcnJheSIsImN1cnJlbnRXb3JrcGxhY2VDb3VudCIsImZpbHRlckZvcm0iLCJjb2x1bW5zVG9TaG93IiwiZHJhZ2dlZENvbHVtbiIsInByZWxvYWQiLCJxdWVyeVFOYW1lIiwicXVlcnlQYWdlTmFtZSIsInJlc2l6aW5nIiwic2hvd0ZpbHRlcnMiLCJCb29sZWFuIiwic2hvd1NldHRpbmdzIiwidGFibGVTZXR0aW5nIiwidGFibGVTZXR0aW5nTG9hZGVkIiwidGFibGVTZXR0aW5nRnVsbENhY2hlS2V5Iiwid2lkdGhzIiwiY2FjaGVLZXkiLCJsb2FkQ3VycmVudFdvcmtwbGFjZSIsInRoZW4iLCJsb2FkQ3VycmVudFdvcmtwbGFjZUNvdW50IiwiaWQiLCJsb2FkVGFibGVTZXR0aW5nIiwib25MaW5rc0NyZWF0ZWQiLCJvbkxpbmtzRGVzdHJveWVkIiwiY29sbGVjdGlvblJlYWR5IiwiYWJpbGl0aWVzVG9Mb2FkIiwiaWZDb25kaXRpb24iLCJwYWdpbmF0aW9uIiwic3RhdGUiLCJjbG9uZSIsImV4Y2VwdCIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnRW5kQW5pbWF0aW9uIiwiZ2V0Q29sdW1uc1RvU2hvdyIsIml0ZW0iLCJhbmltYXRlZFpJbmRleCIsInNldFZhbHVlIiwiV29ya3BsYWNlIiwicmVzdWx0IiwiY3VycmVudCIsIldvcmtwbGFjZUxpbmsiLCJyYW5zYWNrIiwicmVzb3VyY2VfdHlwZV9lcSIsIndvcmtwbGFjZV9pZF9lcSIsImNvdW50IiwiZmlsdGVyIiwiY29sdW1uIiwidGFibGVTZXR0aW5nQ29sdW1uIiwic29ydCIsImEiLCJiIiwicG9zaXRpb24iLCJsb2FkRXhpc3RpbmdPckNyZWF0ZVRhYmxlU2V0dGluZ3MiLCJtZXJnZWRQcmVsb2FkcyIsImZ1bGxDYWNoZUtleSIsInVwZGF0ZVNldHRpbmdzRnVsbENhY2hlS2V5IiwiY29uY2F0IiwibW9kZWxzIiwib3ZlcmFsbENvdW50IiwicVBhcmFtcyIsInNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50Iiwic2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCIsImFyZ3MiLCJFcnJvciIsIm9uTGF5b3V0Iiwib25Db250YWluZXJMYXlvdXQiLCJjb250YWluZXIiLCJjYXJkT3JUYWJsZSIsIm93bkFiaWxpdGllcyIsInB1c2giLCJsZW5ndGgiLCJtb2RlbENsYXNzTmFtZSIsIm1vZGVsTmFtZSIsImFiaWxpdHkiLCJyZXN0UHJvcHMiLCJoZWFkZXJDb250ZW50IiwiUGFnaW5hdGlvbkNvbXBvbmVudCIsImh1bWFuIiwiZmxhdExpc3RTdHlsZSIsIm92ZXJmbG93WCIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsImZsYXRMaXN0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsIl9leHRlbmRzIiwiZGF0YSIsImV4dHJhRGF0YSIsImtleUV4dHJhY3RvciIsImtleUV4dHJhdG9yIiwicmVuZGVySXRlbSIsInNob3dzSG9yaXpvbnRhbFNjcm9sbEluZGljYXRvciIsInRhYmxlQ29udHJvbHMiLCJmb290ZXIiLCJ0YWJsZUZvb3RlciIsImUiLCJuYXRpdmVFdmVudCIsImxheW91dCIsInRhYmxlV2lkdGgiLCJjcmVhdGVkIiwiYW1vdW50Q3JlYXRlZCIsInByZXZTdGF0ZSIsImRlc3Ryb3llZCIsImFtb3VudERlc3Ryb3llZCIsIm1vZGVsIiwic3VibWl0RmlsdGVyIiwic3VibWl0RmlsdGVyRGVib3VuY2UiLCJmb3JtUmVmIiwib25TdWJtaXQiLCJvbkZpbHRlckZvcm1TdWJtaXQiLCJzZXRGb3JtIiwic2V0U3RhdGVzIiwib25GaWx0ZXJDaGFuZ2VkIiwib25GaWx0ZXJDaGFuZ2VkV2l0aERlbGF5IiwibWFyZ2luVG9wIiwib25GaWx0ZXJDbGlja2VkIiwicHJldmVudERlZmF1bHQiLCJvblBlclBhZ2VDaGFuZ2VkIiwibmV3UGVyUGFnZVZhbHVlIiwicGVyS2V5IiwicGFyYW1zQ2hhbmdlIiwiY2hhbmdlUGFyYW1zIiwiaW5kZXgiLCJjb2x1bW5XaWR0aHMiLCJrZXkiLCJzdHlsZUZvckNvbHVtbiIsImNvbHVtbkluZGV4IiwiZXZlbiIsImRlZmF1bHRTdHlsZSIsImp1c3RpZnlDb250ZW50IiwicGFkZGluZyIsIm92ZXJmbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiYmFja2dyb3VuZENvbG9yIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJtYXJnaW5SaWdodCIsImJvcmRlclJpZ2h0IiwiYWN0dWFsU3R5bGUiLCJzdHlsZUZvckhlYWRlclRleHQiLCJmb250V2VpZ2h0Iiwic3R5bGVGb3JSb3ciLCJmbGV4Iiwib25QcmVzcyIsInNpemUiLCJvblJlcXVlc3RDbG9zZSIsIm9uUmVxdWVzdENsb3NlU2V0dGluZ3MiLCJvblNldHRpbmdzQ2xpY2tlZCIsImN1cnJlbnRQYWdlIiwidG90YWxDb3VudCIsInBlclBhZ2UiLCJ0byIsIk1hdGgiLCJtaW4iLCJmcm9tIiwidG90YWxfY291bnQiLCJzZWxlY3RlZCIsIm9uQ2hhbmdlIiwib3B0aW9ucyIsImpvaW4iLCJjb2x1bW5Qcm9wcyIsInRleHRDZW50ZXIiLCJ0ZXh0QWxpZ24iLCJ0ZXh0UmlnaHQiLCJoZWFkZXJQcm9wcyIsImhvcml6b250YWwiLCJkcmFnTGlzdGtleUV4dHJhY3RvciIsIm9uSXRlbU1vdmVkIiwib25SZW9yZGVyZWQiLCJkcmFnTGlzdFJlbmRlckl0ZW1Db250ZW50IiwiZHJhZ0xpc3RDYWNoZUtleUV4dHJhY3RvciIsImFuaW1hdGlvbkFyZ3MiLCJpdGVtSW5kZXgiLCJ4IiwieSIsImFuaW1hdGVkUG9zaXRpb24iLCJ0aW1pbmciLCJzdGFydCIsImZyb21JdGVtIiwiZnJvbVBvc2l0aW9uIiwidG9JdGVtIiwidG9Qb3NpdGlvbiIsIlRhYmxlU2V0dGluZ0NvbHVtbiIsImNvbnN0cnVjdG9yIiwidG9Db2x1bW4iLCJmaW5kIiwidXBkYXRlIiwiaXNBY3RpdmUiLCJ0b3VjaFByb3BzIiwiYW5pbWF0ZWRXaWR0aCIsImFjdGl2ZSIsImhlYWRlckNsYXNzTmFtZUZvckNvbHVtbiIsImNvbW1vblByb3BzIiwiaGVhZGVyTGFiZWxGb3JDb2x1bW4iLCJsYWJlbCIsImN1cnJlbnRNb2RlbENsYXNzIiwicGF0aCIsInBhdGhQYXJ0IiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uc2hpcCIsInJlbGF0aW9uc2hpcEluQXJyYXkiLCJ1bmRlcnNjb3JlIiwiYXR0cmlidXRlIiwiaHVtYW5BdHRyaWJ1dGVOYW1lIiwic2VyaWFsaXplRm9ybSIsImNoYW5nZVBhcmFtc1BhcmFtcyIsIkpTT04iLCJzdHJpbmdpZnkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFibGUvdGFibGUuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge0FuaW1hdGVkLCBQcmVzc2FibGUsIFZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBDYXJkIGZyb20gXCIuLi9ib290c3RyYXAvY2FyZFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgQ29sbGVjdGlvbiBmcm9tIFwiLi4vY29sbGVjdGlvblwiXG5pbXBvcnQgY29sdW1uVmlzaWJsZSBmcm9tIFwiLi9jb2x1bW4tdmlzaWJsZVwiXG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCBEcmFnZ2FibGVTb3J0IGZyb20gXCIuLi9kcmFnZ2FibGUtc29ydC9pbmRleFwiXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gXCJldmVudHNcIlxuaW1wb3J0IEZpbHRlcnMgZnJvbSBcIi4vZmlsdGVyc1wiXG5pbXBvcnQgRmxhdExpc3QgZnJvbSBcIi4vY29tcG9uZW50cy9mbGF0LWxpc3RcIlxuaW1wb3J0IHtGb3JtfSBmcm9tIFwiLi4vZm9ybVwiXG5pbXBvcnQgSGVhZGVyIGZyb20gXCIuL2NvbXBvbmVudHMvaGVhZGVyXCJcbmltcG9ydCBIZWFkZXJDb2x1bW4gZnJvbSBcIi4vaGVhZGVyLWNvbHVtblwiXG5pbXBvcnQgSGVhZGVyU2VsZWN0IGZyb20gXCIuL2hlYWRlci1zZWxlY3RcIlxuaW1wb3J0IEljb24gZnJvbSBcIi4uL3V0aWxzL2ljb25cIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IG1vZGVsQ2xhc3NSZXF1aXJlIGZyb20gXCIuLi9tb2RlbC1jbGFzcy1yZXF1aXJlXCJcbmltcG9ydCBNb2RlbFJvdyBmcm9tIFwiLi9tb2RlbC1yb3dcIlxuaW1wb3J0IFBhZ2luYXRlIGZyb20gXCIuLi9ib290c3RyYXAvcGFnaW5hdGVcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vcGFyYW1zXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFJvdyBmcm9tIFwiLi9jb21wb25lbnRzL3Jvd1wiXG5pbXBvcnQgc2VsZWN0Q2FsY3VsYXRvciBmcm9tIFwiLi9zZWxlY3QtY2FsY3VsYXRvclwiXG5pbXBvcnQgU2VsZWN0IGZyb20gXCIuLi9pbnB1dHMvc2VsZWN0XCJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy9pbmRleFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgVGFibGVTZXR0aW5ncyBmcm9tIFwiLi90YWJsZS1zZXR0aW5nc1wiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgdW5pcXVuaXplIGZyb20gXCJ1bmlxdW5pemVcIlxuaW1wb3J0IHVzZUJyZWFrcG9pbnQgZnJvbSBcIi4uL3VzZS1icmVha3BvaW50XCJcbmltcG9ydCB1c2VDb2xsZWN0aW9uIGZyb20gXCIuLi91c2UtY29sbGVjdGlvblwiXG5pbXBvcnQgdXNlSTE4biBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkcy9zcmMvdXNlLWkxOG5cIlxuaW1wb3J0IHVzZUV2ZW50RW1pdHRlciBmcm9tIFwiLi4vdXNlLWV2ZW50LWVtaXR0ZXJcIlxuaW1wb3J0IHVzZU1vZGVsRXZlbnQgZnJvbSBcIi4uL3VzZS1tb2RlbC1ldmVudFwiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtc1wiXG5pbXBvcnQgV2lkdGhzIGZyb20gXCIuL3dpZHRoc1wiXG5cbmNvbnN0IHBhZ2luYXRpb25PcHRpb25zID0gWzMwLCA2MCwgOTAsIFtcIkFsbFwiLCBcImFsbFwiXV1cbmNvbnN0IFdvcmtlclBsdWdpbnNDaGVja0FsbENoZWNrYm94ID0gUmVhY3QubGF6eSgoKSA9PiBpbXBvcnQoXCIuL3dvcmtlci1wbHVnaW5zLWNoZWNrLWFsbC1jaGVja2JveFwiKSlcbmNvbnN0IFRhYmxlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoKVxuXG5jb25zdCBMaXN0SGVhZGVyQ29tcG9uZW50ID0gbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBMaXN0SGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGxhc3RVcGRhdGU6IG5ldyBEYXRlKClcbiAgICB9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHttZFVwfSA9IHVzZUJyZWFrcG9pbnQoKVxuICAgIGNvbnN0IHRhYmxlQ29udGV4dFZhbHVlID0gdXNlQ29udGV4dChUYWJsZUNvbnRleHQpXG4gICAgY29uc3QgdGFibGUgPSB0YWJsZUNvbnRleHRWYWx1ZS50YWJsZVxuICAgIGNvbnN0IHtjb2xsZWN0aW9uLCBldmVudHMsIHF1ZXJ5V2l0aG91dFBhZ2luYXRpb24sIHR9ID0gdGFibGUudHRcbiAgICBjb25zdCB7cXVlcnl9ID0gZGlncyhjb2xsZWN0aW9uLCBcInF1ZXJ5XCIpXG5cbiAgICB1c2VFdmVudEVtaXR0ZXIoZXZlbnRzLCBcImNvbHVtblZpc2liaWxpdHlVcGRhdGVkXCIsIHRoaXMudHQub25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZClcblxuICAgIHJldHVybiAoXG4gICAgICA8Um93IGRhdGFTZXQ9e3tjbGFzczogXCJhcGktbWFrZXIvdGFibGUvaGVhZGVyLXJvd1wifX0gc3R5bGU9e3RhYmxlLnN0eWxlRm9yUm93SGVhZGVyKCl9PlxuICAgICAgICB7dGFibGUucC53b3JrcGxhY2UgJiYgdGFibGUucy5jdXJyZW50V29ya3BsYWNlICYmXG4gICAgICAgICAgPEhlYWRlciBzdHlsZT17dGFibGUuc3R5bGVGb3JIZWFkZXIoe3N0eWxlOiB7d2lkdGg6IG1kVXAgPyA0MSA6IHVuZGVmaW5lZH19KX0+XG4gICAgICAgICAgICA8V29ya2VyUGx1Z2luc0NoZWNrQWxsQ2hlY2tib3hcbiAgICAgICAgICAgICAgY3VycmVudFdvcmtwbGFjZT17dGFibGUucy5jdXJyZW50V29ya3BsYWNlfVxuICAgICAgICAgICAgICBxdWVyeT17cXVlcnlXaXRob3V0UGFnaW5hdGlvbn1cbiAgICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5Ib3Jpem9udGFsOiBcImF1dG9cIn19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyFtZFVwICYmXG4gICAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt7bWFyZ2luTGVmdDogM319PlxuICAgICAgICAgICAgICAgIHt0KFwiLnNlbGVjdF9hbGxfZm91bmRcIiwge2RlZmF1bHRWYWx1ZTogXCJTZWxlY3QgYWxsIGZvdW5kXCJ9KX1cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvSGVhZGVyPlxuICAgICAgICB9XG4gICAgICAgIHshbWRVcCAmJlxuICAgICAgICAgIDxIZWFkZXIgc3R5bGU9e3RhYmxlLnN0eWxlRm9ySGVhZGVyKHtzdHlsZToge319KX0+XG4gICAgICAgICAgICA8SGVhZGVyU2VsZWN0IHByZXBhcmVkQ29sdW1ucz17dGFibGUucy5wcmVwYXJlZENvbHVtbnN9IHF1ZXJ5PXtxdWVyeX0gdGFibGU9e3RhYmxlfSAvPlxuICAgICAgICAgIDwvSGVhZGVyPlxuICAgICAgICB9XG4gICAgICAgIHttZFVwICYmXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHt0YWJsZS5oZWFkZXJzQ29udGVudEZyb21Db2x1bW5zKCl9XG4gICAgICAgICAgICA8SGVhZGVyIHN0eWxlPXt0YWJsZS5zdHlsZUZvckhlYWRlcih7c3R5bGU6IHt9LCB0eXBlOiBcImFjdGlvbnNcIn0pfSAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICA8L1Jvdz5cbiAgICApXG4gIH1cblxuICBvbkNvbHVtblZpc2liaWxpdHlVcGRhdGVkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7bGFzdFVwZGF0ZTogbmV3IERhdGUoKX0pXG59KSlcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclRhYmxlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY2FyZDogdHJ1ZSxcbiAgICBjdXJyZW50VXNlcjogbnVsbCxcbiAgICBkZXN0cm95RW5hYmxlZDogdHJ1ZSxcbiAgICBmaWx0ZXJDYXJkOiB0cnVlLFxuICAgIGZpbHRlclN1Ym1pdEJ1dHRvbjogdHJ1ZSxcbiAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50OiB1bmRlZmluZWQsXG4gICAgbm9SZWNvcmRzRm91bmRDb250ZW50OiB1bmRlZmluZWQsXG4gICAgcHJlbG9hZHM6IFtdLFxuICAgIHNlbGVjdDoge30sXG4gICAgc3R5bGVVSTogdHJ1ZSxcbiAgICB3b3JrcGxhY2U6IGZhbHNlXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFiaWxpdGllczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhY3Rpb25zQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgYXBwSGlzdG9yeTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjYXJkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihDb2xsZWN0aW9uKSxcbiAgICBjb2x1bW5zOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5mdW5jXSksXG4gICAgY29udHJvbHM6IFByb3BUeXBlcy5mdW5jLFxuICAgIGN1cnJlbnRVc2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRlZmF1bHREYXRlRm9ybWF0TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXROYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlZmF1bHRQYXJhbXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZGVzdHJveUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgZGVzdHJveU1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZWRpdE1vZGVsUGF0aDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZmlsdGVyQ2FyZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBmaWx0ZXJDb250ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBmaWx0ZXJTdWJtaXRMYWJlbDogUHJvcFR5cGVzLm5vZGUsXG4gICAgZ3JvdXBCeTogUHJvcFR5cGVzLmFycmF5LFxuICAgIGhlYWRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgICBpZGVudGlmaWVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbm9SZWNvcmRzRm91bmRDb250ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbk1vZGVsc0xvYWRlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGFnaW5hdGVDb250ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBwYWdpbmF0aW9uQ29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBwcmVsb2FkczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgcXVlcnlNZXRob2Q6IFByb3BUeXBlcy5mdW5jLFxuICAgIHF1ZXJ5TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzZWxlY3Q6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc2VsZWN0Q29sdW1uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzdHlsZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc3R5bGVVSTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICB2aWV3TW9kZWxQYXRoOiBQcm9wVHlwZXMuZnVuYyxcbiAgICB3b3JrcGxhY2U6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWRcbiAgfVxuXG4gIGRyYWdnYWJsZVNvcnRFdmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIHRhYmxlU2V0dGluZ3MgPSBudWxsXG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge3R9ID0gdXNlSTE4bih7bmFtZXNwYWNlOiBcImpzLmFwaV9tYWtlci50YWJsZVwifSlcbiAgICBjb25zdCB7bmFtZTogYnJlYWtwb2ludCwgbWRVcH0gPSB1c2VCcmVha3BvaW50KClcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcblxuICAgIHRoaXMuc2V0SW5zdGFuY2Uoe1xuICAgICAgYnJlYWtwb2ludCxcbiAgICAgIGZpbHRlckZvcm1SZWY6IHVzZVJlZigpLFxuICAgICAgbWRVcCxcbiAgICAgIHRcbiAgICB9KVxuXG4gICAgY29uc3QgY29sbGVjdGlvbktleSA9IGRpZ2codGhpcy5wLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJjb2xsZWN0aW9uS2V5XCIpXG4gICAgbGV0IHF1ZXJ5TmFtZSA9IHRoaXMucHJvcHMucXVlcnlOYW1lXG5cbiAgICBpZiAoIXF1ZXJ5TmFtZSkgcXVlcnlOYW1lID0gY29sbGVjdGlvbktleVxuXG4gICAgY29uc3QgcXVlcnlTTmFtZSA9IGAke3F1ZXJ5TmFtZX1fc2BcblxuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGNvbHVtbnM6ICgpID0+IHRoaXMuY29sdW1uc0FzQXJyYXkoKSxcbiAgICAgIGN1cnJlbnRXb3JrcGxhY2U6IHVuZGVmaW5lZCxcbiAgICAgIGN1cnJlbnRXb3JrcGxhY2VDb3VudDogbnVsbCxcbiAgICAgIGZpbHRlckZvcm06IG51bGwsXG4gICAgICBjb2x1bW5zVG9TaG93OiBudWxsLFxuICAgICAgZHJhZ2dlZENvbHVtbjogbnVsbCxcbiAgICAgIGlkZW50aWZpZXI6ICgpID0+IHRoaXMucHJvcHMuaWRlbnRpZmllciB8fCBgJHtjb2xsZWN0aW9uS2V5fS1kZWZhdWx0YCxcbiAgICAgIGxhc3RVcGRhdGU6ICgpID0+IG5ldyBEYXRlKCksXG4gICAgICBwcmVsb2FkOiB1bmRlZmluZWQsXG4gICAgICBwcmVwYXJlZENvbHVtbnM6IHVuZGVmaW5lZCxcbiAgICAgIHF1ZXJ5TmFtZSxcbiAgICAgIHF1ZXJ5UU5hbWU6ICgpID0+IGAke3F1ZXJ5TmFtZX1fcWAsXG4gICAgICBxdWVyeVBhZ2VOYW1lOiAoKSA9PiBgJHtxdWVyeU5hbWV9X3BhZ2VgLFxuICAgICAgcXVlcnlTTmFtZSxcbiAgICAgIHJlc2l6aW5nOiBmYWxzZSxcbiAgICAgIHNob3dGaWx0ZXJzOiAoKSA9PiBCb29sZWFuKHF1ZXJ5UGFyYW1zW3F1ZXJ5U05hbWVdKSxcbiAgICAgIHNob3dTZXR0aW5nczogZmFsc2UsXG4gICAgICB0YWJsZVNldHRpbmc6IHVuZGVmaW5lZCxcbiAgICAgIHRhYmxlU2V0dGluZ0xvYWRlZDogZmFsc2UsXG4gICAgICB0YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXk6IHVuZGVmaW5lZCxcbiAgICAgIHdpZHRoOiB1bmRlZmluZWQsXG4gICAgICB3aWR0aHM6IG51bGxcbiAgICB9KVxuXG4gICAgdGhpcy50YWJsZUNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBjYWNoZUtleTogdGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleSxcbiAgICAgICAgbGFzdFVwZGF0ZTogdGhpcy5zLmxhc3RVcGRhdGUsXG4gICAgICAgIHJlc2l6aW5nOiB0aGlzLnMucmVzaXppbmcsXG4gICAgICAgIHRhYmxlOiB0aGlzXG4gICAgICB9KSxcbiAgICAgIFt0aGlzLnMubGFzdFVwZGF0ZSwgdGhpcy5zLnJlc2l6aW5nLCB0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5XVxuICAgIClcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJvcHMud29ya3BsYWNlKSB7XG4gICAgICAgIHRoaXMubG9hZEN1cnJlbnRXb3JrcGxhY2UoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRDdXJyZW50V29ya3BsYWNlQ291bnQoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sIFt0aGlzLnAuY3VycmVudFVzZXI/LmlkKCldKVxuXG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMudHQudGFibGVTZXR0aW5ncyAmJiB0aGlzLnMud2lkdGgpIHtcbiAgICAgICAgdGhpcy5sb2FkVGFibGVTZXR0aW5nKClcbiAgICAgIH1cbiAgICB9LCBbdGhpcy5wLmN1cnJlbnRVc2VyPy5pZCgpLCB0aGlzLnMud2lkdGhdKVxuXG4gICAgdXNlTW9kZWxFdmVudCh0aGlzLnMuY3VycmVudFdvcmtwbGFjZSwgXCJ3b3JrcGxhY2VfbGlua3NfY3JlYXRlZFwiLCB0aGlzLnR0Lm9uTGlua3NDcmVhdGVkKVxuICAgIHVzZU1vZGVsRXZlbnQodGhpcy5zLmN1cnJlbnRXb3JrcGxhY2UsIFwid29ya3BsYWNlX2xpbmtzX2Rlc3Ryb3llZFwiLCB0aGlzLnR0Lm9uTGlua3NEZXN0cm95ZWQpXG5cbiAgICBsZXQgY29sbGVjdGlvblJlYWR5ID0gdHJ1ZVxuICAgIGxldCBzZWxlY3RcblxuICAgIGlmICghdGhpcy5zLnByZXBhcmVkQ29sdW1ucykge1xuICAgICAgY29sbGVjdGlvblJlYWR5ID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoY29sbGVjdGlvblJlYWR5KSB7XG4gICAgICBzZWxlY3QgPSBzZWxlY3RDYWxjdWxhdG9yKHt0YWJsZTogdGhpc30pXG4gICAgfVxuXG4gICAgdGhpcy5jb2xsZWN0aW9uID0gdXNlQ29sbGVjdGlvbih7XG4gICAgICBhYmlsaXRpZXM6IHRoaXMuYWJpbGl0aWVzVG9Mb2FkKCksXG4gICAgICBkZWZhdWx0UGFyYW1zOiB0aGlzLnByb3BzLmRlZmF1bHRQYXJhbXMsXG4gICAgICBjb2xsZWN0aW9uOiB0aGlzLnByb3BzLmNvbGxlY3Rpb24sXG4gICAgICBncm91cEJ5OiB0aGlzLnByb3BzLmdyb3VwQnksXG4gICAgICBpZkNvbmRpdGlvbjogY29sbGVjdGlvblJlYWR5LFxuICAgICAgbW9kZWxDbGFzczogdGhpcy5wcm9wcy5tb2RlbENsYXNzLFxuICAgICAgb25Nb2RlbHNMb2FkZWQ6IHRoaXMucHJvcHMub25Nb2RlbHNMb2FkZWQsXG4gICAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50OiB0aGlzLnByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQsXG4gICAgICBub1JlY29yZHNGb3VuZENvbnRlbnQ6IHRoaXMucHJvcHMubm9SZWNvcmRzRm91bmRDb250ZW50LFxuICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcbiAgICAgIHByZWxvYWRzOiB0aGlzLnN0YXRlLnByZWxvYWQsXG4gICAgICBxdWVyeU1ldGhvZDogdGhpcy5wcm9wcy5xdWVyeU1ldGhvZCxcbiAgICAgIHF1ZXJ5TmFtZSxcbiAgICAgIHNlbGVjdCxcbiAgICAgIHNlbGVjdENvbHVtbnM6IHRoaXMucHJvcHMuc2VsZWN0Q29sdW1uc1xuICAgIH0pXG4gICAgdGhpcy5xdWVyeVdpdGhvdXRQYWdpbmF0aW9uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IHRoaXMuY29sbGVjdGlvbj8ucXVlcnk/LmNsb25lKCk/LmV4Y2VwdChcInBhZ2VcIiksXG4gICAgICBbdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5XVxuICAgIClcblxuICAgIHVzZUV2ZW50RW1pdHRlcih0aGlzLnR0LmRyYWdnYWJsZVNvcnRFdmVudHMsIFwib25EcmFnU3RhcnRcIiwgdGhpcy50dC5vbkRyYWdTdGFydClcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy50dC5kcmFnZ2FibGVTb3J0RXZlbnRzLCBcIm9uRHJhZ0VuZEFuaW1hdGlvblwiLCB0aGlzLnR0Lm9uRHJhZ0VuZEFuaW1hdGlvbilcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy50dC5ldmVudHMsIFwiY29sdW1uVmlzaWJpbGl0eVVwZGF0ZWRcIiwgdGhpcy50dC5vbkNvbHVtblZpc2liaWxpdHlVcGRhdGVkKVxuICB9XG5cbiAgb25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe2NvbHVtbnNUb1Nob3c6IHRoaXMuZ2V0Q29sdW1uc1RvU2hvdyh0aGlzLnMuY29sdW1ucyksIGxhc3RVcGRhdGU6IG5ldyBEYXRlKCl9KVxuICBvbkRyYWdTdGFydCA9ICh7aXRlbX0pID0+IGl0ZW0uYW5pbWF0ZWRaSW5kZXguc2V0VmFsdWUoOTk5OSlcbiAgb25EcmFnRW5kQW5pbWF0aW9uID0gKHtpdGVtfSkgPT4gaXRlbS5hbmltYXRlZFpJbmRleC5zZXRWYWx1ZSgwKVxuXG4gIGFzeW5jIGxvYWRDdXJyZW50V29ya3BsYWNlKCkge1xuICAgIGNvbnN0IFdvcmtwbGFjZSA9IG1vZGVsQ2xhc3NSZXF1aXJlKFwiV29ya3BsYWNlXCIpXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgV29ya3BsYWNlLmN1cnJlbnQoKVxuICAgIGNvbnN0IGN1cnJlbnRXb3JrcGxhY2UgPSBkaWdnKHJlc3VsdCwgXCJjdXJyZW50XCIsIDApXG5cbiAgICB0aGlzLnNldFN0YXRlKHtjdXJyZW50V29ya3BsYWNlfSlcbiAgfVxuXG4gIGFzeW5jIGxvYWRDdXJyZW50V29ya3BsYWNlQ291bnQoKSB7XG4gICAgY29uc3QgV29ya3BsYWNlTGluayA9IG1vZGVsQ2xhc3NSZXF1aXJlKFwiV29ya3BsYWNlTGlua1wiKVxuICAgIGNvbnN0IGN1cnJlbnRXb3JrcGxhY2VDb3VudCA9IGF3YWl0IFdvcmtwbGFjZUxpbmtcbiAgICAgIC5yYW5zYWNrKHtcbiAgICAgICAgcmVzb3VyY2VfdHlwZV9lcTogdGhpcy5wLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLFxuICAgICAgICB3b3JrcGxhY2VfaWRfZXE6IHRoaXMucy5jdXJyZW50V29ya3BsYWNlLmlkKClcbiAgICAgIH0pXG4gICAgICAuY291bnQoKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7Y3VycmVudFdvcmtwbGFjZUNvdW50fSlcbiAgfVxuXG4gIGdldENvbHVtbnNUb1Nob3coY29sdW1ucykge1xuICAgIHJldHVybiBjb2x1bW5zXG4gICAgICAuZmlsdGVyKCh7Y29sdW1uLCB0YWJsZVNldHRpbmdDb2x1bW59KSA9PiBjb2x1bW5WaXNpYmxlKGNvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1uKSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnRhYmxlU2V0dGluZ0NvbHVtbi5wb3NpdGlvbigpIC0gYi50YWJsZVNldHRpbmdDb2x1bW4ucG9zaXRpb24oKSlcbiAgfVxuXG4gIGFzeW5jIGxvYWRUYWJsZVNldHRpbmcoKSB7XG4gICAgdGhpcy50YWJsZVNldHRpbmdzID0gbmV3IFRhYmxlU2V0dGluZ3Moe3RhYmxlOiB0aGlzfSlcblxuICAgIGNvbnN0IHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMudGFibGVTZXR0aW5ncy5sb2FkRXhpc3RpbmdPckNyZWF0ZVRhYmxlU2V0dGluZ3MoKVxuICAgIGNvbnN0IHtjb2x1bW5zLCBwcmVsb2FkfSA9IHRoaXMudGFibGVTZXR0aW5ncy5wcmVwYXJlZENvbHVtbnModGFibGVTZXR0aW5nKVxuICAgIGNvbnN0IHt3aWR0aH0gPSB0aGlzLnNcbiAgICBjb25zdCB3aWR0aHMgPSBuZXcgV2lkdGhzKHtjb2x1bW5zLCB0YWJsZTogdGhpcywgd2lkdGh9KVxuICAgIGNvbnN0IGNvbHVtbnNUb1Nob3cgPSB0aGlzLmdldENvbHVtbnNUb1Nob3coY29sdW1ucylcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgY29sdW1ucyxcbiAgICAgIGNvbHVtbnNUb1Nob3csXG4gICAgICBwcmVwYXJlZENvbHVtbnM6IGNvbHVtbnMsXG4gICAgICBwcmVsb2FkOiB0aGlzLm1lcmdlZFByZWxvYWRzKHByZWxvYWQpLFxuICAgICAgdGFibGVTZXR0aW5nLFxuICAgICAgdGFibGVTZXR0aW5nTG9hZGVkOiB0cnVlLFxuICAgICAgdGFibGVTZXR0aW5nRnVsbENhY2hlS2V5OiB0YWJsZVNldHRpbmcuZnVsbENhY2hlS2V5KCksXG4gICAgICB3aWR0aHNcbiAgICB9KVxuICB9XG5cbiAgdXBkYXRlU2V0dGluZ3NGdWxsQ2FjaGVLZXkgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHt0YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXk6IHRoaXMuc3RhdGUudGFibGVTZXR0aW5nLmZ1bGxDYWNoZUtleSgpfSlcblxuICBjb2x1bW5zQXNBcnJheSA9ICgpID0+IHtcbiAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMuY29sdW1ucyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNvbHVtbnMoKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbHVtbnNcbiAgfVxuXG4gIG1lcmdlZFByZWxvYWRzKHByZWxvYWQpIHtcbiAgICBjb25zdCB7cHJlbG9hZHN9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBtZXJnZWRQcmVsb2FkcyA9IFtdXG5cbiAgICBpZiAocHJlbG9hZHMpIG1lcmdlZFByZWxvYWRzID0gbWVyZ2VkUHJlbG9hZHMuY29uY2F0KHByZWxvYWRzKVxuICAgIGlmIChwcmVsb2FkKSBtZXJnZWRQcmVsb2FkcyA9IG1lcmdlZFByZWxvYWRzLmNvbmNhdChwcmVsb2FkKVxuXG4gICAgcmV0dXJuIHVuaXF1bml6ZShtZXJnZWRQcmVsb2FkcylcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3MsIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQsIG5vUmVjb3Jkc0ZvdW5kQ29udGVudH0gPSB0aGlzLnBcbiAgICBjb25zdCB7Y29sbGVjdGlvbiwgY3VycmVudFVzZXJ9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtxdWVyeU5hbWUsIHF1ZXJ5U05hbWUsIHNob3dGaWx0ZXJzfSA9IHRoaXMuc1xuICAgIGNvbnN0IHtcbiAgICAgIG1vZGVscyxcbiAgICAgIG92ZXJhbGxDb3VudCxcbiAgICAgIHFQYXJhbXMsXG4gICAgICBxdWVyeSxcbiAgICAgIHJlc3VsdCxcbiAgICAgIHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50LFxuICAgICAgc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudFxuICAgIH0gPSBkaWdzKFxuICAgICAgdGhpcy5jb2xsZWN0aW9uLFxuICAgICAgXCJtb2RlbHNcIixcbiAgICAgIFwib3ZlcmFsbENvdW50XCIsXG4gICAgICBcInFQYXJhbXNcIixcbiAgICAgIFwicXVlcnlcIixcbiAgICAgIFwicmVzdWx0XCIsXG4gICAgICBcInNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50XCIsXG4gICAgICBcInNob3dOb1JlY29yZHNGb3VuZENvbnRlbnRcIlxuICAgIClcblxuICAgIGlmIChjb2xsZWN0aW9uICYmIGNvbGxlY3Rpb24uYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSAhPSBtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTW9kZWwgY2xhc3MgZnJvbSBjb2xsZWN0aW9uICcke2NvbGxlY3Rpb24uYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX0nIGAgK1xuICAgICAgICBgZGlkbid0IG1hdGNoIG1vZGVsIGNsYXNzIG9uIHRhYmxlOiAnJHttb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX0nYFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y2xhc3M6IHRoaXMuY2xhc3NOYW1lKCl9fSBvbkxheW91dD17dGhpcy50dC5vbkNvbnRhaW5lckxheW91dH0gc3R5bGU9e3RoaXMucHJvcHMuc3R5bGVzPy5jb250YWluZXJ9PlxuICAgICAgICB7c2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgJiZcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpdmUtdGFibGUtLW5vLXJlY29yZHMtYXZhaWxhYmxlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIHtub1JlY29yZHNBdmFpbGFibGVDb250ZW50KHttb2RlbHMsIHFQYXJhbXMsIG92ZXJhbGxDb3VudH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIHtzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50ICYmXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaXZlLXRhYmxlLS1uby1yZWNvcmRzLWZvdW5kLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIHtub1JlY29yZHNGb3VuZENvbnRlbnQoe21vZGVscywgcVBhcmFtcywgb3ZlcmFsbENvdW50fSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAge3Nob3dGaWx0ZXJzICYmXG4gICAgICAgICAgPEZpbHRlcnMgY3VycmVudFVzZXI9e2N1cnJlbnRVc2VyfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSBxdWVyeU5hbWU9e3F1ZXJ5TmFtZX0gcXVlcnlTTmFtZT17cXVlcnlTTmFtZX0gLz5cbiAgICAgICAgfVxuICAgICAgICB7cVBhcmFtcyAmJiBxdWVyeSAmJiByZXN1bHQgJiYgbW9kZWxzICYmICFzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCAmJiAhc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCAmJlxuICAgICAgICAgIHRoaXMuY2FyZE9yVGFibGUoKVxuICAgICAgICB9XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgYWJpbGl0aWVzVG9Mb2FkICgpIHtcbiAgICBjb25zdCBhYmlsaXRpZXNUb0xvYWQgPSB7fVxuICAgIGNvbnN0IHthYmlsaXRpZXMsIG1vZGVsQ2xhc3N9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IG93bkFiaWxpdGllcyA9IFtdXG5cbiAgICBpZiAodGhpcy5wcm9wcy5kZXN0cm95RW5hYmxlZCkgb3duQWJpbGl0aWVzLnB1c2goXCJkZXN0cm95XCIpXG4gICAgaWYgKHRoaXMucHJvcHMuZWRpdE1vZGVsUGF0aCkgb3duQWJpbGl0aWVzLnB1c2goXCJlZGl0XCIpXG4gICAgaWYgKHRoaXMucHJvcHMudmlld01vZGVsUGF0aCkgb3duQWJpbGl0aWVzLnB1c2goXCJzaG93XCIpXG5cbiAgICBpZiAob3duQWJpbGl0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gZGlnZyhtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuXG4gICAgICBhYmlsaXRpZXNUb0xvYWRbbW9kZWxDbGFzc05hbWVdID0gb3duQWJpbGl0aWVzXG4gICAgfVxuXG4gICAgaWYgKGFiaWxpdGllcykge1xuICAgICAgZm9yIChjb25zdCBtb2RlbE5hbWUgaW4gYWJpbGl0aWVzKSB7XG4gICAgICAgIGlmICghKG1vZGVsTmFtZSBpbiBhYmlsaXRpZXNUb0xvYWQpKSB7XG4gICAgICAgICAgYWJpbGl0aWVzVG9Mb2FkW21vZGVsTmFtZV0gPSBbXVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBhYmlsaXR5IG9mIGFiaWxpdGllc1ttb2RlbE5hbWVdKSB7XG4gICAgICAgICAgYWJpbGl0aWVzVG9Mb2FkW21vZGVsTmFtZV0ucHVzaChhYmlsaXR5KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFiaWxpdGllc1RvTG9hZFxuICB9XG5cbiAgY2FyZE9yVGFibGUgKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFiaWxpdGllcyxcbiAgICAgIGFjdGlvbnNDb250ZW50LFxuICAgICAgYXBwSGlzdG9yeSxcbiAgICAgIGNhcmQsXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgY29sdW1ucyxcbiAgICAgIGNvbnRyb2xzLFxuICAgICAgY3VycmVudFVzZXIsXG4gICAgICBkZWZhdWx0RGF0ZUZvcm1hdE5hbWUsXG4gICAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXROYW1lLFxuICAgICAgZGVmYXVsdFBhcmFtcyxcbiAgICAgIGRlc3Ryb3lFbmFibGVkLFxuICAgICAgZGVzdHJveU1lc3NhZ2UsXG4gICAgICBlZGl0TW9kZWxQYXRoLFxuICAgICAgZmlsdGVyQ2FyZCxcbiAgICAgIGZpbHRlckNvbnRlbnQsXG4gICAgICBmaWx0ZXJTdWJtaXRCdXR0b24sXG4gICAgICBmaWx0ZXJTdWJtaXRMYWJlbCxcbiAgICAgIGdyb3VwQnksXG4gICAgICBoZWFkZXIsXG4gICAgICBpZGVudGlmaWVyLFxuICAgICAgbW9kZWxDbGFzcyxcbiAgICAgIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQsXG4gICAgICBub1JlY29yZHNGb3VuZENvbnRlbnQsXG4gICAgICBvbk1vZGVsc0xvYWRlZCxcbiAgICAgIHBhZ2luYXRlQ29udGVudCxcbiAgICAgIHBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgICBwcmVsb2FkcyxcbiAgICAgIHF1ZXJ5TWV0aG9kLFxuICAgICAgcXVlcnlOYW1lLFxuICAgICAgc2VsZWN0LFxuICAgICAgc2VsZWN0Q29sdW1ucyxcbiAgICAgIHN0eWxlVUksXG4gICAgICB2aWV3TW9kZWxQYXRoLFxuICAgICAgd29ya3BsYWNlLFxuICAgICAgLi4ucmVzdFByb3BzXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSA9IGRpZ3ModGhpcy5jb2xsZWN0aW9uLCBcIm1vZGVsc1wiLCBcInFQYXJhbXNcIiwgXCJxdWVyeVwiLCBcInJlc3VsdFwiKVxuXG4gICAgbGV0IGhlYWRlckNvbnRlbnQsIFBhZ2luYXRpb25Db21wb25lbnRcblxuICAgIGlmICh0eXBlb2YgaGVhZGVyID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgaGVhZGVyQ29udGVudCA9IGhlYWRlcih7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSlcbiAgICB9IGVsc2UgaWYgKGhlYWRlcikge1xuICAgICAgaGVhZGVyQ29udGVudCA9IGhlYWRlclxuICAgIH0gZWxzZSB7XG4gICAgICBoZWFkZXJDb250ZW50ID0gbW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5odW1hbih7Y291bnQ6IDJ9KVxuICAgIH1cblxuICAgIGlmICghcGFnaW5hdGVDb250ZW50KSB7XG4gICAgICBpZiAocGFnaW5hdGlvbkNvbXBvbmVudCkge1xuICAgICAgICBQYWdpbmF0aW9uQ29tcG9uZW50ID0gcGFnaW5hdGlvbkNvbXBvbmVudFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUGFnaW5hdGlvbkNvbXBvbmVudCA9IFBhZ2luYXRlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmxhdExpc3RTdHlsZSA9IHtcbiAgICAgIG92ZXJmbG93WDogXCJhdXRvXCJcbiAgICB9XG5cbiAgICBpZiAoc3R5bGVVSSkge1xuICAgICAgZmxhdExpc3RTdHlsZS5ib3JkZXIgPSBcIjFweCBzb2xpZCAjZGJkYmRiXCJcbiAgICAgIGZsYXRMaXN0U3R5bGUuYm9yZGVyUmFkaXVzID0gNVxuICAgIH1cblxuICAgIGNvbnN0IGZsYXRMaXN0ID0gKFxuICAgICAgPFRhYmxlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dGhpcy50dC50YWJsZUNvbnRleHRWYWx1ZX0+XG4gICAgICAgIDxGbGF0TGlzdFxuICAgICAgICAgIGRhdGE9e21vZGVsc31cbiAgICAgICAgICBkYXRhU2V0PXt7XG4gICAgICAgICAgICBjbGFzczogY2xhc3NOYW1lcyhcImFwaS1tYWtlci0tdGFibGVcIiwgY2xhc3NOYW1lKSxcbiAgICAgICAgICAgIGNhY2hlS2V5OiB0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5LFxuICAgICAgICAgICAgbGFzdFVwZGF0ZTogdGhpcy5zLmxhc3RVcGRhdGVcbiAgICAgICAgICB9fVxuICAgICAgICAgIGV4dHJhRGF0YT17dGhpcy5zLmxhc3RVcGRhdGV9XG4gICAgICAgICAga2V5RXh0cmFjdG9yPXt0aGlzLnR0LmtleUV4dHJhdG9yfVxuICAgICAgICAgIExpc3RIZWFkZXJDb21wb25lbnQ9e0xpc3RIZWFkZXJDb21wb25lbnR9XG4gICAgICAgICAgcmVuZGVySXRlbT17dGhpcy50dC5yZW5kZXJJdGVtfVxuICAgICAgICAgIHNob3dzSG9yaXpvbnRhbFNjcm9sbEluZGljYXRvclxuICAgICAgICAgIHN0eWxlPXtmbGF0TGlzdFN0eWxlfVxuICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2ZpbHRlckNvbnRlbnQgJiYgZmlsdGVyQ2FyZCAmJlxuICAgICAgICAgIDxDYXJkIGNsYXNzTmFtZT1cImxpdmUtdGFibGUtLWZpbHRlci1jYXJkIG1iLTRcIj5cbiAgICAgICAgICAgIHt0aGlzLmZpbHRlckZvcm0oKX1cbiAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgIH1cbiAgICAgICAge2ZpbHRlckNvbnRlbnQgJiYgIWZpbHRlckNhcmQgJiZcbiAgICAgICAgICB0aGlzLmZpbHRlckZvcm0oKVxuICAgICAgICB9XG4gICAgICAgIHtjYXJkICYmXG4gICAgICAgICAgPENhcmRcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImxpdmUtdGFibGUtLXRhYmxlLWNhcmRcIiwgXCJtYi00XCIsIGNsYXNzTmFtZSl9XG4gICAgICAgICAgICBjb250cm9scz17dGhpcy50YWJsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgICBoZWFkZXI9e2hlYWRlckNvbnRlbnR9XG4gICAgICAgICAgICBmb290ZXI9e3RoaXMudGFibGVGb290ZXIoKX1cbiAgICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2ZsYXRMaXN0fVxuICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgfVxuICAgICAgICB7IWNhcmQgJiYgZmxhdExpc3R9XG4gICAgICAgIHtyZXN1bHQgJiYgUGFnaW5hdGlvbkNvbXBvbmVudCAmJlxuICAgICAgICAgIDxQYWdpbmF0aW9uQ29tcG9uZW50IHJlc3VsdD17cmVzdWx0fSAvPlxuICAgICAgICB9XG4gICAgICAgIHtyZXN1bHQgJiYgcGFnaW5hdGVDb250ZW50ICYmXG4gICAgICAgICAgcGFnaW5hdGVDb250ZW50KHtyZXN1bHR9KVxuICAgICAgICB9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICBvbkNvbnRhaW5lckxheW91dCA9IChlKSA9PiB7XG4gICAgY29uc3Qge3dpZHRofSA9IGUubmF0aXZlRXZlbnQubGF5b3V0XG4gICAgY29uc3Qge3dpZHRoc30gPSB0aGlzLnNcblxuICAgIHRoaXMuc2V0U3RhdGUoe3dpZHRofSlcbiAgICBpZiAod2lkdGhzKSB3aWR0aHMudGFibGVXaWR0aCA9IHdpZHRoXG4gIH1cblxuICBvbkxpbmtzQ3JlYXRlZCA9ICh7YXJnc30pID0+IHtcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IHRoaXMucC5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZVxuXG4gICAgaWYgKGFyZ3MuY3JlYXRlZFttb2RlbENsYXNzTmFtZV0pIHtcbiAgICAgIGNvbnN0IGFtb3VudENyZWF0ZWQgPSBhcmdzLmNyZWF0ZWRbbW9kZWxDbGFzc05hbWVdLmxlbmd0aFxuXG4gICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIGN1cnJlbnRXb3JrcGxhY2VDb3VudDogcHJldlN0YXRlLmN1cnJlbnRXb3JrcGxhY2VDb3VudCArIGFtb3VudENyZWF0ZWRcbiAgICAgIH0pKVxuICAgIH1cbiAgfVxuXG4gIG9uTGlua3NEZXN0cm95ZWQgPSAoe2FyZ3N9KSA9PiB7XG4gICAgY29uc3QgbW9kZWxDbGFzc05hbWUgPSB0aGlzLnAubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWVcblxuICAgIGlmIChhcmdzLmRlc3Ryb3llZFttb2RlbENsYXNzTmFtZV0pIHtcbiAgICAgIGNvbnN0IGFtb3VudERlc3Ryb3llZCA9IGFyZ3MuZGVzdHJveWVkW21vZGVsQ2xhc3NOYW1lXS5sZW5ndGhcblxuICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICBjdXJyZW50V29ya3BsYWNlQ291bnQ6IHByZXZTdGF0ZS5jdXJyZW50V29ya3BsYWNlQ291bnQgLSBhbW91bnREZXN0cm95ZWRcbiAgICAgIH0pKVxuICAgIH1cbiAgfVxuXG4gIGtleUV4dHJhdG9yID0gKG1vZGVsKSA9PiBgJHt0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5fS0ke21vZGVsLmlkKCl9YFxuXG4gIGZpbHRlckZvcm0gPSAoKSA9PiB7XG4gICAgY29uc3Qge2ZpbHRlckZvcm1SZWYsIHN1Ym1pdEZpbHRlciwgc3VibWl0RmlsdGVyRGVib3VuY2V9ID0gdGhpcy50dFxuICAgIGNvbnN0IHtmaWx0ZXJDb250ZW50LCBmaWx0ZXJTdWJtaXRCdXR0b259ID0gdGhpcy5wXG4gICAgY29uc3Qge3F1ZXJ5UU5hbWV9ID0gdGhpcy5zXG4gICAgY29uc3Qge2ZpbHRlclN1Ym1pdExhYmVsfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7cVBhcmFtc30gPSBkaWdzKHRoaXMuY29sbGVjdGlvbiwgXCJxUGFyYW1zXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZvcm0gY2xhc3NOYW1lPVwibGl2ZS10YWJsZS0tZmlsdGVyLWZvcm1cIiBmb3JtUmVmPXtmaWx0ZXJGb3JtUmVmfSBvblN1Ym1pdD17dGhpcy50dC5vbkZpbHRlckZvcm1TdWJtaXR9IHNldEZvcm09e3RoaXMuc2V0U3RhdGVzLmZpbHRlckZvcm19PlxuICAgICAgICB7XCJzXCIgaW4gcVBhcmFtcyAmJlxuICAgICAgICAgIDxpbnB1dCBuYW1lPVwic1wiIHR5cGU9XCJoaWRkZW5cIiB2YWx1ZT17cVBhcmFtcy5zfSAvPlxuICAgICAgICB9XG4gICAgICAgIHtmaWx0ZXJDb250ZW50KHtcbiAgICAgICAgICBvbkZpbHRlckNoYW5nZWQ6IHN1Ym1pdEZpbHRlcixcbiAgICAgICAgICBvbkZpbHRlckNoYW5nZWRXaXRoRGVsYXk6IHN1Ym1pdEZpbHRlckRlYm91bmNlLFxuICAgICAgICAgIHFQYXJhbXMsXG4gICAgICAgICAgcXVlcnlRTmFtZVxuICAgICAgICB9KX1cbiAgICAgICAge2ZpbHRlclN1Ym1pdEJ1dHRvbiAmJlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5IGxpdmUtdGFibGUtLXN1Ym1pdC1maWx0ZXItYnV0dG9uXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5Ub3A6IFwiOHB4XCJ9fVxuICAgICAgICAgICAgdmFsdWU9e2ZpbHRlclN1Ym1pdExhYmVsIHx8IHRoaXMudChcIi5maWx0ZXJcIiwge2RlZmF1bHRWYWx1ZTogXCJGaWx0ZXJcIn0pfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvRm9ybT5cbiAgICApXG4gIH1cblxuICBvbkZpbHRlckNsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dGaWx0ZXJzOiAhdGhpcy5zdGF0ZS5zaG93RmlsdGVyc30pXG4gIH1cblxuICBvblBlclBhZ2VDaGFuZ2VkID0gKGUpID0+IHtcbiAgICBjb25zdCB7cXVlcnlOYW1lfSA9IHRoaXMuc1xuICAgIGNvbnN0IG5ld1BlclBhZ2VWYWx1ZSA9IGRpZ2coZSwgXCJ0YXJnZXRcIiwgXCJ2YWx1ZVwiKVxuICAgIGNvbnN0IHBlcktleSA9IGAke3F1ZXJ5TmFtZX1fcGVyYFxuICAgIGNvbnN0IHBhcmFtc0NoYW5nZSA9IHt9XG5cbiAgICBwYXJhbXNDaGFuZ2VbcGVyS2V5XSA9IG5ld1BlclBhZ2VWYWx1ZVxuXG4gICAgUGFyYW1zLmNoYW5nZVBhcmFtcyhwYXJhbXNDaGFuZ2UpXG4gIH1cblxuICByZW5kZXJJdGVtID0gKHtpbmRleCwgaXRlbTogbW9kZWx9KSA9PiB7XG4gICAgaWYgKCF0aGlzLnMudGFibGVTZXR0aW5nTG9hZGVkKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Vmlldz5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHt0aGlzLnQoXCIubG9hZGluZ19kb3RfZG90X2RvdFwiLCB7ZGVmYXVsdFZhbHVlOiBcIkxvYWRpbmcuLi5cIn0pfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8TW9kZWxSb3dcbiAgICAgICAgY2FjaGVLZXk9e21vZGVsLmNhY2hlS2V5KCl9XG4gICAgICAgIGNvbHVtbnM9e3RoaXMucy5jb2x1bW5zVG9TaG93fVxuICAgICAgICBjb2x1bW5XaWR0aHM9e3RoaXMuY29sdW1uV2lkdGhzKCl9XG4gICAgICAgIGV2ZW50cz17dGhpcy50dC5ldmVudHN9XG4gICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAga2V5PXttb2RlbC5pZCgpfVxuICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgIHRhYmxlPXt0aGlzfVxuICAgICAgICB0YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXk9e3RoaXMucy50YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXl9XG4gICAgICAvPlxuICAgIClcbiAgfVxuXG4gIHN0eWxlRm9yQ29sdW1uID0gKHtjb2x1bW4sIGNvbHVtbkluZGV4LCBldmVuLCBzdHlsZSwgdHlwZX0pID0+IHtcbiAgICBjb25zdCB7c3R5bGVVSX0gPSB0aGlzLnBcbiAgICBjb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgIHBhZGRpbmc6IDgsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIlxuICAgIH1cblxuICAgIGlmIChzdHlsZVVJKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGRlZmF1bHRTdHlsZSwge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGV2ZW4gPyBcIiNmNWY1ZjVcIiA6IFwiI2ZmZlwiXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlID09IFwiYWN0aW9uc1wiKSB7XG4gICAgICBkZWZhdWx0U3R5bGUuZmxleERpcmVjdGlvbiA9IFwicm93XCJcbiAgICAgIGRlZmF1bHRTdHlsZS5hbGlnbkl0ZW1zID0gXCJjZW50ZXJcIlxuXG4gICAgICBpZiAodGhpcy50dC5tZFVwKSB7XG4gICAgICAgIGRlZmF1bHRTdHlsZS5tYXJnaW5MZWZ0ID0gXCJhdXRvXCJcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmF1bHRTdHlsZS5tYXJnaW5SaWdodCA9IFwiYXV0b1wiXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnR0Lm1kVXAgJiYgc3R5bGVVSSkge1xuICAgICAgZGVmYXVsdFN0eWxlLmJvcmRlclJpZ2h0ID0gXCIxcHggc29saWQgI2RiZGJkYlwiXG4gICAgfVxuXG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSBPYmplY3QuYXNzaWduKFxuICAgICAgZGVmYXVsdFN0eWxlLFxuICAgICAgc3R5bGVcbiAgICApXG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9ySGVhZGVyID0gKHtjb2x1bW4sIGNvbHVtbkluZGV4LCBzdHlsZSwgdHlwZX0pID0+IHtcbiAgICBjb25zdCB7bWRVcH0gPSB0aGlzLnR0XG4gICAgY29uc3QgZGVmYXVsdFN0eWxlID0ge1xuICAgICAgZmxleERpcmVjdGlvbjogXCJyb3dcIixcbiAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICBwYWRkaW5nOiA4XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT0gXCJhY3Rpb25zXCIgJiYgbWRVcCAmJiB0aGlzLnAuc3R5bGVVSSkge1xuICAgICAgZGVmYXVsdFN0eWxlLmJvcmRlclJpZ2h0ID0gXCIxcHggc29saWQgI2RiZGJkYlwiXG4gICAgfVxuXG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSBPYmplY3QuYXNzaWduKFxuICAgICAgZGVmYXVsdFN0eWxlLFxuICAgICAgc3R5bGVcbiAgICApXG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9ySGVhZGVyVGV4dCgpIHtcbiAgICBjb25zdCBhY3R1YWxTdHlsZSA9IHtmb250V2VpZ2h0OiBcImJvbGRcIn1cblxuICAgIHJldHVybiBhY3R1YWxTdHlsZVxuICB9XG5cbiAgc3R5bGVGb3JSb3cgPSAoe2V2ZW59ID0ge30pID0+IHtcbiAgICBjb25zdCBhY3R1YWxTdHlsZSA9IHtcbiAgICAgIGZsZXg6IDEsXG4gICAgICBhbGlnbkl0ZW1zOiBcInN0cmV0Y2hcIlxuICAgIH1cblxuICAgIGlmIChldmVuICYmIHRoaXMucC5zdHlsZVVJKSB7XG4gICAgICBhY3R1YWxTdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcIiNmNWY1ZjVcIlxuICAgIH1cblxuICAgIHJldHVybiBhY3R1YWxTdHlsZVxuICB9XG5cbiAgc3R5bGVGb3JSb3dIZWFkZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSB7XG4gICAgICBmbGV4OiAxLFxuICAgICAgYWxpZ25JdGVtczogXCJzdHJldGNoXCJcbiAgICB9XG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHRhYmxlQ29udHJvbHMoKSB7XG4gICAgY29uc3Qge2NvbnRyb2xzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7c2hvd1NldHRpbmdzfSA9IHRoaXMuc1xuICAgIGNvbnN0IHttb2RlbHMsIHFQYXJhbXMsIHF1ZXJ5LCByZXN1bHR9ID0gZGlncyh0aGlzLmNvbGxlY3Rpb24sIFwibW9kZWxzXCIsIFwicVBhcmFtc1wiLCBcInF1ZXJ5XCIsIFwicmVzdWx0XCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wifX0+XG4gICAgICAgIHtjb250cm9scyAmJiBjb250cm9scyh7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSl9XG4gICAgICAgIDxQcmVzc2FibGUgZGF0YVNldD17e2NsYXNzOiBcImZpbHRlci1idXR0b25cIn19IG9uUHJlc3M9e3RoaXMudHQub25GaWx0ZXJDbGlja2VkfT5cbiAgICAgICAgICA8SWNvbiBuYW1lPVwic2VhcmNoXCIgc2l6ZT17MjB9IC8+XG4gICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8VmlldyBzdHlsZT17e3Bvc2l0aW9uOiBcInJlbGF0aXZlXCJ9fT5cbiAgICAgICAgICB7c2hvd1NldHRpbmdzICYmXG4gICAgICAgICAgICA8U2V0dGluZ3Mgb25SZXF1ZXN0Q2xvc2U9e3RoaXMudHQub25SZXF1ZXN0Q2xvc2VTZXR0aW5nc30gdGFibGU9e3RoaXN9IC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxQcmVzc2FibGUgZGF0YVNldD17e2NsYXNzOiBcInNldHRpbmdzLWJ1dHRvblwifX0gb25QcmVzcz17dGhpcy50dC5vblNldHRpbmdzQ2xpY2tlZH0+XG4gICAgICAgICAgICA8SWNvbiBuYW1lPVwiZ2VhclwiIHNpemU9ezIwfSAvPlxuICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgdGFibGVGb290ZXIoKSB7XG4gICAgY29uc3Qge3Jlc3VsdH0gPSBkaWdzKHRoaXMuY29sbGVjdGlvbiwgXCJyZXN1bHRcIilcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9IHJlc3VsdC5jdXJyZW50UGFnZSgpXG4gICAgY29uc3QgdG90YWxDb3VudCA9IHJlc3VsdC50b3RhbENvdW50KClcbiAgICBjb25zdCBwZXJQYWdlID0gcmVzdWx0LnBlclBhZ2UoKVxuICAgIGNvbnN0IHRvID0gTWF0aC5taW4oY3VycmVudFBhZ2UgKiBwZXJQYWdlLCB0b3RhbENvdW50KVxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IFwiU2hvd2luZyAle2Zyb219IHRvICV7dG99IG91dCBvZiAle3RvdGFsX2NvdW50fSB0b3RhbC5cIlxuICAgIGxldCBmcm9tID0gKChjdXJyZW50UGFnZSAtIDEpICogcGVyUGFnZSkgKyAxXG5cbiAgICBpZiAodG8gPT09IDApIGZyb20gPSAwXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIsIG1hcmdpblRvcDogMTB9fT5cbiAgICAgICAgPFZpZXcgZGF0YVNldD17e2NsYXNzOiBcInNob3dpbmctY291bnRzXCJ9fSBzdHlsZT17e2ZsZXhEaXJlY3Rpb246IFwicm93XCJ9fT5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHt0aGlzLnQoXCIuc2hvd2luZ19mcm9tX3RvX291dF9vZl90b3RhbFwiLCB7ZGVmYXVsdFZhbHVlLCBmcm9tLCB0bywgdG90YWxfY291bnQ6IHRvdGFsQ291bnR9KX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAge3RoaXMucC53b3JrcGxhY2UgJiYgdGhpcy5zLmN1cnJlbnRXb3JrcGxhY2VDb3VudCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgPFRleHQgc3R5bGU9e3ttYXJnaW5MZWZ0OiAzfX0+XG4gICAgICAgICAgICAgIHt0aGlzLnQoXCIueF9zZWxlY3RlZFwiLCB7ZGVmYXVsdFZhbHVlOiBcIiV7c2VsZWN0ZWR9IHNlbGVjdGVkLlwiLCBzZWxlY3RlZDogdGhpcy5zLmN1cnJlbnRXb3JrcGxhY2VDb3VudH0pfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9WaWV3PlxuICAgICAgICA8Vmlldz5cbiAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJwZXItcGFnZS1zZWxlY3RcIlxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtwZXJQYWdlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMudHQub25QZXJQYWdlQ2hhbmdlZH1cbiAgICAgICAgICAgIG9wdGlvbnM9e3BhZ2luYXRpb25PcHRpb25zfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVmlldz5cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBjbGFzc05hbWUoKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IFtcImFwaS1tYWtlci0tdGFibGVcIl1cblxuICAgIGlmICh0aGlzLnByb3BzLmNsYXNzTmFtZSkge1xuICAgICAgY2xhc3NOYW1lcy5wdXNoKHRoaXMucHJvcHMuY2xhc3NOYW1lKVxuICAgIH1cblxuICAgIHJldHVybiBjbGFzc05hbWVzLmpvaW4oXCIgXCIpXG4gIH1cblxuICBjb2x1bW5Qcm9wcyhjb2x1bW4pIHtcbiAgICBjb25zdCBwcm9wcyA9IHt9XG5cbiAgICBpZiAoY29sdW1uLnRleHRDZW50ZXIpIHtcbiAgICAgIHByb3BzLnN0eWxlIHx8PSB7fVxuICAgICAgcHJvcHMuc3R5bGUudGV4dEFsaWduID0gXCJjZW50ZXJcIlxuICAgIH1cblxuICAgIGlmIChjb2x1bW4udGV4dFJpZ2h0KSB7XG4gICAgICBwcm9wcy5zdHlsZSB8fD0ge31cbiAgICAgIHByb3BzLnN0eWxlLnRleHRBbGlnbiA9IFwicmlnaHRcIlxuICAgIH1cblxuICAgIHJldHVybiBwcm9wc1xuICB9XG5cbiAgaGVhZGVyUHJvcHMoY29sdW1uKSB7XG4gICAgY29uc3QgcHJvcHMgPSB7fVxuXG4gICAgaWYgKGNvbHVtbi50ZXh0Q2VudGVyKSB7XG4gICAgICBwcm9wcy5zdHlsZSB8fD0ge31cbiAgICAgIHByb3BzLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gXCJjZW50ZXJcIlxuICAgIH1cblxuICAgIGlmIChjb2x1bW4udGV4dFJpZ2h0KSB7XG4gICAgICBwcm9wcy5zdHlsZSB8fD0ge31cbiAgICAgIHByb3BzLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gXCJlbmRcIlxuICAgIH1cblxuICAgIHJldHVybiBwcm9wc1xuICB9XG5cbiAgY29sdW1uV2lkdGhzKCkge1xuICAgIGNvbnN0IGNvbHVtbldpZHRocyA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLnMucHJlcGFyZWRDb2x1bW5zKSB7XG4gICAgICBjb2x1bW5XaWR0aHNbY29sdW1uLnRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCldID0gY29sdW1uLndpZHRoXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbHVtbldpZHRoc1xuICB9XG5cbiAgaGVhZGVyc0NvbnRlbnRGcm9tQ29sdW1ucyA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPERyYWdnYWJsZVNvcnRcbiAgICAgICAgZGF0YT17dGhpcy5zLmNvbHVtbnNUb1Nob3d9XG4gICAgICAgIGV2ZW50cz17dGhpcy50dC5kcmFnZ2FibGVTb3J0RXZlbnRzfVxuICAgICAgICBob3Jpem9udGFsXG4gICAgICAgIGtleUV4dHJhY3Rvcj17dGhpcy50dC5kcmFnTGlzdGtleUV4dHJhY3Rvcn1cbiAgICAgICAgb25JdGVtTW92ZWQ9e3RoaXMudHQub25JdGVtTW92ZWR9XG4gICAgICAgIG9uUmVvcmRlcmVkPXt0aGlzLnR0Lm9uUmVvcmRlcmVkfVxuICAgICAgICByZW5kZXJJdGVtPXt0aGlzLnR0LmRyYWdMaXN0UmVuZGVySXRlbUNvbnRlbnR9XG4gICAgICAvPlxuICAgIClcbiAgfVxuXG4gIGRyYWdMaXN0Q2FjaGVLZXlFeHRyYWN0b3IgPSAoaXRlbSkgPT4gYCR7aXRlbS50YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpfS0ke3RoaXMucy5yZXNpemluZ31gXG4gIGRyYWdMaXN0a2V5RXh0cmFjdG9yID0gKGl0ZW0pID0+IGl0ZW0udGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKVxuXG4gIG9uSXRlbU1vdmVkID0gKHthbmltYXRpb25BcmdzLCBpdGVtSW5kZXgsIHgsIHl9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0ZWRQb3NpdGlvbiA9IGRpZ2codGhpcywgXCJzXCIsIFwiY29sdW1uc1RvU2hvd1wiLCBpdGVtSW5kZXgsIFwiYW5pbWF0ZWRQb3NpdGlvblwiKVxuXG4gICAgaWYgKGFuaW1hdGlvbkFyZ3MpIHtcbiAgICAgIEFuaW1hdGVkLnRpbWluZyhhbmltYXRlZFBvc2l0aW9uLCBhbmltYXRpb25BcmdzKS5zdGFydCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFuaW1hdGVkUG9zaXRpb24uc2V0VmFsdWUoe3gsIHl9KVxuICAgIH1cbiAgfVxuXG4gIG9uUmVvcmRlcmVkID0gYXN5bmMgKHtmcm9tSXRlbSwgZnJvbVBvc2l0aW9uLCB0b0l0ZW0sIHRvUG9zaXRpb259KSA9PiB7XG4gICAgaWYgKGZyb21Qb3NpdGlvbiA9PSB0b1Bvc2l0aW9uKSByZXR1cm4gLy8gT25seSBkbyByZXF1ZXN0cyBhbmQgcXVlcmllcyBpZiBjaGFuZ2VkXG5cbiAgICBjb25zdCBUYWJsZVNldHRpbmdDb2x1bW4gPSBmcm9tSXRlbS50YWJsZVNldHRpbmdDb2x1bW4uY29uc3RydWN0b3JcbiAgICBjb25zdCB0b0NvbHVtbiA9IGF3YWl0IFRhYmxlU2V0dGluZ0NvbHVtbi5maW5kKHRvSXRlbS50YWJsZVNldHRpbmdDb2x1bW4uaWQoKSkgLy8gTmVlZCB0byBsb2FkIGxhdGVzdCBwb3NpdGlvbiBiZWNhdXNlIEFjdHNBc0xpc3QgbWlnaHQgaGF2ZSBjaGFuZ2VkIGl0XG5cbiAgICBhd2FpdCBmcm9tSXRlbS50YWJsZVNldHRpbmdDb2x1bW4udXBkYXRlKHtwb3NpdGlvbjogdG9Db2x1bW4ucG9zaXRpb24oKX0pXG4gIH1cblxuICBkcmFnTGlzdFJlbmRlckl0ZW1Db250ZW50ID0gKHtpc0FjdGl2ZSwgaXRlbSwgdG91Y2hQcm9wc30pID0+IHtcbiAgICBjb25zdCB7YW5pbWF0ZWRXaWR0aCwgYW5pbWF0ZWRaSW5kZXgsIGNvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1ufSA9IGl0ZW1cblxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyQ29sdW1uXG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGFuaW1hdGVkV2lkdGg9e2FuaW1hdGVkV2lkdGh9XG4gICAgICAgIGFuaW1hdGVkWkluZGV4PXthbmltYXRlZFpJbmRleH1cbiAgICAgICAgY29sdW1uPXtjb2x1bW59XG4gICAgICAgIGtleT17dGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKX1cbiAgICAgICAgcmVzaXppbmc9e3RoaXMucy5yZXNpemluZ31cbiAgICAgICAgdGFibGU9e3RoaXN9XG4gICAgICAgIHRhYmxlU2V0dGluZ0NvbHVtbj17dGFibGVTZXR0aW5nQ29sdW1ufVxuICAgICAgICB0b3VjaFByb3BzPXt0b3VjaFByb3BzfVxuICAgICAgICB3aWR0aHM9e3RoaXMucy53aWR0aHN9XG4gICAgICAvPlxuICAgIClcbiAgfVxuXG4gIGhlYWRlckNsYXNzTmFtZUZvckNvbHVtbihjb2x1bW4pIHtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gW11cblxuICAgIGlmIChjb2x1bW4uY29tbW9uUHJvcHMgJiYgY29sdW1uLmNvbW1vblByb3BzLmNsYXNzTmFtZSkgY2xhc3NOYW1lcy5wdXNoKGNvbHVtbi5jb21tb25Qcm9wcy5jbGFzc05hbWUpXG4gICAgaWYgKGNvbHVtbi5oZWFkZXJQcm9wcyAmJiBjb2x1bW4uaGVhZGVyUHJvcHMuY2xhc3NOYW1lKSBjbGFzc05hbWVzLnB1c2goY29sdW1uLmhlYWRlclByb3BzLmNsYXNzTmFtZSlcblxuICAgIHJldHVybiBjbGFzc05hbWVzXG4gIH1cblxuICBoZWFkZXJMYWJlbEZvckNvbHVtbihjb2x1bW4pIHtcbiAgICBjb25zdCB7bW9kZWxDbGFzc30gPSB0aGlzLnBcblxuICAgIGlmIChcImxhYmVsXCIgaW4gY29sdW1uKSB7XG4gICAgICBpZiAodHlwZW9mIGNvbHVtbi5sYWJlbCA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5sYWJlbCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY29sdW1uLmxhYmVsXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGN1cnJlbnRNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuXG4gICAgLy8gQ2FsY3VsYXRlIGN1cnJlbnQgbW9kZWwgY2xhc3MgdGhyb3VnaCBwYXRoXG4gICAgaWYgKGNvbHVtbi5wYXRoKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhdGhQYXJ0IG9mIGNvbHVtbi5wYXRoKSB7XG4gICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcHMgPSBkaWdnKGN1cnJlbnRNb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwicmVsYXRpb25zaGlwc1wiKVxuICAgICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSByZWxhdGlvbnNoaXBzLmZpbmQoKHJlbGF0aW9uc2hpcEluQXJyYXkpID0+IHJlbGF0aW9uc2hpcEluQXJyYXkubmFtZSA9PSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUocGF0aFBhcnQpKVxuXG4gICAgICAgIGN1cnJlbnRNb2RlbENsYXNzID0gbW9kZWxDbGFzc1JlcXVpcmUoZGlnZyhyZWxhdGlvbnNoaXAsIFwicmVzb3VyY2VfbmFtZVwiKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29sdW1uLmF0dHJpYnV0ZSkgcmV0dXJuIGN1cnJlbnRNb2RlbENsYXNzLmh1bWFuQXR0cmlidXRlTmFtZShjb2x1bW4uYXR0cmlidXRlKVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gJ2xhYmVsJyBvciAnYXR0cmlidXRlJyB3YXMgZ2l2ZW5cIilcbiAgfVxuXG4gIG9uRmlsdGVyRm9ybVN1Ym1pdCA9ICgpID0+IHRoaXMuc3VibWl0RmlsdGVyKClcbiAgb25SZXF1ZXN0Q2xvc2VTZXR0aW5ncyA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe3Nob3dTZXR0aW5nczogZmFsc2V9KVxuXG4gIG9uU2V0dGluZ3NDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dTZXR0aW5nczogIXRoaXMucy5zaG93U2V0dGluZ3N9KVxuICB9XG5cbiAgc3VibWl0RmlsdGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGZpbHRlckZvcm0gPSBkaWdnKHRoaXMudHQuZmlsdGVyRm9ybVJlZiwgXCJjdXJyZW50XCIpXG4gICAgY29uc3Qge2FwcEhpc3Rvcnl9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHFQYXJhbXMgPSBQYXJhbXMuc2VyaWFsaXplRm9ybShmaWx0ZXJGb3JtKVxuICAgIGNvbnN0IHtxdWVyeVFOYW1lfSA9IHRoaXMuc1xuICAgIGNvbnN0IGNoYW5nZVBhcmFtc1BhcmFtcyA9IHt9XG5cbiAgICBjaGFuZ2VQYXJhbXNQYXJhbXNbcXVlcnlRTmFtZV0gPSBKU09OLnN0cmluZ2lmeShxUGFyYW1zKVxuXG4gICAgUGFyYW1zLmNoYW5nZVBhcmFtcyhjaGFuZ2VQYXJhbXNQYXJhbXMsIHthcHBIaXN0b3J5fSlcbiAgfVxuXG4gIHN1Ym1pdEZpbHRlckRlYm91bmNlID0gZGVib3VuY2UodGhpcy50dC5zdWJtaXRGaWx0ZXIpXG59KSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLElBQUksRUFBRUMsSUFBSSxRQUFPLFdBQVc7QUFDcEMsT0FBT0MsS0FBSyxJQUFHQyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLFFBQU8sT0FBTztBQUN2RSxTQUFRQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxRQUFPLGNBQWM7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG1CQUFtQjtBQUM3QyxPQUFPQyxJQUFJLE1BQU0sbUJBQW1CO0FBQ3BDLE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBQ25DLE9BQU9DLFVBQVUsTUFBTSxlQUFlO0FBQ3RDLE9BQU9DLGFBQWEsTUFBTSxrQkFBa0I7QUFDNUMsT0FBT0MsUUFBUSxNQUFNLFVBQVU7QUFDL0IsT0FBT0MsYUFBYSxNQUFNLHlCQUF5QjtBQUNuRCxPQUFPQyxZQUFZLE1BQU0sUUFBUTtBQUNqQyxPQUFPQyxPQUFPLE1BQU0sV0FBVztBQUMvQixPQUFPQyxRQUFRLE1BQU0sd0JBQXdCO0FBQzdDLFNBQVFDLElBQUksUUFBTyxTQUFTO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxxQkFBcUI7QUFDeEMsT0FBT0MsWUFBWSxNQUFNLGlCQUFpQjtBQUMxQyxPQUFPQyxZQUFZLE1BQU0saUJBQWlCO0FBQzFDLE9BQU9DLElBQUksTUFBTSxlQUFlO0FBQ2hDLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFDeEMsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsUUFBUSxNQUFNLGFBQWE7QUFDbEMsT0FBT0MsUUFBUSxNQUFNLHVCQUF1QjtBQUM1QyxPQUFPQyxNQUFN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
977
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiZGlncyIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwidXNlUmVmIiwiQW5pbWF0ZWQiLCJQbGF0Zm9ybSIsIlByZXNzYWJsZSIsIlZpZXciLCJCYXNlQ29tcG9uZW50IiwiQ2FyZCIsImNsYXNzTmFtZXMiLCJDb2xsZWN0aW9uIiwiY29sdW1uVmlzaWJsZSIsImRlYm91bmNlIiwiRHJhZ2dhYmxlU29ydCIsIkV2ZW50RW1pdHRlciIsIkZpbHRlcnMiLCJGbGF0TGlzdCIsIkZvcm0iLCJIZWFkZXIiLCJIZWFkZXJDb2x1bW4iLCJIZWFkZXJTZWxlY3QiLCJJY29uIiwiaW5jb3Jwb3JhdGUiLCJpbmZsZWN0aW9uIiwibWVtbyIsIm1vZGVsQ2xhc3NSZXF1aXJlIiwiTW9kZWxSb3ciLCJQYWdpbmF0ZSIsIlBhcmFtcyIsIlByb3BUeXBlcyIsIlJvdyIsInNlbGVjdENhbGN1bGF0b3IiLCJTZWxlY3QiLCJTZXR0aW5ncyIsInNoYXBlQ29tcG9uZW50IiwiVGFibGVTZXR0aW5ncyIsIlRleHQiLCJ1bmlxdW5pemUiLCJ1c2VCcmVha3BvaW50IiwidXNlQ29sbGVjdGlvbiIsInVzZUkxOG4iLCJ1c2VFdmVudEVtaXR0ZXIiLCJ1c2VNb2RlbEV2ZW50IiwidXNlUXVlcnlQYXJhbXMiLCJXaWR0aHMiLCJwYWdpbmF0aW9uT3B0aW9ucyIsIldvcmtlclBsdWdpbnNDaGVja0FsbENoZWNrYm94IiwibGF6eSIsIlRhYmxlQ29udGV4dCIsIkxpc3RIZWFkZXJDb21wb25lbnQiLCJzZXR1cCIsInVzZVN0YXRlcyIsImxhc3RVcGRhdGUiLCJEYXRlIiwicmVuZGVyIiwibWRVcCIsInRhYmxlQ29udGV4dFZhbHVlIiwidGFibGUiLCJjb2xsZWN0aW9uIiwiZXZlbnRzIiwicXVlcnlXaXRob3V0UGFnaW5hdGlvbiIsInQiLCJ0dCIsInF1ZXJ5Iiwib25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZCIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU2V0IiwiY2xhc3MiLCJzdHlsZSIsInN0eWxlRm9yUm93SGVhZGVyIiwicCIsIndvcmtwbGFjZSIsInMiLCJjdXJyZW50V29ya3BsYWNlIiwic3R5bGVGb3JIZWFkZXIiLCJ3aWR0aCIsInVuZGVmaW5lZCIsIm1hcmdpbkhvcml6b250YWwiLCJtYXJnaW5MZWZ0IiwiZGVmYXVsdFZhbHVlIiwicHJlcGFyZWRDb2x1bW5zIiwiRnJhZ21lbnQiLCJoZWFkZXJzQ29udGVudEZyb21Db2x1bW5zIiwidHlwZSIsInNldFN0YXRlIiwiQXBpTWFrZXJUYWJsZSIsImRlZmF1bHRQcm9wcyIsImNhcmQiLCJjdXJyZW50VXNlciIsImRlc3Ryb3lFbmFibGVkIiwiZmlsdGVyQ2FyZCIsImZpbHRlclN1Ym1pdEJ1dHRvbiIsIm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQiLCJub1JlY29yZHNGb3VuZENvbnRlbnQiLCJwcmVsb2FkcyIsInNlbGVjdCIsInN0eWxlVUkiLCJwcm9wVHlwZXMiLCJhYmlsaXRpZXMiLCJvYmplY3QiLCJhY3Rpb25zQ29udGVudCIsImZ1bmMiLCJhcHBIaXN0b3J5IiwiYm9vbCIsImlzUmVxdWlyZWQiLCJjbGFzc05hbWUiLCJzdHJpbmciLCJpbnN0YW5jZU9mIiwiY29sdW1ucyIsIm9uZU9mVHlwZSIsImFycmF5IiwiY29udHJvbHMiLCJkZWZhdWx0RGF0ZUZvcm1hdE5hbWUiLCJkZWZhdWx0RGF0ZVRpbWVGb3JtYXROYW1lIiwiZGVmYXVsdFBhcmFtcyIsImRlc3Ryb3lNZXNzYWdlIiwiZWRpdE1vZGVsUGF0aCIsImZpbHRlckNvbnRlbnQiLCJmaWx0ZXJTdWJtaXRMYWJlbCIsIm5vZGUiLCJncm91cEJ5IiwiaGVhZGVyIiwiaWRlbnRpZmllciIsIm1vZGVsQ2xhc3MiLCJvbk1vZGVsc0xvYWRlZCIsInBhZ2luYXRlQ29udGVudCIsInBhZ2luYXRpb25Db21wb25lbnQiLCJxdWVyeU1ldGhvZCIsInF1ZXJ5TmFtZSIsInNlbGVjdENvbHVtbnMiLCJzdHlsZXMiLCJ2aWV3TW9kZWxQYXRoIiwiZHJhZ2dhYmxlU29ydEV2ZW50cyIsInRhYmxlU2V0dGluZ3MiLCJuYW1lc3BhY2UiLCJuYW1lIiwiYnJlYWtwb2ludCIsInF1ZXJ5UGFyYW1zIiwic2V0SW5zdGFuY2UiLCJmaWx0ZXJGb3JtUmVmIiwiY29sbGVjdGlvbktleSIsIm1vZGVsQ2xhc3NEYXRhIiwicHJvcHMiLCJxdWVyeVNOYW1lIiwiY29sdW1uc0FzQXJyYXkiLCJjdXJyZW50V29ya3BsYWNlQ291bnQiLCJmaWx0ZXJGb3JtIiwiY29sdW1uc1RvU2hvdyIsImRyYWdnZWRDb2x1bW4iLCJwcmVsb2FkIiwicXVlcnlRTmFtZSIsInF1ZXJ5UGFnZU5hbWUiLCJyZXNpemluZyIsInNob3dGaWx0ZXJzIiwiQm9vbGVhbiIsInNob3dTZXR0aW5ncyIsInRhYmxlU2V0dGluZyIsInRhYmxlU2V0dGluZ0xvYWRlZCIsInRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleSIsIndpZHRocyIsImNhY2hlS2V5IiwibG9hZEN1cnJlbnRXb3JrcGxhY2UiLCJ0aGVuIiwibG9hZEN1cnJlbnRXb3JrcGxhY2VDb3VudCIsImlkIiwibG9hZFRhYmxlU2V0dGluZyIsIm9uTGlua3NDcmVhdGVkIiwib25MaW5rc0Rlc3Ryb3llZCIsImNvbGxlY3Rpb25SZWFkeSIsImFiaWxpdGllc1RvTG9hZCIsImlmQ29uZGl0aW9uIiwicGFnaW5hdGlvbiIsInN0YXRlIiwiY2xvbmUiLCJleGNlcHQiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ0VuZEFuaW1hdGlvbiIsImdldENvbHVtbnNUb1Nob3ciLCJpdGVtIiwiYW5pbWF0ZWRaSW5kZXgiLCJzZXRWYWx1ZSIsIldvcmtwbGFjZSIsInJlc3VsdCIsImN1cnJlbnQiLCJXb3JrcGxhY2VMaW5rIiwicmFuc2FjayIsInJlc291cmNlX3R5cGVfZXEiLCJ3b3JrcGxhY2VfaWRfZXEiLCJjb3VudCIsImZpbHRlciIsImNvbHVtbiIsInRhYmxlU2V0dGluZ0NvbHVtbiIsInNvcnQiLCJhIiwiYiIsInBvc2l0aW9uIiwibG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzIiwibWVyZ2VkUHJlbG9hZHMiLCJmdWxsQ2FjaGVLZXkiLCJ1cGRhdGVTZXR0aW5nc0Z1bGxDYWNoZUtleSIsImNvbmNhdCIsIm1vZGVscyIsIm92ZXJhbGxDb3VudCIsInFQYXJhbXMiLCJzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCIsInNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQiLCJhcmdzIiwiRXJyb3IiLCJvbkxheW91dCIsIm9uQ29udGFpbmVyTGF5b3V0IiwiY29udGFpbmVyIiwiY2FyZE9yVGFibGUiLCJvd25BYmlsaXRpZXMiLCJwdXNoIiwibGVuZ3RoIiwibW9kZWxDbGFzc05hbWUiLCJtb2RlbE5hbWUiLCJhYmlsaXR5IiwicmVzdFByb3BzIiwiaGVhZGVyQ29udGVudCIsIlBhZ2luYXRpb25Db21wb25lbnQiLCJodW1hbiIsImZsYXRMaXN0U3R5bGUiLCJvdmVyZmxvd1giLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJmbGF0TGlzdCIsIlByb3ZpZGVyIiwidmFsdWUiLCJfZXh0ZW5kcyIsImRhdGEiLCJleHRyYURhdGEiLCJrZXlFeHRyYWN0b3IiLCJrZXlFeHRyYXRvciIsInJlbmRlckl0ZW0iLCJzaG93c0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3IiLCJ0YWJsZUNvbnRyb2xzIiwiZm9vdGVyIiwidGFibGVGb290ZXIiLCJlIiwibmF0aXZlRXZlbnQiLCJsYXlvdXQiLCJ0YWJsZVdpZHRoIiwiY3JlYXRlZCIsImFtb3VudENyZWF0ZWQiLCJwcmV2U3RhdGUiLCJkZXN0cm95ZWQiLCJhbW91bnREZXN0cm95ZWQiLCJtb2RlbCIsInN1Ym1pdEZpbHRlciIsInN1Ym1pdEZpbHRlckRlYm91bmNlIiwiZm9ybVJlZiIsIm9uU3VibWl0Iiwib25GaWx0ZXJGb3JtU3VibWl0Iiwic2V0Rm9ybSIsInNldFN0YXRlcyIsIm9uRmlsdGVyQ2hhbmdlZCIsIm9uRmlsdGVyQ2hhbmdlZFdpdGhEZWxheSIsIm1hcmdpblRvcCIsIm9uRmlsdGVyQ2xpY2tlZCIsInByZXZlbnREZWZhdWx0Iiwib25QZXJQYWdlQ2hhbmdlZCIsIm5ld1BlclBhZ2VWYWx1ZSIsInBlcktleSIsInBhcmFtc0NoYW5nZSIsImNoYW5nZVBhcmFtcyIsImluZGV4IiwiY29sdW1uV2lkdGhzIiwia2V5Iiwic3R5bGVGb3JDb2x1bW4iLCJjb2x1bW5JbmRleCIsImV2ZW4iLCJkZWZhdWx0U3R5bGUiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJvdmVyZmxvdyIsIk9iamVjdCIsImFzc2lnbiIsImJhY2tncm91bmRDb2xvciIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwibWFyZ2luUmlnaHQiLCJib3JkZXJSaWdodCIsImFjdHVhbFN0eWxlIiwic3R5bGVGb3JIZWFkZXJUZXh0IiwiZm9udFdlaWdodCIsInN0eWxlRm9yUm93IiwiZmxleCIsIm9uUHJlc3MiLCJzaXplIiwib25SZXF1ZXN0Q2xvc2UiLCJvblJlcXVlc3RDbG9zZVNldHRpbmdzIiwib25TZXR0aW5nc0NsaWNrZWQiLCJjdXJyZW50UGFnZSIsInRvdGFsQ291bnQiLCJwZXJQYWdlIiwidG8iLCJNYXRoIiwibWluIiwiZnJvbSIsInRvdGFsX2NvdW50Iiwic2VsZWN0ZWQiLCJvbkNoYW5nZSIsIm9wdGlvbnMiLCJqb2luIiwiY29sdW1uUHJvcHMiLCJ0ZXh0Q2VudGVyIiwidGV4dEFsaWduIiwidGV4dFJpZ2h0IiwiaGVhZGVyUHJvcHMiLCJob3Jpem9udGFsIiwiZHJhZ0xpc3RrZXlFeHRyYWN0b3IiLCJvbkl0ZW1Nb3ZlZCIsIm9uUmVvcmRlcmVkIiwiZHJhZ0xpc3RSZW5kZXJJdGVtQ29udGVudCIsImRyYWdMaXN0Q2FjaGVLZXlFeHRyYWN0b3IiLCJhbmltYXRpb25BcmdzIiwiaXRlbUluZGV4IiwieCIsInkiLCJhbmltYXRlZFBvc2l0aW9uIiwidGltaW5nIiwic3RhcnQiLCJmcm9tSXRlbSIsImZyb21Qb3NpdGlvbiIsInRvSXRlbSIsInRvUG9zaXRpb24iLCJUYWJsZVNldHRpbmdDb2x1bW4iLCJjb25zdHJ1Y3RvciIsInRvQ29sdW1uIiwiZmluZCIsInVwZGF0ZSIsImlzQWN0aXZlIiwidG91Y2hQcm9wcyIsImFuaW1hdGVkV2lkdGgiLCJhY3RpdmUiLCJoZWFkZXJDbGFzc05hbWVGb3JDb2x1bW4iLCJjb21tb25Qcm9wcyIsImhlYWRlckxhYmVsRm9yQ29sdW1uIiwibGFiZWwiLCJjdXJyZW50TW9kZWxDbGFzcyIsInBhdGgiLCJwYXRoUGFydCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvbnNoaXBJbkFycmF5IiwidW5kZXJzY29yZSIsImF0dHJpYnV0ZSIsImh1bWFuQXR0cmlidXRlTmFtZSIsImNoYW5nZVBhcmFtc1BhcmFtcyIsImFzT2JqZWN0IiwiT1MiLCJuYXZ0aXZlRm9ybVBhcmFtcyIsInNlcmlhbGl6ZUZvcm0iLCJKU09OIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhYmxlL3RhYmxlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RpZ2csIGRpZ3N9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IFJlYWN0LCB7Y3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtBbmltYXRlZCwgUGxhdGZvcm0sIFByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENhcmQgZnJvbSBcIi4uL2Jvb3RzdHJhcC9jYXJkXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gXCIuLi9jb2xsZWN0aW9uXCJcbmltcG9ydCBjb2x1bW5WaXNpYmxlIGZyb20gXCIuL2NvbHVtbi12aXNpYmxlXCJcbmltcG9ydCBkZWJvdW5jZSBmcm9tIFwiZGVib3VuY2VcIlxuaW1wb3J0IERyYWdnYWJsZVNvcnQgZnJvbSBcIi4uL2RyYWdnYWJsZS1zb3J0L2luZGV4XCJcbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSBcImV2ZW50c1wiXG5pbXBvcnQgRmlsdGVycyBmcm9tIFwiLi9maWx0ZXJzXCJcbmltcG9ydCBGbGF0TGlzdCBmcm9tIFwiLi9jb21wb25lbnRzL2ZsYXQtbGlzdFwiXG5pbXBvcnQge0Zvcm19IGZyb20gXCIuLi9mb3JtXCJcbmltcG9ydCBIZWFkZXIgZnJvbSBcIi4vY29tcG9uZW50cy9oZWFkZXJcIlxuaW1wb3J0IEhlYWRlckNvbHVtbiBmcm9tIFwiLi9oZWFkZXItY29sdW1uXCJcbmltcG9ydCBIZWFkZXJTZWxlY3QgZnJvbSBcIi4vaGVhZGVyLXNlbGVjdFwiXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vdXRpbHMvaWNvblwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi4vbW9kZWwtY2xhc3MtcmVxdWlyZVwiXG5pbXBvcnQgTW9kZWxSb3cgZnJvbSBcIi4vbW9kZWwtcm93XCJcbmltcG9ydCBQYWdpbmF0ZSBmcm9tIFwiLi4vYm9vdHN0cmFwL3BhZ2luYXRlXCJcbmltcG9ydCBQYXJhbXMgZnJvbSBcIi4uL3BhcmFtc1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBSb3cgZnJvbSBcIi4vY29tcG9uZW50cy9yb3dcIlxuaW1wb3J0IHNlbGVjdENhbGN1bGF0b3IgZnJvbSBcIi4vc2VsZWN0LWNhbGN1bGF0b3JcIlxuaW1wb3J0IFNlbGVjdCBmcm9tIFwiLi4vaW5wdXRzL3NlbGVjdFwiXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MvaW5kZXhcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IFRhYmxlU2V0dGluZ3MgZnJvbSBcIi4vdGFibGUtc2V0dGluZ3NcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4uL3V0aWxzL3RleHRcIlxuaW1wb3J0IHVuaXF1bml6ZSBmcm9tIFwidW5pcXVuaXplXCJcbmltcG9ydCB1c2VCcmVha3BvaW50IGZyb20gXCIuLi91c2UtYnJlYWtwb2ludFwiXG5pbXBvcnQgdXNlQ29sbGVjdGlvbiBmcm9tIFwiLi4vdXNlLWNvbGxlY3Rpb25cIlxuaW1wb3J0IHVzZUkxOG4gZnJvbSBcImkxOG4tb24tc3Rlcm9pZHMvc3JjL3VzZS1pMThuXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4uL3VzZS1ldmVudC1lbWl0dGVyXCJcbmltcG9ydCB1c2VNb2RlbEV2ZW50IGZyb20gXCIuLi91c2UtbW9kZWwtZXZlbnRcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXNcIlxuaW1wb3J0IFdpZHRocyBmcm9tIFwiLi93aWR0aHNcIlxuXG5jb25zdCBwYWdpbmF0aW9uT3B0aW9ucyA9IFszMCwgNjAsIDkwLCBbXCJBbGxcIiwgXCJhbGxcIl1dXG5jb25zdCBXb3JrZXJQbHVnaW5zQ2hlY2tBbGxDaGVja2JveCA9IFJlYWN0LmxhenkoKCkgPT4gaW1wb3J0KFwiLi93b3JrZXItcGx1Z2lucy1jaGVjay1hbGwtY2hlY2tib3hcIikpXG5jb25zdCBUYWJsZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KClcblxuY29uc3QgTGlzdEhlYWRlckNvbXBvbmVudCA9IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgTGlzdEhlYWRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzZXR1cCgpIHtcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpXG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bWRVcH0gPSB1c2VCcmVha3BvaW50KClcbiAgICBjb25zdCB0YWJsZUNvbnRleHRWYWx1ZSA9IHVzZUNvbnRleHQoVGFibGVDb250ZXh0KVxuICAgIGNvbnN0IHRhYmxlID0gdGFibGVDb250ZXh0VmFsdWUudGFibGVcbiAgICBjb25zdCB7Y29sbGVjdGlvbiwgZXZlbnRzLCBxdWVyeVdpdGhvdXRQYWdpbmF0aW9uLCB0fSA9IHRhYmxlLnR0XG4gICAgY29uc3Qge3F1ZXJ5fSA9IGRpZ3MoY29sbGVjdGlvbiwgXCJxdWVyeVwiKVxuXG4gICAgdXNlRXZlbnRFbWl0dGVyKGV2ZW50cywgXCJjb2x1bW5WaXNpYmlsaXR5VXBkYXRlZFwiLCB0aGlzLnR0Lm9uQ29sdW1uVmlzaWJpbGl0eVVwZGF0ZWQpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJvdyBkYXRhU2V0PXt7Y2xhc3M6IFwiYXBpLW1ha2VyL3RhYmxlL2hlYWRlci1yb3dcIn19IHN0eWxlPXt0YWJsZS5zdHlsZUZvclJvd0hlYWRlcigpfT5cbiAgICAgICAge3RhYmxlLnAud29ya3BsYWNlICYmIHRhYmxlLnMuY3VycmVudFdvcmtwbGFjZSAmJlxuICAgICAgICAgIDxIZWFkZXIgc3R5bGU9e3RhYmxlLnN0eWxlRm9ySGVhZGVyKHtzdHlsZToge3dpZHRoOiBtZFVwID8gNDEgOiB1bmRlZmluZWR9fSl9PlxuICAgICAgICAgICAgPFdvcmtlclBsdWdpbnNDaGVja0FsbENoZWNrYm94XG4gICAgICAgICAgICAgIGN1cnJlbnRXb3JrcGxhY2U9e3RhYmxlLnMuY3VycmVudFdvcmtwbGFjZX1cbiAgICAgICAgICAgICAgcXVlcnk9e3F1ZXJ5V2l0aG91dFBhZ2luYXRpb259XG4gICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luSG9yaXpvbnRhbDogXCJhdXRvXCJ9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHshbWRVcCAmJlxuICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17e21hcmdpbkxlZnQ6IDN9fT5cbiAgICAgICAgICAgICAgICB7dChcIi5zZWxlY3RfYWxsX2ZvdW5kXCIsIHtkZWZhdWx0VmFsdWU6IFwiU2VsZWN0IGFsbCBmb3VuZFwifSl9XG4gICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L0hlYWRlcj5cbiAgICAgICAgfVxuICAgICAgICB7IW1kVXAgJiZcbiAgICAgICAgICA8SGVhZGVyIHN0eWxlPXt0YWJsZS5zdHlsZUZvckhlYWRlcih7c3R5bGU6IHt9fSl9PlxuICAgICAgICAgICAgPEhlYWRlclNlbGVjdCBwcmVwYXJlZENvbHVtbnM9e3RhYmxlLnMucHJlcGFyZWRDb2x1bW5zfSBxdWVyeT17cXVlcnl9IHRhYmxlPXt0YWJsZX0gLz5cbiAgICAgICAgICA8L0hlYWRlcj5cbiAgICAgICAgfVxuICAgICAgICB7bWRVcCAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7dGFibGUuaGVhZGVyc0NvbnRlbnRGcm9tQ29sdW1ucygpfVxuICAgICAgICAgICAgPEhlYWRlciBzdHlsZT17dGFibGUuc3R5bGVGb3JIZWFkZXIoe3N0eWxlOiB7fSwgdHlwZTogXCJhY3Rpb25zXCJ9KX0gLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgfVxuICAgICAgPC9Sb3c+XG4gICAgKVxuICB9XG5cbiAgb25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe2xhc3RVcGRhdGU6IG5ldyBEYXRlKCl9KVxufSkpXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJUYWJsZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGNhcmQ6IHRydWUsXG4gICAgY3VycmVudFVzZXI6IG51bGwsXG4gICAgZGVzdHJveUVuYWJsZWQ6IHRydWUsXG4gICAgZmlsdGVyQ2FyZDogdHJ1ZSxcbiAgICBmaWx0ZXJTdWJtaXRCdXR0b246IHRydWUsXG4gICAgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogdW5kZWZpbmVkLFxuICAgIG5vUmVjb3Jkc0ZvdW5kQ29udGVudDogdW5kZWZpbmVkLFxuICAgIHByZWxvYWRzOiBbXSxcbiAgICBzZWxlY3Q6IHt9LFxuICAgIHN0eWxlVUk6IHRydWUsXG4gICAgd29ya3BsYWNlOiBmYWxzZVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhYmlsaXRpZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgYWN0aW9uc0NvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGFwcEhpc3Rvcnk6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2FyZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29sbGVjdGlvbjogUHJvcFR5cGVzLmluc3RhbmNlT2YoQ29sbGVjdGlvbiksXG4gICAgY29sdW1uczogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMuZnVuY10pLFxuICAgIGNvbnRyb2xzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBjdXJyZW50VXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkZWZhdWx0RGF0ZUZvcm1hdE5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGVmYXVsdERhdGVUaW1lRm9ybWF0TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZWZhdWx0UGFyYW1zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRlc3Ryb3lFbmFibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGRlc3Ryb3lNZXNzYWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGVkaXRNb2RlbFBhdGg6IFByb3BUeXBlcy5mdW5jLFxuICAgIGZpbHRlckNhcmQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgZmlsdGVyQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZmlsdGVyU3VibWl0TGFiZWw6IFByb3BUeXBlcy5ub2RlLFxuICAgIGdyb3VwQnk6IFByb3BUeXBlcy5hcnJheSxcbiAgICBoZWFkZXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gICAgaWRlbnRpZmllcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBtb2RlbENsYXNzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG5vUmVjb3Jkc0ZvdW5kQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25Nb2RlbHNMb2FkZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBhZ2luYXRlQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGFnaW5hdGlvbkNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcHJlbG9hZHM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIHF1ZXJ5TWV0aG9kOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBxdWVyeU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2VsZWN0OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHNlbGVjdENvbHVtbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc3R5bGVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHN0eWxlVUk6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgdmlld01vZGVsUGF0aDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgd29ya3BsYWNlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkXG4gIH1cblxuICBkcmFnZ2FibGVTb3J0RXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICB0YWJsZVNldHRpbmdzID0gbnVsbFxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHt0fSA9IHVzZUkxOG4oe25hbWVzcGFjZTogXCJqcy5hcGlfbWFrZXIudGFibGVcIn0pXG4gICAgY29uc3Qge25hbWU6IGJyZWFrcG9pbnQsIG1kVXB9ID0gdXNlQnJlYWtwb2ludCgpXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICB0aGlzLnNldEluc3RhbmNlKHtcbiAgICAgIGJyZWFrcG9pbnQsXG4gICAgICBmaWx0ZXJGb3JtUmVmOiB1c2VSZWYoKSxcbiAgICAgIG1kVXAsXG4gICAgICB0XG4gICAgfSlcblxuICAgIGNvbnN0IGNvbGxlY3Rpb25LZXkgPSBkaWdnKHRoaXMucC5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwiY29sbGVjdGlvbktleVwiKVxuICAgIGxldCBxdWVyeU5hbWUgPSB0aGlzLnByb3BzLnF1ZXJ5TmFtZVxuXG4gICAgaWYgKCFxdWVyeU5hbWUpIHF1ZXJ5TmFtZSA9IGNvbGxlY3Rpb25LZXlcblxuICAgIGNvbnN0IHF1ZXJ5U05hbWUgPSBgJHtxdWVyeU5hbWV9X3NgXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBjb2x1bW5zOiAoKSA9PiB0aGlzLmNvbHVtbnNBc0FycmF5KCksXG4gICAgICBjdXJyZW50V29ya3BsYWNlOiB1bmRlZmluZWQsXG4gICAgICBjdXJyZW50V29ya3BsYWNlQ291bnQ6IG51bGwsXG4gICAgICBmaWx0ZXJGb3JtOiBudWxsLFxuICAgICAgY29sdW1uc1RvU2hvdzogbnVsbCxcbiAgICAgIGRyYWdnZWRDb2x1bW46IG51bGwsXG4gICAgICBpZGVudGlmaWVyOiAoKSA9PiB0aGlzLnByb3BzLmlkZW50aWZpZXIgfHwgYCR7Y29sbGVjdGlvbktleX0tZGVmYXVsdGAsXG4gICAgICBsYXN0VXBkYXRlOiAoKSA9PiBuZXcgRGF0ZSgpLFxuICAgICAgcHJlbG9hZDogdW5kZWZpbmVkLFxuICAgICAgcHJlcGFyZWRDb2x1bW5zOiB1bmRlZmluZWQsXG4gICAgICBxdWVyeU5hbWUsXG4gICAgICBxdWVyeVFOYW1lOiAoKSA9PiBgJHtxdWVyeU5hbWV9X3FgLFxuICAgICAgcXVlcnlQYWdlTmFtZTogKCkgPT4gYCR7cXVlcnlOYW1lfV9wYWdlYCxcbiAgICAgIHF1ZXJ5U05hbWUsXG4gICAgICByZXNpemluZzogZmFsc2UsXG4gICAgICBzaG93RmlsdGVyczogKCkgPT4gQm9vbGVhbihxdWVyeVBhcmFtc1txdWVyeVNOYW1lXSksXG4gICAgICBzaG93U2V0dGluZ3M6IGZhbHNlLFxuICAgICAgdGFibGVTZXR0aW5nOiB1bmRlZmluZWQsXG4gICAgICB0YWJsZVNldHRpbmdMb2FkZWQ6IGZhbHNlLFxuICAgICAgdGFibGVTZXR0aW5nRnVsbENhY2hlS2V5OiB1bmRlZmluZWQsXG4gICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgd2lkdGhzOiBudWxsXG4gICAgfSlcblxuICAgIHRoaXMudGFibGVDb250ZXh0VmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgY2FjaGVLZXk6IHRoaXMucy50YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXksXG4gICAgICAgIGxhc3RVcGRhdGU6IHRoaXMucy5sYXN0VXBkYXRlLFxuICAgICAgICByZXNpemluZzogdGhpcy5zLnJlc2l6aW5nLFxuICAgICAgICB0YWJsZTogdGhpc1xuICAgICAgfSksXG4gICAgICBbdGhpcy5zLmxhc3RVcGRhdGUsIHRoaXMucy5yZXNpemluZywgdGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleV1cbiAgICApXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnByb3BzLndvcmtwbGFjZSkge1xuICAgICAgICB0aGlzLmxvYWRDdXJyZW50V29ya3BsYWNlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkQ3VycmVudFdvcmtwbGFjZUNvdW50KClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LCBbdGhpcy5wLmN1cnJlbnRVc2VyPy5pZCgpXSlcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnR0LnRhYmxlU2V0dGluZ3MgJiYgdGhpcy5zLndpZHRoKSB7XG4gICAgICAgIHRoaXMubG9hZFRhYmxlU2V0dGluZygpXG4gICAgICB9XG4gICAgfSwgW3RoaXMucC5jdXJyZW50VXNlcj8uaWQoKSwgdGhpcy5zLndpZHRoXSlcblxuICAgIHVzZU1vZGVsRXZlbnQodGhpcy5zLmN1cnJlbnRXb3JrcGxhY2UsIFwid29ya3BsYWNlX2xpbmtzX2NyZWF0ZWRcIiwgdGhpcy50dC5vbkxpbmtzQ3JlYXRlZClcbiAgICB1c2VNb2RlbEV2ZW50KHRoaXMucy5jdXJyZW50V29ya3BsYWNlLCBcIndvcmtwbGFjZV9saW5rc19kZXN0cm95ZWRcIiwgdGhpcy50dC5vbkxpbmtzRGVzdHJveWVkKVxuXG4gICAgbGV0IGNvbGxlY3Rpb25SZWFkeSA9IHRydWVcbiAgICBsZXQgc2VsZWN0XG5cbiAgICBpZiAoIXRoaXMucy5wcmVwYXJlZENvbHVtbnMpIHtcbiAgICAgIGNvbGxlY3Rpb25SZWFkeSA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKGNvbGxlY3Rpb25SZWFkeSkge1xuICAgICAgc2VsZWN0ID0gc2VsZWN0Q2FsY3VsYXRvcih7dGFibGU6IHRoaXN9KVxuICAgIH1cblxuICAgIHRoaXMuY29sbGVjdGlvbiA9IHVzZUNvbGxlY3Rpb24oe1xuICAgICAgYWJpbGl0aWVzOiB0aGlzLmFiaWxpdGllc1RvTG9hZCgpLFxuICAgICAgZGVmYXVsdFBhcmFtczogdGhpcy5wcm9wcy5kZWZhdWx0UGFyYW1zLFxuICAgICAgY29sbGVjdGlvbjogdGhpcy5wcm9wcy5jb2xsZWN0aW9uLFxuICAgICAgZ3JvdXBCeTogdGhpcy5wcm9wcy5ncm91cEJ5LFxuICAgICAgaWZDb25kaXRpb246IGNvbGxlY3Rpb25SZWFkeSxcbiAgICAgIG1vZGVsQ2xhc3M6IHRoaXMucHJvcHMubW9kZWxDbGFzcyxcbiAgICAgIG9uTW9kZWxzTG9hZGVkOiB0aGlzLnByb3BzLm9uTW9kZWxzTG9hZGVkLFxuICAgICAgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogdGhpcy5wcm9wcy5ub1JlY29yZHNBdmFpbGFibGVDb250ZW50LFxuICAgICAgbm9SZWNvcmRzRm91bmRDb250ZW50OiB0aGlzLnByb3BzLm5vUmVjb3Jkc0ZvdW5kQ29udGVudCxcbiAgICAgIHBhZ2luYXRpb246IHRydWUsXG4gICAgICBwcmVsb2FkczogdGhpcy5zdGF0ZS5wcmVsb2FkLFxuICAgICAgcXVlcnlNZXRob2Q6IHRoaXMucHJvcHMucXVlcnlNZXRob2QsXG4gICAgICBxdWVyeU5hbWUsXG4gICAgICBzZWxlY3QsXG4gICAgICBzZWxlY3RDb2x1bW5zOiB0aGlzLnByb3BzLnNlbGVjdENvbHVtbnNcbiAgICB9KVxuICAgIHRoaXMucXVlcnlXaXRob3V0UGFnaW5hdGlvbiA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiB0aGlzLmNvbGxlY3Rpb24/LnF1ZXJ5Py5jbG9uZSgpPy5leGNlcHQoXCJwYWdlXCIpLFxuICAgICAgW3RoaXMuY29sbGVjdGlvbi5xdWVyeV1cbiAgICApXG5cbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy50dC5kcmFnZ2FibGVTb3J0RXZlbnRzLCBcIm9uRHJhZ1N0YXJ0XCIsIHRoaXMudHQub25EcmFnU3RhcnQpXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMudHQuZHJhZ2dhYmxlU29ydEV2ZW50cywgXCJvbkRyYWdFbmRBbmltYXRpb25cIiwgdGhpcy50dC5vbkRyYWdFbmRBbmltYXRpb24pXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMudHQuZXZlbnRzLCBcImNvbHVtblZpc2liaWxpdHlVcGRhdGVkXCIsIHRoaXMudHQub25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZClcbiAgfVxuXG4gIG9uQ29sdW1uVmlzaWJpbGl0eVVwZGF0ZWQgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtjb2x1bW5zVG9TaG93OiB0aGlzLmdldENvbHVtbnNUb1Nob3codGhpcy5zLmNvbHVtbnMpLCBsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbiAgb25EcmFnU3RhcnQgPSAoe2l0ZW19KSA9PiBpdGVtLmFuaW1hdGVkWkluZGV4LnNldFZhbHVlKDk5OTkpXG4gIG9uRHJhZ0VuZEFuaW1hdGlvbiA9ICh7aXRlbX0pID0+IGl0ZW0uYW5pbWF0ZWRaSW5kZXguc2V0VmFsdWUoMClcblxuICBhc3luYyBsb2FkQ3VycmVudFdvcmtwbGFjZSgpIHtcbiAgICBjb25zdCBXb3JrcGxhY2UgPSBtb2RlbENsYXNzUmVxdWlyZShcIldvcmtwbGFjZVwiKVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFdvcmtwbGFjZS5jdXJyZW50KClcbiAgICBjb25zdCBjdXJyZW50V29ya3BsYWNlID0gZGlnZyhyZXN1bHQsIFwiY3VycmVudFwiLCAwKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7Y3VycmVudFdvcmtwbGFjZX0pXG4gIH1cblxuICBhc3luYyBsb2FkQ3VycmVudFdvcmtwbGFjZUNvdW50KCkge1xuICAgIGNvbnN0IFdvcmtwbGFjZUxpbmsgPSBtb2RlbENsYXNzUmVxdWlyZShcIldvcmtwbGFjZUxpbmtcIilcbiAgICBjb25zdCBjdXJyZW50V29ya3BsYWNlQ291bnQgPSBhd2FpdCBXb3JrcGxhY2VMaW5rXG4gICAgICAucmFuc2Fjayh7XG4gICAgICAgIHJlc291cmNlX3R5cGVfZXE6IHRoaXMucC5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSxcbiAgICAgICAgd29ya3BsYWNlX2lkX2VxOiB0aGlzLnMuY3VycmVudFdvcmtwbGFjZS5pZCgpXG4gICAgICB9KVxuICAgICAgLmNvdW50KClcblxuICAgIHRoaXMuc2V0U3RhdGUoe2N1cnJlbnRXb3JrcGxhY2VDb3VudH0pXG4gIH1cblxuICBnZXRDb2x1bW5zVG9TaG93KGNvbHVtbnMpIHtcbiAgICByZXR1cm4gY29sdW1uc1xuICAgICAgLmZpbHRlcigoe2NvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1ufSkgPT4gY29sdW1uVmlzaWJsZShjb2x1bW4sIHRhYmxlU2V0dGluZ0NvbHVtbikpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS50YWJsZVNldHRpbmdDb2x1bW4ucG9zaXRpb24oKSAtIGIudGFibGVTZXR0aW5nQ29sdW1uLnBvc2l0aW9uKCkpXG4gIH1cblxuICBhc3luYyBsb2FkVGFibGVTZXR0aW5nKCkge1xuICAgIHRoaXMudGFibGVTZXR0aW5ncyA9IG5ldyBUYWJsZVNldHRpbmdzKHt0YWJsZTogdGhpc30pXG5cbiAgICBjb25zdCB0YWJsZVNldHRpbmcgPSBhd2FpdCB0aGlzLnRhYmxlU2V0dGluZ3MubG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzKClcbiAgICBjb25zdCB7Y29sdW1ucywgcHJlbG9hZH0gPSB0aGlzLnRhYmxlU2V0dGluZ3MucHJlcGFyZWRDb2x1bW5zKHRhYmxlU2V0dGluZylcbiAgICBjb25zdCB7d2lkdGh9ID0gdGhpcy5zXG4gICAgY29uc3Qgd2lkdGhzID0gbmV3IFdpZHRocyh7Y29sdW1ucywgdGFibGU6IHRoaXMsIHdpZHRofSlcbiAgICBjb25zdCBjb2x1bW5zVG9TaG93ID0gdGhpcy5nZXRDb2x1bW5zVG9TaG93KGNvbHVtbnMpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGNvbHVtbnMsXG4gICAgICBjb2x1bW5zVG9TaG93LFxuICAgICAgcHJlcGFyZWRDb2x1bW5zOiBjb2x1bW5zLFxuICAgICAgcHJlbG9hZDogdGhpcy5tZXJnZWRQcmVsb2FkcyhwcmVsb2FkKSxcbiAgICAgIHRhYmxlU2V0dGluZyxcbiAgICAgIHRhYmxlU2V0dGluZ0xvYWRlZDogdHJ1ZSxcbiAgICAgIHRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleTogdGFibGVTZXR0aW5nLmZ1bGxDYWNoZUtleSgpLFxuICAgICAgd2lkdGhzXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZVNldHRpbmdzRnVsbENhY2hlS2V5ID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7dGFibGVTZXR0aW5nRnVsbENhY2hlS2V5OiB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZy5mdWxsQ2FjaGVLZXkoKX0pXG5cbiAgY29sdW1uc0FzQXJyYXkgPSAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLmNvbHVtbnMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jb2x1bW5zKClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb2x1bW5zXG4gIH1cblxuICBtZXJnZWRQcmVsb2FkcyhwcmVsb2FkKSB7XG4gICAgY29uc3Qge3ByZWxvYWRzfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgbWVyZ2VkUHJlbG9hZHMgPSBbXVxuXG4gICAgaWYgKHByZWxvYWRzKSBtZXJnZWRQcmVsb2FkcyA9IG1lcmdlZFByZWxvYWRzLmNvbmNhdChwcmVsb2FkcylcbiAgICBpZiAocHJlbG9hZCkgbWVyZ2VkUHJlbG9hZHMgPSBtZXJnZWRQcmVsb2Fkcy5jb25jYXQocHJlbG9hZClcblxuICAgIHJldHVybiB1bmlxdW5pemUobWVyZ2VkUHJlbG9hZHMpXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzLCBub1JlY29yZHNBdmFpbGFibGVDb250ZW50LCBub1JlY29yZHNGb3VuZENvbnRlbnR9ID0gdGhpcy5wXG4gICAgY29uc3Qge2NvbGxlY3Rpb24sIGN1cnJlbnRVc2VyfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7cXVlcnlOYW1lLCBxdWVyeVNOYW1lLCBzaG93RmlsdGVyc30gPSB0aGlzLnNcbiAgICBjb25zdCB7XG4gICAgICBtb2RlbHMsXG4gICAgICBvdmVyYWxsQ291bnQsXG4gICAgICBxUGFyYW1zLFxuICAgICAgcXVlcnksXG4gICAgICByZXN1bHQsXG4gICAgICBzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCxcbiAgICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnRcbiAgICB9ID0gZGlncyhcbiAgICAgIHRoaXMuY29sbGVjdGlvbixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm92ZXJhbGxDb3VudFwiLFxuICAgICAgXCJxUGFyYW1zXCIsXG4gICAgICBcInF1ZXJ5XCIsXG4gICAgICBcInJlc3VsdFwiLFxuICAgICAgXCJzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudFwiLFxuICAgICAgXCJzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50XCJcbiAgICApXG5cbiAgICBpZiAoY29sbGVjdGlvbiAmJiBjb2xsZWN0aW9uLmFyZ3MubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUgIT0gbW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1vZGVsIGNsYXNzIGZyb20gY29sbGVjdGlvbiAnJHtjb2xsZWN0aW9uLmFyZ3MubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWV9JyBgICtcbiAgICAgICAgYGRpZG4ndCBtYXRjaCBtb2RlbCBjbGFzcyBvbiB0YWJsZTogJyR7bW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWV9J2BcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17e2NsYXNzOiB0aGlzLmNsYXNzTmFtZSgpfX0gb25MYXlvdXQ9e3RoaXMudHQub25Db250YWluZXJMYXlvdXR9IHN0eWxlPXt0aGlzLnByb3BzLnN0eWxlcz8uY29udGFpbmVyfT5cbiAgICAgICAge3Nob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50ICYmXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaXZlLXRhYmxlLS1uby1yZWNvcmRzLWF2YWlsYWJsZS1jb250ZW50XCI+XG4gICAgICAgICAgICB7bm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCh7bW9kZWxzLCBxUGFyYW1zLCBvdmVyYWxsQ291bnR9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICB7c2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCAmJlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGl2ZS10YWJsZS0tbm8tcmVjb3Jkcy1mb3VuZC1jb250ZW50XCI+XG4gICAgICAgICAgICB7bm9SZWNvcmRzRm91bmRDb250ZW50KHttb2RlbHMsIHFQYXJhbXMsIG92ZXJhbGxDb3VudH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIHtzaG93RmlsdGVycyAmJlxuICAgICAgICAgIDxGaWx0ZXJzIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn0gbW9kZWxDbGFzcz17bW9kZWxDbGFzc30gcXVlcnlOYW1lPXtxdWVyeU5hbWV9IHF1ZXJ5U05hbWU9e3F1ZXJ5U05hbWV9IC8+XG4gICAgICAgIH1cbiAgICAgICAge3FQYXJhbXMgJiYgcXVlcnkgJiYgcmVzdWx0ICYmIG1vZGVscyAmJiAhc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgJiYgIXNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQgJiZcbiAgICAgICAgICB0aGlzLmNhcmRPclRhYmxlKClcbiAgICAgICAgfVxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIGFiaWxpdGllc1RvTG9hZCAoKSB7XG4gICAgY29uc3QgYWJpbGl0aWVzVG9Mb2FkID0ge31cbiAgICBjb25zdCB7YWJpbGl0aWVzLCBtb2RlbENsYXNzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBvd25BYmlsaXRpZXMgPSBbXVxuXG4gICAgaWYgKHRoaXMucHJvcHMuZGVzdHJveUVuYWJsZWQpIG93bkFiaWxpdGllcy5wdXNoKFwiZGVzdHJveVwiKVxuICAgIGlmICh0aGlzLnByb3BzLmVkaXRNb2RlbFBhdGgpIG93bkFiaWxpdGllcy5wdXNoKFwiZWRpdFwiKVxuICAgIGlmICh0aGlzLnByb3BzLnZpZXdNb2RlbFBhdGgpIG93bkFiaWxpdGllcy5wdXNoKFwic2hvd1wiKVxuXG4gICAgaWYgKG93bkFiaWxpdGllcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcblxuICAgICAgYWJpbGl0aWVzVG9Mb2FkW21vZGVsQ2xhc3NOYW1lXSA9IG93bkFiaWxpdGllc1xuICAgIH1cblxuICAgIGlmIChhYmlsaXRpZXMpIHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIGluIGFiaWxpdGllcykge1xuICAgICAgICBpZiAoIShtb2RlbE5hbWUgaW4gYWJpbGl0aWVzVG9Mb2FkKSkge1xuICAgICAgICAgIGFiaWxpdGllc1RvTG9hZFttb2RlbE5hbWVdID0gW11cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgYWJpbGl0eSBvZiBhYmlsaXRpZXNbbW9kZWxOYW1lXSkge1xuICAgICAgICAgIGFiaWxpdGllc1RvTG9hZFttb2RlbE5hbWVdLnB1c2goYWJpbGl0eSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhYmlsaXRpZXNUb0xvYWRcbiAgfVxuXG4gIGNhcmRPclRhYmxlICgpIHtcbiAgICBjb25zdCB7XG4gICAgICBhYmlsaXRpZXMsXG4gICAgICBhY3Rpb25zQ29udGVudCxcbiAgICAgIGFwcEhpc3RvcnksXG4gICAgICBjYXJkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGNvbHVtbnMsXG4gICAgICBjb250cm9scyxcbiAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgZGVmYXVsdERhdGVGb3JtYXROYW1lLFxuICAgICAgZGVmYXVsdERhdGVUaW1lRm9ybWF0TmFtZSxcbiAgICAgIGRlZmF1bHRQYXJhbXMsXG4gICAgICBkZXN0cm95RW5hYmxlZCxcbiAgICAgIGRlc3Ryb3lNZXNzYWdlLFxuICAgICAgZWRpdE1vZGVsUGF0aCxcbiAgICAgIGZpbHRlckNhcmQsXG4gICAgICBmaWx0ZXJDb250ZW50LFxuICAgICAgZmlsdGVyU3VibWl0QnV0dG9uLFxuICAgICAgZmlsdGVyU3VibWl0TGFiZWwsXG4gICAgICBncm91cEJ5LFxuICAgICAgaGVhZGVyLFxuICAgICAgaWRlbnRpZmllcixcbiAgICAgIG1vZGVsQ2xhc3MsXG4gICAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50LFxuICAgICAgbm9SZWNvcmRzRm91bmRDb250ZW50LFxuICAgICAgb25Nb2RlbHNMb2FkZWQsXG4gICAgICBwYWdpbmF0ZUNvbnRlbnQsXG4gICAgICBwYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgICAgcHJlbG9hZHMsXG4gICAgICBxdWVyeU1ldGhvZCxcbiAgICAgIHF1ZXJ5TmFtZSxcbiAgICAgIHNlbGVjdCxcbiAgICAgIHNlbGVjdENvbHVtbnMsXG4gICAgICBzdHlsZVVJLFxuICAgICAgdmlld01vZGVsUGF0aCxcbiAgICAgIHdvcmtwbGFjZSxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge21vZGVscywgcVBhcmFtcywgcXVlcnksIHJlc3VsdH0gPSBkaWdzKHRoaXMuY29sbGVjdGlvbiwgXCJtb2RlbHNcIiwgXCJxUGFyYW1zXCIsIFwicXVlcnlcIiwgXCJyZXN1bHRcIilcblxuICAgIGxldCBoZWFkZXJDb250ZW50LCBQYWdpbmF0aW9uQ29tcG9uZW50XG5cbiAgICBpZiAodHlwZW9mIGhlYWRlciA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGhlYWRlckNvbnRlbnQgPSBoZWFkZXIoe21vZGVscywgcVBhcmFtcywgcXVlcnksIHJlc3VsdH0pXG4gICAgfSBlbHNlIGlmIChoZWFkZXIpIHtcbiAgICAgIGhlYWRlckNvbnRlbnQgPSBoZWFkZXJcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyQ29udGVudCA9IG1vZGVsQ2xhc3MubW9kZWxOYW1lKCkuaHVtYW4oe2NvdW50OiAyfSlcbiAgICB9XG5cbiAgICBpZiAoIXBhZ2luYXRlQ29udGVudCkge1xuICAgICAgaWYgKHBhZ2luYXRpb25Db21wb25lbnQpIHtcbiAgICAgICAgUGFnaW5hdGlvbkNvbXBvbmVudCA9IHBhZ2luYXRpb25Db21wb25lbnRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFBhZ2luYXRpb25Db21wb25lbnQgPSBQYWdpbmF0ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZsYXRMaXN0U3R5bGUgPSB7XG4gICAgICBvdmVyZmxvd1g6IFwiYXV0b1wiXG4gICAgfVxuXG4gICAgaWYgKHN0eWxlVUkpIHtcbiAgICAgIGZsYXRMaXN0U3R5bGUuYm9yZGVyID0gXCIxcHggc29saWQgI2RiZGJkYlwiXG4gICAgICBmbGF0TGlzdFN0eWxlLmJvcmRlclJhZGl1cyA9IDVcbiAgICB9XG5cbiAgICBjb25zdCBmbGF0TGlzdCA9IChcbiAgICAgIDxUYWJsZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMudHQudGFibGVDb250ZXh0VmFsdWV9PlxuICAgICAgICA8RmxhdExpc3RcbiAgICAgICAgICBkYXRhPXttb2RlbHN9XG4gICAgICAgICAgZGF0YVNldD17e1xuICAgICAgICAgICAgY2xhc3M6IGNsYXNzTmFtZXMoXCJhcGktbWFrZXItLXRhYmxlXCIsIGNsYXNzTmFtZSksXG4gICAgICAgICAgICBjYWNoZUtleTogdGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleSxcbiAgICAgICAgICAgIGxhc3RVcGRhdGU6IHRoaXMucy5sYXN0VXBkYXRlXG4gICAgICAgICAgfX1cbiAgICAgICAgICBleHRyYURhdGE9e3RoaXMucy5sYXN0VXBkYXRlfVxuICAgICAgICAgIGtleUV4dHJhY3Rvcj17dGhpcy50dC5rZXlFeHRyYXRvcn1cbiAgICAgICAgICBMaXN0SGVhZGVyQ29tcG9uZW50PXtMaXN0SGVhZGVyQ29tcG9uZW50fVxuICAgICAgICAgIHJlbmRlckl0ZW09e3RoaXMudHQucmVuZGVySXRlbX1cbiAgICAgICAgICBzaG93c0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3JcbiAgICAgICAgICBzdHlsZT17ZmxhdExpc3RTdHlsZX1cbiAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtmaWx0ZXJDb250ZW50ICYmIGZpbHRlckNhcmQgJiZcbiAgICAgICAgICA8Q2FyZCBjbGFzc05hbWU9XCJsaXZlLXRhYmxlLS1maWx0ZXItY2FyZCBtYi00XCI+XG4gICAgICAgICAgICB7dGhpcy5maWx0ZXJGb3JtKCl9XG4gICAgICAgICAgPC9DYXJkPlxuICAgICAgICB9XG4gICAgICAgIHtmaWx0ZXJDb250ZW50ICYmICFmaWx0ZXJDYXJkICYmXG4gICAgICAgICAgdGhpcy5maWx0ZXJGb3JtKClcbiAgICAgICAgfVxuICAgICAgICB7Y2FyZCAmJlxuICAgICAgICAgIDxDYXJkXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJsaXZlLXRhYmxlLS10YWJsZS1jYXJkXCIsIFwibWItNFwiLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgY29udHJvbHM9e3RoaXMudGFibGVDb250cm9scygpfVxuICAgICAgICAgICAgaGVhZGVyPXtoZWFkZXJDb250ZW50fVxuICAgICAgICAgICAgZm9vdGVyPXt0aGlzLnRhYmxlRm9vdGVyKCl9XG4gICAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtmbGF0TGlzdH1cbiAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgIH1cbiAgICAgICAgeyFjYXJkICYmIGZsYXRMaXN0fVxuICAgICAgICB7cmVzdWx0ICYmIFBhZ2luYXRpb25Db21wb25lbnQgJiZcbiAgICAgICAgICA8UGFnaW5hdGlvbkNvbXBvbmVudCByZXN1bHQ9e3Jlc3VsdH0gLz5cbiAgICAgICAgfVxuICAgICAgICB7cmVzdWx0ICYmIHBhZ2luYXRlQ29udGVudCAmJlxuICAgICAgICAgIHBhZ2luYXRlQ29udGVudCh7cmVzdWx0fSlcbiAgICAgICAgfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG5cbiAgb25Db250YWluZXJMYXlvdXQgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHt3aWR0aH0gPSBlLm5hdGl2ZUV2ZW50LmxheW91dFxuICAgIGNvbnN0IHt3aWR0aHN9ID0gdGhpcy5zXG5cbiAgICB0aGlzLnNldFN0YXRlKHt3aWR0aH0pXG4gICAgaWYgKHdpZHRocykgd2lkdGhzLnRhYmxlV2lkdGggPSB3aWR0aFxuICB9XG5cbiAgb25MaW5rc0NyZWF0ZWQgPSAoe2FyZ3N9KSA9PiB7XG4gICAgY29uc3QgbW9kZWxDbGFzc05hbWUgPSB0aGlzLnAubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWVcblxuICAgIGlmIChhcmdzLmNyZWF0ZWRbbW9kZWxDbGFzc05hbWVdKSB7XG4gICAgICBjb25zdCBhbW91bnRDcmVhdGVkID0gYXJncy5jcmVhdGVkW21vZGVsQ2xhc3NOYW1lXS5sZW5ndGhcblxuICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICBjdXJyZW50V29ya3BsYWNlQ291bnQ6IHByZXZTdGF0ZS5jdXJyZW50V29ya3BsYWNlQ291bnQgKyBhbW91bnRDcmVhdGVkXG4gICAgICB9KSlcbiAgICB9XG4gIH1cblxuICBvbkxpbmtzRGVzdHJveWVkID0gKHthcmdzfSkgPT4ge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gdGhpcy5wLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lXG5cbiAgICBpZiAoYXJncy5kZXN0cm95ZWRbbW9kZWxDbGFzc05hbWVdKSB7XG4gICAgICBjb25zdCBhbW91bnREZXN0cm95ZWQgPSBhcmdzLmRlc3Ryb3llZFttb2RlbENsYXNzTmFtZV0ubGVuZ3RoXG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgY3VycmVudFdvcmtwbGFjZUNvdW50OiBwcmV2U3RhdGUuY3VycmVudFdvcmtwbGFjZUNvdW50IC0gYW1vdW50RGVzdHJveWVkXG4gICAgICB9KSlcbiAgICB9XG4gIH1cblxuICBrZXlFeHRyYXRvciA9IChtb2RlbCkgPT4gYCR7dGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleX0tJHttb2RlbC5pZCgpfWBcblxuICBmaWx0ZXJGb3JtID0gKCkgPT4ge1xuICAgIGNvbnN0IHtmaWx0ZXJGb3JtUmVmLCBzdWJtaXRGaWx0ZXIsIHN1Ym1pdEZpbHRlckRlYm91bmNlfSA9IHRoaXMudHRcbiAgICBjb25zdCB7ZmlsdGVyQ29udGVudCwgZmlsdGVyU3VibWl0QnV0dG9ufSA9IHRoaXMucFxuICAgIGNvbnN0IHtxdWVyeVFOYW1lfSA9IHRoaXMuc1xuICAgIGNvbnN0IHtmaWx0ZXJTdWJtaXRMYWJlbH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3FQYXJhbXN9ID0gZGlncyh0aGlzLmNvbGxlY3Rpb24sIFwicVBhcmFtc1wiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxGb3JtIGNsYXNzTmFtZT1cImxpdmUtdGFibGUtLWZpbHRlci1mb3JtXCIgZm9ybVJlZj17ZmlsdGVyRm9ybVJlZn0gb25TdWJtaXQ9e3RoaXMudHQub25GaWx0ZXJGb3JtU3VibWl0fSBzZXRGb3JtPXt0aGlzLnNldFN0YXRlcy5maWx0ZXJGb3JtfT5cbiAgICAgICAge1wic1wiIGluIHFQYXJhbXMgJiZcbiAgICAgICAgICA8aW5wdXQgbmFtZT1cInNcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9e3FQYXJhbXMuc30gLz5cbiAgICAgICAgfVxuICAgICAgICB7ZmlsdGVyQ29udGVudCh7XG4gICAgICAgICAgb25GaWx0ZXJDaGFuZ2VkOiBzdWJtaXRGaWx0ZXIsXG4gICAgICAgICAgb25GaWx0ZXJDaGFuZ2VkV2l0aERlbGF5OiBzdWJtaXRGaWx0ZXJEZWJvdW5jZSxcbiAgICAgICAgICBxUGFyYW1zLFxuICAgICAgICAgIHF1ZXJ5UU5hbWVcbiAgICAgICAgfSl9XG4gICAgICAgIHtmaWx0ZXJTdWJtaXRCdXR0b24gJiZcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeSBsaXZlLXRhYmxlLS1zdWJtaXQtZmlsdGVyLWJ1dHRvblwiXG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luVG9wOiBcIjhweFwifX1cbiAgICAgICAgICAgIHZhbHVlPXtmaWx0ZXJTdWJtaXRMYWJlbCB8fCB0aGlzLnQoXCIuZmlsdGVyXCIsIHtkZWZhdWx0VmFsdWU6IFwiRmlsdGVyXCJ9KX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L0Zvcm0+XG4gICAgKVxuICB9XG5cbiAgb25GaWx0ZXJDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB0aGlzLnNldFN0YXRlKHtzaG93RmlsdGVyczogIXRoaXMuc3RhdGUuc2hvd0ZpbHRlcnN9KVxuICB9XG5cbiAgb25QZXJQYWdlQ2hhbmdlZCA9IChlKSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5TmFtZX0gPSB0aGlzLnNcbiAgICBjb25zdCBuZXdQZXJQYWdlVmFsdWUgPSBkaWdnKGUsIFwidGFyZ2V0XCIsIFwidmFsdWVcIilcbiAgICBjb25zdCBwZXJLZXkgPSBgJHtxdWVyeU5hbWV9X3BlcmBcbiAgICBjb25zdCBwYXJhbXNDaGFuZ2UgPSB7fVxuXG4gICAgcGFyYW1zQ2hhbmdlW3BlcktleV0gPSBuZXdQZXJQYWdlVmFsdWVcblxuICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMocGFyYW1zQ2hhbmdlKVxuICB9XG5cbiAgcmVuZGVySXRlbSA9ICh7aW5kZXgsIGl0ZW06IG1vZGVsfSkgPT4ge1xuICAgIGlmICghdGhpcy5zLnRhYmxlU2V0dGluZ0xvYWRlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFZpZXc+XG4gICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICB7dGhpcy50KFwiLmxvYWRpbmdfZG90X2RvdF9kb3RcIiwge2RlZmF1bHRWYWx1ZTogXCJMb2FkaW5nLi4uXCJ9KX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvVmlldz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1vZGVsUm93XG4gICAgICAgIGNhY2hlS2V5PXttb2RlbC5jYWNoZUtleSgpfVxuICAgICAgICBjb2x1bW5zPXt0aGlzLnMuY29sdW1uc1RvU2hvd31cbiAgICAgICAgY29sdW1uV2lkdGhzPXt0aGlzLmNvbHVtbldpZHRocygpfVxuICAgICAgICBldmVudHM9e3RoaXMudHQuZXZlbnRzfVxuICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgIGtleT17bW9kZWwuaWQoKX1cbiAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICB0YWJsZT17dGhpc31cbiAgICAgICAgdGFibGVTZXR0aW5nRnVsbENhY2hlS2V5PXt0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5fVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBzdHlsZUZvckNvbHVtbiA9ICh7Y29sdW1uLCBjb2x1bW5JbmRleCwgZXZlbiwgc3R5bGUsIHR5cGV9KSA9PiB7XG4gICAgY29uc3Qge3N0eWxlVUl9ID0gdGhpcy5wXG4gICAgY29uc3QgZGVmYXVsdFN0eWxlID0ge1xuICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgICBwYWRkaW5nOiA4LFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCJcbiAgICB9XG5cbiAgICBpZiAoc3R5bGVVSSkge1xuICAgICAgT2JqZWN0LmFzc2lnbihkZWZhdWx0U3R5bGUsIHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBldmVuID8gXCIjZjVmNWY1XCIgOiBcIiNmZmZcIlxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PSBcImFjdGlvbnNcIikge1xuICAgICAgZGVmYXVsdFN0eWxlLmZsZXhEaXJlY3Rpb24gPSBcInJvd1wiXG4gICAgICBkZWZhdWx0U3R5bGUuYWxpZ25JdGVtcyA9IFwiY2VudGVyXCJcblxuICAgICAgaWYgKHRoaXMudHQubWRVcCkge1xuICAgICAgICBkZWZhdWx0U3R5bGUubWFyZ2luTGVmdCA9IFwiYXV0b1wiXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZhdWx0U3R5bGUubWFyZ2luUmlnaHQgPSBcImF1dG9cIlxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy50dC5tZFVwICYmIHN0eWxlVUkpIHtcbiAgICAgIGRlZmF1bHRTdHlsZS5ib3JkZXJSaWdodCA9IFwiMXB4IHNvbGlkICNkYmRiZGJcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdHVhbFN0eWxlID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIGRlZmF1bHRTdHlsZSxcbiAgICAgIHN0eWxlXG4gICAgKVxuXG4gICAgcmV0dXJuIGFjdHVhbFN0eWxlXG4gIH1cblxuICBzdHlsZUZvckhlYWRlciA9ICh7Y29sdW1uLCBjb2x1bW5JbmRleCwgc3R5bGUsIHR5cGV9KSA9PiB7XG4gICAgY29uc3Qge21kVXB9ID0gdGhpcy50dFxuICAgIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgcGFkZGluZzogOFxuICAgIH1cblxuICAgIGlmICh0eXBlICE9IFwiYWN0aW9uc1wiICYmIG1kVXAgJiYgdGhpcy5wLnN0eWxlVUkpIHtcbiAgICAgIGRlZmF1bHRTdHlsZS5ib3JkZXJSaWdodCA9IFwiMXB4IHNvbGlkICNkYmRiZGJcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdHVhbFN0eWxlID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIGRlZmF1bHRTdHlsZSxcbiAgICAgIHN0eWxlXG4gICAgKVxuXG4gICAgcmV0dXJuIGFjdHVhbFN0eWxlXG4gIH1cblxuICBzdHlsZUZvckhlYWRlclRleHQoKSB7XG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSB7Zm9udFdlaWdodDogXCJib2xkXCJ9XG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9yUm93ID0gKHtldmVufSA9IHt9KSA9PiB7XG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSB7XG4gICAgICBmbGV4OiAxLFxuICAgICAgYWxpZ25JdGVtczogXCJzdHJldGNoXCJcbiAgICB9XG5cbiAgICBpZiAoZXZlbiAmJiB0aGlzLnAuc3R5bGVVSSkge1xuICAgICAgYWN0dWFsU3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCIjZjVmNWY1XCJcbiAgICB9XG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9yUm93SGVhZGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGFjdHVhbFN0eWxlID0ge1xuICAgICAgZmxleDogMSxcbiAgICAgIGFsaWduSXRlbXM6IFwic3RyZXRjaFwiXG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdHVhbFN0eWxlXG4gIH1cblxuICB0YWJsZUNvbnRyb2xzKCkge1xuICAgIGNvbnN0IHtjb250cm9sc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3Nob3dTZXR0aW5nc30gPSB0aGlzLnNcbiAgICBjb25zdCB7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSA9IGRpZ3ModGhpcy5jb2xsZWN0aW9uLCBcIm1vZGVsc1wiLCBcInFQYXJhbXNcIiwgXCJxdWVyeVwiLCBcInJlc3VsdFwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IHN0eWxlPXt7ZmxleERpcmVjdGlvbjogXCJyb3dcIn19PlxuICAgICAgICB7Y29udHJvbHMgJiYgY29udHJvbHMoe21vZGVscywgcVBhcmFtcywgcXVlcnksIHJlc3VsdH0pfVxuICAgICAgICA8UHJlc3NhYmxlIGRhdGFTZXQ9e3tjbGFzczogXCJmaWx0ZXItYnV0dG9uXCJ9fSBvblByZXNzPXt0aGlzLnR0Lm9uRmlsdGVyQ2xpY2tlZH0+XG4gICAgICAgICAgPEljb24gbmFtZT1cInNlYXJjaFwiIHNpemU9ezIwfSAvPlxuICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgICAgPFZpZXcgc3R5bGU9e3twb3NpdGlvbjogXCJyZWxhdGl2ZVwifX0+XG4gICAgICAgICAge3Nob3dTZXR0aW5ncyAmJlxuICAgICAgICAgICAgPFNldHRpbmdzIG9uUmVxdWVzdENsb3NlPXt0aGlzLnR0Lm9uUmVxdWVzdENsb3NlU2V0dGluZ3N9IHRhYmxlPXt0aGlzfSAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8UHJlc3NhYmxlIGRhdGFTZXQ9e3tjbGFzczogXCJzZXR0aW5ncy1idXR0b25cIn19IG9uUHJlc3M9e3RoaXMudHQub25TZXR0aW5nc0NsaWNrZWR9PlxuICAgICAgICAgICAgPEljb24gbmFtZT1cImdlYXJcIiBzaXplPXsyMH0gLz5cbiAgICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIHRhYmxlRm9vdGVyKCkge1xuICAgIGNvbnN0IHtyZXN1bHR9ID0gZGlncyh0aGlzLmNvbGxlY3Rpb24sIFwicmVzdWx0XCIpXG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKVxuICAgIGNvbnN0IHRvdGFsQ291bnQgPSByZXN1bHQudG90YWxDb3VudCgpXG4gICAgY29uc3QgcGVyUGFnZSA9IHJlc3VsdC5wZXJQYWdlKClcbiAgICBjb25zdCB0byA9IE1hdGgubWluKGN1cnJlbnRQYWdlICogcGVyUGFnZSwgdG90YWxDb3VudClcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBcIlNob3dpbmcgJXtmcm9tfSB0byAle3RvfSBvdXQgb2YgJXt0b3RhbF9jb3VudH0gdG90YWwuXCJcbiAgICBsZXQgZnJvbSA9ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBlclBhZ2UpICsgMVxuXG4gICAgaWYgKHRvID09PSAwKSBmcm9tID0gMFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IHN0eWxlPXt7ZmxleERpcmVjdGlvbjogXCJyb3dcIiwganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLCBtYXJnaW5Ub3A6IDEwfX0+XG4gICAgICAgIDxWaWV3IGRhdGFTZXQ9e3tjbGFzczogXCJzaG93aW5nLWNvdW50c1wifX0gc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wifX0+XG4gICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICB7dGhpcy50KFwiLnNob3dpbmdfZnJvbV90b19vdXRfb2ZfdG90YWxcIiwge2RlZmF1bHRWYWx1ZSwgZnJvbSwgdG8sIHRvdGFsX2NvdW50OiB0b3RhbENvdW50fSl9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIHt0aGlzLnAud29ya3BsYWNlICYmIHRoaXMucy5jdXJyZW50V29ya3BsYWNlQ291bnQgIT09IG51bGwgJiZcbiAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt7bWFyZ2luTGVmdDogM319PlxuICAgICAgICAgICAgICB7dGhpcy50KFwiLnhfc2VsZWN0ZWRcIiwge2RlZmF1bHRWYWx1ZTogXCIle3NlbGVjdGVkfSBzZWxlY3RlZC5cIiwgc2VsZWN0ZWQ6IHRoaXMucy5jdXJyZW50V29ya3BsYWNlQ291bnR9KX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvVmlldz5cbiAgICAgICAgPFZpZXc+XG4gICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicGVyLXBhZ2Utc2VsZWN0XCJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17cGVyUGFnZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLnR0Lm9uUGVyUGFnZUNoYW5nZWR9XG4gICAgICAgICAgICBvcHRpb25zPXtwYWdpbmF0aW9uT3B0aW9uc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgY2xhc3NOYW1lKCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXCJhcGktbWFrZXItLXRhYmxlXCJdXG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbGFzc05hbWUpIHtcbiAgICAgIGNsYXNzTmFtZXMucHVzaCh0aGlzLnByb3BzLmNsYXNzTmFtZSlcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NOYW1lcy5qb2luKFwiIFwiKVxuICB9XG5cbiAgY29sdW1uUHJvcHMoY29sdW1uKSB7XG4gICAgY29uc3QgcHJvcHMgPSB7fVxuXG4gICAgaWYgKGNvbHVtbi50ZXh0Q2VudGVyKSB7XG4gICAgICBwcm9wcy5zdHlsZSB8fD0ge31cbiAgICAgIHByb3BzLnN0eWxlLnRleHRBbGlnbiA9IFwiY2VudGVyXCJcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uLnRleHRSaWdodCkge1xuICAgICAgcHJvcHMuc3R5bGUgfHw9IHt9XG4gICAgICBwcm9wcy5zdHlsZS50ZXh0QWxpZ24gPSBcInJpZ2h0XCJcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGhlYWRlclByb3BzKGNvbHVtbikge1xuICAgIGNvbnN0IHByb3BzID0ge31cblxuICAgIGlmIChjb2x1bW4udGV4dENlbnRlcikge1xuICAgICAgcHJvcHMuc3R5bGUgfHw9IHt9XG4gICAgICBwcm9wcy5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IFwiY2VudGVyXCJcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uLnRleHRSaWdodCkge1xuICAgICAgcHJvcHMuc3R5bGUgfHw9IHt9XG4gICAgICBwcm9wcy5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IFwiZW5kXCJcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGNvbHVtbldpZHRocygpIHtcbiAgICBjb25zdCBjb2x1bW5XaWR0aHMgPSB7fVxuXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5zLnByZXBhcmVkQ29sdW1ucykge1xuICAgICAgY29sdW1uV2lkdGhzW2NvbHVtbi50YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpXSA9IGNvbHVtbi53aWR0aFxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5XaWR0aHNcbiAgfVxuXG4gIGhlYWRlcnNDb250ZW50RnJvbUNvbHVtbnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxEcmFnZ2FibGVTb3J0XG4gICAgICAgIGRhdGE9e3RoaXMucy5jb2x1bW5zVG9TaG93fVxuICAgICAgICBldmVudHM9e3RoaXMudHQuZHJhZ2dhYmxlU29ydEV2ZW50c31cbiAgICAgICAgaG9yaXpvbnRhbFxuICAgICAgICBrZXlFeHRyYWN0b3I9e3RoaXMudHQuZHJhZ0xpc3RrZXlFeHRyYWN0b3J9XG4gICAgICAgIG9uSXRlbU1vdmVkPXt0aGlzLnR0Lm9uSXRlbU1vdmVkfVxuICAgICAgICBvblJlb3JkZXJlZD17dGhpcy50dC5vblJlb3JkZXJlZH1cbiAgICAgICAgcmVuZGVySXRlbT17dGhpcy50dC5kcmFnTGlzdFJlbmRlckl0ZW1Db250ZW50fVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBkcmFnTGlzdENhY2hlS2V5RXh0cmFjdG9yID0gKGl0ZW0pID0+IGAke2l0ZW0udGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKX0tJHt0aGlzLnMucmVzaXppbmd9YFxuICBkcmFnTGlzdGtleUV4dHJhY3RvciA9IChpdGVtKSA9PiBpdGVtLnRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKClcblxuICBvbkl0ZW1Nb3ZlZCA9ICh7YW5pbWF0aW9uQXJncywgaXRlbUluZGV4LCB4LCB5fSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGVkUG9zaXRpb24gPSBkaWdnKHRoaXMsIFwic1wiLCBcImNvbHVtbnNUb1Nob3dcIiwgaXRlbUluZGV4LCBcImFuaW1hdGVkUG9zaXRpb25cIilcblxuICAgIGlmIChhbmltYXRpb25BcmdzKSB7XG4gICAgICBBbmltYXRlZC50aW1pbmcoYW5pbWF0ZWRQb3NpdGlvbiwgYW5pbWF0aW9uQXJncykuc3RhcnQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBhbmltYXRlZFBvc2l0aW9uLnNldFZhbHVlKHt4LCB5fSlcbiAgICB9XG4gIH1cblxuICBvblJlb3JkZXJlZCA9IGFzeW5jICh7ZnJvbUl0ZW0sIGZyb21Qb3NpdGlvbiwgdG9JdGVtLCB0b1Bvc2l0aW9ufSkgPT4ge1xuICAgIGlmIChmcm9tUG9zaXRpb24gPT0gdG9Qb3NpdGlvbikgcmV0dXJuIC8vIE9ubHkgZG8gcmVxdWVzdHMgYW5kIHF1ZXJpZXMgaWYgY2hhbmdlZFxuXG4gICAgY29uc3QgVGFibGVTZXR0aW5nQ29sdW1uID0gZnJvbUl0ZW0udGFibGVTZXR0aW5nQ29sdW1uLmNvbnN0cnVjdG9yXG4gICAgY29uc3QgdG9Db2x1bW4gPSBhd2FpdCBUYWJsZVNldHRpbmdDb2x1bW4uZmluZCh0b0l0ZW0udGFibGVTZXR0aW5nQ29sdW1uLmlkKCkpIC8vIE5lZWQgdG8gbG9hZCBsYXRlc3QgcG9zaXRpb24gYmVjYXVzZSBBY3RzQXNMaXN0IG1pZ2h0IGhhdmUgY2hhbmdlZCBpdFxuXG4gICAgYXdhaXQgZnJvbUl0ZW0udGFibGVTZXR0aW5nQ29sdW1uLnVwZGF0ZSh7cG9zaXRpb246IHRvQ29sdW1uLnBvc2l0aW9uKCl9KVxuICB9XG5cbiAgZHJhZ0xpc3RSZW5kZXJJdGVtQ29udGVudCA9ICh7aXNBY3RpdmUsIGl0ZW0sIHRvdWNoUHJvcHN9KSA9PiB7XG4gICAgY29uc3Qge2FuaW1hdGVkV2lkdGgsIGFuaW1hdGVkWkluZGV4LCBjb2x1bW4sIHRhYmxlU2V0dGluZ0NvbHVtbn0gPSBpdGVtXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEhlYWRlckNvbHVtblxuICAgICAgICBhY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBhbmltYXRlZFdpZHRoPXthbmltYXRlZFdpZHRofVxuICAgICAgICBhbmltYXRlZFpJbmRleD17YW5pbWF0ZWRaSW5kZXh9XG4gICAgICAgIGNvbHVtbj17Y29sdW1ufVxuICAgICAgICBrZXk9e3RhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCl9XG4gICAgICAgIHJlc2l6aW5nPXt0aGlzLnMucmVzaXppbmd9XG4gICAgICAgIHRhYmxlPXt0aGlzfVxuICAgICAgICB0YWJsZVNldHRpbmdDb2x1bW49e3RhYmxlU2V0dGluZ0NvbHVtbn1cbiAgICAgICAgdG91Y2hQcm9wcz17dG91Y2hQcm9wc31cbiAgICAgICAgd2lkdGhzPXt0aGlzLnMud2lkdGhzfVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBoZWFkZXJDbGFzc05hbWVGb3JDb2x1bW4oY29sdW1uKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IFtdXG5cbiAgICBpZiAoY29sdW1uLmNvbW1vblByb3BzICYmIGNvbHVtbi5jb21tb25Qcm9wcy5jbGFzc05hbWUpIGNsYXNzTmFtZXMucHVzaChjb2x1bW4uY29tbW9uUHJvcHMuY2xhc3NOYW1lKVxuICAgIGlmIChjb2x1bW4uaGVhZGVyUHJvcHMgJiYgY29sdW1uLmhlYWRlclByb3BzLmNsYXNzTmFtZSkgY2xhc3NOYW1lcy5wdXNoKGNvbHVtbi5oZWFkZXJQcm9wcy5jbGFzc05hbWUpXG5cbiAgICByZXR1cm4gY2xhc3NOYW1lc1xuICB9XG5cbiAgaGVhZGVyTGFiZWxGb3JDb2x1bW4oY29sdW1uKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3N9ID0gdGhpcy5wXG5cbiAgICBpZiAoXCJsYWJlbFwiIGluIGNvbHVtbikge1xuICAgICAgaWYgKHR5cGVvZiBjb2x1bW4ubGFiZWwgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ubGFiZWwoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5sYWJlbFxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcblxuICAgIC8vIENhbGN1bGF0ZSBjdXJyZW50IG1vZGVsIGNsYXNzIHRocm91Z2ggcGF0aFxuICAgIGlmIChjb2x1bW4ucGF0aCkge1xuICAgICAgZm9yIChjb25zdCBwYXRoUGFydCBvZiBjb2x1bW4ucGF0aCkge1xuICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBzID0gZGlnZyhjdXJyZW50TW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcInJlbGF0aW9uc2hpcHNcIilcbiAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwID0gcmVsYXRpb25zaGlwcy5maW5kKChyZWxhdGlvbnNoaXBJbkFycmF5KSA9PiByZWxhdGlvbnNoaXBJbkFycmF5Lm5hbWUgPT0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKHBhdGhQYXJ0KSlcblxuICAgICAgICBjdXJyZW50TW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKGRpZ2cocmVsYXRpb25zaGlwLCBcInJlc291cmNlX25hbWVcIikpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi5hdHRyaWJ1dGUpIHJldHVybiBjdXJyZW50TW9kZWxDbGFzcy5odW1hbkF0dHJpYnV0ZU5hbWUoY29sdW1uLmF0dHJpYnV0ZSlcblxuICAgIHRocm93IG5ldyBFcnJvcihcIk5vICdsYWJlbCcgb3IgJ2F0dHJpYnV0ZScgd2FzIGdpdmVuXCIpXG4gIH1cblxuICBvbkZpbHRlckZvcm1TdWJtaXQgPSAoKSA9PiB0aGlzLnN1Ym1pdEZpbHRlcigpXG4gIG9uUmVxdWVzdENsb3NlU2V0dGluZ3MgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzaG93U2V0dGluZ3M6IGZhbHNlfSlcblxuICBvblNldHRpbmdzQ2xpY2tlZCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtzaG93U2V0dGluZ3M6ICF0aGlzLnMuc2hvd1NldHRpbmdzfSlcbiAgfVxuXG4gIHN1Ym1pdEZpbHRlciA9ICgpID0+IHtcbiAgICBjb25zdCB7YXBwSGlzdG9yeX0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3F1ZXJ5UU5hbWV9ID0gdGhpcy5zXG4gICAgY29uc3QgY2hhbmdlUGFyYW1zUGFyYW1zID0ge31cbiAgICBjb25zdCBxUGFyYW1zID0gdGhpcy5zLmZpbHRlckZvcm0uYXNPYmplY3QoKVxuXG4gICAgaWYgKFBsYXRmb3JtLk9TID09IFwid2ViXCIpIHtcbiAgICAgIGNvbnN0IGZpbHRlckZvcm0gPSBkaWdnKHRoaXMudHQuZmlsdGVyRm9ybVJlZiwgXCJjdXJyZW50XCIpXG4gICAgICBjb25zdCBuYXZ0aXZlRm9ybVBhcmFtcyA9IFBhcmFtcy5zZXJpYWxpemVGb3JtKGZpbHRlckZvcm0pXG5cbiAgICAgIGluY29ycG9yYXRlKHFQYXJhbXMsIG5hdnRpdmVGb3JtUGFyYW1zKVxuICAgIH1cblxuICAgIGNoYW5nZVBhcmFtc1BhcmFtc1txdWVyeVFOYW1lXSA9IEpTT04uc3RyaW5naWZ5KHFQYXJhbXMpXG5cbiAgICBQYXJhbXMuY2hhbmdlUGFyYW1zKGNoYW5nZVBhcmFtc1BhcmFtcywge2FwcEhpc3Rvcnl9KVxuICB9XG5cbiAgc3VibWl0RmlsdGVyRGVib3VuY2UgPSBkZWJvdW5jZSh0aGlzLnR0LnN1Ym1pdEZpbHRlcilcbn0pKVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsSUFBSSxFQUFFQyxJQUFJLFFBQU8sV0FBVztBQUNwQyxPQUFPQyxLQUFLLElBQUdDLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBTyxPQUFPO0FBQ3ZFLFNBQVFDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLElBQUksUUFBTyxjQUFjO0FBQ2hFLE9BQU9DLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsSUFBSSxNQUFNLG1CQUFtQjtBQUNwQyxPQUFPQyxVQUFVLE1BQU0sWUFBWTtBQUNuQyxPQUFPQyxVQUFVLE1BQU0sZUFBZTtBQUN0QyxPQUFPQyxhQUFhLE1BQU0sa0JBQWtCO0FBQzVDLE9BQU9DLFFBQVEsTUFBTSxVQUFVO0FBQy9CLE9BQU9DLGFBQWEsTUFBTSx5QkFBeUI7QUFDbkQsT0FBT0MsWUFBWSxNQUFNLFFBQVE7QUFDakMsT0FBT0MsT0FBTyxNQUFNLFdBQVc7QUFDL0IsT0FBT0MsUUFBUSxNQUFNLHdCQUF3QjtBQUM3QyxTQUFRQyxJQUFJLFFBQU8s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
@@ -10,6 +10,9 @@ const useStyles = (styles, args, dependencies = []) => {
10
10
  const listOfStyles = useMemo(() => {
11
11
  const listOfStyles = [];
12
12
  const breakpointsReverse = [...config.getBreakPoints()].reverse();
13
+ if (!Array.isArray(args)) {
14
+ args = [args];
15
+ }
13
16
  for (const arg of args) {
14
17
  if (typeof arg == "string") {
15
18
  if (!(arg in styles)) {
@@ -38,4 +41,4 @@ const useStyles = (styles, args, dependencies = []) => {
38
41
  return listOfStyles;
39
42
  };
40
43
  export default useStyles;
41
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJkaWdnIiwiaW5mbGVjdGlvbiIsInVzZUJyZWFrcG9pbnQiLCJ1c2VNZW1vIiwidXNlU3R5bGVzIiwic3R5bGVzIiwiYXJncyIsImRlcGVuZGVuY2llcyIsImJyZWFrcG9pbnQiLCJicmVha3BvaW50TmFtZSIsImFjdHVhbERlcGVuZGVuY2llcyIsImxpc3RPZlN0eWxlcyIsImJyZWFrcG9pbnRzUmV2ZXJzZSIsImdldEJyZWFrUG9pbnRzIiwicmV2ZXJzZSIsImFyZyIsIkVycm9yIiwiT2JqZWN0Iiwia2V5cyIsImpvaW4iLCJwdXNoIiwiYnJlYWtwb2ludERhdGEiLCJicmVha3BvaW50U3R5bGVOYW1lVXAiLCJjYW1lbGl6ZSIsImJyZWFrcG9pbnRTdHlsZU5hbWVEb3duIiwiYnJlYWtwb2ludElzVXAiLCJicmVha3BvaW50SXNEb3duIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZS1zdHlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHVzZUJyZWFrcG9pbnQgZnJvbSBcIi4vdXNlLWJyZWFrcG9pbnRcIlxuaW1wb3J0IHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuXG5jb25zdCB1c2VTdHlsZXMgPSAoc3R5bGVzLCBhcmdzLCBkZXBlbmRlbmNpZXMgPSBbXSkgPT4ge1xuICBjb25zdCBicmVha3BvaW50ID0gdXNlQnJlYWtwb2ludCgpXG4gIGNvbnN0IGJyZWFrcG9pbnROYW1lID0gZGlnZyhicmVha3BvaW50LCBcIm5hbWVcIilcbiAgY29uc3QgYWN0dWFsRGVwZW5kZW5jaWVzID0gWy4uLmRlcGVuZGVuY2llcywgYnJlYWtwb2ludE5hbWVdXG5cbiAgY29uc3QgbGlzdE9mU3R5bGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbGlzdE9mU3R5bGVzID0gW11cbiAgICBjb25zdCBicmVha3BvaW50c1JldmVyc2UgPSBbLi4uY29uZmlnLmdldEJyZWFrUG9pbnRzKCldLnJldmVyc2UoKVxuXG4gICAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xuICAgICAgaWYgKHR5cGVvZiBhcmcgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAoIShhcmcgaW4gc3R5bGVzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzdHlsaW5nICcke2FyZ30nIGluIGdpdmVuIHN0eWxlczogJHtPYmplY3Qua2V5cyhzdHlsZXMpLmpvaW4oXCIsIFwiKX1gKVxuICAgICAgICB9XG5cbiAgICAgICAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2FyZ10pXG5cbiAgICAgICAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBicmVha3BvaW50c1JldmVyc2UpIHtcbiAgICAgICAgICBjb25zdCBicmVha3BvaW50TmFtZSA9IGJyZWFrcG9pbnREYXRhWzBdXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZVVwID0gYCR7YXJnfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShicmVha3BvaW50TmFtZSl9VXBgXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZURvd24gPSBgJHthcmd9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGJyZWFrcG9pbnROYW1lKX1Eb3duYFxuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnRJc1VwID0gZGlnZyhicmVha3BvaW50LCBgJHticmVha3BvaW50TmFtZX1VcGApXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludElzRG93biA9IGRpZ2coYnJlYWtwb2ludCwgYCR7YnJlYWtwb2ludE5hbWV9RG93bmApXG5cbiAgICAgICAgICBpZiAoYnJlYWtwb2ludFN0eWxlTmFtZVVwIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNVcCkge1xuICAgICAgICAgICAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2JyZWFrcG9pbnRTdHlsZU5hbWVVcF0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGJyZWFrcG9pbnRTdHlsZU5hbWVEb3duIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNEb3duKSB7XG4gICAgICAgICAgICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYnJlYWtwb2ludFN0eWxlTmFtZURvd25dKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgdHlwZTogJHt0eXBlb2YgYXJnfWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3RPZlN0eWxlc1xuICB9LCBhY3R1YWxEZXBlbmRlbmNpZXMpXG5cbiAgcmV0dXJuIGxpc3RPZlN0eWxlc1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTdHlsZXNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxhQUFhLE1BQU0sa0JBQWtCO0FBQzVDLFNBQVFDLE9BQU8sUUFBTyxPQUFPO0FBRTdCLE1BQU1DLFNBQVMsR0FBR0EsQ0FBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksR0FBRyxFQUFFLEtBQUs7RUFDckQsTUFBTUMsVUFBVSxHQUFHTixhQUFhLENBQUMsQ0FBQztFQUNsQyxNQUFNTyxjQUFjLEdBQUdULElBQUksQ0FBQ1EsVUFBVSxFQUFFLE1BQU0sQ0FBQztFQUMvQyxNQUFNRSxrQkFBa0IsR0FBRyxDQUFDLEdBQUdILFlBQVksRUFBRUUsY0FBYyxDQUFDO0VBRTVELE1BQU1FLFlBQVksR0FBR1IsT0FBTyxDQUFDLE1BQU07SUFDakMsTUFBTVEsWUFBWSxHQUFHLEVBQUU7SUFDdkIsTUFBTUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHYixNQUFNLENBQUNjLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7SUFFakUsS0FBSyxNQUFNQyxHQUFHLElBQUlULElBQUksRUFBRTtNQUN0QixJQUFJLE9BQU9TLEdBQUcsSUFBSSxRQUFRLEVBQUU7UUFDMUIsSUFBSSxFQUFFQSxHQUFHLElBQUlWLE1BQU0sQ0FBQyxFQUFFO1VBQ3BCLE1BQU0sSUFBSVcsS0FBSyxDQUFDLG9CQUFvQkQsR0FBRyxzQkFBc0JFLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDYixNQUFNLENBQUMsQ0FBQ2MsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEc7UUFFQVIsWUFBWSxDQUFDUyxJQUFJLENBQUNmLE1BQU0sQ0FBQ1UsR0FBRyxDQUFDLENBQUM7UUFFOUIsS0FBSyxNQUFNTSxjQUFjLElBQUlULGtCQUFrQixFQUFFO1VBQy9DLE1BQU1ILGNBQWMsR0FBR1ksY0FBYyxDQUFDLENBQUMsQ0FBQztVQUN4QyxNQUFNQyxxQkFBcUIsR0FBRyxHQUFHUCxHQUFHLEdBQUdkLFVBQVUsQ0FBQ3NCLFFBQVEsQ0FBQ2QsY0FBYyxDQUFDLElBQUk7VUFDOUUsTUFBTWUsdUJBQXVCLEdBQUcsR0FBR1QsR0FBRyxHQUFHZCxVQUFVLENBQUNzQixRQUFRLENBQUNkLGNBQWMsQ0FBQyxNQUFNO1VBQ2xGLE1BQU1nQixjQUFjLEdBQUd6QixJQUFJLENBQUNRLFVBQVUsRUFBRSxHQUFHQyxjQUFjLElBQUksQ0FBQztVQUM5RCxNQUFNaUIsZ0JBQWdCLEdBQUcxQixJQUFJLENBQUNRLFVBQVUsRUFBRSxHQUFHQyxjQUFjLE1BQU0sQ0FBQztVQUVsRSxJQUFJYSxxQkFBcUIsSUFBSWpCLE1BQU0sSUFBSW9CLGNBQWMsRUFBRTtZQUNyRGQsWUFBWSxDQUFDUyxJQUFJLENBQUNmLE1BQU0sQ0FBQ2lCLHFCQUFxQixDQUFDLENBQUM7VUFDbEQ7VUFFQSxJQUFJRSx1QkFBdUIsSUFBSW5CLE1BQU0sSUFBSXFCLGdCQUFnQixFQUFFO1lBQ3pEZixZQUFZLENBQUNTLElBQUksQ0FBQ2YsTUFBTSxDQUFDbUIsdUJBQXVCLENBQUMsQ0FBQztVQUNwRDtRQUNGO01BQ0YsQ0FBQyxNQUFNO1FBQ0wsTUFBTSxJQUFJUixLQUFLLENBQUMsbUJBQW1CLE9BQU9ELEdBQUcsRUFBRSxDQUFDO01BQ2xEO0lBQ0Y7SUFFQSxPQUFPSixZQUFZO0VBQ3JCLENBQUMsRUFBRUQsa0JBQWtCLENBQUM7RUFFdEIsT0FBT0MsWUFBWTtBQUNyQixDQUFDO0FBRUQsZUFBZVAsU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJkaWdnIiwiaW5mbGVjdGlvbiIsInVzZUJyZWFrcG9pbnQiLCJ1c2VNZW1vIiwidXNlU3R5bGVzIiwic3R5bGVzIiwiYXJncyIsImRlcGVuZGVuY2llcyIsImJyZWFrcG9pbnQiLCJicmVha3BvaW50TmFtZSIsImFjdHVhbERlcGVuZGVuY2llcyIsImxpc3RPZlN0eWxlcyIsImJyZWFrcG9pbnRzUmV2ZXJzZSIsImdldEJyZWFrUG9pbnRzIiwicmV2ZXJzZSIsIkFycmF5IiwiaXNBcnJheSIsImFyZyIsIkVycm9yIiwiT2JqZWN0Iiwia2V5cyIsImpvaW4iLCJwdXNoIiwiYnJlYWtwb2ludERhdGEiLCJicmVha3BvaW50U3R5bGVOYW1lVXAiLCJjYW1lbGl6ZSIsImJyZWFrcG9pbnRTdHlsZU5hbWVEb3duIiwiYnJlYWtwb2ludElzVXAiLCJicmVha3BvaW50SXNEb3duIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZS1zdHlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHVzZUJyZWFrcG9pbnQgZnJvbSBcIi4vdXNlLWJyZWFrcG9pbnRcIlxuaW1wb3J0IHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuXG5jb25zdCB1c2VTdHlsZXMgPSAoc3R5bGVzLCBhcmdzLCBkZXBlbmRlbmNpZXMgPSBbXSkgPT4ge1xuICBjb25zdCBicmVha3BvaW50ID0gdXNlQnJlYWtwb2ludCgpXG4gIGNvbnN0IGJyZWFrcG9pbnROYW1lID0gZGlnZyhicmVha3BvaW50LCBcIm5hbWVcIilcbiAgY29uc3QgYWN0dWFsRGVwZW5kZW5jaWVzID0gWy4uLmRlcGVuZGVuY2llcywgYnJlYWtwb2ludE5hbWVdXG5cbiAgY29uc3QgbGlzdE9mU3R5bGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbGlzdE9mU3R5bGVzID0gW11cbiAgICBjb25zdCBicmVha3BvaW50c1JldmVyc2UgPSBbLi4uY29uZmlnLmdldEJyZWFrUG9pbnRzKCldLnJldmVyc2UoKVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgICBhcmdzID0gW2FyZ3NdXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xuICAgICAgaWYgKHR5cGVvZiBhcmcgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAoIShhcmcgaW4gc3R5bGVzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzdHlsaW5nICcke2FyZ30nIGluIGdpdmVuIHN0eWxlczogJHtPYmplY3Qua2V5cyhzdHlsZXMpLmpvaW4oXCIsIFwiKX1gKVxuICAgICAgICB9XG5cbiAgICAgICAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2FyZ10pXG5cbiAgICAgICAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBicmVha3BvaW50c1JldmVyc2UpIHtcbiAgICAgICAgICBjb25zdCBicmVha3BvaW50TmFtZSA9IGJyZWFrcG9pbnREYXRhWzBdXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZVVwID0gYCR7YXJnfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShicmVha3BvaW50TmFtZSl9VXBgXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZURvd24gPSBgJHthcmd9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGJyZWFrcG9pbnROYW1lKX1Eb3duYFxuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnRJc1VwID0gZGlnZyhicmVha3BvaW50LCBgJHticmVha3BvaW50TmFtZX1VcGApXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludElzRG93biA9IGRpZ2coYnJlYWtwb2ludCwgYCR7YnJlYWtwb2ludE5hbWV9RG93bmApXG5cbiAgICAgICAgICBpZiAoYnJlYWtwb2ludFN0eWxlTmFtZVVwIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNVcCkge1xuICAgICAgICAgICAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2JyZWFrcG9pbnRTdHlsZU5hbWVVcF0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGJyZWFrcG9pbnRTdHlsZU5hbWVEb3duIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNEb3duKSB7XG4gICAgICAgICAgICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYnJlYWtwb2ludFN0eWxlTmFtZURvd25dKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgdHlwZTogJHt0eXBlb2YgYXJnfWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3RPZlN0eWxlc1xuICB9LCBhY3R1YWxEZXBlbmRlbmNpZXMpXG5cbiAgcmV0dXJuIGxpc3RPZlN0eWxlc1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTdHlsZXNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxhQUFhLE1BQU0sa0JBQWtCO0FBQzVDLFNBQVFDLE9BQU8sUUFBTyxPQUFPO0FBRTdCLE1BQU1DLFNBQVMsR0FBR0EsQ0FBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksR0FBRyxFQUFFLEtBQUs7RUFDckQsTUFBTUMsVUFBVSxHQUFHTixhQUFhLENBQUMsQ0FBQztFQUNsQyxNQUFNTyxjQUFjLEdBQUdULElBQUksQ0FBQ1EsVUFBVSxFQUFFLE1BQU0sQ0FBQztFQUMvQyxNQUFNRSxrQkFBa0IsR0FBRyxDQUFDLEdBQUdILFlBQVksRUFBRUUsY0FBYyxDQUFDO0VBRTVELE1BQU1FLFlBQVksR0FBR1IsT0FBTyxDQUFDLE1BQU07SUFDakMsTUFBTVEsWUFBWSxHQUFHLEVBQUU7SUFDdkIsTUFBTUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHYixNQUFNLENBQUNjLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7SUFFakUsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1YsSUFBSSxDQUFDLEVBQUU7TUFDeEJBLElBQUksR0FBRyxDQUFDQSxJQUFJLENBQUM7SUFDZjtJQUVBLEtBQUssTUFBTVcsR0FBRyxJQUFJWCxJQUFJLEVBQUU7TUFDdEIsSUFBSSxPQUFPVyxHQUFHLElBQUksUUFBUSxFQUFFO1FBQzFCLElBQUksRUFBRUEsR0FBRyxJQUFJWixNQUFNLENBQUMsRUFBRTtVQUNwQixNQUFNLElBQUlhLEtBQUssQ0FBQyxvQkFBb0JELEdBQUcsc0JBQXNCRSxNQUFNLENBQUNDLElBQUksQ0FBQ2YsTUFBTSxDQUFDLENBQUNnQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoRztRQUVBVixZQUFZLENBQUNXLElBQUksQ0FBQ2pCLE1BQU0sQ0FBQ1ksR0FBRyxDQUFDLENBQUM7UUFFOUIsS0FBSyxNQUFNTSxjQUFjLElBQUlYLGtCQUFrQixFQUFFO1VBQy9DLE1BQU1ILGNBQWMsR0FBR2MsY0FBYyxDQUFDLENBQUMsQ0FBQztVQUN4QyxNQUFNQyxxQkFBcUIsR0FBRyxHQUFHUCxHQUFHLEdBQUdoQixVQUFVLENBQUN3QixRQUFRLENBQUNoQixjQUFjLENBQUMsSUFBSTtVQUM5RSxNQUFNaUIsdUJBQXVCLEdBQUcsR0FBR1QsR0FBRyxHQUFHaEIsVUFBVSxDQUFDd0IsUUFBUSxDQUFDaEIsY0FBYyxDQUFDLE1BQU07VUFDbEYsTUFBTWtCLGNBQWMsR0FBRzNCLElBQUksQ0FBQ1EsVUFBVSxFQUFFLEdBQUdDLGNBQWMsSUFBSSxDQUFDO1VBQzlELE1BQU1tQixnQkFBZ0IsR0FBRzVCLElBQUksQ0FBQ1EsVUFBVSxFQUFFLEdBQUdDLGNBQWMsTUFBTSxDQUFDO1VBRWxFLElBQUllLHFCQUFxQixJQUFJbkIsTUFBTSxJQUFJc0IsY0FBYyxFQUFFO1lBQ3JEaEIsWUFBWSxDQUFDVyxJQUFJLENBQUNqQixNQUFNLENBQUNtQixxQkFBcUIsQ0FBQyxDQUFDO1VBQ2xEO1VBRUEsSUFBSUUsdUJBQXVCLElBQUlyQixNQUFNLElBQUl1QixnQkFBZ0IsRUFBRTtZQUN6RGpCLFlBQVksQ0FBQ1csSUFBSSxDQUFDakIsTUFBTSxDQUFDcUIsdUJBQXVCLENBQUMsQ0FBQztVQUNwRDtRQUNGO01BQ0YsQ0FBQyxNQUFNO1FBQ0wsTUFBTSxJQUFJUixLQUFLLENBQUMsbUJBQW1CLE9BQU9ELEdBQUcsRUFBRSxDQUFDO01BQ2xEO0lBQ0Y7SUFFQSxPQUFPTixZQUFZO0VBQ3JCLENBQUMsRUFBRUQsa0JBQWtCLENBQUM7RUFFdEIsT0FBT0MsWUFBWTtBQUNyQixDQUFDO0FBRUQsZUFBZVAsU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -10,10 +10,7 @@ const useDefaultStyle = () => {
10
10
  };
11
11
  const useMergedStyle = (style, elementType) => {
12
12
  const defaultStyle = useDefaultStyle();
13
- const {
14
- newDefaultStyle,
15
- stylesList
16
- } = useMemo(() => {
13
+ const stylesList = useMemo(() => {
17
14
  const defaultElementStyle = defaultStyle[elementType];
18
15
  let stylesList;
19
16
  if (Array.isArray(defaultElementStyle)) {
@@ -30,10 +27,7 @@ const useMergedStyle = (style, elementType) => {
30
27
  } else if (style) {
31
28
  stylesList.push(style);
32
29
  }
33
- return {
34
- newDefaultStyle,
35
- stylesList
36
- };
30
+ return stylesList;
37
31
  }, [defaultStyle[elementType], style]);
38
32
  const actualNewDefaultStyle = useMemo(() => {
39
33
  const actualNewDefaultStyle = {
@@ -41,7 +35,7 @@ const useMergedStyle = (style, elementType) => {
41
35
  };
42
36
  actualNewDefaultStyle[elementType] = stylesList;
43
37
  return actualNewDefaultStyle;
44
- }, [defaultStyle, newDefaultStyle]);
38
+ }, [defaultStyle, stylesList]);
45
39
  return {
46
40
  newDefaultStyle: actualNewDefaultStyle,
47
41
  stylesList
@@ -71,4 +65,4 @@ const WithDefaultStyle = memo(({
71
65
  }, children);
72
66
  });
73
67
  export { useDefaultStyle, useMergedStyle, WithDefaultStyle };
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlTWVtbyIsImluY29ycG9yYXRlIiwibWVtbyIsIkRlZmF1bHRTdHlsZUNvbnRleHQiLCJUZXh0IiwidXNlRGVmYXVsdFN0eWxlIiwiZGVmYXVsdFN0eWxlIiwidXNlTWVyZ2VkU3R5bGUiLCJzdHlsZSIsImVsZW1lbnRUeXBlIiwibmV3RGVmYXVsdFN0eWxlIiwic3R5bGVzTGlzdCIsImRlZmF1bHRFbGVtZW50U3R5bGUiLCJBcnJheSIsImlzQXJyYXkiLCJFcnJvciIsInN0eWxlSSIsInB1c2giLCJhY3R1YWxOZXdEZWZhdWx0U3R5bGUiLCJXaXRoRGVmYXVsdFN0eWxlIiwiY2hpbGRyZW4iLCJyZXN0UHJvcHMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiam9pbiIsImtleSIsImNyZWF0ZUVsZW1lbnQiLCJQcm92aWRlciIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RlZmF1bHQtc3R5bGUuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge2NyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5cbmNvbnN0IERlZmF1bHRTdHlsZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgVGV4dDogW11cbn0pXG5cbmNvbnN0IHVzZURlZmF1bHRTdHlsZSA9ICgpID0+IHtcbiAgY29uc3QgZGVmYXVsdFN0eWxlID0gdXNlQ29udGV4dChEZWZhdWx0U3R5bGVDb250ZXh0KVxuXG4gIHJldHVybiBkZWZhdWx0U3R5bGVcbn1cblxuY29uc3QgdXNlTWVyZ2VkU3R5bGUgPSAoc3R5bGUsIGVsZW1lbnRUeXBlKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHVzZURlZmF1bHRTdHlsZSgpXG5cbiAgY29uc3Qge25ld0RlZmF1bHRTdHlsZSwgc3R5bGVzTGlzdH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0RWxlbWVudFN0eWxlID0gZGVmYXVsdFN0eWxlW2VsZW1lbnRUeXBlXVxuICAgIGxldCBzdHlsZXNMaXN0XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShkZWZhdWx0RWxlbWVudFN0eWxlKSkge1xuICAgICAgc3R5bGVzTGlzdCA9IFsuLi5kZWZhdWx0RWxlbWVudFN0eWxlXVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmF1bHRFbGVtZW50U3R5bGUgPT0gXCJvYmplY3RcIikge1xuICAgICAgc3R5bGVzTGlzdCA9IFtkZWZhdWx0RWxlbWVudFN0eWxlXVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZSBmb3IgZGVmYXVsdCBlbGVtZW50IHR5cGU6ICR7dHlwZW9mIGRlZmF1bHRFbGVtZW50U3R5bGV9YClcbiAgICB9XG5cbiAgICBpZiAoc3R5bGUgJiYgQXJyYXkuaXNBcnJheShzdHlsZSkpIHtcbiAgICAgIGZvciAoY29uc3Qgc3R5bGVJIG9mIHN0eWxlKSB7XG4gICAgICAgIHN0eWxlc0xpc3QucHVzaChzdHlsZUkpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdHlsZSkge1xuICAgICAgc3R5bGVzTGlzdC5wdXNoKHN0eWxlKVxuICAgIH1cblxuICAgIHJldHVybiB7bmV3RGVmYXVsdFN0eWxlLCBzdHlsZXNMaXN0fVxuICB9LCBbZGVmYXVsdFN0eWxlW2VsZW1lbnRUeXBlXSwgc3R5bGVdKVxuXG4gIGNvbnN0IGFjdHVhbE5ld0RlZmF1bHRTdHlsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGFjdHVhbE5ld0RlZmF1bHRTdHlsZSA9IHsuLi5kZWZhdWx0U3R5bGV9XG5cbiAgICBhY3R1YWxOZXdEZWZhdWx0U3R5bGVbZWxlbWVudFR5cGVdID0gc3R5bGVzTGlzdFxuXG4gICAgcmV0dXJuIGFjdHVhbE5ld0RlZmF1bHRTdHlsZVxuICB9LCBbZGVmYXVsdFN0eWxlLCBuZXdEZWZhdWx0U3R5bGVdKVxuXG4gIHJldHVybiB7bmV3RGVmYXVsdFN0eWxlOiBhY3R1YWxOZXdEZWZhdWx0U3R5bGUsIHN0eWxlc0xpc3R9XG59XG5cbmNvbnN0IFdpdGhEZWZhdWx0U3R5bGUgPSBtZW1vKCh7Y2hpbGRyZW4sIHN0eWxlLCAuLi5yZXN0UHJvcHN9KSA9PiB7XG4gIGlmIChPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCBwcm9wczogJHtPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmpvaW4oXCIsIFwiKX1gKVxuICB9XG5cbiAgY29uc3QgZGVmYXVsdFN0eWxlID0gdXNlQ29udGV4dChEZWZhdWx0U3R5bGVDb250ZXh0KVxuXG4gIGNvbnN0IG5ld0RlZmF1bHRTdHlsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHN0eWxlKSB7XG4gICAgICBpZiAoIShrZXkgaW4gZGVmYXVsdFN0eWxlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZWxlbWVudCB0eXBlIGdpdmVuOiAke2tleX1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5ld0RlZmF1bHRTdHlsZSA9IHt9XG5cbiAgICBpbmNvcnBvcmF0ZShuZXdEZWZhdWx0U3R5bGUsIGRlZmF1bHRTdHlsZSwgc3R5bGUpXG5cbiAgICByZXR1cm4gbmV3RGVmYXVsdFN0eWxlXG4gIH0sIFtkZWZhdWx0U3R5bGUsIHN0eWxlXSlcblxuICByZXR1cm4gKFxuICAgIDxEZWZhdWx0U3R5bGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXdEZWZhdWx0U3R5bGV9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRGVmYXVsdFN0eWxlQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufSlcblxuZXhwb3J0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
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlTWVtbyIsImluY29ycG9yYXRlIiwibWVtbyIsIkRlZmF1bHRTdHlsZUNvbnRleHQiLCJUZXh0IiwidXNlRGVmYXVsdFN0eWxlIiwiZGVmYXVsdFN0eWxlIiwidXNlTWVyZ2VkU3R5bGUiLCJzdHlsZSIsImVsZW1lbnRUeXBlIiwic3R5bGVzTGlzdCIsImRlZmF1bHRFbGVtZW50U3R5bGUiLCJBcnJheSIsImlzQXJyYXkiLCJFcnJvciIsInN0eWxlSSIsInB1c2giLCJhY3R1YWxOZXdEZWZhdWx0U3R5bGUiLCJuZXdEZWZhdWx0U3R5bGUiLCJXaXRoRGVmYXVsdFN0eWxlIiwiY2hpbGRyZW4iLCJyZXN0UHJvcHMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiam9pbiIsImtleSIsImNyZWF0ZUVsZW1lbnQiLCJQcm92aWRlciIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RlZmF1bHQtc3R5bGUuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge2NyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5cbmNvbnN0IERlZmF1bHRTdHlsZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgVGV4dDogW11cbn0pXG5cbmNvbnN0IHVzZURlZmF1bHRTdHlsZSA9ICgpID0+IHtcbiAgY29uc3QgZGVmYXVsdFN0eWxlID0gdXNlQ29udGV4dChEZWZhdWx0U3R5bGVDb250ZXh0KVxuXG4gIHJldHVybiBkZWZhdWx0U3R5bGVcbn1cblxuY29uc3QgdXNlTWVyZ2VkU3R5bGUgPSAoc3R5bGUsIGVsZW1lbnRUeXBlKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHVzZURlZmF1bHRTdHlsZSgpXG5cbiAgY29uc3Qgc3R5bGVzTGlzdCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRFbGVtZW50U3R5bGUgPSBkZWZhdWx0U3R5bGVbZWxlbWVudFR5cGVdXG4gICAgbGV0IHN0eWxlc0xpc3RcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRlZmF1bHRFbGVtZW50U3R5bGUpKSB7XG4gICAgICBzdHlsZXNMaXN0ID0gWy4uLmRlZmF1bHRFbGVtZW50U3R5bGVdXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmYXVsdEVsZW1lbnRTdHlsZSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICBzdHlsZXNMaXN0ID0gW2RlZmF1bHRFbGVtZW50U3R5bGVdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0eXBlIGZvciBkZWZhdWx0IGVsZW1lbnQgdHlwZTogJHt0eXBlb2YgZGVmYXVsdEVsZW1lbnRTdHlsZX1gKVxuICAgIH1cblxuICAgIGlmIChzdHlsZSAmJiBBcnJheS5pc0FycmF5KHN0eWxlKSkge1xuICAgICAgZm9yIChjb25zdCBzdHlsZUkgb2Ygc3R5bGUpIHtcbiAgICAgICAgc3R5bGVzTGlzdC5wdXNoKHN0eWxlSSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0eWxlKSB7XG4gICAgICBzdHlsZXNMaXN0LnB1c2goc3R5bGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlc0xpc3RcbiAgfSwgW2RlZmF1bHRTdHlsZVtlbGVtZW50VHlwZV0sIHN0eWxlXSlcblxuICBjb25zdCBhY3R1YWxOZXdEZWZhdWx0U3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBhY3R1YWxOZXdEZWZhdWx0U3R5bGUgPSB7Li4uZGVmYXVsdFN0eWxlfVxuXG4gICAgYWN0dWFsTmV3RGVmYXVsdFN0eWxlW2VsZW1lbnRUeXBlXSA9IHN0eWxlc0xpc3RcblxuICAgIHJldHVybiBhY3R1YWxOZXdEZWZhdWx0U3R5bGVcbiAgfSwgW2RlZmF1bHRTdHlsZSwgc3R5bGVzTGlzdF0pXG5cbiAgcmV0dXJuIHtuZXdEZWZhdWx0U3R5bGU6IGFjdHVhbE5ld0RlZmF1bHRTdHlsZSwgc3R5bGVzTGlzdH1cbn1cblxuY29uc3QgV2l0aERlZmF1bHRTdHlsZSA9IG1lbW8oKHtjaGlsZHJlbiwgc3R5bGUsIC4uLnJlc3RQcm9wc30pID0+IHtcbiAgaWYgKE9iamVjdC5rZXlzKHJlc3RQcm9wcykubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHByb3BzOiAke09iamVjdC5rZXlzKHJlc3RQcm9wcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBkZWZhdWx0U3R5bGUgPSB1c2VDb250ZXh0KERlZmF1bHRTdHlsZUNvbnRleHQpXG5cbiAgY29uc3QgbmV3RGVmYXVsdFN0eWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gc3R5bGUpIHtcbiAgICAgIGlmICghKGtleSBpbiBkZWZhdWx0U3R5bGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBlbGVtZW50IHR5cGUgZ2l2ZW46ICR7a2V5fWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3RGVmYXVsdFN0eWxlID0ge31cblxuICAgIGluY29ycG9yYXRlKG5ld0RlZmF1bHRTdHlsZSwgZGVmYXVsdFN0eWxlLCBzdHlsZSlcblxuICAgIHJldHVybiBuZXdEZWZhdWx0U3R5bGVcbiAgfSwgW2RlZmF1bHRTdHlsZSwgc3R5bGVdKVxuXG4gIHJldHVybiAoXG4gICAgPERlZmF1bHRTdHlsZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25ld0RlZmF1bHRTdHlsZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9EZWZhdWx0U3R5bGVDb250ZXh0LlByb3ZpZGVyPlxuICApXG59KVxuXG5leHBvcnQge3VzZURlZmF1bHRTdHlsZSwgdXNlTWVyZ2VkU3R5bGUsIFdpdGhEZWZh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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspernj/api-maker",
3
- "version": "1.0.2016",
3
+ "version": "1.0.2018",
4
4
  "description": "My new module",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
@@ -1,5 +1,5 @@
1
1
  import React, {useMemo} from "react"
2
- import {Pressable, View} from "react-native"
2
+ import {Pressable, StyleSheet, View} from "react-native"
3
3
  import BaseComponent from "../base-component"
4
4
  import ConfigReader from "./config-reader"
5
5
  import EditPage from "./edit-page"
@@ -18,6 +18,26 @@ import Text from "../utils/text"
18
18
  import useCanCan from "../use-can-can"
19
19
  import useCurrentUser from "../use-current-user"
20
20
  import useQueryParams from "on-location-changed/build/use-query-params"
21
+ import useStyles from "../use-styles"
22
+
23
+ const styles = StyleSheet.create({
24
+ actionsView: {
25
+ flexDirection: "row",
26
+ alignItems: "center"
27
+ },
28
+ createNewModelLink: {
29
+ marginLeft: 10,
30
+ marginRight: 10
31
+ },
32
+ destroyModelLink: {
33
+ marginLeft: 10,
34
+ marginRight: 10
35
+ },
36
+ editModelLink: {
37
+ marginLeft: 10,
38
+ marginRight: 10
39
+ }
40
+ })
21
41
 
22
42
  export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponent {
23
43
  setup() {
@@ -98,15 +118,17 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
98
118
  pageToShow = "welcome"
99
119
  }
100
120
 
121
+ const actionsViewStyle = useStyles(styles, "actionsView")
122
+
101
123
  const actions = useMemo(
102
- () => <View style={{flexDirection: "row", alignItems: "center"}}>
124
+ () => <View style={actionsViewStyle}>
103
125
  {model && modelConfigActions && modelConfigActions({model})}
104
126
  {modelClass && pageToShow == "index" &&
105
127
  <>
106
128
  {canCan?.can("new", modelClass) && hasEditConfig(modelClass) &&
107
129
  <Link
108
130
  dataSet={{class: "create-new-model-link"}}
109
- style={{marginLeft: 10, marginRight: 10}}
131
+ style={styles.createNewModelLink}
110
132
  to={Params.withParams({model: modelName, mode: "new"})}
111
133
  >
112
134
  <Text>
@@ -121,7 +143,7 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
121
143
  {model.can("edit") && hasEditConfig(modelClass) &&
122
144
  <Link
123
145
  dataSet={{class: "edit-model-link"}}
124
- style={{marginLeft: 10, marginRight: 10}}
146
+ style={styles.editModelLink}
125
147
  to={Params.withParams({model: modelName, model_id: modelId, mode: "edit"})}
126
148
  >
127
149
  <Text>
@@ -133,7 +155,7 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
133
155
  <Pressable
134
156
  dataSet={{class: "destroy-model-link"}}
135
157
  onPress={this.tt.onDestroyClicked}
136
- style={{marginLeft: 10, marginRight: 10}}
158
+ style={styles.destroyModelLink}
137
159
  >
138
160
  <Text>
139
161
  Delete
@@ -4,7 +4,7 @@ import PropTypes from "prop-types"
4
4
  import PropTypesExact from "prop-types-exact"
5
5
  import memo from "set-state-compare/src/memo"
6
6
  import Params from "../params"
7
- import React from "react"
7
+ import React, {useMemo} from "react"
8
8
  import {shapeComponent} from "set-state-compare/src/shape-component"
9
9
  import ShowReflectionLink from "./show-reflection-link"
10
10
  import Text from "../utils/text"
@@ -23,9 +23,10 @@ export default memo(shapeComponent(class ApiMakerSuperAdminShowNav extends BaseC
23
23
  const {model, modelClass} = this.props
24
24
  const queryParams = useQueryParams()
25
25
  const reflections = modelClass.reflections()
26
+ const dataSet = useMemo(() => ({component: "super-admin--show-nav"}), [])
26
27
 
27
28
  return (
28
- <View dataSet={{component: "super-admin--show-nav"}}>
29
+ <View dataSet={dataSet}>
29
30
  <View>
30
31
  <Link to={Params.withParams({model: modelClass.modelClassData().name, model_id: queryParams.model_id})}>
31
32
  <Text>
@@ -36,10 +36,12 @@ export default memo(shapeComponent(class SuperAdminShowReflectionActions extends
36
36
 
37
37
  linkParams[dataParamName] = modelData
38
38
 
39
+ const dataSet = useMemo(() => ({class: "create-new-model-link"}), [])
40
+
39
41
  return (
40
42
  <>
41
43
  {canCan?.can("new", reflection.modelClass()) &&
42
- <Link dataSet={{class: "create-new-model-link"}} to={Params.withParams(linkParams)}>
44
+ <Link dataSet={dataSet} to={Params.withParams(linkParams)}>
43
45
  Create new
44
46
  </Link>
45
47
  }
@@ -4,7 +4,7 @@ import PropTypes from "prop-types"
4
4
  import propTypesExact from "prop-types-exact"
5
5
  import memo from "set-state-compare/src/memo"
6
6
  import ModelClassTable from "./model-class-table"
7
- import React from "react"
7
+ import React, {useMemo} from "react"
8
8
  import {shapeComponent} from "set-state-compare/src/shape-component"
9
9
  import ShowNav from "./show-nav"
10
10
  import useQueryParams from "on-location-changed/build/use-query-params"
@@ -29,8 +29,10 @@ export default memo(shapeComponent(class ApiMakerSuperAdminShowReflectionPage ex
29
29
 
30
30
  if (model) collection = model[reflection.name()]()
31
31
 
32
+ const dataSet = useMemo(() => ({component: "super-admin--show-page"}), [])
33
+
32
34
  return (
33
- <View dataSet={{component: "super-admin--show-page"}}>
35
+ <View dataSet={dataSet}>
34
36
  {model &&
35
37
  <ShowNav model={model} modelClass={modelClass} />
36
38
  }
@@ -6,7 +6,7 @@ import LoadSearchModal from "./load-search-modal"
6
6
  import SaveSearchModal from "./save-search-modal"
7
7
  import Params from "../../params"
8
8
  import PropTypes from "prop-types"
9
- import * as models from "models"
9
+ import {TableSearch} from "models"
10
10
  import memo from "set-state-compare/src/memo"
11
11
  import {shapeComponent} from "set-state-compare/src/shape-component"
12
12
  import React from "react"
@@ -14,8 +14,6 @@ import useI18n from "i18n-on-steroids/src/use-i18n"
14
14
  import useQueryParams from "on-location-changed/build/use-query-params"
15
15
  import {View} from "react-native"
16
16
 
17
- const {TableSearch} = models
18
-
19
17
  export default memo(shapeComponent(class ApiMakerTableFilters extends BaseComponent {
20
18
  static propTypes = {
21
19
  currentUser: PropTypes.object,
@@ -1,6 +1,6 @@
1
1
  import {digg, digs} from "diggerize"
2
2
  import React, {createContext, useContext, useMemo, useRef} from "react"
3
- import {Animated, Pressable, View} from "react-native"
3
+ import {Animated, Platform, Pressable, View} from "react-native"
4
4
  import BaseComponent from "../base-component"
5
5
  import Card from "../bootstrap/card"
6
6
  import classNames from "classnames"
@@ -16,6 +16,7 @@ import Header from "./components/header"
16
16
  import HeaderColumn from "./header-column"
17
17
  import HeaderSelect from "./header-select"
18
18
  import Icon from "../utils/icon"
19
+ import {incorporate} from "incorporator"
19
20
  import * as inflection from "inflection"
20
21
  import memo from "set-state-compare/src/memo"
21
22
  import modelClassRequire from "../model-class-require"
@@ -935,11 +936,17 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
935
936
  }
936
937
 
937
938
  submitFilter = () => {
938
- const filterForm = digg(this.tt.filterFormRef, "current")
939
939
  const {appHistory} = this.props
940
- const qParams = Params.serializeForm(filterForm)
941
940
  const {queryQName} = this.s
942
941
  const changeParamsParams = {}
942
+ const qParams = this.s.filterForm.asObject()
943
+
944
+ if (Platform.OS == "web") {
945
+ const filterForm = digg(this.tt.filterFormRef, "current")
946
+ const navtiveFormParams = Params.serializeForm(filterForm)
947
+
948
+ incorporate(qParams, navtiveFormParams)
949
+ }
943
950
 
944
951
  changeParamsParams[queryQName] = JSON.stringify(qParams)
945
952
 
package/src/use-styles.js CHANGED
@@ -13,6 +13,10 @@ const useStyles = (styles, args, dependencies = []) => {
13
13
  const listOfStyles = []
14
14
  const breakpointsReverse = [...config.getBreakPoints()].reverse()
15
15
 
16
+ if (!Array.isArray(args)) {
17
+ args = [args]
18
+ }
19
+
16
20
  for (const arg of args) {
17
21
  if (typeof arg == "string") {
18
22
  if (!(arg in styles)) {
@@ -15,7 +15,7 @@ const useDefaultStyle = () => {
15
15
  const useMergedStyle = (style, elementType) => {
16
16
  const defaultStyle = useDefaultStyle()
17
17
 
18
- const {newDefaultStyle, stylesList} = useMemo(() => {
18
+ const stylesList = useMemo(() => {
19
19
  const defaultElementStyle = defaultStyle[elementType]
20
20
  let stylesList
21
21
 
@@ -35,7 +35,7 @@ const useMergedStyle = (style, elementType) => {
35
35
  stylesList.push(style)
36
36
  }
37
37
 
38
- return {newDefaultStyle, stylesList}
38
+ return stylesList
39
39
  }, [defaultStyle[elementType], style])
40
40
 
41
41
  const actualNewDefaultStyle = useMemo(() => {
@@ -44,7 +44,7 @@ const useMergedStyle = (style, elementType) => {
44
44
  actualNewDefaultStyle[elementType] = stylesList
45
45
 
46
46
  return actualNewDefaultStyle
47
- }, [defaultStyle, newDefaultStyle])
47
+ }, [defaultStyle, stylesList])
48
48
 
49
49
  return {newDefaultStyle: actualNewDefaultStyle, stylesList}
50
50
  }