@payloadcms/richtext-lexical 0.3.1 → 0.4.1

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.
Files changed (194) hide show
  1. package/components.d.ts +6 -0
  2. package/components.js +34 -0
  3. package/dist/cell/index.d.ts.map +1 -1
  4. package/dist/cell/index.js +16 -14
  5. package/dist/exports/components.d.ts +6 -0
  6. package/dist/exports/components.d.ts.map +1 -0
  7. package/dist/exports/components.js +34 -0
  8. package/dist/field/Field.js +4 -3
  9. package/dist/field/features/BlockQuote/index.d.ts.map +1 -1
  10. package/dist/field/features/BlockQuote/index.js +47 -7
  11. package/dist/field/features/Blocks/drawer/index.d.ts +0 -1
  12. package/dist/field/features/Blocks/drawer/index.d.ts.map +1 -1
  13. package/dist/field/features/Blocks/drawer/index.js +4 -5
  14. package/dist/field/features/Blocks/index.d.ts +0 -1
  15. package/dist/field/features/Blocks/index.d.ts.map +1 -1
  16. package/dist/field/features/Blocks/index.js +46 -7
  17. package/dist/field/features/Blocks/nodes/BlocksNode.d.ts.map +1 -1
  18. package/dist/field/features/Blocks/nodes/BlocksNode.js +45 -3
  19. package/dist/field/features/Blocks/plugin/commands.d.ts +4 -0
  20. package/dist/field/features/Blocks/plugin/commands.d.ts.map +1 -0
  21. package/dist/field/features/Blocks/plugin/commands.js +14 -0
  22. package/dist/field/features/Blocks/plugin/index.d.ts +0 -2
  23. package/dist/field/features/Blocks/plugin/index.d.ts.map +1 -1
  24. package/dist/field/features/Blocks/plugin/index.js +6 -14
  25. package/dist/field/features/Heading/index.d.ts.map +1 -1
  26. package/dist/field/features/Heading/index.js +56 -17
  27. package/dist/field/features/Link/drawer/baseFields.d.ts +1 -1
  28. package/dist/field/features/Link/drawer/baseFields.d.ts.map +1 -1
  29. package/dist/field/features/Link/drawer/baseFields.js +43 -26
  30. package/dist/field/features/Link/index.d.ts +21 -2
  31. package/dist/field/features/Link/index.d.ts.map +1 -1
  32. package/dist/field/features/Link/index.js +58 -18
  33. package/dist/field/features/Link/nodes/AutoLinkNode.d.ts.map +1 -1
  34. package/dist/field/features/Link/nodes/AutoLinkNode.js +1 -1
  35. package/dist/field/features/Link/nodes/LinkNode.d.ts +3 -2
  36. package/dist/field/features/Link/nodes/LinkNode.d.ts.map +1 -1
  37. package/dist/field/features/Link/nodes/LinkNode.js +1 -1
  38. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts +4 -0
  39. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -0
  40. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/commands.js +14 -0
  41. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts +1 -4
  42. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  43. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +8 -16
  44. package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts +1 -1
  45. package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  46. package/dist/field/features/Link/plugins/floatingLinkEditor/index.js +5 -4
  47. package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts +1 -1
  48. package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts.map +1 -1
  49. package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.js +3 -3
  50. package/dist/field/features/Paragraph/index.d.ts.map +1 -1
  51. package/dist/field/features/Paragraph/index.js +48 -8
  52. package/dist/field/features/Relationship/drawer/commands.d.ts +7 -0
  53. package/dist/field/features/Relationship/drawer/commands.d.ts.map +1 -0
  54. package/dist/field/features/Relationship/drawer/commands.js +14 -0
  55. package/dist/field/features/Relationship/drawer/index.d.ts +1 -8
  56. package/dist/field/features/Relationship/drawer/index.d.ts.map +1 -1
  57. package/dist/field/features/Relationship/drawer/index.js +7 -17
  58. package/dist/field/features/Relationship/index.d.ts +16 -2
  59. package/dist/field/features/Relationship/index.d.ts.map +1 -1
  60. package/dist/field/features/Relationship/index.js +53 -14
  61. package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts.map +1 -1
  62. package/dist/field/features/Relationship/nodes/RelationshipNode.js +6 -3
  63. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts.map +1 -1
  64. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +4 -5
  65. package/dist/field/features/Relationship/plugins/index.d.ts +2 -1
  66. package/dist/field/features/Relationship/plugins/index.d.ts.map +1 -1
  67. package/dist/field/features/Relationship/plugins/index.js +10 -4
  68. package/dist/field/features/Upload/component/index.js +3 -3
  69. package/dist/field/features/Upload/drawer/commands.d.ts +7 -0
  70. package/dist/field/features/Upload/drawer/commands.d.ts.map +1 -0
  71. package/dist/field/features/Upload/drawer/commands.js +14 -0
  72. package/dist/field/features/Upload/drawer/index.d.ts +0 -7
  73. package/dist/field/features/Upload/drawer/index.d.ts.map +1 -1
  74. package/dist/field/features/Upload/drawer/index.js +6 -15
  75. package/dist/field/features/Upload/index.d.ts +0 -1
  76. package/dist/field/features/Upload/index.d.ts.map +1 -1
  77. package/dist/field/features/Upload/index.js +46 -8
  78. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts +0 -1
  79. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +1 -1
  80. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +42 -4
  81. package/dist/field/features/align/index.d.ts +0 -1
  82. package/dist/field/features/align/index.d.ts.map +1 -1
  83. package/dist/field/features/align/index.js +50 -11
  84. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts +0 -1
  85. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts.map +1 -1
  86. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +1 -2
  87. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts +0 -1
  88. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +1 -1
  89. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +42 -4
  90. package/dist/field/features/converters/html/field/index.d.ts.map +1 -1
  91. package/dist/field/features/converters/html/field/index.js +17 -2
  92. package/dist/field/features/converters/html/index.d.ts.map +1 -1
  93. package/dist/field/features/converters/html/index.js +2 -5
  94. package/dist/field/features/debug/TestRecorder/index.d.ts.map +1 -1
  95. package/dist/field/features/debug/TestRecorder/index.js +42 -3
  96. package/dist/field/features/debug/TestRecorder/plugin/index.js +1 -1
  97. package/dist/field/features/debug/TreeView/index.d.ts +0 -1
  98. package/dist/field/features/debug/TreeView/index.d.ts.map +1 -1
  99. package/dist/field/features/debug/TreeView/index.js +43 -5
  100. package/dist/field/features/debug/TreeView/plugin.d.ts +1 -0
  101. package/dist/field/features/debug/TreeView/plugin.d.ts.map +1 -1
  102. package/dist/field/features/debug/TreeView/plugin.js +2 -1
  103. package/dist/field/features/format/Bold/index.d.ts.map +1 -1
  104. package/dist/field/features/format/Bold/index.js +43 -4
  105. package/dist/field/features/format/InlineCode/index.d.ts.map +1 -1
  106. package/dist/field/features/format/InlineCode/index.js +44 -5
  107. package/dist/field/features/format/Italic/index.d.ts.map +1 -1
  108. package/dist/field/features/format/Italic/index.js +44 -5
  109. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts +0 -1
  110. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts.map +1 -1
  111. package/dist/field/features/format/common/floatingSelectToolbarSection.js +1 -2
  112. package/dist/field/features/format/strikethrough/index.d.ts.map +1 -1
  113. package/dist/field/features/format/strikethrough/index.js +44 -5
  114. package/dist/field/features/format/subscript/index.d.ts.map +1 -1
  115. package/dist/field/features/format/subscript/index.js +44 -5
  116. package/dist/field/features/format/superscript/index.d.ts.map +1 -1
  117. package/dist/field/features/format/superscript/index.js +44 -5
  118. package/dist/field/features/format/underline/index.d.ts.map +1 -1
  119. package/dist/field/features/format/underline/index.js +44 -5
  120. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts +0 -1
  121. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts.map +1 -1
  122. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +1 -2
  123. package/dist/field/features/indent/index.d.ts +0 -1
  124. package/dist/field/features/indent/index.d.ts.map +1 -1
  125. package/dist/field/features/indent/index.js +54 -9
  126. package/dist/field/features/indent/plugin.d.ts +3 -0
  127. package/dist/field/features/indent/plugin.d.ts.map +1 -0
  128. package/dist/field/features/indent/plugin.js +17 -0
  129. package/dist/field/features/lists/CheckList/index.d.ts.map +1 -1
  130. package/dist/field/features/lists/CheckList/index.js +46 -6
  131. package/dist/field/features/lists/OrderedList/index.d.ts.map +1 -1
  132. package/dist/field/features/lists/OrderedList/index.js +46 -6
  133. package/dist/field/features/lists/UnorderedList/index.d.ts.map +1 -1
  134. package/dist/field/features/lists/UnorderedList/index.js +46 -6
  135. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts +9 -0
  136. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -0
  137. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +23 -0
  138. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +0 -1
  139. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  140. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.js +47 -8
  141. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/Component.d.ts +9 -0
  142. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -0
  143. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/Component.js +23 -0
  144. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.d.ts +0 -1
  145. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  146. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.js +47 -8
  147. package/dist/field/features/types.d.ts +31 -32
  148. package/dist/field/features/types.d.ts.map +1 -1
  149. package/dist/field/index.d.ts.map +1 -1
  150. package/dist/field/index.js +4 -2
  151. package/dist/field/lexical/EditorPlugin.d.ts +7 -0
  152. package/dist/field/lexical/EditorPlugin.d.ts.map +1 -0
  153. package/dist/field/lexical/EditorPlugin.js +68 -0
  154. package/dist/field/lexical/LexicalEditor.d.ts.map +1 -1
  155. package/dist/field/lexical/LexicalEditor.js +15 -10
  156. package/dist/field/lexical/LexicalEditor.scss +18 -0
  157. package/dist/field/lexical/LexicalProvider.d.ts.map +1 -1
  158. package/dist/field/lexical/LexicalProvider.js +29 -15
  159. package/dist/field/lexical/config/default.d.ts +0 -2
  160. package/dist/field/lexical/config/default.d.ts.map +1 -1
  161. package/dist/field/lexical/config/default.js +45 -10
  162. package/dist/field/lexical/config/defaultClient.d.ts +3 -0
  163. package/dist/field/lexical/config/defaultClient.d.ts.map +1 -0
  164. package/dist/field/lexical/config/defaultClient.js +17 -0
  165. package/dist/field/lexical/config/types.d.ts +2 -2
  166. package/dist/field/lexical/config/types.d.ts.map +1 -1
  167. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +5 -0
  168. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -1
  169. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +85 -21
  170. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +1 -1
  171. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +66 -23
  172. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts +5 -5
  173. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts.map +1 -1
  174. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +3 -2
  175. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  176. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -1
  177. package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  178. package/dist/field/lexical/plugins/SlashMenu/index.js +9 -2
  179. package/dist/field/lexical/plugins/SlashMenu/index.scss +4 -1
  180. package/dist/index.d.ts +2 -8
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +67 -39
  183. package/package.json +17 -15
  184. package/dist/field/features/Blocks/drawer/index.scss +0 -1
  185. package/dist/field/features/Blocks/index.scss +0 -1
  186. package/dist/field/features/Link/index.scss +0 -1
  187. package/dist/field/features/Relationship/drawer/index.scss +0 -1
  188. package/dist/field/features/Relationship/index.scss +0 -1
  189. package/dist/field/features/Upload/drawer/index.scss +0 -1
  190. package/dist/field/features/Upload/index.scss +0 -1
  191. package/dist/field/features/align/index.scss +0 -4
  192. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.scss +0 -4
  193. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.scss +0 -4
  194. package/dist/field/features/format/common/index.scss +0 -4
@@ -10,20 +10,52 @@ Object.defineProperty(exports, "LinkFeature", {
10
10
  });
11
11
  const _utils = require("@lexical/utils");
12
12
  const _lexical = require("lexical");
13
- const _utilities = require("payload/utilities");
14
- const _Link = require("../../lexical/ui/icons/Link");
15
13
  const _getSelectedNode = require("../../lexical/utils/getSelectedNode");
16
14
  const _floatingSelectToolbarFeaturesButtonsSection = require("../common/floatingSelectToolbarFeaturesButtonsSection");
17
15
  const _converter = require("../converters/html/converter");
18
- require("./index.scss");
19
16
  const _AutoLinkNode = require("./nodes/AutoLinkNode");
20
17
  const _LinkNode = require("./nodes/LinkNode");
21
- const _autoLink = require("./plugins/autoLink");
22
- const _clickableLink = require("./plugins/clickableLink");
23
- const _floatingLinkEditor = require("./plugins/floatingLinkEditor");
24
- const _LinkEditor = require("./plugins/floatingLinkEditor/LinkEditor");
25
- const _link = require("./plugins/link");
18
+ const _commands = require("./plugins/floatingLinkEditor/LinkEditor/commands");
26
19
  const _populationPromise = require("./populationPromise");
20
+ function _getRequireWildcardCache(nodeInterop) {
21
+ if (typeof WeakMap !== "function") return null;
22
+ var cacheBabelInterop = new WeakMap();
23
+ var cacheNodeInterop = new WeakMap();
24
+ return (_getRequireWildcardCache = function(nodeInterop) {
25
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
26
+ })(nodeInterop);
27
+ }
28
+ function _interop_require_wildcard(obj, nodeInterop) {
29
+ if (!nodeInterop && obj && obj.__esModule) {
30
+ return obj;
31
+ }
32
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
33
+ return {
34
+ default: obj
35
+ };
36
+ }
37
+ var cache = _getRequireWildcardCache(nodeInterop);
38
+ if (cache && cache.has(obj)) {
39
+ return cache.get(obj);
40
+ }
41
+ var newObj = {};
42
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
43
+ for(var key in obj){
44
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
45
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
46
+ if (desc && (desc.get || desc.set)) {
47
+ Object.defineProperty(newObj, key, desc);
48
+ } else {
49
+ newObj[key] = obj[key];
50
+ }
51
+ }
52
+ }
53
+ newObj.default = obj;
54
+ if (cache) {
55
+ cache.set(obj, newObj);
56
+ }
57
+ return newObj;
58
+ }
27
59
  const LinkFeature = (props)=>{
28
60
  return {
29
61
  feature: ()=>{
@@ -32,7 +64,8 @@ const LinkFeature = (props)=>{
32
64
  sections: [
33
65
  (0, _floatingSelectToolbarFeaturesButtonsSection.FeaturesSectionWithEntries)([
34
66
  {
35
- ChildComponent: _Link.LinkIcon,
67
+ ChildComponent: ()=>// @ts-expect-error
68
+ Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../../lexical/ui/icons/Link"))).then((module)=>module.LinkIcon),
36
69
  isActive: ({ selection })=>{
37
70
  if ((0, _lexical.$isRangeSelection)(selection)) {
38
71
  const selectedNode = (0, _getSelectedNode.getSelectedNode)(selection);
@@ -55,7 +88,7 @@ const LinkFeature = (props)=>{
55
88
  newTab: false,
56
89
  url: 'https://'
57
90
  };
58
- editor.dispatchCommand(_LinkEditor.TOGGLE_LINK_WITH_MODAL_COMMAND, {
91
+ editor.dispatchCommand(_commands.TOGGLE_LINK_WITH_MODAL_COMMAND, {
59
92
  fields: linkFields,
60
93
  text: selectedText
61
94
  });
@@ -127,22 +160,29 @@ const LinkFeature = (props)=>{
127
160
  ],
128
161
  plugins: [
129
162
  {
130
- Component: _link.LinkPlugin,
163
+ Component: ()=>// @ts-expect-error
164
+ Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./plugins/link"))).then((module)=>module.LinkPlugin),
131
165
  position: 'normal'
132
166
  },
133
167
  {
134
- Component: _autoLink.AutoLinkPlugin,
168
+ Component: ()=>// @ts-expect-error
169
+ Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./plugins/autoLink"))).then((module)=>module.AutoLinkPlugin),
135
170
  position: 'normal'
136
171
  },
137
172
  {
138
- Component: _clickableLink.ClickableLinkPlugin,
173
+ Component: ()=>// @ts-expect-error
174
+ Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./plugins/clickableLink"))).then((module)=>module.ClickableLinkPlugin),
139
175
  position: 'normal'
140
176
  },
141
177
  {
142
- Component: (0, _utilities.withMergedProps)({
143
- Component: _floatingLinkEditor.FloatingLinkEditorPlugin,
144
- toMergeIntoProps: props
145
- }),
178
+ Component: ()=>// @ts-expect-error
179
+ Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./plugins/floatingLinkEditor"))).then((module)=>{
180
+ const floatingLinkEditorPlugin = module.FloatingLinkEditorPlugin;
181
+ return Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("payload/utilities"))).then((module)=>module.withMergedProps({
182
+ Component: floatingLinkEditorPlugin,
183
+ toMergeIntoProps: props
184
+ }));
185
+ }),
146
186
  position: 'floatingAnchorElem'
147
187
  }
148
188
  ],
@@ -153,4 +193,4 @@ const LinkFeature = (props)=>{
153
193
  };
154
194
  };
155
195
 
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgaTE4biB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7ICRmaW5kTWF0Y2hpbmdQYXJlbnQgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRnZXRTZWxlY3Rpb24sICRpc1JhbmdlU2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7IHdpdGhNZXJnZWRQcm9wcyB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuLi9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEF1dG9MaW5rTm9kZSB9IGZyb20gJy4vbm9kZXMvQXV0b0xpbmtOb2RlJ1xuaW1wb3J0IHR5cGUgeyBMaW5rRmllbGRzLCBTZXJpYWxpemVkTGlua05vZGUgfSBmcm9tICcuL25vZGVzL0xpbmtOb2RlJ1xuXG5pbXBvcnQgeyBMaW5rSWNvbiB9IGZyb20gJy4uLy4uL2xleGljYWwvdWkvaWNvbnMvTGluaydcbmltcG9ydCB7IGdldFNlbGVjdGVkTm9kZSB9IGZyb20gJy4uLy4uL2xleGljYWwvdXRpbHMvZ2V0U2VsZWN0ZWROb2RlJ1xuaW1wb3J0IHsgRmVhdHVyZXNTZWN0aW9uV2l0aEVudHJpZXMgfSBmcm9tICcuLi9jb21tb24vZmxvYXRpbmdTZWxlY3RUb29sYmFyRmVhdHVyZXNCdXR0b25zU2VjdGlvbidcbmltcG9ydCB7IGNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwgfSBmcm9tICcuLi9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5pbXBvcnQgeyBBdXRvTGlua05vZGUgfSBmcm9tICcuL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCBMaW5rTm9kZSwgVE9HR0xFX0xJTktfQ09NTUFORCB9IGZyb20gJy4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgeyBBdXRvTGlua1BsdWdpbiB9IGZyb20gJy4vcGx1Z2lucy9hdXRvTGluaydcbmltcG9ydCB7IENsaWNrYWJsZUxpbmtQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlTGluaydcbmltcG9ydCB7IEZsb2F0aW5nTGlua0VkaXRvclBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucy9mbG9hdGluZ0xpbmtFZGl0b3InXG5pbXBvcnQgeyBUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQgfSBmcm9tICcuL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3InXG5pbXBvcnQgeyBMaW5rUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2xpbmsnXG5pbXBvcnQgeyBsaW5rUG9wdWxhdGlvblByb21pc2VIT0MgfSBmcm9tICcuL3BvcHVsYXRpb25Qcm9taXNlJ1xuXG5leHBvcnQgdHlwZSBMaW5rRmVhdHVyZVByb3BzID0ge1xuICBmaWVsZHM/OlxuICAgIHwgKChhcmdzOiB7IGNvbmZpZzogU2FuaXRpemVkQ29uZmlnOyBkZWZhdWx0RmllbGRzOiBGaWVsZFtdOyBpMThuOiBpMThuIH0pID0+IEZpZWxkW10pXG4gICAgfCBGaWVsZFtdXG59XG5leHBvcnQgY29uc3QgTGlua0ZlYXR1cmUgPSAocHJvcHM6IExpbmtGZWF0dXJlUHJvcHMpOiBGZWF0dXJlUHJvdmlkZXIgPT4ge1xuICByZXR1cm4ge1xuICAgIGZlYXR1cmU6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZsb2F0aW5nU2VsZWN0VG9vbGJhcjoge1xuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICBGZWF0dXJlc1NlY3Rpb25XaXRoRW50cmllcyhbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBDaGlsZENvbXBvbmVudDogTGlua0ljb24sXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU6ICh7IHNlbGVjdGlvbiB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uKVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5rUGFyZW50ID0gJGZpbmRNYXRjaGluZ1BhcmVudChzZWxlY3RlZE5vZGUsICRpc0xpbmtOb2RlKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlua1BhcmVudCAhPSBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGtleTogJ2xpbmsnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBgTGlua2AsXG4gICAgICAgICAgICAgICAgb25DbGljazogKHsgZWRpdG9yLCBpc0FjdGl2ZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZFRleHQgPSBudWxsXG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGV4dCA9ICRnZXRTZWxlY3Rpb24oKS5nZXRUZXh0Q29udGVudCgpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtGaWVsZHM6IExpbmtGaWVsZHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgZG9jOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIGxpbmtUeXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgICAgICBuZXdUYWI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vJyxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkczogbGlua0ZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBzZWxlY3RlZFRleHQsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgbGlua1xuICAgICAgICAgICAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG51bGwpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29udmVydGVyczoge1xuICAgICAgICAgICAgICBodG1sOiB7XG4gICAgICAgICAgICAgICAgY29udmVydGVyOiBhc3luYyAoeyBjb252ZXJ0ZXJzLCBub2RlLCBwYXJlbnQgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW5UZXh0ID0gYXdhaXQgY29udmVydExleGljYWxOb2Rlc1RvSFRNTCh7XG4gICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGxleGljYWxOb2Rlczogbm9kZS5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCByZWw6IHN0cmluZyA9IG5vZGUuZmllbGRzLm5ld1RhYiA/ICcgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiJyA6ICcnXG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGhyZWY6IHN0cmluZyA9XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuZmllbGRzLmxpbmtUeXBlID09PSAnY3VzdG9tJyA/IG5vZGUuZmllbGRzLnVybCA6IG5vZGUuZmllbGRzLmRvYz8udmFsdWU/LmlkXG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBgPGEgaHJlZj1cIiR7aHJlZn1cIiR7cmVsfT4ke2NoaWxkcmVuVGV4dH08L2E+YFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbm9kZVR5cGVzOiBbTGlua05vZGUuZ2V0VHlwZSgpXSxcbiAgICAgICAgICAgICAgfSBhcyBIVE1MQ29udmVydGVyPFNlcmlhbGl6ZWRMaW5rTm9kZT4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbm9kZTogTGlua05vZGUsXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXM6IFtsaW5rUG9wdWxhdGlvblByb21pc2VIT0MocHJvcHMpXSxcbiAgICAgICAgICAgIHR5cGU6IExpbmtOb2RlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIC8vIFRPRE86IEFkZCB2YWxpZGF0aW9uIHNpbWlsYXIgdG8gdXBsb2FkIGZvciBpbnRlcm5hbCBsaW5rcyBhbmQgZmllbGRzXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb252ZXJ0ZXJzOiB7XG4gICAgICAgICAgICAgIGh0bWw6IHtcbiAgICAgICAgICAgICAgICBjb252ZXJ0ZXI6IGFzeW5jICh7IGNvbnZlcnRlcnMsIG5vZGUsIHBhcmVudCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlblRleHQgPSBhd2FpdCBjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MKHtcbiAgICAgICAgICAgICAgICAgICAgY29udmVydGVycyxcbiAgICAgICAgICAgICAgICAgICAgbGV4aWNhbE5vZGVzOiBub2RlLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5ub2RlLFxuICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbDogc3RyaW5nID0gbm9kZS5maWVsZHMubmV3VGFiID8gJyByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCInIDogJydcblxuICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZjogc3RyaW5nID1cbiAgICAgICAgICAgICAgICAgICAgbm9kZS5maWVsZHMubGlua1R5cGUgPT09ICdjdXN0b20nID8gbm9kZS5maWVsZHMudXJsIDogbm9kZS5maWVsZHMuZG9jPy52YWx1ZT8uaWRcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGA8YSBocmVmPVwiJHtocmVmfVwiJHtyZWx9PiR7Y2hpbGRyZW5UZXh0fTwvYT5gXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBub2RlVHlwZXM6IFtBdXRvTGlua05vZGUuZ2V0VHlwZSgpXSxcbiAgICAgICAgICAgICAgfSBhcyBIVE1MQ29udmVydGVyPFNlcmlhbGl6ZWRBdXRvTGlua05vZGU+LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5vZGU6IEF1dG9MaW5rTm9kZSxcbiAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlczogW2xpbmtQb3B1bGF0aW9uUHJvbWlzZUhPQyhwcm9wcyldLFxuICAgICAgICAgICAgdHlwZTogQXV0b0xpbmtOb2RlLmdldFR5cGUoKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBMaW5rUGx1Z2luLFxuICAgICAgICAgICAgcG9zaXRpb246ICdub3JtYWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBBdXRvTGlua1BsdWdpbixcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnbm9ybWFsJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIENvbXBvbmVudDogQ2xpY2thYmxlTGlua1BsdWdpbixcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnbm9ybWFsJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIENvbXBvbmVudDogd2l0aE1lcmdlZFByb3BzKHtcbiAgICAgICAgICAgICAgQ29tcG9uZW50OiBGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4sXG4gICAgICAgICAgICAgIHRvTWVyZ2VJbnRvUHJvcHM6IHByb3BzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Zsb2F0aW5nQW5jaG9yRWxlbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcHJvcHMsXG4gICAgICB9XG4gICAgfSxcbiAgICBrZXk6ICdsaW5rJyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkxpbmtGZWF0dXJlIiwicHJvcHMiLCJmZWF0dXJlIiwiZmxvYXRpbmdTZWxlY3RUb29sYmFyIiwic2VjdGlvbnMiLCJGZWF0dXJlc1NlY3Rpb25XaXRoRW50cmllcyIsIkNoaWxkQ29tcG9uZW50IiwiTGlua0ljb24iLCJpc0FjdGl2ZSIsInNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwic2VsZWN0ZWROb2RlIiwiZ2V0U2VsZWN0ZWROb2RlIiwibGlua1BhcmVudCIsIiRmaW5kTWF0Y2hpbmdQYXJlbnQiLCIkaXNMaW5rTm9kZSIsImtleSIsImxhYmVsIiwib25DbGljayIsImVkaXRvciIsInNlbGVjdGVkVGV4dCIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsIiRnZXRTZWxlY3Rpb24iLCJnZXRUZXh0Q29udGVudCIsImxpbmtGaWVsZHMiLCJkb2MiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsImRpc3BhdGNoQ29tbWFuZCIsIlRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCIsImZpZWxkcyIsInRleHQiLCJUT0dHTEVfTElOS19DT01NQU5EIiwib3JkZXIiLCJub2RlcyIsImNvbnZlcnRlcnMiLCJodG1sIiwiY29udmVydGVyIiwibm9kZSIsInBhcmVudCIsImNoaWxkcmVuVGV4dCIsImNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwiLCJsZXhpY2FsTm9kZXMiLCJjaGlsZHJlbiIsInJlbCIsImhyZWYiLCJ2YWx1ZSIsImlkIiwibm9kZVR5cGVzIiwiTGlua05vZGUiLCJnZXRUeXBlIiwicG9wdWxhdGlvblByb21pc2VzIiwibGlua1BvcHVsYXRpb25Qcm9taXNlSE9DIiwidHlwZSIsIkF1dG9MaW5rTm9kZSIsInBsdWdpbnMiLCJDb21wb25lbnQiLCJMaW5rUGx1Z2luIiwicG9zaXRpb24iLCJBdXRvTGlua1BsdWdpbiIsIkNsaWNrYWJsZUxpbmtQbHVnaW4iLCJ3aXRoTWVyZ2VkUHJvcHMiLCJGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4iLCJ0b01lcmdlSW50b1Byb3BzIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdDYUE7OztlQUFBQTs7O3VCQTVCdUI7eUJBQ2E7MkJBQ2pCO3NCQU9QO2lDQUNPOzZEQUNXOzJCQUNEO1FBQ25DOzhCQUNzQjswQkFDOEI7MEJB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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgaTE4biB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7ICRmaW5kTWF0Y2hpbmdQYXJlbnQgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRnZXRTZWxlY3Rpb24sICRpc1JhbmdlU2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHR5cGUgeyBIVE1MQ29udmVydGVyIH0gZnJvbSAnLi4vY29udmVydGVycy9odG1sL2NvbnZlcnRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgRmVhdHVyZVByb3ZpZGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRBdXRvTGlua05vZGUgfSBmcm9tICcuL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB0eXBlIHsgTGlua0ZpZWxkcywgU2VyaWFsaXplZExpbmtOb2RlIH0gZnJvbSAnLi9ub2Rlcy9MaW5rTm9kZSdcblxuaW1wb3J0IHsgZ2V0U2VsZWN0ZWROb2RlIH0gZnJvbSAnLi4vLi4vbGV4aWNhbC91dGlscy9nZXRTZWxlY3RlZE5vZGUnXG5pbXBvcnQgeyBGZWF0dXJlc1NlY3Rpb25XaXRoRW50cmllcyB9IGZyb20gJy4uL2NvbW1vbi9mbG9hdGluZ1NlbGVjdFRvb2xiYXJGZWF0dXJlc0J1dHRvbnNTZWN0aW9uJ1xuaW1wb3J0IHsgY29udmVydExleGljYWxOb2Rlc1RvSFRNTCB9IGZyb20gJy4uL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXInXG5pbXBvcnQgeyBBdXRvTGlua05vZGUgfSBmcm9tICcuL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCBMaW5rTm9kZSwgVE9HR0xFX0xJTktfQ09NTUFORCB9IGZyb20gJy4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgeyBUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQgfSBmcm9tICcuL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvY29tbWFuZHMnXG5pbXBvcnQgeyBsaW5rUG9wdWxhdGlvblByb21pc2VIT0MgfSBmcm9tICcuL3BvcHVsYXRpb25Qcm9taXNlJ1xuXG50eXBlIEV4Y2x1c2l2ZUxpbmtDb2xsZWN0aW9uc1Byb3BzID1cbiAgfCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb2xsZWN0aW9ucyB0aGF0IHNob3VsZCBiZSBkaXNhYmxlZCBmb3IgaW50ZXJuYWwgbGlua2luZy4gT3ZlcnJpZGVzIHRoZSBgZW5hYmxlUmljaFRleHRMaW5rYCBwcm9wZXJ0eSBpbiB0aGUgY29sbGVjdGlvbiBjb25maWcuXG4gICAgICAgKiBXaGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0LCBgZW5hYmxlZENvbGxlY3Rpb25zYCB3aWxsIG5vdCBiZSBhdmFpbGFibGUuXG4gICAgICAgKiovXG4gICAgICBkaXNhYmxlZENvbGxlY3Rpb25zPzogc3RyaW5nW11cblxuICAgICAgLy8gRW5zdXJlcyB0aGF0IGVuYWJsZWRDb2xsZWN0aW9ucyBpcyBub3QgYXZhaWxhYmxlIHdoZW4gZGlzYWJsZWRDb2xsZWN0aW9ucyBpcyBzZXRcbiAgICAgIGVuYWJsZWRDb2xsZWN0aW9ucz86IG5ldmVyXG4gICAgfVxuICB8IHtcbiAgICAgIC8vIEVuc3VyZXMgdGhhdCBkaXNhYmxlZENvbGxlY3Rpb25zIGlzIG5vdCBhdmFpbGFibGUgd2hlbiBlbmFibGVkQ29sbGVjdGlvbnMgaXMgc2V0XG4gICAgICBkaXNhYmxlZENvbGxlY3Rpb25zPzogbmV2ZXJcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgY29sbGVjdGlvbnMgdGhhdCBzaG91bGQgYmUgZW5hYmxlZCBmb3IgaW50ZXJuYWwgbGlua2luZy4gT3ZlcnJpZGVzIHRoZSBgZW5hYmxlUmljaFRleHRMaW5rYCBwcm9wZXJ0eSBpbiB0aGUgY29sbGVjdGlvbiBjb25maWdcbiAgICAgICAqIFdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQsIGBkaXNhYmxlZENvbGxlY3Rpb25zYCB3aWxsIG5vdCBiZSBhdmFpbGFibGUuXG4gICAgICAgKiovXG4gICAgICBlbmFibGVkQ29sbGVjdGlvbnM/OiBzdHJpbmdbXVxuICAgIH1cblxuZXhwb3J0IHR5cGUgTGlua0ZlYXR1cmVQcm9wcyA9IEV4Y2x1c2l2ZUxpbmtDb2xsZWN0aW9uc1Byb3BzICYge1xuICAvKipcbiAgICogQSBmdW5jdGlvbiBvciBhcnJheSBkZWZpbmluZyBhZGRpdGlvbmFsIGZpZWxkcyBmb3IgdGhlIGxpbmsgZmVhdHVyZS4gVGhlc2Ugd2lsbCBiZVxuICAgKiBkaXNwbGF5ZWQgaW4gdGhlIGxpbmsgZWRpdG9yIGRyYXdlci5cbiAgICovXG4gIGZpZWxkcz86XG4gICAgfCAoKGFyZ3M6IHsgY29uZmlnOiBTYW5pdGl6ZWRDb25maWc7IGRlZmF1bHRGaWVsZHM6IEZpZWxkW107IGkxOG46IGkxOG4gfSkgPT4gRmllbGRbXSlcbiAgICB8IEZpZWxkW11cbn1cblxuZXhwb3J0IGNvbnN0IExpbmtGZWF0dXJlID0gKHByb3BzOiBMaW5rRmVhdHVyZVByb3BzKTogRmVhdHVyZVByb3ZpZGVyID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmZWF0dXJlOiAoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbG9hdGluZ1NlbGVjdFRvb2xiYXI6IHtcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAgRmVhdHVyZXNTZWN0aW9uV2l0aEVudHJpZXMoW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgQ2hpbGRDb21wb25lbnQ6ICgpID0+XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgICAgICBpbXBvcnQoJy4uLy4uL2xleGljYWwvdWkvaWNvbnMvTGluaycpLnRoZW4oKG1vZHVsZSkgPT4gbW9kdWxlLkxpbmtJY29uKSxcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZTogKHsgc2VsZWN0aW9uIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtQYXJlbnQgPSAkZmluZE1hdGNoaW5nUGFyZW50KHNlbGVjdGVkTm9kZSwgJGlzTGlua05vZGUpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsaW5rUGFyZW50ICE9IG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAga2V5OiAnbGluaycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGBMaW5rYCxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAoeyBlZGl0b3IsIGlzQWN0aXZlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICghaXNBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkVGV4dCA9IG51bGxcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRUZXh0ID0gJGdldFNlbGVjdGlvbigpLmdldFRleHRDb250ZW50KClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlua0ZpZWxkczogTGlua0ZpZWxkcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICBkb2M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgbGlua1R5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgICAgICAgICAgIG5ld1RhYjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly8nLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5ELCB7XG4gICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBsaW5rRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHNlbGVjdGVkVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBsaW5rXG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbnVsbClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb252ZXJ0ZXJzOiB7XG4gICAgICAgICAgICAgIGh0bWw6IHtcbiAgICAgICAgICAgICAgICBjb252ZXJ0ZXI6IGFzeW5jICh7IGNvbnZlcnRlcnMsIG5vZGUsIHBhcmVudCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlblRleHQgPSBhd2FpdCBjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MKHtcbiAgICAgICAgICAgICAgICAgICAgY29udmVydGVycyxcbiAgICAgICAgICAgICAgICAgICAgbGV4aWNhbE5vZGVzOiBub2RlLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5ub2RlLFxuICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbDogc3RyaW5nID0gbm9kZS5maWVsZHMubmV3VGFiID8gJyByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCInIDogJydcblxuICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZjogc3RyaW5nID1cbiAgICAgICAgICAgICAgICAgICAgbm9kZS5maWVsZHMubGlua1R5cGUgPT09ICdjdXN0b20nID8gbm9kZS5maWVsZHMudXJsIDogbm9kZS5maWVsZHMuZG9jPy52YWx1ZT8uaWRcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGA8YSBocmVmPVwiJHtocmVmfVwiJHtyZWx9PiR7Y2hpbGRyZW5UZXh0fTwvYT5gXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBub2RlVHlwZXM6IFtMaW5rTm9kZS5nZXRUeXBlKCldLFxuICAgICAgICAgICAgICB9IGFzIEhUTUxDb252ZXJ0ZXI8U2VyaWFsaXplZExpbmtOb2RlPixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBub2RlOiBMaW5rTm9kZSxcbiAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlczogW2xpbmtQb3B1bGF0aW9uUHJvbWlzZUhPQyhwcm9wcyldLFxuICAgICAgICAgICAgdHlwZTogTGlua05vZGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgLy8gVE9ETzogQWRkIHZhbGlkYXRpb24gc2ltaWxhciB0byB1cGxvYWQgZm9yIGludGVybmFsIGxpbmtzIGFuZCBmaWVsZHNcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnZlcnRlcnM6IHtcbiAgICAgICAgICAgICAgaHRtbDoge1xuICAgICAgICAgICAgICAgIGNvbnZlcnRlcjogYXN5bmMgKHsgY29udmVydGVycywgbm9kZSwgcGFyZW50IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuVGV4dCA9IGF3YWl0IGNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwoe1xuICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZXJzLFxuICAgICAgICAgICAgICAgICAgICBsZXhpY2FsTm9kZXM6IG5vZGUuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDoge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLm5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVsOiBzdHJpbmcgPSBub2RlLmZpZWxkcy5uZXdUYWIgPyAnIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIicgOiAnJ1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCBocmVmOiBzdHJpbmcgPVxuICAgICAgICAgICAgICAgICAgICBub2RlLmZpZWxkcy5saW5rVHlwZSA9PT0gJ2N1c3RvbScgPyBub2RlLmZpZWxkcy51cmwgOiBub2RlLmZpZWxkcy5kb2M/LnZhbHVlPy5pZFxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGhyZWY9XCIke2hyZWZ9XCIke3JlbH0+JHtjaGlsZHJlblRleHR9PC9hPmBcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG5vZGVUeXBlczogW0F1dG9MaW5rTm9kZS5nZXRUeXBlKCldLFxuICAgICAgICAgICAgICB9IGFzIEhUTUxDb252ZXJ0ZXI8U2VyaWFsaXplZEF1dG9MaW5rTm9kZT4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbm9kZTogQXV0b0xpbmtOb2RlLFxuICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzOiBbbGlua1BvcHVsYXRpb25Qcm9taXNlSE9DKHByb3BzKV0sXG4gICAgICAgICAgICB0eXBlOiBBdXRvTGlua05vZGUuZ2V0VHlwZSgpLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBDb21wb25lbnQ6ICgpID0+XG4gICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgICAgaW1wb3J0KCcuL3BsdWdpbnMvbGluaycpLnRoZW4oKG1vZHVsZSkgPT4gbW9kdWxlLkxpbmtQbHVnaW4pLFxuICAgICAgICAgICAgcG9zaXRpb246ICdub3JtYWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgQ29tcG9uZW50OiAoKSA9PlxuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgIGltcG9ydCgnLi9wbHVnaW5zL2F1dG9MaW5rJykudGhlbigobW9kdWxlKSA9PiBtb2R1bGUuQXV0b0xpbmtQbHVnaW4pLFxuICAgICAgICAgICAgcG9zaXRpb246ICdub3JtYWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgQ29tcG9uZW50OiAoKSA9PlxuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgIGltcG9ydCgnLi9wbHVnaW5zL2NsaWNrYWJsZUxpbmsnKS50aGVuKChtb2R1bGUpID0+IG1vZHVsZS5DbGlja2FibGVMaW5rUGx1Z2luKSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnbm9ybWFsJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICBpbXBvcnQoJy4vcGx1Z2lucy9mbG9hdGluZ0xpbmtFZGl0b3InKS50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4gPSBtb2R1bGUuRmxvYXRpbmdMaW5rRWRpdG9yUGx1Z2luXG4gICAgICAgICAgICAgICAgcmV0dXJuIGltcG9ydCgncGF5bG9hZC91dGlsaXRpZXMnKS50aGVuKChtb2R1bGUpID0+XG4gICAgICAgICAgICAgICAgICBtb2R1bGUud2l0aE1lcmdlZFByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiBmbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4sXG4gICAgICAgICAgICAgICAgICAgIHRvTWVyZ2VJbnRvUHJvcHM6IHByb3BzLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnZmxvYXRpbmdBbmNob3JFbGVtJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBwcm9wcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGtleTogJ2xpbmsnLFxuICB9XG59XG4iXSwibmFtZXMiOlsiTGlua0ZlYXR1cmUiLCJwcm9wcyIsImZlYXR1cmUiLCJmbG9hdGluZ1NlbGVjdFRvb2xiYXIiLCJzZWN0aW9ucyIsIkZlYXR1cmVzU2VjdGlvbldpdGhFbnRyaWVzIiwiQ2hpbGRDb21wb25lbnQiLCJ0aGVuIiwibW9kdWxlIiwiTGlua0ljb24iLCJpc0FjdGl2ZSIsInNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwic2VsZWN0ZWROb2RlIiwiZ2V0U2VsZWN0ZWROb2RlIiwibGlua1BhcmVudCIsIiRmaW5kTWF0Y2hpbmdQYXJlbnQiLCIkaXNMaW5rTm9kZSIsImtleSIsImxhYmVsIiwib25DbGljayIsImVkaXRvciIsInNlbGVjdGVkVGV4dCIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsIiRnZXRTZWxlY3Rpb24iLCJnZXRUZXh0Q29udGVudCIsImxpbmtGaWVsZHMiLCJkb2MiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsImRpc3BhdGNoQ29tbWFuZCIsIlRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCIsImZpZWxkcyIsInRleHQiLCJUT0dHTEVfTElOS19DT01NQU5EIiwib3JkZXIiLCJub2RlcyIsImNvbnZlcnRlcnMiLCJodG1sIiwiY29udmVydGVyIiwibm9kZSIsInBhcmVudCIsImNoaWxkcmVuVGV4dCIsImNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwiLCJsZXhpY2FsTm9kZXMiLCJjaGlsZHJlbiIsInJlbCIsImhyZWYiLCJ2YWx1ZSIsImlkIiwibm9kZVR5cGVzIiwiTGlua05vZGUiLCJnZXRUeXBlIiwicG9wdWxhdGlvblByb21pc2VzIiwibGlua1BvcHVsYXRpb25Qcm9taXNlSE9DIiwidHlwZSIsIkF1dG9MaW5rTm9kZSIsInBsdWdpbnMiLCJDb21wb25lbnQiLCJMaW5rUGx1Z2luIiwicG9zaXRpb24iLCJBdXRvTGlua1BsdWdpbiIsIkNsaWNrYWJsZUxpbmtQbHVnaW4iLCJmbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4iLCJGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4iLCJ3aXRoTWVyZ2VkUHJvcHMiLCJ0b01lcmdlSW50b1Byb3BzIl0sIm1hcHBpbmdzIjoiOzs7OytCQW9EYUE7OztlQUFBQTs7O3VCQWhEdUI7eUJBQ2E7aUNBT2pCOzZEQUNXOzJCQUNEOzhCQUNiOzBCQUM4QjswQkFDWjttQ0FDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtDbEMsTUFBTUEsY0FBYyxDQUFDQztJQUMxQixPQUFPO1FBQ0xDLFNBQVM7WUFDUCxPQUFPO2dCQUNMQyx1QkFBdUI7b0JBQ3JCQyxVQUFVO3dCQUNSQyxJQUFBQSx1RUFBMEIsRUFBQzs0QkFDekI7Z0NBQ0VDLGdCQUFnQixJQUNkLG1CQUFtQjtvQ0FDbkIsbUVBQUEsUUFBTyxpQ0FBK0JDLElBQUksQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxRQUFRO2dDQUN4RUMsVUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"AutoLinkNode.d.ts","sourceRoot":"","sources":["../../../../../src/field/features/Link/nodes/AutoLinkNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,UAAU,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAA;AAKvD,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;IAI9C,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,IAAI;IAKxB,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,sBAAsB,GAAG,YAAY;IASvE,UAAU,IAAI,sBAAsB;IAQpC,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,WAAW,GAAG,IAAI;CASvF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,YAAY,CAEpF;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,YAAY,CAE1F"}
1
+ {"version":3,"file":"AutoLinkNode.d.ts","sourceRoot":"","sources":["../../../../../src/field/features/Link/nodes/AutoLinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,UAAU,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAA;AAKvD,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;IAI9C,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,IAAI;IAKxB,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,sBAAsB,GAAG,YAAY;IASvE,UAAU,IAAI,sBAAsB;IAQpC,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,WAAW,GAAG,IAAI;CASvF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,YAAY,CAEpF;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,YAAY,CAE1F"}
@@ -72,4 +72,4 @@ function $isAutoLinkNode(node) {
72
72
  return node instanceof AutoLinkNode;
73
73
  }
74
74
 
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL25vZGVzL0F1dG9MaW5rTm9kZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgJGFwcGx5Tm9kZVJlcGxhY2VtZW50LFxuICAkaXNFbGVtZW50Tm9kZSxcbiAgdHlwZSBFbGVtZW50Tm9kZSxcbiAgdHlwZSBMZXhpY2FsTm9kZSxcbiAgdHlwZSBSYW5nZVNlbGVjdGlvbixcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdHlwZSBMaW5rRmllbGRzLCBMaW5rTm9kZSwgdHlwZSBTZXJpYWxpemVkTGlua05vZGUgfSBmcm9tICcuL0xpbmtOb2RlJ1xuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkQXV0b0xpbmtOb2RlID0gU2VyaWFsaXplZExpbmtOb2RlXG5cbi8vIEN1c3RvbSBub2RlIHR5cGUgdG8gb3ZlcnJpZGUgYGNhbkluc2VydFRleHRBZnRlcmAgdGhhdCB3aWxsXG4vLyBhbGxvdyB0eXBpbmcgd2l0aGluIHRoZSBsaW5rXG5cbmV4cG9ydCBjbGFzcyBBdXRvTGlua05vZGUgZXh0ZW5kcyBMaW5rTm9kZSB7XG4gIHN0YXRpYyBjbG9uZShub2RlOiBBdXRvTGlua05vZGUpOiBBdXRvTGlua05vZGUge1xuICAgIHJldHVybiBuZXcgQXV0b0xpbmtOb2RlKHsgZmllbGRzOiBub2RlLl9fZmllbGRzLCBrZXk6IG5vZGUuX19rZXkgfSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdhdXRvbGluaydcbiAgfVxuXG4gIHN0YXRpYyBpbXBvcnRET00oKTogbnVsbCB7XG4gICAgLy8gVE9ETzogU2hvdWxkIGxpbmsgbm9kZSBzaG91bGQgaGFuZGxlIHRoZSBpbXBvcnQgb3ZlciBhdXRvbGluaz9cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgc3RhdGljIGltcG9ydEpTT04oc2VyaWFsaXplZE5vZGU6IFNlcmlhbGl6ZWRBdXRvTGlua05vZGUpOiBBdXRvTGlua05vZGUge1xuICAgIGNvbnN0IG5vZGUgPSAkY3JlYXRlQXV0b0xpbmtOb2RlKHsgZmllbGRzOiBzZXJpYWxpemVkTm9kZS5maWVsZHMgfSlcblxuICAgIG5vZGUuc2V0Rm9ybWF0KHNlcmlhbGl6ZWROb2RlLmZvcm1hdClcbiAgICBub2RlLnNldEluZGVudChzZXJpYWxpemVkTm9kZS5pbmRlbnQpXG4gICAgbm9kZS5zZXREaXJlY3Rpb24oc2VyaWFsaXplZE5vZGUuZGlyZWN0aW9uKVxuICAgIHJldHVybiBub2RlXG4gIH1cblxuICBleHBvcnRKU09OKCk6IFNlcmlhbGl6ZWRBdXRvTGlua05vZGUge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5leHBvcnRKU09OKCksXG4gICAgICB0eXBlOiAnYXV0b2xpbmsnLFxuICAgICAgdmVyc2lvbjogMSxcbiAgICB9XG4gIH1cblxuICBpbnNlcnROZXdBZnRlcihzZWxlY3Rpb246IFJhbmdlU2VsZWN0aW9uLCByZXN0b3JlU2VsZWN0aW9uID0gdHJ1ZSk6IEVsZW1lbnROb2RlIHwgbnVsbCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0UGFyZW50T3JUaHJvdygpLmluc2VydE5ld0FmdGVyKHNlbGVjdGlvbiwgcmVzdG9yZVNlbGVjdGlvbilcbiAgICBpZiAoJGlzRWxlbWVudE5vZGUoZWxlbWVudCkpIHtcbiAgICAgIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUF1dG9MaW5rTm9kZSh7IGZpZWxkczogdGhpcy5fX2ZpZWxkcyB9KVxuICAgICAgZWxlbWVudC5hcHBlbmQobGlua05vZGUpXG4gICAgICByZXR1cm4gbGlua05vZGVcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGNyZWF0ZUF1dG9MaW5rTm9kZSh7IGZpZWxkcyB9OiB7IGZpZWxkczogTGlua0ZpZWxkcyB9KTogQXV0b0xpbmtOb2RlIHtcbiAgcmV0dXJuICRhcHBseU5vZGVSZXBsYWNlbWVudChuZXcgQXV0b0xpbmtOb2RlKHsgZmllbGRzIH0pKVxufVxuZXhwb3J0IGZ1bmN0aW9uICRpc0F1dG9MaW5rTm9kZShub2RlOiBMZXhpY2FsTm9kZSB8IG51bGwgfCB1bmRlZmluZWQpOiBub2RlIGlzIEF1dG9MaW5rTm9kZSB7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgQXV0b0xpbmtOb2RlXG59XG4iXSwibmFtZXMiOlsiQXV0b0xpbmtOb2RlIiwiJGNyZWF0ZUF1dG9MaW5rTm9kZSIsIiRpc0F1dG9MaW5rTm9kZSIsIkxpbmtOb2RlIiwiY2xvbmUiLCJub2RlIiwiZmllbGRzIiwiX19maWVsZHMiLCJrZXkiLCJfX2tleSIsImdldFR5cGUiLCJpbXBvcnRET00iLCJpbXBvcnRKU09OIiwic2VyaWFsaXplZE5vZGUiLCJzZXRGb3JtYXQiLCJmb3JtYXQiLCJzZXRJbmRlbnQiLCJpbmRlbnQiLCJzZXREaXJlY3Rpb24iLCJkaXJlY3Rpb24iLCJleHBvcnRKU09OIiwidHlwZSIsInZlcnNpb24iLCJpbnNlcnROZXdBZnRlciIsInNlbGVjdGlvbiIsInJlc3RvcmVTZWxlY3Rpb24iLCJlbGVtZW50IiwiZ2V0UGFyZW50T3JUaHJvdyIsIiRpc0VsZW1lbnROb2RlIiwibGlua05vZGUiLCJhcHBlbmQiLCIkYXBwbHlOb2RlUmVwbGFjZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBZWFBLFlBQVk7ZUFBWkE7O0lBMENHQyxtQkFBbUI7ZUFBbkJBOztJQUdBQyxlQUFlO2VBQWZBOzs7eUJBdERUOzBCQUU0RDtBQU81RCxNQUFNRixxQkFBcUJHLGtCQUFRO0lBQ3hDLE9BQU9DLE1BQU1DLElBQWtCLEVBQWdCO1FBQzdDLE9BQU8sSUFBSUwsYUFBYTtZQUFFTSxRQUFRRCxLQUFLRSxRQUFRO1lBQUVDLEtBQUtILEtBQUtJLEtBQUs7UUFBQztJQUNuRTtJQUVBLE9BQU9DLFVBQWtCO1FBQ3ZCLE9BQU87SUFDVDtJQUVBLE9BQU9DLFlBQWtCO1FBQ3ZCLGlFQUFpRTtRQUNqRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxXQUFXQyxjQUFzQyxFQUFnQjtRQUN0RSxNQUFNUixPQUFPSixvQkFBb0I7WUFBRUssUUFBUU8sZUFBZVAsTUFBTTtRQUFDO1FBRWpFRCxLQUFLUyxTQUFTLENBQUNELGVBQWVFLE1BQU07UUFDcENWLEtBQUtXLFNBQVMsQ0FBQ0gsZUFBZUksTUFBTTtRQUNwQ1osS0FBS2EsWUFBWSxDQUFDTCxlQUFlTSxTQUFTO1FBQzFDLE9BQU9kO0lBQ1Q7SUFFQWUsYUFBcUM7UUFDbkMsT0FBTztZQUNMLEdBQUcsS0FBSyxDQUFDQSxZQUFZO1lBQ3JCQyxNQUFNO1lBQ05DLFNBQVM7UUFDWDtJQUNGO0lBRUFDLGVBQWVDLFNBQXlCLEVBQUVDLG1CQUFtQixJQUFJLEVBQXNCO1FBQ3JGLE1BQU1DLFVBQVUsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBR0osY0FBYyxDQUFDQyxXQUFXQztRQUNsRSxJQUFJRyxJQUFBQSx1QkFBYyxFQUFDRixVQUFVO1lBQzNCLE1BQU1HLFdBQVc1QixvQkFBb0I7Z0JBQUVLLFFBQVEsSUFBSSxDQUFDQyxRQUFRO1lBQUM7WUFDN0RtQixRQUFRSSxNQUFNLENBQUNEO1lBQ2YsT0FBT0E7UUFDVDtRQUNBLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBUzVCLG9CQUFvQixFQUFFSyxNQUFNLEVBQTBCO0lBQ3BFLE9BQU95QixJQUFBQSw4QkFBcUIsRUFBQyxJQUFJL0IsYUFBYTtRQUFFTTtJQUFPO0FBQ3pEO0FBQ08sU0FBU0osZ0JBQWdCRyxJQUFvQztJQUNsRSxPQUFPQSxnQkFBZ0JMO0FBQ3pCIn0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL25vZGVzL0F1dG9MaW5rTm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAkYXBwbHlOb2RlUmVwbGFjZW1lbnQsXG4gICRpc0VsZW1lbnROb2RlLFxuICB0eXBlIEVsZW1lbnROb2RlLFxuICB0eXBlIExleGljYWxOb2RlLFxuICB0eXBlIFJhbmdlU2VsZWN0aW9uLFxufSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB0eXBlIExpbmtGaWVsZHMsIExpbmtOb2RlLCB0eXBlIFNlcmlhbGl6ZWRMaW5rTm9kZSB9IGZyb20gJy4vTGlua05vZGUnXG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRBdXRvTGlua05vZGUgPSBTZXJpYWxpemVkTGlua05vZGVcblxuLy8gQ3VzdG9tIG5vZGUgdHlwZSB0byBvdmVycmlkZSBgY2FuSW5zZXJ0VGV4dEFmdGVyYCB0aGF0IHdpbGxcbi8vIGFsbG93IHR5cGluZyB3aXRoaW4gdGhlIGxpbmtcblxuZXhwb3J0IGNsYXNzIEF1dG9MaW5rTm9kZSBleHRlbmRzIExpbmtOb2RlIHtcbiAgc3RhdGljIGNsb25lKG5vZGU6IEF1dG9MaW5rTm9kZSk6IEF1dG9MaW5rTm9kZSB7XG4gICAgcmV0dXJuIG5ldyBBdXRvTGlua05vZGUoeyBmaWVsZHM6IG5vZGUuX19maWVsZHMsIGtleTogbm9kZS5fX2tleSB9KVxuICB9XG5cbiAgc3RhdGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2F1dG9saW5rJ1xuICB9XG5cbiAgc3RhdGljIGltcG9ydERPTSgpOiBudWxsIHtcbiAgICAvLyBUT0RPOiBTaG91bGQgbGluayBub2RlIHNob3VsZCBoYW5kbGUgdGhlIGltcG9ydCBvdmVyIGF1dG9saW5rP1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBzdGF0aWMgaW1wb3J0SlNPTihzZXJpYWxpemVkTm9kZTogU2VyaWFsaXplZEF1dG9MaW5rTm9kZSk6IEF1dG9MaW5rTm9kZSB7XG4gICAgY29uc3Qgbm9kZSA9ICRjcmVhdGVBdXRvTGlua05vZGUoeyBmaWVsZHM6IHNlcmlhbGl6ZWROb2RlLmZpZWxkcyB9KVxuXG4gICAgbm9kZS5zZXRGb3JtYXQoc2VyaWFsaXplZE5vZGUuZm9ybWF0KVxuICAgIG5vZGUuc2V0SW5kZW50KHNlcmlhbGl6ZWROb2RlLmluZGVudClcbiAgICBub2RlLnNldERpcmVjdGlvbihzZXJpYWxpemVkTm9kZS5kaXJlY3Rpb24pXG4gICAgcmV0dXJuIG5vZGVcbiAgfVxuXG4gIGV4cG9ydEpTT04oKTogU2VyaWFsaXplZEF1dG9MaW5rTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmV4cG9ydEpTT04oKSxcbiAgICAgIHR5cGU6ICdhdXRvbGluaycsXG4gICAgICB2ZXJzaW9uOiAxLFxuICAgIH1cbiAgfVxuXG4gIGluc2VydE5ld0FmdGVyKHNlbGVjdGlvbjogUmFuZ2VTZWxlY3Rpb24sIHJlc3RvcmVTZWxlY3Rpb24gPSB0cnVlKTogRWxlbWVudE5vZGUgfCBudWxsIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRQYXJlbnRPclRocm93KCkuaW5zZXJ0TmV3QWZ0ZXIoc2VsZWN0aW9uLCByZXN0b3JlU2VsZWN0aW9uKVxuICAgIGlmICgkaXNFbGVtZW50Tm9kZShlbGVtZW50KSkge1xuICAgICAgY29uc3QgbGlua05vZGUgPSAkY3JlYXRlQXV0b0xpbmtOb2RlKHsgZmllbGRzOiB0aGlzLl9fZmllbGRzIH0pXG4gICAgICBlbGVtZW50LmFwcGVuZChsaW5rTm9kZSlcbiAgICAgIHJldHVybiBsaW5rTm9kZVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkY3JlYXRlQXV0b0xpbmtOb2RlKHsgZmllbGRzIH06IHsgZmllbGRzOiBMaW5rRmllbGRzIH0pOiBBdXRvTGlua05vZGUge1xuICByZXR1cm4gJGFwcGx5Tm9kZVJlcGxhY2VtZW50KG5ldyBBdXRvTGlua05vZGUoeyBmaWVsZHMgfSkpXG59XG5leHBvcnQgZnVuY3Rpb24gJGlzQXV0b0xpbmtOb2RlKG5vZGU6IExleGljYWxOb2RlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IG5vZGUgaXMgQXV0b0xpbmtOb2RlIHtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBBdXRvTGlua05vZGVcbn1cbiJdLCJuYW1lcyI6WyJBdXRvTGlua05vZGUiLCIkY3JlYXRlQXV0b0xpbmtOb2RlIiwiJGlzQXV0b0xpbmtOb2RlIiwiTGlua05vZGUiLCJjbG9uZSIsIm5vZGUiLCJmaWVsZHMiLCJfX2ZpZWxkcyIsImtleSIsIl9fa2V5IiwiZ2V0VHlwZSIsImltcG9ydERPTSIsImltcG9ydEpTT04iLCJzZXJpYWxpemVkTm9kZSIsInNldEZvcm1hdCIsImZvcm1hdCIsInNldEluZGVudCIsImluZGVudCIsInNldERpcmVjdGlvbiIsImRpcmVjdGlvbiIsImV4cG9ydEpTT04iLCJ0eXBlIiwidmVyc2lvbiIsImluc2VydE5ld0FmdGVyIiwic2VsZWN0aW9uIiwicmVzdG9yZVNlbGVjdGlvbiIsImVsZW1lbnQiLCJnZXRQYXJlbnRPclRocm93IiwiJGlzRWxlbWVudE5vZGUiLCJsaW5rTm9kZSIsImFwcGVuZCIsIiRhcHBseU5vZGVSZXBsYWNlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFlYUEsWUFBWTtlQUFaQTs7SUEwQ0dDLG1CQUFtQjtlQUFuQkE7O0lBR0FDLGVBQWU7ZUFBZkE7Ozt5QkF0RFQ7MEJBRTREO0FBTzVELE1BQU1GLHFCQUFxQkcsa0JBQVE7SUFDeEMsT0FBT0MsTUFBTUMsSUFBa0IsRUFBZ0I7UUFDN0MsT0FBTyxJQUFJTCxhQUFhO1lBQUVNLFFBQVFELEtBQUtFLFFBQVE7WUFBRUMsS0FBS0gsS0FBS0ksS0FBSztRQUFDO0lBQ25FO0lBRUEsT0FBT0MsVUFBa0I7UUFDdkIsT0FBTztJQUNUO0lBRUEsT0FBT0MsWUFBa0I7UUFDdkIsaUVBQWlFO1FBQ2pFLE9BQU87SUFDVDtJQUVBLE9BQU9DLFdBQVdDLGNBQXNDLEVBQWdCO1FBQ3RFLE1BQU1SLE9BQU9KLG9CQUFvQjtZQUFFSyxRQUFRTyxlQUFlUCxNQUFNO1FBQUM7UUFFakVELEtBQUtTLFNBQVMsQ0FBQ0QsZUFBZUUsTUFBTTtRQUNwQ1YsS0FBS1csU0FBUyxDQUFDSCxlQUFlSSxNQUFNO1FBQ3BDWixLQUFLYSxZQUFZLENBQUNMLGVBQWVNLFNBQVM7UUFDMUMsT0FBT2Q7SUFDVDtJQUVBZSxhQUFxQztRQUNuQyxPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUNBLFlBQVk7WUFDckJDLE1BQU07WUFDTkMsU0FBUztRQUNYO0lBQ0Y7SUFFQUMsZUFBZUMsU0FBeUIsRUFBRUMsbUJBQW1CLElBQUksRUFBc0I7UUFDckYsTUFBTUMsVUFBVSxJQUFJLENBQUNDLGdCQUFnQixHQUFHSixjQUFjLENBQUNDLFdBQVdDO1FBQ2xFLElBQUlHLElBQUFBLHVCQUFjLEVBQUNGLFVBQVU7WUFDM0IsTUFBTUcsV0FBVzVCLG9CQUFvQjtnQkFBRUssUUFBUSxJQUFJLENBQUNDLFFBQVE7WUFBQztZQUM3RG1CLFFBQVFJLE1BQU0sQ0FBQ0Q7WUFDZixPQUFPQTtRQUNUO1FBQ0EsT0FBTztJQUNUO0FBQ0Y7QUFFTyxTQUFTNUIsb0JBQW9CLEVBQUVLLE1BQU0sRUFBMEI7SUFDcEUsT0FBT3lCLElBQUFBLDhCQUFxQixFQUFDLElBQUkvQixhQUFhO1FBQUVNO0lBQU87QUFDekQ7QUFDTyxTQUFTSixnQkFBZ0JHLElBQW9DO0lBQ2xFLE9BQU9BLGdCQUFnQkw7QUFDekIifQ==
@@ -6,7 +6,8 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  *
8
8
  */
9
- import { type DOMConversionMap, type EditorConfig, ElementNode, type GridSelection, type LexicalCommand, type LexicalNode, type NodeKey, type NodeSelection, type RangeSelection, type SerializedElementNode, type Spread } from 'lexical';
9
+ import type { BaseSelection } from 'lexical';
10
+ import { type DOMConversionMap, type EditorConfig, ElementNode, type LexicalCommand, type LexicalNode, type NodeKey, type RangeSelection, type SerializedElementNode, type Spread } from 'lexical';
10
11
  import type { LinkPayload } from '../plugins/floatingLinkEditor/types';
11
12
  export type LinkFields = {
12
13
  [key: string]: unknown;
@@ -40,7 +41,7 @@ export declare class LinkNode extends ElementNode {
40
41
  canInsertTextBefore(): false;
41
42
  createDOM(config: EditorConfig): HTMLAnchorElement;
42
43
  exportJSON(): SerializedLinkNode;
43
- extractWithChild(child: LexicalNode, selection: GridSelection | NodeSelection | RangeSelection, destination: 'clone' | 'html'): boolean;
44
+ extractWithChild(child: LexicalNode, selection: BaseSelection, destination: 'clone' | 'html'): boolean;
44
45
  getFields(): LinkFields;
45
46
  insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): ElementNode | null;
46
47
  isInline(): true;
@@ -1 +1 @@
1
- {"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../../src/field/features/Link/nodes/LinkNode.tsx"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B;;;;;;GAMG;AAGH,OAAO,EAML,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,MAAM,EAEZ,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAEtE,MAAM,MAAM,UAAU,GAAG;IAEvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,GAAG,EAAE;QACH,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE;YAEL,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;YACtB,EAAE,EAAE,MAAM,CAAA;SACX,CAAA;KACF,GAAG,IAAI,CAAA;IACR,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC;IACE,MAAM,EAAE,UAAU,CAAA;CACnB,EACD,qBAAqB,CACtB,CAAA;AAID,oBAAoB;AACpB,qBAAa,QAAS,SAAQ,WAAW;IACvC,QAAQ,EAAE,UAAU,CAAA;gBAER,EACV,MAKC,EACD,GAAG,GACJ,EAAE;QACD,MAAM,EAAE,UAAU,CAAA;QAClB,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;IAKD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAOtC,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,GAAG,IAAI;IAS3C,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,QAAQ;IAU/D,UAAU,IAAI,KAAK;IAInB,kBAAkB,IAAI,KAAK;IAI3B,mBAAmB,IAAI,KAAK;IAI5B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAiBlD,UAAU,IAAI,kBAAkB;IAShC,gBAAgB,CACd,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,GAAG,aAAa,GAAG,cAAc,EACzD,WAAW,EAAE,OAAO,GAAG,MAAM,GAC5B,OAAO;IAeV,SAAS,IAAI,UAAU;IAIvB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,WAAW,GAAG,IAAI;IAUtF,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAahC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;CA8BxF;AAoBD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,QAAQ,CAE5E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAElF;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAC7B,CAAA;AAEtC,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA6GrD"}
1
+ {"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../../src/field/features/Link/nodes/LinkNode.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,EAML,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,MAAM,EAEZ,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAEtE,MAAM,MAAM,UAAU,GAAG;IAEvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,GAAG,EAAE;QACH,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE;YAEL,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;YACtB,EAAE,EAAE,MAAM,CAAA;SACX,CAAA;KACF,GAAG,IAAI,CAAA;IACR,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC;IACE,MAAM,EAAE,UAAU,CAAA;CACnB,EACD,qBAAqB,CACtB,CAAA;AAID,oBAAoB;AACpB,qBAAa,QAAS,SAAQ,WAAW;IACvC,QAAQ,EAAE,UAAU,CAAA;gBAER,EACV,MAKC,EACD,GAAG,GACJ,EAAE;QACD,MAAM,EAAE,UAAU,CAAA;QAClB,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;IAKD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAOtC,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,GAAG,IAAI;IAS3C,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,QAAQ;IAU/D,UAAU,IAAI,KAAK;IAInB,kBAAkB,IAAI,KAAK;IAI3B,mBAAmB,IAAI,KAAK;IAI5B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAiBlD,UAAU,IAAI,kBAAkB;IAShC,gBAAgB,CACd,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,OAAO,GAAG,MAAM,GAC5B,OAAO;IAeV,SAAS,IAAI,UAAU;IAIvB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,WAAW,GAAG,IAAI;IAUtF,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAahC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;CA8BxF;AAoBD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,QAAQ,CAE5E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAElF;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAC7B,CAAA;AAEtC,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA6GrD"}
@@ -325,4 +325,4 @@ function manageRel(input, action, value) {
325
325
  return result;
326
326
  }
327
327
 
328
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL25vZGVzL0xpbmtOb2RlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAbGV4aWNhbC9saW5rICovXG4vKipcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IGFkZENsYXNzTmFtZXNUb0VsZW1lbnQsIGlzSFRNTEFuY2hvckVsZW1lbnQgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRhcHBseU5vZGVSZXBsYWNlbWVudCxcbiAgJGNyZWF0ZVRleHROb2RlLFxuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNFbGVtZW50Tm9kZSxcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIHR5cGUgRE9NQ29udmVyc2lvbk1hcCxcbiAgdHlwZSBET01Db252ZXJzaW9uT3V0cHV0LFxuICB0eXBlIEVkaXRvckNvbmZpZyxcbiAgRWxlbWVudE5vZGUsXG4gIHR5cGUgR3JpZFNlbGVjdGlvbixcbiAgdHlwZSBMZXhpY2FsQ29tbWFuZCxcbiAgdHlwZSBMZXhpY2FsTm9kZSxcbiAgdHlwZSBOb2RlS2V5LFxuICB0eXBlIE5vZGVTZWxlY3Rpb24sXG4gIHR5cGUgUmFuZ2VTZWxlY3Rpb24sXG4gIHR5cGUgU2VyaWFsaXplZEVsZW1lbnROb2RlLFxuICB0eXBlIFNwcmVhZCxcbiAgY3JlYXRlQ29tbWFuZCxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBMaW5rRmllbGRzID0ge1xuICAvLyB1bmtub3duLCBjdXN0b20gZmllbGRzOlxuICBba2V5OiBzdHJpbmddOiB1bmtub3duXG4gIGRvYzoge1xuICAgIHJlbGF0aW9uVG86IHN0cmluZ1xuICAgIHZhbHVlOiB7XG4gICAgICAvLyBBY3R1YWwgZG9jIGRhdGEsIHBvcHVsYXRlZCBpbiBhZnRlclJlYWQgaG9va1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93blxuICAgICAgaWQ6IHN0cmluZ1xuICAgIH1cbiAgfSB8IG51bGxcbiAgbGlua1R5cGU6ICdjdXN0b20nIHwgJ2ludGVybmFsJ1xuICBuZXdUYWI6IGJvb2xlYW5cbiAgdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgU2VyaWFsaXplZExpbmtOb2RlID0gU3ByZWFkPFxuICB7XG4gICAgZmllbGRzOiBMaW5rRmllbGRzXG4gIH0sXG4gIFNlcmlhbGl6ZWRFbGVtZW50Tm9kZVxuPlxuXG5jb25zdCBTVVBQT1JURURfVVJMX1BST1RPQ09MUyA9IG5ldyBTZXQoWydodHRwOicsICdodHRwczonLCAnbWFpbHRvOicsICdzbXM6JywgJ3RlbDonXSlcblxuLyoqIEBub0luaGVyaXREb2MgKi9cbmV4cG9ydCBjbGFzcyBMaW5rTm9kZSBleHRlbmRzIEVsZW1lbnROb2RlIHtcbiAgX19maWVsZHM6IExpbmtGaWVsZHNcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgZmllbGRzID0ge1xuICAgICAgZG9jOiBudWxsLFxuICAgICAgbGlua1R5cGU6ICdjdXN0b20nLFxuICAgICAgbmV3VGFiOiBmYWxzZSxcbiAgICAgIHVybDogdW5kZWZpbmVkLFxuICAgIH0sXG4gICAga2V5LFxuICB9OiB7XG4gICAgZmllbGRzOiBMaW5rRmllbGRzXG4gICAga2V5PzogTm9kZUtleVxuICB9KSB7XG4gICAgc3VwZXIoa2V5KVxuICAgIHRoaXMuX19maWVsZHMgPSBmaWVsZHNcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZShub2RlOiBMaW5rTm9kZSk6IExpbmtOb2RlIHtcbiAgICByZXR1cm4gbmV3IExpbmtOb2RlKHtcbiAgICAgIGZpZWxkczogbm9kZS5fX2ZpZWxkcyxcbiAgICAgIGtleTogbm9kZS5fX2tleSxcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2xpbmsnXG4gIH1cblxuICBzdGF0aWMgaW1wb3J0RE9NKCk6IERPTUNvbnZlcnNpb25NYXAgfCBudWxsIHtcbiAgICByZXR1cm4ge1xuICAgICAgYTogKG5vZGU6IE5vZGUpID0+ICh7XG4gICAgICAgIGNvbnZlcnNpb246IGNvbnZlcnRBbmNob3JFbGVtZW50LFxuICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBpbXBvcnRKU09OKHNlcmlhbGl6ZWROb2RlOiBTZXJpYWxpemVkTGlua05vZGUpOiBMaW5rTm9kZSB7XG4gICAgY29uc3Qgbm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7XG4gICAgICBmaWVsZHM6IHNlcmlhbGl6ZWROb2RlLmZpZWxkcyxcbiAgICB9KVxuICAgIG5vZGUuc2V0Rm9ybWF0KHNlcmlhbGl6ZWROb2RlLmZvcm1hdClcbiAgICBub2RlLnNldEluZGVudChzZXJpYWxpemVkTm9kZS5pbmRlbnQpXG4gICAgbm9kZS5zZXREaXJlY3Rpb24oc2VyaWFsaXplZE5vZGUuZGlyZWN0aW9uKVxuICAgIHJldHVybiBub2RlXG4gIH1cblxuICBjYW5CZUVtcHR5KCk6IGZhbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNhbkluc2VydFRleHRBZnRlcigpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjYW5JbnNlcnRUZXh0QmVmb3JlKCk6IGZhbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNyZWF0ZURPTShjb25maWc6IEVkaXRvckNvbmZpZyk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXG4gICAgaWYgKHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgZWxlbWVudC5ocmVmID0gdGhpcy5zYW5pdGl6ZVVybCh0aGlzLl9fZmllbGRzLnVybCA/PyAnJylcbiAgICB9XG4gICAgaWYgKHRoaXMuX19maWVsZHM/Lm5ld1RhYiA/PyBmYWxzZSkge1xuICAgICAgZWxlbWVudC50YXJnZXQgPSAnX2JsYW5rJ1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5uZXdUYWIgPT09IHRydWUgJiYgdGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICBlbGVtZW50LnJlbCA9IG1hbmFnZVJlbChlbGVtZW50LnJlbCwgJ2FkZCcsICdub29wZW5lcicpXG4gICAgfVxuXG4gICAgYWRkQ2xhc3NOYW1lc1RvRWxlbWVudChlbGVtZW50LCBjb25maWcudGhlbWUubGluaylcbiAgICByZXR1cm4gZWxlbWVudFxuICB9XG5cbiAgZXhwb3J0SlNPTigpOiBTZXJpYWxpemVkTGlua05vZGUge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5leHBvcnRKU09OKCksXG4gICAgICBmaWVsZHM6IHRoaXMuZ2V0RmllbGRzKCksXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGUoKSxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgfVxuICB9XG5cbiAgZXh0cmFjdFdpdGhDaGlsZChcbiAgICBjaGlsZDogTGV4aWNhbE5vZGUsXG4gICAgc2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uIHwgTm9kZVNlbGVjdGlvbiB8IFJhbmdlU2VsZWN0aW9uLFxuICAgIGRlc3RpbmF0aW9uOiAnY2xvbmUnIHwgJ2h0bWwnLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGFuY2hvck5vZGUgPSBzZWxlY3Rpb24uYW5jaG9yLmdldE5vZGUoKVxuICAgIGNvbnN0IGZvY3VzTm9kZSA9IHNlbGVjdGlvbi5mb2N1cy5nZXROb2RlKClcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzUGFyZW50T2YoYW5jaG9yTm9kZSkgJiZcbiAgICAgIHRoaXMuaXNQYXJlbnRPZihmb2N1c05vZGUpICYmXG4gICAgICBzZWxlY3Rpb24uZ2V0VGV4dENvbnRlbnQoKS5sZW5ndGggPiAwXG4gICAgKVxuICB9XG5cbiAgZ2V0RmllbGRzKCk6IExpbmtGaWVsZHMge1xuICAgIHJldHVybiB0aGlzLmdldExhdGVzdCgpLl9fZmllbGRzXG4gIH1cblxuICBpbnNlcnROZXdBZnRlcihzZWxlY3Rpb246IFJhbmdlU2VsZWN0aW9uLCByZXN0b3JlU2VsZWN0aW9uID0gdHJ1ZSk6IEVsZW1lbnROb2RlIHwgbnVsbCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0UGFyZW50T3JUaHJvdygpLmluc2VydE5ld0FmdGVyKHNlbGVjdGlvbiwgcmVzdG9yZVNlbGVjdGlvbilcbiAgICBpZiAoJGlzRWxlbWVudE5vZGUoZWxlbWVudCkpIHtcbiAgICAgIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUxpbmtOb2RlKHsgZmllbGRzOiB0aGlzLl9fZmllbGRzIH0pXG4gICAgICBlbGVtZW50LmFwcGVuZChsaW5rTm9kZSlcbiAgICAgIHJldHVybiBsaW5rTm9kZVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaXNJbmxpbmUoKTogdHJ1ZSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHNhbml0aXplVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkVXJsID0gbmV3IFVSTCh1cmwpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2NyaXB0LXVybFxuICAgICAgaWYgKCFTVVBQT1JURURfVVJMX1BST1RPQ09MUy5oYXMocGFyc2VkVXJsLnByb3RvY29sKSkge1xuICAgICAgICByZXR1cm4gJ2Fib3V0OmJsYW5rJ1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAnaHR0cHM6Ly8nXG4gICAgfVxuICAgIHJldHVybiB1cmxcbiAgfVxuXG4gIHNldEZpZWxkcyhmaWVsZHM6IExpbmtGaWVsZHMpOiB2b2lkIHtcbiAgICBjb25zdCB3cml0YWJsZSA9IHRoaXMuZ2V0V3JpdGFibGUoKVxuICAgIHdyaXRhYmxlLl9fZmllbGRzID0gZmllbGRzXG4gIH1cblxuICB1cGRhdGVET00ocHJldk5vZGU6IExpbmtOb2RlLCBhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50LCBjb25maWc6IEVkaXRvckNvbmZpZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuX19maWVsZHM/LnVybFxuICAgIGNvbnN0IG5ld1RhYiA9IHRoaXMuX19maWVsZHM/Lm5ld1RhYlxuICAgIGlmICh1cmwgIT0gbnVsbCAmJiB1cmwgIT09IHByZXZOb2RlLl9fZmllbGRzPy51cmwgJiYgdGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICBhbmNob3IuaHJlZiA9IHVybFxuICAgIH1cbiAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdpbnRlcm5hbCcgJiYgcHJldk5vZGUuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgYW5jaG9yLnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpXG4gICAgfVxuXG4gICAgLy8gVE9ETzogbm90IDEwMCUgc3VyZSB3aHkgd2UncmUgc2V0dGlnbiByZWwgdG8gJycgLSByZXZpc2l0XG4gICAgLy8gU3RhcnQgcmVsIGNvbmZpZyBoZXJlLCB0aGVuIGNoZWNrIG5ld1RhYiBiZWxvd1xuICAgIGlmIChhbmNob3IucmVsID09IG51bGwpIHtcbiAgICAgIGFuY2hvci5yZWwgPSAnJ1xuICAgIH1cblxuICAgIGlmIChuZXdUYWIgIT09IHByZXZOb2RlLl9fZmllbGRzPy5uZXdUYWIpIHtcbiAgICAgIGlmIChuZXdUYWIgPz8gZmFsc2UpIHtcbiAgICAgICAgYW5jaG9yLnRhcmdldCA9ICdfYmxhbmsnXG4gICAgICAgIGlmICh0aGlzLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgICBhbmNob3IucmVsID0gbWFuYWdlUmVsKGFuY2hvci5yZWwsICdhZGQnLCAnbm9vcGVuZXInKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbmNob3IucmVtb3ZlQXR0cmlidXRlKCd0YXJnZXQnKVxuICAgICAgICBhbmNob3IucmVsID0gbWFuYWdlUmVsKGFuY2hvci5yZWwsICdyZW1vdmUnLCAnbm9vcGVuZXInKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRBbmNob3JFbGVtZW50KGRvbU5vZGU6IE5vZGUpOiBET01Db252ZXJzaW9uT3V0cHV0IHtcbiAgbGV0IG5vZGU6IExpbmtOb2RlIHwgbnVsbCA9IG51bGxcbiAgaWYgKGlzSFRNTEFuY2hvckVsZW1lbnQoZG9tTm9kZSkpIHtcbiAgICBjb25zdCBjb250ZW50ID0gZG9tTm9kZS50ZXh0Q29udGVudFxuICAgIGlmIChjb250ZW50ICE9PSBudWxsICYmIGNvbnRlbnQgIT09ICcnKSB7XG4gICAgICBub2RlID0gJGNyZWF0ZUxpbmtOb2RlKHtcbiAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgZG9jOiBudWxsLFxuICAgICAgICAgIGxpbmtUeXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICBuZXdUYWI6IGRvbU5vZGUuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKSA9PT0gJ19ibGFuaycsXG4gICAgICAgICAgdXJsOiBkb21Ob2RlLmdldEF0dHJpYnV0ZSgnaHJlZicpID8/ICcnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgbm9kZSB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkY3JlYXRlTGlua05vZGUoeyBmaWVsZHMgfTogeyBmaWVsZHM6IExpbmtGaWVsZHMgfSk6IExpbmtOb2RlIHtcbiAgcmV0dXJuICRhcHBseU5vZGVSZXBsYWNlbWVudChuZXcgTGlua05vZGUoeyBmaWVsZHMgfSkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkaXNMaW5rTm9kZShub2RlOiBMZXhpY2FsTm9kZSB8IG51bGwgfCB1bmRlZmluZWQpOiBub2RlIGlzIExpbmtOb2RlIHtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBMaW5rTm9kZVxufVxuXG5leHBvcnQgY29uc3QgVE9HR0xFX0xJTktfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8TGlua1BheWxvYWQgfCBudWxsPiA9XG4gIGNyZWF0ZUNvbW1hbmQoJ1RPR0dMRV9MSU5LX0NPTU1BTkQnKVxuXG5leHBvcnQgZnVuY3Rpb24gdG9nZ2xlTGluayhwYXlsb2FkOiBMaW5rUGF5bG9hZCk6IHZvaWQge1xuICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcblxuICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICByZXR1cm5cbiAgfVxuICBjb25zdCBub2RlcyA9IHNlbGVjdGlvbi5leHRyYWN0KClcblxuICBpZiAocGF5bG9hZCA9PT0gbnVsbCkge1xuICAgIC8vIFJlbW92ZSBMaW5rTm9kZXNcbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBub2RlLmdldFBhcmVudCgpXG5cbiAgICAgIGlmICgkaXNMaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmdldENoaWxkcmVuKClcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShjaGlsZHJlbltpXSlcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmVudC5yZW1vdmUoKVxuICAgICAgfVxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgLy8gQWRkIG9yIG1lcmdlIExpbmtOb2Rlc1xuICAgIGlmIChub2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0Tm9kZSA9IG5vZGVzWzBdXG4gICAgICAvLyBpZiB0aGUgZmlyc3Qgbm9kZSBpcyBhIExpbmtOb2RlIG9yIGlmIGl0c1xuICAgICAgLy8gcGFyZW50IGlzIGEgTGlua05vZGUsIHdlIHVwZGF0ZSB0aGUgVVJMLCB0YXJnZXQgYW5kIHJlbC5cbiAgICAgIGNvbnN0IGxpbmtOb2RlOiBMaW5rTm9kZSB8IG51bGwgPSAkaXNMaW5rTm9kZShmaXJzdE5vZGUpXG4gICAgICAgID8gZmlyc3ROb2RlXG4gICAgICAgIDogJGdldExpbmtBbmNlc3RvcihmaXJzdE5vZGUpXG4gICAgICBpZiAobGlua05vZGUgIT09IG51bGwpIHtcbiAgICAgICAgbGlua05vZGUuc2V0RmllbGRzKHBheWxvYWQuZmllbGRzKVxuXG4gICAgICAgIGlmIChwYXlsb2FkLnRleHQgIT0gbnVsbCAmJiBwYXlsb2FkLnRleHQgIT09IGxpbmtOb2RlLmdldFRleHRDb250ZW50KCkpIHtcbiAgICAgICAgICAvLyByZW1vdmUgYWxsIGNoaWxkcmVuIGFuZCBhZGQgY2hpbGQgd2l0aCBuZXcgdGV4dGNvbnRlbnQ6XG4gICAgICAgICAgbGlua05vZGUuYXBwZW5kKCRjcmVhdGVUZXh0Tm9kZShwYXlsb2FkLnRleHQpKVxuICAgICAgICAgIGxpbmtOb2RlLmdldENoaWxkcmVuKCkuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZCAhPT0gbGlua05vZGUuZ2V0TGFzdENoaWxkKCkpIHtcbiAgICAgICAgICAgICAgY2hpbGQucmVtb3ZlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBwcmV2UGFyZW50OiBFbGVtZW50Tm9kZSB8IExpbmtOb2RlIHwgbnVsbCA9IG51bGxcbiAgICBsZXQgbGlua05vZGU6IExpbmtOb2RlIHwgbnVsbCA9IG51bGxcblxuICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IG5vZGUuZ2V0UGFyZW50KClcblxuICAgICAgaWYgKHBhcmVudCA9PT0gbGlua05vZGUgfHwgcGFyZW50ID09PSBudWxsIHx8ICgkaXNFbGVtZW50Tm9kZShub2RlKSAmJiAhbm9kZS5pc0lubGluZSgpKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCRpc0xpbmtOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgbGlua05vZGUgPSBwYXJlbnRcbiAgICAgICAgcGFyZW50LnNldEZpZWxkcyhwYXlsb2FkLmZpZWxkcylcbiAgICAgICAgaWYgKHBheWxvYWQudGV4dCAhPSBudWxsICYmIHBheWxvYWQudGV4dCAhPT0gcGFyZW50LmdldFRleHRDb250ZW50KCkpIHtcbiAgICAgICAgICAvLyByZW1vdmUgYWxsIGNoaWxkcmVuIGFuZCBhZGQgY2hpbGQgd2l0aCBuZXcgdGV4dGNvbnRlbnQ6XG4gICAgICAgICAgcGFyZW50LmFwcGVuZCgkY3JlYXRlVGV4dE5vZGUocGF5bG9hZC50ZXh0KSlcbiAgICAgICAgICBwYXJlbnQuZ2V0Q2hpbGRyZW4oKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkICE9PSBwYXJlbnQuZ2V0TGFzdENoaWxkKCkpIHtcbiAgICAgICAgICAgICAgY2hpbGQucmVtb3ZlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIXBhcmVudC5pcyhwcmV2UGFyZW50KSkge1xuICAgICAgICBwcmV2UGFyZW50ID0gcGFyZW50XG4gICAgICAgIGxpbmtOb2RlID0gJGNyZWF0ZUxpbmtOb2RlKHsgZmllbGRzOiBwYXlsb2FkLmZpZWxkcyB9KVxuXG4gICAgICAgIGlmICgkaXNMaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgICAgaWYgKG5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKCkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUobGlua05vZGUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmVudC5pbnNlcnRBZnRlcihsaW5rTm9kZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9kZS5pbnNlcnRCZWZvcmUobGlua05vZGUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCRpc0xpbmtOb2RlKG5vZGUpKSB7XG4gICAgICAgIGlmIChub2RlLmlzKGxpbmtOb2RlKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5rTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5nZXRDaGlsZHJlbigpXG5cbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBsaW5rTm9kZS5hcHBlbmQoY2hpbGRyZW5baV0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbm9kZS5yZW1vdmUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGxpbmtOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGxpbmtOb2RlLmFwcGVuZChub2RlKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gJGdldExpbmtBbmNlc3Rvcihub2RlOiBMZXhpY2FsTm9kZSk6IExpbmtOb2RlIHwgbnVsbCB7XG4gIHJldHVybiAkZ2V0QW5jZXN0b3Iobm9kZSwgKGFuY2VzdG9yKSA9PiAkaXNMaW5rTm9kZShhbmNlc3RvcikpIGFzIExpbmtOb2RlXG59XG5cbmZ1bmN0aW9uICRnZXRBbmNlc3RvcihcbiAgbm9kZTogTGV4aWNhbE5vZGUsXG4gIHByZWRpY2F0ZTogKGFuY2VzdG9yOiBMZXhpY2FsTm9kZSkgPT4gYm9vbGVhbixcbik6IExleGljYWxOb2RlIHwgbnVsbCB7XG4gIGxldCBwYXJlbnQ6IExleGljYWxOb2RlIHwgbnVsbCA9IG5vZGVcbiAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCAmJiAocGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpKSAhPT0gbnVsbCAmJiAhcHJlZGljYXRlKHBhcmVudCkpO1xuICByZXR1cm4gcGFyZW50XG59XG5cbmZ1bmN0aW9uIG1hbmFnZVJlbChpbnB1dDogc3RyaW5nLCBhY3Rpb246ICdhZGQnIHwgJ3JlbW92ZScsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgcmVzdWx0OiBzdHJpbmdcbiAgbGV0IG11dGFibGVJbnB1dCA9IGAke2lucHV0fWBcbiAgaWYgKGFjdGlvbiA9PT0gJ2FkZCcpIHtcbiAgICAvLyBpZiB3ZSBzb21laG93IGdvdCBvdXQgb2Ygc3luYyAtIGNsZWFuIHVwXG4gICAgaWYgKG11dGFibGVJbnB1dC5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cCh2YWx1ZSwgJ2cnKVxuICAgICAgbXV0YWJsZUlucHV0ID0gbXV0YWJsZUlucHV0LnJlcGxhY2UocmUsICcnKS50cmltKClcbiAgICB9XG4gICAgbXV0YWJsZUlucHV0ID0gbXV0YWJsZUlucHV0LnRyaW0oKVxuICAgIHJlc3VsdCA9IG11dGFibGVJbnB1dC5sZW5ndGggPT09IDAgPyBgJHt2YWx1ZX1gIDogYCR7bXV0YWJsZUlucHV0fSAke3ZhbHVlfWBcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAodmFsdWUsICdnJylcbiAgICByZXN1bHQgPSBtdXRhYmxlSW5wdXQucmVwbGFjZShyZSwgJycpLnRyaW0oKVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJMaW5rTm9kZSIsIiRjcmVhdGVMaW5rTm9kZSIsIiRpc0xpbmtOb2RlIiwiVE9HR0xFX0xJTktfQ09NTUFORCIsInRvZ2dsZUxpbmsiLCJTVVBQT1JURURfVVJMX1BST1RPQ09MUyIsIlNldCIsIkVsZW1lbnROb2RlIiwiX19maWVsZHMiLCJjb25zdHJ1Y3RvciIsImZpZWxkcyIsImRvYyIsImxpbmtUeXBlIiwibmV3VGFiIiwidXJsIiwidW5kZWZpbmVkIiwia2V5IiwiY2xvbmUiLCJub2RlIiwiX19rZXkiLCJnZXRUeXBlIiwiaW1wb3J0RE9NIiwiYSIsImNvbnZlcnNpb24iLCJjb252ZXJ0QW5jaG9yRWxlbWVudCIsInByaW9yaXR5IiwiaW1wb3J0SlNPTiIsInNlcmlhbGl6ZWROb2RlIiwic2V0Rm9ybWF0IiwiZm9ybWF0Iiwic2V0SW5kZW50IiwiaW5kZW50Iiwic2V0RGlyZWN0aW9uIiwiZGlyZWN0aW9uIiwiY2FuQmVFbXB0eSIsImNhbkluc2VydFRleHRBZnRlciIsImNhbkluc2VydFRleHRCZWZvcmUiLCJjcmVhdGVET00iLCJjb25maWciLCJlbGVtZW50IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsInNhbml0aXplVXJsIiwidGFyZ2V0IiwicmVsIiwibWFuYWdlUmVsIiwiYWRkQ2xhc3NOYW1lc1RvRWxlbWVudCIsInRoZW1lIiwibGluayIsImV4cG9ydEpTT04iLCJnZXRGaWVsZHMiLCJ0eXBlIiwidmVyc2lvbiIsImV4dHJhY3RXaXRoQ2hpbGQiLCJjaGlsZCIsInNlbGVjdGlvbiIsImRlc3RpbmF0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJhbmNob3JOb2RlIiwiYW5jaG9yIiwiZ2V0Tm9kZSIsImZvY3VzTm9kZSIsImZvY3VzIiwiaXNQYXJlbnRPZiIsImdldFRleHRDb250ZW50IiwibGVuZ3RoIiwiZ2V0TGF0ZXN0IiwiaW5zZXJ0TmV3QWZ0ZXIiLCJyZXN0b3JlU2VsZWN0aW9uIiwiZ2V0UGFyZW50T3JUaHJvdyIsIiRpc0VsZW1lbnROb2RlIiwibGlua05vZGUiLCJhcHBlbmQiLCJpc0lubGluZSIsInBhcnNlZFVybCIsIlVSTCIsImhhcyIsInByb3RvY29sIiwiZSIsInNldEZpZWxkcyIsIndyaXRhYmxlIiwiZ2V0V3JpdGFibGUiLCJ1cGRhdGVET00iLCJwcmV2Tm9kZSIsInJlbW92ZUF0dHJpYnV0ZSIsImRvbU5vZGUiLCJpc0hUTUxBbmNob3JFbGVtZW50IiwiY29udGVudCIsInRleHRDb250ZW50IiwiZ2V0QXR0cmlidXRlIiwiJGFwcGx5Tm9kZVJlcGxhY2VtZW50IiwiY3JlYXRlQ29tbWFuZCIsInBheWxvYWQiLCIkZ2V0U2VsZWN0aW9uIiwibm9kZXMiLCJleHRyYWN0IiwiZm9yRWFjaCIsInBhcmVudCIsImdldFBhcmVudCIsImNoaWxkcmVuIiwiZ2V0Q2hpbGRyZW4iLCJpIiwiaW5zZXJ0QmVmb3JlIiwicmVtb3ZlIiwiZmlyc3ROb2RlIiwiJGdldExpbmtBbmNlc3RvciIsInRleHQiLCIkY3JlYXRlVGV4dE5vZGUiLCJnZXRMYXN0Q2hpbGQiLCJwcmV2UGFyZW50IiwiaXMiLCJnZXRQcmV2aW91c1NpYmxpbmciLCJpbnNlcnRBZnRlciIsIiRnZXRBbmNlc3RvciIsImFuY2VzdG9yIiwicHJlZGljYXRlIiwiaW5wdXQiLCJhY3Rpb24iLCJ2YWx1ZSIsInJlc3VsdCIsIm11dGFibGVJbnB1dCIsImluY2x1ZGVzIiwicmUiLCJSZWdFeHAiLCJyZXBsYWNlIiwidHJpbSJdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCLEdBQzFCOzs7Ozs7Q0FNQzs7Ozs7Ozs7Ozs7SUFvRFlBLFFBQVE7ZUFBUkE7O0lBZ01HQyxlQUFlO2VBQWZBOztJQUlBQyxXQUFXO2VBQVhBOztJQUlIQyxtQkFBbUI7ZUFBbkJBOztJQUdHQyxVQUFVO2VBQVZBOzs7dUJBN1A0Qzt5QkFvQnJEO0FBMkJQLE1BQU1DLDBCQUEwQixJQUFJQyxJQUFJO0lBQUM7SUFBUztJQUFVO0lBQVc7SUFBUTtDQUFPO0FBRy9FLE1B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
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL25vZGVzL0xpbmtOb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBsZXhpY2FsL2xpbmsgKi9cbi8qKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBCYXNlU2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgYWRkQ2xhc3NOYW1lc1RvRWxlbWVudCwgaXNIVE1MQW5jaG9yRWxlbWVudCB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGFwcGx5Tm9kZVJlcGxhY2VtZW50LFxuICAkY3JlYXRlVGV4dE5vZGUsXG4gICRnZXRTZWxlY3Rpb24sXG4gICRpc0VsZW1lbnROb2RlLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgdHlwZSBET01Db252ZXJzaW9uTWFwLFxuICB0eXBlIERPTUNvbnZlcnNpb25PdXRwdXQsXG4gIHR5cGUgRWRpdG9yQ29uZmlnLFxuICBFbGVtZW50Tm9kZSxcbiAgdHlwZSBMZXhpY2FsQ29tbWFuZCxcbiAgdHlwZSBMZXhpY2FsTm9kZSxcbiAgdHlwZSBOb2RlS2V5LFxuICB0eXBlIFJhbmdlU2VsZWN0aW9uLFxuICB0eXBlIFNlcmlhbGl6ZWRFbGVtZW50Tm9kZSxcbiAgdHlwZSBTcHJlYWQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB0eXBlIHsgTGlua1BheWxvYWQgfSBmcm9tICcuLi9wbHVnaW5zL2Zsb2F0aW5nTGlua0VkaXRvci90eXBlcydcblxuZXhwb3J0IHR5cGUgTGlua0ZpZWxkcyA9IHtcbiAgLy8gdW5rbm93biwgY3VzdG9tIGZpZWxkczpcbiAgW2tleTogc3RyaW5nXTogdW5rbm93blxuICBkb2M6IHtcbiAgICByZWxhdGlvblRvOiBzdHJpbmdcbiAgICB2YWx1ZToge1xuICAgICAgLy8gQWN0dWFsIGRvYyBkYXRhLCBwb3B1bGF0ZWQgaW4gYWZ0ZXJSZWFkIGhvb2tcbiAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd25cbiAgICAgIGlkOiBzdHJpbmdcbiAgICB9XG4gIH0gfCBudWxsXG4gIGxpbmtUeXBlOiAnY3VzdG9tJyB8ICdpbnRlcm5hbCdcbiAgbmV3VGFiOiBib29sZWFuXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRMaW5rTm9kZSA9IFNwcmVhZDxcbiAge1xuICAgIGZpZWxkczogTGlua0ZpZWxkc1xuICB9LFxuICBTZXJpYWxpemVkRWxlbWVudE5vZGVcbj5cblxuY29uc3QgU1VQUE9SVEVEX1VSTF9QUk9UT0NPTFMgPSBuZXcgU2V0KFsnaHR0cDonLCAnaHR0cHM6JywgJ21haWx0bzonLCAnc21zOicsICd0ZWw6J10pXG5cbi8qKiBAbm9Jbmhlcml0RG9jICovXG5leHBvcnQgY2xhc3MgTGlua05vZGUgZXh0ZW5kcyBFbGVtZW50Tm9kZSB7XG4gIF9fZmllbGRzOiBMaW5rRmllbGRzXG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGZpZWxkcyA9IHtcbiAgICAgIGRvYzogbnVsbCxcbiAgICAgIGxpbmtUeXBlOiAnY3VzdG9tJyxcbiAgICAgIG5ld1RhYjogZmFsc2UsXG4gICAgICB1cmw6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIGtleSxcbiAgfToge1xuICAgIGZpZWxkczogTGlua0ZpZWxkc1xuICAgIGtleT86IE5vZGVLZXlcbiAgfSkge1xuICAgIHN1cGVyKGtleSlcbiAgICB0aGlzLl9fZmllbGRzID0gZmllbGRzXG4gIH1cblxuICBzdGF0aWMgY2xvbmUobm9kZTogTGlua05vZGUpOiBMaW5rTm9kZSB7XG4gICAgcmV0dXJuIG5ldyBMaW5rTm9kZSh7XG4gICAgICBmaWVsZHM6IG5vZGUuX19maWVsZHMsXG4gICAgICBrZXk6IG5vZGUuX19rZXksXG4gICAgfSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdsaW5rJ1xuICB9XG5cbiAgc3RhdGljIGltcG9ydERPTSgpOiBET01Db252ZXJzaW9uTWFwIHwgbnVsbCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGE6IChub2RlOiBOb2RlKSA9PiAoe1xuICAgICAgICBjb252ZXJzaW9uOiBjb252ZXJ0QW5jaG9yRWxlbWVudCxcbiAgICAgICAgcHJpb3JpdHk6IDEsXG4gICAgICB9KSxcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgaW1wb3J0SlNPTihzZXJpYWxpemVkTm9kZTogU2VyaWFsaXplZExpbmtOb2RlKTogTGlua05vZGUge1xuICAgIGNvbnN0IG5vZGUgPSAkY3JlYXRlTGlua05vZGUoe1xuICAgICAgZmllbGRzOiBzZXJpYWxpemVkTm9kZS5maWVsZHMsXG4gICAgfSlcbiAgICBub2RlLnNldEZvcm1hdChzZXJpYWxpemVkTm9kZS5mb3JtYXQpXG4gICAgbm9kZS5zZXRJbmRlbnQoc2VyaWFsaXplZE5vZGUuaW5kZW50KVxuICAgIG5vZGUuc2V0RGlyZWN0aW9uKHNlcmlhbGl6ZWROb2RlLmRpcmVjdGlvbilcbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgY2FuQmVFbXB0eSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjYW5JbnNlcnRUZXh0QWZ0ZXIoKTogZmFsc2Uge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY2FuSW5zZXJ0VGV4dEJlZm9yZSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjcmVhdGVET00oY29uZmlnOiBFZGl0b3JDb25maWcpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIGVsZW1lbnQuaHJlZiA9IHRoaXMuc2FuaXRpemVVcmwodGhpcy5fX2ZpZWxkcy51cmwgPz8gJycpXG4gICAgfVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5uZXdUYWIgPz8gZmFsc2UpIHtcbiAgICAgIGVsZW1lbnQudGFyZ2V0ID0gJ19ibGFuaydcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubmV3VGFiID09PSB0cnVlICYmIHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgZWxlbWVudC5yZWwgPSBtYW5hZ2VSZWwoZWxlbWVudC5yZWwsICdhZGQnLCAnbm9vcGVuZXInKVxuICAgIH1cblxuICAgIGFkZENsYXNzTmFtZXNUb0VsZW1lbnQoZWxlbWVudCwgY29uZmlnLnRoZW1lLmxpbmspXG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgfVxuXG4gIGV4cG9ydEpTT04oKTogU2VyaWFsaXplZExpbmtOb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZXhwb3J0SlNPTigpLFxuICAgICAgZmllbGRzOiB0aGlzLmdldEZpZWxkcygpLFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlKCksXG4gICAgICB2ZXJzaW9uOiAxLFxuICAgIH1cbiAgfVxuXG4gIGV4dHJhY3RXaXRoQ2hpbGQoXG4gICAgY2hpbGQ6IExleGljYWxOb2RlLFxuICAgIHNlbGVjdGlvbjogQmFzZVNlbGVjdGlvbixcbiAgICBkZXN0aW5hdGlvbjogJ2Nsb25lJyB8ICdodG1sJyxcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBhbmNob3JOb2RlID0gc2VsZWN0aW9uLmFuY2hvci5nZXROb2RlKClcbiAgICBjb25zdCBmb2N1c05vZGUgPSBzZWxlY3Rpb24uZm9jdXMuZ2V0Tm9kZSgpXG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1BhcmVudE9mKGFuY2hvck5vZGUpICYmXG4gICAgICB0aGlzLmlzUGFyZW50T2YoZm9jdXNOb2RlKSAmJlxuICAgICAgc2VsZWN0aW9uLmdldFRleHRDb250ZW50KCkubGVuZ3RoID4gMFxuICAgIClcbiAgfVxuXG4gIGdldEZpZWxkcygpOiBMaW5rRmllbGRzIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMYXRlc3QoKS5fX2ZpZWxkc1xuICB9XG5cbiAgaW5zZXJ0TmV3QWZ0ZXIoc2VsZWN0aW9uOiBSYW5nZVNlbGVjdGlvbiwgcmVzdG9yZVNlbGVjdGlvbiA9IHRydWUpOiBFbGVtZW50Tm9kZSB8IG51bGwge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldFBhcmVudE9yVGhyb3coKS5pbnNlcnROZXdBZnRlcihzZWxlY3Rpb24sIHJlc3RvcmVTZWxlY3Rpb24pXG4gICAgaWYgKCRpc0VsZW1lbnROb2RlKGVsZW1lbnQpKSB7XG4gICAgICBjb25zdCBsaW5rTm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7IGZpZWxkczogdGhpcy5fX2ZpZWxkcyB9KVxuICAgICAgZWxlbWVudC5hcHBlbmQobGlua05vZGUpXG4gICAgICByZXR1cm4gbGlua05vZGVcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzSW5saW5lKCk6IHRydWUge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwodXJsKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNjcmlwdC11cmxcbiAgICAgIGlmICghU1VQUE9SVEVEX1VSTF9QUk9UT0NPTFMuaGFzKHBhcnNlZFVybC5wcm90b2NvbCkpIHtcbiAgICAgICAgcmV0dXJuICdhYm91dDpibGFuaydcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gJ2h0dHBzOi8vJ1xuICAgIH1cbiAgICByZXR1cm4gdXJsXG4gIH1cblxuICBzZXRGaWVsZHMoZmllbGRzOiBMaW5rRmllbGRzKTogdm9pZCB7XG4gICAgY29uc3Qgd3JpdGFibGUgPSB0aGlzLmdldFdyaXRhYmxlKClcbiAgICB3cml0YWJsZS5fX2ZpZWxkcyA9IGZpZWxkc1xuICB9XG5cbiAgdXBkYXRlRE9NKHByZXZOb2RlOiBMaW5rTm9kZSwgYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCwgY29uZmlnOiBFZGl0b3JDb25maWcpOiBib29sZWFuIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLl9fZmllbGRzPy51cmxcbiAgICBjb25zdCBuZXdUYWIgPSB0aGlzLl9fZmllbGRzPy5uZXdUYWJcbiAgICBpZiAodXJsICE9IG51bGwgJiYgdXJsICE9PSBwcmV2Tm9kZS5fX2ZpZWxkcz8udXJsICYmIHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgYW5jaG9yLmhyZWYgPSB1cmxcbiAgICB9XG4gICAgaWYgKHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnaW50ZXJuYWwnICYmIHByZXZOb2RlLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIGFuY2hvci5yZW1vdmVBdHRyaWJ1dGUoJ2hyZWYnKVxuICAgIH1cblxuICAgIC8vIFRPRE86IG5vdCAxMDAlIHN1cmUgd2h5IHdlJ3JlIHNldHRpZ24gcmVsIHRvICcnIC0gcmV2aXNpdFxuICAgIC8vIFN0YXJ0IHJlbCBjb25maWcgaGVyZSwgdGhlbiBjaGVjayBuZXdUYWIgYmVsb3dcbiAgICBpZiAoYW5jaG9yLnJlbCA9PSBudWxsKSB7XG4gICAgICBhbmNob3IucmVsID0gJydcbiAgICB9XG5cbiAgICBpZiAobmV3VGFiICE9PSBwcmV2Tm9kZS5fX2ZpZWxkcz8ubmV3VGFiKSB7XG4gICAgICBpZiAobmV3VGFiID8/IGZhbHNlKSB7XG4gICAgICAgIGFuY2hvci50YXJnZXQgPSAnX2JsYW5rJ1xuICAgICAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAnYWRkJywgJ25vb3BlbmVyJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW5jaG9yLnJlbW92ZUF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAncmVtb3ZlJywgJ25vb3BlbmVyJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0QW5jaG9yRWxlbWVudChkb21Ob2RlOiBOb2RlKTogRE9NQ29udmVyc2lvbk91dHB1dCB7XG4gIGxldCBub2RlOiBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG4gIGlmIChpc0hUTUxBbmNob3JFbGVtZW50KGRvbU5vZGUpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGRvbU5vZGUudGV4dENvbnRlbnRcbiAgICBpZiAoY29udGVudCAhPT0gbnVsbCAmJiBjb250ZW50ICE9PSAnJykge1xuICAgICAgbm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7XG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIGRvYzogbnVsbCxcbiAgICAgICAgICBsaW5rVHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgbmV3VGFiOiBkb21Ob2RlLmdldEF0dHJpYnV0ZSgndGFyZ2V0JykgPT09ICdfYmxhbmsnLFxuICAgICAgICAgIHVybDogZG9tTm9kZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSA/PyAnJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIHJldHVybiB7IG5vZGUgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGNyZWF0ZUxpbmtOb2RlKHsgZmllbGRzIH06IHsgZmllbGRzOiBMaW5rRmllbGRzIH0pOiBMaW5rTm9kZSB7XG4gIHJldHVybiAkYXBwbHlOb2RlUmVwbGFjZW1lbnQobmV3IExpbmtOb2RlKHsgZmllbGRzIH0pKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGlzTGlua05vZGUobm9kZTogTGV4aWNhbE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogbm9kZSBpcyBMaW5rTm9kZSB7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgTGlua05vZGVcbn1cblxuZXhwb3J0IGNvbnN0IFRPR0dMRV9MSU5LX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPExpbmtQYXlsb2FkIHwgbnVsbD4gPVxuICBjcmVhdGVDb21tYW5kKCdUT0dHTEVfTElOS19DT01NQU5EJylcblxuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUxpbmsocGF5bG9hZDogTGlua1BheWxvYWQpOiB2b2lkIHtcbiAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG5cbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3Qgbm9kZXMgPSBzZWxlY3Rpb24uZXh0cmFjdCgpXG5cbiAgaWYgKHBheWxvYWQgPT09IG51bGwpIHtcbiAgICAvLyBSZW1vdmUgTGlua05vZGVzXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZS5nZXRQYXJlbnQoKVxuXG4gICAgICBpZiAoJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5nZXRDaGlsZHJlbigpXG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGRyZW5baV0pXG4gICAgICAgIH1cblxuICAgICAgICBwYXJlbnQucmVtb3ZlKClcbiAgICAgIH1cbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIC8vIEFkZCBvciBtZXJnZSBMaW5rTm9kZXNcbiAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdE5vZGUgPSBub2Rlc1swXVxuICAgICAgLy8gaWYgdGhlIGZpcnN0IG5vZGUgaXMgYSBMaW5rTm9kZSBvciBpZiBpdHNcbiAgICAgIC8vIHBhcmVudCBpcyBhIExpbmtOb2RlLCB3ZSB1cGRhdGUgdGhlIFVSTCwgdGFyZ2V0IGFuZCByZWwuXG4gICAgICBjb25zdCBsaW5rTm9kZTogTGlua05vZGUgfCBudWxsID0gJGlzTGlua05vZGUoZmlyc3ROb2RlKVxuICAgICAgICA/IGZpcnN0Tm9kZVxuICAgICAgICA6ICRnZXRMaW5rQW5jZXN0b3IoZmlyc3ROb2RlKVxuICAgICAgaWYgKGxpbmtOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGxpbmtOb2RlLnNldEZpZWxkcyhwYXlsb2FkLmZpZWxkcylcblxuICAgICAgICBpZiAocGF5bG9hZC50ZXh0ICE9IG51bGwgJiYgcGF5bG9hZC50ZXh0ICE9PSBsaW5rTm9kZS5nZXRUZXh0Q29udGVudCgpKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIGFsbCBjaGlsZHJlbiBhbmQgYWRkIGNoaWxkIHdpdGggbmV3IHRleHRjb250ZW50OlxuICAgICAgICAgIGxpbmtOb2RlLmFwcGVuZCgkY3JlYXRlVGV4dE5vZGUocGF5bG9hZC50ZXh0KSlcbiAgICAgICAgICBsaW5rTm9kZS5nZXRDaGlsZHJlbigpLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQgIT09IGxpbmtOb2RlLmdldExhc3RDaGlsZCgpKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcHJldlBhcmVudDogRWxlbWVudE5vZGUgfCBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG4gICAgbGV0IGxpbmtOb2RlOiBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBub2RlLmdldFBhcmVudCgpXG5cbiAgICAgIGlmIChwYXJlbnQgPT09IGxpbmtOb2RlIHx8IHBhcmVudCA9PT0gbnVsbCB8fCAoJGlzRWxlbWVudE5vZGUobm9kZSkgJiYgIW5vZGUuaXNJbmxpbmUoKSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICgkaXNMaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgIGxpbmtOb2RlID0gcGFyZW50XG4gICAgICAgIHBhcmVudC5zZXRGaWVsZHMocGF5bG9hZC5maWVsZHMpXG4gICAgICAgIGlmIChwYXlsb2FkLnRleHQgIT0gbnVsbCAmJiBwYXlsb2FkLnRleHQgIT09IHBhcmVudC5nZXRUZXh0Q29udGVudCgpKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIGFsbCBjaGlsZHJlbiBhbmQgYWRkIGNoaWxkIHdpdGggbmV3IHRleHRjb250ZW50OlxuICAgICAgICAgIHBhcmVudC5hcHBlbmQoJGNyZWF0ZVRleHROb2RlKHBheWxvYWQudGV4dCkpXG4gICAgICAgICAgcGFyZW50LmdldENoaWxkcmVuKCkuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZCAhPT0gcGFyZW50LmdldExhc3RDaGlsZCgpKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFwYXJlbnQuaXMocHJldlBhcmVudCkpIHtcbiAgICAgICAgcHJldlBhcmVudCA9IHBhcmVudFxuICAgICAgICBsaW5rTm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7IGZpZWxkczogcGF5bG9hZC5maWVsZHMgfSlcblxuICAgICAgICBpZiAoJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgIGlmIChub2RlLmdldFByZXZpb3VzU2libGluZygpID09PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGxpbmtOb2RlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QWZ0ZXIobGlua05vZGUpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuaW5zZXJ0QmVmb3JlKGxpbmtOb2RlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICgkaXNMaW5rTm9kZShub2RlKSkge1xuICAgICAgICBpZiAobm9kZS5pcyhsaW5rTm9kZSkpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAobGlua05vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuZ2V0Q2hpbGRyZW4oKVxuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgbGlua05vZGUuYXBwZW5kKGNoaWxkcmVuW2ldKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUucmVtb3ZlKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5rTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBsaW5rTm9kZS5hcHBlbmQobm9kZSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uICRnZXRMaW5rQW5jZXN0b3Iobm9kZTogTGV4aWNhbE5vZGUpOiBMaW5rTm9kZSB8IG51bGwge1xuICByZXR1cm4gJGdldEFuY2VzdG9yKG5vZGUsIChhbmNlc3RvcikgPT4gJGlzTGlua05vZGUoYW5jZXN0b3IpKSBhcyBMaW5rTm9kZVxufVxuXG5mdW5jdGlvbiAkZ2V0QW5jZXN0b3IoXG4gIG5vZGU6IExleGljYWxOb2RlLFxuICBwcmVkaWNhdGU6IChhbmNlc3RvcjogTGV4aWNhbE5vZGUpID0+IGJvb2xlYW4sXG4pOiBMZXhpY2FsTm9kZSB8IG51bGwge1xuICBsZXQgcGFyZW50OiBMZXhpY2FsTm9kZSB8IG51bGwgPSBub2RlXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwgJiYgKHBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKSkgIT09IG51bGwgJiYgIXByZWRpY2F0ZShwYXJlbnQpKTtcbiAgcmV0dXJuIHBhcmVudFxufVxuXG5mdW5jdGlvbiBtYW5hZ2VSZWwoaW5wdXQ6IHN0cmluZywgYWN0aW9uOiAnYWRkJyB8ICdyZW1vdmUnLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdDogc3RyaW5nXG4gIGxldCBtdXRhYmxlSW5wdXQgPSBgJHtpbnB1dH1gXG4gIGlmIChhY3Rpb24gPT09ICdhZGQnKSB7XG4gICAgLy8gaWYgd2Ugc29tZWhvdyBnb3Qgb3V0IG9mIHN5bmMgLSBjbGVhbiB1cFxuICAgIGlmIChtdXRhYmxlSW5wdXQuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAodmFsdWUsICdnJylcbiAgICAgIG11dGFibGVJbnB1dCA9IG11dGFibGVJbnB1dC5yZXBsYWNlKHJlLCAnJykudHJpbSgpXG4gICAgfVxuICAgIG11dGFibGVJbnB1dCA9IG11dGFibGVJbnB1dC50cmltKClcbiAgICByZXN1bHQgPSBtdXRhYmxlSW5wdXQubGVuZ3RoID09PSAwID8gYCR7dmFsdWV9YCA6IGAke211dGFibGVJbnB1dH0gJHt2YWx1ZX1gXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKHZhbHVlLCAnZycpXG4gICAgcmVzdWx0ID0gbXV0YWJsZUlucHV0LnJlcGxhY2UocmUsICcnKS50cmltKClcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiTGlua05vZGUiLCIkY3JlYXRlTGlua05vZGUiLCIkaXNMaW5rTm9kZSIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJ0b2dnbGVMaW5rIiwiU1VQUE9SVEVEX1VSTF9QUk9UT0NPTFMiLCJTZXQiLCJFbGVtZW50Tm9kZSIsIl9fZmllbGRzIiwiY29uc3RydWN0b3IiLCJmaWVsZHMiLCJkb2MiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsInVuZGVmaW5lZCIsImtleSIsImNsb25lIiwibm9kZSIsIl9fa2V5IiwiZ2V0VHlwZSIsImltcG9ydERPTSIsImEiLCJjb252ZXJzaW9uIiwiY29udmVydEFuY2hvckVsZW1lbnQiLCJwcmlvcml0eSIsImltcG9ydEpTT04iLCJzZXJpYWxpemVkTm9kZSIsInNldEZvcm1hdCIsImZvcm1hdCIsInNldEluZGVudCIsImluZGVudCIsInNldERpcmVjdGlvbiIsImRpcmVjdGlvbiIsImNhbkJlRW1wdHkiLCJjYW5JbnNlcnRUZXh0QWZ0ZXIiLCJjYW5JbnNlcnRUZXh0QmVmb3JlIiwiY3JlYXRlRE9NIiwiY29uZmlnIiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImhyZWYiLCJzYW5pdGl6ZVVybCIsInRhcmdldCIsInJlbCIsIm1hbmFnZVJlbCIsImFkZENsYXNzTmFtZXNUb0VsZW1lbnQiLCJ0aGVtZSIsImxpbmsiLCJleHBvcnRKU09OIiwiZ2V0RmllbGRzIiwidHlwZSIsInZlcnNpb24iLCJleHRyYWN0V2l0aENoaWxkIiwiY2hpbGQiLCJzZWxlY3Rpb24iLCJkZXN0aW5hdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiYW5jaG9yTm9kZSIsImFuY2hvciIsImdldE5vZGUiLCJmb2N1c05vZGUiLCJmb2N1cyIsImlzUGFyZW50T2YiLCJnZXRUZXh0Q29udGVudCIsImxlbmd0aCIsImdldExhdGVzdCIsImluc2VydE5ld0FmdGVyIiwicmVzdG9yZVNlbGVjdGlvbiIsImdldFBhcmVudE9yVGhyb3ciLCIkaXNFbGVtZW50Tm9kZSIsImxpbmtOb2RlIiwiYXBwZW5kIiwiaXNJbmxpbmUiLCJwYXJzZWRVcmwiLCJVUkwiLCJoYXMiLCJwcm90b2NvbCIsImUiLCJzZXRGaWVsZHMiLCJ3cml0YWJsZSIsImdldFdyaXRhYmxlIiwidXBkYXRlRE9NIiwicHJldk5vZGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJkb21Ob2RlIiwiaXNIVE1MQW5jaG9yRWxlbWVudCIsImNvbnRlbnQiLCJ0ZXh0Q29udGVudCIsImdldEF0dHJpYnV0ZSIsIiRhcHBseU5vZGVSZXBsYWNlbWVudCIsImNyZWF0ZUNvbW1hbmQiLCJwYXlsb2FkIiwiJGdldFNlbGVjdGlvbiIsIm5vZGVzIiwiZXh0cmFjdCIsImZvckVhY2giLCJwYXJlbnQiLCJnZXRQYXJlbnQiLCJjaGlsZHJlbiIsImdldENoaWxkcmVuIiwiaSIsImluc2VydEJlZm9yZSIsInJlbW92ZSIsImZpcnN0Tm9kZSIsIiRnZXRMaW5rQW5jZXN0b3IiLCJ0ZXh0IiwiJGNyZWF0ZVRleHROb2RlIiwiZ2V0TGFzdENoaWxkIiwicHJldlBhcmVudCIsImlzIiwiZ2V0UHJldmlvdXNTaWJsaW5nIiwiaW5zZXJ0QWZ0ZXIiLCIkZ2V0QW5jZXN0b3IiLCJhbmNlc3RvciIsInByZWRpY2F0ZSIsImlucHV0IiwiYWN0aW9uIiwidmFsdWUiLCJyZXN1bHQiLCJtdXRhYmxlSW5wdXQiLCJpbmNsdWRlcyIsInJlIiwiUmVnRXhwIiwicmVwbGFjZSIsInRyaW0iXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQixHQUMxQjs7Ozs7O0NBTUM7Ozs7Ozs7Ozs7O0lBb0RZQSxRQUFRO2VBQVJBOztJQWdNR0MsZUFBZTtlQUFmQTs7SUFJQUMsV0FBVztlQUFYQTs7SUFJSEMsbUJBQW1CO2VBQW5CQTs7SUFHR0MsVUFBVTtlQUFWQTs7O3VCQTNQNEM7eUJBa0JyRDtBQTJCUCxNQUFNQywwQkFBMEIsSUFBSUMsSUFBSTtJQUFDO0lBQVM7SUFBVTtJQUFXO0lBQVE7Q0FBTztBQUcvRSxNQUFNTixpQkFBaUJPLG9CQUFXO0lBQ3ZDQyxTQUFvQjtJ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
@@ -0,0 +1,4 @@
1
+ import type { LexicalCommand } from 'lexical';
2
+ import type { LinkPayload } from '../types';
3
+ export declare const TOGGLE_LINK_WITH_MODAL_COMMAND: LexicalCommand<LinkPayload | null>;
4
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,eAAO,MAAM,8BAA8B,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAE7E,CAAA"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TOGGLE_LINK_WITH_MODAL_COMMAND", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TOGGLE_LINK_WITH_MODAL_COMMAND;
9
+ }
10
+ });
11
+ const _lexical = require("lexical");
12
+ const TOGGLE_LINK_WITH_MODAL_COMMAND = (0, _lexical.createCommand)('TOGGLE_LINK_WITH_MODAL_COMMAND');
13
+
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvY29tbWFuZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsQ29tbWFuZCB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IGNyZWF0ZUNvbW1hbmQgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPExpbmtQYXlsb2FkIHwgbnVsbD4gPSBjcmVhdGVDb21tYW5kKFxuICAnVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EJyxcbilcbiJdLCJuYW1lcyI6WyJUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQiLCJjcmVhdGVDb21tYW5kIl0sIm1hcHBpbmdzIjoiOzs7OytCQU1hQTs7O2VBQUFBOzs7eUJBSmlCO0FBSXZCLE1BQU1BLGlDQUFxRUMsSUFBQUEsc0JBQWEsRUFDN0YifQ==
@@ -1,9 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { LexicalCommand } from 'lexical';
3
2
  import type { LinkFeatureProps } from '../../..';
4
- import type { LinkPayload } from '../types';
5
- export declare const TOGGLE_LINK_WITH_MODAL_COMMAND: LexicalCommand<LinkPayload | null>;
6
- export declare function LinkEditor({ anchorElem, fields: customFieldSchema, }: {
3
+ export declare function LinkEditor({ anchorElem, disabledCollections, enabledCollections, fields: customFieldSchema, }: {
7
4
  anchorElem: HTMLElement;
8
5
  } & LinkFeatureProps): JSX.Element;
9
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA6B7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,eAAO,MAAM,8BAA8B,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAE7E,CAAA;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA+R9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAYhD,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAqS9D"}
@@ -3,17 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- TOGGLE_LINK_WITH_MODAL_COMMAND: function() {
14
- return TOGGLE_LINK_WITH_MODAL_COMMAND;
15
- },
16
- LinkEditor: function() {
6
+ Object.defineProperty(exports, "LinkEditor", {
7
+ enumerable: true,
8
+ get: function() {
17
9
  return LinkEditor;
18
10
  }
19
11
  });
@@ -33,6 +25,7 @@ const _setFloatingElemPositionForLinkEditor = require("../../../../../lexical/ut
33
25
  const _drawer = require("../../../drawer");
34
26
  const _LinkNode = require("../../../nodes/LinkNode");
35
27
  const _utilities2 = require("../utilities");
28
+ const _commands = require("./commands");
36
29
  function _getRequireWildcardCache(nodeInterop) {
37
30
  if (typeof WeakMap !== "function") return null;
38
31
  var cacheBabelInterop = new WeakMap();
@@ -72,8 +65,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
72
65
  }
73
66
  return newObj;
74
67
  }
75
- const TOGGLE_LINK_WITH_MODAL_COMMAND = (0, _lexical.createCommand)('TOGGLE_LINK_WITH_MODAL_COMMAND');
76
- function LinkEditor({ anchorElem, fields: customFieldSchema }) {
68
+ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, fields: customFieldSchema }) {
77
69
  const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
78
70
  const editorRef = (0, _react.useRef)(null);
79
71
  const [linkUrl, setLinkUrl] = (0, _react.useState)('');
@@ -90,7 +82,7 @@ function LinkEditor({ anchorElem, fields: customFieldSchema }) {
90
82
  const { getDocPreferences } = (0, _utilities.useDocumentInfo)();
91
83
  const [initialState, setInitialState] = (0, _react.useState)({});
92
84
  const [fieldSchema] = (0, _react.useState)(()=>{
93
- const fieldsUnsanitized = (0, _utilities2.transformExtraFields)(customFieldSchema, config, i18n);
85
+ const fieldsUnsanitized = (0, _utilities2.transformExtraFields)(customFieldSchema, config, i18n, enabledCollections, disabledCollections);
94
86
  // Sanitize custom fields here
95
87
  const validRelationships = config.collections.map((c)=>c.slug) || [];
96
88
  const fields = (0, _config.sanitizeFields)({
@@ -197,7 +189,7 @@ function LinkEditor({ anchorElem, fields: customFieldSchema }) {
197
189
  i18n
198
190
  ]);
199
191
  (0, _react.useEffect)(()=>{
200
- return (0, _utils.mergeRegister)(editor.registerCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, (payload)=>{
192
+ return (0, _utils.mergeRegister)(editor.registerCommand(_commands.TOGGLE_LINK_WITH_MODAL_COMMAND, (payload)=>{
201
193
  editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, payload);
202
194
  // Now, open the modal
203
195
  updateLinkEditor().then(()=>{
@@ -320,4 +312,4 @@ function LinkEditor({ anchorElem, fields: customFieldSchema }) {
320
312
  }));
321
313
  }
322
314
 
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBMZXhpY2FsQ29tbWFuZCB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgdHlwZSB7IERhdGEsIEZpZWxkcyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyAkZmluZE1hdGNoaW5nUGFyZW50LCBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9ISUdILFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyBmb3JtYXREcmF3ZXJTbHVnIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2VsZW1lbnRzJ1xuaW1wb3J0IHtcbiAgYnVpbGRTdGF0ZUZyb21TY2hlbWEsXG4gIHVzZUF1dGgsXG4gIHVzZUNvbmZpZyxcbiAgdXNlRG9jdW1lbnRJbmZvLFxuICB1c2VFZGl0RGVwdGgsXG4gIHVzZUxvY2FsZSxcbn0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL3V0aWxpdGllcydcbmltcG9ydCB7IHNhbml0aXplRmllbGRzIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rRmVhdHVyZVByb3BzIH0gZnJvbSAnLi4vLi4vLi4nXG5pbXBvcnQgdHlwZSB7IExpbmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IGdldFNlbGVjdGVkTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvZ2V0U2VsZWN0ZWROb2RlJ1xuaW1wb3J0IHsgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9zZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3InXG5pbXBvcnQgeyBMaW5rRHJhd2VyIH0gZnJvbSAnLi4vLi4vLi4vZHJhd2VyJ1xuaW1wb3J0IHsgJGlzTGlua05vZGUsIFRPR0dMRV9MSU5LX0NPTU1BTkQgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZSdcbmltcG9ydCB7IHRyYW5zZm9ybUV4dHJhRmllbGRzIH0gZnJvbSAnLi4vdXRpbGl0aWVzJ1xuXG5leHBvcnQgY29uc3QgVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EOiBMZXhpY2FsQ29tbWFuZDxMaW5rUGF5bG9hZCB8IG51bGw+ID0gY3JlYXRlQ29tbWFuZChcbiAgJ1RPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCcsXG4pXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHtcbiAgYW5jaG9yRWxlbSxcbiAgZmllbGRzOiBjdXN0b21GaWVsZFNjaGVtYSxcbn06IHsgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQgfSAmIExpbmtGZWF0dXJlUHJvcHMpOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG5cbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xpbmtVcmwsIHNldExpbmtVcmxdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtsaW5rTGFiZWwsIHNldExpbmtMYWJlbF0gPSB1c2VTdGF0ZSgnJylcblxuICBjb25zdCB7IHV1aWQgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgeyB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgeyBjb2RlOiBsb2NhbGUgfSA9IHVzZUxvY2FsZSgpXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydmaWVsZHMnLCAndXBsb2FkJywgJ2dlbmVyYWwnXSlcblxuICBjb25zdCB7IGdldERvY1ByZWZlcmVuY2VzIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IFtpbml0aWFsU3RhdGUsIHNldEluaXRpYWxTdGF0ZV0gPSB1c2VTdGF0ZTxGaWVsZHM+KHt9KVxuXG4gIGNvbnN0IFtmaWVsZFNjaGVtYV0gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgY29uc3QgZmllbGRzVW5zYW5pdGl6ZWQgPSB0cmFuc2Zvcm1FeHRyYUZpZWxkcyhjdXN0b21GaWVsZFNjaGVtYSwgY29uZmlnLCBpMThuKVxuICAgIC8vIFNhbml0aXplIGN1c3RvbSBmaWVsZHMgaGVyZVxuICAgIGNvbnN0IHZhbGlkUmVsYXRpb25zaGlwcyA9IGNvbmZpZy5jb2xsZWN0aW9ucy5tYXAoKGMpID0+IGMuc2x1ZykgfHwgW11cbiAgICBjb25zdCBmaWVsZHMgPSBzYW5pdGl6ZUZpZWxkcyh7XG4gICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgIGZpZWxkczogZmllbGRzVW5zYW5pdGl6ZWQsXG4gICAgICB2YWxpZFJlbGF0aW9uc2hpcHMsXG4gICAgfSlcblxuICAgIHJldHVybiBmaWVsZHNcbiAgfSlcblxuICBjb25zdCB7IGNsb3NlTW9kYWwsIHRvZ2dsZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IGVkaXREZXB0aCA9IHVzZUVkaXREZXB0aCgpXG4gIGNvbnN0IFtpc0xpbmssIHNldElzTGlua10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBkcmF3ZXJTbHVnID0gZm9ybWF0RHJhd2VyU2x1Zyh7XG4gICAgZGVwdGg6IGVkaXREZXB0aCxcbiAgICBzbHVnOiBgbGV4aWNhbC1yaWNoLXRleHQtbGluay1gICsgdXVpZCxcbiAgfSlcblxuICBjb25zdCB1cGRhdGVMaW5rRWRpdG9yID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGxldCBzZWxlY3RlZE5vZGVEb21SZWN0OiBET01SZWN0IHwgdW5kZWZpbmVkID0gbnVsbFxuXG4gICAgLy8gSGFuZGxlIHRoZSBkYXRhIGRpc3BsYXllZCBpbiB0aGUgZmxvYXRpbmcgbGluayBlZGl0b3IgJiBkcmF3ZXIgd2hlbiB5b3UgY2xpY2sgb24gYSBsaW5rIG5vZGVcbiAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgY29uc3Qgbm9kZSA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pXG4gICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gZWRpdG9yLmdldEVsZW1lbnRCeUtleShub2RlLmdldEtleSgpKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGxpbmtQYXJlbnQ6IExpbmtOb2RlID0gJGZpbmRNYXRjaGluZ1BhcmVudChub2RlLCAkaXNMaW5rTm9kZSkgYXMgTGlua05vZGVcbiAgICAgIGlmIChsaW5rUGFyZW50ID09IG51bGwpIHtcbiAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJbml0aWFsIHN0YXRlOlxuICAgICAgY29uc3QgZGF0YTogTGlua1BheWxvYWQgPSB7XG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIGRvYzogdW5kZWZpbmVkLFxuICAgICAgICAgIGxpbmtUeXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VGFiOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXJsOiAnJyxcbiAgICAgICAgICAuLi5saW5rUGFyZW50LmdldEZpZWxkcygpLFxuICAgICAgICB9LFxuICAgICAgICB0ZXh0OiBsaW5rUGFyZW50LmdldFRleHRDb250ZW50KCksXG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5rUGFyZW50LmdldEZpZWxkcygpPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgc2V0TGlua1VybChsaW5rUGFyZW50LmdldEZpZWxkcygpPy51cmwgPz8gJycpXG4gICAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGludGVybmFsIGxpbmtcbiAgICAgICAgc2V0TGlua1VybChcbiAgICAgICAgICBgL2FkbWluL2NvbGxlY3Rpb25zLyR7bGlua1BhcmVudC5nZXRGaWVsZHMoKT8uZG9jPy5yZWxhdGlvblRvfS8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKClcbiAgICAgICAgICAgID8uZG9jPy52YWx1ZT8uaWR9YCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IGNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgIChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25UbyxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBsYWJlbCA9IHQoJ2ZpZWxkczpsaW5rZWRUbycsIHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24ocmVsYXRlZEZpZWxkLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICAgIH0pLnJlcGxhY2UoLzxbXj5dKj4/L2csICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwobGFiZWwpXG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBpbml0aWFsIHN0YXRlIG9mIHRoZSBkcmF3ZXIuIFRoaXMgd2lsbCBiYXNpY2FsbHkgcHJlLWZpbGwgdGhlIGRyYXdlciBmaWVsZHMgd2l0aCB0aGVcbiAgICAgIC8vIHZhbHVlcyBzYXZlZCBpbiB0aGUgbGluayBub2RlIHlvdSBjbGlja2VkIG9uLlxuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBkYXRhLFxuICAgICAgICBmaWVsZFNjaGVtYSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvcGVyYXRpb246ICdjcmVhdGUnLFxuICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgdCxcbiAgICAgICAgdXNlcjogdXNlciA/PyB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgc2V0SW5pdGlhbFN0YXRlKHN0YXRlKVxuICAgICAgc2V0SXNMaW5rKHRydWUpXG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yRWxlbSA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudFxuXG4gICAgaWYgKGVkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudCAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQuY29udGFpbnMobmF0aXZlU2VsZWN0aW9uLmFuY2hvck5vZGUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNlbGVjdGVkTm9kZURvbVJlY3QpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBET00gcmVjdCBvZiB0aGUgc2VsZWN0ZWQgbm9kZSB1c2luZyB0aGUgbmF0aXZlIHNlbGVjdGlvbi4gVGhpcyBzb21ldGltZXMgcHJvZHVjZXMgdGhlIHdyb25nXG4gICAgICAgIC8vIHJlc3VsdCwgd2hpY2ggaXMgd2h5IHdlIHVzZSBsZXhpY2FsJ3Mgc2VsZWN0aW9uIHByZWZlcmFibHkuXG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBuYXRpdmVTZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0ZWROb2RlRG9tUmVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QueSArPSA0MFxuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3Ioc2VsZWN0ZWROb2RlRG9tUmVjdCwgZWRpdG9yRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50LmNsYXNzTmFtZSAhPT0gJ2xpbmstaW5wdXQnKSB7XG4gICAgICBpZiAocm9vdEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKG51bGwsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0sIFthbmNob3JFbGVtLCBlZGl0b3IsIGZpZWxkU2NoZW1hLCBjb25maWcsIGdldERvY1ByZWZlcmVuY2VzLCBsb2NhbGUsIHQsIHVzZXIsIGkxOG5dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkOiBMaW5rUGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgcGF5bG9hZClcblxuICAgICAgICAgIC8vIE5vdywgb3BlbiB0aGUgbW9kYWxcbiAgICAgICAgICB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdG9nZ2xlTW9kYWwoZHJhd2VyU2x1ZylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICAgICAgKSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3IsIHRvZ2dsZU1vZGFsLCBkcmF3ZXJTbHVnXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNMaW5rICYmIGVkaXRvclJlZikge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcwJ1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgtMTAwMDBweCwgLTEwMDAwcHgpJ1xuICAgIH1cbiAgfSwgW2lzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzY3JvbGxlckVsZW0gPSBhbmNob3JFbGVtLnBhcmVudEVsZW1lbnRcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKVxuXG4gICAgaWYgKHNjcm9sbGVyRWxlbSAhPSBudWxsKSB7XG4gICAgICBzY3JvbGxlckVsZW0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKVxuXG4gICAgICBpZiAoc2Nyb2xsZXJFbGVtICE9IG51bGwpIHtcbiAgICAgICAgc2Nyb2xsZXJFbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLnBhcmVudEVsZW1lbnQsIGVkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKCh7IGVkaXRvclN0YXRlIH0pID0+IHtcbiAgICAgICAgZWRpdG9yU3RhdGUucmVhZCgoKSA9PiB7XG4gICAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgICAgfSlcbiAgICAgIH0pLFxuXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICAgICAgKSxcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGlmIChpc0xpbmspIHtcbiAgICAgICAgICAgIHNldElzTGluayhmYWxzZSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0hJR0gsXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgc2V0SXNMaW5rLCBpc0xpbmtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgIH0pXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3JdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rLWVkaXRvclwiIHJlZj17ZWRpdG9yUmVmfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rLWlucHV0XCI+XG4gICAgICAgICAgPGEgaHJlZj17bGlua1VybH0gcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAge2xpbmtMYWJlbCAhPSBudWxsICYmIGxpbmtMYWJlbC5sZW5ndGggPiAwID8gbGlua0xhYmVsIDogbGlua1VybH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAge2VkaXRvci5pc0VkaXRhYmxlKCkgJiYgKFxuICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkVkaXQgbGlua1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay1lZGl0XCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGxpbmtcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstdHJhc2hcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbnVsbClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPExpbmtEcmF3ZXJcbiAgICAgICAgZHJhd2VyU2x1Zz17ZHJhd2VyU2x1Z31cbiAgICAgICAgZmllbGRTY2hlbWE9e2ZpZWxkU2NoZW1hfVxuICAgICAgICBoYW5kbGVNb2RhbFN1Ym1pdD17KGZpZWxkczogRmllbGRzLCBkYXRhOiBEYXRhKSA9PiB7XG4gICAgICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuXG4gICAgICAgICAgaWYgKGRhdGE/LmZpZWxkcz8uZG9jPy52YWx1ZSkge1xuICAgICAgICAgICAgZGF0YS5maWVsZHMuZG9jLnZhbHVlID0ge1xuICAgICAgICAgICAgICBpZDogZGF0YS5maWVsZHMuZG9jLnZhbHVlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBuZXdMaW5rUGF5bG9hZDogTGlua1BheWxvYWQgPSBkYXRhIGFzIExpbmtQYXlsb2FkXG5cbiAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG5ld0xpbmtQYXlsb2FkKVxuICAgICAgICB9fVxuICAgICAgICBpbml0aWFsU3RhdGU9e2luaXRpYWxTdGF0ZX1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCIsIkxpbmtFZGl0b3IiLCJjcmVhdGVDb21tYW5kIiwiYW5jaG9yRWxlbSIsImZpZWxkcyIsImN1c3RvbUZpZWxkU2NoZW1hIiwiZWRpdG9yIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImVkaXRvclJlZiIsInVzZVJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwidXNlU3RhdGUiLCJsaW5rTGFiZWwiLCJzZXRMaW5rTGFiZWwiLCJ1dWlkIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNvbmZpZyIsInVzZUNvbmZpZyIsInVzZXIiLCJ1c2VBdXRoIiwiY29kZSIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsImluaXRpYWxTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsImZpZWxkU2NoZW1hIiwiZmllbGRzVW5zYW5pdGl6ZWQiLCJ0cmFuc2Zvcm1FeHRyYUZpZWxkcyIsInZhbGlkUmVsYXRpb25zaGlwcyIsImNvbGxlY3Rpb25zIiwibWFwIiwiYyIsInNsdWciLCJzYW5pdGl6ZUZpZWxkcyIsImNsb3NlTW9kYWwiLCJ0b2dnbGVNb2RhbCIsInVzZU1vZGFsIiwiZWRpdERlcHRoIiwidXNlRWRpdERlcHRoIiwiaXNMaW5rIiwic2V0SXNMaW5rIiwiZHJhd2VyU2x1ZyIsImZvcm1hdERyYXdlclNsdWciLCJkZXB0aCIsInVwZGF0ZUxpbmtFZGl0b3IiLCJ1c2VDYWxsYmFjayIsInNlbGVjdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCJzZWxlY3RlZE5vZGVEb21SZWN0IiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJub2RlIiwiZ2V0U2VsZWN0ZWROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwiZ2V0S2V5IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGlua1BhcmVudCIsIiRmaW5kTWF0Y2hpbmdQYXJlbnQiLCIkaXNMaW5rTm9kZSIsImRhdGEiLCJkb2MiLCJ1bmRlZmluZWQiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsImdldEZpZWxkcyIsInRleHQiLCJnZXRUZXh0Q29udGVudCIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsImlkIiwicmVsYXRlZEZpZWxkIiwiZmluZCIsImNvbGwiLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJyZXBsYWNlIiwicHJlZmVyZW5jZXMiLCJzdGF0ZSIsImJ1aWxkU3RhdGVGcm9tU2NoZW1hIiwib3BlcmF0aW9uIiwiZWRpdG9yRWxlbSIsImN1cnJlbnQiLCJuYXRpdmVTZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJhY3RpdmVFbGVtZW50IiwiZG9jdW1lbnQiLCJyb290RWxlbWVudCIsImdldFJvb3RFbGVtZW50IiwiY29udGFpbnMiLCJhbmNob3JOb2RlIiwiZ2V0UmFuZ2VBdCIsInkiLCJzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IiLCJjbGFzc05hbWUiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJ0aGVuIiwiY2F0Y2giLCJlcnJvciIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwic3R5bGUiLCJvcGFjaXR5IiwidHJhbnNmb3JtIiwic2Nyb2xsZXJFbGVtIiwicGFyZW50RWxlbWVudCIsInVwZGF0ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsImVkaXRvclN0YXRlIiwiU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiQ09NTUFORF9QUklPUklUWV9ISUdIIiwiUmVhY3QiLCJGcmFnbWVudCIsImRpdiIsInJlZiIsImEiLCJocmVmIiwicmVsIiwidGFyZ2V0IiwibGVuZ3RoIiwiaXNFZGl0YWJsZSIsImJ1dHRvbiIsImFyaWEtbGFiZWwiLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFiSW5kZXgiLCJ0eXBlIiwiTGlua0RyYXdlciIsImhhbmRsZU1vZGFsU3VibWl0IiwibmV3TGlua1BheWxvYWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUF5Q2FBLDhCQUE4QjtlQUE5QkE7O0lBSUdDLFVBQVU7ZUFBVkE7Ozt1QkF6Q1M7d0NBQ2lCO3VCQUNTO3lCQVM1QzswQkFDMEI7MkJBUTFCO3dCQUN3Qjs0QkFDQTsrREFDaUM7OEJBQ2pDO3NDQU1RO2lDQUNQO3NEQUNxQjt3QkFDMUI7MEJBQ3NCOzRCQUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTlCLE1BQU1ELGlDQUFxRUUsSUFBQUEsc0JBQWEsRUFDN0Y7QUFHSyxTQUFTRCxXQUFXLEVBQ3pCRSxVQUFVLEVBQ1ZDLFFBQVFDLGlCQUFpQixFQUNzQjtJQUMvQyxNQUFNLENBQUNDLE9BQU8sR0FBR0MsSUFBQUEsaURBQXlCO0lBRTFDLE1BQU1DLFlBQVlDLElBQUFBLGFBQU0sRUFBd0I7SUFDaEQsTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdDLElBQUFBLGVBQVEsRUFBQztJQUN2QyxNQUFNLENBQUNDLFdBQVdDLGFBQWEsR0FBR0YsSUFBQUEsZUFBUSxFQUFDO0lBRTNDLE1BQU0sRUFBRUcsSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRDQUFzQjtJQUV2QyxNQUFNQyxTQUFTQyxJQUFBQSxvQkFBUztJQUV4QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxJQUFBQSxrQkFBTztJQUN4QixNQUFNLEVBQUVDLE1BQU1DLE1BQU0sRUFBRSxHQUFHQyxJQUFBQSxvQkFBUztJQUNsQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7UUFBQztRQUFVO1FBQVU7S0FBVTtJQUVsRSxNQUFNLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdDLElBQUFBLDBCQUFlO0lBRTdDLE1BQU0sQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUdsQixJQUFBQSxlQUFRLEVBQVMsQ0FBQztJQUUxRCxNQUFNLENBQUNtQixZQUFZLEdBQUduQixJQUFBQSxlQUFRLEVBQUM7UUFDN0IsTUFBTW9CLG9CQUFvQkMsSUFBQUEsZ0NBQW9CLEVBQUM1QixtQkFBbUJZLFFBQVFPO1FBQzFFLDhCQUE4QjtRQUM5QixNQUFNVSxxQkFBcUJqQixPQUFPa0IsV0FBVyxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLLEVBQUU7UUFDdEUsTUFBTWxDLFNBQVNtQyxJQUFBQSxzQkFBYyxFQUFDO1lBQzVCdEIsUUFBUUE7WUFDUmIsUUFBUTRCO1lBQ1JFO1FBQ0Y7UUFFQSxPQUFPOUI7SUFDVDtJQUVBLE1BQU0sRUFBRW9DLFVBQVUsRUFBRUMsV0FBVyxFQUFFLEdBQUdDLElBQUFBLGVBQVE7SUFDNUMsTUFBTUMsWUFBWUMsSUFBQUEsdUJBQVk7SUFDOUIsTUFBTSxDQUFDQyxRQUFRQyxVQUFVLEdBQUdsQyxJQUFBQSxlQUFRLEVBQUM7SUFFckMsTUFBTW1DLGFBQWFDLElBQUFBLDBCQUFnQixFQUFDO1FBQ2xDQyxPQUFPTjtRQUNQTCxNQUFNLENBQUMsdUJBQXVCLENBQUMsR0FBR3ZCO0lBQ3BDO0lBRUEsTUFBTW1DLG1CQUFtQkMsSUFBQUEsa0JBQVcsRUFBQztRQUNuQyxNQUFNQyxZQUFZQyxJQUFBQSxzQkFBYTtRQUMvQixJQUFJQyxzQkFBMkM7UUFFL0MsK0ZBQStGO1FBQy9GLElBQUlDLElBQUFBLDBCQUFpQixFQUFDSCxZQUFZO1lBQ2hDLE1BQU1JLE9BQU9DLElBQUFBLGdDQUFlLEVBQUNMO1lBQzdCRSxzQkFBc0JoRCxPQUFPb0QsZUFBZSxDQUFDRixLQUFLRyxNQUFNLEtBQUtDO1lBQzdELE1BQU1DLGFBQXVCQyxJQUFBQSwwQkFBbUIsRUFBQ04sTUFBTU8scUJBQVc7WUFDbEUsSUFBSUYsY0FBYyxNQUFNO2dCQUN0QmYsVUFBVTtnQkFDVm5DLFdBQVc7Z0JBQ1hHLGFBQWE7Z0JBQ2I7WUFDRjtZQUVBLGlCQUFpQjtZQUNqQixNQUFNa0QsT0FBb0I7Z0JBQ3hCNUQsUUFBUTtvQkFDTjZELEtBQUtDO29CQUNMQyxVQUFVRDtvQkFDVkUsUUFBUUY7b0JBQ1JHLEtBQUs7b0JBQ0wsR0FBR1IsV0FBV1MsU0FBUyxFQUFFO2dCQUMzQjtnQkFDQUMsTUFBTVYsV0FBV1csY0FBYztZQUNqQztZQUVBLElBQUlYLFdBQVdTLFNBQVMsSUFBSUgsYUFBYSxVQUFVO2dCQUNqRHhELFdBQVdrRCxXQUFXUyxTQUFTLElBQUlELE9BQU87Z0JBQzFDdkQsYUFBYTtZQUNmLE9BQU87Z0JBQ0wsZ0JBQWdCO2dCQUNoQkgsV0FDRSxDQUFDLG1CQUFtQixFQUFFa0QsV0FBV1MsU0FBUyxJQUFJTCxLQUFLUSxXQUFXLENBQUMsRUFBRVosV0FBV1MsU0FBUyxJQUNqRkwsS0FBS1MsT0FBT0MsR0FBRyxDQUFDO2dCQUd0QixNQUFNQyxlQUFlM0QsT0FBT2tCLFdBQVcsQ0FBQzBDLElBQUksQ0FDMUMsQ0FBQ0MsT0FBU0EsS0FBS3hDLElBQUksS0FBS3VCLFdBQVdTLFNBQVMsSUFBSUwsS0FBS1E7Z0JBRXZELE1BQU1NLFFBQVF0RCxFQUFFLG1CQUFtQjtvQkFDakNzRCxPQUFPQyxJQUFBQSwwQkFBYyxFQUFDSixhQUFhSyxNQUFNLENBQUNDLFFBQVEsRUFBRTFEO2dCQUN0RCxHQUFHMkQsT0FBTyxDQUFDLGFBQWE7Z0JBQ3hCckUsYUFBYWlFO1lBQ2Y7WUFFQSwyRkFBMkY7WUFDM0YsZ0RBQWdEO1lBQ2hELE1BQU1LLGNBQWMsTUFBTXpEO1lBQzFCLE1BQU0wRCxRQUFRLE1BQU1DLElBQUFBLCtCQUFvQixFQUFDO2dCQUN2Q3JFO2dCQUNBK0M7Z0JBQ0FqQztnQkFDQVQ7Z0JBQ0FpRSxXQUFXO2dCQUNYSDtnQkFDQTNEO2dCQUNBTixNQUFNQSxRQUFRK0M7WUFDaEI7WUFDQXBDLGdCQUFnQnVEO1lBQ2hCdkMsVUFBVTtRQUNaO1FBRUEsTUFBTTBDLGFBQWFoRixVQUFVaUYsT0FBTztRQUNwQyxNQUFNQyxrQkFBa0JDLE9BQU9DLFlBQVk7UUFDM0MsTUFBTSxFQUFFQyxhQUFhLEVBQUUsR0FBR0M7UUFFMUIsSUFBSU4sZUFBZSxNQUFNO1lBQ3ZCO1FBQ0Y7UUFFQSxNQUFNTyxjQUFjekYsT0FBTzBGLGNBQWM7UUFFekMsSUFDRTVDLGNBQWMsUUFDZHNDLG9CQUFvQixRQUNwQkssZ0JBQWdCLFFBQ2hCQSxZQUFZRSxRQUFRLENBQUNQLGdCQUFnQlEsVUFBVSxHQUMvQztZQUNBLElBQUksQ0FBQzVDLHFCQUFxQjtnQkFDeEIsc0dBQXNHO2dCQUN0Ryw4REFBOEQ7Z0JBQzlEQSxzQkFBc0JvQyxnQkFBZ0JTLFVBQVUsQ0FBQyxHQUFHdkMscUJBQXFCO1lBQzNFO1lBRUEsSUFBSU4sdUJBQXVCLE1BQU07Z0JBQy9CQSxvQkFBb0I4QyxDQUFDLElBQUk7Z0JBQ3pCQyxJQUFBQSwwRUFBb0MsRUFBQy9DLHFCQUFxQmtDLFlBQVlyRjtZQUN4RTtRQUNGLE9BQU8sSUFBSTBGLGlCQUFpQixRQUFRQSxjQUFjUyxTQUFTLEtBQUssY0FBYztZQUM1RSxJQUFJUCxnQkFBZ0IsTUFBTTtnQkFDeEJNLElBQUFBLDBFQUFvQyxFQUFDLE1BQU1iLFlBQVlyRjtZQUN6RDtZQUNBUSxXQUFXO1lBQ1hHLGFBQWE7UUFDZjtRQUVBLE9BQU87SUFDVCxHQUFHO1FBQUNYO1FBQVlHO1FBQVF5QjtRQUFhZDtRQUFRVTtRQUFtQkw7UUFBUUc7UUFBR047UUFBTUs7S0FBSztJQUV0RitFLElBQUFBLGdCQUFTLEVBQUM7UUFDUixPQUFPQyxJQUFBQSxvQkFBYSxFQUNsQmxHLE9BQU9tRyxlQUFlLENBQ3BCekcsZ0NBQ0EsQ0FBQzBHO1lBQ0NwRyxPQUFPcUcsZUFBZSxDQUFDQyw2QkFBbUIsRUFBRUY7WUFFNUMsc0JBQXNCO1lBQ3RCeEQsbUJBQ0cyRCxJQUFJLENBQUM7Z0JBQ0pwRSxZQUFZTTtZQUNkLEdBQ0MrRCxLQUFLLENBQUMsQ0FBQ0M7Z0JBQ04sTUFBTUE7WUFDUjtZQUNGLE9BQU87UUFDVCxHQUNBQyw2QkFBb0I7SUFHMUIsR0FBRztRQUFDMUc7UUFBUTRDO1FBQWtCVDtRQUFhTTtLQUFXO0lBRXREd0QsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLElBQUksQ0FBQzFELFVBQVVyQyxXQUFXO1lBQ3hCQSxVQUFVaUYsT0FBTyxDQUFDd0IsS0FBSyxDQUFDQyxPQUFPLEdBQUc7WUFDbEMxRyxVQUFVaUYsT0FBTyxDQUFDd0IsS0FBSyxDQUFDRSxTQUFTLEdBQUc7UUFDdEM7SUFDRixHQUFHO1FBQUN0RTtLQUFPO0lBRVgwRCxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsTUFBTWEsZUFBZWpILFdBQVdrSCxhQUFhO1FBRTdDLE1BQU1DLFNBQVM7WUFDYmhILE9BQU9pSCxjQUFjLEdBQUdDLElBQUksQ0FBQztnQkFDM0IsS0FBS3RFO1lBQ1A7UUFDRjtRQUVBeUMsT0FBTzhCLGdCQUFnQixDQUFDLFVBQVVIO1FBRWxDLElBQUlGLGdCQUFnQixNQUFNO1lBQ3hCQSxhQUFhSyxnQkFBZ0IsQ0FBQyxVQUFVSDtRQUMxQztRQUVBLE9BQU87WUFDTDNCLE9BQU8rQixtQkFBbUIsQ0FBQyxVQUFVSjtZQUVyQyxJQUFJRixnQkFBZ0IsTUFBTTtnQkFDeEJBLGFBQWFNLG1CQUFtQixDQUFDLFVBQVVKO1lBQzdDO1FBQ0Y7SUFDRixHQUFHO1FBQUNuSCxXQUFXa0gsYUFBYTtRQUFFL0c7UUFBUTRDO0tBQWlCO0lBRXZEcUQsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU9DLElBQUFBLG9CQUFhLEVBQ2xCbEcsT0FBT3FILHNCQUFzQixDQUFDLENBQUMsRUFBRUMsV0FBVyxFQUFFO1lBQzVDQSxZQUFZSixJQUFJLENBQUM7Z0JBQ2YsS0FBS3RFO1lBQ1A7UUFDRixJQUVBNUMsT0FBT21HLGVBQWUsQ0FDcEJvQixpQ0FBd0IsRUFDeEI7WUFDRSxLQUFLM0U7WUFDTCxPQUFPO1FBQ1QsR0FDQThELDZCQUFvQixHQUV0QjFHLE9BQU9tRyxlQUFlLENBQ3BCcUIsMkJBQWtCLEVBQ2xCO1lBQ0UsSUFBSWpGLFFBQVE7Z0JBQ1ZDLFVBQVU7Z0JBQ1YsT0FBTztZQUNUO1lBQ0EsT0FBTztRQUNULEdBQ0FpRiw4QkFBcUI7SUFHM0IsR0FBRztRQUFDekg7UUFBUTRDO1FBQWtCSjtRQUFXRDtLQUFPO0lBRWhEMEQsSUFBQUEsZ0JBQVMsRUFBQztRQUNSakcsT0FBT2lILGNBQWMsR0FBR0MsSUFBSSxDQUFDO1lBQzNCLEtBQUt0RTtRQUNQO0lBQ0YsR0FBRztRQUFDNUM7UUFBUTRDO0tBQWlCO0lBRTdCLHFCQUNFLDZCQUFDOEUsY0FBSyxDQUFDQyxRQUFRLHNCQUNiLDZCQUFDQztRQUFJNUIsV0FBVTtRQUFjNkIsS0FBSzNIO3FCQUNoQyw2QkFBQzBIO1FBQUk1QixXQUFVO3FCQUNiLDZCQUFDOEI7UUFBRUMsTUFBTTNIO1FBQVM0SCxLQUFJO1FBQXNCQyxRQUFPO09BQ2hEMUgsYUFBYSxRQUFRQSxVQUFVMkgsTUFBTSxHQUFHLElBQUkzSCxZQUFZSCxVQUUxREosT0FBT21JLFVBQVUsb0JBQ2hCLDZCQUFDVCxjQUFLLENBQUNDLFFBQVEsc0JBQ2IsNkJBQUNTO1FBQ0NDLGNBQVc7UUFDWHJDLFdBQVU7UUFDVnNDLFNBQVM7WUFDUG5HLFlBQVlNO1FBQ2Q7UUFDQThGLGFBQWEsQ0FBQ0M7WUFDWkEsTUFBTUMsY0FBYztRQUN0QjtRQUNBQyxVQUFVO1FBQ1ZDLE1BQUs7c0JBRVAsNkJBQUNQO1FBQ0NDLGNBQVc7UUFDWHJDLFdBQVU7UUFDVnNDLFNBQVM7WUFDUHRJLE9BQU9xRyxlQUFlLENBQUNDLDZCQUFtQixFQUFFO1FBQzlDO1FBQ0FpQyxhQUFhLENBQUNDO1lBQ1pBLE1BQU1DLGNBQWM7UUFDdEI7UUFDQUMsVUFBVTtRQUNWQyxNQUFLO3lCQU1mLDZCQUFDQyxrQkFBVTtRQUNUbkcsWUFBWUE7UUFDWmhCLGFBQWFBO1FBQ2JvSCxtQkFBbUIsQ0FBQy9JLFFBQWdCNEQ7WUFDbEN4QixXQUFXTztZQUVYLElBQUlpQixNQUFNNUQsUUFBUTZELEtBQUtTLE9BQU87Z0JBQzVCVixLQUFLNUQsTUFBTSxDQUFDNkQsR0FBRyxDQUFDUyxLQUFLLEdBQUc7b0JBQ3RCQyxJQUFJWCxLQUFLNUQsTUFBTSxDQUFDNkQsR0FBRyxDQUFDUyxLQUFLO2dCQUMzQjtZQUNGO1lBQ0EsTUFBTTBFLGlCQUE4QnBGO1lBRXBDMUQsT0FBT3FHLGVBQWUsQ0FBQ0MsNkJBQW1CLEVBQUV3QztRQUM5QztRQUNBdkgsY0FBY0E7O0FBSXRCIn0=
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBEYXRhLCBGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGZpbmRNYXRjaGluZ1BhcmVudCwgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZyB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9lbGVtZW50cydcbmltcG9ydCB7XG4gIGJ1aWxkU3RhdGVGcm9tU2NoZW1hLFxuICB1c2VBdXRoLFxuICB1c2VDb25maWcsXG4gIHVzZURvY3VtZW50SW5mbyxcbiAgdXNlRWRpdERlcHRoLFxuICB1c2VMb2NhbGUsXG59IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy91dGlsaXRpZXMnXG5pbXBvcnQgeyBzYW5pdGl6ZUZpZWxkcyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgTGlua0ZlYXR1cmVQcm9wcyB9IGZyb20gJy4uLy4uLy4uJ1xuaW1wb3J0IHR5cGUgeyBMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCBUT0dHTEVfTElOS19DT01NQU5EIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgeyB0cmFuc2Zvcm1FeHRyYUZpZWxkcyB9IGZyb20gJy4uL3V0aWxpdGllcydcbmltcG9ydCB7IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCB9IGZyb20gJy4vY29tbWFuZHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHtcbiAgYW5jaG9yRWxlbSxcbiAgZGlzYWJsZWRDb2xsZWN0aW9ucyxcbiAgZW5hYmxlZENvbGxlY3Rpb25zLFxuICBmaWVsZHM6IGN1c3RvbUZpZWxkU2NoZW1hLFxufTogeyBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCB9ICYgTGlua0ZlYXR1cmVQcm9wcyk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcblxuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbbGlua1VybCwgc2V0TGlua1VybF0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2xpbmtMYWJlbCwgc2V0TGlua0xhYmVsXSA9IHVzZVN0YXRlKCcnKVxuXG4gIGNvbnN0IHsgdXVpZCB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCB7IHVzZXIgfSA9IHVzZUF1dGgoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2ZpZWxkcycsICd1cGxvYWQnLCAnZ2VuZXJhbCddKVxuXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG5cbiAgY29uc3QgW2luaXRpYWxTdGF0ZSwgc2V0SW5pdGlhbFN0YXRlXSA9IHVzZVN0YXRlPEZpZWxkcz4oe30pXG5cbiAgY29uc3QgW2ZpZWxkU2NoZW1hXSA9IHVzZVN0YXRlKCgpID0+IHtcbiAgICBjb25zdCBmaWVsZHNVbnNhbml0aXplZCA9IHRyYW5zZm9ybUV4dHJhRmllbGRzKFxuICAgICAgY3VzdG9tRmllbGRTY2hlbWEsXG4gICAgICBjb25maWcsXG4gICAgICBpMThuLFxuICAgICAgZW5hYmxlZENvbGxlY3Rpb25zLFxuICAgICAgZGlzYWJsZWRDb2xsZWN0aW9ucyxcbiAgICApXG4gICAgLy8gU2FuaXRpemUgY3VzdG9tIGZpZWxkcyBoZXJlXG4gICAgY29uc3QgdmFsaWRSZWxhdGlvbnNoaXBzID0gY29uZmlnLmNvbGxlY3Rpb25zLm1hcCgoYykgPT4gYy5zbHVnKSB8fCBbXVxuICAgIGNvbnN0IGZpZWxkcyA9IHNhbml0aXplRmllbGRzKHtcbiAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgZmllbGRzOiBmaWVsZHNVbnNhbml0aXplZCxcbiAgICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGZpZWxkc1xuICB9KVxuXG4gIGNvbnN0IHsgY2xvc2VNb2RhbCwgdG9nZ2xlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgZWRpdERlcHRoID0gdXNlRWRpdERlcHRoKClcbiAgY29uc3QgW2lzTGluaywgc2V0SXNMaW5rXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGRyYXdlclNsdWcgPSBmb3JtYXREcmF3ZXJTbHVnKHtcbiAgICBkZXB0aDogZWRpdERlcHRoLFxuICAgIHNsdWc6IGBsZXhpY2FsLXJpY2gtdGV4dC1saW5rLWAgKyB1dWlkLFxuICB9KVxuXG4gIGNvbnN0IHVwZGF0ZUxpbmtFZGl0b3IgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgbGV0IHNlbGVjdGVkTm9kZURvbVJlY3Q6IERPTVJlY3QgfCB1bmRlZmluZWQgPSBudWxsXG5cbiAgICAvLyBIYW5kbGUgdGhlIGRhdGEgZGlzcGxheWVkIGluIHRoZSBmbG9hdGluZyBsaW5rIGVkaXRvciAmIGRyYXdlciB3aGVuIHlvdSBjbGljayBvbiBhIGxpbmsgbm9kZVxuICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICBjb25zdCBub2RlID0gZ2V0U2VsZWN0ZWROb2RlKHNlbGVjdGlvbilcbiAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5vZGUuZ2V0S2V5KCkpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbGlua1BhcmVudDogTGlua05vZGUgPSAkZmluZE1hdGNoaW5nUGFyZW50KG5vZGUsICRpc0xpbmtOb2RlKSBhcyBMaW5rTm9kZVxuICAgICAgaWYgKGxpbmtQYXJlbnQgPT0gbnVsbCkge1xuICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgIHNldExpbmtVcmwoJycpXG4gICAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIEluaXRpYWwgc3RhdGU6XG4gICAgICBjb25zdCBkYXRhOiBMaW5rUGF5bG9hZCA9IHtcbiAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgZG9jOiB1bmRlZmluZWQsXG4gICAgICAgICAgbGlua1R5cGU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdUYWI6IHVuZGVmaW5lZCxcbiAgICAgICAgICB1cmw6ICcnLFxuICAgICAgICAgIC4uLmxpbmtQYXJlbnQuZ2V0RmllbGRzKCksXG4gICAgICAgIH0sXG4gICAgICAgIHRleHQ6IGxpbmtQYXJlbnQuZ2V0VGV4dENvbnRlbnQoKSxcbiAgICAgIH1cblxuICAgICAgaWYgKGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICBzZXRMaW5rVXJsKGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LnVybCA/PyAnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaW50ZXJuYWwgbGlua1xuICAgICAgICBzZXRMaW5rVXJsKFxuICAgICAgICAgIGAvYWRtaW4vY29sbGVjdGlvbnMvJHtsaW5rUGFyZW50LmdldEZpZWxkcygpPy5kb2M/LnJlbGF0aW9uVG99LyR7bGlua1BhcmVudC5nZXRGaWVsZHMoKVxuICAgICAgICAgICAgPy5kb2M/LnZhbHVlPy5pZH1gLFxuICAgICAgICApXG5cbiAgICAgICAgY29uc3QgcmVsYXRlZEZpZWxkID0gY29uZmlnLmNvbGxlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgKGNvbGwpID0+IGNvbGwuc2x1ZyA9PT0gbGlua1BhcmVudC5nZXRGaWVsZHMoKT8uZG9jPy5yZWxhdGlvblRvLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdCgnZmllbGRzOmxpbmtlZFRvJywge1xuICAgICAgICAgIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihyZWxhdGVkRmllbGQubGFiZWxzLnNpbmd1bGFyLCBpMThuKSxcbiAgICAgICAgfSkucmVwbGFjZSgvPFtePl0qPj8vZywgJycpXG4gICAgICAgIHNldExpbmtMYWJlbChsYWJlbClcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IGluaXRpYWwgc3RhdGUgb2YgdGhlIGRyYXdlci4gVGhpcyB3aWxsIGJhc2ljYWxseSBwcmUtZmlsbCB0aGUgZHJhd2VyIGZpZWxkcyB3aXRoIHRoZVxuICAgICAgLy8gdmFsdWVzIHNhdmVkIGluIHRoZSBsaW5rIG5vZGUgeW91IGNsaWNrZWQgb24uXG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICBjb25maWcsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGZpZWxkU2NoZW1hLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG9wZXJhdGlvbjogJ2NyZWF0ZScsXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyOiB1c2VyID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pXG4gICAgICBzZXRJbml0aWFsU3RhdGUoc3RhdGUpXG4gICAgICBzZXRJc0xpbmsodHJ1ZSlcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3JFbGVtID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICBjb25zdCBuYXRpdmVTZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICBjb25zdCB7IGFjdGl2ZUVsZW1lbnQgfSA9IGRvY3VtZW50XG5cbiAgICBpZiAoZWRpdG9yRWxlbSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICBuYXRpdmVTZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50ICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudC5jb250YWlucyhuYXRpdmVTZWxlY3Rpb24uYW5jaG9yTm9kZSlcbiAgICApIHtcbiAgICAgIGlmICghc2VsZWN0ZWROb2RlRG9tUmVjdCkge1xuICAgICAgICAvLyBHZXQgdGhlIERPTSByZWN0IG9mIHRoZSBzZWxlY3RlZCBub2RlIHVzaW5nIHRoZSBuYXRpdmUgc2VsZWN0aW9uLiBUaGlzIHNvbWV0aW1lcyBwcm9kdWNlcyB0aGUgd3JvbmdcbiAgICAgICAgLy8gcmVzdWx0LCB3aGljaCBpcyB3aHkgd2UgdXNlIGxleGljYWwncyBzZWxlY3Rpb24gcHJlZmVyYWJseS5cbiAgICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IG5hdGl2ZVNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3RlZE5vZGVEb21SZWN0ICE9IG51bGwpIHtcbiAgICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdC55ICs9IDQwXG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcihzZWxlY3RlZE5vZGVEb21SZWN0LCBlZGl0b3JFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYWN0aXZlRWxlbWVudCA9PSBudWxsIHx8IGFjdGl2ZUVsZW1lbnQuY2xhc3NOYW1lICE9PSAnbGluay1pbnB1dCcpIHtcbiAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IobnVsbCwgZWRpdG9yRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIH1cbiAgICAgIHNldExpbmtVcmwoJycpXG4gICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfSwgW2FuY2hvckVsZW0sIGVkaXRvciwgZmllbGRTY2hlbWEsIGNvbmZpZywgZ2V0RG9jUHJlZmVyZW5jZXMsIGxvY2FsZSwgdCwgdXNlciwgaTE4bl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgdG9nZ2xlTW9kYWwsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpbmsgJiYgZWRpdG9yUmVmKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC0xMDAwMHB4LCAtMTAwMDBweCknXG4gICAgfVxuICB9LCBbaXNMaW5rXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gICAgY29uc3QgdXBkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICBpZiAoc2Nyb2xsZXJFbGVtICE9IG51bGwpIHtcbiAgICAgIHNjcm9sbGVyRWxlbS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FuY2hvckVsZW0ucGFyZW50RWxlbWVudCwgZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKHsgZWRpdG9yU3RhdGUgfSkgPT4ge1xuICAgICAgICBlZGl0b3JTdGF0ZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICB7ZWRpdG9yLmlzRWRpdGFibGUoKSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLWVkaXRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgbGlua1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay10cmFzaFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBudWxsKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TGlua0RyYXdlclxuICAgICAgICBkcmF3ZXJTbHVnPXtkcmF3ZXJTbHVnfVxuICAgICAgICBmaWVsZFNjaGVtYT17ZmllbGRTY2hlbWF9XG4gICAgICAgIGhhbmRsZU1vZGFsU3VibWl0PXsoZmllbGRzOiBGaWVsZHMsIGRhdGE6IERhdGEpID0+IHtcbiAgICAgICAgICBjbG9zZU1vZGFsKGRyYXdlclNsdWcpXG5cbiAgICAgICAgICBpZiAoZGF0YT8uZmllbGRzPy5kb2M/LnZhbHVlKSB7XG4gICAgICAgICAgICBkYXRhLmZpZWxkcy5kb2MudmFsdWUgPSB7XG4gICAgICAgICAgICAgIGlkOiBkYXRhLmZpZWxkcy5kb2MudmFsdWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG5ld0xpbmtQYXlsb2FkOiBMaW5rUGF5bG9hZCA9IGRhdGEgYXMgTGlua1BheWxvYWRcblxuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbmV3TGlua1BheWxvYWQpXG4gICAgICAgIH19XG4gICAgICAgIGluaXRpYWxTdGF0ZT17aW5pdGlhbFN0YXRlfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsiTGlua0VkaXRvciIsImFuY2hvckVsZW0iLCJkaXNhYmxlZENvbGxlY3Rpb25zIiwiZW5hYmxlZENvbGxlY3Rpb25zIiwiZmllbGRzIiwiY3VzdG9tRmllbGRTY2hlbWEiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiZWRpdG9yUmVmIiwidXNlUmVmIiwibGlua1VybCIsInNldExpbmtVcmwiLCJ1c2VTdGF0ZSIsImxpbmtMYWJlbCIsInNldExpbmtMYWJlbCIsInV1aWQiLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiY29uZmlnIiwidXNlQ29uZmlnIiwidXNlciIsInVzZUF1dGgiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImdldERvY1ByZWZlcmVuY2VzIiwidXNlRG9jdW1lbnRJbmZvIiwiaW5pdGlhbFN0YXRlIiwic2V0SW5pdGlhbFN0YXRlIiwiZmllbGRTY2hlbWEiLCJmaWVsZHNVbnNhbml0aXplZCIsInRyYW5zZm9ybUV4dHJhRmllbGRzIiwidmFsaWRSZWxhdGlvbnNoaXBzIiwiY29sbGVjdGlvbnMiLCJtYXAiLCJjIiwic2x1ZyIsInNhbml0aXplRmllbGRzIiwiY2xvc2VNb2RhbCIsInRvZ2dsZU1vZGFsIiwidXNlTW9kYWwiLCJlZGl0RGVwdGgiLCJ1c2VFZGl0RGVwdGgiLCJpc0xpbmsiLCJzZXRJc0xpbmsiLCJkcmF3ZXJTbHVnIiwiZm9ybWF0RHJhd2VyU2x1ZyIsImRlcHRoIiwidXBkYXRlTGlua0VkaXRvciIsInVzZUNhbGxiYWNrIiwic2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIm5vZGUiLCJnZXRTZWxlY3RlZE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJnZXRLZXkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsaW5rUGFyZW50IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIiRpc0xpbmtOb2RlIiwiZGF0YSIsImRvYyIsInVuZGVmaW5lZCIsImxpbmtUeXBlIiwibmV3VGFiIiwidXJsIiwiZ2V0RmllbGRzIiwidGV4dCIsImdldFRleHRDb250ZW50IiwicmVsYXRpb25UbyIsInZhbHVlIiwiaWQiLCJyZWxhdGVkRmllbGQiLCJmaW5kIiwiY29sbCIsImxhYmVsIiwiZ2V0VHJhbnNsYXRpb24iLCJsYWJlbHMiLCJzaW5ndWxhciIsInJlcGxhY2UiLCJwcmVmZXJlbmNlcyIsInN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJvcGVyYXRpb24iLCJlZGl0b3JFbGVtIiwiY3VycmVudCIsIm5hdGl2ZVNlbGVjdGlvbiIsIndpbmRvdyIsImdldFNlbGVjdGlvbiIsImFjdGl2ZUVsZW1lbnQiLCJkb2N1bWVudCIsInJvb3RFbGVtZW50IiwiZ2V0Um9vdEVsZW1lbnQiLCJjb250YWlucyIsImFuY2hvck5vZGUiLCJnZXRSYW5nZUF0IiwieSIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciIsImNsYXNzTmFtZSIsInVzZUVmZmVjdCIsIm1lcmdlUmVnaXN0ZXIiLCJyZWdpc3RlckNvbW1hbmQiLCJUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQiLCJwYXlsb2FkIiwiZGlzcGF0Y2hDb21tYW5kIiwiVE9HR0xFX0xJTktfQ09NTUFORCIsInRoZW4iLCJjYXRjaCIsImVycm9yIiwiQ09NTUFORF9QUklPUklUWV9MT1ciLCJzdHlsZSIsIm9wYWNpdHkiLCJ0cmFuc2Zvcm0iLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwidXBkYXRlIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiZWRpdG9yU3RhdGUiLCJTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQiLCJLRVlfRVNDQVBFX0NPTU1BTkQiLCJDT01NQU5EX1BSSU9SSVRZX0hJR0giLCJSZWFjdCIsIkZyYWdtZW50IiwiZGl2IiwicmVmIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJsZW5ndGgiLCJpc0VkaXRhYmxlIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsInR5cGUiLCJMaW5rRHJhd2VyIiwiaGFuZGxlTW9kYWxTdWJtaXQiLCJuZXdMaW5rUGF5bG9hZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQXdDZ0JBOzs7ZUFBQUE7Ozt1QkFyQ1M7d0NBQ2lCO3VCQUNTO3lCQVE1QzswQkFDMEI7MkJBUTFCO3dCQUN3Qjs0QkFDQTsrREFDaUM7OEJBQ2pDO3NDQU1RO2lDQUNQO3NEQUNxQjt3QkFDMUI7MEJBQ3NCOzRCQUNaOzBCQUNVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhDLFNBQVNBLFdBQVcsRUFDekJDLFVBQVUsRUFDVkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLFFBQVFDLGlCQUFpQixFQUNzQjtJQUMvQyxNQUFNLENBQUNDLE9BQU8sR0FBR0MsSUFBQUEsaURBQXlCO0lBRTFDLE1BQU1DLFlBQVlDLElBQUFBLGFBQU0sRUFBd0I7SUFDaEQsTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdDLElBQUFBLGVBQVEsRUFBQztJQUN2QyxNQUFNLENBQUNDLFdBQVdDLGFBQWEsR0FBR0YsSUFBQUEsZUFBUSxFQUFDO0lBRTNDLE1BQU0sRUFBRUcsSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRDQUFzQjtJQUV2QyxNQUFNQyxTQUFTQyxJQUFBQSxvQkFBUztJQUV4QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxJQUFBQSxrQkFBTztJQUN4QixNQUFNLEVBQUVDLE1BQU1DLE1BQU0sRUFBRSxHQUFHQyxJQUFBQSxvQkFBUztJQUNsQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7UUFBQztRQUFVO1FBQVU7S0FBVTtJQUVsRSxNQUFNLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdDLElBQUFBLDBCQUFlO0lBRTdDLE1BQU0sQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUdsQixJQUFBQSxlQUFRLEVBQVMsQ0FBQztJQUUxRCxNQUFNLENBQUNtQixZQUFZLEdBQUduQixJQUFBQSxlQUFRLEVBQUM7UUFDN0IsTUFBTW9CLG9CQUFvQkMsSUFBQUEsZ0NBQW9CLEVBQzVDNUIsbUJBQ0FZLFFBQ0FPLE1BQ0FyQixvQkFDQUQ7UUFFRiw4QkFBOEI7UUFDOUIsTUFBTWdDLHFCQUFxQmpCLE9BQU9rQixXQUFXLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJLEtBQUssRUFBRTtRQUN0RSxNQUFNbEMsU0FBU21DLElBQUFBLHNCQUFjLEVBQUM7WUFDNUJ0QixRQUFRQTtZQUNSYixRQUFRNEI7WUFDUkU7UUFDRjtRQUVBLE9BQU85QjtJQUNUO0lBRUEsTUFBTSxFQUFFb0MsVUFBVSxFQUFFQyxXQUFXLEVBQUUsR0FBR0MsSUFBQUEsZUFBUTtJQUM1QyxNQUFNQyxZQUFZQyxJQUFBQSx1QkFBWTtJQUM5QixNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR2xDLElBQUFBLGVBQVEsRUFBQztJQUVyQyxNQUFNbUMsYUFBYUMsSUFBQUEsMEJBQWdCLEVBQUM7UUFDbENDLE9BQU9OO1FBQ1BMLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHdkI7SUFDcEM7SUFFQSxNQUFNbUMsbUJBQW1CQyxJQUFBQSxrQkFBVyxFQUFDO1FBQ25DLE1BQU1DLFlBQVlDLElBQUFBLHNCQUFhO1FBQy9CLElBQUlDLHNCQUEyQztRQUUvQywrRkFBK0Y7UUFDL0YsSUFBSUMsSUFBQUEsMEJBQWlCLEVBQUNILFlBQVk7WUFDaEMsTUFBTUksT0FBT0MsSUFBQUEsZ0NBQWUsRUFBQ0w7WUFDN0JFLHNCQUFzQmhELE9BQU9vRCxlQUFlLENBQUNGLEtBQUtHLE1BQU0sS0FBS0M7WUFDN0QsTUFBTUMsYUFBdUJDLElBQUFBLDBCQUFtQixFQUFDTixNQUFNTyxxQkFBVztZQUNsRSxJQUFJRixjQUFjLE1BQU07Z0JBQ3RCZixVQUFVO2dCQUNWbkMsV0FBVztnQkFDWEcsYUFBYTtnQkFDYjtZQUNGO1lBRUEsaUJBQWlCO1lBQ2pCLE1BQU1rRCxPQUFvQjtnQkFDeEI1RCxRQUFRO29CQUNONkQsS0FBS0M7b0JBQ0xDLFVBQVVEO29CQUNWRSxRQUFRRjtvQkFDUkcsS0FBSztvQkFDTCxHQUFHUixXQUFXUyxTQUFTLEVBQUU7Z0JBQzNCO2dCQUNBQyxNQUFNVixXQUFXVyxjQUFjO1lBQ2pDO1lBRUEsSUFBSVgsV0FBV1MsU0FBUyxJQUFJSCxhQUFhLFVBQVU7Z0JBQ2pEeEQsV0FBV2tELFdBQVdTLFNBQVMsSUFBSUQsT0FBTztnQkFDMUN2RCxhQUFhO1lBQ2YsT0FBTztnQkFDTCxnQkFBZ0I7Z0JBQ2hCSCxXQUNFLENBQUMsbUJBQW1CLEVBQUVrRCxXQUFXUyxTQUFTLElBQUlMLEtBQUtRLFdBQVcsQ0FBQyxFQUFFWixXQUFXUyxTQUFTLElBQ2pGTCxLQUFLUyxPQUFPQyxHQUFHLENBQUM7Z0JBR3RCLE1BQU1DLGVBQWUzRCxPQUFPa0IsV0FBVyxDQUFDMEMsSUFBSSxDQUMxQyxDQUFDQyxPQUFTQSxLQUFLeEMsSUFBSSxLQUFLdUIsV0FBV1MsU0FBUyxJQUFJTCxLQUFLUTtnQkFFdkQsTUFBTU0sUUFBUXRELEVBQUUsbUJBQW1CO29CQUNqQ3NELE9BQU9DLElBQUFBLDBCQUFjLEVBQUNKLGFBQWFLLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFMUQ7Z0JBQ3RELEdBQUcyRCxPQUFPLENBQUMsYUFBYTtnQkFDeEJyRSxhQUFhaUU7WUFDZjtZQUVBLDJGQUEyRjtZQUMzRixnREFBZ0Q7WUFDaEQsTUFBTUssY0FBYyxNQUFNekQ7WUFDMUIsTUFBTTBELFFBQVEsTUFBTUMsSUFBQUEsK0JBQW9CLEVBQUM7Z0JBQ3ZDckU7Z0JBQ0ErQztnQkFDQWpDO2dCQUNBVDtnQkFDQWlFLFdBQVc7Z0JBQ1hIO2dCQUNBM0Q7Z0JBQ0FOLE1BQU1BLFFBQVErQztZQUNoQjtZQUNBcEMsZ0JBQWdCdUQ7WUFDaEJ2QyxVQUFVO1FBQ1o7UUFFQSxNQUFNMEMsYUFBYWhGLFVBQVVpRixPQUFPO1FBQ3BDLE1BQU1DLGtCQUFrQkMsT0FBT0MsWUFBWTtRQUMzQyxNQUFNLEVBQUVDLGFBQWEsRUFBRSxHQUFHQztRQUUxQixJQUFJTixlQUFlLE1BQU07WUFDdkI7UUFDRjtRQUVBLE1BQU1PLGNBQWN6RixPQUFPMEYsY0FBYztRQUV6QyxJQUNFNUMsY0FBYyxRQUNkc0Msb0JBQW9CLFFBQ3BCSyxnQkFBZ0IsUUFDaEJBLFlBQVlFLFFBQVEsQ0FBQ1AsZ0JBQWdCUSxVQUFVLEdBQy9DO1lBQ0EsSUFBSSxDQUFDNUMscUJBQXFCO2dCQUN4QixzR0FBc0c7Z0JBQ3RHLDhEQUE4RDtnQkFDOURBLHNCQUFzQm9DLGdCQUFnQlMsVUFBVSxDQUFDLEdBQUd2QyxxQkFBcUI7WUFDM0U7WUFFQSxJQUFJTix1QkFBdUIsTUFBTTtnQkFDL0JBLG9CQUFvQjhDLENBQUMsSUFBSTtnQkFDekJDLElBQUFBLDBFQUFvQyxFQUFDL0MscUJBQXFCa0MsWUFBWXZGO1lBQ3hFO1FBQ0YsT0FBTyxJQUFJNEYsaUJBQWlCLFFBQVFBLGNBQWNTLFNBQVMsS0FBSyxjQUFjO1lBQzVFLElBQUlQLGdCQUFnQixNQUFNO2dCQUN4Qk0sSUFBQUEsMEVBQW9DLEVBQUMsTUFBTWIsWUFBWXZGO1lBQ3pEO1lBQ0FVLFdBQVc7WUFDWEcsYUFBYTtRQUNmO1FBRUEsT0FBTztJQUNULEdBQUc7UUFBQ2I7UUFBWUs7UUFBUXlCO1FBQWFkO1FBQVFVO1FBQW1CTDtRQUFRRztRQUFHTjtRQUFNSztLQUFLO0lBRXRGK0UsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU9DLElBQUFBLG9CQUFhLEVBQ2xCbEcsT0FBT21HLGVBQWUsQ0FDcEJDLHdDQUE4QixFQUM5QixDQUFDQztZQUNDckcsT0FBT3NHLGVBQWUsQ0FBQ0MsNkJBQW1CLEVBQUVGO1lBRTVDLHNCQUFzQjtZQUN0QnpELG1CQUNHNEQsSUFBSSxDQUFDO2dCQUNKckUsWUFBWU07WUFDZCxHQUNDZ0UsS0FBSyxDQUFDLENBQUNDO2dCQUNOLE1BQU1BO1lBQ1I7WUFDRixPQUFPO1FBQ1QsR0FDQUMsNkJBQW9CO0lBRzFCLEdBQUc7UUFBQzNHO1FBQVE0QztRQUFrQlQ7UUFBYU07S0FBVztJQUV0RHdELElBQUFBLGdCQUFTLEVBQUM7UUFDUixJQUFJLENBQUMxRCxVQUFVckMsV0FBVztZQUN4QkEsVUFBVWlGLE9BQU8sQ0FBQ3lCLEtBQUssQ0FBQ0MsT0FBTyxHQUFHO1lBQ2xDM0csVUFBVWlGLE9BQU8sQ0FBQ3lCLEtBQUssQ0FBQ0UsU0FBUyxHQUFHO1FBQ3RDO0lBQ0YsR0FBRztRQUFDdkU7S0FBTztJQUVYMEQsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE1BQU1jLGVBQWVwSCxXQUFXcUgsYUFBYTtRQUU3QyxNQUFNQyxTQUFTO1lBQ2JqSCxPQUFPa0gsY0FBYyxHQUFHQyxJQUFJLENBQUM7Z0JBQzNCLEtBQUt2RTtZQUNQO1FBQ0Y7UUFFQXlDLE9BQU8rQixnQkFBZ0IsQ0FBQyxVQUFVSDtRQUVsQyxJQUFJRixnQkFBZ0IsTUFBTTtZQUN4QkEsYUFBYUssZ0JBQWdCLENBQUMsVUFBVUg7UUFDMUM7UUFFQSxPQUFPO1lBQ0w1QixPQUFPZ0MsbUJBQW1CLENBQUMsVUFBVUo7WUFFckMsSUFBSUYsZ0JBQWdCLE1BQU07Z0JBQ3hCQSxhQUFhTSxtQkFBbUIsQ0FBQyxVQUFVSjtZQUM3QztRQUNGO0lBQ0YsR0FBRztRQUFDdEgsV0FBV3FILGFBQWE7UUFBRWhIO1FBQVE0QztLQUFpQjtJQUV2RHFELElBQUFBLGdCQUFTLEVBQUM7UUFDUixPQUFPQyxJQUFBQSxvQkFBYSxFQUNsQmxHLE9BQU9zSCxzQkFBc0IsQ0FBQyxDQUFDLEVBQUVDLFdBQVcsRUFBRTtZQUM1Q0EsWUFBWUosSUFBSSxDQUFDO2dCQUNmLEtBQUt2RTtZQUNQO1FBQ0YsSUFFQTVDLE9BQU9tRyxlQUFlLENBQ3BCcUIsaUNBQXdCLEVBQ3hCO1lBQ0UsS0FBSzVFO1lBQ0wsT0FBTztRQUNULEdBQ0ErRCw2QkFBb0IsR0FFdEIzRyxPQUFPbUcsZUFBZSxDQUNwQnNCLDJCQUFrQixFQUNsQjtZQUNFLElBQUlsRixRQUFRO2dCQUNWQyxVQUFVO2dCQUNWLE9BQU87WUFDVDtZQUNBLE9BQU87UUFDVCxHQUNBa0YsOEJBQXFCO0lBRzNCLEdBQUc7UUFBQzFIO1FBQVE0QztRQUFrQko7UUFBV0Q7S0FBTztJQUVoRDBELElBQUFBLGdCQUFTLEVBQUM7UUFDUmpHLE9BQU9rSCxjQUFjLEdBQUdDLElBQUksQ0FBQztZQUMzQixLQUFLdkU7UUFDUDtJQUNGLEdBQUc7UUFBQzVDO1FBQVE0QztLQUFpQjtJQUU3QixxQkFDRSw2QkFBQytFLGNBQUssQ0FBQ0MsUUFBUSxzQkFDYiw2QkFBQ0M7UUFBSTdCLFdBQVU7UUFBYzhCLEtBQUs1SDtxQkFDaEMsNkJBQUMySDtRQUFJN0IsV0FBVTtxQkFDYiw2QkFBQytCO1FBQUVDLE1BQU01SDtRQUFTNkgsS0FBSTtRQUFzQkMsUUFBTztPQUNoRDNILGFBQWEsUUFBUUEsVUFBVTRILE1BQU0sR0FBRyxJQUFJNUgsWUFBWUgsVUFFMURKLE9BQU9vSSxVQUFVLG9CQUNoQiw2QkFBQ1QsY0FBSyxDQUFDQyxRQUFRLHNCQUNiLDZCQUFDUztRQUNDQyxjQUFXO1FBQ1h0QyxXQUFVO1FBQ1Z1QyxTQUFTO1lBQ1BwRyxZQUFZTTtRQUNkO1FBQ0ErRixhQUFhLENBQUNDO1lBQ1pBLE1BQU1DLGNBQWM7UUFDdEI7UUFDQUMsVUFBVTtRQUNWQyxNQUFLO3NCQUVQLDZCQUFDUDtRQUNDQyxjQUFXO1FBQ1h0QyxXQUFVO1FBQ1Z1QyxTQUFTO1lBQ1B2SSxPQUFPc0csZUFBZSxDQUFDQyw2QkFBbUIsRUFBRTtRQUM5QztRQUNBaUMsYUFBYSxDQUFDQztZQUNaQSxNQUFNQyxjQUFjO1FBQ3RCO1FBQ0FDLFVBQVU7UUFDVkMsTUFBSzt5QkFNZiw2QkFBQ0Msa0JBQVU7UUFDVHBHLFlBQVlBO1FBQ1poQixhQUFhQTtRQUNicUgsbUJBQW1CLENBQUNoSixRQUFnQjREO1lBQ2xDeEIsV0FBV087WUFFWCxJQUFJaUIsTUFBTTVELFFBQVE2RCxLQUFLUyxPQUFPO2dCQUM1QlYsS0FBSzVELE1BQU0sQ0FBQzZELEdBQUcsQ0FBQ1MsS0FBSyxHQUFHO29CQUN0QkMsSUFBSVgsS0FBSzVELE1BQU0sQ0FBQzZELEdBQUcsQ0FBQ1MsS0FBSztnQkFDM0I7WUFDRjtZQUNBLE1BQU0yRSxpQkFBOEJyRjtZQUVwQzFELE9BQU9zRyxlQUFlLENBQUNDLDZCQUFtQixFQUFFd0M7UUFDOUM7UUFDQXhILGNBQWNBOztBQUl0QiJ9
@@ -2,6 +2,6 @@ import * as React from 'react';
2
2
  import type { LinkFeatureProps } from '../..';
3
3
  import './index.scss';
4
4
  export declare const FloatingLinkEditorPlugin: React.FC<{
5
- anchorElem?: HTMLElement;
5
+ anchorElem: HTMLElement;
6
6
  } & LinkFeatureProps>;
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/Link/plugins/floatingLinkEditor/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAC7C;IACE,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,gBAAgB,CAGrB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/Link/plugins/floatingLinkEditor/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAC7C;IACE,UAAU,EAAE,WAAW,CAAA;CACxB,GAAG,gBAAgB,CAKrB,CAAA"}