@payloadcms/richtext-lexical 3.0.0-alpha.34 → 3.0.0-alpha.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cell/index.d.ts.map +1 -1
- package/dist/cell/index.js +3 -2
- package/dist/field/features/align/feature.client.d.ts.map +1 -1
- package/dist/field/features/align/feature.client.js +3 -2
- package/dist/field/features/blockquote/feature.client.d.ts.map +1 -1
- package/dist/field/features/blockquote/feature.client.js +7 -4
- package/dist/field/features/blockquote/feature.server.d.ts.map +1 -1
- package/dist/field/features/blockquote/feature.server.js +3 -2
- package/dist/field/features/blockquote/markdownTransformer.d.ts.map +1 -1
- package/dist/field/features/blockquote/markdownTransformer.js +5 -3
- package/dist/field/features/blocks/component/BlockContent.d.ts.map +1 -1
- package/dist/field/features/blocks/component/BlockContent.js +5 -3
- package/dist/field/features/blocks/drawer/index.d.ts +1 -1
- package/dist/field/features/blocks/drawer/index.d.ts.map +1 -1
- package/dist/field/features/blocks/drawer/index.js +7 -4
- package/dist/field/features/blocks/nodes/BlocksNode.d.ts +3 -1
- package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/field/features/blocks/nodes/BlocksNode.js +3 -2
- package/dist/field/features/blocks/plugin/commands.d.ts.map +1 -1
- package/dist/field/features/blocks/plugin/commands.js +3 -2
- package/dist/field/features/blocks/plugin/index.d.ts.map +1 -1
- package/dist/field/features/blocks/plugin/index.js +7 -4
- package/dist/field/features/debug/testrecorder/plugin/index.d.ts.map +1 -1
- package/dist/field/features/debug/testrecorder/plugin/index.js +5 -3
- package/dist/field/features/debug/treeview/plugin/index.d.ts.map +1 -1
- package/dist/field/features/debug/treeview/plugin/index.js +5 -3
- package/dist/field/features/format/bold/feature.client.d.ts.map +1 -1
- package/dist/field/features/format/bold/feature.client.js +3 -2
- package/dist/field/features/format/inlinecode/feature.client.d.ts.map +1 -1
- package/dist/field/features/format/inlinecode/feature.client.js +3 -2
- package/dist/field/features/format/italic/feature.client.d.ts.map +1 -1
- package/dist/field/features/format/italic/feature.client.js +3 -2
- package/dist/field/features/format/strikethrough/feature.client.d.ts.map +1 -1
- package/dist/field/features/format/strikethrough/feature.client.js +3 -2
- package/dist/field/features/format/subscript/feature.client.d.ts.map +1 -1
- package/dist/field/features/format/subscript/feature.client.js +3 -2
- package/dist/field/features/format/superscript/feature.client.d.ts.map +1 -1
- package/dist/field/features/format/superscript/feature.client.js +3 -2
- package/dist/field/features/format/underline/feature.client.d.ts.map +1 -1
- package/dist/field/features/format/underline/feature.client.js +3 -2
- package/dist/field/features/heading/feature.client.d.ts.map +1 -1
- package/dist/field/features/heading/feature.client.js +7 -5
- package/dist/field/features/heading/feature.server.d.ts.map +1 -1
- package/dist/field/features/heading/feature.server.js +3 -2
- package/dist/field/features/heading/markdownTransformer.d.ts.map +1 -1
- package/dist/field/features/heading/markdownTransformer.js +3 -2
- package/dist/field/features/indent/feature.client.d.ts.map +1 -1
- package/dist/field/features/indent/feature.client.js +3 -2
- package/dist/field/features/link/feature.client.d.ts.map +1 -1
- package/dist/field/features/link/feature.client.js +5 -3
- package/dist/field/features/link/nodes/AutoLinkNode.d.ts +1 -1
- package/dist/field/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
- package/dist/field/features/link/nodes/AutoLinkNode.js +3 -2
- package/dist/field/features/link/nodes/LinkNode.d.ts +5 -2
- package/dist/field/features/link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/field/features/link/nodes/LinkNode.js +5 -3
- package/dist/field/features/link/plugins/autoLink/index.d.ts.map +1 -1
- package/dist/field/features/link/plugins/autoLink/index.js +8 -5
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +3 -2
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +9 -5
- package/dist/field/features/link/plugins/link/index.js +7 -4
- package/dist/field/features/lists/checklist/feature.client.d.ts.map +1 -1
- package/dist/field/features/lists/checklist/feature.client.js +3 -2
- package/dist/field/features/lists/checklist/feature.server.d.ts.map +1 -1
- package/dist/field/features/lists/checklist/feature.server.js +3 -2
- package/dist/field/features/lists/checklist/markdownTransformers.d.ts.map +1 -1
- package/dist/field/features/lists/checklist/markdownTransformers.js +3 -2
- package/dist/field/features/lists/checklist/plugin/index.d.ts.map +1 -1
- package/dist/field/features/lists/checklist/plugin/index.js +3 -2
- package/dist/field/features/lists/common/markdown.d.ts.map +1 -1
- package/dist/field/features/lists/common/markdown.js +3 -2
- package/dist/field/features/lists/htmlConverter.d.ts.map +1 -1
- package/dist/field/features/lists/htmlConverter.js +3 -2
- package/dist/field/features/lists/orderedlist/feature.client.js +3 -2
- package/dist/field/features/lists/orderedlist/feature.server.d.ts.map +1 -1
- package/dist/field/features/lists/orderedlist/feature.server.js +3 -2
- package/dist/field/features/lists/orderedlist/markdownTransformer.d.ts.map +1 -1
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +3 -2
- package/dist/field/features/lists/plugin/index.d.ts.map +1 -1
- package/dist/field/features/lists/plugin/index.js +3 -2
- package/dist/field/features/lists/unorderedlist/feature.client.d.ts.map +1 -1
- package/dist/field/features/lists/unorderedlist/feature.client.js +3 -2
- package/dist/field/features/lists/unorderedlist/feature.server.d.ts.map +1 -1
- package/dist/field/features/lists/unorderedlist/feature.server.js +3 -2
- package/dist/field/features/lists/unorderedlist/markdownTransformer.d.ts.map +1 -1
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +3 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +4 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +5 -3
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +4 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +5 -3
- package/dist/field/features/paragraph/feature.client.d.ts.map +1 -1
- package/dist/field/features/paragraph/feature.client.js +5 -3
- package/dist/field/features/relationship/drawer/commands.d.ts.map +1 -1
- package/dist/field/features/relationship/drawer/commands.js +3 -2
- package/dist/field/features/relationship/drawer/index.d.ts.map +1 -1
- package/dist/field/features/relationship/drawer/index.js +5 -3
- package/dist/field/features/relationship/nodes/RelationshipNode.d.ts +4 -1
- package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/field/features/relationship/nodes/RelationshipNode.js +3 -2
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts +1 -1
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts.map +1 -1
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +5 -3
- package/dist/field/features/relationship/plugins/index.d.ts +1 -1
- package/dist/field/features/relationship/plugins/index.d.ts.map +1 -1
- package/dist/field/features/relationship/plugins/index.js +7 -4
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +7 -4
- package/dist/field/features/upload/component/index.d.ts.map +1 -1
- package/dist/field/features/upload/component/index.js +5 -3
- package/dist/field/features/upload/drawer/commands.d.ts.map +1 -1
- package/dist/field/features/upload/drawer/commands.js +3 -2
- package/dist/field/features/upload/drawer/index.d.ts.map +1 -1
- package/dist/field/features/upload/drawer/index.js +5 -3
- package/dist/field/features/upload/nodes/UploadNode.d.ts +4 -2
- package/dist/field/features/upload/nodes/UploadNode.d.ts.map +1 -1
- package/dist/field/features/upload/nodes/UploadNode.js +5 -3
- package/dist/field/features/upload/plugin/index.d.ts +1 -1
- package/dist/field/features/upload/plugin/index.d.ts.map +1 -1
- package/dist/field/features/upload/plugin/index.js +7 -4
- package/dist/field/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/field/lexical/LexicalEditor.js +11 -6
- package/dist/field/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/field/lexical/LexicalProvider.js +3 -2
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +7 -4
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +7 -4
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +7 -4
- package/dist/field/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +3 -2
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +7 -4
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -4
- package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/index.js +3 -2
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +5 -4
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +3 -2
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +5 -3
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +1 -1
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +3 -2
- package/dist/field/lexical/ui/ContentEditable.d.ts.map +1 -1
- package/dist/field/lexical/ui/ContentEditable.js +3 -2
- package/dist/field/lexical/utils/getSelectedNode.d.ts +1 -1
- package/dist/field/lexical/utils/getSelectedNode.d.ts.map +1 -1
- package/dist/field/lexical/utils/getSelectedNode.js +3 -2
- package/package.json +7 -7
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import
|
|
2
|
+
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js';
|
|
3
|
+
const { useLexicalComposerContext } = lexicalComposerContextImport;
|
|
4
|
+
import lexicalUtilsImport from '@lexical/utils';
|
|
5
|
+
const { mergeRegister } = lexicalUtilsImport;
|
|
6
|
+
import lexicalImport from 'lexical';
|
|
7
|
+
const { $getSelection, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, createCommand } = lexicalImport;
|
|
5
8
|
import { useCallback, useEffect, useState } from 'react';
|
|
6
9
|
import * as React from 'react';
|
|
7
10
|
import { LexicalMenu, useMenuAnchorRef } from './LexicalMenu.js';
|
|
@@ -201,4 +204,4 @@ export function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groups
|
|
|
201
204
|
});
|
|
202
205
|
}
|
|
203
206
|
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQuanMnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9IGZyb20gJy4uL3VzZU1lbnVUcmlnZ2VyTWF0Y2guanMnXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51LmpzJ1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcy5qcydcblxuaW1wb3J0IHsgTGV4aWNhbE1lbnUsIHVzZU1lbnVBbmNob3JSZWYgfSBmcm9tICcuL0xleGljYWxNZW51LmpzJ1xuXG5leHBvcnQgY29uc3QgUFVOQ1RVQVRJT04gPSAnXFxcXC4sXFxcXCtcXFxcKlxcXFw/XFxcXCRcXFxcQFxcXFx8I3t9XFxcXChcXFxcKVxcXFxeXFxcXC1cXFxcW1xcXFxdXFxcXFxcXFwvISVcXCdcIn49PD5fOjsnXG5cbmZ1bmN0aW9uIGdldFRleHRVcFRvQW5jaG9yKHNlbGVjdGlvbjogUmFuZ2VTZWxlY3Rpb24pOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhbmNob3JPZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIHJldHVybiBhbmNob3JOb2RlLmdldFRleHRDb250ZW50KCkuc2xpY2UoMCwgYW5jaG9yT2Zmc2V0KVxufVxuXG5mdW5jdGlvbiB0cnlUb1Bvc2l0aW9uUmFuZ2UobGVhZE9mZnNldDogbnVtYmVyLCByYW5nZTogUmFuZ2UsIGVkaXRvcldpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRvbVNlbGVjdGlvbiA9IGVkaXRvcldpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICBpZiAoZG9tU2VsZWN0aW9uID09PSBudWxsIHx8ICFkb21TZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBhbmNob3JOb2RlID0gZG9tU2VsZWN0aW9uLmFuY2hvck5vZGVcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBsZWFkT2Zmc2V0XG4gIGNvbnN0IGVuZE9mZnNldCA9IGRvbVNlbGVjdGlvbi5hbmNob3JPZmZzZXRcblxuICBpZiAoYW5jaG9yTm9kZSA9PSBudWxsIHx8IGVuZE9mZnNldCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB0cnkge1xuICAgIHJhbmdlLnNldFN0YXJ0KGFuY2hvck5vZGUsIHN0YXJ0T2Zmc2V0KVxuICAgIC8vIGlmIGVuZE9mZnNldCBpcyAwLCBwb3NpdGlvbmluZyB0aGUgcmFuZ2UgZm9yIHdoZW4geW91IGNsaWNrIHRoZSBwbHVzIGJ1dHRvbiB0byBvcGVuIHRoZSBzbGFzaCBtZW51IHdpbGwgZmlhbFxuICAgIHJhbmdlLnNldEVuZChhbmNob3JOb2RlLCBlbmRPZmZzZXQgPiAxID8gZW5kT2Zmc2V0IDogMSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGdldFF1ZXJ5VGV4dEZvclNlYXJjaChlZGl0b3I6IExleGljYWxFZGl0b3IpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IHRleHQgPSBudWxsXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRleHQgPSBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb24pXG4gIH0pXG4gIHJldHVybiB0ZXh0XG59XG5cbmZ1bmN0aW9uIGlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3I6IExleGljYWxFZGl0b3IsIG9mZnNldDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIGlmIChvZmZzZXQgIT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gICAgICBjb25zdCBwcmV2U2libGluZyA9IGFuY2hvck5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgIHJldHVybiAkaXNUZXh0Tm9kZShwcmV2U2libGluZykgJiYgcHJldlNpYmxpbmcuaXNUZXh0RW50aXR5KClcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICBpZiAoUmVhY3Quc3RhcnRUcmFuc2l0aW9uKSB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKGNhbGxiYWNrKVxuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKClcbiAgfVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmV4cG9ydCB7IHVzZUR5bmFtaWNQb3NpdGlvbmluZyB9IGZyb20gJy4vTGV4aWNhbE1lbnUuanMnXG5cbmV4cG9ydCB0eXBlIFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyA9IHtcbiAgYW5jaG9yQ2xhc3NOYW1lPzogc3RyaW5nXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGdyb3Vwc1dpdGhPcHRpb25zOiBBcnJheTxTbGFzaE1lbnVHcm91cD5cbiAgbWVudVJlbmRlckZuOiBNZW51UmVuZGVyRm5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgb25PcGVuPzogKHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uKSA9PiB2b2lkXG4gIG9uUXVlcnlDaGFuZ2U6IChtYXRjaGluZ1N0cmluZzogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuICBvblNlbGVjdE9wdGlvbjogKFxuICAgIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uLFxuICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5OiBUZXh0Tm9kZSB8IG51bGwsXG4gICAgY2xvc2VNZW51OiAoKSA9PiB2b2lkLFxuICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICkgPT4gdm9pZFxuICB0cmlnZ2VyRm46IFRyaWdnZXJGblxufVxuXG5leHBvcnQgY29uc3QgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8e1xuICBub2RlOiBQYXJhZ3JhcGhOb2RlXG59PiA9IGNyZWF0ZUNvbW1hbmQoJ0VOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQnKVxuXG5leHBvcnQgZnVuY3Rpb24gTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4oe1xuICBhbmNob3JDbGFzc05hbWUsXG4gIGFuY2hvckVsZW0sXG4gIGdyb3Vwc1dpdGhPcHRpb25zLFxuICBtZW51UmVuZGVyRm4sXG4gIG9uQ2xvc2UsXG4gIG9uT3BlbixcbiAgb25RdWVyeUNoYW5nZSxcbiAgb25TZWxlY3RPcHRpb24sXG4gIHRyaWdnZXJGbixcbn06IFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSA9IHVzZVN0YXRlPE1lbnVSZXNvbHV0aW9uIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlZiA9IHVzZU1lbnVBbmNob3JSZWYoYW5jaG9yRWxlbSwgcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbiwgYW5jaG9yQ2xhc3NOYW1lKVxuXG4gIGNvbnN0IGNsb3NlVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFJlc29sdXRpb24obnVsbClcbiAgICBpZiAob25DbG9zZSAhPSBudWxsICYmIHJlc29sdXRpb24gIT09IG51bGwpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH1cbiAgfSwgW29uQ2xvc2UsIHJlc29sdXRpb25dKVxuXG4gIGNvbnN0IG9wZW5UeXBlYWhlYWQgPSB1c2VDYWxsYmFjayhcbiAgICAocmVzOiBNZW51UmVzb2x1dGlvbikgPT4ge1xuICAgICAgc2V0UmVzb2x1dGlvbihyZXMpXG4gICAgICBpZiAob25PcGVuICE9IG51bGwgJiYgcmVzb2x1dGlvbiA9PT0gbnVsbCkge1xuICAgICAgICBvbk9wZW4ocmVzKVxuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3BlbiwgcmVzb2x1dGlvbl0sXG4gIClcblxuICAvLyBUaGlzIGlzIG1haW5seSB1c2VkIGZvciB0aGUgQWRkQmxvY2tIYW5kbGVQbHVnaW4sIHNvIHRoYXQgdGhlIHNsYXNoIG1lbnUgY2FuIGJlIG9wZW5lZCBmcm9tIHRoZXJlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5ELFxuICAgICAgICAoeyBub2RlIH0pID0+IHtcbiAgICAgICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoOiBNZW51VGV4dE1hdGNoID0ge1xuICAgICAgICAgICAgICBsZWFkT2Zmc2V0OiAwLFxuICAgICAgICAgICAgICBtYXRjaGluZ1N0cmluZzogJycsXG4gICAgICAgICAgICAgIHJlcGxhY2VhYmxlU3RyaW5nOiAnJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCAmJiAhaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvciwgbWF0Y2gubGVhZE9mZnNldCkpIHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0b3JXaW5kb3cgPSBlZGl0b3IuX3dpbmRvdyA/PyB3aW5kb3dcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG5cbiAgICAgICAgICAgICAgICBjb25zdCBpc1JhbmdlUG9zaXRpb25lZCA9IHRyeVRvUG9zaXRpb25SYW5nZShtYXRjaC5sZWFkT2Zmc2V0LCByYW5nZSwgZWRpdG9yV2luZG93KVxuICAgICAgICAgICAgICAgIGlmIChpc1JhbmdlUG9zaXRpb25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIG9wZW5UeXBlYWhlYWQoe1xuICAgICAgICAgICAgICAgICAgICAgIGdldFJlY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICAgICAgKSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZWRpdG9yV2luZG93LmRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICAgIGNvbnN0IHRleHQgPSBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yKVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSB8fFxuICAgICAgICAgIHRleHQgPT09IG51bGwgfHxcbiAgICAgICAgICByYW5nZSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXRjaCA9IHRyaWdnZXJGbih7IGVkaXRvciwgcXVlcnk6IHRleHQgfSlcbiAgICAgICAgb25RdWVyeUNoYW5nZShtYXRjaCA/IG1hdGNoLm1hdGNoaW5nU3RyaW5nIDogbnVsbClcblxuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlbW92ZVVwZGF0ZUxpc3RlbmVyID0gZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIodXBkYXRlTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVtb3ZlVXBkYXRlTGlzdGVuZXIoKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdHJpZ2dlckZuLCBvblF1ZXJ5Q2hhbmdlLCByZXNvbHV0aW9uLCBjbG9zZVR5cGVhaGVhZCwgb3BlblR5cGVhaGVhZF0pXG5cbiAgcmV0dXJuIHJlc29sdXRpb24gPT09IG51bGwgfHwgZWRpdG9yID09PSBudWxsID8gbnVsbCA6IChcbiAgICA8TGV4aWNhbE1lbnVcbiAgICAgIGFuY2hvckVsZW1lbnRSZWY9e2FuY2hvckVsZW1lbnRSZWZ9XG4gICAgICBjbG9zZT17Y2xvc2VUeXBlYWhlYWR9XG4gICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHNXaXRoT3B0aW9uc31cbiAgICAgIG1lbnVSZW5kZXJGbj17bWVudVJlbmRlckZufVxuICAgICAgb25TZWxlY3RPcHRpb249e29uU2VsZWN0T3B0aW9ufVxuICAgICAgcmVzb2x1dGlvbj17cmVzb2x1dGlvbn1cbiAgICAgIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgeyBNZW51UmVuZGVyRm4sIE1lbnVSZXNvbHV0aW9uLCBNZW51VGV4dE1hdGNoLCBUcmlnZ2VyRm4gfVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJtZXJnZVJlZ2lzdGVyIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiJGlzVGV4dE5vZGUiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsImNyZWF0ZUNvbW1hbmQiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiUmVhY3QiLCJMZXhpY2FsTWVudSIsInVzZU1lbnVBbmNob3JSZWYiLCJQVU5DVFVBVElPTiIsImdldFRleHRVcFRvQW5jaG9yIiwic2VsZWN0aW9uIiwiYW5jaG9yIiwidHlwZSIsImFuY2hvck5vZGUiLCJnZXROb2RlIiwiaXNTaW1wbGVUZXh0IiwiYW5jaG9yT2Zmc2V0Iiwib2Zmc2V0IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsInRyeVRvUG9zaXRpb25SYW5nZSIsImxlYWRPZmZzZXQiLCJyYW5nZSIsImVkaXRvcldpbmRvdyIsImRvbVNlbGVjdGlvbiIsImdldFNlbGVjdGlvbiIsImlzQ29sbGFwc2VkIiwic3RhcnRPZmZzZXQiLCJlbmRPZmZzZXQiLCJzZXRTdGFydCIsInNldEVuZCIsImVycm9yIiwiZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoIiwiZWRpdG9yIiwidGV4dCIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeSIsInByZXZTaWJsaW5nIiwiZ2V0UHJldmlvdXNTaWJsaW5nIiwiaXNUZXh0RW50aXR5Iiwic3RhcnRUcmFuc2l0aW9uIiwiY2FsbGJhY2siLCJnZXRTY3JvbGxQYXJlbnQiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwiYW5jaG9yQ2xhc3NOYW1lIiwiYW5jaG9yRWxlbSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25DbG9zZSIsIm9uT3BlbiIsIm9uUXVlcnlDaGFuZ2UiLCJvblNlbGVjdE9wdGlvbiIsInRyaWdnZXJGbiIsInJlc29sdXRpb24iLCJzZXRSZXNvbHV0aW9uIiwiYW5jaG9yRWxlbWVudFJlZiIsImNsb3NlVHlwZWFoZWFkIiwib3BlblR5cGVhaGVhZCIsInJlcyIsInJlZ2lzdGVyQ29tbWFuZCIsIm5vZGUiLCJtYXRjaCIsIm1hdGNoaW5nU3RyaW5nIiwicmVwbGFjZWFibGVTdHJpbmciLCJfd2luZG93Iiwid2luZG93IiwiY3JlYXRlUmFuZ2UiLCJpc1JhbmdlUG9zaXRpb25lZCIsImdldFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ1cGRhdGVMaXN0ZW5lciIsInF1ZXJ5IiwicmVtb3ZlVXBkYXRlTGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBO0FBU0EsU0FBU0EseUJBQXlCLFFBQVEsMkNBQTBDO0FBQ3BGLFNBQVNDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDOUMsU0FDRUMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLFdBQVcsRUFDWEMsb0JBQW9CLEVBQ3BCQyxhQUFhLFFBQ1IsVUFBUztBQUNoQixTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDeEQsWUFBWUMsV0FBVyxRQUFPO0FBTTlCLFNBQVNDLFdBQVcsRUFBRUMsZ0JBQWdCLFFBQVEsbUJBQWtCO0FBRWhFLE9BQU8sTUFBTUMsY0FBYywrREFBOEQ7QUFFekYsU0FBU0Msa0JBQWtCQyxTQUF5QjtJQUNsRCxNQUFNQyxTQUFTRCxVQUFVQyxNQUFNO0lBQy9CLElBQUlBLE9BQU9DLElBQUksS0FBSyxRQUFRO1FBQzFCLE9BQU87SUFDVDtJQUNBLE1BQU1DLGFBQWFGLE9BQU9HLE9BQU87SUFDakMsSUFBSSxDQUFDRCxXQUFXRSxZQUFZLElBQUk7UUFDOUIsT0FBTztJQUNUO0lBQ0EsTUFBTUMsZUFBZUwsT0FBT00sTUFBTTtJQUNsQyxPQUFPSixXQUFXSyxjQUFjLEdBQUdDLEtBQUssQ0FBQyxHQUFHSDtBQUM5QztBQUVBLFNBQVNJLG1CQUFtQkMsVUFBa0IsRUFBRUMsS0FBWSxFQUFFQyxZQUFvQjtJQUNoRixNQUFNQyxlQUFlRCxhQUFhRSxZQUFZO0lBQzlDLElBQUlELGlCQUFp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
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IGxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmNvbnN0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9ID0gbGV4aWNhbENvbXBvc2VyQ29udGV4dEltcG9ydFxuXG5pbXBvcnQgbGV4aWNhbFV0aWxzSW1wb3J0IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuY29uc3QgeyBtZXJnZVJlZ2lzdGVyIH0gPSBsZXhpY2FsVXRpbHNJbXBvcnRcblxuaW1wb3J0IGxleGljYWxJbXBvcnQgZnJvbSAnbGV4aWNhbCdcbmNvbnN0IHsgJGdldFNlbGVjdGlvbiwgJGlzUmFuZ2VTZWxlY3Rpb24sICRpc1RleHROb2RlLCBDT01NQU5EX1BSSU9SSVRZX0xPVywgY3JlYXRlQ29tbWFuZCB9ID1cbiAgbGV4aWNhbEltcG9ydFxuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgTWVudVRleHRNYXRjaCwgVHJpZ2dlckZuIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaC5qcydcbmltcG9ydCB0eXBlIHsgTWVudVJlbmRlckZuLCBNZW51UmVzb2x1dGlvbiB9IGZyb20gJy4vTGV4aWNhbE1lbnUuanMnXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyBMZXhpY2FsTWVudSwgdXNlTWVudUFuY2hvclJlZiB9IGZyb20gJy4vTGV4aWNhbE1lbnUuanMnXG5cbmV4cG9ydCBjb25zdCBQVU5DVFVBVElPTiA9ICdcXFxcLixcXFxcK1xcXFwqXFxcXD9cXFxcJFxcXFxAXFxcXHwje31cXFxcKFxcXFwpXFxcXF5cXFxcLVxcXFxbXFxcXF1cXFxcXFxcXC8hJVxcJ1wifj08Pl86OydcblxuZnVuY3Rpb24gZ2V0VGV4dFVwVG9BbmNob3Ioc2VsZWN0aW9uOiBSYW5nZVNlbGVjdGlvbik6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCBhbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yXG4gIGlmIChhbmNob3IudHlwZSAhPT0gJ3RleHQnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhbmNob3JOb2RlID0gYW5jaG9yLmdldE5vZGUoKVxuICBpZiAoIWFuY2hvck5vZGUuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGFuY2hvck9mZnNldCA9IGFuY2hvci5vZmZzZXRcbiAgcmV0dXJuIGFuY2hvck5vZGUuZ2V0VGV4dENvbnRlbnQoKS5zbGljZSgwLCBhbmNob3JPZmZzZXQpXG59XG5cbmZ1bmN0aW9uIHRyeVRvUG9zaXRpb25SYW5nZShsZWFkT2Zmc2V0OiBudW1iZXIsIHJhbmdlOiBSYW5nZSwgZWRpdG9yV2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcbiAgY29uc3QgZG9tU2VsZWN0aW9uID0gZWRpdG9yV2luZG93LmdldFNlbGVjdGlvbigpXG4gIGlmIChkb21TZWxlY3Rpb24gPT09IG51bGwgfHwgIWRvbVNlbGVjdGlvbi5pc0NvbGxhcHNlZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IGFuY2hvck5vZGUgPSBkb21TZWxlY3Rpb24uYW5jaG9yTm9kZVxuICBjb25zdCBzdGFydE9mZnNldCA9IGxlYWRPZmZzZXRcbiAgY29uc3QgZW5kT2Zmc2V0ID0gZG9tU2VsZWN0aW9uLmFuY2hvck9mZnNldFxuXG4gIGlmIChhbmNob3JOb2RlID09IG51bGwgfHwgZW5kT2Zmc2V0ID09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmFuZ2Uuc2V0U3RhcnQoYW5jaG9yTm9kZSwgc3RhcnRPZmZzZXQpXG4gICAgLy8gaWYgZW5kT2Zmc2V0IGlzIDAsIHBvc2l0aW9uaW5nIHRoZSByYW5nZSBmb3Igd2hlbiB5b3UgY2xpY2sgdGhlIHBsdXMgYnV0dG9uIHRvIG9wZW4gdGhlIHNsYXNoIG1lbnUgd2lsbCBmaWFsXG4gICAgcmFuZ2Uuc2V0RW5kKGFuY2hvck5vZGUsIGVuZE9mZnNldCA+IDEgPyBlbmRPZmZzZXQgOiAxKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoKGVkaXRvcjogTGV4aWNhbEVkaXRvcik6IG51bGwgfCBzdHJpbmcge1xuICBsZXQgdGV4dCA9IG51bGxcbiAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGV4dCA9IGdldFRleHRVcFRvQW5jaG9yKHNlbGVjdGlvbilcbiAgfSlcbiAgcmV0dXJuIHRleHRcbn1cblxuZnVuY3Rpb24gaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvcjogTGV4aWNhbEVkaXRvciwgb2Zmc2V0OiBudW1iZXIpOiBib29sZWFuIHtcbiAgaWYgKG9mZnNldCAhPT0gMCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICAgICAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgICAgIGNvbnN0IHByZXZTaWJsaW5nID0gYW5jaG9yTm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICAgICAgcmV0dXJuICRpc1RleHROb2RlKHByZXZTaWJsaW5nKSAmJiBwcmV2U2libGluZy5pc1RleHRFbnRpdHkoKVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSlcbn1cblxuZnVuY3Rpb24gc3RhcnRUcmFuc2l0aW9uKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gIGlmIChSZWFjdC5zdGFydFRyYW5zaXRpb24pIHtcbiAgICBSZWFjdC5zdGFydFRyYW5zaXRpb24oY2FsbGJhY2spXG4gIH0gZWxzZSB7XG4gICAgY2FsbGJhY2soKVxuICB9XG59XG5cbi8vIEdvdCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MjU0MzkwOC8yMDEzNTgwXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgaW5jbHVkZUhpZGRlbjogYm9vbGVhbixcbik6IEhUTUxCb2R5RWxlbWVudCB8IEhUTUxFbGVtZW50IHtcbiAgbGV0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KVxuICBjb25zdCBleGNsdWRlU3RhdGljUGFyZW50ID0gc3R5bGUucG9zaXRpb24gPT09ICdhYnNvbHV0ZSdcbiAgY29uc3Qgb3ZlcmZsb3dSZWdleCA9IGluY2x1ZGVIaWRkZW4gPyAvKGF1dG98c2Nyb2xsfGhpZGRlbikvIDogLyhhdXRvfHNjcm9sbCkvXG4gIGlmIChzdHlsZS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gIH1cbiAgZm9yIChsZXQgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50OyAocGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQpOyApIHtcbiAgICBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUocGFyZW50KVxuICAgIGlmIChleGNsdWRlU3RhdGljUGFyZW50ICYmIHN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKG92ZXJmbG93UmVnZXgudGVzdChzdHlsZS5vdmVyZmxvdyArIHN0eWxlLm92ZXJmbG93WSArIHN0eWxlLm92ZXJmbG93WCkpIHtcbiAgICAgIHJldHVybiBwYXJlbnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbn1cblxuZXhwb3J0IHsgdXNlRHluYW1pY1Bvc2l0aW9uaW5nIH0gZnJvbSAnLi9MZXhpY2FsTWVudS5qcydcblxuZXhwb3J0IHR5cGUgVHlwZWFoZWFkTWVudVBsdWdpblByb3BzID0ge1xuICBhbmNob3JDbGFzc05hbWU/OiBzdHJpbmdcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZ3JvdXBzV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPlxuICBtZW51UmVuZGVyRm46IE1lbnVSZW5kZXJGblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICBvbk9wZW4/OiAocmVzb2x1dGlvbjogTWVudVJlc29sdXRpb24pID0+IHZvaWRcbiAgb25RdWVyeUNoYW5nZTogKG1hdGNoaW5nU3RyaW5nOiBudWxsIHwgc3RyaW5nKSA9PiB2b2lkXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHRyaWdnZXJGbjogVHJpZ2dlckZuXG59XG5cbmV4cG9ydCBjb25zdCBFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EOiBMZXhpY2FsQ29tbWFuZDx7XG4gIG5vZGU6IFBhcmFncmFwaE5vZGVcbn0+ID0gY3JlYXRlQ29tbWFuZCgnRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbih7XG4gIGFuY2hvckNsYXNzTmFtZSxcbiAgYW5jaG9yRWxlbSxcbiAgZ3JvdXBzV2l0aE9wdGlvbnMsXG4gIG1lbnVSZW5kZXJGbixcbiAgb25DbG9zZSxcbiAgb25PcGVuLFxuICBvblF1ZXJ5Q2hhbmdlLFxuICBvblNlbGVjdE9wdGlvbixcbiAgdHJpZ2dlckZuLFxufTogVHlwZWFoZWFkTWVudVBsdWdpblByb3BzKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3Jlc29sdXRpb24sIHNldFJlc29sdXRpb25dID0gdXNlU3RhdGU8TWVudVJlc29sdXRpb24gfCBudWxsPihudWxsKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlTWVudUFuY2hvclJlZihhbmNob3JFbGVtLCByZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uLCBhbmNob3JDbGFzc05hbWUpXG5cbiAgY29uc3QgY2xvc2VUeXBlYWhlYWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UmVzb2x1dGlvbihudWxsKVxuICAgIGlmIChvbkNsb3NlICE9IG51bGwgJiYgcmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgb25DbG9zZSgpXG4gICAgfVxuICB9LCBbb25DbG9zZSwgcmVzb2x1dGlvbl0pXG5cbiAgY29uc3Qgb3BlblR5cGVhaGVhZCA9IHVzZUNhbGxiYWNrKFxuICAgIChyZXM6IE1lbnVSZXNvbHV0aW9uKSA9PiB7XG4gICAgICBzZXRSZXNvbHV0aW9uKHJlcylcbiAgICAgIGlmIChvbk9wZW4gIT0gbnVsbCAmJiByZXNvbHV0aW9uID09PSBudWxsKSB7XG4gICAgICAgIG9uT3BlbihyZXMpXG4gICAgICB9XG4gICAgfSxcbiAgICBbb25PcGVuLCByZXNvbHV0aW9uXSxcbiAgKVxuXG4gIC8vIFRoaXMgaXMgbWFpbmx5IHVzZWQgZm9yIHRoZSBBZGRCbG9ja0hhbmRsZVBsdWdpbiwgc28gdGhhdCB0aGUgc2xhc2ggbWVudSBjYW4gYmUgb3BlbmVkIGZyb20gdGhlcmVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQsXG4gICAgICAgICh7IG5vZGUgfSkgPT4ge1xuICAgICAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2g6IE1lbnVUZXh0TWF0Y2ggPSB7XG4gICAgICAgICAgICAgIGxlYWRPZmZzZXQ6IDAsXG4gICAgICAgICAgICAgIG1hdGNoaW5nU3RyaW5nOiAnJyxcbiAgICAgICAgICAgICAgcmVwbGFjZWFibGVTdHJpbmc6ICcnLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsICYmICFpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yLCBtYXRjaC5sZWFkT2Zmc2V0KSkge1xuICAgICAgICAgICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRvcldpbmRvdyA9IGVkaXRvci5fd2luZG93ID8/IHdpbmRvd1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gZWRpdG9yV2luZG93LmRvY3VtZW50LmNyZWF0ZVJhbmdlKClcblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzUmFuZ2VQb3NpdGlvbmVkID0gdHJ5VG9Qb3NpdGlvblJhbmdlKG1hdGNoLmxlYWRPZmZzZXQsIHJhbmdlLCBlZGl0b3JXaW5kb3cpXG4gICAgICAgICAgICAgICAgaWYgKGlzUmFuZ2VQb3NpdGlvbmVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgb3BlblR5cGVhaGVhZCh7XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0UmVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgb3BlblR5cGVhaGVhZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3JXaW5kb3cgPSBlZGl0b3IuX3dpbmRvdyA/PyB3aW5kb3dcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBlZGl0b3JXaW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgY29uc3QgdGV4dCA9IGdldFF1ZXJ5VGV4dEZvclNlYXJjaChlZGl0b3IpXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8XG4gICAgICAgICAgIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCgpIHx8XG4gICAgICAgICAgdGV4dCA9PT0gbnVsbCB8fFxuICAgICAgICAgIHJhbmdlID09PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIGNsb3NlVHlwZWFoZWFkKClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gdHJpZ2dlckZuKHsgZWRpdG9yLCBxdWVyeTogdGV4dCB9KVxuICAgICAgICBvblF1ZXJ5Q2hhbmdlKG1hdGNoID8gbWF0Y2gubWF0Y2hpbmdTdHJpbmcgOiBudWxsKVxuXG4gICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCAmJiAhaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvciwgbWF0Y2gubGVhZE9mZnNldCkpIHtcbiAgICAgICAgICBjb25zdCBpc1JhbmdlUG9zaXRpb25lZCA9IHRyeVRvUG9zaXRpb25SYW5nZShtYXRjaC5sZWFkT2Zmc2V0LCByYW5nZSwgZWRpdG9yV2luZG93KVxuICAgICAgICAgIGlmIChpc1JhbmdlUG9zaXRpb25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+XG4gICAgICAgICAgICAgIG9wZW5UeXBlYWhlYWQoe1xuICAgICAgICAgICAgICAgIGdldFJlY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNsb3NlVHlwZWFoZWFkKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3ZlVXBkYXRlTGlzdGVuZXIgPSBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcih1cGRhdGVMaXN0ZW5lcilcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByZW1vdmVVcGRhdGVMaXN0ZW5lcigpXG4gICAgfVxuICB9LCBbZWRpdG9yLCB0cmlnZ2VyRm4sIG9uUXVlcnlDaGFuZ2UsIHJlc29sdXRpb24sIGNsb3NlVHlwZWFoZWFkLCBvcGVuVHlwZWFoZWFkXSlcblxuICByZXR1cm4gcmVzb2x1dGlvbiA9PT0gbnVsbCB8fCBlZGl0b3IgPT09IG51bGwgPyBudWxsIDogKFxuICAgIDxMZXhpY2FsTWVudVxuICAgICAgYW5jaG9yRWxlbWVudFJlZj17YW5jaG9yRWxlbWVudFJlZn1cbiAgICAgIGNsb3NlPXtjbG9zZVR5cGVhaGVhZH1cbiAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgZ3JvdXBzV2l0aE9wdGlvbnM9e2dyb3Vwc1dpdGhPcHRpb25zfVxuICAgICAgbWVudVJlbmRlckZuPXttZW51UmVuZGVyRm59XG4gICAgICBvblNlbGVjdE9wdGlvbj17b25TZWxlY3RPcHRpb259XG4gICAgICByZXNvbHV0aW9uPXtyZXNvbHV0aW9ufVxuICAgICAgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24sIE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9XG4iXSwibmFtZXMiOlsibGV4aWNhbENvbXBvc2VyQ29udGV4dEltcG9ydCIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJsZXhpY2FsVXRpbHNJbXBvcnQiLCJtZXJnZVJlZ2lzdGVyIiwibGV4aWNhbEltcG9ydCIsIiRnZXRTZWxlY3Rpb24iLCIkaXNSYW5nZVNlbGVjdGlvbiIsIiRpc1RleHROb2RlIiwiQ09NTUFORF9QUklPUklUWV9MT1ciLCJjcmVhdGVDb21tYW5kIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlJlYWN0IiwiTGV4aWNhbE1lbnUiLCJ1c2VNZW51QW5jaG9yUmVmIiwiUFVOQ1RVQVRJT04iLCJnZXRUZXh0VXBUb0FuY2hvciIsInNlbGVjdGlvbiIsImFuY2hvciIsInR5cGUiLCJhbmNob3JOb2RlIiwiZ2V0Tm9kZSIsImlzU2ltcGxlVGV4dCIsImFuY2hvck9mZnNldCIsIm9mZnNldCIsImdldFRleHRDb250ZW50Iiwic2xpY2UiLCJ0cnlUb1Bvc2l0aW9uUmFuZ2UiLCJsZWFkT2Zmc2V0IiwicmFuZ2UiLCJlZGl0b3JXaW5kb3ciLCJkb21TZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJpc0NvbGxhcHNlZCIsInN0YXJ0T2Zmc2V0IiwiZW5kT2Zmc2V0Iiwic2V0U3RhcnQiLCJzZXRFbmQiLCJlcnJvciIsImdldFF1ZXJ5VGV4dEZvclNlYXJjaCIsImVkaXRvciIsInRleHQiLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkiLCJwcmV2U2libGluZyIsImdldFByZXZpb3VzU2libGluZyIsImlzVGV4dEVudGl0eSIsInN0YXJ0VHJhbnNpdGlvbiIsImNhbGxiYWNrIiwiZ2V0U2Nyb2xsUGFyZW50IiwiZWxlbWVudCIsImluY2x1ZGVIaWRkZW4iLCJzdHlsZSIsImdldENvbXB1dGVkU3R5bGUiLCJleGNsdWRlU3RhdGljUGFyZW50IiwicG9zaXRpb24iLCJvdmVyZmxvd1JlZ2V4IiwiZG9jdW1lbnQiLCJib2R5IiwicGFyZW50IiwicGFyZW50RWxlbWVudCIsInRlc3QiLCJvdmVyZmxvdyIsIm92ZXJmbG93WSIsIm92ZXJmbG93WCIsInVzZUR5bmFtaWNQb3NpdGlvbmluZyIsIkVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsImFuY2hvckNsYXNzTmFtZSIsImFuY2hvckVsZW0iLCJncm91cHNXaXRoT3B0aW9ucyIsIm1lbnVSZW5kZXJGbiIsIm9uQ2xvc2UiLCJvbk9wZW4iLCJvblF1ZXJ5Q2hhbmdlIiwib25TZWxlY3RPcHRpb24iLCJ0cmlnZ2VyRm4iLCJyZXNvbHV0aW9uIiwic2V0UmVzb2x1dGlvbiIsImFuY2hvckVsZW1lbnRSZWYiLCJjbG9zZVR5cGVhaGVhZCIsIm9wZW5UeXBlYWhlYWQiLCJyZXMiLCJyZWdpc3RlckNvbW1hbmQiLCJub2RlIiwibWF0Y2giLCJtYXRjaGluZ1N0cmluZyIsInJlcGxhY2VhYmxlU3RyaW5nIiwiX3dpbmRvdyIsIndpbmRvdyIsImNyZWF0ZVJhbmdlIiwiaXNSYW5nZVBvc2l0aW9uZWQiLCJnZXRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidXBkYXRlTGlzdGVuZXIiLCJxdWVyeSIsInJlbW92ZVVwZGF0ZUxpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsImNsb3NlIiwic2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQVNBLE9BQU9BLGtDQUFrQywyQ0FBMEM7QUFDbkYsTUFBTSxFQUFFQyx5QkFBeUIsRUFBRSxHQUFHRDtBQUV0QyxPQUFPRSx3QkFBd0IsaUJBQWdCO0FBQy9DLE1BQU0sRUFBRUMsYUFBYSxFQUFFLEdBQUdEO0FBRTFCLE9BQU9FLG1CQUFtQixVQUFTO0FBQ25DLE1BQU0sRUFBRUMsYUFBYSxFQUFFQyxpQkFBaUIsRUFBRUMsV0FBVyxFQUFFQyxvQkFBb0IsRUFBRUMsYUFBYSxFQUFFLEdBQzFGTDtBQUVGLFNBQVNNLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUN4RCxZQUFZQyxXQUFXLFFBQU87QUFNOUIsU0FBU0MsV0FBVyxFQUFFQyxnQkFBZ0IsUUFBUSxtQkFBa0I7QUFFaEUsT0FBTyxNQUFNQyxjQUFjLCtEQUE4RDtBQUV6RixTQUFTQyxrQkFBa0JDLFNBQXlCO0lBQ2xELE1BQU1DLFNBQVNELFVBQVVDLE1BQU07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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"names":[],"mappings":";AAeA,OAAO,cAAc,CAAA;AAsDrB,wBAAgB,eAAe,CAAC,EAC9B,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,GAAG,CAAC,OAAO,CA8Jd"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import
|
|
2
|
+
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js';
|
|
3
|
+
const { useLexicalComposerContext } = lexicalComposerContextImport;
|
|
3
4
|
import { useTranslation } from '@payloadcms/ui';
|
|
4
5
|
import { useCallback, useMemo, useState } from 'react';
|
|
5
6
|
import * as React from 'react';
|
|
@@ -168,4 +169,4 @@ export function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
168
169
|
}));
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlci5qcydcbmltcG9ydCB7IExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIH0gZnJvbSAnLi9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleC5qcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdXNlTWVudVRyaWdnZXJNYXRjaCB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXJNYXRjaC5qcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmZ1bmN0aW9uIFNsYXNoTWVudUl0ZW0oe1xuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge29wdGlvbj8uSWNvbiAmJiA8b3B0aW9uLkljb24gLz59XG5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faXRlbS10ZXh0YH0+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiUmVhY3QiLCJSZWFjdERPTSIsInVzZUVkaXRvckNvbmZpZ0NvbnRleHQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJiYXNlQ2xhc3MiLCJTbGFzaE1lbnVJdGVtIiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvcHRpb24iLCJpMThuIiwiY2xhc3NOYW1lIiwia2V5IiwidGl0bGUiLCJkaXNwbGF5TmFtZSIsImxlbmd0aCIsInN1YnN0cmluZyIsImJ1dHRvbiIsImFyaWEtc2VsZWN0ZWQiLCJpZCIsInJlZiIsInNldFJlZkVsZW1lbnQiLCJyb2xlIiwidGFiSW5kZXgiLCJ0eXBlIiwiSWNvbiIsInNwYW4iLCJTbGFzaE1lbnVQbHVnaW4iLCJhbmNob3JFbGVtIiwiZG9jdW1lbnQiLCJib2R5IiwiZWRpdG9yIiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsImVkaXRvckNvbmZpZyIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwibWluTGVuZ3RoIiwiZ2V0RHluYW1pY09wdGlvbnMiLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJtZW51UmVuZGVyRm4iLCJhbmNob3JFbGVtZW50UmVmIiwic2VsZWN0T3B0aW9uQW5kQ2xlYW5VcCIsInNlbGVjdGVkT3B0aW9uS2V5Iiwic2V0U2VsZWN0ZWRPcHRpb25LZXkiLCJjdXJyZW50IiwiY3JlYXRlUG9ydGFsIiwiZGl2IiwiZ3JvdXBUaXRsZSIsIm9pIiwiaW5kZXgiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLDJDQUEwQztBQUNwRixTQUFTQyxjQUFjLFFBQVEsaUJBQWdCO0FBQy9DLFNBQVNDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUN0RCxZQUFZQyxXQUFXLFFBQU87QUFDOUIsWUFBWUMsY0FBYyxZQUFXO0FBSXJDLFNBQVNDLHNCQUFzQixR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
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgbGV4aWNhbENvbXBvc2VyQ29udGV4dEltcG9ydCBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0LmpzJ1xuY29uc3QgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gPSBsZXhpY2FsQ29tcG9zZXJDb250ZXh0SW1wb3J0XG5cbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlci5qcydcbmltcG9ydCB7IExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIH0gZnJvbSAnLi9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleC5qcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdXNlTWVudVRyaWdnZXJNYXRjaCB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXJNYXRjaC5qcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmZ1bmN0aW9uIFNsYXNoTWVudUl0ZW0oe1xuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge29wdGlvbj8uSWNvbiAmJiA8b3B0aW9uLkljb24gLz59XG5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faXRlbS10ZXh0YH0+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbImxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIlJlYWN0IiwiUmVhY3RET00iLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4iLCJ1c2VNZW51VHJpZ2dlck1hdGNoIiwiYmFzZUNsYXNzIiwiU2xhc2hNZW51SXRlbSIsImlzU2VsZWN0ZWQiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwib3B0aW9uIiwiaTE4biIsImNsYXNzTmFtZSIsImtleSIsInRpdGxlIiwiZGlzcGxheU5hbWUiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJidXR0b24iLCJhcmlhLXNlbGVjdGVkIiwiaWQiLCJyZWYiLCJzZXRSZWZFbGVtZW50Iiwicm9sZSIsInRhYkluZGV4IiwidHlwZSIsIkljb24iLCJzcGFuIiwiU2xhc2hNZW51UGx1Z2luIiwiYW5jaG9yRWxlbSIsImRvY3VtZW50IiwiYm9keSIsImVkaXRvciIsInF1ZXJ5U3RyaW5nIiwic2V0UXVlcnlTdHJpbmciLCJlZGl0b3JDb25maWciLCJjaGVja0ZvclRyaWdnZXJNYXRjaCIsIm1pbkxlbmd0aCIsImdldER5bmFtaWNPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9ucyIsImR5bmFtaWNPcHRpb24iLCJmZWF0dXJlcyIsInNsYXNoTWVudSIsImR5bmFtaWNPcHRpb25zIiwiZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMiLCJjb25jYXQiLCJncm91cHMiLCJncm91cHNXaXRoT3B0aW9ucyIsImdyb3VwV2l0aE9wdGlvbiIsInB1c2giLCJtYXAiLCJncm91cCIsImZpbHRlcmVkT3B0aW9ucyIsIm9wdGlvbnMiLCJmaWx0ZXIiLCJvcHRpb25UaXRsZSIsIlJlZ0V4cCIsImV4ZWMiLCJrZXl3b3JkcyIsInNvbWUiLCJrZXl3b3JkIiwiZHluYW1pY09wdGlvbkdyb3VwcyIsImR5bmFtaWNHcm91cCIsImZpbmQiLCJvblNlbGVjdE9wdGlvbiIsInNlbGVjdGVkT3B0aW9uIiwibm9kZVRvUmVtb3ZlIiwiY2xvc2VNZW51IiwibWF0Y2hpbmdTdHJpbmciLCJ1cGRhdGUiLCJyZW1vdmUiLCJvblNlbGVjdCIsIkZyYWdtZW50IiwibWVudVJlbmRlckZuIiwiYW5jaG9yRWxlbWVudFJlZiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwiY3VycmVudCIsImNyZWF0ZVBvcnRhbCIsImRpdiIsImdyb3VwVGl0bGUiLCJvaSIsImluZGV4Iiwib25RdWVyeUNoYW5nZSIsInRyaWdnZXJGbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFHQSxPQUFPQSxrQ0FBa0MsMkNBQTBDO0FBQ25GLE1BQU0sRUFBRUMseUJBQXlCLEVBQUUsR0FBR0Q7QUFFdEMsU0FBU0Us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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/AddBlockHandlePlugin/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/AddBlockHandlePlugin/index.tsx"],"names":[],"mappings":";AAoBA,OAAO,cAAc,CAAA;AAwSrB,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,GAAG,CAAC,OAAO,CAGd"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import
|
|
2
|
+
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js';
|
|
3
|
+
const { useLexicalComposerContext } = lexicalComposerContextImport;
|
|
4
|
+
import lexicalImport from 'lexical';
|
|
5
|
+
const { $createParagraphNode, $getNodeByKey } = lexicalImport;
|
|
5
6
|
import * as React from 'react';
|
|
6
7
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
7
8
|
import { createPortal } from 'react-dom';
|
|
@@ -232,4 +233,4 @@ export function AddBlockHandlePlugin({ anchorElem = document.body }) {
|
|
|
232
233
|
return useAddBlockHandle(editor, anchorElem, editor._editable);
|
|
233
234
|
}
|
|
234
235
|
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmltcG9ydCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7ICRnZXROb2RlQnlLZXksIHR5cGUgTGV4aWNhbEVkaXRvciwgdHlwZSBMZXhpY2FsTm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2d1YXJkLmpzJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludC5qcydcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0LmpzJ1xuaW1wb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4uLy4uL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleC5qcydcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zLmpzJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMuanMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50LmpzJ1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbi5qcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2FkZC1ibG9jay1tZW51J1xuXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBldmVudDogTW91c2VFdmVudCxcbiAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbik6IHtcbiAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbn0ge1xuICBjb25zdCBhbmNob3JFbGVtZW50UmVjdCA9IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gIGxldCBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VBZGRCbG9ja0hhbmRsZShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcbiAgY29uc3QgW2hvdmVyZWRFbGVtZW50LCBzZXRIb3ZlcmVkRWxlbWVudF0gPSB1c2VTdGF0ZTx7XG4gICAgZWxlbTogSFRNTEVsZW1lbnRcbiAgICBub2RlOiBMZXhpY2FsTm9kZVxuICB9IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gZXZlbnRcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEJ1ZmZlciA9IDUwXG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQnVmZmVyID0gMjVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRUb3AgPSB0b3AgKyB3aW5kb3cuc2Nyb2xsWVxuICAgICAgICBjb25zdCBhZGp1c3RlZEJvdHRvbSA9IGJvdHRvbSArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhZ2VZIDwgYWRqdXN0ZWRUb3AgLSB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VZID4gYWRqdXN0ZWRCb3R0b20gKyB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYIDwgbGVmdCAtIGhvcml6b250YWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA+IHJpZ2h0ICsgaG9yaXpvbnRhbEJ1ZmZlclxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudChudWxsKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZW1wdHlCbG9ja0VsZW0gdG8gYmUgZm91bmQgd2hlbiB0aGUgbW91c2UgaXMgaW4gdGhlXG4gICAgICAgIC8vIGJ1ZmZlciB6b25lIGFyb3VuZCB0aGUgc2Nyb2xsZXJFbGVtLlxuICAgICAgICBpZiAocGFnZVggPCBsZWZ0IHx8IHBhZ2VYID4gcmlnaHQpIHtcbiAgICAgICAgICBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBwYWdlWCA8IGxlZnQgPyBwYWdlWCAtIGxlZnQgOiBwYWdlWCAtIHJpZ2h0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiBfZW1wdHlCbG9ja0VsZW0sIGJsb2NrTm9kZSB9ID0gZ2V0QmxvY2tFbGVtZW50KFxuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgIClcbiAgICAgIGlmICghX2VtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgc2V0SG92ZXJlZEVsZW1lbnQoe1xuICAgICAgICBlbGVtOiBfZW1wdHlCbG9ja0VsZW0sXG4gICAgICAgIG5vZGU6IGJsb2NrTm9kZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gU2luY2UgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBpcyBvdXRzaWRlIHRoZSBhY3R1YWwgZWRpdG9yLCB3ZSBuZWVkIHRvIGxpc3RlbiB0byB0aGUgZG9jdW1lbnRcbiAgICAvLyB0byBiZSBhYmxlIHRvIGRldGVjdCB3aGVuIHRoZSBtb3VzZSBpcyBvdXRzaWRlIHRoZSBlZGl0b3IgYW5kIHJlc3BlY3QgYSBidWZmZXIgYXJvdW5kXG4gICAgLy8gdGhlIHNjcm9sbGVyRWxlbSB0byBhdm9pZCB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGRpc2FwcGVhcmluZyB0b28gZWFybHkuXG4gICAgZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG4gICAgfVxuICB9LCBbc2Nyb2xsZXJFbGVtLCBhbmNob3JFbGVtLCBlZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBob3ZlcmVkRWxlbWVudD8ubm9kZSkge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFRleHRDb250ZW50KCkgIT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPSBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SGFuZGxlUG9zaXRpb24oXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQ/LmVsZW0sXG4gICAgICAgICAgbWVudVJlZi5jdXJyZW50LFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA/IFNQQUNFIDogU1BBQ0UgLSAyMCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLCBob3ZlcmVkRWxlbWVudCwgZWRpdG9yXSlcblxuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgbGV0IGhvdmVyZWRFbGVtZW50VG9Vc2UgPSBob3ZlcmVkRWxlbWVudFxuICAgICAgaWYgKCFob3ZlcmVkRWxlbWVudFRvVXNlPy5ub2RlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAxLiBVcGRhdGUgaG92ZXJlZEVsZW1lbnQubm9kZSB0byBhIG5ldyBwYXJhZ3JhcGggbm9kZSBpZiB0aGUgaG92ZXJlZEVsZW1lbnQubm9kZSBpcyBub3QgYSBwYXJhZ3JhcGggbm9kZVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VHlwZSgpICE9PSAncGFyYWdyYXBoJyB8fFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGNvbnN0IG5ld1BhcmFncmFwaCA9ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKClcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuaW5zZXJ0QWZ0ZXIobmV3UGFyYWdyYXBoKVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlID0ge1xuICAgICAgICAgICAgICBlbGVtOiBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5ld1BhcmFncmFwaC5nZXRLZXkoKSksXG4gICAgICAgICAgICAgIG5vZGU6IG5ld1BhcmFncmFwaCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KGhvdmVyZWRFbGVtZW50VG9Vc2UpXG4gICAgICAgICAgfSwgMClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gMi4gRm9jdXMgb24gdGhlIG5ldyBwYXJhZ3JhcGggbm9kZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5mb2N1cygpXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgICdzZWxlY3QnIGluIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sIDEpXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIGNhbGxlZCBBRlRFUiB0aGUgZm9jdXNpbmcgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIG5vZGU6IGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSBhcyBQYXJhZ3JhcGhOb2RlLFxuICAgICAgICB9KVxuICAgICAgfSwgMilcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGhvdmVyZWRFbGVtZW50XSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsImlzSFRNTEVsZW1lbnQiLCJQb2ludCIsIlJlY3QiLCJFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EIiwiZ2V0Q29sbGFwc2VkTWFyZ2lucyIsImdldFRvcExldmVsTm9kZUtleXMiLCJpc09uSGFuZGxlRWxlbWVudCIsInNldEhhbmRsZVBvc2l0aW9uIiwiU1BBQ0UiLCJBRERfQkxPQ0tfTUVOVV9DTEFTU05BTUUiLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJwcmV2SW5kZXgiLCJJbmZpbml0eSIsImdldEN1cnJlbnRJbmRleCIsImtleXNMZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJnZXRCbG9ja0VsZW1lbnQiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZXZlbnQiLCJ1c2VFZGdlQXNEZWZhdWx0IiwiaG9yaXpvbnRhbE9mZnNldCIsImFuY2hvckVsZW1lbnRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIngiLCJkb21SZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsInJlY3QiLCJnZW5lcmF0ZU5ld1JlY3QiLCJsZWZ0IiwicmlnaHQiLCJyZWFzb24iLCJpc09uQm90dG9tU2lkZSIsImlzT25Ub3BTaWRlIiwicmVzdWx0IiwiY29udGFpbnMiLCJ1c2VBZGRCbG9ja0hhbmRsZSIsImlzRWRpdGFibGUiLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwibWVudVJlZiIsImhvdmVyZWRFbGVtZW50Iiwic2V0SG92ZXJlZEVsZW1lbnQiLCJvbkRvY3VtZW50TW91c2VNb3ZlIiwidGFyZ2V0IiwiZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtIiwicGFnZVgiLCJwYWdlWSIsImhvcml6b250YWxCdWZmZXIiLCJ2ZXJ0aWNhbEJ1ZmZlciIsImFkanVzdGVkVG9wIiwid2luZG93Iiwic2Nyb2xsWSIsImFkanVzdGVkQm90dG9tIiwiX2VtcHR5QmxvY2tFbGVtIiwibm9kZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50IiwiaXNFbXB0eVBhcmFncmFwaCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCIsImhhbmRsZUFkZENsaWNrIiwiaG92ZXJlZEVsZW1lbnRUb1VzZSIsInVwZGF0ZSIsIm5ld1BhcmFncmFwaCIsImluc2VydEFmdGVyIiwic2V0VGltZW91dCIsImdldEtleSIsImZvY3VzIiwic2VsZWN0IiwiZGlzcGF0Y2hDb21tYW5kIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJyZWYiLCJ0eXBlIiwiZGl2IiwiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJib2R5IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLDJDQUEwQztBQUNwRixTQUFTQyxvQkFBb0IsUUFBUSxVQUFTO0FBQzlDLFNBQVNDLGFBQWEsUUFBOEMsVUFBUztBQUM3RSxZQUFZQyxXQUFXLFFBQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDaEUsU0FBU0MsWUFBWSxRQUFRLFlBQVc7QUFFeEMsU0FBU0MsYUFBYSxRQUFRLDBCQUF5QjtBQUN2RCxTQUFTQyxLQUFLLFFBQVEsMEJBQXlCO0FBQy9DLFNBQVNDLElBQUksUUFBUSx5QkFBd0I7QUFDN0MsU0FBU0MseUJBQXlCLFFBQVEsc0RBQXFEO0FBQy9GLFNBQVNDLG1CQUFtQixRQUFRLGtDQUFpQztBQUNy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
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IsIExleGljYWxOb2RlLCBQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IGxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmNvbnN0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9ID0gbGV4aWNhbENvbXBvc2VyQ29udGV4dEltcG9ydFxuaW1wb3J0IGxleGljYWxJbXBvcnQgZnJvbSAnbGV4aWNhbCdcbmNvbnN0IHsgJGNyZWF0ZVBhcmFncmFwaE5vZGUsICRnZXROb2RlQnlLZXkgfSA9IGxleGljYWxJbXBvcnRcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ndWFyZC5qcydcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcG9pbnQuanMnXG5pbXBvcnQgeyBSZWN0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVjdC5qcydcbmltcG9ydCB7IEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQgfSBmcm9tICcuLi8uLi9TbGFzaE1lbnUvTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4vaW5kZXguanMnXG5pbXBvcnQgeyBnZXRDb2xsYXBzZWRNYXJnaW5zIH0gZnJvbSAnLi4vdXRpbHMvZ2V0Q29sbGFwc2VkTWFyZ2lucy5qcydcbmltcG9ydCB7IGdldFRvcExldmVsTm9kZUtleXMgfSBmcm9tICcuLi91dGlscy9nZXRUb3BMZXZlbE5vZGVLZXlzLmpzJ1xuaW1wb3J0IHsgaXNPbkhhbmRsZUVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9pc09uSGFuZGxlRWxlbWVudC5qcydcbmltcG9ydCB7IHNldEhhbmRsZVBvc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvc2V0SGFuZGxlUG9zaXRpb24uanMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgU1BBQ0UgPSAtMjRcbmNvbnN0IEFERF9CTE9DS19NRU5VX0NMQVNTTkFNRSA9ICdhZGQtYmxvY2stbWVudSdcblxuY29uc3QgRG93bndhcmQgPSAxXG5jb25zdCBVcHdhcmQgPSAtMVxuY29uc3QgSW5kZXRlcm1pbmF0ZSA9IDBcblxubGV0IHByZXZJbmRleCA9IEluZmluaXR5XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRJbmRleChrZXlzTGVuZ3RoOiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoa2V5c0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBJbmZpbml0eVxuICB9XG4gIGlmIChwcmV2SW5kZXggPj0gMCAmJiBwcmV2SW5kZXggPCBrZXlzTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHByZXZJbmRleFxuICB9XG5cbiAgcmV0dXJuIE1hdGguZmxvb3Ioa2V5c0xlbmd0aCAvIDIpXG59XG5cbmZ1bmN0aW9uIGdldEJsb2NrRWxlbWVudChcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvcixcbiAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gIHVzZUVkZ2VBc0RlZmF1bHQgPSBmYWxzZSxcbiAgaG9yaXpvbnRhbE9mZnNldCA9IDAsXG4pOiB7XG4gIGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsXG4gIGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsXG59IHtcbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlY3QgPSBhbmNob3JFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIGNvbnN0IHRvcExldmVsTm9kZUtleXMgPSBnZXRUb3BMZXZlbE5vZGVLZXlzKGVkaXRvcilcblxuICBsZXQgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGxldCBibG9ja05vZGU6IExleGljYWxOb2RlIHwgbnVsbCA9IG51bGxcblxuICAvLyBSZXR1cm4gbnVsbCBpZiBtYXRjaGluZyBibG9jayBlbGVtZW50IGlzIHRoZSBmaXJzdCBvciBsYXN0IG5vZGVcbiAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgaWYgKHVzZUVkZ2VBc0RlZmF1bHQpIHtcbiAgICAgIGNvbnN0IFtmaXJzdE5vZGUsIGxhc3ROb2RlXSA9IFtcbiAgICAgICAgZWRpdG9yLmdldEVsZW1lbnRCeUtleSh0b3BMZXZlbE5vZGVLZXlzWzBdKSxcbiAgICAgICAgZWRpdG9yLmdldEVsZW1lbnRCeUtleSh0b3BMZXZlbE5vZGVLZXlzW3RvcExldmVsTm9kZUtleXMubGVuZ3RoIC0gMV0pLFxuICAgICAgXVxuXG4gICAgICBjb25zdCBbZmlyc3ROb2RlUmVjdCwgbGFzdE5vZGVSZWN0XSA9IFtcbiAgICAgICAgZmlyc3ROb2RlPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgbGFzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgXVxuXG4gICAgICBpZiAoZmlyc3ROb2RlUmVjdCAmJiBsYXN0Tm9kZVJlY3QpIHtcbiAgICAgICAgaWYgKGV2ZW50LnkgPCBmaXJzdE5vZGVSZWN0LnRvcCkge1xuICAgICAgICAgIGJsb2NrRWxlbSA9IGZpcnN0Tm9kZVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnkgPiBsYXN0Tm9kZVJlY3QuYm90dG9tKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gbGFzdE5vZGVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChibG9ja0VsZW0pIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYmxvY2tFbGVtOiBudWxsLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmQgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudFxuICAgIGxldCBpbmRleCA9IGdldEN1cnJlbnRJbmRleCh0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aClcbiAgICBsZXQgZGlyZWN0aW9uID0gSW5kZXRlcm1pbmF0ZVxuXG4gICAgd2hpbGUgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCkge1xuICAgICAgY29uc3Qga2V5ID0gdG9wTGV2ZWxOb2RlS2V5c1tpbmRleF1cbiAgICAgIGNvbnN0IGVsZW0gPSBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KGtleSlcbiAgICAgIGlmIChlbGVtID09PSBudWxsKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjb25zdCBwb2ludCA9IG5ldyBQb2ludChldmVudC54ICsgaG9yaXpvbnRhbE9mZnNldCwgZXZlbnQueSlcbiAgICAgIGNvbnN0IGRvbVJlY3QgPSBSZWN0LmZyb21ET00oZWxlbSlcbiAgICAgIGNvbnN0IHsgbWFyZ2luQm90dG9tLCBtYXJnaW5Ub3AgfSA9IGdldENvbGxhcHNlZE1hcmdpbnMoZWxlbSlcblxuICAgICAgY29uc3QgcmVjdCA9IGRvbVJlY3QuZ2VuZXJhdGVOZXdSZWN0KHtcbiAgICAgICAgYm90dG9tOiBkb21SZWN0LmJvdHRvbSArIG1hcmdpbkJvdHRvbSxcbiAgICAgICAgbGVmdDogYW5jaG9yRWxlbWVudFJlY3QubGVmdCxcbiAgICAgICAgcmlnaHQ6IGFuY2hvckVsZW1lbnRSZWN0LnJpZ2h0LFxuICAgICAgICB0b3A6IGRvbVJlY3QudG9wIC0gbWFyZ2luVG9wLFxuICAgICAgfSlcblxuICAgICAgY29uc3Qge1xuICAgICAgICByZWFzb246IHsgaXNPbkJvdHRvbVNpZGUsIGlzT25Ub3BTaWRlIH0sXG4gICAgICAgIHJlc3VsdCxcbiAgICAgIH0gPSByZWN0LmNvbnRhaW5zKHBvaW50KVxuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGJsb2NrRWxlbSA9IGVsZW1cbiAgICAgICAgYmxvY2tOb2RlID0gJGdldE5vZGVCeUtleShrZXkpXG4gICAgICAgIHByZXZJbmRleCA9IGluZGV4XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGlmIChkaXJlY3Rpb24gPT09IEluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgaWYgKGlzT25Ub3BTaWRlKSB7XG4gICAgICAgICAgZGlyZWN0aW9uID0gVXB3YXJkXG4gICAgICAgIH0gZWxzZSBpZiAoaXNPbkJvdHRvbVNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBEb3dud2FyZFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHN0b3Agc2VhcmNoIGJsb2NrIGVsZW1lbnRcbiAgICAgICAgICBkaXJlY3Rpb24gPSBJbmZpbml0eVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGluZGV4ICs9IGRpcmVjdGlvblxuICAgIH1cbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGJsb2NrRWxlbSxcbiAgICBibG9ja05vZGUsXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlQWRkQmxvY2tIYW5kbGUoXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvcixcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIGlzRWRpdGFibGU6IGJvb2xlYW4sXG4pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gIGNvbnN0IG1lbnVSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtob3ZlcmVkRWxlbWVudCwgc2V0SG92ZXJlZEVsZW1lbnRdID0gdXNlU3RhdGU8e1xuICAgIGVsZW06IEhUTUxFbGVtZW50XG4gICAgbm9kZTogTGV4aWNhbE5vZGVcbiAgfSB8IG51bGw+KG51bGwpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiBvbkRvY3VtZW50TW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXRcbiAgICAgIGlmICghaXNIVE1MRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsZXQgZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gMFxuICAgICAgLy8gQ2FsY3VsYXRlIGRpc3RhbmNlIGJldHdlZW4gc2Nyb2xsZXJFbGVtIGFuZCB0YXJnZXQgaWYgdGFyZ2V0IGlzIG5vdCBpbiBzY3JvbGxlckVsZW1cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gJiYgIXNjcm9sbGVyRWxlbS5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgIGNvbnN0IHsgYm90dG9tLCBsZWZ0LCByaWdodCwgdG9wIH0gPSBzY3JvbGxlckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgY29uc3QgeyBwYWdlWCwgcGFnZVkgfSA9IGV2ZW50XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxCdWZmZXIgPSA1MFxuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJ1ZmZlciA9IDI1XG4gICAgICAgIGNvbnN0IGFkanVzdGVkVG9wID0gdG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRCb3R0b20gPSBib3R0b20gKyB3aW5kb3cuc2Nyb2xsWVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYWdlWSA8IGFkanVzdGVkVG9wIC0gdmVydGljYWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWSA+IGFkanVzdGVkQm90dG9tICsgdmVydGljYWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA8IGxlZnQgLSBob3Jpem9udGFsQnVmZmVyIHx8XG4gICAgICAgICAgcGFnZVggPiByaWdodCArIGhvcml6b250YWxCdWZmZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SG92ZXJlZEVsZW1lbnQobnVsbClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBhbGxvdyB0aGUgX2VtcHR5QmxvY2tFbGVtIHRvIGJlIGZvdW5kIHdoZW4gdGhlIG1vdXNlIGlzIGluIHRoZVxuICAgICAgICAvLyBidWZmZXIgem9uZSBhcm91bmQgdGhlIHNjcm9sbGVyRWxlbS5cbiAgICAgICAgaWYgKHBhZ2VYIDwgbGVmdCB8fCBwYWdlWCA+IHJpZ2h0KSB7XG4gICAgICAgICAgZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gcGFnZVggPCBsZWZ0ID8gcGFnZVggLSBsZWZ0IDogcGFnZVggLSByaWdodFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc09uSGFuZGxlRWxlbWVudCh0YXJnZXQsIEFERF9CTE9DS19NRU5VX0NMQVNTTkFNRSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCB7IGJsb2NrRWxlbTogX2VtcHR5QmxvY2tFbGVtLCBibG9ja05vZGUgfSA9IGdldEJsb2NrRWxlbWVudChcbiAgICAgICAgYW5jaG9yRWxlbSxcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBldmVudCxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIC1kaXN0YW5jZUZyb21TY3JvbGxlckVsZW0sXG4gICAgICApXG4gICAgICBpZiAoIV9lbXB0eUJsb2NrRWxlbSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHNldEhvdmVyZWRFbGVtZW50KHtcbiAgICAgICAgZWxlbTogX2VtcHR5QmxvY2tFbGVtLFxuICAgICAgICBub2RlOiBibG9ja05vZGUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIFNpbmNlIHRoZSBkcmFnZ2FibGVCbG9ja0VsZW0gaXMgb3V0c2lkZSB0aGUgYWN0dWFsIGVkaXRvciwgd2UgbmVlZCB0byBsaXN0ZW4gdG8gdGhlIGRvY3VtZW50XG4gICAgLy8gdG8gYmUgYWJsZSB0byBkZXRlY3Qgd2hlbiB0aGUgbW91c2UgaXMgb3V0c2lkZSB0aGUgZWRpdG9yIGFuZCByZXNwZWN0IGEgYnVmZmVyIGFyb3VuZFxuICAgIC8vIHRoZSBzY3JvbGxlckVsZW0gdG8gYXZvaWQgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBkaXNhcHBlYXJpbmcgdG9vIGVhcmx5LlxuICAgIGRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbkRvY3VtZW50TW91c2VNb3ZlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbkRvY3VtZW50TW91c2VNb3ZlKVxuICAgIH1cbiAgfSwgW3Njcm9sbGVyRWxlbSwgYW5jaG9yRWxlbSwgZWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZW51UmVmLmN1cnJlbnQgJiYgaG92ZXJlZEVsZW1lbnQ/Lm5vZGUpIHtcbiAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiBibG9ja05vZGUgaXMgYW4gZW1wdHkgdGV4dCBub2RlXG4gICAgICAgIGxldCBpc0VtcHR5UGFyYWdyYXBoID0gdHJ1ZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQubm9kZS5nZXRUeXBlKCkgIT09ICdwYXJhZ3JhcGgnIHx8XG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIHNldEhhbmRsZVBvc2l0aW9uKFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50Py5lbGVtLFxuICAgICAgICAgIG1lbnVSZWYuY3VycmVudCxcbiAgICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPyBTUEFDRSA6IFNQQUNFIC0gMjAsXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbSwgaG92ZXJlZEVsZW1lbnQsIGVkaXRvcl0pXG5cbiAgY29uc3QgaGFuZGxlQWRkQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIGxldCBob3ZlcmVkRWxlbWVudFRvVXNlID0gaG92ZXJlZEVsZW1lbnRcbiAgICAgIGlmICghaG92ZXJlZEVsZW1lbnRUb1VzZT8ubm9kZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gMS4gVXBkYXRlIGhvdmVyZWRFbGVtZW50Lm5vZGUgdG8gYSBuZXcgcGFyYWdyYXBoIG5vZGUgaWYgdGhlIGhvdmVyZWRFbGVtZW50Lm5vZGUgaXMgbm90IGEgcGFyYWdyYXBoIG5vZGVcbiAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiBibG9ja05vZGUgaXMgYW4gZW1wdHkgdGV4dCBub2RlXG4gICAgICAgIGxldCBpc0VtcHR5UGFyYWdyYXBoID0gdHJ1ZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnRUb1VzZS5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VGV4dENvbnRlbnQoKSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA9IGZhbHNlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzRW1wdHlQYXJhZ3JhcGgpIHtcbiAgICAgICAgICBjb25zdCBuZXdQYXJhZ3JhcGggPSAkY3JlYXRlUGFyYWdyYXBoTm9kZSgpXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnRUb1VzZS5ub2RlLmluc2VydEFmdGVyKG5ld1BhcmFncmFwaClcblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaG92ZXJlZEVsZW1lbnRUb1VzZSA9IHtcbiAgICAgICAgICAgICAgZWxlbTogZWRpdG9yLmdldEVsZW1lbnRCeUtleShuZXdQYXJhZ3JhcGguZ2V0S2V5KCkpLFxuICAgICAgICAgICAgICBub2RlOiBuZXdQYXJhZ3JhcGgsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudChob3ZlcmVkRWxlbWVudFRvVXNlKVxuICAgICAgICAgIH0sIDApXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIDIuIEZvY3VzIG9uIHRoZSBuZXcgcGFyYWdyYXBoIG5vZGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICBlZGl0b3IuZm9jdXMoKVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgaG92ZXJlZEVsZW1lbnRUb1VzZS5ub2RlICYmXG4gICAgICAgICAgICAnc2VsZWN0JyBpbiBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgIHR5cGVvZiBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuc2VsZWN0ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuc2VsZWN0KClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9LCAxKVxuXG4gICAgICAvLyBNYWtlIHN1cmUgdGhpcyBpcyBjYWxsZWQgQUZURVIgdGhlIGZvY3VzaW5nIGhhcyBiZWVuIHByb2Nlc3NlZCBieSB0aGUgYnJvd3NlclxuICAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIHdvbid0IHdvcmtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQsIHtcbiAgICAgICAgICBub2RlOiBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgYXMgUGFyYWdyYXBoTm9kZSxcbiAgICAgICAgfSlcbiAgICAgIH0sIDIpXG5cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgfSxcbiAgICBbZWRpdG9yLCBob3ZlcmVkRWxlbWVudF0sXG4gIClcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPVwiaWNvbiBhZGQtYmxvY2stbWVudVwiXG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUFkZENsaWNrKGV2ZW50KVxuICAgICAgICB9fVxuICAgICAgICByZWY9e21lbnVSZWZ9XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17aXNFZGl0YWJsZSA/ICdpY29uJyA6ICcnfSAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9SZWFjdC5GcmFnbWVudD4sXG4gICAgYW5jaG9yRWxlbSxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQWRkQmxvY2tIYW5kbGVQbHVnaW4oe1xuICBhbmNob3JFbGVtID0gZG9jdW1lbnQuYm9keSxcbn06IHtcbiAgYW5jaG9yRWxlbT86IEhUTUxFbGVtZW50XG59KTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICByZXR1cm4gdXNlQWRkQmxvY2tIYW5kbGUoZWRpdG9yLCBhbmNob3JFbGVtLCBlZGl0b3IuX2VkaXRhYmxlKVxufVxuIl0sIm5hbWVzIjpbImxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwibGV4aWNhbEltcG9ydCIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsImlzSFRNTEVsZW1lbnQiLCJQb2ludCIsIlJlY3QiLCJFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EIiwiZ2V0Q29sbGFwc2VkTWFyZ2lucyIsImdldFRvcExldmVsTm9kZUtleXMiLCJpc09uSGFuZGxlRWxlbWVudCIsInNldEhhbmRsZVBvc2l0aW9uIiwiU1BBQ0UiLCJBRERfQkxPQ0tfTUVOVV9DTEFTU05BTUUiLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJwcmV2SW5kZXgiLCJJbmZpbml0eSIsImdldEN1cnJlbnRJbmRleCIsImtleXNMZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJnZXRCbG9ja0VsZW1lbnQiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZXZlbnQiLCJ1c2VFZGdlQXNEZWZhdWx0IiwiaG9yaXpvbnRhbE9mZnNldCIsImFuY2hvckVsZW1lbnRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIngiLCJkb21SZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsInJlY3QiLCJnZW5lcmF0ZU5ld1JlY3QiLCJsZWZ0IiwicmlnaHQiLCJyZWFzb24iLCJpc09uQm90dG9tU2lkZSIsImlzT25Ub3BTaWRlIiwicmVzdWx0IiwiY29udGFpbnMiLCJ1c2VBZGRCbG9ja0hhbmRsZSIsImlzRWRpdGFibGUiLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwibWVudVJlZiIsImhvdmVyZWRFbGVtZW50Iiwic2V0SG92ZXJlZEVsZW1lbnQiLCJvbkRvY3VtZW50TW91c2VNb3ZlIiwidGFyZ2V0IiwiZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtIiwicGFnZVgiLCJwYWdlWSIsImhvcml6b250YWxCdWZmZXIiLCJ2ZXJ0aWNhbEJ1ZmZlciIsImFkanVzdGVkVG9wIiwid2luZG93Iiwic2Nyb2xsWSIsImFkanVzdGVkQm90dG9tIiwiX2VtcHR5QmxvY2tFbGVtIiwibm9kZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50IiwiaXNFbXB0eVBhcmFncmFwaCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCIsImhhbmRsZUFkZENsaWNrIiwiaG92ZXJlZEVsZW1lbnRUb1VzZSIsInVwZGF0ZSIsIm5ld1BhcmFncmFwaCIsImluc2VydEFmdGVyIiwic2V0VGltZW91dCIsImdldEtleSIsImZvY3VzIiwic2VsZWN0IiwiZGlzcGF0Y2hDb21tYW5kIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJyZWYiLCJ0eXBlIiwiZGl2IiwiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJib2R5IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLE9BQU9BLGtDQUFrQywyQ0FBMEM7QUFDbkYsTUFBTSxFQUFFQyx5QkFBeUIsRUFBRSxHQUFHRDtBQUN0QyxPQUFPRSxtQkFBbUIsVUFBUztBQUNuQyxNQUFNLEVBQUVDLG9CQUFvQixFQUFFQyxhQUFhLEVBQUUsR0FBR0Y7QUFFaEQsWUFBWUcsV0FBVyxRQUFPO0FBQzlCLFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBQ2hFLFNBQVNDLFlBQVksUUFB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
|
package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNodeCloseToPoint.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getNodeCloseToPoint.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAKzD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAW/C,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,WAAW,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,yBAAyB,EAAE,OAAO,CAAA;CACnC,CAAA;AAaD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkLxD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import lexicalImport from 'lexical';
|
|
2
|
+
const { $getNodeByKey } = lexicalImport;
|
|
2
3
|
import { Point } from '../../../utils/point.js';
|
|
3
4
|
import { Rect } from '../../../utils/rect.js';
|
|
4
5
|
import { getCollapsedMargins } from '../utils/getCollapsedMargins.js';
|
|
@@ -147,4 +148,4 @@ export function getNodeCloseToPoint(props) {
|
|
|
147
148
|
};
|
|
148
149
|
}
|
|
149
150
|
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXROb2RlQ2xvc2VUb1BvaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyAkZ2V0Tm9kZUJ5S2V5IH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludC5qcydcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0LmpzJ1xuaW1wb3J0IHsgZ2V0Q29sbGFwc2VkTWFyZ2lucyB9IGZyb20gJy4uL3V0aWxzL2dldENvbGxhcHNlZE1hcmdpbnMuanMnXG5pbXBvcnQgeyBnZXRUb3BMZXZlbE5vZGVLZXlzIH0gZnJvbSAnLi4vdXRpbHMvZ2V0VG9wTGV2ZWxOb2RlS2V5cy5qcydcbmltcG9ydCB7IGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0gfSBmcm9tICcuL2dldEJvdW5kaW5nUmVjdFdpdGhvdXRUcmFuc2Zvcm0uanMnXG5cbi8vIERpcmVjdGlvbnNcbmNvbnN0IERvd253YXJkID0gMVxuY29uc3QgVXB3YXJkID0gLTFcbmNvbnN0IEluZGV0ZXJtaW5hdGUgPSAwXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGNhY2hlX3RyZXNob2xkPzogbnVtYmVyXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICAvKiogZnV6enkgbWFrZXMgdGhlIHNlYXJjaCBub3QgZXhhY3QuIElmIG5vIGV4YWN0IG1hdGNoIGZvdW5kLCBmaW5kIHRoZSBjbG9zZXMgbm9kZSBpbnN0ZWFkIG9mIHJldHVybmluZyBudWxsICovXG4gIGZ1enp5PzogYm9vbGVhblxuICBob3Jpem9udGFsT2Zmc2V0PzogbnVtYmVyXG4gIHBvaW50OiBQb2ludFxuICAvKipcbiAgICogVGhlIGluZGV4IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLiBJdCBjYW4gYmUgYSBjb25zaWRlcmFibGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHRoZSBpbmRleCBvZiB0aGVcbiAgICogcHJldmlvdXNseSBmb3VuZCBub2RlLCBhcyB0aGUgbm9kZSBpcyBsaWtlbHkgdG8gYmUgY2xvc2UgdG8gdGhlIG5leHQgbm9kZS5cbiAgICovXG4gIHN0YXJ0SW5kZXg/OiBudW1iZXJcbiAgdXNlRWRnZUFzRGVmYXVsdD86IGJvb2xlYW5cbiAgdmVyYm9zZT86IGJvb2xlYW5cbn1cblxudHlwZSBPdXRwdXQgPSB7XG4gIGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsXG4gIGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsXG4gIGZvdW5kQXRJbmRleDogbnVtYmVyXG4gIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbn1cblxuY29uc3QgY2FjaGUgPSB7XG4gIHByb3BzOiBudWxsIGFzIFByb3BzIHwgbnVsbCxcbiAgcmVzdWx0OiBudWxsIGFzIE91dHB1dCB8IG51bGwsXG59XG5cbmZ1bmN0aW9uIGlzUG9pbnRDbG9zZShwcmV2aW91czogUG9pbnQsIGN1cnJlbnQ6IFBvaW50LCB0aHJlc2hvbGQ6IG51bWJlciA9IDIwKTogYm9vbGVhbiB7XG4gIGNvbnN0IGR4ID0gcHJldmlvdXMueCAtIGN1cnJlbnQueFxuICBjb25zdCBkeSA9IHByZXZpb3VzLnkgLSBjdXJyZW50LnlcbiAgcmV0dXJuIGR4ICogZHggKyBkeSAqIGR5IDw9IHRocmVzaG9sZCAqIHRocmVzaG9sZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUNsb3NlVG9Qb2ludChwcm9wczogUHJvcHMpOiBPdXRwdXQge1xuICBjb25zdCB7XG4gICAgYW5jaG9yRWxlbSxcbiAgICBjYWNoZV90cmVzaG9sZCA9IDIwLFxuICAgIGVkaXRvcixcbiAgICBmdXp6eSA9IGZhbHNlLFxuICAgIGhvcml6b250YWxPZmZzZXQgPSAwLFxuICAgIHBvaW50OiB7IHgsIHkgfSxcbiAgICBzdGFydEluZGV4ID0gMCxcbiAgICB1c2VFZGdlQXNEZWZhdWx0ID0gZmFsc2UsXG4gICAgdmVyYm9zZSA9IGZhbHNlLFxuICB9ID0gcHJvcHNcblxuICAvLyBVc2UgY2FjaGVcbiAgaWYgKFxuICAgIGNhY2hlX3RyZXNob2xkID4gMCAmJlxuICAgIGNhY2hlLnByb3BzICYmXG4gICAgY2FjaGUucmVzdWx0ICYmXG4gICAgY2FjaGUucHJvcHMuZnV6enkgPT09IHByb3BzLmZ1enp5ICYmXG4gICAgY2FjaGUucHJvcHMuaG9yaXpvbnRhbE9mZnNldCA9PT0gcHJvcHMuaG9yaXpvbnRhbE9mZnNldCAmJlxuICAgIGNhY2hlLnByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgPT09IHByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgJiZcbiAgICBpc1BvaW50Q2xvc2UoY2FjaGUucHJvcHMucG9pbnQsIHByb3BzLnBvaW50LCBjYWNoZV90cmVzaG9sZClcbiAgKSB7XG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgcmVzdWx0JylcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlLnJlc3VsdFxuICB9XG5cbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlY3QgPSBhbmNob3JFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIGNvbnN0IHRvcExldmVsTm9kZUtleXMgPSBnZXRUb3BMZXZlbE5vZGVLZXlzKGVkaXRvcilcblxuICBjb25zdCBjbG9zZXN0QmxvY2tFbGVtOiB7XG4gICAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgICBibG9ja05vZGU6IExleGljYWxOb2RlIHwgbnVsbFxuICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgICBmb3VuZEF0SW5kZXg6IG51bWJlclxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbiAgfSA9IHtcbiAgICBibG9ja0VsZW06IG51bGwsXG4gICAgYmxvY2tOb2RlOiBudWxsLFxuICAgIGRpc3RhbmNlOiBJbmZpbml0eSxcbiAgICBmb3VuZEF0SW5kZXg6IC0xLFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGZhbHNlLFxuICB9XG5cbiAgLy8gUmV0dXJuIG51bGwgaWYgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudCBpcyB0aGUgZmlyc3Qgb3IgbGFzdCBub2RlXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGlmICh1c2VFZGdlQXNEZWZhdWx0KSB7XG4gICAgICBjb25zdCBbZmlyc3ROb2RlLCBsYXN0Tm9kZV0gPSBbXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1swXSksXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKSxcbiAgICAgIF1cblxuICAgICAgY29uc3QgW2ZpcnN0Tm9kZVJlY3QsIGxhc3ROb2RlUmVjdF0gPSBbXG4gICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0oZmlyc3ROb2RlKSxcbiAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybShsYXN0Tm9kZSksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoeSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0gPSBmaXJzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0gZmlyc3ROb2RlUmVjdC50b3AgLSB5XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5mb3VuZEF0SW5kZXggPSAwXG4gICAgICAgIH0gZWxzZSBpZiAoeSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0geSAtIGxhc3ROb2RlUmVjdC5ib3R0b21cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbGFzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IHRvcExldmVsTm9kZUtleXMubGVuZ3RoIC0gMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsb3Nlc3RCbG9ja0VsZW0/LmJsb2NrRWxlbSkge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCd1c2VFZGdlQXNEZWZhdWx0JywgdXNlRWRnZUFzRGVmYXVsdClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYmxvY2tFbGVtOiBudWxsLFxuICAgICAgICAgICAgaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaDogZmFsc2UsXG4gICAgICAgICAgfSBhcyBPdXRwdXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmQgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudFxuICAgIGxldCBpbmRleCA9IHN0YXJ0SW5kZXhcbiAgICBsZXQgZGlyZWN0aW9uID0gSW5kZXRlcm1pbmF0ZVxuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ3N0YXJ0IGluZGV4Jywgc3RhcnRJbmRleClcbiAgICB9XG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KHggKyBob3Jpem9udGFsT2Zmc2V0LCB5KVxuICAgICAgLy9jb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NKGVsZW0pXG4gICAgICAvLyBEbyBub3QgY29uc2lkZXIgdHJhbnNmb3JtIG9mIGJsb2NrcyB3aGVuIGNhbGN1bGF0aW5nIGRpc3RhbmNlXG4gICAgICBjb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NUmVjdChnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGVsZW0pKVxuXG4gICAgICBjb25zdCB7IG1hcmdpbkJvdHRvbSwgbWFyZ2luVG9wIH0gPSBnZXRDb2xsYXBzZWRNYXJnaW5zKGVsZW0pXG5cbiAgICAgIGNvbnN0IHJlY3QgPSBkb21SZWN0LmdlbmVyYXRlTmV3UmVjdCh7XG4gICAgICAgIGJvdHRvbTogZG9tUmVjdC5ib3R0b20gKyBtYXJnaW5Cb3R0b20sXG4gICAgICAgIGxlZnQ6IGFuY2hvckVsZW1lbnRSZWN0LmxlZnQsXG4gICAgICAgIHJpZ2h0OiBhbmNob3JFbGVtZW50UmVjdC5yaWdodCxcbiAgICAgICAgdG9wOiBkb21SZWN0LnRvcCAtIG1hcmdpblRvcCxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHsgZGlzdGFuY2UsIGlzT25Cb3R0b21TaWRlLCBpc09uVG9wU2lkZSB9ID0gcmVjdC5kaXN0YW5jZUZyb21Qb2ludChwb2ludClcblxuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZygnZGlzdGFuY2UnLCBkaXN0YW5jZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGRpc3RhbmNlID09PSAwKSB7XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IGluZGV4XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlICYmXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUuZ2V0VHlwZSgpID09PSAncGFyYWdyYXBoJyAmJlxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlLmdldFRleHRDb250ZW50KCkgPT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICghZnV6enkpIHtcbiAgICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbnVsbFxuICAgICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5pc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9IGVsc2UgaWYgKGZ1enp5KSB7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UpIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSA9IGVsZW1cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4ID0gaW5kZXhcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSBJbmRldGVybWluYXRlKSB7XG4gICAgICAgIGlmIChpc09uVG9wU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IFVwd2FyZFxuICAgICAgICB9IGVsc2UgaWYgKGlzT25Cb3R0b21TaWRlKSB7XG4gICAgICAgICAgZGlyZWN0aW9uID0gRG93bndhcmRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBzdG9wIHNlYXJjaCBibG9jayBlbGVtZW50XG4gICAgICAgICAgZGlyZWN0aW9uID0gSW5maW5pdHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbmRleCArPSBkaXJlY3Rpb25cbiAgICB9XG4gIH0pXG5cbiAgLy8gU3RvcmUgaW4gY2FjaGUgYmVmb3JlIHJldHVybmluZ1xuICBjYWNoZS5wcm9wcyA9IHByb3BzXG4gIGNhY2hlLnJlc3VsdCA9IHtcbiAgICBibG9ja0VsZW06IGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUsXG4gICAgZm91bmRBdEluZGV4OiBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCxcbiAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBjbG9zZXN0QmxvY2tFbGVtLmlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGgsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJsb2NrRWxlbTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0sXG4gICAgYmxvY2tOb2RlOiBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSxcbiAgICBmb3VuZEF0SW5kZXg6IGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4LFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGNsb3Nlc3RCbG9ja0VsZW0uaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIiRnZXROb2RlQnlLZXkiLCJQb2ludCIsIlJlY3QiLCJnZXRDb2xsYXBzZWRNYXJnaW5zIiwiZ2V0VG9wTGV2ZWxOb2RlS2V5cyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0iLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJjYWNoZSIsInByb3BzIiwicmVzdWx0IiwiaXNQb2ludENsb3NlIiwicHJldmlvdXMiLCJjdXJyZW50IiwidGhyZXNob2xkIiwiZHgiLCJ4IiwiZHkiLCJ5IiwiZ2V0Tm9kZUNsb3NlVG9Qb2ludCIsImFuY2hvckVsZW0iLCJjYWNoZV90cmVzaG9sZCIsImVkaXRvciIsImZ1enp5IiwiaG9yaXpvbnRhbE9mZnNldCIsInBvaW50Iiwic3RhcnRJbmRleCIsInVzZUVkZ2VBc0RlZmF1bHQiLCJ2ZXJib3NlIiwiYW5jaG9yRWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BMZXZlbE5vZGVLZXlzIiwiY2xvc2VzdEJsb2NrRWxlbSIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImRpc3RhbmNlIiwiSW5maW5pdHkiLCJmb3VuZEF0SW5kZXgiLCJpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiZmlyc3ROb2RlIiwibGFzdE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJsZW5ndGgiLCJmaXJzdE5vZGVSZWN0IiwibGFzdE5vZGVSZWN0IiwidG9wIiwiYm90dG9tIiwiaW5kZXgiLCJkaXJlY3Rpb24iLCJrZXkiLCJlbGVtIiwiZG9tUmVjdCIsImZyb21ET01SZWN0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luVG9wIiwicmVjdCIsImdlbmVyYXRlTmV3UmVjdCIsImxlZnQiLCJyaWdodCIsImlzT25Cb3R0b21TaWRlIiwiaXNPblRvcFNpZGUiLCJkaXN0YW5jZUZyb21Qb2ludCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsYUFBYSxRQUFRLFVBQVM7QUFFdkMsU0FBU0MsS0FBSyxRQUFRLDBCQUF5QjtBQUMvQyxTQUFTQyxJQUFJLFFBQVEseUJBQXdCO0FBQzdDLFNBQVNDLG1CQUFtQixRQUFRLGtDQUFpQztBQUNyRSxTQUFTQyxtQkFBbUIsUUFBUSxrQ0FBaUM7QUFDckUsU0FBU0MscUNBQXFDLFFBQVEsdUNBQXNDO0FBRTVGLGFBQWE7QUFDYixNQUFNQyxXQUFXO0FBQ2pCLE1BQU1DLFNBQVMsQ0FBQztBQUNoQixNQUFNQyxnQkFBZ0I7QUEwQnRCLE1BQU1DLFFBQVE7SUFDWkMsT0FBTztJQUNQQyxRQUFRO0FBQ1Y7QUFFQSxTQUFTQyxhQUFhQyxRQUFlLEVBQUVDLE9BQWMsRUFBRUMsWUFBb0IsRUFBRTtJQUMzRSxNQUFNQyxLQUFLSCxTQUFTSSxDQUFDLEdBQUdILFFBQVFHLENBQUM7SUFDakMsTUFBTUMsS0FBS0wsU0FBU00sQ0FBQyxHQUFHTCxRQUFRSyxDQUFDO0lBQ2pDLE9BQU9ILEtBQUtBLEtBQUtFLEtBQUtBLE1BQU1ILFlBQVlBO0FBQzFDO0FBRUEsT0FBTyxTQUFTSyxvQkFBb0JWLEtBQVk7SUFDOUMsTUFBTSxFQUNKVyxVQUFVLEVBQ1ZDLGlCQUFpQixFQUFFLEVBQ25CQyxNQUFNLEVBQ05DLFFBQVEsS0FBSyxFQUNiQyxtQkFBbUIsQ0FBQyxFQUNwQkMsT0FBTyxFQUFFVCxDQUFDLEVBQUVFLENBQUMsRUFBRSxFQUNmUSxhQUFhLENBQUMsRUFDZEMsbUJBQW1CLEtBQUssRUFDeEJDLFVBQVUsS0FBSyxFQUNoQixHQUFHbkI7SUFFSixZQUFZO0lBQ1osSUFDRVksaUJBQWlCLEtBQ2pCYixNQUFNQyxLQUFLLElBQ1hELE1BQU1FLE1BQU0sSUFDWkYsTUFBTUMsS0FBSyxDQUFDYyxLQUFLLEtBQUtkLE1BQU1j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
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXROb2RlQ2xvc2VUb1BvaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgbGV4aWNhbEltcG9ydCBmcm9tICdsZXhpY2FsJ1xuY29uc3QgeyAkZ2V0Tm9kZUJ5S2V5IH0gPSBsZXhpY2FsSW1wb3J0XG5cbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcG9pbnQuanMnXG5pbXBvcnQgeyBSZWN0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVjdC5qcydcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zLmpzJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMuanMnXG5pbXBvcnQgeyBnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtIH0gZnJvbSAnLi9nZXRCb3VuZGluZ1JlY3RXaXRob3V0VHJhbnNmb3JtLmpzJ1xuXG4vLyBEaXJlY3Rpb25zXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG50eXBlIFByb3BzID0ge1xuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudFxuICBjYWNoZV90cmVzaG9sZD86IG51bWJlclxuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIGZ1enp5IG1ha2VzIHRoZSBzZWFyY2ggbm90IGV4YWN0LiBJZiBubyBleGFjdCBtYXRjaCBmb3VuZCwgZmluZCB0aGUgY2xvc2VzIG5vZGUgaW5zdGVhZCBvZiByZXR1cm5pbmcgbnVsbCAqL1xuICBmdXp6eT86IGJvb2xlYW5cbiAgaG9yaXpvbnRhbE9mZnNldD86IG51bWJlclxuICBwb2ludDogUG9pbnRcbiAgLyoqXG4gICAqIFRoZSBpbmRleCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4gSXQgY2FuIGJlIGEgY29uc2lkZXJhYmxlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB0aGUgaW5kZXggb2YgdGhlXG4gICAqIHByZXZpb3VzbHkgZm91bmQgbm9kZSwgYXMgdGhlIG5vZGUgaXMgbGlrZWx5IHRvIGJlIGNsb3NlIHRvIHRoZSBuZXh0IG5vZGUuXG4gICAqL1xuICBzdGFydEluZGV4PzogbnVtYmVyXG4gIHVzZUVkZ2VBc0RlZmF1bHQ/OiBib29sZWFuXG4gIHZlcmJvc2U/OiBib29sZWFuXG59XG5cbnR5cGUgT3V0cHV0ID0ge1xuICBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbFxuICBibG9ja05vZGU6IExleGljYWxOb2RlIHwgbnVsbFxuICBmb3VuZEF0SW5kZXg6IG51bWJlclxuICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBib29sZWFuXG59XG5cbmNvbnN0IGNhY2hlID0ge1xuICBwcm9wczogbnVsbCBhcyBQcm9wcyB8IG51bGwsXG4gIHJlc3VsdDogbnVsbCBhcyBPdXRwdXQgfCBudWxsLFxufVxuXG5mdW5jdGlvbiBpc1BvaW50Q2xvc2UocHJldmlvdXM6IFBvaW50LCBjdXJyZW50OiBQb2ludCwgdGhyZXNob2xkOiBudW1iZXIgPSAyMCk6IGJvb2xlYW4ge1xuICBjb25zdCBkeCA9IHByZXZpb3VzLnggLSBjdXJyZW50LnhcbiAgY29uc3QgZHkgPSBwcmV2aW91cy55IC0gY3VycmVudC55XG4gIHJldHVybiBkeCAqIGR4ICsgZHkgKiBkeSA8PSB0aHJlc2hvbGQgKiB0aHJlc2hvbGRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVDbG9zZVRvUG9pbnQocHJvcHM6IFByb3BzKTogT3V0cHV0IHtcbiAgY29uc3Qge1xuICAgIGFuY2hvckVsZW0sXG4gICAgY2FjaGVfdHJlc2hvbGQgPSAyMCxcbiAgICBlZGl0b3IsXG4gICAgZnV6enkgPSBmYWxzZSxcbiAgICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbiAgICBwb2ludDogeyB4LCB5IH0sXG4gICAgc3RhcnRJbmRleCA9IDAsXG4gICAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICAgIHZlcmJvc2UgPSBmYWxzZSxcbiAgfSA9IHByb3BzXG5cbiAgLy8gVXNlIGNhY2hlXG4gIGlmIChcbiAgICBjYWNoZV90cmVzaG9sZCA+IDAgJiZcbiAgICBjYWNoZS5wcm9wcyAmJlxuICAgIGNhY2hlLnJlc3VsdCAmJlxuICAgIGNhY2hlLnByb3BzLmZ1enp5ID09PSBwcm9wcy5mdXp6eSAmJlxuICAgIGNhY2hlLnByb3BzLmhvcml6b250YWxPZmZzZXQgPT09IHByb3BzLmhvcml6b250YWxPZmZzZXQgJiZcbiAgICBjYWNoZS5wcm9wcy51c2VFZGdlQXNEZWZhdWx0ID09PSBwcm9wcy51c2VFZGdlQXNEZWZhdWx0ICYmXG4gICAgaXNQb2ludENsb3NlKGNhY2hlLnByb3BzLnBvaW50LCBwcm9wcy5wb2ludCwgY2FjaGVfdHJlc2hvbGQpXG4gICkge1xuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdSZXR1cm5pbmcgY2FjaGVkIHJlc3VsdCcpXG4gICAgfVxuICAgIHJldHVybiBjYWNoZS5yZXN1bHRcbiAgfVxuXG4gIGNvbnN0IGFuY2hvckVsZW1lbnRSZWN0ID0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICBjb25zdCB0b3BMZXZlbE5vZGVLZXlzID0gZ2V0VG9wTGV2ZWxOb2RlS2V5cyhlZGl0b3IpXG5cbiAgY29uc3QgY2xvc2VzdEJsb2NrRWxlbToge1xuICAgIGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsXG4gICAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbiAgICBkaXN0YW5jZTogbnVtYmVyXG4gICAgZm91bmRBdEluZGV4OiBudW1iZXJcbiAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBib29sZWFuXG4gIH0gPSB7XG4gICAgYmxvY2tFbGVtOiBudWxsLFxuICAgIGJsb2NrTm9kZTogbnVsbCxcbiAgICBkaXN0YW5jZTogSW5maW5pdHksXG4gICAgZm91bmRBdEluZGV4OiAtMSxcbiAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBmYWxzZSxcbiAgfVxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGZpcnN0Tm9kZSksXG4gICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0obGFzdE5vZGUpLFxuICAgICAgXVxuXG4gICAgICBpZiAoZmlyc3ROb2RlUmVjdCAmJiBsYXN0Tm9kZVJlY3QpIHtcbiAgICAgICAgaWYgKHkgPCBmaXJzdE5vZGVSZWN0LnRvcCkge1xuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5kaXN0YW5jZSA9IGZpcnN0Tm9kZVJlY3QudG9wIC0geVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlID0gJGdldE5vZGVCeUtleSh0b3BMZXZlbE5vZGVLZXlzWzBdKVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4ID0gMFxuICAgICAgICB9IGVsc2UgaWYgKHkgPiBsYXN0Tm9kZVJlY3QuYm90dG9tKSB7XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5kaXN0YW5jZSA9IHkgLSBsYXN0Tm9kZVJlY3QuYm90dG9tXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSlcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSA9IGxhc3ROb2RlXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5mb3VuZEF0SW5kZXggPSB0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjbG9zZXN0QmxvY2tFbGVtPy5ibG9ja0VsZW0pIHtcbiAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygndXNlRWRnZUFzRGVmYXVsdCcsIHVzZUVkZ2VBc0RlZmF1bHQpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJsb2NrRWxlbTogbnVsbCxcbiAgICAgICAgICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGZhbHNlLFxuICAgICAgICAgIH0gYXMgT3V0cHV0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaW5kIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnRcbiAgICBsZXQgaW5kZXggPSBzdGFydEluZGV4XG4gICAgbGV0IGRpcmVjdGlvbiA9IEluZGV0ZXJtaW5hdGVcblxuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdzdGFydCBpbmRleCcsIHN0YXJ0SW5kZXgpXG4gICAgfVxuXG4gICAgd2hpbGUgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCkge1xuICAgICAgY29uc3Qga2V5ID0gdG9wTGV2ZWxOb2RlS2V5c1tpbmRleF1cbiAgICAgIGNvbnN0IGVsZW0gPSBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KGtleSlcbiAgICAgIGlmIChlbGVtID09PSBudWxsKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjb25zdCBwb2ludCA9IG5ldyBQb2ludCh4ICsgaG9yaXpvbnRhbE9mZnNldCwgeSlcbiAgICAgIC8vY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgLy8gRG8gbm90IGNvbnNpZGVyIHRyYW5zZm9ybSBvZiBibG9ja3Mgd2hlbiBjYWxjdWxhdGluZyBkaXN0YW5jZVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTVJlY3QoZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybShlbGVtKSlcblxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7IGRpc3RhbmNlLCBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSA9IHJlY3QuZGlzdGFuY2VGcm9tUG9pbnQocG9pbnQpXG5cbiAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgIC8vY29uc29sZS5sb2coJ2Rpc3RhbmNlJywgZGlzdGFuY2UpXG4gICAgICB9XG5cbiAgICAgIGlmIChkaXN0YW5jZSA9PT0gMCkge1xuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSA9IGVsZW1cbiAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5mb3VuZEF0SW5kZXggPSBpbmRleFxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0gZGlzdGFuY2VcblxuICAgICAgICAvLyBDaGVjayBpZiBibG9ja05vZGUgaXMgYW4gZW1wdHkgdGV4dCBub2RlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSAmJlxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlLmdldFR5cGUoKSA9PT0gJ3BhcmFncmFwaCcgJiZcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZS5nZXRUZXh0Q29udGVudCgpID09PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoIWZ1enp5KSB7XG4gICAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSA9IG51bGxcbiAgICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlID0gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfSBlbHNlIGlmIChmdXp6eSkge1xuICAgICAgICBpZiAoZGlzdGFuY2UgPCBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlKSB7XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0gPSBlbGVtXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0gZGlzdGFuY2VcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IGluZGV4XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIC8vIFN0b3JlIGluIGNhY2hlIGJlZm9yZSByZXR1cm5pbmdcbiAgY2FjaGUucHJvcHMgPSBwcm9wc1xuICBjYWNoZS5yZXN1bHQgPSB7XG4gICAgYmxvY2tFbGVtOiBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSxcbiAgICBibG9ja05vZGU6IGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlLFxuICAgIGZvdW5kQXRJbmRleDogY2xvc2VzdEJsb2NrRWxlbS5mb3VuZEF0SW5kZXgsXG4gICAgaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaDogY2xvc2VzdEJsb2NrRWxlbS5pc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoLFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBibG9ja0VsZW06IGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUsXG4gICAgZm91bmRBdEluZGV4OiBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCxcbiAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBjbG9zZXN0QmxvY2tFbGVtLmlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGgsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJsZXhpY2FsSW1wb3J0IiwiJGdldE5vZGVCeUtleSIsIlBvaW50IiwiUmVjdCIsImdldENvbGxhcHNlZE1hcmdpbnMiLCJnZXRUb3BMZXZlbE5vZGVLZXlzIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSIsIkRvd253YXJkIiwiVXB3YXJkIiwiSW5kZXRlcm1pbmF0ZSIsImNhY2hlIiwicHJvcHMiLCJyZXN1bHQiLCJpc1BvaW50Q2xvc2UiLCJwcmV2aW91cyIsImN1cnJlbnQiLCJ0aHJlc2hvbGQiLCJkeCIsIngiLCJkeSIsInkiLCJnZXROb2RlQ2xvc2VUb1BvaW50IiwiYW5jaG9yRWxlbSIsImNhY2hlX3RyZXNob2xkIiwiZWRpdG9yIiwiZnV6enkiLCJob3Jpem9udGFsT2Zmc2V0IiwicG9pbnQiLCJzdGFydEluZGV4IiwidXNlRWRnZUFzRGVmYXVsdCIsInZlcmJvc2UiLCJhbmNob3JFbGVtZW50UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInRvcExldmVsTm9kZUtleXMiLCJjbG9zZXN0QmxvY2tFbGVtIiwiYmxvY2tFbGVtIiwiYmxvY2tOb2RlIiwiZGlzdGFuY2UiLCJJbmZpbml0eSIsImZvdW5kQXRJbmRleCIsImlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGgiLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJmaXJzdE5vZGUiLCJsYXN0Tm9kZSIsImdldEVsZW1lbnRCeUtleSIsImxlbmd0aCIsImZpcnN0Tm9kZVJlY3QiLCJsYXN0Tm9kZVJlY3QiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJkb21SZWN0IiwiZnJvbURPTVJlY3QiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5Ub3AiLCJyZWN0IiwiZ2VuZXJhdGVOZXdSZWN0IiwibGVmdCIsInJpZ2h0IiwiaXNPbkJvdHRvbVNpZGUiLCJpc09uVG9wU2lkZSIsImRpc3RhbmNlRnJvbVBvaW50IiwiZ2V0VHlwZSIsImdldFRleHRDb250ZW50Il0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPQSxtQkFBbUIsVUFBUztBQUNuQyxNQUFNLEVBQUVDLGFBQWEsRUFBRSxHQUFHRDtBQUUxQixTQUFTRSxLQUFLLFFBQVEsMEJBQXlCO0FBQy9DLFNBQVNDLElBQUksUUFBUSx5QkFBd0I7QUFDN0MsU0FBU0MsbUJBQW1CLFFBQVEsa0NBQWlDO0FBQ3JFLFNBQVNDLG1CQUFtQixRQUFRLGtDQUFpQztBQUNyRSxTQUFTQyxxQ0FBcUMsUUFBUSx1Q0FBc0M7QUFFNUYsYUFBYTtBQUNiLE1BQU1DLFdBQVc7QUFDakIsTUFBTUMsU0FBUyxDQUFDO0FBQ2hCLE1BQU1DLGdCQUFnQjtBQTBCdEIsTUFBTUMsUUFBUTtJQUNaQyxPQUFPO0lBQ1BDLFFBQVE7QUFDVjtBQUVBLFNBQVNDLGFBQWFDLFFBQWUsRUFBRUMsT0FBYyxFQUFFQyxZQUFvQixFQUFFO0lBQzNFLE1BQU1DLEtBQUtILFNBQVNJLENBQUMsR0FBR0gsUUFBUUcsQ0FBQztJQUNqQyxNQUFNQyxLQUFLTCxTQUFTTSxDQUFDLEdBQUdMLFFBQVFLLENBQUM7SUFDakMsT0FBT0gsS0FBS0EsS0FBS0UsS0FBS0EsTUFBTUgsWUFBWUE7QUFDMUM7QUFFQSxPQUFPLFNBQVNLLG9CQUFvQlYsS0FBWTtJQUM5QyxNQUFNLEVBQ0pXLFVBQVUsRUFDVkMsaUJBQWlCLEVBQUUsRUFDbkJDLE1BQU0sRUFDTkMsUUFBUSxLQUFLLEVBQ2JDLG1CQUFtQixDQUFDLEVBQ3BCQyxPQUFPLEVBQUVULENBQUMsRUFBRUUsQ0FBQyxFQUFFLEVBQ2ZRLGFBQWEsQ0FBQyxFQUNkQyxtQkFBbUIsS0FBSyxFQUN4QkMsVUFBVSxLQUFLLEVBQ2hCLEdBQUduQjtJQUVKLFlBQVk7SUFDWixJQUNF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/index.tsx"],"names":[],"mappings":";AAqBA,OAAO,cAAc,CAAA;AAgXrB,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,GAAG,CAAC,OAAO,CAGd"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import
|
|
2
|
+
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js';
|
|
3
|
+
const { useLexicalComposerContext } = lexicalComposerContextImport;
|
|
3
4
|
import { eventFiles } from '@lexical/rich-text';
|
|
4
|
-
import
|
|
5
|
+
import lexicalImport from 'lexical';
|
|
6
|
+
const { $getNearestNodeFromDOMNode, $getNodeByKey } = lexicalImport;
|
|
5
7
|
import * as React from 'react';
|
|
6
8
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
7
9
|
import { createPortal } from 'react-dom';
|
|
@@ -288,4 +290,4 @@ export function DraggableBlockPlugin({ anchorElem = document.body }) {
|
|
|
288
290
|
return useDraggableBlockMenu(editor, anchorElem, editor._editable);
|
|
289
291
|
}
|
|
290
292
|
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBEcmFnRXZlbnQgYXMgUmVhY3REcmFnRXZlbnQgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQuanMnXG5pbXBvcnQgeyBldmVudEZpbGVzIH0gZnJvbSAnQGxleGljYWwvcmljaC10ZXh0J1xuaW1wb3J0IHsgJGdldE5lYXJlc3ROb2RlRnJvbURPTU5vZGUsICRnZXROb2RlQnlLZXkgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ndWFyZC5qcydcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcG9pbnQuanMnXG5pbXBvcnQgeyBnZXRUb3BMZXZlbE5vZGVLZXlzIH0gZnJvbSAnLi4vdXRpbHMvZ2V0VG9wTGV2ZWxOb2RlS2V5cy5qcydcbmltcG9ydCB7IGlzT25IYW5kbGVFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvaXNPbkhhbmRsZUVsZW1lbnQuanMnXG5pbXBvcnQgeyBzZXRIYW5kbGVQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxzL3NldEhhbmRsZVBvc2l0aW9uLmpzJ1xuaW1wb3J0IHsgZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSB9IGZyb20gJy4vZ2V0Qm91bmRpbmdSZWN0V2l0aG91dFRyYW5zZm9ybS5qcydcbmltcG9ydCB7IGdldE5vZGVDbG9zZVRvUG9pbnQgfSBmcm9tICcuL2dldE5vZGVDbG9zZVRvUG9pbnQuanMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCB7IHNldFRhcmdldExpbmUgfSBmcm9tICcuL3NldFRhcmdldExpbmUuanMnXG5cbmNvbnN0IFNQQUNFID0gLTI0XG5jb25zdCBEUkFHR0FCTEVfQkxPQ0tfTUVOVV9DTEFTU05BTUUgPSAnZHJhZ2dhYmxlLWJsb2NrLW1lbnUnXG5jb25zdCBEUkFHX0RBVEFfRk9STUFUID0gJ2FwcGxpY2F0aW9uL3gtbGV4aWNhbC1kcmFnLWJsb2NrJ1xuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gc2V0RHJhZ0ltYWdlKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyLCBkcmFnZ2FibGVCbG9ja0VsZW06IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IHsgdHJhbnNmb3JtIH0gPSBkcmFnZ2FibGVCbG9ja0VsZW0uc3R5bGVcblxuICAvLyBSZW1vdmUgZHJhZ0ltYWdlIGJvcmRlcnNcbiAgZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShkcmFnZ2FibGVCbG9ja0VsZW0sIDAsIDApXG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZHJhZ2dhYmxlQmxvY2tFbGVtLnN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxuICB9KVxufVxuXG5mdW5jdGlvbiBoaWRlVGFyZ2V0TGluZShcbiAgdGFyZ2V0TGluZUVsZW06IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgbGFzdFRhcmdldEJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsLFxuKSB7XG4gIGlmICh0YXJnZXRMaW5lRWxlbSkge1xuICAgIHRhcmdldExpbmVFbGVtLnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgfVxuICBpZiAobGFzdFRhcmdldEJsb2NrRWxlbSkge1xuICAgIGxhc3RUYXJnZXRCbG9ja0VsZW0uc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgIGxhc3RUYXJnZXRCbG9ja0VsZW0uc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgwLCAwKSdcbiAgICAvL2xhc3RUYXJnZXRCbG9ja0VsZW0uc3R5bGUuYm9yZGVyID0gJ25vbmUnXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlRHJhZ2dhYmxlQmxvY2tNZW51KFxuICBlZGl0b3I6IExleGljYWxFZGl0b3IsXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50LFxuICBpc0VkaXRhYmxlOiBib29sZWFuLFxuKTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBzY3JvbGxlckVsZW0gPSBhbmNob3JFbGVtLnBhcmVudEVsZW1lbnRcblxuICBjb25zdCBtZW51UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB0YXJnZXRMaW5lUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBkZWJ1Z0hpZ2hsaWdodFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgaXNEcmFnZ2luZ0Jsb2NrUmVmID0gdXNlUmVmPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbZHJhZ2dhYmxlQmxvY2tFbGVtLCBzZXREcmFnZ2FibGVCbG9ja0VsZW1dID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbbGFzdFRhcmdldEJsb2NrRWxlbSwgc2V0TGFzdFRhcmdldEJsb2NrRWxlbV0gPSB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgY2FsY3VsYXRlRGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgcGFnZVg6IG51bWJlcixcbiAgICAgIHBhZ2VZOiBudW1iZXIsXG4gICAgICB0YXJnZXQ6IEhUTUxFbGVtZW50LFxuICAgICAgaG9yaXpvbnRhbEJ1ZmZlcjogbnVtYmVyID0gNTAsXG4gICAgICB2ZXJ0aWNhbEJ1ZmZlcjogbnVtYmVyID0gMjUsXG4gICAgKTogbnVtYmVyID0+IHtcbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGNvbnN0IGFkanVzdGVkVG9wID0gdG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRCb3R0b20gPSBib3R0b20gKyB3aW5kb3cuc2Nyb2xsWVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYWdlWSA8IGFkanVzdGVkVG9wIC0gdmVydGljYWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWSA+IGFkanVzdGVkQm90dG9tICsgdmVydGljYWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA8IGxlZnQgLSBob3Jpem9udGFsQnVmZmVyIHx8XG4gICAgICAgICAgcGFnZVggPiByaWdodCArIGhvcml6b250YWxCdWZmZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0RHJhZ2dhYmxlQmxvY2tFbGVtKG51bGwpXG4gICAgICAgICAgcmV0dXJuIGRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZHJhZ2dhYmxlQmxvY2tFbGVtIHRvIGJlIGZvdW5kIHdoZW4gdGhlIG1vdXNlIGlzIGluIHRoZVxuICAgICAgICAvLyBidWZmZXIgem9uZSBhcm91bmQgdGhlIHNjcm9sbGVyRWxlbS5cbiAgICAgICAgaWYgKHBhZ2VYIDwgbGVmdCB8fCBwYWdlWCA+IHJpZ2h0KSB7XG4gICAgICAgICAgZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gcGFnZVggPCBsZWZ0ID8gcGFnZVggLSBsZWZ0IDogcGFnZVggLSByaWdodFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtXG4gICAgfSxcbiAgICBbc2Nyb2xsZXJFbGVtXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBwb3NpdGlvbmluZyBvZiB0aGUgZHJhZyBoYW5kbGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvbkRvY3VtZW50TW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXRcbiAgICAgIGlmICghaXNIVE1MRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBjYWxjdWxhdGVEaXN0YW5jZUZyb21TY3JvbGxlckVsZW0oXG4gICAgICAgIGV2ZW50LnBhZ2VYLFxuICAgICAgICBldmVudC5wYWdlWSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgKVxuXG4gICAgICBpZiAoaXNPbkhhbmRsZUVsZW1lbnQodGFyZ2V0LCBEUkFHR0FCTEVfQkxPQ0tfTUVOVV9DTEFTU05BTUUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB0b3BMZXZlbE5vZGVLZXlzID0gZ2V0VG9wTGV2ZWxOb2RlS2V5cyhlZGl0b3IpXG4gICAgICBjb25zdCB7XG4gICAgICAgIGJsb2NrRWxlbTogX2RyYWdnYWJsZUJsb2NrRWxlbSxcbiAgICAgICAgZm91bmRBdEluZGV4LFxuICAgICAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoLFxuICAgICAgfSA9IGdldE5vZGVDbG9zZVRvUG9pbnQoe1xuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBjYWNoZV90cmVzaG9sZDogMCxcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBob3Jpem9udGFsT2Zmc2V0OiAtZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtLFxuICAgICAgICBwb2ludDogbmV3IFBvaW50KGV2ZW50LngsIGV2ZW50LnkpLFxuICAgICAgICBzdGFydEluZGV4OiBnZXRDdXJyZW50SW5kZXgodG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGgpLFxuICAgICAgICB1c2VFZGdlQXNEZWZhdWx0OiBmYWxzZSxcbiAgICAgIH0pXG4gICAgICAvL2lmIChERUJVRyAmJiBfZHJhZ2dhYmxlQmxvY2tFbGVtKSB7XG4gICAgICAvL3RhcmdldEJsb2NrRWxlbS5zdHlsZS5ib3JkZXIgPSAnM3B4IHNvbGlkIHJlZCdcbiAgICAgIC8vIGhpZ2hsaWdodEVsZW1PcmlnaW5hbFBvc2l0aW9uKGRlYnVnSGlnaGxpZ2h0UmVmLCBfZHJhZ2dhYmxlQmxvY2tFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgLy99XG4gICAgICBwcmV2SW5kZXggPSBmb3VuZEF0SW5kZXhcblxuICAgICAgaWYgKCFfZHJhZ2dhYmxlQmxvY2tFbGVtICYmICFpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXREcmFnZ2FibGVCbG9ja0VsZW0oX2RyYWdnYWJsZUJsb2NrRWxlbSlcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGlzIG91dHNpZGUgdGhlIGFjdHVhbCBlZGl0b3IsIHdlIG5lZWQgdG8gbGlzdGVuIHRvIHRoZSBkb2N1bWVudFxuICAgIC8vIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHdoZW4gdGhlIG1vdXNlIGlzIG91dHNpZGUgdGhlIGVkaXRvciBhbmQgcmVzcGVjdCBhIGJ1ZmZlciBhcm91bmQgdGhlXG4gICAgLy8gdGhlIHNjcm9sbGVyRWxlbSB0byBhdm9pZCB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGRpc2FwcGVhcmluZyB0b28gZWFybHkuXG4gICAgZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG4gICAgfVxuICB9LCBbc2Nyb2xsZXJFbGVtLCBhbmNob3JFbGVtLCBlZGl0b3IsIGNhbGN1bGF0ZURpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobWVudVJlZi5jdXJyZW50KSB7XG4gICAgICBzZXRIYW5kbGVQb3NpdGlvbihkcmFnZ2FibGVCbG9ja0VsZW0sIG1lbnVSZWYuY3VycmVudCwgYW5jaG9yRWxlbSwgU1BBQ0UpXG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbSwgZHJhZ2dhYmxlQmxvY2tFbGVtXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRHJhZ292ZXIoZXZlbnQ6IERyYWdFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgaWYgKCFpc0RyYWdnaW5nQmxvY2tSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IFtpc0ZpbGVUcmFuc2Zlcl0gPSBldmVudEZpbGVzKGV2ZW50KVxuICAgICAgaWYgKGlzRmlsZVRyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHBhZ2VZLCB0YXJnZXQgfSA9IGV2ZW50XG4gICAgICBpZiAoIWlzSFRNTEVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gY2FsY3VsYXRlRGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtKFxuICAgICAgICBldmVudC5wYWdlWCxcbiAgICAgICAgZXZlbnQucGFnZVksXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgMTAwLFxuICAgICAgICA1MCxcbiAgICAgIClcblxuICAgICAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIGJsb2NrRWxlbTogdGFyZ2V0QmxvY2tFbGVtLFxuICAgICAgICBmb3VuZEF0SW5kZXgsXG4gICAgICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGgsXG4gICAgICB9ID0gZ2V0Tm9kZUNsb3NlVG9Qb2ludCh7XG4gICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgZnV6enk6IHRydWUsXG4gICAgICAgIGhvcml6b250YWxPZmZzZXQ6IC1kaXN0YW5jZUZyb21TY3JvbGxlckVsZW0sXG4gICAgICAgIHBvaW50OiBuZXcgUG9pbnQoZXZlbnQueCwgZXZlbnQueSksXG4gICAgICAgIHN0YXJ0SW5kZXg6IGdldEN1cnJlbnRJbmRleCh0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCksXG4gICAgICAgIHVzZUVkZ2VBc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICB9KVxuICAgICAgcHJldkluZGV4ID0gZm91bmRBdEluZGV4XG5cbiAgICAgIGNvbnN0IHRhcmdldExpbmVFbGVtID0gdGFyZ2V0TGluZVJlZi5jdXJyZW50XG4gICAgICAvLyB0YXJnZXRCbG9ja0VsZW0gPT09IG51bGwgc2hvdWxkbid0IGhhcHBlblxuICAgICAgaWYgKHRhcmdldEJsb2NrRWxlbSA9PT0gbnVsbCB8fCB0YXJnZXRMaW5lRWxlbSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgaWYgKGRyYWdnYWJsZUJsb2NrRWxlbSAhPT0gdGFyZ2V0QmxvY2tFbGVtKSB7XG4gICAgICAgIHNldFRhcmdldExpbmUoXG4gICAgICAgICAgU1BBQ0UsXG4gICAgICAgICAgdGFyZ2V0TGluZUVsZW0sXG4gICAgICAgICAgdGFyZ2V0QmxvY2tFbGVtLFxuICAgICAgICAgIGxhc3RUYXJnZXRCbG9ja0VsZW0sXG4gICAgICAgICAgcGFnZVksXG4gICAgICAgICAgYW5jaG9yRWxlbSxcbiAgICAgICAgICBldmVudCxcbiAgICAgICAgICBkZWJ1Z0hpZ2hsaWdodFJlZixcbiAgICAgICAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IGV2ZW50IHRvIGJlIGFibGUgdG8gdHJpZ2dlciBvbkRyb3AgZXZlbnRzXG4gICAgICAgIC8vIENhbGxpbmcgcHJldmVudERlZmF1bHQoKSBhZGRzIHRoZSBncmVlbiBwbHVzIGljb24gdG8gdGhlIGN1cnNvcixcbiAgICAgICAgLy8gaW5kaWNhdGluZyB0aGF0IHRoZSBkcm9wIGlzIGFsbG93ZWQuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhpZGVUYXJnZXRMaW5lKHRhcmdldExpbmVFbGVtLCBsYXN0VGFyZ2V0QmxvY2tFbGVtKVxuICAgICAgfVxuXG4gICAgICBzZXRMYXN0VGFyZ2V0QmxvY2tFbGVtKHRhcmdldEJsb2NrRWxlbSlcblxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgaWYgKCFpc0RyYWdnaW5nQmxvY2tSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IFtpc0ZpbGVUcmFuc2Zlcl0gPSBldmVudEZpbGVzKGV2ZW50KVxuICAgICAgaWYgKGlzRmlsZVRyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgY29uc3QgeyBkYXRhVHJhbnNmZXIsIHBhZ2VZLCB0YXJnZXQgfSA9IGV2ZW50XG4gICAgICBjb25zdCBkcmFnRGF0YSA9IGRhdGFUcmFuc2Zlcj8uZ2V0RGF0YShEUkFHX0RBVEFfRk9STUFUKSB8fCAnJ1xuXG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZHJhZ2dlZE5vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGRyYWdEYXRhKVxuICAgICAgICBpZiAoIWRyYWdnZWROb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBjYWxjdWxhdGVEaXN0YW5jZUZyb21TY3JvbGxlckVsZW0oXG4gICAgICAgICAgZXZlbnQucGFnZVgsXG4gICAgICAgICAgZXZlbnQucGFnZVksXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgIDEwMCxcbiAgICAgICAgICA1MCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiB0YXJnZXRCbG9ja0VsZW0sIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGggfSA9IGdldE5vZGVDbG9zZVRvUG9pbnQoe1xuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgIGZ1enp5OiB0cnVlLFxuICAgICAgICAgIGhvcml6b250YWxPZmZzZXQ6IC1kaXN0YW5jZUZyb21TY3JvbGxlckVsZW0sXG4gICAgICAgICAgcG9pbnQ6IG5ldyBQb2ludChldmVudC54LCBldmVudC55KSxcbiAgICAgICAgICB1c2VFZGdlQXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICghdGFyZ2V0QmxvY2tFbGVtKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZSA9ICRnZXROZWFyZXN0Tm9kZUZyb21ET01Ob2RlKHRhcmdldEJsb2NrRWxlbSlcbiAgICAgICAgaWYgKCF0YXJnZXROb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhcmdldE5vZGUgPT09IGRyYWdnZWROb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgaGVpZ2h0OiB0YXJnZXRCbG9ja0VsZW1IZWlnaHQsIHRvcDogdGFyZ2V0QmxvY2tFbGVtVG9wIH0gPVxuICAgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0odGFyZ2V0QmxvY2tFbGVtKVxuXG4gICAgICAgIGNvbnN0IG1vdXNlWSA9IHBhZ2VZXG4gICAgICAgIGNvbnN0IGlzQmVsb3cgPSBtb3VzZVkgPj0gdGFyZ2V0QmxvY2tFbGVtVG9wICsgdGFyZ2V0QmxvY2tFbGVtSGVpZ2h0IC8gMiArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKCFpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoKSB7XG4gICAgICAgICAgaWYgKGlzQmVsb3cpIHtcbiAgICAgICAgICAgIC8vIGJlbG93IHRhcmdldEJsb2NrRWxlbVxuICAgICAgICAgICAgdGFyZ2V0Tm9kZS5pbnNlcnRBZnRlcihkcmFnZ2VkTm9kZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gYWJvdmUgdGFyZ2V0QmxvY2tFbGVtXG4gICAgICAgICAgICB0YXJnZXROb2RlLmluc2VydEJlZm9yZShkcmFnZ2VkTm9kZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy9cbiAgICAgICAgICB0YXJnZXROb2RlLmluc2VydEJlZm9yZShkcmFnZ2VkTm9kZSlcbiAgICAgICAgICB0YXJnZXROb2RlLnJlbW92ZSgpXG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICBpZiAocGFnZVkgPj0gdGFyZ2V0QmxvY2tFbGVtVG9wICsgdGFyZ2V0QmxvY2tFbGVtSGVpZ2h0IC8gMikge1xuICAgICAgICAgIHRhcmdldE5vZGUuaW5zZXJ0QWZ0ZXIoZHJhZ2dlZE5vZGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0Tm9kZS5pbnNlcnRCZWZvcmUoZHJhZ2dlZE5vZGUpXG4gICAgICAgIH0qL1xuICAgICAgICBzZXREcmFnZ2FibGVCbG9ja0VsZW0obnVsbClcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gcmVnaXN0ZXIgb25EcmFnb3ZlciBldmVudCBsaXN0ZW5lcnM6XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBvbkRyYWdvdmVyKVxuICAgIC8vIHJlZ2lzdGVyIG9uRHJvcCBldmVudCBsaXN0ZW5lcnM6XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIG9uRHJvcClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIG9uRHJhZ292ZXIpXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgb25Ecm9wKVxuICAgIH1cbiAgfSwgW1xuICAgIGFuY2hvckVsZW0sXG4gICAgZWRpdG9yLFxuICAgIGxhc3RUYXJnZXRCbG9ja0VsZW0sXG4gICAgY2FsY3VsYXRlRGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtLFxuICAgIGRyYWdnYWJsZUJsb2NrRWxlbSxcbiAgXSlcblxuICBmdW5jdGlvbiBvbkRyYWdTdGFydChldmVudDogUmVhY3REcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KTogdm9pZCB7XG4gICAgY29uc3QgZGF0YVRyYW5zZmVyID0gZXZlbnQuZGF0YVRyYW5zZmVyXG4gICAgaWYgKCFkYXRhVHJhbnNmZXIgfHwgIWRyYWdnYWJsZUJsb2NrRWxlbSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldERyYWdJbWFnZShkYXRhVHJhbnNmZXIsIGRyYWdnYWJsZUJsb2NrRWxlbSlcbiAgICBsZXQgbm9kZUtleSA9ICcnXG4gICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gJGdldE5lYXJlc3ROb2RlRnJvbURPTU5vZGUoZHJhZ2dhYmxlQmxvY2tFbGVtKVxuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZUtleSA9IG5vZGUuZ2V0S2V5KClcbiAgICAgIH1cbiAgICB9KVxuICAgIGlzRHJhZ2dpbmdCbG9ja1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGRhdGFUcmFuc2Zlci5zZXREYXRhKERSQUdfREFUQV9GT1JNQVQsIG5vZGVLZXkpXG4gIH1cblxuICBmdW5jdGlvbiBvbkRyYWdFbmQoKTogdm9pZCB7XG4gICAgaXNEcmFnZ2luZ0Jsb2NrUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIGhpZGVUYXJnZXRMaW5lKHRhcmdldExpbmVSZWYuY3VycmVudCwgbGFzdFRhcmdldEJsb2NrRWxlbSlcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGRyYWdnYWJsZS1ibG9jay1tZW51XCJcbiAgICAgICAgZHJhZ2dhYmxlXG4gICAgICAgIG9uRHJhZ0VuZD17b25EcmFnRW5kfVxuICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2lzRWRpdGFibGUgPyAnaWNvbicgOiAnJ30gLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcmFnZ2FibGUtYmxvY2stdGFyZ2V0LWxpbmVcIiByZWY9e3RhcmdldExpbmVSZWZ9IC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlYnVnLWhpZ2hsaWdodFwiIHJlZj17ZGVidWdIaWdobGlnaHRSZWZ9IC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD4sXG4gICAgYW5jaG9yRWxlbSxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gRHJhZ2dhYmxlQmxvY2tQbHVnaW4oe1xuICBhbmNob3JFbGVtID0gZG9jdW1lbnQuYm9keSxcbn06IHtcbiAgYW5jaG9yRWxlbT86IEhUTUxFbGVtZW50XG59KTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICByZXR1cm4gdXNlRHJhZ2dhYmxlQmxvY2tNZW51KGVkaXRvciwgYW5jaG9yRWxlbSwgZWRpdG9yLl9lZGl0YWJsZSlcbn1cbiJdLCJuYW1lcyI6WyJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiZXZlbnRGaWxlcyIsIiRnZXROZWFyZXN0Tm9kZUZyb21ET01Ob2RlIiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsImlzSFRNTEVsZW1lbnQiLCJQb2ludCIsImdldFRvcExldmVsTm9kZUtleXMiLCJpc09uSGFuZGxlRWxlbWVudCIsInNldEhhbmRsZVBvc2l0aW9uIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSIsImdldE5vZGVDbG9zZVRvUG9pbnQiLCJzZXRUYXJnZXRMaW5lIiwiU1BBQ0UiLCJEUkFHR0FCTEVfQkxPQ0tfTUVOVV9DTEFTU05BTUUiLCJEUkFHX0RBVEFfRk9STUFUIiwicHJldkluZGV4IiwiSW5maW5pdHkiLCJnZXRDdXJyZW50SW5kZXgiLCJrZXlzTGVuZ3RoIiwiTWF0aCIsImZsb29yIiwic2V0RHJhZ0ltYWdlIiwiZGF0YVRyYW5zZmVyIiwiZHJhZ2dhYmxlQmxvY2tFbGVtIiwidHJhbnNmb3JtIiwic3R5bGUiLCJzZXRUaW1lb3V0IiwiaGlkZVRhcmdldExpbmUiLCJ0YXJnZXRMaW5lRWxlbSIsImxhc3RUYXJnZXRCbG9ja0VsZW0iLCJvcGFjaXR5IiwidXNlRHJhZ2dhYmxlQmxvY2tNZW51IiwiZWRpdG9yIiwiYW5jaG9yRWxlbSIsImlzRWRpdGFibGUiLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwibWVudVJlZiIsInRhcmdldExpbmVSZWYiLCJkZWJ1Z0hpZ2hsaWdodFJlZiIsImlzRHJhZ2dpbmdCbG9ja1JlZiIsInNldERyYWdnYWJsZUJsb2NrRWxlbSIsInNldExhc3RUYXJnZXRCbG9ja0VsZW0iLCJjYWxjdWxhdGVEaXN0YW5jZUZyb21TY3JvbGxlckVsZW0iLCJwYWdlWCIsInBhZ2VZIiwidGFyZ2V0IiwiaG9yaXpvbnRhbEJ1ZmZlciIsInZlcnRpY2FsQnVmZmVyIiwiZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtIiwiY29udGFpbnMiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJhZGp1c3RlZFRvcCIsIndpbmRvdyIsInNjcm9sbFkiLCJhZGp1c3RlZEJvdHRvbSIsIm9uRG9jdW1lbnRNb3VzZU1vdmUiLCJldmVudCIsInRvcExldmVsTm9kZUtleXMiLCJibG9ja0VsZW0iLCJfZHJhZ2dhYmxlQmxvY2tFbGVtIiwiZm91bmRBdEluZGV4IiwiaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCIsImNhY2hlX3RyZXNob2xkIiwiaG9yaXpvbnRhbE9mZnNldCIsInBvaW50IiwieCIsInkiLCJzdGFydEluZGV4IiwibGVuZ3RoIiwidXNlRWRnZUFzRGVmYXVsdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50Iiwib25EcmFnb3ZlciIsImlzRmlsZVRyYW5zZmVyIiwidGFyZ2V0QmxvY2tFbGVtIiwiZnV6enkiLCJ2ZXJib3NlIiwicHJldmVudERlZmF1bHQiLCJvbkRyb3AiLCJkcmFnRGF0YSIsImdldERhdGEiLCJ1cGRhdGUiLCJkcmFnZ2VkTm9kZSIsInRhcmdldE5vZGUiLCJoZWlnaHQiLCJ0YXJnZXRCbG9ja0VsZW1IZWlnaHQiLCJ0YXJnZXRCbG9ja0VsZW1Ub3AiLCJtb3VzZVkiLCJpc0JlbG93IiwiaW5zZXJ0QWZ0ZXIiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmUiLCJvbkRyYWdTdGFydCIsIm5vZGVLZXkiLCJub2RlIiwiZ2V0S2V5Iiwic2V0RGF0YSIsIm9uRHJhZ0VuZCIsIkZyYWdtZW50IiwiZGl2IiwiY2xhc3NOYW1lIiwiZHJhZ2dhYmxlIiwicmVmIiwiRHJhZ2dhYmxlQmxvY2tQbHVnaW4iLCJib2R5IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUlBLFNBQVNBLHlCQUF5QixRQUFRLDJDQUEwQztBQUNwRixTQUFTQyxVQUFVLFFBQVEscUJBQW9CO0FBQy9DLFNBQVNDLDBCQUEwQixFQUFFQyxhQUFhLFFBQVEsVUFBUztBQUNuRSxZQUFZQyxXQUFXLFFBQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDaEUsU0FBU0MsWUFBWSxRQUFRLFlBQVc7QUFFeEMsU0FBU0MsYUFBYSxRQUFRLDBCQUF5QjtBQUN2RCxTQUFTQyxLQUFLLFFBQVEsMEJBQXlCO0FBQy9DLFNBQVNDLG1C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
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBEcmFnRXZlbnQgYXMgUmVhY3REcmFnRXZlbnQgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IGxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmNvbnN0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9ID0gbGV4aWNhbENvbXBvc2VyQ29udGV4dEltcG9ydFxuXG5pbXBvcnQgeyBldmVudEZpbGVzIH0gZnJvbSAnQGxleGljYWwvcmljaC10ZXh0J1xuaW1wb3J0IGxleGljYWxJbXBvcnQgZnJvbSAnbGV4aWNhbCdcbmNvbnN0IHsgJGdldE5lYXJlc3ROb2RlRnJvbURPTU5vZGUsICRnZXROb2RlQnlLZXkgfSA9IGxleGljYWxJbXBvcnRcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZ3VhcmQuanMnXG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3BvaW50LmpzJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMuanMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50LmpzJ1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbi5qcydcbmltcG9ydCB7IGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0gfSBmcm9tICcuL2dldEJvdW5kaW5nUmVjdFdpdGhvdXRUcmFuc2Zvcm0uanMnXG5pbXBvcnQgeyBnZXROb2RlQ2xvc2VUb1BvaW50IH0gZnJvbSAnLi9nZXROb2RlQ2xvc2VUb1BvaW50LmpzJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5pbXBvcnQgeyBzZXRUYXJnZXRMaW5lIH0gZnJvbSAnLi9zZXRUYXJnZXRMaW5lLmpzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgRFJBR0dBQkxFX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2RyYWdnYWJsZS1ibG9jay1tZW51J1xuY29uc3QgRFJBR19EQVRBX0ZPUk1BVCA9ICdhcHBsaWNhdGlvbi94LWxleGljYWwtZHJhZy1ibG9jaydcblxubGV0IHByZXZJbmRleCA9IEluZmluaXR5XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRJbmRleChrZXlzTGVuZ3RoOiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoa2V5c0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBJbmZpbml0eVxuICB9XG4gIGlmIChwcmV2SW5kZXggPj0gMCAmJiBwcmV2SW5kZXggPCBrZXlzTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHByZXZJbmRleFxuICB9XG5cbiAgcmV0dXJuIE1hdGguZmxvb3Ioa2V5c0xlbmd0aCAvIDIpXG59XG5cbmZ1bmN0aW9uIHNldERyYWdJbWFnZShkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciwgZHJhZ2dhYmxlQmxvY2tFbGVtOiBIVE1MRWxlbWVudCkge1xuICBjb25zdCB7IHRyYW5zZm9ybSB9ID0gZHJhZ2dhYmxlQmxvY2tFbGVtLnN0eWxlXG5cbiAgLy8gUmVtb3ZlIGRyYWdJbWFnZSBib3JkZXJzXG4gIGRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoZHJhZ2dhYmxlQmxvY2tFbGVtLCAwLCAwKVxuXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGRyYWdnYWJsZUJsb2NrRWxlbS5zdHlsZS50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbiAgfSlcbn1cblxuZnVuY3Rpb24gaGlkZVRhcmdldExpbmUoXG4gIHRhcmdldExpbmVFbGVtOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIGxhc3RUYXJnZXRCbG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCxcbikge1xuICBpZiAodGFyZ2V0TGluZUVsZW0pIHtcbiAgICB0YXJnZXRMaW5lRWxlbS5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gIH1cbiAgaWYgKGxhc3RUYXJnZXRCbG9ja0VsZW0pIHtcbiAgICBsYXN0VGFyZ2V0QmxvY2tFbGVtLnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICBsYXN0VGFyZ2V0QmxvY2tFbGVtLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoMCwgMCknXG4gICAgLy9sYXN0VGFyZ2V0QmxvY2tFbGVtLnN0eWxlLmJvcmRlciA9ICdub25lJ1xuICB9XG59XG5cbmZ1bmN0aW9uIHVzZURyYWdnYWJsZUJsb2NrTWVudShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgdGFyZ2V0TGluZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZGVidWdIaWdobGlnaHRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGlzRHJhZ2dpbmdCbG9ja1JlZiA9IHVzZVJlZjxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW2RyYWdnYWJsZUJsb2NrRWxlbSwgc2V0RHJhZ2dhYmxlQmxvY2tFbGVtXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xhc3RUYXJnZXRCbG9ja0VsZW0sIHNldExhc3RUYXJnZXRCbG9ja0VsZW1dID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IGNhbGN1bGF0ZURpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHBhZ2VYOiBudW1iZXIsXG4gICAgICBwYWdlWTogbnVtYmVyLFxuICAgICAgdGFyZ2V0OiBIVE1MRWxlbWVudCxcbiAgICAgIGhvcml6b250YWxCdWZmZXI6IG51bWJlciA9IDUwLFxuICAgICAgdmVydGljYWxCdWZmZXI6IG51bWJlciA9IDI1LFxuICAgICk6IG51bWJlciA9PiB7XG4gICAgICBsZXQgZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gMFxuICAgICAgLy8gQ2FsY3VsYXRlIGRpc3RhbmNlIGJldHdlZW4gc2Nyb2xsZXJFbGVtIGFuZCB0YXJnZXQgaWYgdGFyZ2V0IGlzIG5vdCBpbiBzY3JvbGxlckVsZW1cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gJiYgIXNjcm9sbGVyRWxlbS5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgIGNvbnN0IHsgYm90dG9tLCBsZWZ0LCByaWdodCwgdG9wIH0gPSBzY3JvbGxlckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcblxuICAgICAgICBjb25zdCBhZGp1c3RlZFRvcCA9IHRvcCArIHdpbmRvdy5zY3JvbGxZXG4gICAgICAgIGNvbnN0IGFkanVzdGVkQm90dG9tID0gYm90dG9tICsgd2luZG93LnNjcm9sbFlcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFnZVkgPCBhZGp1c3RlZFRvcCAtIHZlcnRpY2FsQnVmZmVyIHx8XG4gICAgICAgICAgcGFnZVkgPiBhZGp1c3RlZEJvdHRvbSArIHZlcnRpY2FsQnVmZmVyIHx8XG4gICAgICAgICAgcGFnZVggPCBsZWZ0IC0gaG9yaXpvbnRhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYID4gcmlnaHQgKyBob3Jpem9udGFsQnVmZmVyXG4gICAgICAgICkge1xuICAgICAgICAgIHNldERyYWdnYWJsZUJsb2NrRWxlbShudWxsKVxuICAgICAgICAgIHJldHVybiBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBhbGxvdyB0aGUgX2RyYWdnYWJsZUJsb2NrRWxlbSB0byBiZSBmb3VuZCB3aGVuIHRoZSBtb3VzZSBpcyBpbiB0aGVcbiAgICAgICAgLy8gYnVmZmVyIHpvbmUgYXJvdW5kIHRoZSBzY3JvbGxlckVsZW0uXG4gICAgICAgIGlmIChwYWdlWCA8IGxlZnQgfHwgcGFnZVggPiByaWdodCkge1xuICAgICAgICAgIGRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSA9IHBhZ2VYIDwgbGVmdCA/IHBhZ2VYIC0gbGVmdCA6IHBhZ2VYIC0gcmlnaHRcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbVxuICAgIH0sXG4gICAgW3Njcm9sbGVyRWxlbV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgcG9zaXRpb25pbmcgb2YgdGhlIGRyYWcgaGFuZGxlXG4gICAgICovXG4gICAgZnVuY3Rpb24gb25Eb2N1bWVudE1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0XG4gICAgICBpZiAoIWlzSFRNTEVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gY2FsY3VsYXRlRGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtKFxuICAgICAgICBldmVudC5wYWdlWCxcbiAgICAgICAgZXZlbnQucGFnZVksXG4gICAgICAgIHRhcmdldCxcbiAgICAgIClcblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgRFJBR0dBQkxFX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuICAgICAgY29uc3Qge1xuICAgICAgICBibG9ja0VsZW06IF9kcmFnZ2FibGVCbG9ja0VsZW0sXG4gICAgICAgIGZvdW5kQXRJbmRleCxcbiAgICAgICAgaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCxcbiAgICAgIH0gPSBnZXROb2RlQ2xvc2VUb1BvaW50KHtcbiAgICAgICAgYW5jaG9yRWxlbSxcbiAgICAgICAgY2FjaGVfdHJlc2hvbGQ6IDAsXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgICAgcG9pbnQ6IG5ldyBQb2ludChldmVudC54LCBldmVudC55KSxcbiAgICAgICAgc3RhcnRJbmRleDogZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSxcbiAgICAgICAgdXNlRWRnZUFzRGVmYXVsdDogZmFsc2UsXG4gICAgICB9KVxuICAgICAgLy9pZiAoREVCVUcgJiYgX2RyYWdnYWJsZUJsb2NrRWxlbSkge1xuICAgICAgLy90YXJnZXRCbG9ja0VsZW0uc3R5bGUuYm9yZGVyID0gJzNweCBzb2xpZCByZWQnXG4gICAgICAvLyBoaWdobGlnaHRFbGVtT3JpZ2luYWxQb3NpdGlvbihkZWJ1Z0hpZ2hsaWdodFJlZiwgX2RyYWdnYWJsZUJsb2NrRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIC8vfVxuICAgICAgcHJldkluZGV4ID0gZm91bmRBdEluZGV4XG5cbiAgICAgIGlmICghX2RyYWdnYWJsZUJsb2NrRWxlbSAmJiAhaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2V0RHJhZ2dhYmxlQmxvY2tFbGVtKF9kcmFnZ2FibGVCbG9ja0VsZW0pXG4gICAgfVxuXG4gICAgLy8gU2luY2UgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBpcyBvdXRzaWRlIHRoZSBhY3R1YWwgZWRpdG9yLCB3ZSBuZWVkIHRvIGxpc3RlbiB0byB0aGUgZG9jdW1lbnRcbiAgICAvLyB0byBiZSBhYmxlIHRvIGRldGVjdCB3aGVuIHRoZSBtb3VzZSBpcyBvdXRzaWRlIHRoZSBlZGl0b3IgYW5kIHJlc3BlY3QgYSBidWZmZXIgYXJvdW5kIHRoZVxuICAgIC8vIHRoZSBzY3JvbGxlckVsZW0gdG8gYXZvaWQgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBkaXNhcHBlYXJpbmcgdG9vIGVhcmx5LlxuICAgIGRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbkRvY3VtZW50TW91c2VNb3ZlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbkRvY3VtZW50TW91c2VNb3ZlKVxuICAgIH1cbiAgfSwgW3Njcm9sbGVyRWxlbSwgYW5jaG9yRWxlbSwgZWRpdG9yLCBjYWxjdWxhdGVEaXN0YW5jZUZyb21TY3JvbGxlckVsZW1dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCkge1xuICAgICAgc2V0SGFuZGxlUG9zaXRpb24oZHJhZ2dhYmxlQmxvY2tFbGVtLCBtZW51UmVmLmN1cnJlbnQsIGFuY2hvckVsZW0sIFNQQUNFKVxuICAgIH1cbiAgfSwgW2FuY2hvckVsZW0sIGRyYWdnYWJsZUJsb2NrRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiBvbkRyYWdvdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiBib29sZWFuIHtcbiAgICAgIGlmICghaXNEcmFnZ2luZ0Jsb2NrUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBbaXNGaWxlVHJhbnNmZXJdID0gZXZlbnRGaWxlcyhldmVudClcbiAgICAgIGlmIChpc0ZpbGVUcmFuc2Zlcikge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBwYWdlWSwgdGFyZ2V0IH0gPSBldmVudFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSA9IGNhbGN1bGF0ZURpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbShcbiAgICAgICAgZXZlbnQucGFnZVgsXG4gICAgICAgIGV2ZW50LnBhZ2VZLFxuICAgICAgICB0YXJnZXQsXG4gICAgICAgIDEwMCxcbiAgICAgICAgNTAsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IHRvcExldmVsTm9kZUtleXMgPSBnZXRUb3BMZXZlbE5vZGVLZXlzKGVkaXRvcilcblxuICAgICAgY29uc3Qge1xuICAgICAgICBibG9ja0VsZW06IHRhcmdldEJsb2NrRWxlbSxcbiAgICAgICAgZm91bmRBdEluZGV4LFxuICAgICAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoLFxuICAgICAgfSA9IGdldE5vZGVDbG9zZVRvUG9pbnQoe1xuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGZ1enp5OiB0cnVlLFxuICAgICAgICBob3Jpem9udGFsT2Zmc2V0OiAtZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtLFxuICAgICAgICBwb2ludDogbmV3IFBvaW50KGV2ZW50LngsIGV2ZW50LnkpLFxuICAgICAgICBzdGFydEluZGV4OiBnZXRDdXJyZW50SW5kZXgodG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGgpLFxuICAgICAgICB1c2VFZGdlQXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIHByZXZJbmRleCA9IGZvdW5kQXRJbmRleFxuXG4gICAgICBjb25zdCB0YXJnZXRMaW5lRWxlbSA9IHRhcmdldExpbmVSZWYuY3VycmVudFxuICAgICAgLy8gdGFyZ2V0QmxvY2tFbGVtID09PSBudWxsIHNob3VsZG4ndCBoYXBwZW5cbiAgICAgIGlmICh0YXJnZXRCbG9ja0VsZW0gPT09IG51bGwgfHwgdGFyZ2V0TGluZUVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIGlmIChkcmFnZ2FibGVCbG9ja0VsZW0gIT09IHRhcmdldEJsb2NrRWxlbSkge1xuICAgICAgICBzZXRUYXJnZXRMaW5lKFxuICAgICAgICAgIFNQQUNFLFxuICAgICAgICAgIHRhcmdldExpbmVFbGVtLFxuICAgICAgICAgIHRhcmdldEJsb2NrRWxlbSxcbiAgICAgICAgICBsYXN0VGFyZ2V0QmxvY2tFbGVtLFxuICAgICAgICAgIHBhZ2VZLFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgZGVidWdIaWdobGlnaHRSZWYsXG4gICAgICAgICAgaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCxcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFByZXZlbnQgZGVmYXVsdCBldmVudCB0byBiZSBhYmxlIHRvIHRyaWdnZXIgb25Ecm9wIGV2ZW50c1xuICAgICAgICAvLyBDYWxsaW5nIHByZXZlbnREZWZhdWx0KCkgYWRkcyB0aGUgZ3JlZW4gcGx1cyBpY29uIHRvIHRoZSBjdXJzb3IsXG4gICAgICAgIC8vIGluZGljYXRpbmcgdGhhdCB0aGUgZHJvcCBpcyBhbGxvd2VkLlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoaWRlVGFyZ2V0TGluZSh0YXJnZXRMaW5lRWxlbSwgbGFzdFRhcmdldEJsb2NrRWxlbSlcbiAgICAgIH1cblxuICAgICAgc2V0TGFzdFRhcmdldEJsb2NrRWxlbSh0YXJnZXRCbG9ja0VsZW0pXG5cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiBib29sZWFuIHtcbiAgICAgIGlmICghaXNEcmFnZ2luZ0Jsb2NrUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBbaXNGaWxlVHJhbnNmZXJdID0gZXZlbnRGaWxlcyhldmVudClcbiAgICAgIGlmIChpc0ZpbGVUcmFuc2Zlcikge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgZGF0YVRyYW5zZmVyLCBwYWdlWSwgdGFyZ2V0IH0gPSBldmVudFxuICAgICAgY29uc3QgZHJhZ0RhdGEgPSBkYXRhVHJhbnNmZXI/LmdldERhdGEoRFJBR19EQVRBX0ZPUk1BVCkgfHwgJydcblxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRyYWdnZWROb2RlID0gJGdldE5vZGVCeUtleShkcmFnRGF0YSlcbiAgICAgICAgaWYgKCFkcmFnZ2VkTm9kZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICghaXNIVE1MRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtID0gY2FsY3VsYXRlRGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtKFxuICAgICAgICAgIGV2ZW50LnBhZ2VYLFxuICAgICAgICAgIGV2ZW50LnBhZ2VZLFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAxMDAsXG4gICAgICAgICAgNTAsXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCB7IGJsb2NrRWxlbTogdGFyZ2V0QmxvY2tFbGVtLCBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoIH0gPSBnZXROb2RlQ2xvc2VUb1BvaW50KHtcbiAgICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICBmdXp6eTogdHJ1ZSxcbiAgICAgICAgICBob3Jpem9udGFsT2Zmc2V0OiAtZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtLFxuICAgICAgICAgIHBvaW50OiBuZXcgUG9pbnQoZXZlbnQueCwgZXZlbnQueSksXG4gICAgICAgICAgdXNlRWRnZUFzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIXRhcmdldEJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSAkZ2V0TmVhcmVzdE5vZGVGcm9tRE9NTm9kZSh0YXJnZXRCbG9ja0VsZW0pXG4gICAgICAgIGlmICghdGFyZ2V0Tm9kZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXROb2RlID09PSBkcmFnZ2VkTm9kZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGhlaWdodDogdGFyZ2V0QmxvY2tFbGVtSGVpZ2h0LCB0b3A6IHRhcmdldEJsb2NrRWxlbVRvcCB9ID1cbiAgICAgICAgICBnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKHRhcmdldEJsb2NrRWxlbSlcblxuICAgICAgICBjb25zdCBtb3VzZVkgPSBwYWdlWVxuICAgICAgICBjb25zdCBpc0JlbG93ID0gbW91c2VZID49IHRhcmdldEJsb2NrRWxlbVRvcCArIHRhcmdldEJsb2NrRWxlbUhlaWdodCAvIDIgKyB3aW5kb3cuc2Nyb2xsWVxuXG4gICAgICAgIGlmICghaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGlmIChpc0JlbG93KSB7XG4gICAgICAgICAgICAvLyBiZWxvdyB0YXJnZXRCbG9ja0VsZW1cbiAgICAgICAgICAgIHRhcmdldE5vZGUuaW5zZXJ0QWZ0ZXIoZHJhZ2dlZE5vZGUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGFib3ZlIHRhcmdldEJsb2NrRWxlbVxuICAgICAgICAgICAgdGFyZ2V0Tm9kZS5pbnNlcnRCZWZvcmUoZHJhZ2dlZE5vZGUpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vXG4gICAgICAgICAgdGFyZ2V0Tm9kZS5pbnNlcnRCZWZvcmUoZHJhZ2dlZE5vZGUpXG4gICAgICAgICAgdGFyZ2V0Tm9kZS5yZW1vdmUoKVxuICAgICAgICB9XG5cbiAgICAgICAgLypcbiAgICAgICAgaWYgKHBhZ2VZID49IHRhcmdldEJsb2NrRWxlbVRvcCArIHRhcmdldEJsb2NrRWxlbUhlaWdodCAvIDIpIHtcbiAgICAgICAgICB0YXJnZXROb2RlLmluc2VydEFmdGVyKGRyYWdnZWROb2RlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldE5vZGUuaW5zZXJ0QmVmb3JlKGRyYWdnZWROb2RlKVxuICAgICAgICB9Ki9cbiAgICAgICAgc2V0RHJhZ2dhYmxlQmxvY2tFbGVtKG51bGwpXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIC8vIHJlZ2lzdGVyIG9uRHJhZ292ZXIgZXZlbnQgbGlzdGVuZXJzOlxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgb25EcmFnb3ZlcilcbiAgICAvLyByZWdpc3RlciBvbkRyb3AgZXZlbnQgbGlzdGVuZXJzOlxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBvbkRyb3ApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBvbkRyYWdvdmVyKVxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJvcCcsIG9uRHJvcClcbiAgICB9XG4gIH0sIFtcbiAgICBhbmNob3JFbGVtLFxuICAgIGVkaXRvcixcbiAgICBsYXN0VGFyZ2V0QmxvY2tFbGVtLFxuICAgIGNhbGN1bGF0ZURpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICBkcmFnZ2FibGVCbG9ja0VsZW0sXG4gIF0pXG5cbiAgZnVuY3Rpb24gb25EcmFnU3RhcnQoZXZlbnQ6IFJlYWN0RHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50Pik6IHZvaWQge1xuICAgIGNvbnN0IGRhdGFUcmFuc2ZlciA9IGV2ZW50LmRhdGFUcmFuc2ZlclxuICAgIGlmICghZGF0YVRyYW5zZmVyIHx8ICFkcmFnZ2FibGVCbG9ja0VsZW0pIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXREcmFnSW1hZ2UoZGF0YVRyYW5zZmVyLCBkcmFnZ2FibGVCbG9ja0VsZW0pXG4gICAgbGV0IG5vZGVLZXkgPSAnJ1xuICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9ICRnZXROZWFyZXN0Tm9kZUZyb21ET01Ob2RlKGRyYWdnYWJsZUJsb2NrRWxlbSlcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGVLZXkgPSBub2RlLmdldEtleSgpXG4gICAgICB9XG4gICAgfSlcbiAgICBpc0RyYWdnaW5nQmxvY2tSZWYuY3VycmVudCA9IHRydWVcbiAgICBkYXRhVHJhbnNmZXIuc2V0RGF0YShEUkFHX0RBVEFfRk9STUFULCBub2RlS2V5KVxuICB9XG5cbiAgZnVuY3Rpb24gb25EcmFnRW5kKCk6IHZvaWQge1xuICAgIGlzRHJhZ2dpbmdCbG9ja1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBoaWRlVGFyZ2V0TGluZSh0YXJnZXRMaW5lUmVmLmN1cnJlbnQsIGxhc3RUYXJnZXRCbG9ja0VsZW0pXG4gIH1cblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwiaWNvbiBkcmFnZ2FibGUtYmxvY2stbWVudVwiXG4gICAgICAgIGRyYWdnYWJsZVxuICAgICAgICBvbkRyYWdFbmQ9e29uRHJhZ0VuZH1cbiAgICAgICAgb25EcmFnU3RhcnQ9e29uRHJhZ1N0YXJ0fVxuICAgICAgICByZWY9e21lbnVSZWZ9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHJhZ2dhYmxlLWJsb2NrLXRhcmdldC1saW5lXCIgcmVmPXt0YXJnZXRMaW5lUmVmfSAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZWJ1Zy1oaWdobGlnaHRcIiByZWY9e2RlYnVnSGlnaGxpZ2h0UmVmfSAvPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+LFxuICAgIGFuY2hvckVsZW0sXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIERyYWdnYWJsZUJsb2NrUGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgcmV0dXJuIHVzZURyYWdnYWJsZUJsb2NrTWVudShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsibGV4aWNhbENvbXBvc2VyQ29udGV4dEltcG9ydCIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJldmVudEZpbGVzIiwibGV4aWNhbEltcG9ydCIsIiRnZXROZWFyZXN0Tm9kZUZyb21ET01Ob2RlIiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsImlzSFRNTEVsZW1lbnQiLCJQb2ludCIsImdldFRvcExldmVsTm9kZUtleXMiLCJpc09uSGFuZGxlRWxlbWVudCIsInNldEhhbmRsZVBvc2l0aW9uIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSIsImdldE5vZGVDbG9zZVRvUG9pbnQiLCJzZXRUYXJnZXRMaW5lIiwiU1BBQ0UiLCJEUkFHR0FCTEVfQkxPQ0tfTUVOVV9DTEFTU05BTUUiLCJEUkFHX0RBVEFfRk9STUFUIiwicHJldkluZGV4IiwiSW5maW5pdHkiLCJnZXRDdXJyZW50SW5kZXgiLCJrZXlzTGVuZ3RoIiwiTWF0aCIsImZsb29yIiwic2V0RHJhZ0ltYWdlIiwiZGF0YVRyYW5zZmVyIiwiZHJhZ2dhYmxlQmxvY2tFbGVtIiwidHJhbnNmb3JtIiwic3R5bGUiLCJzZXRUaW1lb3V0IiwiaGlkZVRhcmdldExpbmUiLCJ0YXJnZXRMaW5lRWxlbSIsImxhc3RUYXJnZXRCbG9ja0VsZW0iLCJvcGFjaXR5IiwidXNlRHJhZ2dhYmxlQmxvY2tNZW51IiwiZWRpdG9yIiwiYW5jaG9yRWxlbSIsImlzRWRpdGFibGUiLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwibWVudVJlZiIsInRhcmdldExpbmVSZWYiLCJkZWJ1Z0hpZ2hsaWdodFJlZiIsImlzRHJhZ2dpbmdCbG9ja1JlZiIsInNldERyYWdnYWJsZUJsb2NrRWxlbSIsInNldExhc3RUYXJnZXRCbG9ja0VsZW0iLCJjYWxjdWxhdGVEaXN0YW5jZUZyb21TY3JvbGxlckVsZW0iLCJwYWdlWCIsInBhZ2VZIiwidGFyZ2V0IiwiaG9yaXpvbnRhbEJ1ZmZlciIsInZlcnRpY2FsQnVmZmVyIiwiZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtIiwiY29udGFpbnMiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJhZGp1c3RlZFRvcCIsIndpbmRvdyIsInNjcm9sbFkiLCJhZGp1c3RlZEJvdHRvbSIsIm9uRG9jdW1lbnRNb3VzZU1vdmUiLCJldmVudCIsInRvcExldmVsTm9kZUtleXMiLCJibG9ja0VsZW0iLCJfZHJhZ2dhYmxlQmxvY2tFbGVtIiwiZm91bmRBdEluZGV4IiwiaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCIsImNhY2hlX3RyZXNob2xkIiwiaG9yaXpvbnRhbE9mZnNldCIsInBvaW50IiwieCIsInkiLCJzdGFydEluZGV4IiwibGVuZ3RoIiwidXNlRWRnZUFzRGVmYXVsdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50Iiwib25EcmFnb3ZlciIsImlzRmlsZVRyYW5zZmVyIiwidGFyZ2V0QmxvY2tFbGVtIiwiZnV6enkiLCJ2ZXJib3NlIiwicHJldmVudERlZmF1bHQiLCJvbkRyb3AiLCJkcmFnRGF0YSIsImdldERhdGEiLCJ1cGRhdGUiLCJkcmFnZ2VkTm9kZSIsInRhcmdldE5vZGUiLCJoZWlnaHQiLCJ0YXJnZXRCbG9ja0VsZW1IZWlnaHQiLCJ0YXJnZXRCbG9ja0VsZW1Ub3AiLCJtb3VzZVkiLCJpc0JlbG93IiwiaW5zZXJ0QWZ0ZXIiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmUiLCJvbkRyYWdTdGFydCIsIm5vZGVLZXkiLCJub2RlIiwiZ2V0S2V5Iiwic2V0RGF0YSIsIm9uRHJhZ0VuZCIsIkZyYWdtZW50IiwiZGl2IiwiY2xhc3NOYW1lIiwiZHJhZ2dhYmxlIiwicmVmIiwiRHJhZ2dhYmxlQmxvY2tQbHVnaW4iLCJib2R5IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUlBLE9BQU9BLGtDQUFrQywyQ0FBMEM7QUFDbkYsTUFBTSxFQUFFQyx5QkFBeUIsRUFBRSxHQUFHRDtBQUV0QyxTQUFTRSxVQUFVLFFBQVEscUJBQW9CO0FBQy9DLE9BQU9DLG1CQUFtQixVQUFTO0FBQ25DLE1BQU0sRUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTopLevelNodeKeys.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getTopLevelNodeKeys.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAK5C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAEnE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import lexicalImport from 'lexical';
|
|
2
|
+
const { $getRoot } = lexicalImport;
|
|
2
3
|
export function getTopLevelNodeKeys(editor) {
|
|
3
4
|
return editor.getEditorState().read(()=>$getRoot().getChildrenKeys());
|
|
4
5
|
}
|
|
5
6
|
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy91dGlscy9nZXRUb3BMZXZlbE5vZGVLZXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCBsZXhpY2FsSW1wb3J0IGZyb20gJ2xleGljYWwnXG5jb25zdCB7ICRnZXRSb290IH0gPSBsZXhpY2FsSW1wb3J0XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbE5vZGVLZXlzKGVkaXRvcjogTGV4aWNhbEVkaXRvcik6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4gJGdldFJvb3QoKS5nZXRDaGlsZHJlbktleXMoKSlcbn1cbiJdLCJuYW1lcyI6WyJsZXhpY2FsSW1wb3J0IiwiJGdldFJvb3QiLCJnZXRUb3BMZXZlbE5vZGVLZXlzIiwiZWRpdG9yIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiZ2V0Q2hpbGRyZW5LZXlzIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPQSxtQkFBbUIsVUFBUztBQUNuQyxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHRDtBQUVyQixPQUFPLFNBQVNFLG9CQUFvQkMsTUFBcUI7SUFDdkQsT0FBT0EsT0FBT0MsY0FBYyxHQUFHQyxJQUFJLENBQUMsSUFBTUosV0FBV0ssZUFBZTtBQUN0RSJ9
|