@payloadcms/ui 3.0.0-alpha.23 → 3.0.0-alpha.25
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/elements/DeleteMany/index.js +2 -2
- package/dist/elements/EditMany/index.js +2 -2
- package/dist/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/elements/EditUpload/index.js +9 -7
- package/dist/elements/Localizer/index.js +2 -2
- package/dist/elements/PublishMany/index.js +2 -2
- package/dist/elements/RenderTitle/index.js +3 -3
- package/dist/elements/UnpublishMany/index.js +2 -2
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +1 -3
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +14 -4
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +22 -14
- package/dist/providers/DocumentInfo/reducer.d.ts +17 -0
- package/dist/providers/DocumentInfo/reducer.d.ts.map +1 -0
- package/dist/providers/DocumentInfo/reducer.js +22 -0
- package/dist/providers/DocumentInfo/types.d.ts +1 -1
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js +1 -1
- package/dist/providers/FormQueryParams/index.d.ts +6 -15
- package/dist/providers/FormQueryParams/index.d.ts.map +1 -1
- package/dist/providers/FormQueryParams/index.js +40 -6
- package/dist/providers/FormQueryParams/types.d.ts +16 -0
- package/dist/providers/FormQueryParams/types.d.ts.map +1 -0
- package/dist/providers/FormQueryParams/types.js +3 -0
- package/dist/providers/Locale/index.js +2 -2
- package/dist/providers/SearchParams/index.js +4 -4
- package/dist/providers/SearchParams/types.d.ts +3 -3
- package/dist/providers/SearchParams/types.js +1 -1
- package/package.json +4 -4
|
@@ -6,7 +6,6 @@ import { useFormSubmitted } from '../../forms/Form/context';
|
|
|
6
6
|
import reduceFieldsToValues from '../../forms/Form/reduceFieldsToValues';
|
|
7
7
|
import { fieldBaseClass } from '../../forms/fields/shared';
|
|
8
8
|
import useField from '../../forms/useField';
|
|
9
|
-
import { useClientFunctions } from '../../providers/ClientFunction';
|
|
10
9
|
import { useDocumentInfo } from '../../providers/DocumentInfo';
|
|
11
10
|
import { useTranslation } from '../../providers/Translation';
|
|
12
11
|
import { Button } from '../Button';
|
|
@@ -40,7 +39,6 @@ export const UploadActions = ({ canEdit, showSizePreviews })=>{
|
|
|
40
39
|
};
|
|
41
40
|
export const Upload = (props)=>{
|
|
42
41
|
const { collectionSlug, initialState, onChange, updatedAt, uploadConfig } = props;
|
|
43
|
-
const clientFunctions = useClientFunctions();
|
|
44
42
|
const submitted = useFormSubmitted();
|
|
45
43
|
const [replacingFile, setReplacingFile] = useState(false);
|
|
46
44
|
const [fileSrc, setFileSrc] = useState(null);
|
|
@@ -177,4 +175,4 @@ export const Upload = (props)=>{
|
|
|
177
175
|
})));
|
|
178
176
|
};
|
|
179
177
|
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9VcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHsgaXNJbWFnZSB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgRXJyb3IgZnJvbSAnLi4vLi4vZm9ybXMvRXJyb3InXG5pbXBvcnQgeyB1c2VGb3JtU3VibWl0dGVkIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS9jb250ZXh0J1xuaW1wb3J0IHJlZHVjZUZpZWxkc1RvVmFsdWVzIGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vcmVkdWNlRmllbGRzVG9WYWx1ZXMnXG5pbXBvcnQgeyBmaWVsZEJhc2VDbGFzcyB9IGZyb20gJy4uLy4uL2Zvcm1zL2ZpZWxkcy9zaGFyZWQnXG5pbXBvcnQgdXNlRmllbGQgZnJvbSAnLi4vLi4vZm9ybXMvdXNlRmllbGQnXG5pbXBvcnQgeyB1c2VDbGllbnRGdW5jdGlvbnMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvQ2xpZW50RnVuY3Rpb24nXG5pbXBvcnQgeyB1c2VEb2N1bWVudEluZm8gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvRG9jdW1lbnRJbmZvJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgeyBEcmF3ZXIsIERyYXdlclRvZ2dsZXIgfSBmcm9tICcuLi9EcmF3ZXInXG5pbXBvcnQgeyBEcm9wem9uZSB9IGZyb20gJy4uL0Ryb3B6b25lJ1xuaW1wb3J0IHsgRWRpdFVwbG9hZCB9IGZyb20gJy4uL0VkaXRVcGxvYWQnXG5pbXBvcnQgRmlsZURldGFpbHMgZnJvbSAnLi4vRmlsZURldGFpbHMnXG5pbXBvcnQgUHJldmlld1NpemVzIGZyb20gJy4uL1ByZXZpZXdTaXplcydcbmltcG9ydCBUaHVtYm5haWwgZnJvbSAnLi4vVGh1bWJuYWlsJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdmaWxlLWZpZWxkJ1xuZXhwb3J0IGNvbnN0IGVkaXREcmF3ZXJTbHVnID0gJ2VkaXQtdXBsb2FkJ1xuZXhwb3J0IGNvbnN0IHNpemVQcmV2aWV3U2x1ZyA9ICdwcmV2aWV3LXNpemVzJ1xuXG5jb25zdCB2YWxpZGF0ZSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAoIXZhbHVlICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gJ0EgZmlsZSBpcyByZXF1aXJlZC4nXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgVXBsb2FkQWN0aW9ucyA9ICh7IGNhbkVkaXQsIHNob3dTaXplUHJldmlld3MgfSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1tdXRhdGlvbmB9PlxuICAgICAge3Nob3dTaXplUHJldmlld3MgJiYgKFxuICAgICAgICA8RHJhd2VyVG9nZ2xlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3ByZXZpZXdTaXplc2B9IHNsdWc9e3NpemVQcmV2aWV3U2x1Z30+XG4gICAgICAgICAge3QoJ3VwbG9hZDpwcmV2aWV3U2l6ZXMnKX1cbiAgICAgICAgPC9EcmF3ZXJUb2dnbGVyPlxuICAgICAgKX1cbiAgICAgIHtjYW5FZGl0ICYmIChcbiAgICAgICAgPERyYXdlclRvZ2dsZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lZGl0YH0gc2x1Zz17ZWRpdERyYXdlclNsdWd9PlxuICAgICAgICAgIHt0KCd1cGxvYWQ6ZWRpdEltYWdlJyl9XG4gICAgICAgIDwvRHJhd2VyVG9nZ2xlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29sbGVjdGlvblNsdWcsIGluaXRpYWxTdGF0ZSwgb25DaGFuZ2UsIHVwZGF0ZWRBdCwgdXBsb2FkQ29uZmlnIH0gPSBwcm9wc1xuICBjb25zdCBjbGllbnRGdW5jdGlvbnMgPSB1c2VDbGllbnRGdW5jdGlvbnMoKVxuXG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuICBjb25zdCBbcmVwbGFjaW5nRmlsZSwgc2V0UmVwbGFjaW5nRmlsZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2ZpbGVTcmMsIHNldEZpbGVTcmNdID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IFtkb2MsIHNldERvY10gPSB1c2VTdGF0ZShyZWR1Y2VGaWVsZHNUb1ZhbHVlcyhpbml0aWFsU3RhdGUgfHwge30sIHRydWUpKVxuICBjb25zdCB7IGRvY1Blcm1pc3Npb25zIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuICBjb25zdCB7IGVycm9yTWVzc2FnZSwgc2V0VmFsdWUsIHNob3dFcnJvciwgdmFsdWUgfSA9IHVzZUZpZWxkPEZpbGU+KHtcbiAgICBwYXRoOiAnZmlsZScsXG4gICAgdmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlRmlsZU5hbWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB1cGRhdGVkRmlsZU5hbWUgPSBlLnRhcmdldC52YWx1ZVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZmlsZVZhbHVlID0gdmFsdWVcbiAgICAgIC8vIENyZWF0aW5nIGEgbmV3IEZpbGUgb2JqZWN0IHdpdGggdXBkYXRlZCBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBuZXdGaWxlID0gbmV3IEZpbGUoW2ZpbGVWYWx1ZV0sIHVwZGF0ZWRGaWxlTmFtZSwgeyB0eXBlOiBmaWxlVmFsdWUudHlwZSB9KVxuICAgICAgc2V0VmFsdWUobmV3RmlsZSkgLy8gVXBkYXRpbmcgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBGaWxlIG9iamVjdFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3Rpb24gPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoZmlsZXM6IEZpbGVMaXN0KSA9PiB7XG4gICAgICBjb25zdCBmaWxlVG9VcGxvYWQgPSBmaWxlcz8uWzBdXG4gICAgICBzZXRWYWx1ZShmaWxlVG9VcGxvYWQpXG4gICAgfSxcbiAgICBbc2V0VmFsdWVdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlRmlsZVJlbW92YWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UmVwbGFjaW5nRmlsZSh0cnVlKVxuICAgIHNldFZhbHVlKG51bGwpXG4gICAgc2V0RmlsZVNyYygnJylcbiAgfSwgW3NldFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldERvYyhyZWR1Y2VGaWVsZHNUb1ZhbHVlcyhpbml0aWFsU3RhdGUgfHwge30sIHRydWUpKVxuICAgIHNldFJlcGxhY2luZ0ZpbGUoZmFsc2UpXG4gIH0sIFtpbml0aWFsU3RhdGVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgaW1nU3JjID0gZS50YXJnZXQ/LnJlc3VsdFxuXG4gICAgICAgIGlmICh0eXBlb2YgaW1nU3JjID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHNldEZpbGVTcmMoaW1nU3JjKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwodmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb25DaGFuZ2UodmFsdWUpXG4gICAgfVxuICB9LCBbdmFsdWUsIG9uQ2hhbmdlLCB1cGRhdGVkQXRdKVxuXG4gIGNvbnN0IGNhblJlbW92ZVVwbG9hZCA9XG4gICAgZG9jUGVybWlzc2lvbnM/LnVwZGF0ZT8ucGVybWlzc2lvbiAmJlxuICAgICdkZWxldGUnIGluIGRvY1Blcm1pc3Npb25zICYmXG4gICAgZG9jUGVybWlzc2lvbnM/LmRlbGV0ZT8ucGVybWlzc2lvblxuXG4gIGNvbnN0IGhhc0ltYWdlU2l6ZXMgPSB1cGxvYWRDb25maWc/LmltYWdlU2l6ZXM/Lmxlbmd0aCA+IDBcbiAgY29uc3QgaGFzUmVzaXplT3B0aW9ucyA9IEJvb2xlYW4odXBsb2FkQ29uZmlnPy5yZXNpemVPcHRpb25zKVxuXG4gIGNvbnN0IHsgY3JvcDogc2hvd0Nyb3AgPSB0cnVlLCBmb2NhbFBvaW50ID0gdHJ1ZSB9ID0gdXBsb2FkQ29uZmlnXG5cbiAgY29uc3Qgc2hvd0ZvY2FsUG9pbnQgPSBmb2NhbFBvaW50ICYmIChoYXNJbWFnZVNpemVzIHx8IGhhc1Jlc2l6ZU9wdGlvbnMpXG5cbiAgY29uc3QgbGFzdFN1Ym1pdHRlZFRpbWUgPSBzdWJtaXR0ZWQgPyBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgOiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17W2ZpZWxkQmFzZUNsYXNzLCBiYXNlQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9PlxuICAgICAgPEVycm9yIG1lc3NhZ2U9e2Vycm9yTWVzc2FnZX0gc2hvd0Vycm9yPXtzaG93RXJyb3J9IC8+XG4gICAgICB7ZG9jLmZpbGVuYW1lICYmICFyZXBsYWNpbmdGaWxlICYmIChcbiAgICAgICAgPEZpbGVEZXRhaWxzXG4gICAgICAgICAgY2FuRWRpdD17c2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnR9XG4gICAgICAgICAgY29sbGVjdGlvblNsdWc9e2NvbGxlY3Rpb25TbHVnfVxuICAgICAgICAgIGRvYz17ZG9jfVxuICAgICAgICAgIGhhbmRsZVJlbW92ZT17Y2FuUmVtb3ZlVXBsb2FkID8gaGFuZGxlRmlsZVJlbW92YWwgOiB1bmRlZmluZWR9XG4gICAgICAgICAgaGFzSW1hZ2VTaXplcz17aGFzSW1hZ2VTaXplc31cbiAgICAgICAgICBpbWFnZUNhY2hlVGFnPXtsYXN0U3VibWl0dGVkVGltZX1cbiAgICAgICAgICB1cGxvYWRDb25maWc9e3VwbG9hZENvbmZpZ31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7KCFkb2MuZmlsZW5hbWUgfHwgcmVwbGFjaW5nRmlsZSkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdXBsb2FkYH0+XG4gICAgICAgICAgeyF2YWx1ZSAmJiAoXG4gICAgICAgICAgICA8RHJvcHpvbmVcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kcm9wem9uZWB9XG4gICAgICAgICAgICAgIG1pbWVUeXBlcz17dXBsb2FkQ29uZmlnPy5taW1lVHlwZXN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0aW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3ZhbHVlICYmIChcbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RodW1ibmFpbC13cmFwYH0+XG4gICAgICAgICAgICAgICAgPFRodW1ibmFpbFxuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWc9e2NvbGxlY3Rpb25TbHVnfVxuICAgICAgICAgICAgICAgICAgZmlsZVNyYz17aXNJbWFnZSh2YWx1ZS50eXBlKSA/IGZpbGVTcmMgOiBudWxsfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1hZGp1c3RtZW50c2B9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19maWxlbmFtZWB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZU5hbWVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWUubmFtZX1cbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAge2lzSW1hZ2UodmFsdWUudHlwZSkgJiYgdmFsdWUudHlwZSAhPT0gJ2ltYWdlL3N2Zyt4bWwnICYmIChcbiAgICAgICAgICAgICAgICAgIDxVcGxvYWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIGNhbkVkaXQ9e3Nob3dDcm9wIHx8IHNob3dGb2NhbFBvaW50fVxuICAgICAgICAgICAgICAgICAgICBzaG93U2l6ZVByZXZpZXdzPXtoYXNJbWFnZVNpemVzICYmIGRvYy5maWxlbmFtZSAmJiAhcmVwbGFjaW5nRmlsZX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cImljb24tbGFiZWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVtb3ZlYH1cbiAgICAgICAgICAgICAgICBpY29uPVwieFwiXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlPVwid2l0aC1ib3JkZXJcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUZpbGVSZW1vdmFsfVxuICAgICAgICAgICAgICAgIHJvdW5kXG4gICAgICAgICAgICAgICAgdG9vbHRpcD17dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgeyh2YWx1ZSB8fCBkb2MuZmlsZW5hbWUpICYmIChcbiAgICAgICAgPERyYXdlciBIZWFkZXI9e251bGx9IHNsdWc9e2VkaXREcmF3ZXJTbHVnfT5cbiAgICAgICAgICA8RWRpdFVwbG9hZFxuICAgICAgICAgICAgZG9jPXtkb2MgfHwgdW5kZWZpbmVkfVxuICAgICAgICAgICAgZmlsZU5hbWU9e3ZhbHVlPy5uYW1lIHx8IGRvYz8uZmlsZW5hbWV9XG4gICAgICAgICAgICBmaWxlU3JjPXtmaWxlU3JjIHx8IGRvYz8udXJsfVxuICAgICAgICAgICAgaW1hZ2VDYWNoZVRhZz17bGFzdFN1Ym1pdHRlZFRpbWV9XG4gICAgICAgICAgICBzaG93Q3JvcD17c2hvd0Nyb3B9XG4gICAgICAgICAgICBzaG93Rm9jYWxQb2ludD17c2hvd0ZvY2FsUG9pbnR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICApfVxuICAgICAge2RvYyAmJiBoYXNJbWFnZVNpemVzICYmIChcbiAgICAgICAgPERyYXdlclxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcHJldmlld0RyYXdlcmB9XG4gICAgICAgICAgaG92ZXJUaXRsZVxuICAgICAgICAgIHNsdWc9e3NpemVQcmV2aWV3U2x1Z31cbiAgICAgICAgICB0aXRsZT17dCgndXBsb2FkOnNpemVzRm9yJywgeyBsYWJlbDogZG9jPy5maWxlbmFtZSB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxQcmV2aWV3U2l6ZXMgZG9jPXtkb2N9IHVwbG9hZENvbmZpZz17dXBsb2FkQ29uZmlnfSAvPlxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc0ltYWdlIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiRXJyb3IiLCJ1c2VGb3JtU3VibWl0dGVkIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJmaWVsZEJhc2VDbGFzcyIsInVzZUZpZWxkIiwidXNlQ2xpZW50RnVuY3Rpb25zIiwidXNlRG9jdW1lbnRJbmZvIiwidXNlVHJhbnNsYXRpb24iLCJCdXR0b24iLCJEcmF3ZXIiLCJEcmF3ZXJUb2dnbGVyIiwiRHJvcHpvbmUiLCJFZGl0VXBsb2FkIiwiRmlsZURldGFpbHMiLCJQcmV2aWV3U2l6ZXMiLCJUaHVtYm5haWwiLCJiYXNlQ2xhc3MiLCJlZGl0RHJhd2VyU2x1ZyIsInNpemVQcmV2aWV3U2x1ZyIsInZhbGlkYXRlIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJVcGxvYWRBY3Rpb25zIiwiY2FuRWRpdCIsInNob3dTaXplUHJldmlld3MiLCJ0IiwiZGl2IiwiY2xhc3NOYW1lIiwic2x1ZyIsIlVwbG9hZCIsInByb3BzIiwiY29sbGVjdGlvblNsdWciLCJpbml0aWFsU3RhdGUiLCJvbkNoYW5nZSIsInVwZGF0ZWRBdCIsInVwbG9hZENvbmZpZyIsImNsaWVudEZ1bmN0aW9ucyIsInN1Ym1pdHRlZCIsInJlcGxhY2luZ0ZpbGUiLCJzZXRSZXBsYWNpbmdGaWxlIiwiZmlsZVNyYyIsInNldEZpbGVTcmMiLCJkb2MiLCJzZXREb2MiLCJkb2NQZXJtaXNzaW9ucyIsImVycm9yTWVzc2FnZSIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwicGF0aCIsImhhbmRsZUZpbGVOYW1lQ2hhbmdlIiwiZSIsInVwZGF0ZWRGaWxlTmFtZSIsInRhcmdldCIsImZpbGVWYWx1ZSIsIm5ld0ZpbGUiLCJGaWxlIiwidHlwZSIsImhhbmRsZUZpbGVTZWxlY3Rpb24iLCJmaWxlcyIsImZpbGVUb1VwbG9hZCIsImhhbmRsZUZpbGVSZW1vdmFsIiwiZmlsZVJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJpbWdTcmMiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwiY2FuUmVtb3ZlVXBsb2FkIiwidXBkYXRlIiwicGVybWlzc2lvbiIsImRlbGV0ZSIsImhhc0ltYWdlU2l6ZXMiLCJpbWFnZVNpemVzIiwibGVuZ3RoIiwiaGFzUmVzaXplT3B0aW9ucyIsIkJvb2xlYW4iLCJyZXNpemVPcHRpb25zIiwiY3JvcCIsInNob3dDcm9wIiwiZm9jYWxQb2ludCIsInNob3dGb2NhbFBvaW50IiwibGFzdFN1Ym1pdHRlZFRpbWUiLCJEYXRlIiwidG9JU09TdHJpbmciLCJmaWx0ZXIiLCJqb2luIiwibWVzc2FnZSIsImZpbGVuYW1lIiwiaGFuZGxlUmVtb3ZlIiwiaW1hZ2VDYWNoZVRhZyIsIm1pbWVUeXBlcyIsIkZyYWdtZW50IiwiaW5wdXQiLCJuYW1lIiwiYnV0dG9uU3R5bGUiLCJpY29uIiwiaWNvblN0eWxlIiwib25DbGljayIsInJvdW5kIiwidG9vbHRpcCIsIkhlYWRlciIsImZpbGVOYW1lIiwidXJsIiwiaG92ZXJUaXRsZSIsInRpdGxlIiwibGFiZWwiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EsT0FBTyxRQUFRLG9CQUFtQjtBQUMzQyxPQUFPQyxTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFJL0QsT0FBT0MsV0FBVyxvQkFBbUI7QUFDckMsU0FBU0MsZ0JBQWdCLFFBQVEsMkJBQTBCO0FBQzNELE9BQU9DLDBCQUEwQix3Q0FBdUM7QUFDeEUsU0FBU0MsY0FBYyxRQUFRLDRCQUEyQjtBQUMxRCxPQUFPQyxjQUFjLHVCQUFzQjtBQUMzQyxTQUFTQyxrQkFBa0IsUUFBUSxpQ0FBZ0M7QUFDbkUsU0FBU0MsZUFBZSxRQUFRLCtCQUE4QjtBQUM5RCxTQUFTQyxjQUFjLFFBQVEsOEJBQTZCO0FBQzVELFNBQVNDLE1BQU0sUUFBUSxZQUFXO0FBQ2xDLFNBQVNDLE1BQU0sRUFBRUMsYUFBYSxRQUFRLFlBQVc7QUFDakQsU0FBU0MsUUFBUSxRQUFRLGNBQWE7QUFDdEMsU0FBU0MsVUFBVSxRQUFRLGdCQUFlO0FBQzFDLE9BQU9DLGlCQUFpQixpQkFBZ0I7QUFDeEMsT0FBT0Msa0JBQWtCLGtCQUFpQjtBQUMxQyxPQUFPQyxlQUFlLGVBQWM7QUFDcEMsT0FBTyxlQUFjO0FBRXJCLE1BQU1DLFlBQVk7QUFDbEIsT0FBTyxNQUFNQyxpQkFBaUIsY0FBYTtBQUMzQyxPQUFPLE1BQU1DLGtCQUFrQixnQkFBZTtBQUU5QyxNQUFNQyxXQUFXLENBQUNDO0lBQ2hCLElBQUksQ0FBQ0EsU0FBU0EsVUFBVUMsV0FBVztRQUNqQyxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFQSxPQUFPLE1BQU1DLGdCQUFnQixDQUFDLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCLEVBQUU7SUFDekQsTUFBTSxFQUFFQyxDQUFDLEVBQUUsR0FBR2xCO0lBQ2QscUJBQ0Usb0JBQUNtQjtRQUFJQyxXQUFXLENBQUMsRUFBRVgsVUFBVSxlQUFlLENBQUM7T0FDMUNRLGtDQUNDLG9CQUFDZDtRQUFjaUIsV0FBVyxDQUFDLEVBQUVYLFVBQVUsY0FBYyxDQUFDO1FBQUVZLE1BQU1WO09BQzNETyxFQUFFLHlCQUdORix5QkFDQyxvQkFBQ2I7UUFBY2lCLFdBQVcsQ0FBQyxFQUFFWCxVQUFVLE1BQU0sQ0FBQztRQUFFWSxNQUFNWDtPQUNuRFEsRUFBRTtBQUtiLEVBQUM7QUFFRCxPQUFPLE1BQU1JLFNBQTBCLENBQUNDO0lBQ3RDLE1BQU0sRUFBRUMsY0FBYyxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUUsR0FBR0w7SUFDNUUsTUFBTU0sa0JBQWtCL0I7SUFFeEIsTUFBTWdDLFlBQVlwQztJQUNsQixNQUFNLENBQUNxQyxlQUFlQyxpQkFBaUIsR0FBR3hDLFNBQVM7SUFDbkQsTUFBTSxDQUFDeUMsU0FBU0MsV0FBVyxHQUFHMUMsU0FBd0I7SUFDdEQsTUFBTSxFQUFFMEIsQ0FBQyxFQUFFLEdBQUdsQjtJQUNkLE1BQU0sQ0FBQ21DLEtBQUtDLE9BQU8sR0FBRzVDLFNBQVNHLHFCQUFxQjhCLGdCQUFnQixDQUFDLEdBQUc7SUFDeEUsTUFBTSxFQUFFWSxjQUFjLEVBQUUsR0FBR3RDO0lBQzNCLE1BQU0sRUFBRXVDLFlBQVksRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUUzQixLQUFLLEVBQUUsR0FBR2hCLFNBQWU7UUFDbEU0QyxNQUFNO1FBQ043QjtJQUNGO0lBRUEsTUFBTThCLHVCQUF1QixDQUFDQztRQUM1QixNQUFNQyxrQkFBa0JELEVBQUVFLE1BQU0sQ0FBQ2hDLEtBQUs7UUFDdEMsSUFBSUEsT0FBTztZQUNULE1BQU1pQyxZQUFZakM7WUFDbEIscURBQXFEO1lBQ3JELE1BQU1rQyxVQUFVLElBQUlDLEtBQUs7Z0JBQUNGO2FBQVUsRUFBRUYsaUJBQWlCO2dCQUFFSyxNQUFNSCxVQUFVRyxJQUFJO1lBQUM7WUFDOUVWLFNBQVNRLFNBQVMsOENBQThDOztRQUNsRTtJQUNGO0lBRUEsTUFBTUcsc0JBQXNCN0QsTUFBTUMsV0FBVyxDQUMzQyxDQUFDNkQ7UUFDQyxNQUFNQyxlQUFlRCxPQUFPLENBQUMsRUFBRTtRQUMvQlosU0FBU2E7SUFDWCxHQUNBO1FBQUNiO0tBQVM7SUFHWixNQUFNYyxvQkFBb0IvRCxZQUFZO1FBQ3BDMEMsaUJBQWlCO1FBQ2pCTyxTQUFTO1FBQ1RMLFdBQVc7SUFDYixHQUFHO1FBQUNLO0tBQVM7SUFFYmhELFVBQVU7UUFDUjZDLE9BQU96QyxxQkFBcUI4QixnQkFBZ0IsQ0FBQyxHQUFHO1FBQ2hETyxpQkFBaUI7SUFDbkIsR0FBRztRQUFDUDtLQUFhO0lBRWpCbEMsVUFBVTtRQUNSLElBQUlzQixpQkFBaUJtQyxNQUFNO1lBQ3pCLE1BQU1NLGFBQWEsSUFBSUM7WUFDdkJELFdBQVdFLE1BQU0sR0FBRyxDQUFDYjtnQkFDbkIsTUFBTWMsU0FBU2QsRUFBRUUsTUFBTSxFQUFFYTtnQkFFekIsSUFBSSxPQUFPRCxXQUFXLFVBQVU7b0JBQzlCdkIsV0FBV3VCO2dCQUNiO1lBQ0Y7WUFDQUgsV0FBV0ssYUFBYSxDQUFDOUM7UUFDM0I7UUFFQSxJQUFJLE9BQU9hLGFBQWEsWUFBWTtZQUNsQ0EsU0FBU2I7UUFDWDtJQUNGLEdBQUc7UUFBQ0E7UUFBT2E7UUFBVUM7S0FBVTtJQUUvQixNQUFNaUMsa0JBQ0p2QixnQkFBZ0J3QixRQUFRQyxjQUN4QixZQUFZekIsa0JBQ1pBLGdCQUFnQjBCLFFBQVFEO0lBRTFCLE1BQU1FLGdCQUFnQnBDLGNBQWNxQyxZQUFZQyxTQUFTO0lBQ3pELE1BQU1DLG1CQUFtQkMsUUFBUXhDLGNBQWN5QztJQUUvQyxNQUFNLEVBQUVDLE1BQU1DLFdBQVcsSUFBSSxFQUFFQyxhQUFhLElBQUksRUFBRSxHQUFHNUM7SUFFckQsTUFBTTZDLGlCQUFpQkQsY0FBZVIsQ0FBQUEsaUJBQWlCRyxnQkFBZTtJQUV0RSxNQUFNTyxvQkFBb0I1QyxZQUFZLElBQUk2QyxPQUFPQyxXQUFXLEtBQUs7SUFFakUscUJBQ0Usb0JBQUN6RDtRQUFJQyxXQUFXO1lBQUN4QjtZQUFnQmE7U0FBVSxDQUFDb0UsTUFBTSxDQUFDVCxTQUFTVSxJQUFJLENBQUM7cUJBQy9ELG9CQUFDckY7UUFBTXNGLFNBQVN6QztRQUFjRSxXQUFXQTtRQUN4Q0wsSUFBSTZDLFFBQVEsSUFBSSxDQUFDakQsK0JBQ2hCLG9CQUFDekI7UUFDQ1UsU0FBU3VELFlBQVlFO1FBQ3JCakQsZ0JBQWdCQTtRQUNoQlcsS0FBS0E7UUFDTDhDLGNBQWNyQixrQkFBa0JQLG9CQUFvQnZDO1FBQ3BEa0QsZUFBZUE7UUFDZmtCLGVBQWVSO1FBQ2Y5QyxjQUFjQTtRQUdqQixBQUFDLENBQUEsQ0FBQ08sSUFBSTZDLFFBQVEsSUFBSWpELGFBQVksbUJBQzdCLG9CQUFDWjtRQUFJQyxXQUFXLENBQUMsRUFBRVgsVUFBVSxRQUFRLENBQUM7T0FDbkMsQ0FBQ0ksdUJBQ0Esb0JBQUNUO1FBQ0NnQixXQUFXLENBQUMsRUFBRVgsVUFBVSxVQUFVLENBQUM7UUFDbkMwRSxXQUFXdkQsY0FBY3VEO1FBQ3pCekQsVUFBVXdCO1FBSWJyQyx1QkFDQyxvQkFBQ3hCLE1BQU0rRixRQUFRLHNCQUNiLG9CQUFDakU7UUFBSUMsV0FBVyxDQUFDLEVBQUVYLFVBQVUsZ0JBQWdCLENBQUM7cUJBQzVDLG9CQUFDRDtRQUNDZ0IsZ0JBQWdCQTtRQUNoQlMsU0FBUzdDLFFBQVF5QixNQUFNb0MsSUFBSSxJQUFJaEIsVUFBVTt1QkFHN0Msb0JBQUNkO1FBQUlDLFdBQVcsQ0FBQyxFQUFFWCxVQUFVLGtCQUFrQixDQUFDO3FCQUM5QyxvQkFBQzRFO1FBQ0NqRSxXQUFXLENBQUMsRUFBRVgsVUFBVSxVQUFVLENBQUM7UUFDbkNpQixVQUFVZ0I7UUFDVk8sTUFBSztRQUNMcEMsT0FBT0EsTUFBTXlFLElBQUk7UUFHbEJsRyxRQUFReUIsTUFBTW9DLElBQUksS0FBS3BDLE1BQU1vQyxJQUFJLEtBQUssaUNBQ3JDLG9CQUFDbEM7UUFDQ0MsU0FBU3VELFlBQVlFO1FBQ3JCeEQsa0JBQWtCK0MsaUJBQWlCN0IsSUFBSTZDLFFBQVEsSUFBSSxDQUFDakQ7dUJBSTFELG9CQUFDOUI7UUFDQ3NGLGFBQVk7UUFDWm5FLFdBQVcsQ0FBQyxFQUFFWCxVQUFVLFFBQVEsQ0FBQztRQUNqQytFLE1BQUs7UUFDTEMsV0FBVTtRQUNWQyxTQUFTckM7UUFDVHNDLE9BQUFBO1FBQ0FDLFNBQVMxRSxFQUFFO1VBTXBCLEFBQUNMLENBQUFBLFNBQVNzQixJQUFJNkMsUUFBUSxBQUFELG1CQUNwQixvQkFBQzlFO1FBQU8yRixRQUFRO1FBQU14RSxNQUFNWDtxQkFDMUIsb0JBQUNMO1FBQ0M4QixLQUFLQSxPQUFPckI7UUFDWmdGLFVBQVVqRixPQUFPeUUsUUFBUW5ELEtBQUs2QztRQUM5Qi9DLFNBQVNBLFdBQVdFLEtBQUs0RDtRQUN6QmIsZUFBZVI7UUFDZkgsVUFBVUE7UUFDVkUsZ0JBQWdCQTtTQUlyQnRDLE9BQU82QiwrQkFDTixvQkFBQzlEO1FBQ0NrQixXQUFXLENBQUMsRUFBRVgsVUFBVSxlQUFlLENBQUM7UUFDeEN1RixZQUFBQTtRQUNBM0UsTUFBTVY7UUFDTnNGLE9BQU8vRSxFQUFFLG1CQUFtQjtZQUFFZ0YsT0FBTy9ELEtBQUs2QztRQUFTO3FCQUVuRCxvQkFBQ3pFO1FBQWE0QixLQUFLQTtRQUFLUCxjQUFjQTs7QUFLaEQsRUFBQyJ9
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9VcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHsgaXNJbWFnZSB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgRXJyb3IgZnJvbSAnLi4vLi4vZm9ybXMvRXJyb3InXG5pbXBvcnQgeyB1c2VGb3JtU3VibWl0dGVkIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS9jb250ZXh0J1xuaW1wb3J0IHJlZHVjZUZpZWxkc1RvVmFsdWVzIGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vcmVkdWNlRmllbGRzVG9WYWx1ZXMnXG5pbXBvcnQgeyBmaWVsZEJhc2VDbGFzcyB9IGZyb20gJy4uLy4uL2Zvcm1zL2ZpZWxkcy9zaGFyZWQnXG5pbXBvcnQgdXNlRmllbGQgZnJvbSAnLi4vLi4vZm9ybXMvdXNlRmllbGQnXG5pbXBvcnQgeyB1c2VEb2N1bWVudEluZm8gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvRG9jdW1lbnRJbmZvJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgeyBEcmF3ZXIsIERyYXdlclRvZ2dsZXIgfSBmcm9tICcuLi9EcmF3ZXInXG5pbXBvcnQgeyBEcm9wem9uZSB9IGZyb20gJy4uL0Ryb3B6b25lJ1xuaW1wb3J0IHsgRWRpdFVwbG9hZCB9IGZyb20gJy4uL0VkaXRVcGxvYWQnXG5pbXBvcnQgRmlsZURldGFpbHMgZnJvbSAnLi4vRmlsZURldGFpbHMnXG5pbXBvcnQgUHJldmlld1NpemVzIGZyb20gJy4uL1ByZXZpZXdTaXplcydcbmltcG9ydCBUaHVtYm5haWwgZnJvbSAnLi4vVGh1bWJuYWlsJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdmaWxlLWZpZWxkJ1xuZXhwb3J0IGNvbnN0IGVkaXREcmF3ZXJTbHVnID0gJ2VkaXQtdXBsb2FkJ1xuZXhwb3J0IGNvbnN0IHNpemVQcmV2aWV3U2x1ZyA9ICdwcmV2aWV3LXNpemVzJ1xuXG5jb25zdCB2YWxpZGF0ZSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAoIXZhbHVlICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gJ0EgZmlsZSBpcyByZXF1aXJlZC4nXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgVXBsb2FkQWN0aW9ucyA9ICh7IGNhbkVkaXQsIHNob3dTaXplUHJldmlld3MgfSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1tdXRhdGlvbmB9PlxuICAgICAge3Nob3dTaXplUHJldmlld3MgJiYgKFxuICAgICAgICA8RHJhd2VyVG9nZ2xlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3ByZXZpZXdTaXplc2B9IHNsdWc9e3NpemVQcmV2aWV3U2x1Z30+XG4gICAgICAgICAge3QoJ3VwbG9hZDpwcmV2aWV3U2l6ZXMnKX1cbiAgICAgICAgPC9EcmF3ZXJUb2dnbGVyPlxuICAgICAgKX1cbiAgICAgIHtjYW5FZGl0ICYmIChcbiAgICAgICAgPERyYXdlclRvZ2dsZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lZGl0YH0gc2x1Zz17ZWRpdERyYXdlclNsdWd9PlxuICAgICAgICAgIHt0KCd1cGxvYWQ6ZWRpdEltYWdlJyl9XG4gICAgICAgIDwvRHJhd2VyVG9nZ2xlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29sbGVjdGlvblNsdWcsIGluaXRpYWxTdGF0ZSwgb25DaGFuZ2UsIHVwZGF0ZWRBdCwgdXBsb2FkQ29uZmlnIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuICBjb25zdCBbcmVwbGFjaW5nRmlsZSwgc2V0UmVwbGFjaW5nRmlsZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2ZpbGVTcmMsIHNldEZpbGVTcmNdID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IFtkb2MsIHNldERvY10gPSB1c2VTdGF0ZShyZWR1Y2VGaWVsZHNUb1ZhbHVlcyhpbml0aWFsU3RhdGUgfHwge30sIHRydWUpKVxuICBjb25zdCB7IGRvY1Blcm1pc3Npb25zIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuICBjb25zdCB7IGVycm9yTWVzc2FnZSwgc2V0VmFsdWUsIHNob3dFcnJvciwgdmFsdWUgfSA9IHVzZUZpZWxkPEZpbGU+KHtcbiAgICBwYXRoOiAnZmlsZScsXG4gICAgdmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlRmlsZU5hbWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB1cGRhdGVkRmlsZU5hbWUgPSBlLnRhcmdldC52YWx1ZVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZmlsZVZhbHVlID0gdmFsdWVcbiAgICAgIC8vIENyZWF0aW5nIGEgbmV3IEZpbGUgb2JqZWN0IHdpdGggdXBkYXRlZCBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBuZXdGaWxlID0gbmV3IEZpbGUoW2ZpbGVWYWx1ZV0sIHVwZGF0ZWRGaWxlTmFtZSwgeyB0eXBlOiBmaWxlVmFsdWUudHlwZSB9KVxuICAgICAgc2V0VmFsdWUobmV3RmlsZSkgLy8gVXBkYXRpbmcgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBGaWxlIG9iamVjdFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3Rpb24gPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoZmlsZXM6IEZpbGVMaXN0KSA9PiB7XG4gICAgICBjb25zdCBmaWxlVG9VcGxvYWQgPSBmaWxlcz8uWzBdXG4gICAgICBzZXRWYWx1ZShmaWxlVG9VcGxvYWQpXG4gICAgfSxcbiAgICBbc2V0VmFsdWVdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlRmlsZVJlbW92YWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UmVwbGFjaW5nRmlsZSh0cnVlKVxuICAgIHNldFZhbHVlKG51bGwpXG4gICAgc2V0RmlsZVNyYygnJylcbiAgfSwgW3NldFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldERvYyhyZWR1Y2VGaWVsZHNUb1ZhbHVlcyhpbml0aWFsU3RhdGUgfHwge30sIHRydWUpKVxuICAgIHNldFJlcGxhY2luZ0ZpbGUoZmFsc2UpXG4gIH0sIFtpbml0aWFsU3RhdGVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgaW1nU3JjID0gZS50YXJnZXQ/LnJlc3VsdFxuXG4gICAgICAgIGlmICh0eXBlb2YgaW1nU3JjID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHNldEZpbGVTcmMoaW1nU3JjKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwodmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb25DaGFuZ2UodmFsdWUpXG4gICAgfVxuICB9LCBbdmFsdWUsIG9uQ2hhbmdlLCB1cGRhdGVkQXRdKVxuXG4gIGNvbnN0IGNhblJlbW92ZVVwbG9hZCA9XG4gICAgZG9jUGVybWlzc2lvbnM/LnVwZGF0ZT8ucGVybWlzc2lvbiAmJlxuICAgICdkZWxldGUnIGluIGRvY1Blcm1pc3Npb25zICYmXG4gICAgZG9jUGVybWlzc2lvbnM/LmRlbGV0ZT8ucGVybWlzc2lvblxuXG4gIGNvbnN0IGhhc0ltYWdlU2l6ZXMgPSB1cGxvYWRDb25maWc/LmltYWdlU2l6ZXM/Lmxlbmd0aCA+IDBcbiAgY29uc3QgaGFzUmVzaXplT3B0aW9ucyA9IEJvb2xlYW4odXBsb2FkQ29uZmlnPy5yZXNpemVPcHRpb25zKVxuXG4gIGNvbnN0IHsgY3JvcDogc2hvd0Nyb3AgPSB0cnVlLCBmb2NhbFBvaW50ID0gdHJ1ZSB9ID0gdXBsb2FkQ29uZmlnXG5cbiAgY29uc3Qgc2hvd0ZvY2FsUG9pbnQgPSBmb2NhbFBvaW50ICYmIChoYXNJbWFnZVNpemVzIHx8IGhhc1Jlc2l6ZU9wdGlvbnMpXG5cbiAgY29uc3QgbGFzdFN1Ym1pdHRlZFRpbWUgPSBzdWJtaXR0ZWQgPyBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgOiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17W2ZpZWxkQmFzZUNsYXNzLCBiYXNlQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9PlxuICAgICAgPEVycm9yIG1lc3NhZ2U9e2Vycm9yTWVzc2FnZX0gc2hvd0Vycm9yPXtzaG93RXJyb3J9IC8+XG4gICAgICB7ZG9jLmZpbGVuYW1lICYmICFyZXBsYWNpbmdGaWxlICYmIChcbiAgICAgICAgPEZpbGVEZXRhaWxzXG4gICAgICAgICAgY2FuRWRpdD17c2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnR9XG4gICAgICAgICAgY29sbGVjdGlvblNsdWc9e2NvbGxlY3Rpb25TbHVnfVxuICAgICAgICAgIGRvYz17ZG9jfVxuICAgICAgICAgIGhhbmRsZVJlbW92ZT17Y2FuUmVtb3ZlVXBsb2FkID8gaGFuZGxlRmlsZVJlbW92YWwgOiB1bmRlZmluZWR9XG4gICAgICAgICAgaGFzSW1hZ2VTaXplcz17aGFzSW1hZ2VTaXplc31cbiAgICAgICAgICBpbWFnZUNhY2hlVGFnPXtsYXN0U3VibWl0dGVkVGltZX1cbiAgICAgICAgICB1cGxvYWRDb25maWc9e3VwbG9hZENvbmZpZ31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7KCFkb2MuZmlsZW5hbWUgfHwgcmVwbGFjaW5nRmlsZSkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdXBsb2FkYH0+XG4gICAgICAgICAgeyF2YWx1ZSAmJiAoXG4gICAgICAgICAgICA8RHJvcHpvbmVcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kcm9wem9uZWB9XG4gICAgICAgICAgICAgIG1pbWVUeXBlcz17dXBsb2FkQ29uZmlnPy5taW1lVHlwZXN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0aW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3ZhbHVlICYmIChcbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RodW1ibmFpbC13cmFwYH0+XG4gICAgICAgICAgICAgICAgPFRodW1ibmFpbFxuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWc9e2NvbGxlY3Rpb25TbHVnfVxuICAgICAgICAgICAgICAgICAgZmlsZVNyYz17aXNJbWFnZSh2YWx1ZS50eXBlKSA/IGZpbGVTcmMgOiBudWxsfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1hZGp1c3RtZW50c2B9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19maWxlbmFtZWB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZU5hbWVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWUubmFtZX1cbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAge2lzSW1hZ2UodmFsdWUudHlwZSkgJiYgdmFsdWUudHlwZSAhPT0gJ2ltYWdlL3N2Zyt4bWwnICYmIChcbiAgICAgICAgICAgICAgICAgIDxVcGxvYWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIGNhbkVkaXQ9e3Nob3dDcm9wIHx8IHNob3dGb2NhbFBvaW50fVxuICAgICAgICAgICAgICAgICAgICBzaG93U2l6ZVByZXZpZXdzPXtoYXNJbWFnZVNpemVzICYmIGRvYy5maWxlbmFtZSAmJiAhcmVwbGFjaW5nRmlsZX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cImljb24tbGFiZWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVtb3ZlYH1cbiAgICAgICAgICAgICAgICBpY29uPVwieFwiXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlPVwid2l0aC1ib3JkZXJcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUZpbGVSZW1vdmFsfVxuICAgICAgICAgICAgICAgIHJvdW5kXG4gICAgICAgICAgICAgICAgdG9vbHRpcD17dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgeyh2YWx1ZSB8fCBkb2MuZmlsZW5hbWUpICYmIChcbiAgICAgICAgPERyYXdlciBIZWFkZXI9e251bGx9IHNsdWc9e2VkaXREcmF3ZXJTbHVnfT5cbiAgICAgICAgICA8RWRpdFVwbG9hZFxuICAgICAgICAgICAgZG9jPXtkb2MgfHwgdW5kZWZpbmVkfVxuICAgICAgICAgICAgZmlsZU5hbWU9e3ZhbHVlPy5uYW1lIHx8IGRvYz8uZmlsZW5hbWV9XG4gICAgICAgICAgICBmaWxlU3JjPXtmaWxlU3JjIHx8IGRvYz8udXJsfVxuICAgICAgICAgICAgaW1hZ2VDYWNoZVRhZz17bGFzdFN1Ym1pdHRlZFRpbWV9XG4gICAgICAgICAgICBzaG93Q3JvcD17c2hvd0Nyb3B9XG4gICAgICAgICAgICBzaG93Rm9jYWxQb2ludD17c2hvd0ZvY2FsUG9pbnR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICApfVxuICAgICAge2RvYyAmJiBoYXNJbWFnZVNpemVzICYmIChcbiAgICAgICAgPERyYXdlclxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcHJldmlld0RyYXdlcmB9XG4gICAgICAgICAgaG92ZXJUaXRsZVxuICAgICAgICAgIHNsdWc9e3NpemVQcmV2aWV3U2x1Z31cbiAgICAgICAgICB0aXRsZT17dCgndXBsb2FkOnNpemVzRm9yJywgeyBsYWJlbDogZG9jPy5maWxlbmFtZSB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxQcmV2aWV3U2l6ZXMgZG9jPXtkb2N9IHVwbG9hZENvbmZpZz17dXBsb2FkQ29uZmlnfSAvPlxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc0ltYWdlIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiRXJyb3IiLCJ1c2VGb3JtU3VibWl0dGVkIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJmaWVsZEJhc2VDbGFzcyIsInVzZUZpZWxkIiwidXNlRG9jdW1lbnRJbmZvIiwidXNlVHJhbnNsYXRpb24iLCJCdXR0b24iLCJEcmF3ZXIiLCJEcmF3ZXJUb2dnbGVyIiwiRHJvcHpvbmUiLCJFZGl0VXBsb2FkIiwiRmlsZURldGFpbHMiLCJQcmV2aWV3U2l6ZXMiLCJUaHVtYm5haWwiLCJiYXNlQ2xhc3MiLCJlZGl0RHJhd2VyU2x1ZyIsInNpemVQcmV2aWV3U2x1ZyIsInZhbGlkYXRlIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJVcGxvYWRBY3Rpb25zIiwiY2FuRWRpdCIsInNob3dTaXplUHJldmlld3MiLCJ0IiwiZGl2IiwiY2xhc3NOYW1lIiwic2x1ZyIsIlVwbG9hZCIsInByb3BzIiwiY29sbGVjdGlvblNsdWciLCJpbml0aWFsU3RhdGUiLCJvbkNoYW5nZSIsInVwZGF0ZWRBdCIsInVwbG9hZENvbmZpZyIsInN1Ym1pdHRlZCIsInJlcGxhY2luZ0ZpbGUiLCJzZXRSZXBsYWNpbmdGaWxlIiwiZmlsZVNyYyIsInNldEZpbGVTcmMiLCJkb2MiLCJzZXREb2MiLCJkb2NQZXJtaXNzaW9ucyIsImVycm9yTWVzc2FnZSIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwicGF0aCIsImhhbmRsZUZpbGVOYW1lQ2hhbmdlIiwiZSIsInVwZGF0ZWRGaWxlTmFtZSIsInRhcmdldCIsImZpbGVWYWx1ZSIsIm5ld0ZpbGUiLCJGaWxlIiwidHlwZSIsImhhbmRsZUZpbGVTZWxlY3Rpb24iLCJmaWxlcyIsImZpbGVUb1VwbG9hZCIsImhhbmRsZUZpbGVSZW1vdmFsIiwiZmlsZVJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJpbWdTcmMiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwiY2FuUmVtb3ZlVXBsb2FkIiwidXBkYXRlIiwicGVybWlzc2lvbiIsImRlbGV0ZSIsImhhc0ltYWdlU2l6ZXMiLCJpbWFnZVNpemVzIiwibGVuZ3RoIiwiaGFzUmVzaXplT3B0aW9ucyIsIkJvb2xlYW4iLCJyZXNpemVPcHRpb25zIiwiY3JvcCIsInNob3dDcm9wIiwiZm9jYWxQb2ludCIsInNob3dGb2NhbFBvaW50IiwibGFzdFN1Ym1pdHRlZFRpbWUiLCJEYXRlIiwidG9JU09TdHJpbmciLCJmaWx0ZXIiLCJqb2luIiwibWVzc2FnZSIsImZpbGVuYW1lIiwiaGFuZGxlUmVtb3ZlIiwiaW1hZ2VDYWNoZVRhZyIsIm1pbWVUeXBlcyIsIkZyYWdtZW50IiwiaW5wdXQiLCJuYW1lIiwiYnV0dG9uU3R5bGUiLCJpY29uIiwiaWNvblN0eWxlIiwib25DbGljayIsInJvdW5kIiwidG9vbHRpcCIsIkhlYWRlciIsImZpbGVOYW1lIiwidXJsIiwiaG92ZXJUaXRsZSIsInRpdGxlIiwibGFiZWwiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EsT0FBTyxRQUFRLG9CQUFtQjtBQUMzQyxPQUFPQyxTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFJL0QsT0FBT0MsV0FBVyxvQkFBbUI7QUFDckMsU0FBU0MsZ0JBQWdCLFFBQVEsMkJBQTBCO0FBQzNELE9BQU9DLDBCQUEwQix3Q0FBdUM7QUFDeEUsU0FBU0MsY0FBYyxRQUFRLDRCQUEyQjtBQUMxRCxPQUFPQyxjQUFjLHVCQUFzQjtBQUMzQyxTQUFTQyxlQUFlLFFBQVEsK0JBQThCO0FBQzlELFNBQVNDLGNBQWMsUUFBUSw4QkFBNkI7QUFDNUQsU0FBU0MsTUFBTSxRQUFRLFlBQVc7QUFDbEMsU0FBU0MsTUFBTSxFQUFFQyxhQUFhLFFBQVEsWUFBVztBQUNqRCxTQUFTQyxRQUFRLFFBQVEsY0FBYTtBQUN0QyxTQUFTQyxVQUFVLFFBQVEsZ0JBQWU7QUFDMUMsT0FBT0MsaUJBQWlCLGlCQUFnQjtBQUN4QyxPQUFPQyxrQkFBa0Isa0JBQWlCO0FBQzFDLE9BQU9DLGVBQWUsZUFBYztBQUNwQyxPQUFPLGVBQWM7QUFFckIsTUFBTUMsWUFBWTtBQUNsQixPQUFPLE1BQU1DLGlCQUFpQixjQUFhO0FBQzNDLE9BQU8sTUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAA6C,KAAK,EAAiB,MAAM,SAAS,CAAA;AA+B9F,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgjBzB,CAAA;AAED,eAAe,IAAI,CAAA"}
|
package/dist/forms/Form/index.js
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
import { useRouter } from 'next/navigation';
|
|
4
4
|
import { serialize } from 'object-to-formdata';
|
|
5
5
|
import { wait } from 'payload/utilities';
|
|
6
|
+
import QueryString from 'qs';
|
|
6
7
|
import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react';
|
|
7
8
|
import { toast } from 'react-toastify';
|
|
9
|
+
import { useFormQueryParams } from '../..';
|
|
8
10
|
import { useDebouncedEffect } from '../../hooks/useDebouncedEffect';
|
|
9
11
|
import useThrottledEffect from '../../hooks/useThrottledEffect';
|
|
10
12
|
import { useAuth } from '../../providers/Auth';
|
|
@@ -34,6 +36,7 @@ const Form = (props)=>{
|
|
|
34
36
|
const { i18n, t } = useTranslation();
|
|
35
37
|
const { refreshCookie, user } = useAuth();
|
|
36
38
|
const operation = useOperation();
|
|
39
|
+
const { formQueryParams } = useFormQueryParams();
|
|
37
40
|
const config = useConfig();
|
|
38
41
|
const { routes: { api: apiRoute }, serverURL } = config;
|
|
39
42
|
const [modified, setModified] = useState(false);
|
|
@@ -152,7 +155,10 @@ const Form = (props)=>{
|
|
|
152
155
|
try {
|
|
153
156
|
let res;
|
|
154
157
|
if (typeof actionToUse === 'string') {
|
|
155
|
-
|
|
158
|
+
const actionEndpoint = `${actionToUse}${QueryString.stringify(formQueryParams, {
|
|
159
|
+
addQueryPrefix: true
|
|
160
|
+
})}`;
|
|
161
|
+
res = await requests[methodToUse.toLowerCase()](actionEndpoint, {
|
|
156
162
|
body: formData,
|
|
157
163
|
headers: {
|
|
158
164
|
'Accept-Language': i18n.language
|
|
@@ -270,7 +276,8 @@ const Form = (props)=>{
|
|
|
270
276
|
t,
|
|
271
277
|
i18n,
|
|
272
278
|
waitForAutocomplete,
|
|
273
|
-
beforeSubmit
|
|
279
|
+
beforeSubmit,
|
|
280
|
+
formQueryParams
|
|
274
281
|
]);
|
|
275
282
|
const getFields = useCallback(()=>contextRef.current.fields, []);
|
|
276
283
|
const getField = useCallback((path)=>contextRef.current.fields[path], []);
|
|
@@ -480,8 +487,11 @@ const Form = (props)=>{
|
|
|
480
487
|
dispatchFields,
|
|
481
488
|
onChange
|
|
482
489
|
]);
|
|
490
|
+
const actionString = typeof action === 'string' ? `${action}${QueryString.stringify(formQueryParams, {
|
|
491
|
+
addQueryPrefix: true
|
|
492
|
+
})}` : '';
|
|
483
493
|
return /*#__PURE__*/ React.createElement("form", {
|
|
484
|
-
action: action,
|
|
494
|
+
action: method ? actionString : action,
|
|
485
495
|
className: classes,
|
|
486
496
|
method: method,
|
|
487
497
|
noValidate: true,
|
|
@@ -506,4 +516,4 @@ const Form = (props)=>{
|
|
|
506
516
|
};
|
|
507
517
|
export default Form;
|
|
508
518
|
|
|
509
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb3Jtcy9Gb3JtL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIEZvcm1TdGF0ZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gJ29iamVjdC10by1mb3JtZGF0YSdcbmltcG9ydCB7IHdhaXQgfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJ3JlYWN0LXRvYXN0aWZ5J1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHQgYXMgRm9ybUNvbnRleHRUeXBlLCBHZXREYXRhQnlQYXRoLCBQcm9wcywgU3VibWl0T3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZURlYm91bmNlZEVmZmVjdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURlYm91bmNlZEVmZmVjdCdcbmltcG9ydCB1c2VUaHJvdHRsZWRFZmZlY3QgZnJvbSAnLi4vLi4vaG9va3MvdXNlVGhyb3R0bGVkRWZmZWN0J1xuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9BdXRoJ1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0NvbmZpZydcbmltcG9ydCB7IHVzZURvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9Eb2N1bWVudEluZm8nXG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvTG9jYWxlJ1xuaW1wb3J0IHsgdXNlT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL09wZXJhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyByZXF1ZXN0cyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9hcGknXG5pbXBvcnQgeyBnZXRGb3JtU3RhdGUgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ2V0Rm9ybVN0YXRlJ1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRleHQsXG4gIEZvcm1GaWVsZHNDb250ZXh0LFxuICBGb3JtV2F0Y2hDb250ZXh0LFxuICBNb2RpZmllZENvbnRleHQsXG4gIFByb2Nlc3NpbmdDb250ZXh0LFxuICBTdWJtaXR0ZWRDb250ZXh0LFxufSBmcm9tICcuL2NvbnRleHQnXG5pbXBvcnQgZXJyb3JNZXNzYWdlcyBmcm9tICcuL2Vycm9yTWVzc2FnZXMnXG5pbXBvcnQgeyBmaWVsZFJlZHVjZXIgfSBmcm9tICcuL2ZpZWxkUmVkdWNlcidcbmltcG9ydCBnZXREYXRhQnlQYXRoRnVuYyBmcm9tICcuL2dldERhdGFCeVBhdGgnXG5pbXBvcnQgZ2V0U2libGluZ0RhdGFGdW5jIGZyb20gJy4vZ2V0U2libGluZ0RhdGEnXG5pbXBvcnQgaW5pdENvbnRleHRTdGF0ZSBmcm9tICcuL2luaXRDb250ZXh0U3RhdGUnXG5pbXBvcnQgeyBtZXJnZVNlcnZlckZvcm1TdGF0ZSB9IGZyb20gJy4vbWVyZ2VTZXJ2ZXJGb3JtU3RhdGUnXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zvcm0nXG5cbmNvbnN0IEZvcm06IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBnZXREb2NQcmVmZXJlbmNlcyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBjb25zdCB7XG4gICAgYWN0aW9uLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBkaXNhYmxlU3VjY2Vzc1N0YXR1cyxcbiAgICBkaXNhYmxlZCxcbiAgICAvLyBmaWVsZHM6IGZpZWxkc0Zyb21Qcm9wcyA9IGNvbGxlY3Rpb24/LmZpZWxkcyB8fCBnbG9iYWw/LmZpZWxkcyxcbiAgICBiZWZvcmVTdWJtaXQsXG4gICAgaGFuZGxlUmVzcG9uc2UsXG4gICAgaW5pdGlhbFN0YXRlLCAvLyBmdWxseSBmb3JtZWQgaW5pdGlhbCBmaWVsZCBzdGF0ZVxuICAgIG9uQ2hhbmdlLFxuICAgIG9uU3VibWl0LFxuICAgIG9uU3VjY2VzcyxcbiAgICByZWRpcmVjdCxcbiAgICBzdWJtaXR0ZWQ6IHN1Ym1pdHRlZEZyb21Qcm9wcyxcbiAgICB1dWlkLFxuICAgIHdhaXRGb3JBdXRvY29tcGxldGUsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IG1ldGhvZCA9ICdtZXRob2QnIGluIHByb3BzID8gcHJvcHMubWV0aG9kIDogdW5kZWZpbmVkXG5cbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKClcblxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IHsgcmVmcmVzaENvb2tpZSwgdXNlciB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHVzZU9wZXJhdGlvbigpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcbiAgY29uc3Qge1xuICAgIHJvdXRlczogeyBhcGk6IGFwaVJvdXRlIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gY29uZmlnXG5cbiAgY29uc3QgW21vZGlmaWVkLCBzZXRNb2RpZmllZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3Byb2Nlc3NpbmcsIHNldFByb2Nlc3NpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzdWJtaXR0ZWQsIHNldFN1Ym1pdHRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgZm9ybVJlZiA9IHVzZVJlZjxIVE1MRm9ybUVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNvbnRleHRSZWYgPSB1c2VSZWYoe30gYXMgRm9ybUNvbnRleHRUeXBlKVxuICBjb25zdCB7IGNvbGxlY3Rpb25TbHVnLCBnbG9iYWxTbHVnIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IGZpZWxkc1JlZHVjZXIgPSB1c2VSZWR1Y2VyKGZpZWxkUmVkdWNlciwge30sICgpID0+IGluaXRpYWxTdGF0ZSlcbiAgLyoqXG4gICAqIGBmaWVsZHNgIGlzIHRoZSBjdXJyZW50LCB1cC10by1kYXRlIHN0YXRlL2RhdGEgb2YgYWxsIGZpZWxkcyBpbiB0aGUgZm9ybS4gSXQgY2FuIGJlIG1vZGlmaWVkIGJ5IHVzaW5nIGRpc3BhdGNoRmllbGRzLFxuICAgKiB3aGljaCBjYWxscyB0aGUgZmllbGRSZWR1Y2VyLCB3aGljaCB0aGVuIHVwZGF0ZXMgdGhlIHN0YXRlLlxuICAgKi9cbiAgY29uc3QgW2ZpZWxkcywgZGlzcGF0Y2hGaWVsZHNdID0gZmllbGRzUmVkdWNlclxuXG4gIGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMgPSBmaWVsZHNcblxuICBjb25zdCB2YWxpZGF0ZUZvcm0gPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGVkRmllbGRTdGF0ZSA9IHt9XG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlXG5cbiAgICBjb25zdCBkYXRhRnJvbUNvbnRleHQgPSBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RGF0YSgpXG4gICAgY29uc3QgZGF0YSA9IGRhdGFGcm9tQ29udGV4dFxuXG4gICAgY29uc3QgdmFsaWRhdGlvblByb21pc2VzID0gT2JqZWN0LmVudHJpZXMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcykubWFwKFxuICAgICAgYXN5bmMgKFtwYXRoLCBmaWVsZF0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkRmllbGQgPSB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQucGFzc2VzQ29uZGl0aW9uICE9PSBmYWxzZSkge1xuICAgICAgICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBib29sZWFuIHwgc3RyaW5nID0gdHJ1ZVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBmaWVsZC52YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHZhbHVlVG9WYWxpZGF0ZSA9IGZpZWxkLnZhbHVlXG5cbiAgICAgICAgICAgIGlmIChmaWVsZD8ucm93cyAmJiBBcnJheS5pc0FycmF5KGZpZWxkLnJvd3MpKSB7XG4gICAgICAgICAgICAgIHZhbHVlVG9WYWxpZGF0ZSA9IGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhQnlQYXRoKHBhdGgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZC52YWxpZGF0ZSh2YWx1ZVRvVmFsaWRhdGUsIHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBzaWJsaW5nRGF0YTogY29udGV4dFJlZi5jdXJyZW50LmdldFNpYmxpbmdEYXRhKHBhdGgpLFxuICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC5lcnJvck1lc3NhZ2UgPSB2YWxpZGF0aW9uUmVzdWx0XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC52YWxpZCA9IGZhbHNlXG4gICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YWxpZGF0ZWRGaWVsZFN0YXRlW3BhdGhdID0gdmFsaWRhdGVkRmllbGRcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodmFsaWRhdGlvblByb21pc2VzKVxuXG4gICAgaWYgKCFpc0RlZXBFcXVhbChjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB2YWxpZGF0ZWRGaWVsZFN0YXRlKSkge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlOiB2YWxpZGF0ZWRGaWVsZFN0YXRlIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRcbiAgfSwgW2lkLCB1c2VyLCBvcGVyYXRpb24sIHQsIGRpc3BhdGNoRmllbGRzLCBjb25maWddKVxuXG4gIGNvbnN0IHN1Ym1pdCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChvcHRpb25zOiBTdWJtaXRPcHRpb25zID0ge30sIGUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25Ub1VzZSA9IGFjdGlvbixcbiAgICAgICAgbWV0aG9kOiBtZXRob2RUb1VzZSA9IG1ldGhvZCxcbiAgICAgICAgb3ZlcnJpZGVzID0ge30sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgfSA9IG9wdGlvbnNcblxuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGlmIChlKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIHNldFByb2Nlc3NpbmcodHJ1ZSlcbiAgICAgIHNldFN1Ym1pdHRlZCh0cnVlKVxuXG4gICAgICBpZiAod2FpdEZvckF1dG9jb21wbGV0ZSkgYXdhaXQgd2FpdCgxMDApXG5cbiAgICAgIC8vIEV4ZWN1dGUgc2VydmVyIHNpZGUgdmFsaWRhdGlvbnNcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGJlZm9yZVN1Ym1pdCkpIHtcbiAgICAgICAgbGV0IHJldmFsaWRhdGVkRm9ybVN0YXRlOiBGb3JtU3RhdGVcblxuICAgICAgICBhd2FpdCBiZWZvcmVTdWJtaXQucmVkdWNlKGFzeW5jIChwcmlvck9uQ2hhbmdlLCBiZWZvcmVTdWJtaXRGbikgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9yT25DaGFuZ2VcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJlZm9yZVN1Ym1pdEZuKHtcbiAgICAgICAgICAgIGZvcm1TdGF0ZTogZmllbGRzLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXZhbGlkYXRlZEZvcm1TdGF0ZSA9IHJlc3VsdFxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gT2JqZWN0LmVudHJpZXMocmV2YWxpZGF0ZWRGb3JtU3RhdGUpLmV2ZXJ5KChbLCBmaWVsZF0pID0+IGZpZWxkLnZhbGlkKVxuXG4gICAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICAgIHNldFByb2Nlc3NpbmcoZmFsc2UpXG4gICAgICAgICAgcmV0dXJuIGRpc3BhdGNoRmllbGRzKHsgdHlwZTogJ1JFUExBQ0VfU1RBVEUnLCBzdGF0ZTogcmV2YWxpZGF0ZWRGb3JtU3RhdGUgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpc1ZhbGlkID0gc2tpcFZhbGlkYXRpb24gPyB0cnVlIDogYXdhaXQgY29udGV4dFJlZi5jdXJyZW50LnZhbGlkYXRlRm9ybSgpXG5cbiAgICAgIC8vIElmIG5vdCB2YWxpZCwgcHJldmVudCBzdWJtaXNzaW9uXG4gICAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgdG9hc3QuZXJyb3IodCgnZXJyb3I6Y29ycmVjdEludmFsaWRGaWVsZHMnKSlcbiAgICAgICAgc2V0UHJvY2Vzc2luZyhmYWxzZSlcblxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgc3VibWl0IGhhbmRsZXIgY29tZXMgdGhyb3VnaCB2aWEgcHJvcHMsIHJ1biB0aGF0XG4gICAgICBpZiAob25TdWJtaXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAuLi5yZWR1Y2VGaWVsZHNUb1ZhbHVlcyhmaWVsZHMsIHRydWUpLFxuICAgICAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICAgICAgfVxuXG4gICAgICAgIG9uU3VibWl0KGZpZWxkcywgZGF0YSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm9ybURhdGEgPSBjb250ZXh0UmVmLmN1cnJlbnQuY3JlYXRlRm9ybURhdGEob3ZlcnJpZGVzKVxuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgcmVzXG5cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb25Ub1VzZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXMgPSBhd2FpdCByZXF1ZXN0c1ttZXRob2RUb1VzZS50b0xvd2VyQ2FzZSgpXShhY3Rpb25Ub1VzZSwge1xuICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY3Rpb25Ub1VzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJlcyA9IGF3YWl0IGFjdGlvblRvVXNlKGZvcm1EYXRhKVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0TW9kaWZpZWQoZmFsc2UpXG5cbiAgICAgICAgaWYgKHR5cGVvZiBoYW5kbGVSZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGhhbmRsZVJlc3BvbnNlKHJlcylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHNldFByb2Nlc3NpbmcoZmFsc2UpXG5cbiAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpXG4gICAgICAgIGNvbnN0IGlzSlNPTiA9IGNvbnRlbnRUeXBlICYmIGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2pzb24nKSAhPT0gLTFcblxuICAgICAgICBsZXQganNvbjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XG5cbiAgICAgICAgaWYgKGlzSlNPTikganNvbiA9IGF3YWl0IHJlcy5qc29uKClcblxuICAgICAgICBpZiAocmVzLnN0YXR1cyA8IDQwMCkge1xuICAgICAgICAgIHNldFN1Ym1pdHRlZChmYWxzZSlcblxuICAgICAgICAgIGlmICh0eXBlb2Ygb25TdWNjZXNzID09PSAnZnVuY3Rpb24nKSBvblN1Y2Nlc3MoanNvbilcblxuICAgICAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICAgICAgLy8gY29uc3QgZGVzdGluYXRpb24gPSB7XG4gICAgICAgICAgICAvLyAgIHBhdGhuYW1lOiByZWRpcmVjdCxcbiAgICAgICAgICAgIC8vICAgc3RhdGU6IHt9LFxuICAgICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgICAvLyBpZiAodHlwZW9mIGpzb24gPT09ICdvYmplY3QnICYmIGpzb24ubWVzc2FnZSAmJiAhZGlzYWJsZVN1Y2Nlc3NTdGF0dXMpIHtcbiAgICAgICAgICAgIC8vICAgZGVzdGluYXRpb24uc3RhdGUgPSB7XG4gICAgICAgICAgICAvLyAgICAgc3RhdHVzOiBbXG4gICAgICAgICAgICAvLyAgICAgICB7XG4gICAgICAgICAgICAvLyAgICAgICAgIG1lc3NhZ2U6IGpzb24ubWVzc2FnZSxcbiAgICAgICAgICAgIC8vICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgLy8gICAgICAgfSxcbiAgICAgICAgICAgIC8vICAgICBdLFxuICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICAgIHJvdXRlci5wdXNoKHJlZGlyZWN0KVxuICAgICAgICAgIH0gZWxzZSBpZiAoIWRpc2FibGVTdWNjZXNzU3RhdHVzKSB7XG4gICAgICAgICAgICB0b2FzdC5zdWNjZXNzKGpzb24ubWVzc2FnZSB8fCB0KCdnZW5lcmFsOnN1Ym1pc3Npb25TdWNjZXNzZnVsJyksIHsgYXV0b0Nsb3NlOiAzMDAwIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uY29udGV4dFJlZi5jdXJyZW50IH0gLy8gdHJpZ2dlcnMgcmVyZW5kZXIgb2YgYWxsIGNvbXBvbmVudHMgdGhhdCBzdWJzY3JpYmUgdG8gZm9ybVxuICAgICAgICAgIGlmIChqc29uLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRvYXN0LmVycm9yKGpzb24ubWVzc2FnZSlcblxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbi5lcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBbZmllbGRFcnJvcnMsIG5vbkZpZWxkRXJyb3JzXSA9IGpzb24uZXJyb3JzLnJlZHVjZShcbiAgICAgICAgICAgICAgKFtmaWVsZEVycnMsIG5vbkZpZWxkRXJyc10sIGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkRXJycyA9IFtdXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Tm9uRmllbGRFcnJzID0gW11cblxuICAgICAgICAgICAgICAgIGlmIChlcnI/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIG5ld05vbkZpZWxkRXJycy5wdXNoKGVycilcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlcnI/LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICBlcnIuZGF0YS5mb3JFYWNoKChkYXRhRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFFcnJvcj8uZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBuZXdGaWVsZEVycnMucHVzaChkYXRhRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3Tm9uRmllbGRFcnJzLnB1c2goZGF0YUVycm9yKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICBbLi4uZmllbGRFcnJzLCAuLi5uZXdGaWVsZEVycnNdLFxuICAgICAgICAgICAgICAgICAgWy4uLm5vbkZpZWxkRXJycywgLi4ubmV3Tm9uRmllbGRFcnJzXSxcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtbXSwgW11dLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBmaWVsZEVycm9ycy5mb3JFYWNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgZGlzcGF0Y2hGaWVsZHMoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdVUERBVEUnLFxuICAgICAgICAgICAgICAgIC4uLihjb250ZXh0UmVmLmN1cnJlbnQ/LmZpZWxkcz8uW2Vyci5maWVsZF0gfHwge30pLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgcGF0aDogZXJyLmZpZWxkLFxuICAgICAgICAgICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIG5vbkZpZWxkRXJyb3JzLmZvckVhY2goKGVycikgPT4ge1xuICAgICAgICAgICAgICB0b2FzdC5lcnJvcihlcnIubWVzc2FnZSB8fCB0KCdlcnJvcjp1bmtub3duJykpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNZXNzYWdlcz8uW3Jlcy5zdGF0dXNdIHx8IHJlcz8uc3RhdHVzVGV4dCB8fCB0KCdlcnJvcjp1bmtub3duJylcblxuICAgICAgICAgIHRvYXN0LmVycm9yKG1lc3NhZ2UpXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBzZXRQcm9jZXNzaW5nKGZhbHNlKVxuXG4gICAgICAgIHRvYXN0LmVycm9yKGVycilcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGFjdGlvbixcbiAgICAgIGRpc2FibGVTdWNjZXNzU3RhdHVzLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBkaXNwYXRjaEZpZWxkcyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGhhbmRsZVJlc3BvbnNlLFxuICAgICAgbWV0aG9kLFxuICAgICAgb25TdWJtaXQsXG4gICAgICBvblN1Y2Nlc3MsXG4gICAgICByZWRpcmVjdCxcbiAgICAgIHJvdXRlcixcbiAgICAgIHQsXG4gICAgICBpMThuLFxuICAgICAgd2FpdEZvckF1dG9jb21wbGV0ZSxcbiAgICAgIGJlZm9yZVN1Ym1pdCxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgZ2V0RmllbGRzID0gdXNlQ2FsbGJhY2soKCkgPT4gY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgW10pXG5cbiAgY29uc3QgZ2V0RmllbGQgPSB1c2VDYWxsYmFjaygocGF0aDogc3RyaW5nKSA9PiBjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzW3BhdGhdLCBbXSlcblxuICBjb25zdCBnZXREYXRhID0gdXNlQ2FsbGJhY2soKCkgPT4gcmVkdWNlRmllbGRzVG9WYWx1ZXMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgdHJ1ZSksIFtdKVxuXG4gIGNvbnN0IGdldFNpYmxpbmdEYXRhID0gdXNlQ2FsbGJhY2soXG4gICAgKHBhdGg6IHN0cmluZykgPT4gZ2V0U2libGluZ0RhdGFGdW5jKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHBhdGgpLFxuICAgIFtdLFxuICApXG4gIGNvbnN0IGdldERhdGFCeVBhdGggPSB1c2VDYWxsYmFjazxHZXREYXRhQnlQYXRoPihcbiAgICAocGF0aDogc3RyaW5nKSA9PiBnZXREYXRhQnlQYXRoRnVuYyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCBwYXRoKSxcbiAgICBbXSxcbiAgKVxuXG4gIGNvbnN0IGNyZWF0ZUZvcm1EYXRhID0gdXNlQ2FsbGJhY2soKG92ZXJyaWRlczogYW55ID0ge30pID0+IHtcbiAgICBjb25zdCBkYXRhID0gcmVkdWNlRmllbGRzVG9WYWx1ZXMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgdHJ1ZSlcblxuICAgIGNvbnN0IGZpbGUgPSBkYXRhPy5maWxlXG5cbiAgICBpZiAoZmlsZSkge1xuICAgICAgZGVsZXRlIGRhdGEuZmlsZVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGFXaXRoT3ZlcnJpZGVzID0ge1xuICAgICAgLi4uZGF0YSxcbiAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhVG9TZXJpYWxpemUgPSB7XG4gICAgICBfcGF5bG9hZDogSlNPTi5zdHJpbmdpZnkoZGF0YVdpdGhPdmVycmlkZXMpLFxuICAgICAgZmlsZSxcbiAgICB9XG5cbiAgICAvLyBudWxsQXNVbmRlZmluZWRzIGlzIGltcG9ydGFudCB0byBhbGxvdyB1cGxvYWRzIGFuZCByZWxhdGlvbnNoaXAgZmllbGRzIHRvIGNsZWFyIHRoZW1zZWx2ZXNcbiAgICBjb25zdCBmb3JtRGF0YSA9IHNlcmlhbGl6ZShkYXRhVG9TZXJpYWxpemUsIHsgaW5kaWNlczogdHJ1ZSwgbnVsbHNBc1VuZGVmaW5lZHM6IGZhbHNlIH0pXG5cbiAgICByZXR1cm4gZm9ybURhdGFcbiAgfSwgW10pXG5cbiAgY29uc3QgcmVzZXQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoZmllbGRTY2hlbWE6IEZpZWxkW10sIGRhdGE6IHVua25vd24pID0+IHtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzID0gYXdhaXQgZ2V0RG9jUHJlZmVyZW5jZXMoKVxuICAgICAgLy8gY29uc3Qgc3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAvLyAgIGlkLFxuICAgICAgLy8gICAvLyBUT0RPOiBmaXggdGhpc1xuICAgICAgLy8gICAvLyBAdHMtaWdub3JlLW5leHQtbGluZVxuICAgICAgLy8gICBjb25maWcsXG4gICAgICAvLyAgIGRhdGEsXG4gICAgICAvLyAgIGZpZWxkU2NoZW1hLFxuICAgICAgLy8gICBsb2NhbGUsXG4gICAgICAvLyAgIG9wZXJhdGlvbixcbiAgICAgIC8vICAgcHJlZmVyZW5jZXMsXG4gICAgICAvLyAgIHQsXG4gICAgICAvLyAgIHVzZXIsXG4gICAgICAvLyB9KVxuICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5pbml0Q29udGV4dFN0YXRlIH0gYXMgRm9ybUNvbnRleHRUeXBlXG4gICAgICBzZXRNb2RpZmllZChmYWxzZSlcbiAgICAgIC8vIGRpc3BhdGNoRmllbGRzKHsgc3RhdGUsIHR5cGU6ICdSRVBMQUNFX1NUQVRFJyB9KVxuICAgIH0sXG4gICAgW2dldERvY1ByZWZlcmVuY2VzXSxcbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VTdGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChzdGF0ZTogRm9ybVN0YXRlKSA9PiB7XG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmluaXRDb250ZXh0U3RhdGUgfSBhcyBGb3JtQ29udGV4dFR5cGVcbiAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlIH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHNdLFxuICApXG5cbiAgY29uc3QgZ2V0RmllbGRTdGF0ZUJ5UGF0aCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh7IGRhdGEsIHBhdGggfSkgPT4ge1xuICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSBhd2FpdCBnZXRGb3JtU3RhdGUoe1xuICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZ2xvYmFsU2x1ZyxcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgIFR1cm5zOiAnYXJyYXlGaWVsZC4wLmdyb3VwMTIzZmllbGQuYXJyYXlGaWVsZC4wLnRleHRGaWVsZCdcbiAgICAgICAgICAgIEludG86ICdhcnJheUZpZWxkLmdyb3VwMTIzZmllbGQuYXJyYXlGaWVsZC50ZXh0RmllbGQnXG4gICAgICAgICAgKi9cbiAgICAgICAgICBzY2hlbWFQYXRoOiBgJHtjb2xsZWN0aW9uU2x1ZyB8fCBnbG9iYWxTbHVnfS4ke3BhdGh9YC5yZXBsYWNlKC9cXC5cXGQrXFwuL2csICcuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZlclVSTCxcbiAgICAgIH0pXG4gICAgICByZXR1cm4gZmllbGRTY2hlbWFcbiAgICB9LFxuICAgIFthcGlSb3V0ZSwgY29sbGVjdGlvblNsdWcsIGdsb2JhbFNsdWcsIHNlcnZlclVSTF0sXG4gIClcblxuICBjb25zdCBhZGRGaWVsZFJvdzogRm9ybUNvbnRleHRUeXBlWydhZGRGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgZGF0YSwgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3Qgc3ViRmllbGRTdGF0ZSA9IGF3YWl0IGdldEZpZWxkU3RhdGVCeVBhdGgoeyBkYXRhLCBwYXRoIH0pXG5cbiAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgdHlwZTogJ0FERF9ST1cnLFxuICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcm93SW5kZXgsXG4gICAgICAgIHN1YkZpZWxkU3RhdGUsXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2dldEZpZWxkU3RhdGVCeVBhdGgsIGRpc3BhdGNoRmllbGRzXSxcbiAgKVxuXG4gIGNvbnN0IHJlbW92ZUZpZWxkUm93OiBGb3JtQ29udGV4dFR5cGVbJ3JlbW92ZUZpZWxkUm93J10gPSB1c2VDYWxsYmFjayhcbiAgICAoeyBwYXRoLCByb3dJbmRleCB9KSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHR5cGU6ICdSRU1PVkVfUk9XJywgcGF0aCwgcm93SW5kZXggfSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkc10sXG4gIClcblxuICBjb25zdCByZXBsYWNlRmllbGRSb3c6IEZvcm1Db250ZXh0VHlwZVsncmVwbGFjZUZpZWxkUm93J10gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoeyBkYXRhLCBwYXRoLCByb3dJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCBzdWJGaWVsZFN0YXRlID0gYXdhaXQgZ2V0RmllbGRTdGF0ZUJ5UGF0aCh7IGRhdGEsIHBhdGggfSlcblxuICAgICAgZGlzcGF0Y2hGaWVsZHMoe1xuICAgICAgICB0eXBlOiAnUkVQTEFDRV9ST1cnLFxuICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcm93SW5kZXgsXG4gICAgICAgIHN1YkZpZWxkU3RhdGUsXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2dldEZpZWxkU3RhdGVCeVBhdGgsIGRpc3BhdGNoRmllbGRzXSxcbiAgKVxuXG4gIGNvbnRleHRSZWYuY3VycmVudC5zdWJtaXQgPSBzdWJtaXRcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldEZpZWxkcyA9IGdldEZpZWxkc1xuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RmllbGQgPSBnZXRGaWVsZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RGF0YSA9IGdldERhdGFcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldFNpYmxpbmdEYXRhID0gZ2V0U2libGluZ0RhdGFcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldERhdGFCeVBhdGggPSBnZXREYXRhQnlQYXRoXG4gIGNvbnRleHRSZWYuY3VycmVudC52YWxpZGF0ZUZvcm0gPSB2YWxpZGF0ZUZvcm1cbiAgY29udGV4dFJlZi5jdXJyZW50LmNyZWF0ZUZvcm1EYXRhID0gY3JlYXRlRm9ybURhdGFcbiAgY29udGV4dFJlZi5jdXJyZW50LnNldE1vZGlmaWVkID0gc2V0TW9kaWZpZWRcbiAgY29udGV4dFJlZi5jdXJyZW50LnNldFByb2Nlc3NpbmcgPSBzZXRQcm9jZXNzaW5nXG4gIGNvbnRleHRSZWYuY3VycmVudC5zZXRTdWJtaXR0ZWQgPSBzZXRTdWJtaXR0ZWRcbiAgY29udGV4dFJlZi5jdXJyZW50LmRpc2FibGVkID0gZGlzYWJsZWRcbiAgY29udGV4dFJlZi5jdXJyZW50LmZvcm1SZWYgPSBmb3JtUmVmXG4gIGNvbnRleHRSZWYuY3VycmVudC5yZXNldCA9IHJlc2V0XG4gIGNvbnRleHRSZWYuY3VycmVudC5yZXBsYWNlU3RhdGUgPSByZXBsYWNlU3RhdGVcbiAgY29udGV4dFJlZi5jdXJyZW50LmRpc3BhdGNoRmllbGRzID0gZGlzcGF0Y2hGaWVsZHNcbiAgY29udGV4dFJlZi5jdXJyZW50LmFkZEZpZWxkUm93ID0gYWRkRmllbGRSb3dcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlbW92ZUZpZWxkUm93ID0gcmVtb3ZlRmllbGRSb3dcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlcGxhY2VGaWVsZFJvdyA9IHJlcGxhY2VGaWVsZFJvd1xuICBjb250ZXh0UmVmLmN1cnJlbnQudXVpZCA9IHV1aWRcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2Ygc3VibWl0dGVkRnJvbVByb3BzID09PSAnYm9vbGVhbicpIHNldFN1Ym1pdHRlZChzdWJtaXR0ZWRGcm9tUHJvcHMpXG4gIH0sIFtzdWJtaXR0ZWRGcm9tUHJvcHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5pbml0Q29udGV4dFN0YXRlIH0gYXMgRm9ybUNvbnRleHRUeXBlXG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHR5cGU6ICdSRVBMQUNFX1NUQVRFJywgc3RhdGU6IGluaXRpYWxTdGF0ZSB9KVxuICAgIH1cbiAgfSwgW2luaXRpYWxTdGF0ZSwgZGlzcGF0Y2hGaWVsZHNdKVxuXG4gIHVzZVRocm90dGxlZEVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICByZWZyZXNoQ29va2llKClcbiAgICB9LFxuICAgIDE1MDAwLFxuICAgIFtmaWVsZHNdLFxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmNvbnRleHRSZWYuY3VycmVudCB9IC8vIHRyaWdnZXJzIHJlcmVuZGVyIG9mIGFsbCBjb21wb25lbnRzIHRoYXQgc3Vic2NyaWJlIHRvIGZvcm1cbiAgICBzZXRNb2RpZmllZChmYWxzZSlcbiAgfSwgW2xvY2FsZV0pXG5cbiAgY29uc3QgY2xhc3NlcyA9IFtjbGFzc05hbWUsIGJhc2VDbGFzc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKVxuXG4gIHVzZURlYm91bmNlZEVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRlT25DaGFuZ2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9uQ2hhbmdlKSkge1xuICAgICAgICAgIGxldCByZXZhbGlkYXRlZEZvcm1TdGF0ZTogRm9ybVN0YXRlXG5cbiAgICAgICAgICBhd2FpdCBvbkNoYW5nZS5yZWR1Y2UoYXN5bmMgKHByaW9yT25DaGFuZ2UsIG9uQ2hhbmdlRm4pID0+IHtcbiAgICAgICAgICAgIGF3YWl0IHByaW9yT25DaGFuZ2VcblxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb25DaGFuZ2VGbih7XG4gICAgICAgICAgICAgIGZvcm1TdGF0ZTogZmllbGRzLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmV2YWxpZGF0ZWRGb3JtU3RhdGUgPSByZXN1bHRcbiAgICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICAgIGNvbnN0IHsgY2hhbmdlZCwgbmV3U3RhdGUgfSA9IG1lcmdlU2VydmVyRm9ybVN0YXRlKGZpZWxkcywgcmV2YWxpZGF0ZWRGb3JtU3RhdGUpXG5cbiAgICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIG9wdGltaXplOiBmYWxzZSwgc3RhdGU6IG5ld1N0YXRlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZvaWQgZXhlY3V0ZU9uQ2hhbmdlKCkgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICB9LFxuICAgIDE1MCxcbiAgICBbZmllbGRzLCBkaXNwYXRjaEZpZWxkcywgb25DaGFuZ2VdLFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybVxuICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICBtZXRob2Q9e21ldGhvZH1cbiAgICAgIG5vVmFsaWRhdGVcbiAgICAgIG9uU3VibWl0PXsoZSkgPT4gY29udGV4dFJlZi5jdXJyZW50LnN1Ym1pdCh7fSwgZSl9XG4gICAgICByZWY9e2Zvcm1SZWZ9XG4gICAgPlxuICAgICAgPEZvcm1Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0UmVmLmN1cnJlbnR9PlxuICAgICAgICA8Rm9ybVdhdGNoQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXt7XG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICAuLi5jb250ZXh0UmVmLmN1cnJlbnQsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdWJtaXR0ZWRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtzdWJtaXR0ZWR9PlxuICAgICAgICAgICAgPFByb2Nlc3NpbmdDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm9jZXNzaW5nfT5cbiAgICAgICAgICAgICAgPE1vZGlmaWVkQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bW9kaWZpZWR9PlxuICAgICAgICAgICAgICAgIDxGb3JtRmllbGRzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17ZmllbGRzUmVkdWNlcn0+XG4gICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgPC9Gb3JtRmllbGRzQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9Nb2RpZmllZENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICA8L1Byb2Nlc3NpbmdDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgIDwvU3VibWl0dGVkQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgPC9Gb3JtV2F0Y2hDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9Gb3JtQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L2Zvcm0+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRm9ybVxuIl0sIm5hbWVzIjpbImlzRGVlcEVxdWFsIiwidXNlUm91dGVyIiwic2VyaWFsaXplIiwid2FpdCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWR1Y2VyIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ0b2FzdCIsInVzZURlYm91bmNlZEVmZmVjdCIsInVzZVRocm90dGxlZEVmZmVjdCIsInVzZUF1dGgiLCJ1c2VDb25maWciLCJ1c2VEb2N1bWVudEluZm8iLCJ1c2VMb2NhbGUiLCJ1c2VPcGVyYXRpb24iLCJ1c2VUcmFuc2xhdGlvbiIsInJlcXVlc3RzIiwiZ2V0Rm9ybVN0YXRlIiwiRm9ybUNvbnRleHQiLCJGb3JtRmllbGRzQ29udGV4dCIsIkZvcm1XYXRjaENvbnRleHQiLCJNb2RpZmllZENvbnRleHQiLCJQcm9jZXNzaW5nQ29udGV4dCIsIlN1Ym1pdHRlZENvbnRleHQiLCJlcnJvck1lc3NhZ2VzIiwiZmllbGRSZWR1Y2VyIiwiZ2V0RGF0YUJ5UGF0aEZ1bmMiLCJnZXRTaWJsaW5nRGF0YUZ1bmMiLCJpbml0Q29udGV4dFN0YXRlIiwibWVyZ2VTZXJ2ZXJGb3JtU3RhdGUiLCJyZWR1Y2VGaWVsZHNUb1ZhbHVlcyIsImJhc2VDbGFzcyIsIkZvcm0iLCJwcm9wcyIsImlkIiwiZ2V0RG9jUHJlZmVyZW5jZXMiLCJhY3Rpb24iLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImRpc2FibGVTdWNjZXNzU3RhdHVzIiwiZGlzYWJsZWQiLCJiZWZvcmVTdWJtaXQiLCJoYW5kbGVSZXNwb25zZSIsImluaXRpYWxTdGF0ZSIsIm9uQ2hhbmdlIiwib25TdWJtaXQiLCJvblN1Y2Nlc3MiLCJyZWRpcmVjdCIsInN1Ym1pdHRlZCIsInN1Ym1pdHRlZEZyb21Qcm9wcyIsInV1aWQiLCJ3YWl0Rm9yQXV0b2NvbXBsZXRlIiwibWV0aG9kIiwidW5kZWZpbmVkIiwicm91dGVyIiwiY29kZSIsImxvY2FsZSIsImkxOG4iLCJ0IiwicmVmcmVzaENvb2tpZSIsInVzZXIiLCJvcGVyYXRpb24iLCJjb25maWciLCJyb3V0ZXMiLCJhcGkiLCJhcGlSb3V0ZSIsInNlcnZlclVSTCIsIm1vZGlmaWVkIiwic2V0TW9kaWZpZWQiLCJwcm9jZXNzaW5nIiwic2V0UHJvY2Vzc2luZyIsInNldFN1Ym1pdHRlZCIsImZvcm1SZWYiLCJjb250ZXh0UmVmIiwiY29sbGVjdGlvblNsdWciLCJnbG9iYWxTbHVnIiwiZmllbGRzUmVkdWNlciIsImZpZWxkcyIsImRpc3BhdGNoRmllbGRzIiwiY3VycmVudCIsInZhbGlkYXRlRm9ybSIsInZhbGlkYXRlZEZpZWxkU3RhdGUiLCJpc1ZhbGlkIiwiZGF0YUZyb21Db250ZXh0IiwiZ2V0RGF0YSIsImRhdGEiLCJ2YWxpZGF0aW9uUHJvbWlzZXMiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwicGF0aCIsImZpZWxkIiwidmFsaWRhdGVkRmllbGQiLCJ2YWxpZCIsInBhc3Nlc0NvbmRpdGlvbiIsInZhbGlkYXRpb25SZXN1bHQiLCJ2YWxpZGF0ZSIsInZhbHVlVG9WYWxpZGF0ZSIsInZhbHVlIiwicm93cyIsIkFycmF5IiwiaXNBcnJheSIsImdldERhdGFCeVBhdGgiLCJzaWJsaW5nRGF0YSIsImdldFNpYmxpbmdEYXRhIiwiZXJyb3JNZXNzYWdlIiwiUHJvbWlzZSIsImFsbCIsInR5cGUiLCJzdGF0ZSIsInN1Ym1pdCIsIm9wdGlvbnMiLCJlIiwiYWN0aW9uVG9Vc2UiLCJtZXRob2RUb1VzZSIsIm92ZXJyaWRlcyIsInNraXBWYWxpZGF0aW9uIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZXZhbGlkYXRlZEZvcm1TdGF0ZSIsInJlZHVjZSIsInByaW9yT25DaGFuZ2UiLCJiZWZvcmVTdWJtaXRGbiIsInJlc3VsdCIsImZvcm1TdGF0ZSIsInJlc29sdmUiLCJldmVyeSIsImVycm9yIiwiZm9ybURhdGEiLCJjcmVhdGVGb3JtRGF0YSIsInJlcyIsInRvTG93ZXJDYXNlIiwiYm9keSIsImhlYWRlcnMiLCJsYW5ndWFnZSIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiaXNKU09OIiwiaW5kZXhPZiIsImpzb24iLCJzdGF0dXMiLCJwdXNoIiwic3VjY2VzcyIsIm1lc3NhZ2UiLCJhdXRvQ2xvc2UiLCJlcnJvcnMiLCJmaWVsZEVycm9ycyIsIm5vbkZpZWxkRXJyb3JzIiwiZmllbGRFcnJzIiwibm9uRmllbGRFcnJzIiwiZXJyIiwibmV3RmllbGRFcnJzIiwibmV3Tm9uRmllbGRFcnJzIiwiZm9yRWFjaCIsImRhdGFFcnJvciIsInN0YXR1c1RleHQiLCJnZXRGaWVsZHMiLCJnZXRGaWVsZCIsImZpbGUiLCJkYXRhV2l0aE92ZXJyaWRlcyIsImRhdGFUb1NlcmlhbGl6ZSIsIl9wYXlsb2FkIiwiSlNPTiIsInN0cmluZ2lmeSIsImluZGljZXMiLCJudWxsc0FzVW5kZWZpbmVkcyIsInJlc2V0IiwiZmllbGRTY2hlbWEiLCJwcmVmZXJlbmNlcyIsInJlcGxhY2VTdGF0ZSIsImdldEZpZWxkU3RhdGVCeVBhdGgiLCJzY2hlbWFQYXRoIiwicmVwbGFjZSIsImFkZEZpZWxkUm93Iiwicm93SW5kZXgiLCJzdWJGaWVsZFN0YXRlIiwiYmxvY2tUeXBlIiwicmVtb3ZlRmllbGRSb3ciLCJyZXBsYWNlRmllbGRSb3ciLCJjbGFzc2VzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJleGVjdXRlT25DaGFuZ2UiLCJvbkNoYW5nZUZuIiwiY2hhbmdlZCIsIm5ld1N0YXRlIiwib3B0aW1pemUiLCJmb3JtIiwibm9WYWxpZGF0ZSIsInJlZiIsIlByb3ZpZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLGtFQUFrRSxHQUNsRSxPQUFPQSxpQkFBaUIsYUFBWTtBQUNwQyxTQUFTQyxTQUFTLFFBQVEsa0JBQWlCO0FBQzNDLFNBQVNDLFNBQVMsUUFBUSxxQkFBb0I7QUFDOUMsU0FBU0MsSUFBSSxRQUFRLG9CQUFtQjtBQUN4QyxPQUFPQyxTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBQ25GLFNBQVNDLEtBQUssUUFBUSxpQkFBZ0I7QUFJdEMsU0FBU0Msa0JBQWtCLFFBQVEsaUNBQWdDO0FBQ25FLE9BQU9DLHdCQUF3QixpQ0FBZ0M7QUFDL0QsU0FBU0MsT0FBTyxRQUFRLHVCQUFzQjtBQUM5QyxTQUFTQyxTQUFTLFFBQVEseUJBQXdCO0FBQ2xELFNBQVNDLGVBQWUsUUFBUSwrQkFBOEI7QUFDOUQsU0FBU0MsU0FBUyxRQUFRLHlCQUF3QjtBQUNsRCxTQUFTQyxZQUFZ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
|
|
519
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb3Jtcy9Gb3JtL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIEZvcm1TdGF0ZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gJ29iamVjdC10by1mb3JtZGF0YSdcbmltcG9ydCB7IHdhaXQgfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcbmltcG9ydCBRdWVyeVN0cmluZyBmcm9tICdxcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJ3JlYWN0LXRvYXN0aWZ5J1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHQgYXMgRm9ybUNvbnRleHRUeXBlLCBHZXREYXRhQnlQYXRoLCBQcm9wcywgU3VibWl0T3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUZvcm1RdWVyeVBhcmFtcyB9IGZyb20gJy4uLy4uJ1xuaW1wb3J0IHsgdXNlRGVib3VuY2VkRWZmZWN0IH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVib3VuY2VkRWZmZWN0J1xuaW1wb3J0IHVzZVRocm90dGxlZEVmZmVjdCBmcm9tICcuLi8uLi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvT3BlcmF0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9UcmFuc2xhdGlvbidcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2FwaSdcbmltcG9ydCB7IGdldEZvcm1TdGF0ZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9nZXRGb3JtU3RhdGUnXG5pbXBvcnQge1xuICBGb3JtQ29udGV4dCxcbiAgRm9ybUZpZWxkc0NvbnRleHQsXG4gIEZvcm1XYXRjaENvbnRleHQsXG4gIE1vZGlmaWVkQ29udGV4dCxcbiAgUHJvY2Vzc2luZ0NvbnRleHQsXG4gIFN1Ym1pdHRlZENvbnRleHQsXG59IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCBlcnJvck1lc3NhZ2VzIGZyb20gJy4vZXJyb3JNZXNzYWdlcydcbmltcG9ydCB7IGZpZWxkUmVkdWNlciB9IGZyb20gJy4vZmllbGRSZWR1Y2VyJ1xuaW1wb3J0IGdldERhdGFCeVBhdGhGdW5jIGZyb20gJy4vZ2V0RGF0YUJ5UGF0aCdcbmltcG9ydCBnZXRTaWJsaW5nRGF0YUZ1bmMgZnJvbSAnLi9nZXRTaWJsaW5nRGF0YSdcbmltcG9ydCBpbml0Q29udGV4dFN0YXRlIGZyb20gJy4vaW5pdENvbnRleHRTdGF0ZSdcbmltcG9ydCB7IG1lcmdlU2VydmVyRm9ybVN0YXRlIH0gZnJvbSAnLi9tZXJnZVNlcnZlckZvcm1TdGF0ZSdcbmltcG9ydCByZWR1Y2VGaWVsZHNUb1ZhbHVlcyBmcm9tICcuL3JlZHVjZUZpZWxkc1RvVmFsdWVzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZm9ybSdcblxuY29uc3QgRm9ybTogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgaWQsIGdldERvY1ByZWZlcmVuY2VzIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IHtcbiAgICBhY3Rpb24sXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGRpc2FibGVTdWNjZXNzU3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIC8vIGZpZWxkczogZmllbGRzRnJvbVByb3BzID0gY29sbGVjdGlvbj8uZmllbGRzIHx8IGdsb2JhbD8uZmllbGRzLFxuICAgIGJlZm9yZVN1Ym1pdCxcbiAgICBoYW5kbGVSZXNwb25zZSxcbiAgICBpbml0aWFsU3RhdGUsIC8vIGZ1bGx5IGZvcm1lZCBpbml0aWFsIGZpZWxkIHN0YXRlXG4gICAgb25DaGFuZ2UsXG4gICAgb25TdWJtaXQsXG4gICAgb25TdWNjZXNzLFxuICAgIHJlZGlyZWN0LFxuICAgIHN1Ym1pdHRlZDogc3VibWl0dGVkRnJvbVByb3BzLFxuICAgIHV1aWQsXG4gICAgd2FpdEZvckF1dG9jb21wbGV0ZSxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgbWV0aG9kID0gJ21ldGhvZCcgaW4gcHJvcHMgPyBwcm9wcy5tZXRob2QgOiB1bmRlZmluZWRcblxuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyByZWZyZXNoQ29va2llLCB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3Qgb3BlcmF0aW9uID0gdXNlT3BlcmF0aW9uKClcbiAgY29uc3QgeyBmb3JtUXVlcnlQYXJhbXMgfSA9IHVzZUZvcm1RdWVyeVBhcmFtcygpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcbiAgY29uc3Qge1xuICAgIHJvdXRlczogeyBhcGk6IGFwaVJvdXRlIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gY29uZmlnXG5cbiAgY29uc3QgW21vZGlmaWVkLCBzZXRNb2RpZmllZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3Byb2Nlc3NpbmcsIHNldFByb2Nlc3NpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzdWJtaXR0ZWQsIHNldFN1Ym1pdHRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgZm9ybVJlZiA9IHVzZVJlZjxIVE1MRm9ybUVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNvbnRleHRSZWYgPSB1c2VSZWYoe30gYXMgRm9ybUNvbnRleHRUeXBlKVxuICBjb25zdCB7IGNvbGxlY3Rpb25TbHVnLCBnbG9iYWxTbHVnIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IGZpZWxkc1JlZHVjZXIgPSB1c2VSZWR1Y2VyKGZpZWxkUmVkdWNlciwge30sICgpID0+IGluaXRpYWxTdGF0ZSlcbiAgLyoqXG4gICAqIGBmaWVsZHNgIGlzIHRoZSBjdXJyZW50LCB1cC10by1kYXRlIHN0YXRlL2RhdGEgb2YgYWxsIGZpZWxkcyBpbiB0aGUgZm9ybS4gSXQgY2FuIGJlIG1vZGlmaWVkIGJ5IHVzaW5nIGRpc3BhdGNoRmllbGRzLFxuICAgKiB3aGljaCBjYWxscyB0aGUgZmllbGRSZWR1Y2VyLCB3aGljaCB0aGVuIHVwZGF0ZXMgdGhlIHN0YXRlLlxuICAgKi9cbiAgY29uc3QgW2ZpZWxkcywgZGlzcGF0Y2hGaWVsZHNdID0gZmllbGRzUmVkdWNlclxuXG4gIGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMgPSBmaWVsZHNcblxuICBjb25zdCB2YWxpZGF0ZUZvcm0gPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGVkRmllbGRTdGF0ZSA9IHt9XG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlXG5cbiAgICBjb25zdCBkYXRhRnJvbUNvbnRleHQgPSBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RGF0YSgpXG4gICAgY29uc3QgZGF0YSA9IGRhdGFGcm9tQ29udGV4dFxuXG4gICAgY29uc3QgdmFsaWRhdGlvblByb21pc2VzID0gT2JqZWN0LmVudHJpZXMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcykubWFwKFxuICAgICAgYXN5bmMgKFtwYXRoLCBmaWVsZF0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkRmllbGQgPSB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQucGFzc2VzQ29uZGl0aW9uICE9PSBmYWxzZSkge1xuICAgICAgICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBib29sZWFuIHwgc3RyaW5nID0gdHJ1ZVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBmaWVsZC52YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHZhbHVlVG9WYWxpZGF0ZSA9IGZpZWxkLnZhbHVlXG5cbiAgICAgICAgICAgIGlmIChmaWVsZD8ucm93cyAmJiBBcnJheS5pc0FycmF5KGZpZWxkLnJvd3MpKSB7XG4gICAgICAgICAgICAgIHZhbHVlVG9WYWxpZGF0ZSA9IGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhQnlQYXRoKHBhdGgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZC52YWxpZGF0ZSh2YWx1ZVRvVmFsaWRhdGUsIHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBzaWJsaW5nRGF0YTogY29udGV4dFJlZi5jdXJyZW50LmdldFNpYmxpbmdEYXRhKHBhdGgpLFxuICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC5lcnJvck1lc3NhZ2UgPSB2YWxpZGF0aW9uUmVzdWx0XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC52YWxpZCA9IGZhbHNlXG4gICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YWxpZGF0ZWRGaWVsZFN0YXRlW3BhdGhdID0gdmFsaWRhdGVkRmllbGRcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodmFsaWRhdGlvblByb21pc2VzKVxuXG4gICAgaWYgKCFpc0RlZXBFcXVhbChjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB2YWxpZGF0ZWRGaWVsZFN0YXRlKSkge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlOiB2YWxpZGF0ZWRGaWVsZFN0YXRlIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRcbiAgfSwgW2lkLCB1c2VyLCBvcGVyYXRpb24sIHQsIGRpc3BhdGNoRmllbGRzLCBjb25maWddKVxuXG4gIGNvbnN0IHN1Ym1pdCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChvcHRpb25zOiBTdWJtaXRPcHRpb25zID0ge30sIGUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25Ub1VzZSA9IGFjdGlvbixcbiAgICAgICAgbWV0aG9kOiBtZXRob2RUb1VzZSA9IG1ldGhvZCxcbiAgICAgICAgb3ZlcnJpZGVzID0ge30sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgfSA9IG9wdGlvbnNcblxuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGlmIChlKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIHNldFByb2Nlc3NpbmcodHJ1ZSlcbiAgICAgIHNldFN1Ym1pdHRlZCh0cnVlKVxuXG4gICAgICBpZiAod2FpdEZvckF1dG9jb21wbGV0ZSkgYXdhaXQgd2FpdCgxMDApXG5cbiAgICAgIC8vIEV4ZWN1dGUgc2VydmVyIHNpZGUgdmFsaWRhdGlvbnNcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGJlZm9yZVN1Ym1pdCkpIHtcbiAgICAgICAgbGV0IHJldmFsaWRhdGVkRm9ybVN0YXRlOiBGb3JtU3RhdGVcblxuICAgICAgICBhd2FpdCBiZWZvcmVTdWJtaXQucmVkdWNlKGFzeW5jIChwcmlvck9uQ2hhbmdlLCBiZWZvcmVTdWJtaXRGbikgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9yT25DaGFuZ2VcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJlZm9yZVN1Ym1pdEZuKHtcbiAgICAgICAgICAgIGZvcm1TdGF0ZTogZmllbGRzLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXZhbGlkYXRlZEZvcm1TdGF0ZSA9IHJlc3VsdFxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gT2JqZWN0LmVudHJpZXMocmV2YWxpZGF0ZWRGb3JtU3RhdGUpLmV2ZXJ5KChbLCBmaWVsZF0pID0+IGZpZWxkLnZhbGlkKVxuXG4gICAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICAgIHNldFByb2Nlc3NpbmcoZmFsc2UpXG4gICAgICAgICAgcmV0dXJuIGRpc3BhdGNoRmllbGRzKHsgdHlwZTogJ1JFUExBQ0VfU1RBVEUnLCBzdGF0ZTogcmV2YWxpZGF0ZWRGb3JtU3RhdGUgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpc1ZhbGlkID0gc2tpcFZhbGlkYXRpb24gPyB0cnVlIDogYXdhaXQgY29udGV4dFJlZi5jdXJyZW50LnZhbGlkYXRlRm9ybSgpXG5cbiAgICAgIC8vIElmIG5vdCB2YWxpZCwgcHJldmVudCBzdWJtaXNzaW9uXG4gICAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgdG9hc3QuZXJyb3IodCgnZXJyb3I6Y29ycmVjdEludmFsaWRGaWVsZHMnKSlcbiAgICAgICAgc2V0UHJvY2Vzc2luZyhmYWxzZSlcblxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgc3VibWl0IGhhbmRsZXIgY29tZXMgdGhyb3VnaCB2aWEgcHJvcHMsIHJ1biB0aGF0XG4gICAgICBpZiAob25TdWJtaXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAuLi5yZWR1Y2VGaWVsZHNUb1ZhbHVlcyhmaWVsZHMsIHRydWUpLFxuICAgICAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICAgICAgfVxuXG4gICAgICAgIG9uU3VibWl0KGZpZWxkcywgZGF0YSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm9ybURhdGEgPSBjb250ZXh0UmVmLmN1cnJlbnQuY3JlYXRlRm9ybURhdGEob3ZlcnJpZGVzKVxuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgcmVzXG5cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb25Ub1VzZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBjb25zdCBhY3Rpb25FbmRwb2ludCA9IGAke2FjdGlvblRvVXNlfSR7UXVlcnlTdHJpbmcuc3RyaW5naWZ5KGZvcm1RdWVyeVBhcmFtcywgeyBhZGRRdWVyeVByZWZpeDogdHJ1ZSB9KX1gXG4gICAgICAgICAgcmVzID0gYXdhaXQgcmVxdWVzdHNbbWV0aG9kVG9Vc2UudG9Mb3dlckNhc2UoKV0oYWN0aW9uRW5kcG9pbnQsIHtcbiAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYWN0aW9uVG9Vc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXMgPSBhd2FpdCBhY3Rpb25Ub1VzZShmb3JtRGF0YSlcbiAgICAgICAgfVxuXG4gICAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuXG4gICAgICAgIGlmICh0eXBlb2YgaGFuZGxlUmVzcG9uc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBoYW5kbGVSZXNwb25zZShyZXMpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBzZXRQcm9jZXNzaW5nKGZhbHNlKVxuXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKVxuICAgICAgICBjb25zdCBpc0pTT04gPSBjb250ZW50VHlwZSAmJiBjb250ZW50VHlwZS5pbmRleE9mKCdhcHBsaWNhdGlvbi9qc29uJykgIT09IC0xXG5cbiAgICAgICAgbGV0IGpzb246IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxuXG4gICAgICAgIGlmIChpc0pTT04pIGpzb24gPSBhd2FpdCByZXMuanNvbigpXG5cbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPCA0MDApIHtcbiAgICAgICAgICBzZXRTdWJtaXR0ZWQoZmFsc2UpXG5cbiAgICAgICAgICBpZiAodHlwZW9mIG9uU3VjY2VzcyA9PT0gJ2Z1bmN0aW9uJykgb25TdWNjZXNzKGpzb24pXG5cbiAgICAgICAgICBpZiAocmVkaXJlY3QpIHtcbiAgICAgICAgICAgIC8vIGNvbnN0IGRlc3RpbmF0aW9uID0ge1xuICAgICAgICAgICAgLy8gICBwYXRobmFtZTogcmVkaXJlY3QsXG4gICAgICAgICAgICAvLyAgIHN0YXRlOiB7fSxcbiAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgLy8gaWYgKHR5cGVvZiBqc29uID09PSAnb2JqZWN0JyAmJiBqc29uLm1lc3NhZ2UgJiYgIWRpc2FibGVTdWNjZXNzU3RhdHVzKSB7XG4gICAgICAgICAgICAvLyAgIGRlc3RpbmF0aW9uLnN0YXRlID0ge1xuICAgICAgICAgICAgLy8gICAgIHN0YXR1czogW1xuICAgICAgICAgICAgLy8gICAgICAge1xuICAgICAgICAgICAgLy8gICAgICAgICBtZXNzYWdlOiBqc29uLm1lc3NhZ2UsXG4gICAgICAgICAgICAvLyAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIC8vICAgICAgIH0sXG4gICAgICAgICAgICAvLyAgICAgXSxcbiAgICAgICAgICAgIC8vICAgfVxuICAgICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgICByb3V0ZXIucHVzaChyZWRpcmVjdClcbiAgICAgICAgICB9IGVsc2UgaWYgKCFkaXNhYmxlU3VjY2Vzc1N0YXR1cykge1xuICAgICAgICAgICAgdG9hc3Quc3VjY2Vzcyhqc29uLm1lc3NhZ2UgfHwgdCgnZ2VuZXJhbDpzdWJtaXNzaW9uU3VjY2Vzc2Z1bCcpLCB7IGF1dG9DbG9zZTogMzAwMCB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmNvbnRleHRSZWYuY3VycmVudCB9IC8vIHRyaWdnZXJzIHJlcmVuZGVyIG9mIGFsbCBjb21wb25lbnRzIHRoYXQgc3Vic2NyaWJlIHRvIGZvcm1cbiAgICAgICAgICBpZiAoanNvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICB0b2FzdC5lcnJvcihqc29uLm1lc3NhZ2UpXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGpzb24uZXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgW2ZpZWxkRXJyb3JzLCBub25GaWVsZEVycm9yc10gPSBqc29uLmVycm9ycy5yZWR1Y2UoXG4gICAgICAgICAgICAgIChbZmllbGRFcnJzLCBub25GaWVsZEVycnNdLCBlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWVsZEVycnMgPSBbXVxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld05vbkZpZWxkRXJycyA9IFtdXG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICBuZXdOb25GaWVsZEVycnMucHVzaChlcnIpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyPy5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgZXJyLmRhdGEuZm9yRWFjaCgoZGF0YUVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhRXJyb3I/LmZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3RmllbGRFcnJzLnB1c2goZGF0YUVycm9yKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG5ld05vbkZpZWxkRXJycy5wdXNoKGRhdGFFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgWy4uLmZpZWxkRXJycywgLi4ubmV3RmllbGRFcnJzXSxcbiAgICAgICAgICAgICAgICAgIFsuLi5ub25GaWVsZEVycnMsIC4uLm5ld05vbkZpZWxkRXJyc10sXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBbW10sIFtdXSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgZmllbGRFcnJvcnMuZm9yRWFjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnVVBEQVRFJyxcbiAgICAgICAgICAgICAgICAuLi4oY29udGV4dFJlZi5jdXJyZW50Py5maWVsZHM/LltlcnIuZmllbGRdIHx8IHt9KSxcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U6IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIHBhdGg6IGVyci5maWVsZCxcbiAgICAgICAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBub25GaWVsZEVycm9ycy5mb3JFYWNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgdCgnZXJyb3I6dW5rbm93bicpKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTWVzc2FnZXM/LltyZXMuc3RhdHVzXSB8fCByZXM/LnN0YXR1c1RleHQgfHwgdCgnZXJyb3I6dW5rbm93bicpXG5cbiAgICAgICAgICB0b2FzdC5lcnJvcihtZXNzYWdlKVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0UHJvY2Vzc2luZyhmYWxzZSlcblxuICAgICAgICB0b2FzdC5lcnJvcihlcnIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBhY3Rpb24sXG4gICAgICBkaXNhYmxlU3VjY2Vzc1N0YXR1cyxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZGlzcGF0Y2hGaWVsZHMsXG4gICAgICBmaWVsZHMsXG4gICAgICBoYW5kbGVSZXNwb25zZSxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG9uU3VibWl0LFxuICAgICAgb25TdWNjZXNzLFxuICAgICAgcmVkaXJlY3QsXG4gICAgICByb3V0ZXIsXG4gICAgICB0LFxuICAgICAgaTE4bixcbiAgICAgIHdhaXRGb3JBdXRvY29tcGxldGUsXG4gICAgICBiZWZvcmVTdWJtaXQsXG4gICAgICBmb3JtUXVlcnlQYXJhbXMsXG4gICAgXSxcbiAgKVxuXG4gIGNvbnN0IGdldEZpZWxkcyA9IHVzZUNhbGxiYWNrKCgpID0+IGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIFtdKVxuXG4gIGNvbnN0IGdldEZpZWxkID0gdXNlQ2FsbGJhY2soKHBhdGg6IHN0cmluZykgPT4gY29udGV4dFJlZi5jdXJyZW50LmZpZWxkc1twYXRoXSwgW10pXG5cbiAgY29uc3QgZ2V0RGF0YSA9IHVzZUNhbGxiYWNrKCgpID0+IHJlZHVjZUZpZWxkc1RvVmFsdWVzKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHRydWUpLCBbXSlcblxuICBjb25zdCBnZXRTaWJsaW5nRGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgIChwYXRoOiBzdHJpbmcpID0+IGdldFNpYmxpbmdEYXRhRnVuYyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCBwYXRoKSxcbiAgICBbXSxcbiAgKVxuICBjb25zdCBnZXREYXRhQnlQYXRoID0gdXNlQ2FsbGJhY2s8R2V0RGF0YUJ5UGF0aD4oXG4gICAgKHBhdGg6IHN0cmluZykgPT4gZ2V0RGF0YUJ5UGF0aEZ1bmMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgcGF0aCksXG4gICAgW10sXG4gIClcblxuICBjb25zdCBjcmVhdGVGb3JtRGF0YSA9IHVzZUNhbGxiYWNrKChvdmVycmlkZXM6IGFueSA9IHt9KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHJlZHVjZUZpZWxkc1RvVmFsdWVzKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHRydWUpXG5cbiAgICBjb25zdCBmaWxlID0gZGF0YT8uZmlsZVxuXG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIGRlbGV0ZSBkYXRhLmZpbGVcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhV2l0aE92ZXJyaWRlcyA9IHtcbiAgICAgIC4uLmRhdGEsXG4gICAgICAuLi5vdmVycmlkZXMsXG4gICAgfVxuXG4gICAgY29uc3QgZGF0YVRvU2VyaWFsaXplID0ge1xuICAgICAgX3BheWxvYWQ6IEpTT04uc3RyaW5naWZ5KGRhdGFXaXRoT3ZlcnJpZGVzKSxcbiAgICAgIGZpbGUsXG4gICAgfVxuXG4gICAgLy8gbnVsbEFzVW5kZWZpbmVkcyBpcyBpbXBvcnRhbnQgdG8gYWxsb3cgdXBsb2FkcyBhbmQgcmVsYXRpb25zaGlwIGZpZWxkcyB0byBjbGVhciB0aGVtc2VsdmVzXG4gICAgY29uc3QgZm9ybURhdGEgPSBzZXJpYWxpemUoZGF0YVRvU2VyaWFsaXplLCB7IGluZGljZXM6IHRydWUsIG51bGxzQXNVbmRlZmluZWRzOiBmYWxzZSB9KVxuXG4gICAgcmV0dXJuIGZvcm1EYXRhXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHJlc2V0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGZpZWxkU2NoZW1hOiBGaWVsZFtdLCBkYXRhOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIC8vIGNvbnN0IHN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgLy8gICBpZCxcbiAgICAgIC8vICAgLy8gVE9ETzogZml4IHRoaXNcbiAgICAgIC8vICAgLy8gQHRzLWlnbm9yZS1uZXh0LWxpbmVcbiAgICAgIC8vICAgY29uZmlnLFxuICAgICAgLy8gICBkYXRhLFxuICAgICAgLy8gICBmaWVsZFNjaGVtYSxcbiAgICAgIC8vICAgbG9jYWxlLFxuICAgICAgLy8gICBvcGVyYXRpb24sXG4gICAgICAvLyAgIHByZWZlcmVuY2VzLFxuICAgICAgLy8gICB0LFxuICAgICAgLy8gICB1c2VyLFxuICAgICAgLy8gfSlcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gICAgICAvLyBkaXNwYXRjaEZpZWxkcyh7IHN0YXRlLCB0eXBlOiAnUkVQTEFDRV9TVEFURScgfSlcbiAgICB9LFxuICAgIFtnZXREb2NQcmVmZXJlbmNlc10sXG4gIClcblxuICBjb25zdCByZXBsYWNlU3RhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAoc3RhdGU6IEZvcm1TdGF0ZSkgPT4ge1xuICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5pbml0Q29udGV4dFN0YXRlIH0gYXMgRm9ybUNvbnRleHRUeXBlXG4gICAgICBzZXRNb2RpZmllZChmYWxzZSlcbiAgICAgIGRpc3BhdGNoRmllbGRzKHsgdHlwZTogJ1JFUExBQ0VfU1RBVEUnLCBzdGF0ZSB9KVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzXSxcbiAgKVxuXG4gIGNvbnN0IGdldEZpZWxkU3RhdGVCeVBhdGggPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoeyBkYXRhLCBwYXRoIH0pID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkU2NoZW1hID0gYXdhaXQgZ2V0Rm9ybVN0YXRlKHtcbiAgICAgICAgYXBpUm91dGUsXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICBUdXJuczogJ2FycmF5RmllbGQuMC5ncm91cDEyM2ZpZWxkLmFycmF5RmllbGQuMC50ZXh0RmllbGQnXG4gICAgICAgICAgICBJbnRvOiAnYXJyYXlGaWVsZC5ncm91cDEyM2ZpZWxkLmFycmF5RmllbGQudGV4dEZpZWxkJ1xuICAgICAgICAgICovXG4gICAgICAgICAgc2NoZW1hUGF0aDogYCR7Y29sbGVjdGlvblNsdWcgfHwgZ2xvYmFsU2x1Z30uJHtwYXRofWAucmVwbGFjZSgvXFwuXFxkK1xcLi9nLCAnLicpLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICB9KVxuICAgICAgcmV0dXJuIGZpZWxkU2NoZW1hXG4gICAgfSxcbiAgICBbYXBpUm91dGUsIGNvbGxlY3Rpb25TbHVnLCBnbG9iYWxTbHVnLCBzZXJ2ZXJVUkxdLFxuICApXG5cbiAgY29uc3QgYWRkRmllbGRSb3c6IEZvcm1Db250ZXh0VHlwZVsnYWRkRmllbGRSb3cnXSA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh7IGRhdGEsIHBhdGgsIHJvd0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHN1YkZpZWxkU3RhdGUgPSBhd2FpdCBnZXRGaWVsZFN0YXRlQnlQYXRoKHsgZGF0YSwgcGF0aCB9KVxuXG4gICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgIHR5cGU6ICdBRERfUk9XJyxcbiAgICAgICAgYmxvY2tUeXBlOiBkYXRhPy5ibG9ja1R5cGUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJvd0luZGV4LFxuICAgICAgICBzdWJGaWVsZFN0YXRlLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtnZXRGaWVsZFN0YXRlQnlQYXRoLCBkaXNwYXRjaEZpZWxkc10sXG4gIClcblxuICBjb25zdCByZW1vdmVGaWVsZFJvdzogRm9ybUNvbnRleHRUeXBlWydyZW1vdmVGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVNT1ZFX1JPVycsIHBhdGgsIHJvd0luZGV4IH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHNdLFxuICApXG5cbiAgY29uc3QgcmVwbGFjZUZpZWxkUm93OiBGb3JtQ29udGV4dFR5cGVbJ3JlcGxhY2VGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgZGF0YSwgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3Qgc3ViRmllbGRTdGF0ZSA9IGF3YWl0IGdldEZpZWxkU3RhdGVCeVBhdGgoeyBkYXRhLCBwYXRoIH0pXG5cbiAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgdHlwZTogJ1JFUExBQ0VfUk9XJyxcbiAgICAgICAgYmxvY2tUeXBlOiBkYXRhPy5ibG9ja1R5cGUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJvd0luZGV4LFxuICAgICAgICBzdWJGaWVsZFN0YXRlLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtnZXRGaWVsZFN0YXRlQnlQYXRoLCBkaXNwYXRjaEZpZWxkc10sXG4gIClcblxuICBjb250ZXh0UmVmLmN1cnJlbnQuc3VibWl0ID0gc3VibWl0XG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXRGaWVsZHMgPSBnZXRGaWVsZHNcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldEZpZWxkID0gZ2V0RmllbGRcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldERhdGEgPSBnZXREYXRhXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXRTaWJsaW5nRGF0YSA9IGdldFNpYmxpbmdEYXRhXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhQnlQYXRoID0gZ2V0RGF0YUJ5UGF0aFxuICBjb250ZXh0UmVmLmN1cnJlbnQudmFsaWRhdGVGb3JtID0gdmFsaWRhdGVGb3JtXG4gIGNvbnRleHRSZWYuY3VycmVudC5jcmVhdGVGb3JtRGF0YSA9IGNyZWF0ZUZvcm1EYXRhXG4gIGNvbnRleHRSZWYuY3VycmVudC5zZXRNb2RpZmllZCA9IHNldE1vZGlmaWVkXG4gIGNvbnRleHRSZWYuY3VycmVudC5zZXRQcm9jZXNzaW5nID0gc2V0UHJvY2Vzc2luZ1xuICBjb250ZXh0UmVmLmN1cnJlbnQuc2V0U3VibWl0dGVkID0gc2V0U3VibWl0dGVkXG4gIGNvbnRleHRSZWYuY3VycmVudC5kaXNhYmxlZCA9IGRpc2FibGVkXG4gIGNvbnRleHRSZWYuY3VycmVudC5mb3JtUmVmID0gZm9ybVJlZlxuICBjb250ZXh0UmVmLmN1cnJlbnQucmVzZXQgPSByZXNldFxuICBjb250ZXh0UmVmLmN1cnJlbnQucmVwbGFjZVN0YXRlID0gcmVwbGFjZVN0YXRlXG4gIGNvbnRleHRSZWYuY3VycmVudC5kaXNwYXRjaEZpZWxkcyA9IGRpc3BhdGNoRmllbGRzXG4gIGNvbnRleHRSZWYuY3VycmVudC5hZGRGaWVsZFJvdyA9IGFkZEZpZWxkUm93XG4gIGNvbnRleHRSZWYuY3VycmVudC5yZW1vdmVGaWVsZFJvdyA9IHJlbW92ZUZpZWxkUm93XG4gIGNvbnRleHRSZWYuY3VycmVudC5yZXBsYWNlRmllbGRSb3cgPSByZXBsYWNlRmllbGRSb3dcbiAgY29udGV4dFJlZi5jdXJyZW50LnV1aWQgPSB1dWlkXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHN1Ym1pdHRlZEZyb21Qcm9wcyA9PT0gJ2Jvb2xlYW4nKSBzZXRTdWJtaXR0ZWQoc3VibWl0dGVkRnJvbVByb3BzKVxuICB9LCBbc3VibWl0dGVkRnJvbVByb3BzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlOiBpbml0aWFsU3RhdGUgfSlcbiAgICB9XG4gIH0sIFtpbml0aWFsU3RhdGUsIGRpc3BhdGNoRmllbGRzXSlcblxuICB1c2VUaHJvdHRsZWRFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgcmVmcmVzaENvb2tpZSgpXG4gICAgfSxcbiAgICAxNTAwMCxcbiAgICBbZmllbGRzXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5jb250ZXh0UmVmLmN1cnJlbnQgfSAvLyB0cmlnZ2VycyByZXJlbmRlciBvZiBhbGwgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZSB0byBmb3JtXG4gICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gIH0sIFtsb2NhbGVdKVxuXG4gIGNvbnN0IGNsYXNzZXMgPSBbY2xhc3NOYW1lLCBiYXNlQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJylcblxuICB1c2VEZWJvdW5jZWRFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0ZU9uQ2hhbmdlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbkNoYW5nZSkpIHtcbiAgICAgICAgICBsZXQgcmV2YWxpZGF0ZWRGb3JtU3RhdGU6IEZvcm1TdGF0ZVxuXG4gICAgICAgICAgYXdhaXQgb25DaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvck9uQ2hhbmdlLCBvbkNoYW5nZUZuKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBwcmlvck9uQ2hhbmdlXG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG9uQ2hhbmdlRm4oe1xuICAgICAgICAgICAgICBmb3JtU3RhdGU6IGZpZWxkcyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJldmFsaWRhdGVkRm9ybVN0YXRlID0gcmVzdWx0XG4gICAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAgICAgICBjb25zdCB7IGNoYW5nZWQsIG5ld1N0YXRlIH0gPSBtZXJnZVNlcnZlckZvcm1TdGF0ZShmaWVsZHMsIHJldmFsaWRhdGVkRm9ybVN0YXRlKVxuXG4gICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoRmllbGRzKHsgdHlwZTogJ1JFUExBQ0VfU1RBVEUnLCBvcHRpbWl6ZTogZmFsc2UsIHN0YXRlOiBuZXdTdGF0ZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2b2lkIGV4ZWN1dGVPbkNoYW5nZSgpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgfSxcbiAgICAxNTAsXG4gICAgW2ZpZWxkcywgZGlzcGF0Y2hGaWVsZHMsIG9uQ2hhbmdlXSxcbiAgKVxuXG4gIGNvbnN0IGFjdGlvblN0cmluZyA9XG4gICAgdHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZydcbiAgICAgID8gYCR7YWN0aW9ufSR7UXVlcnlTdHJpbmcuc3RyaW5naWZ5KGZvcm1RdWVyeVBhcmFtcywgeyBhZGRRdWVyeVByZWZpeDogdHJ1ZSB9KX1gXG4gICAgICA6ICcnXG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybVxuICAgICAgYWN0aW9uPXttZXRob2QgPyBhY3Rpb25TdHJpbmcgOiBhY3Rpb259XG4gICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICBtZXRob2Q9e21ldGhvZH1cbiAgICAgIG5vVmFsaWRhdGVcbiAgICAgIG9uU3VibWl0PXsoZSkgPT4gY29udGV4dFJlZi5jdXJyZW50LnN1Ym1pdCh7fSwgZSl9XG4gICAgICByZWY9e2Zvcm1SZWZ9XG4gICAgPlxuICAgICAgPEZvcm1Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0UmVmLmN1cnJlbnR9PlxuICAgICAgICA8Rm9ybVdhdGNoQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXt7XG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICAuLi5jb250ZXh0UmVmLmN1cnJlbnQsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdWJtaXR0ZWRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtzdWJtaXR0ZWR9PlxuICAgICAgICAgICAgPFByb2Nlc3NpbmdDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm9jZXNzaW5nfT5cbiAgICAgICAgICAgICAgPE1vZGlmaWVkQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bW9kaWZpZWR9PlxuICAgICAgICAgICAgICAgIDxGb3JtRmllbGRzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17ZmllbGRzUmVkdWNlcn0+XG4gICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgPC9Gb3JtRmllbGRzQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9Nb2RpZmllZENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICA8L1Byb2Nlc3NpbmdDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgIDwvU3VibWl0dGVkQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgPC9Gb3JtV2F0Y2hDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9Gb3JtQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L2Zvcm0+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRm9ybVxuIl0sIm5hbWVzIjpbImlzRGVlcEVxdWFsIiwidXNlUm91dGVyIiwic2VyaWFsaXplIiwid2FpdCIsIlF1ZXJ5U3RyaW5nIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVJlZHVjZXIiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInRvYXN0IiwidXNlRm9ybVF1ZXJ5UGFyYW1zIiwidXNlRGVib3VuY2VkRWZmZWN0IiwidXNlVGhyb3R0bGVkRWZmZWN0IiwidXNlQXV0aCIsInVzZUNvbmZpZyIsInVzZURvY3VtZW50SW5mbyIsInVzZUxvY2FsZSIsInVzZU9wZXJhdGlvbiIsInVzZVRyYW5zbGF0aW9uIiwicmVxdWVzdHMiLCJnZXRGb3JtU3RhdGUiLCJGb3JtQ29udGV4dCIsIkZvcm1GaWVsZHNDb250ZXh0IiwiRm9ybVdhdGNoQ29udGV4dCIsIk1vZGlmaWVkQ29udGV4dCIsIlByb2Nlc3NpbmdDb250ZXh0IiwiU3VibWl0dGVkQ29udGV4dCIsImVycm9yTWVzc2FnZXMiLCJmaWVsZFJlZHVjZXIiLCJnZXREYXRhQnlQYXRoRnVuYyIsImdldFNpYmxpbmdEYXRhRnVuYyIsImluaXRDb250ZXh0U3RhdGUiLCJtZXJnZVNlcnZlckZvcm1TdGF0ZSIsInJlZHVjZUZpZWxkc1RvVmFsdWVzIiwiYmFzZUNsYXNzIiwiRm9ybSIsInByb3BzIiwiaWQiLCJnZXREb2NQcmVmZXJlbmNlcyIsImFjdGlvbiIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGlzYWJsZVN1Y2Nlc3NTdGF0dXMiLCJkaXNhYmxlZCIsImJlZm9yZVN1Ym1pdCIsImhhbmRsZVJlc3BvbnNlIiwiaW5pdGlhbFN0YXRlIiwib25DaGFuZ2UiLCJvblN1Ym1pdCIsIm9uU3VjY2VzcyIsInJlZGlyZWN0Iiwic3VibWl0dGVkIiwic3VibWl0dGVkRnJvbVByb3BzIiwidXVpZCIsIndhaXRGb3JBdXRvY29tcGxldGUiLCJtZXRob2QiLCJ1bmRlZmluZWQiLCJyb3V0ZXIiLCJjb2RlIiwibG9jYWxlIiwiaTE4biIsInQiLCJyZWZyZXNoQ29va2llIiwidXNlciIsIm9wZXJhdGlvbiIsImZvcm1RdWVyeVBhcmFtcyIsImNvbmZpZyIsInJvdXRlcyIsImFwaSIsImFwaVJvdXRlIiwic2VydmVyVVJMIiwibW9kaWZpZWQiLCJzZXRNb2RpZmllZCIsInByb2Nlc3NpbmciLCJzZXRQcm9jZXNzaW5nIiwic2V0U3VibWl0dGVkIiwiZm9ybVJlZiIsImNvbnRleHRSZWYiLCJjb2xsZWN0aW9uU2x1ZyIsImdsb2JhbFNsdWciLCJmaWVsZHNSZWR1Y2VyIiwiZmllbGRzIiwiZGlzcGF0Y2hGaWVsZHMiLCJjdXJyZW50IiwidmFsaWRhdGVGb3JtIiwidmFsaWRhdGVkRmllbGRTdGF0ZSIsImlzVmFsaWQiLCJkYXRhRnJvbUNvbnRleHQiLCJnZXREYXRhIiwiZGF0YSIsInZhbGlkYXRpb25Qcm9taXNlcyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJwYXRoIiwiZmllbGQiLCJ2YWxpZGF0ZWRGaWVsZCIsInZhbGlkIiwicGFzc2VzQ29uZGl0aW9uIiwidmFsaWRhdGlvblJlc3VsdCIsInZhbGlkYXRlIiwidmFsdWVUb1ZhbGlkYXRlIiwidmFsdWUiLCJyb3dzIiwiQXJyYXkiLCJpc0FycmF5IiwiZ2V0RGF0YUJ5UGF0aCIsInNpYmxpbmdEYXRhIiwiZ2V0U2libGluZ0RhdGEiLCJlcnJvck1lc3NhZ2UiLCJQcm9taXNlIiwiYWxsIiwidHlwZSIsInN0YXRlIiwic3VibWl0Iiwib3B0aW9ucyIsImUiLCJhY3Rpb25Ub1VzZSIsIm1ldGhvZFRvVXNlIiwib3ZlcnJpZGVzIiwic2tpcFZhbGlkYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInJldmFsaWRhdGVkRm9ybVN0YXRlIiwicmVkdWNlIiwicHJpb3JPbkNoYW5nZSIsImJlZm9yZVN1Ym1pdEZuIiwicmVzdWx0IiwiZm9ybVN0YXRlIiwicmVzb2x2ZSIsImV2ZXJ5IiwiZXJyb3IiLCJmb3JtRGF0YSIsImNyZWF0ZUZvcm1EYXRhIiwicmVzIiwiYWN0aW9uRW5kcG9pbnQiLCJzdHJpbmdpZnkiLCJhZGRRdWVyeVByZWZpeCIsInRvTG93ZXJDYXNlIiwiYm9keSIsImhlYWRlcnMiLCJsYW5ndWFnZSIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiaXNKU09OIiwiaW5kZXhPZiIsImpzb24iLCJzdGF0dXMiLCJwdXNoIiwic3VjY2VzcyIsIm1lc3NhZ2UiLCJhdXRvQ2xvc2UiLCJlcnJvcnMiLCJmaWVsZEVycm9ycyIsIm5vbkZpZWxkRXJyb3JzIiwiZmllbGRFcnJzIiwibm9uRmllbGRFcnJzIiwiZXJyIiwibmV3RmllbGRFcnJzIiwibmV3Tm9uRmllbGRFcnJzIiwiZm9yRWFjaCIsImRhdGFFcnJvciIsInN0YXR1c1RleHQiLCJnZXRGaWVsZHMiLCJnZXRGaWVsZCIsImZpbGUiLCJkYXRhV2l0aE92ZXJyaWRlcyIsImRhdGFUb1NlcmlhbGl6ZSIsIl9wYXlsb2FkIiwiSlNPTiIsImluZGljZXMiLCJudWxsc0FzVW5kZWZpbmVkcyIsInJlc2V0IiwiZmllbGRTY2hlbWEiLCJwcmVmZXJlbmNlcyIsInJlcGxhY2VTdGF0ZSIsImdldEZpZWxkU3RhdGVCeVBhdGgiLCJzY2hlbWFQYXRoIiwicmVwbGFjZSIsImFkZEZpZWxkUm93Iiwicm93SW5kZXgiLCJzdWJGaWVsZFN0YXRlIiwiYmxvY2tUeXBlIiwicmVtb3ZlRmllbGRSb3ciLCJyZXBsYWNlRmllbGRSb3ciLCJjbGFzc2VzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJleGVjdXRlT25DaGFuZ2UiLCJvbkNoYW5nZUZuIiwiY2hhbmdlZCIsIm5ld1N0YXRlIiwib3B0aW1pemUiLCJhY3Rpb25TdHJpbmciLCJmb3JtIiwibm9WYWxpZGF0ZSIsInJlZiIsIlByb3ZpZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLGtFQUFrRSxHQUNsRSxPQUFPQSxpQkFBaUIsYUFBWTtBQUNwQyxTQUFTQyxTQUFTLFFBQVEsa0JBQWlCO0FBQzNDLFNBQVNDLFNBQVMsUUFBUSxxQkFBb0I7QUFDOUMsU0FBU0MsSUFBSSxRQUFRLG9CQUFtQjtBQUN4QyxPQUFPQyxpQkFBaUIsS0FBSTtBQUM1QixPQUFPQyxTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBQ25GLFNBQVNDLEtBQUssUUFBUSxpQkFBZ0I7QUFJdEMsU0FBU0Msa0JBQWtCLFFBQVEsUUFBTztBQUMxQyxTQUFTQyxrQkFBa0IsUUFBUSxpQ0FBZ0M7QUFDbkUsT0FBT0Msd0JBQXdCLGlDQUFnQztBQUMvRCxTQUFTQyxPQUFPLFFBQVEsdUJBQXNCO0FBQzlDLFNBQVNDLFNBQVMsUUFBUSx5QkFBd0I7QUFDbEQsU0FBU0MsZUFBZSxRQUFRLCtCQUE4QjtBQUM5RCxTQUFTQyxTQUFTLFFBQVEseUJBQXdCO0FBQ2xELFNBQVNDLFlBQVksUUFBUSxvQ0FBbUM7QUFDaEUsU0FBU0MsY0FBYyxRQUFRLDhCQUE2QjtBQUM1RCxTQUFTQyxRQUFRLFFBQVEsc0JBQXFCO0FBQzlDLFNBQVNDLFlBQVksUUFBUSwrQkFBOEI7QUFDM0QsU0FDRUMsV0FBVyxFQUNYQyxpQkFBaUIsRUFDakJDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLGdCQUFnQixRQUNYLFlBQVc7QUFDbEIsT0FBT0MsbUJBQW1CLGtCQUFpQjtBQUMzQyxTQUFTQyxZQUFZLFFBQVEsaUJBQWdCO0FBQzdDLE9BQU9DLHVCQUF1QixrQkFBaUI7QUFDL0MsT0FBT0Msd0JBQXdC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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/index.tsx"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAON,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAWnF,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAA;AAEpE,eAAO,MAAM,eAAe,QAAO,mBAA0C,CAAA;AAE7E;;;;;;IAMI;AACJ,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CACzC,iBAAiB,GAAG;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA4SF,CAAA"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import qs from 'qs';
|
|
3
|
-
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
|
|
3
|
+
import React, { createContext, useCallback, useContext, useEffect, useReducer, useState } from 'react';
|
|
4
4
|
import { useAuth } from '../Auth';
|
|
5
5
|
import { useConfig } from '../Config';
|
|
6
6
|
import { useLocale } from '../Locale';
|
|
7
7
|
import { usePreferences } from '../Preferences';
|
|
8
8
|
import { useTranslation } from '../Translation';
|
|
9
|
+
import { documentInfoReducer } from './reducer';
|
|
9
10
|
const Context = /*#__PURE__*/ createContext({});
|
|
10
11
|
export const useDocumentInfo = ()=>useContext(Context);
|
|
11
12
|
/**
|
|
@@ -15,9 +16,15 @@ export const useDocumentInfo = ()=>useContext(Context);
|
|
|
15
16
|
*
|
|
16
17
|
* Otherwise pass props to initialize the documentInfo.
|
|
17
18
|
**/ export const DocumentInfoProvider = ({ children, ...rest })=>{
|
|
18
|
-
const [documentInfo,
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const [documentInfo, dispatchDocumentInfo] = useReducer(documentInfoReducer, rest);
|
|
20
|
+
const setDocumentInfo = useCallback((newInfo)=>{
|
|
21
|
+
dispatchDocumentInfo({
|
|
22
|
+
type: 'SET_DOC_INFO',
|
|
23
|
+
payload: newInfo
|
|
24
|
+
});
|
|
25
|
+
}, [
|
|
26
|
+
dispatchDocumentInfo
|
|
27
|
+
]);
|
|
21
28
|
const { id, collectionSlug, globalSlug } = documentInfo;
|
|
22
29
|
const { collections, globals, routes: { api }, serverURL } = useConfig();
|
|
23
30
|
const collectionConfig = collections.find((c)=>c.slug === collectionSlug);
|
|
@@ -31,12 +38,12 @@ export const useDocumentInfo = ()=>useContext(Context);
|
|
|
31
38
|
const [publishedDoc, setPublishedDoc] = useState(null);
|
|
32
39
|
const [versions, setVersions] = useState(null);
|
|
33
40
|
const [unpublishedVersions, setUnpublishedVersions] = useState(null);
|
|
34
|
-
const [title, setTitle] = useState('');
|
|
35
41
|
const setDocumentTitle = useCallback((title)=>{
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
dispatchDocumentInfo({
|
|
43
|
+
type: 'SET_DOC_TITLE',
|
|
44
|
+
payload: title
|
|
45
|
+
});
|
|
46
|
+
}, []);
|
|
40
47
|
const baseURL = `${serverURL}${api}`;
|
|
41
48
|
let slug;
|
|
42
49
|
let pluralType;
|
|
@@ -258,10 +265,12 @@ export const useDocumentInfo = ()=>useContext(Context);
|
|
|
258
265
|
const loadDocPreferences = async ()=>{
|
|
259
266
|
let docPreferences = rest.docPreferences;
|
|
260
267
|
if (!docPreferences) docPreferences = await getDocPreferences();
|
|
261
|
-
|
|
262
|
-
|
|
268
|
+
dispatchDocumentInfo({
|
|
269
|
+
type: 'SET_DOC_INFO',
|
|
270
|
+
payload: {
|
|
263
271
|
docPreferences
|
|
264
|
-
}
|
|
272
|
+
}
|
|
273
|
+
});
|
|
265
274
|
};
|
|
266
275
|
if (id) {
|
|
267
276
|
void loadDocPreferences();
|
|
@@ -283,7 +292,6 @@ export const useDocumentInfo = ()=>useContext(Context);
|
|
|
283
292
|
setDocFieldPreferences,
|
|
284
293
|
setDocumentInfo,
|
|
285
294
|
setDocumentTitle,
|
|
286
|
-
title,
|
|
287
295
|
unpublishedVersions,
|
|
288
296
|
versions
|
|
289
297
|
};
|
|
@@ -292,4 +300,4 @@ export const useDocumentInfo = ()=>useContext(Context);
|
|
|
292
300
|
}, children);
|
|
293
301
|
};
|
|
294
302
|
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvRG9jdW1lbnRJbmZvL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgUGFnaW5hdGVkRG9jcywgVHlwZVdpdGhWZXJzaW9uIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhUaW1lc3RhbXBzIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0eXBlIHsgRG9jdW1lbnRQZXJtaXNzaW9ucywgRG9jdW1lbnRQcmVmZXJlbmNlcywgVHlwZVdpdGhJRCwgV2hlcmUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgcXMgZnJvbSAncXMnXG5pbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudEluZm8sIERvY3VtZW50SW5mb0NvbnRleHQsIERvY3VtZW50SW5mb1Byb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJy4uL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi9Db25maWcnXG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VQcmVmZXJlbmNlcyB9IGZyb20gJy4uL1ByZWZlcmVuY2VzJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi9UcmFuc2xhdGlvbidcblxuY29uc3QgQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe30gYXMgRG9jdW1lbnRJbmZvQ29udGV4dClcblxuZXhwb3J0IHR5cGUgeyBEb2N1bWVudEluZm8sIERvY3VtZW50SW5mb0NvbnRleHQsIERvY3VtZW50SW5mb1Byb3BzIH1cblxuZXhwb3J0IGNvbnN0IHVzZURvY3VtZW50SW5mbyA9ICgpOiBEb2N1bWVudEluZm9Db250ZXh0ID0+IHVzZUNvbnRleHQoQ29udGV4dClcblxuLyoqXG4gKiBUbyBpbml0aWFsaXplIGRvY3VtZW50SW5mbyBmcm9tIHRoZSBzZXJ2ZXJcbiAqIHVzZSB0aGUgPFNldERvY3VtZW50SW5mbyAvPiB3aXRoaW4gYSBSU0MgY29tcG9uZW50XG4gKiB0byBoeWRyYXRlIHRoZSBkb2N1bWVudEluZm8gb24gdGhlIGZpcnN0IHJlbmRlci5cbiAqXG4gKiBPdGhlcndpc2UgcGFzcyBwcm9wcyB0byBpbml0aWFsaXplIHRoZSBkb2N1bWVudEluZm8uXG4gKiovXG5leHBvcnQgY29uc3QgRG9jdW1lbnRJbmZvUHJvdmlkZXI6IFJlYWN0LkZDPFxuICBEb2N1bWVudEluZm9Qcm9wcyAmIHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIH1cbj4gPSAoeyBjaGlsZHJlbiwgLi4ucmVzdCB9KSA9PiB7XG4gIGNvbnN0IFtkb2N1bWVudEluZm8sIHNldERvY3VtZW50SW5mb10gPSB1c2VTdGF0ZTxEb2N1bWVudEluZm8+KHtcbiAgICAuLi5yZXN0LFxuICB9KVxuXG4gIGNvbnN0IHsgaWQsIGNvbGxlY3Rpb25TbHVnLCBnbG9iYWxTbHVnIH0gPSBkb2N1bWVudEluZm9cblxuICBjb25zdCB7XG4gICAgY29sbGVjdGlvbnMsXG4gICAgZ2xvYmFscyxcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcblxuICBjb25zdCBjb2xsZWN0aW9uQ29uZmlnID0gY29sbGVjdGlvbnMuZmluZCgoYykgPT4gYy5zbHVnID09PSBjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3QgZ2xvYmFsQ29uZmlnID0gZ2xvYmFscy5maW5kKChnKSA9PiBnLnNsdWcgPT09IGdsb2JhbFNsdWcpXG4gIGNvbnN0IGRvY0NvbmZpZyA9IGNvbGxlY3Rpb25Db25maWcgfHwgZ2xvYmFsQ29uZmlnXG4gIGNvbnN0IHZlcnNpb25zQ29uZmlnID0gZG9jQ29uZmlnPy52ZXJzaW9uc1xuXG4gIGNvbnN0IHsgZ2V0UHJlZmVyZW5jZSwgc2V0UHJlZmVyZW5jZSB9ID0gdXNlUHJlZmVyZW5jZXMoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBwZXJtaXNzaW9ucyB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgW3B1Ymxpc2hlZERvYywgc2V0UHVibGlzaGVkRG9jXSA9IHVzZVN0YXRlPFR5cGVXaXRoSUQgJiBUeXBlV2l0aFRpbWVzdGFtcHM+KG51bGwpXG4gIGNvbnN0IFt2ZXJzaW9ucywgc2V0VmVyc2lvbnNdID0gdXNlU3RhdGU8UGFnaW5hdGVkRG9jczxUeXBlV2l0aFZlcnNpb248YW55Pj4+KG51bGwpXG5cbiAgY29uc3QgW3VucHVibGlzaGVkVmVyc2lvbnMsIHNldFVucHVibGlzaGVkVmVyc2lvbnNdID1cbiAgICB1c2VTdGF0ZTxQYWdpbmF0ZWREb2NzPFR5cGVXaXRoVmVyc2lvbjxhbnk+Pj4obnVsbClcblxuICBjb25zdCBbdGl0bGUsIHNldFRpdGxlXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpXG5cbiAgY29uc3Qgc2V0RG9jdW1lbnRUaXRsZSA9IHVzZUNhbGxiYWNrPERvY3VtZW50SW5mb0NvbnRleHRbJ3NldERvY3VtZW50VGl0bGUnXT4oXG4gICAgKHRpdGxlKSA9PiB7XG4gICAgICBzZXRUaXRsZSh0aXRsZSB8fCBpZD8udG9TdHJpbmcoKSB8fCAnW3VudGl0bGVkXScpXG4gICAgfSxcbiAgICBbaWRdLFxuICApXG5cbiAgY29uc3QgYmFzZVVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX1gXG4gIGxldCBzbHVnOiBzdHJpbmdcbiAgbGV0IHBsdXJhbFR5cGU6ICdjb2xsZWN0aW9ucycgfCAnZ2xvYmFscydcbiAgbGV0IHByZWZlcmVuY2VzS2V5OiBzdHJpbmdcblxuICBpZiAoZ2xvYmFsU2x1Zykge1xuICAgIHNsdWcgPSBnbG9iYWxTbHVnXG4gICAgcGx1cmFsVHlwZSA9ICdnbG9iYWxzJ1xuICAgIHByZWZlcmVuY2VzS2V5ID0gYGdsb2JhbC0ke3NsdWd9YFxuICB9XG5cbiAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgc2x1ZyA9IGNvbGxlY3Rpb25TbHVnXG4gICAgcGx1cmFsVHlwZSA9ICdjb2xsZWN0aW9ucydcblxuICAgIGlmIChpZCkge1xuICAgICAgcHJlZmVyZW5jZXNLZXkgPSBgY29sbGVjdGlvbi0ke3NsdWd9LSR7aWR9YFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IFtkb2NQZXJtaXNzaW9ucywgc2V0RG9jUGVybWlzc2lvbnNdID0gdXNlU3RhdGU8RG9jdW1lbnRQZXJtaXNzaW9ucz4obnVsbClcblxuICBjb25zdCBnZXRWZXJzaW9ucyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBsZXQgdmVyc2lvbkZldGNoVVJMXG4gICAgbGV0IHB1Ymxpc2hlZEZldGNoVVJMXG4gICAgY29uc3Qgc2hvdWxkRmV0Y2hWZXJzaW9ucyA9IEJvb2xlYW4odmVyc2lvbnNDb25maWcpXG4gICAgbGV0IHVucHVibGlzaGVkVmVyc2lvbkpTT04gPSBudWxsXG4gICAgbGV0IHZlcnNpb25KU09OID0gbnVsbFxuICAgIGxldCBzaG91bGRGZXRjaCA9IHRydWVcblxuICAgIGNvbnN0IHZlcnNpb25QYXJhbXMgPSB7XG4gICAgICBkZXB0aDogMCxcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIGFuZDogW10sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHB1Ymxpc2hlZFZlcnNpb25QYXJhbXM6IHsgZGVwdGg6IG51bWJlcjsgbG9jYWxlOiBzdHJpbmc7IHdoZXJlOiBXaGVyZSB9ID0ge1xuICAgICAgZGVwdGg6IDAsXG4gICAgICBsb2NhbGU6IGNvZGUgfHwgdW5kZWZpbmVkLFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgYW5kOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3I6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF9zdGF0dXM6IHtcbiAgICAgICAgICAgICAgICAgIGVxdWFsczogJ3B1Ymxpc2hlZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF9zdGF0dXM6IHtcbiAgICAgICAgICAgICAgICAgIGV4aXN0czogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbFNsdWcpIHtcbiAgICAgIHZlcnNpb25GZXRjaFVSTCA9IGAke2Jhc2VVUkx9L2dsb2JhbHMvJHtnbG9iYWxTbHVnfS92ZXJzaW9uc2BcbiAgICAgIHB1Ymxpc2hlZEZldGNoVVJMID0gYCR7YmFzZVVSTH0vZ2xvYmFscy8ke2dsb2JhbFNsdWd9PyR7cXMuc3RyaW5naWZ5KHB1Ymxpc2hlZFZlcnNpb25QYXJhbXMpfWBcbiAgICB9XG5cbiAgICBpZiAoY29sbGVjdGlvblNsdWcpIHtcbiAgICAgIHZlcnNpb25GZXRjaFVSTCA9IGAke2Jhc2VVUkx9LyR7Y29sbGVjdGlvblNsdWd9L3ZlcnNpb25zYFxuXG4gICAgICBwdWJsaXNoZWRWZXJzaW9uUGFyYW1zLndoZXJlLmFuZC5wdXNoKHtcbiAgICAgICAgaWQ6IHtcbiAgICAgICAgICBlcXVhbHM6IGlkLFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgcHVibGlzaGVkRmV0Y2hVUkwgPSBgJHtiYXNlVVJMfS8ke2NvbGxlY3Rpb25TbHVnfT8ke3FzLnN0cmluZ2lmeShwdWJsaXNoZWRWZXJzaW9uUGFyYW1zKX1gXG5cbiAgICAgIGlmICghaWQpIHtcbiAgICAgICAgc2hvdWxkRmV0Y2ggPSBmYWxzZVxuICAgICAgfVxuXG4gICAgICB2ZXJzaW9uUGFyYW1zLndoZXJlLmFuZC5wdXNoKHtcbiAgICAgICAgcGFyZW50OiB7XG4gICAgICAgICAgZXF1YWxzOiBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHNob3VsZEZldGNoKSB7XG4gICAgICBsZXQgcHVibGlzaGVkSlNPTlxuXG4gICAgICBpZiAodmVyc2lvbnNDb25maWc/LmRyYWZ0cykge1xuICAgICAgICBwdWJsaXNoZWRKU09OID0gYXdhaXQgZmV0Y2gocHVibGlzaGVkRmV0Y2hVUkwsIHtcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcblxuICAgICAgICBpZiAoY29sbGVjdGlvblNsdWcpIHtcbiAgICAgICAgICBwdWJsaXNoZWRKU09OID0gcHVibGlzaGVkSlNPTj8uZG9jcz8uWzBdXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZEZldGNoVmVyc2lvbnMpIHtcbiAgICAgICAgdmVyc2lvbkpTT04gPSBhd2FpdCBmZXRjaChgJHt2ZXJzaW9uRmV0Y2hVUkx9PyR7cXMuc3RyaW5naWZ5KHZlcnNpb25QYXJhbXMpfWAsIHtcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcblxuICAgICAgICBpZiAocHVibGlzaGVkSlNPTj8udXBkYXRlZEF0KSB7XG4gICAgICAgICAgY29uc3QgbmV3ZXJWZXJzaW9uUGFyYW1zID0ge1xuICAgICAgICAgICAgLi4udmVyc2lvblBhcmFtcyxcbiAgICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICAgIC4uLnZlcnNpb25QYXJhbXMud2hlcmUsXG4gICAgICAgICAgICAgIGFuZDogW1xuICAgICAgICAgICAgICAgIC4uLnZlcnNpb25QYXJhbXMud2hlcmUuYW5kLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDoge1xuICAgICAgICAgICAgICAgICAgICBncmVhdGVyX3RoYW46IHB1Ymxpc2hlZEpTT04/LnVwZGF0ZWRBdCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gR2V0IGFueSBuZXdlciB2ZXJzaW9ucyBhdmFpbGFibGVcbiAgICAgICAgICBjb25zdCBuZXdlclZlcnNpb25SZXMgPSBhd2FpdCBmZXRjaChcbiAgICAgICAgICAgIGAke3ZlcnNpb25GZXRjaFVSTH0/JHtxcy5zdHJpbmdpZnkobmV3ZXJWZXJzaW9uUGFyYW1zKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcblxuICAgICAgICAgIGlmIChuZXdlclZlcnNpb25SZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgIHVucHVibGlzaGVkVmVyc2lvbkpTT04gPSBhd2FpdCBuZXdlclZlcnNpb25SZXMuanNvbigpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNldFB1Ymxpc2hlZERvYyhwdWJsaXNoZWRKU09OKVxuICAgICAgc2V0VmVyc2lvbnModmVyc2lvbkpTT04pXG4gICAgICBzZXRVbnB1Ymxpc2hlZFZlcnNpb25zKHVucHVibGlzaGVkVmVyc2lvbkpTT04pXG4gICAgfVxuICB9LCBbaTE4biwgZ2xvYmFsU2x1ZywgY29sbGVjdGlvblNsdWcsIGlkLCBiYXNlVVJMLCBjb2RlLCB2ZXJzaW9uc0NvbmZpZ10pXG5cbiAgY29uc3QgZ2V0RG9jUGVybWlzc2lvbnMgPSBSZWFjdC51c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgbGV0IGRvY0FjY2Vzc1VSTDogc3RyaW5nXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgbG9jYWxlOiBjb2RlIHx8IHVuZGVmaW5lZCxcbiAgICB9XG4gICAgaWYgKHBsdXJhbFR5cGUgPT09ICdnbG9iYWxzJykge1xuICAgICAgZG9jQWNjZXNzVVJMID0gYC9nbG9iYWxzLyR7c2x1Z30vYWNjZXNzYFxuICAgIH0gZWxzZSBpZiAocGx1cmFsVHlwZSA9PT0gJ2NvbGxlY3Rpb25zJyAmJiBpZCkge1xuICAgICAgZG9jQWNjZXNzVVJMID0gYC8ke3NsdWd9L2FjY2Vzcy8ke2lkfWBcbiAgICB9XG5cbiAgICBpZiAoZG9jQWNjZXNzVVJMKSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgJHtzZXJ2ZXJVUkx9JHthcGl9JHtkb2NBY2Nlc3NVUkx9PyR7cXMuc3RyaW5naWZ5KHBhcmFtcyl9YCwge1xuICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcy5qc29uKClcbiAgICAgIHNldERvY1Blcm1pc3Npb25zKGpzb24pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZhbGxiYWNrIHRvIHBlcm1pc3Npb25zIGZyb20gdGhlIGVudGl0eSB0eXBlXG4gICAgICAvLyAoaS5lLiBjcmVhdGUgaGFzIG5vIGlkKVxuICAgICAgc2V0RG9jUGVybWlzc2lvbnMocGVybWlzc2lvbnM/LltwbHVyYWxUeXBlXT8uW3NsdWddKVxuICAgIH1cbiAgfSwgW3NlcnZlclVSTCwgYXBpLCBwbHVyYWxUeXBlLCBzbHVnLCBpZCwgcGVybWlzc2lvbnMsIGkxOG4ubGFuZ3VhZ2UsIGNvZGVdKVxuXG4gIGNvbnN0IGdldERvY1ByZWZlcmVuY2VzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBnZXRQcmVmZXJlbmNlPERvY3VtZW50UHJlZmVyZW5jZXM+KHByZWZlcmVuY2VzS2V5KVxuICB9LCBbZ2V0UHJlZmVyZW5jZSwgcHJlZmVyZW5jZXNLZXldKVxuXG4gIGNvbnN0IHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgPSB1c2VDYWxsYmFjazxEb2N1bWVudEluZm9Db250ZXh0WydzZXREb2NGaWVsZFByZWZlcmVuY2VzJ10+KFxuICAgIGFzeW5jIChwYXRoLCBmaWVsZFByZWZlcmVuY2VzKSA9PiB7XG4gICAgICBjb25zdCBhbGxQcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcblxuICAgICAgaWYgKHByZWZlcmVuY2VzS2V5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgc2V0UHJlZmVyZW5jZShwcmVmZXJlbmNlc0tleSwge1xuICAgICAgICAgICAgLi4uYWxsUHJlZmVyZW5jZXMsXG4gICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgLi4uKGFsbFByZWZlcmVuY2VzPy5maWVsZHMgfHwge30pLFxuICAgICAgICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAgICAgICAuLi5hbGxQcmVmZXJlbmNlcz8uZmllbGRzPy5bcGF0aF0sXG4gICAgICAgICAgICAgICAgLi4uZmllbGRQcmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldFByZWZlcmVuY2UsIHByZWZlcmVuY2VzS2V5LCBnZXREb2NQcmVmZXJlbmNlc10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgZ2V0VmVyc2lvbnMoKVxuICB9LCBbZ2V0VmVyc2lvbnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbG9hZERvY1Blcm1pc3Npb25zID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZG9jUGVybWlzc2lvbnM6IERvY3VtZW50UGVybWlzc2lvbnMgPSByZXN0LmRvY1Blcm1pc3Npb25zXG4gICAgICBpZiAoIWRvY1Blcm1pc3Npb25zKSBhd2FpdCBnZXREb2NQZXJtaXNzaW9ucygpXG4gICAgICBlbHNlIHNldERvY1Blcm1pc3Npb25zKGRvY1Blcm1pc3Npb25zKVxuICAgIH1cblxuICAgIGlmIChjb2xsZWN0aW9uU2x1ZyB8fCBnbG9iYWxTbHVnKSB7XG4gICAgICB2b2lkIGxvYWREb2NQZXJtaXNzaW9ucygpXG4gICAgfVxuICB9LCBbZ2V0RG9jUGVybWlzc2lvbnMsIHJlc3QuZG9jUGVybWlzc2lvbnMsIHNldERvY1Blcm1pc3Npb25zLCBjb2xsZWN0aW9uU2x1ZywgZ2xvYmFsU2x1Z10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBsb2FkRG9jUHJlZmVyZW5jZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgZG9jUHJlZmVyZW5jZXM6IERvY3VtZW50UHJlZmVyZW5jZXMgPSByZXN0LmRvY1ByZWZlcmVuY2VzXG4gICAgICBpZiAoIWRvY1ByZWZlcmVuY2VzKSBkb2NQcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcblxuICAgICAgc2V0RG9jdW1lbnRJbmZvKChleGlzdGluZ0luZm8pID0+ICh7XG4gICAgICAgIC4uLmV4aXN0aW5nSW5mbyxcbiAgICAgICAgZG9jUHJlZmVyZW5jZXMsXG4gICAgICB9KSlcbiAgICB9XG5cbiAgICBpZiAoaWQpIHtcbiAgICAgIHZvaWQgbG9hZERvY1ByZWZlcmVuY2VzKClcbiAgICB9XG4gIH0sIFtnZXREb2NQcmVmZXJlbmNlcywgcHJlZmVyZW5jZXNLZXksIHJlc3QuZG9jUHJlZmVyZW5jZXMsIGlkXSlcblxuICBjb25zdCB2YWx1ZTogRG9jdW1lbnRJbmZvQ29udGV4dCA9IHtcbiAgICAuLi5kb2N1bWVudEluZm8sXG4gICAgZG9jQ29uZmlnLFxuICAgIGRvY1Blcm1pc3Npb25zLFxuICAgIGdldERvY1Blcm1pc3Npb25zLFxuICAgIGdldERvY1ByZWZlcmVuY2VzLFxuICAgIGdldFZlcnNpb25zLFxuICAgIHB1Ymxpc2hlZERvYyxcbiAgICBzZXREb2NGaWVsZFByZWZlcmVuY2VzLFxuICAgIHNldERvY3VtZW50SW5mbyxcbiAgICBzZXREb2N1bWVudFRpdGxlLFxuICAgIHRpdGxlLFxuICAgIHVucHVibGlzaGVkVmVyc2lvbnMsXG4gICAgdmVyc2lvbnMsXG4gIH1cblxuICByZXR1cm4gPENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9Db250ZXh0LlByb3ZpZGVyPlxufVxuIl0sIm5hbWVzIjpbInFzIiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwidXNlQ2FsbGJhY2siLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VBdXRoIiwidXNlQ29uZmlnIiwidXNlTG9jYWxlIiwidXNlUHJlZmVyZW5jZXMiLCJ1c2VUcmFuc2xhdGlvbiIsIkNvbnRleHQiLCJ1c2VEb2N1bWVudEluZm8iLCJEb2N1bWVudEluZm9Qcm92aWRlciIsImNoaWxkcmVuIiwicmVzdCIsImRvY3VtZW50SW5mbyIsInNldERvY3VtZW50SW5mbyIsImlkIiwiY29sbGVjdGlvblNsdWciLCJnbG9iYWxTbHVnIiwiY29sbGVjdGlvbnMiLCJnbG9iYWxzIiwicm91dGVzIiwiYXBpIiwic2VydmVyVVJMIiwiY29sbGVjdGlvbkNvbmZpZyIsImZpbmQiLCJjIiwic2x1ZyIsImdsb2JhbENvbmZpZyIsImciLCJkb2NDb25maWciLCJ2ZXJzaW9uc0NvbmZpZyIsInZlcnNpb25zIiwiZ2V0UHJlZmVyZW5jZSIsInNldFByZWZlcmVuY2UiLCJpMThuIiwicGVybWlzc2lvbnMiLCJjb2RlIiwicHVibGlzaGVkRG9jIiwic2V0UHVibGlzaGVkRG9jIiwic2V0VmVyc2lvbnMiLCJ1bnB1Ymxpc2hlZFZlcnNpb25zIiwic2V0VW5wdWJsaXNoZWRWZXJzaW9ucyIsInRpdGxlIiwic2V0VGl0bGUiLCJzZXREb2N1bWVudFRpdGxlIiwidG9TdHJpbmciLCJiYXNlVVJMIiwicGx1cmFsVHlwZSIsInByZWZlcmVuY2VzS2V5IiwiZG9jUGVybWlzc2lvbnMiLCJzZXREb2NQZXJtaXNzaW9ucyIsImdldFZlcnNpb25zIiwidmVyc2lvbkZldGNoVVJMIiwicHVibGlzaGVkRmV0Y2hVUkwiLCJzaG91bGRGZXRjaFZlcnNpb25zIiwiQm9vbGVhbiIsInVucHVibGlzaGVkVmVyc2lvbkpTT04iLCJ2ZXJzaW9uSlNPTiIsInNob3VsZEZldGNoIiwidmVyc2lvblBhcmFtcyIsImRlcHRoIiwid2hlcmUiLCJhbmQiLCJwdWJsaXNoZWRWZXJzaW9uUGFyYW1zIiwibG9jYWxlIiwidW5kZWZpbmVkIiwib3IiLCJfc3RhdHVzIiwiZXF1YWxzIiwiZXhpc3RzIiwic3RyaW5naWZ5IiwicHVzaCIsInBhcmVudCIsInB1Ymxpc2hlZEpTT04iLCJkcmFmdHMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsImxhbmd1YWdlIiwidGhlbiIsInJlcyIsImpzb24iLCJkb2NzIiwidXBkYXRlZEF0IiwibmV3ZXJWZXJzaW9uUGFyYW1zIiwiZ3JlYXRlcl90aGFuIiwibmV3ZXJWZXJzaW9uUmVzIiwic3RhdHVzIiwiZ2V0RG9jUGVybWlzc2lvbnMiLCJkb2NBY2Nlc3NVUkwiLCJwYXJhbXMiLCJnZXREb2NQcmVmZXJlbmNlcyIsInNldERvY0ZpZWxkUHJlZmVyZW5jZXMiLCJwYXRoIiwiZmllbGRQcmVmZXJlbmNlcyIsImFsbFByZWZlcmVuY2VzIiwiZmllbGRzIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsImxvYWREb2NQZXJtaXNzaW9ucyIsImxvYWREb2NQcmVmZXJlbmNlcyIsImRvY1ByZWZlcmVuY2VzIiwiZXhpc3RpbmdJbmZvIiwidmFsdWUiLCJQcm92aWRlciJdLCJtYXBwaW5ncyI6IkFBQUE7QUFLQSxPQUFPQSxRQUFRLEtBQUk7QUFDbkIsT0FBT0MsU0FBU0MsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUkxRixTQUFTQyxPQUFPLFFBQVEsVUFBUztBQUNqQyxTQUFTQyxTQUFTLFFBQVEsWUFBVztBQUNyQyxTQUFTQyxTQUFTLFFBQVEsWUFBVztBQUNyQyxTQUFTQyxjQUFjLFFBQVEsaUJBQWdCO0FBQy9DLFNBQVNDLGNBQWMsUUFBUSxpQkFBZ0I7QUFFL0MsTUFBTUMsd0JBQVVWLGNBQWMsQ0FBQztBQUkvQixPQUFPLE1BQU1XLGtCQUFrQixJQUEyQlQsV0FBV1EsU0FBUTtBQUU3RTs7Ozs7O0VBTUUsR0FDRixPQUFPLE1BQU1FLHVCQUlULENBQUMsRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE1BQU07SUFDeEIsTUFBTSxDQUFDQyxjQUFjQyxnQkFBZ0IsR0FBR1osU0FBdUI7UUFDN0QsR0FBR1UsSUFBSTtJQUNUO0lBRUEsTUFBTSxFQUFFRyxFQUFFLEVBQUVDLGNBQWMsRUFBRUMsVUFBVSxFQUFFLEdBQUdKO0lBRTNDLE1BQU0sRUFDSkssV0FBVyxFQUNYQyxPQUFPLEVBQ1BDLFFBQVEsRUFBRUMsR0FBRyxFQUFFLEVBQ2ZDLFNBQVMsRUFDVixHQUFHbEI7SUFFSixNQUFNbUIsbUJBQW1CTCxZQUFZTSxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLVjtJQUM1RCxNQUFNVyxlQUFlUixRQUFRSyxJQUFJLENBQUMsQ0FBQ0ksSUFBTUEsRUFBRUYsSUFBSSxLQUFLVDtJQUNwRCxNQUFNWSxZQUFZTixvQkFBb0JJO0lBQ3RDLE1BQU1H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
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvRG9jdW1lbnRJbmZvL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgUGFnaW5hdGVkRG9jcywgVHlwZVdpdGhWZXJzaW9uIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhUaW1lc3RhbXBzIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0eXBlIHsgRG9jdW1lbnRQZXJtaXNzaW9ucywgRG9jdW1lbnRQcmVmZXJlbmNlcywgVHlwZVdpdGhJRCwgV2hlcmUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgcXMgZnJvbSAncXMnXG5pbXBvcnQgUmVhY3QsIHtcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlUmVkdWNlcixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50SW5mbywgRG9jdW1lbnRJbmZvQ29udGV4dCwgRG9jdW1lbnRJbmZvUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vQXV0aCdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uL0NvbmZpZydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uL0xvY2FsZSdcbmltcG9ydCB7IHVzZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vUHJlZmVyZW5jZXMnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJy4uL1RyYW5zbGF0aW9uJ1xuaW1wb3J0IHsgZG9jdW1lbnRJbmZvUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlcidcblxuY29uc3QgQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe30gYXMgRG9jdW1lbnRJbmZvQ29udGV4dClcblxuZXhwb3J0IHR5cGUgeyBEb2N1bWVudEluZm8sIERvY3VtZW50SW5mb0NvbnRleHQsIERvY3VtZW50SW5mb1Byb3BzIH1cblxuZXhwb3J0IGNvbnN0IHVzZURvY3VtZW50SW5mbyA9ICgpOiBEb2N1bWVudEluZm9Db250ZXh0ID0+IHVzZUNvbnRleHQoQ29udGV4dClcblxuLyoqXG4gKiBUbyBpbml0aWFsaXplIGRvY3VtZW50SW5mbyBmcm9tIHRoZSBzZXJ2ZXJcbiAqIHVzZSB0aGUgPFNldERvY3VtZW50SW5mbyAvPiB3aXRoaW4gYSBSU0MgY29tcG9uZW50XG4gKiB0byBoeWRyYXRlIHRoZSBkb2N1bWVudEluZm8gb24gdGhlIGZpcnN0IHJlbmRlci5cbiAqXG4gKiBPdGhlcndpc2UgcGFzcyBwcm9wcyB0byBpbml0aWFsaXplIHRoZSBkb2N1bWVudEluZm8uXG4gKiovXG5leHBvcnQgY29uc3QgRG9jdW1lbnRJbmZvUHJvdmlkZXI6IFJlYWN0LkZDPFxuICBEb2N1bWVudEluZm9Qcm9wcyAmIHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIH1cbj4gPSAoeyBjaGlsZHJlbiwgLi4ucmVzdCB9KSA9PiB7XG4gIGNvbnN0IFtkb2N1bWVudEluZm8sIGRpc3BhdGNoRG9jdW1lbnRJbmZvXSA9IHVzZVJlZHVjZXIoZG9jdW1lbnRJbmZvUmVkdWNlciwgcmVzdClcblxuICBjb25zdCBzZXREb2N1bWVudEluZm8gPSB1c2VDYWxsYmFjayhcbiAgICAobmV3SW5mbzogRG9jdW1lbnRJbmZvKSA9PiB7XG4gICAgICBkaXNwYXRjaERvY3VtZW50SW5mbyh7XG4gICAgICAgIHR5cGU6ICdTRVRfRE9DX0lORk8nLFxuICAgICAgICBwYXlsb2FkOiBuZXdJbmZvLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaERvY3VtZW50SW5mb10sXG4gIClcblxuICBjb25zdCB7IGlkLCBjb2xsZWN0aW9uU2x1ZywgZ2xvYmFsU2x1ZyB9ID0gZG9jdW1lbnRJbmZvXG5cbiAgY29uc3Qge1xuICAgIGNvbGxlY3Rpb25zLFxuICAgIGdsb2JhbHMsXG4gICAgcm91dGVzOiB7IGFwaSB9LFxuICAgIHNlcnZlclVSTCxcbiAgfSA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IGNvbGxlY3Rpb25zLmZpbmQoKGMpID0+IGMuc2x1ZyA9PT0gY29sbGVjdGlvblNsdWcpXG4gIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdsb2JhbHMuZmluZCgoZykgPT4gZy5zbHVnID09PSBnbG9iYWxTbHVnKVxuICBjb25zdCBkb2NDb25maWcgPSBjb2xsZWN0aW9uQ29uZmlnIHx8IGdsb2JhbENvbmZpZ1xuICBjb25zdCB2ZXJzaW9uc0NvbmZpZyA9IGRvY0NvbmZpZz8udmVyc2lvbnNcblxuICBjb25zdCB7IGdldFByZWZlcmVuY2UsIHNldFByZWZlcmVuY2UgfSA9IHVzZVByZWZlcmVuY2VzKClcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IHsgcGVybWlzc2lvbnMgfSA9IHVzZUF1dGgoKVxuICBjb25zdCB7IGNvZGUgfSA9IHVzZUxvY2FsZSgpXG4gIGNvbnN0IFtwdWJsaXNoZWREb2MsIHNldFB1Ymxpc2hlZERvY10gPSB1c2VTdGF0ZTxUeXBlV2l0aElEICYgVHlwZVdpdGhUaW1lc3RhbXBzPihudWxsKVxuICBjb25zdCBbdmVyc2lvbnMsIHNldFZlcnNpb25zXSA9IHVzZVN0YXRlPFBhZ2luYXRlZERvY3M8VHlwZVdpdGhWZXJzaW9uPGFueT4+PihudWxsKVxuXG4gIGNvbnN0IFt1bnB1Ymxpc2hlZFZlcnNpb25zLCBzZXRVbnB1Ymxpc2hlZFZlcnNpb25zXSA9XG4gICAgdXNlU3RhdGU8UGFnaW5hdGVkRG9jczxUeXBlV2l0aFZlcnNpb248YW55Pj4+KG51bGwpXG5cbiAgY29uc3Qgc2V0RG9jdW1lbnRUaXRsZSA9IHVzZUNhbGxiYWNrKCh0aXRsZTogc3RyaW5nKSA9PiB7XG4gICAgZGlzcGF0Y2hEb2N1bWVudEluZm8oe1xuICAgICAgdHlwZTogJ1NFVF9ET0NfVElUTEUnLFxuICAgICAgcGF5bG9hZDogdGl0bGUsXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgYmFzZVVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX1gXG4gIGxldCBzbHVnOiBzdHJpbmdcbiAgbGV0IHBsdXJhbFR5cGU6ICdjb2xsZWN0aW9ucycgfCAnZ2xvYmFscydcbiAgbGV0IHByZWZlcmVuY2VzS2V5OiBzdHJpbmdcblxuICBpZiAoZ2xvYmFsU2x1Zykge1xuICAgIHNsdWcgPSBnbG9iYWxTbHVnXG4gICAgcGx1cmFsVHlwZSA9ICdnbG9iYWxzJ1xuICAgIHByZWZlcmVuY2VzS2V5ID0gYGdsb2JhbC0ke3NsdWd9YFxuICB9XG5cbiAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgc2x1ZyA9IGNvbGxlY3Rpb25TbHVnXG4gICAgcGx1cmFsVHlwZSA9ICdjb2xsZWN0aW9ucydcblxuICAgIGlmIChpZCkge1xuICAgICAgcHJlZmVyZW5jZXNLZXkgPSBgY29sbGVjdGlvbi0ke3NsdWd9LSR7aWR9YFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IFtkb2NQZXJtaXNzaW9ucywgc2V0RG9jUGVybWlzc2lvbnNdID0gdXNlU3RhdGU8RG9jdW1lbnRQZXJtaXNzaW9ucz4obnVsbClcblxuICBjb25zdCBnZXRWZXJzaW9ucyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBsZXQgdmVyc2lvbkZldGNoVVJMXG4gICAgbGV0IHB1Ymxpc2hlZEZldGNoVVJMXG4gICAgY29uc3Qgc2hvdWxkRmV0Y2hWZXJzaW9ucyA9IEJvb2xlYW4odmVyc2lvbnNDb25maWcpXG4gICAgbGV0IHVucHVibGlzaGVkVmVyc2lvbkpTT04gPSBudWxsXG4gICAgbGV0IHZlcnNpb25KU09OID0gbnVsbFxuICAgIGxldCBzaG91bGRGZXRjaCA9IHRydWVcblxuICAgIGNvbnN0IHZlcnNpb25QYXJhbXMgPSB7XG4gICAgICBkZXB0aDogMCxcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIGFuZDogW10sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHB1Ymxpc2hlZFZlcnNpb25QYXJhbXM6IHsgZGVwdGg6IG51bWJlcjsgbG9jYWxlOiBzdHJpbmc7IHdoZXJlOiBXaGVyZSB9ID0ge1xuICAgICAgZGVwdGg6IDAsXG4gICAgICBsb2NhbGU6IGNvZGUgfHwgdW5kZWZpbmVkLFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgYW5kOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3I6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF9zdGF0dXM6IHtcbiAgICAgICAgICAgICAgICAgIGVxdWFsczogJ3B1Ymxpc2hlZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF9zdGF0dXM6IHtcbiAgICAgICAgICAgICAgICAgIGV4aXN0czogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbFNsdWcpIHtcbiAgICAgIHZlcnNpb25GZXRjaFVSTCA9IGAke2Jhc2VVUkx9L2dsb2JhbHMvJHtnbG9iYWxTbHVnfS92ZXJzaW9uc2BcbiAgICAgIHB1Ymxpc2hlZEZldGNoVVJMID0gYCR7YmFzZVVSTH0vZ2xvYmFscy8ke2dsb2JhbFNsdWd9PyR7cXMuc3RyaW5naWZ5KHB1Ymxpc2hlZFZlcnNpb25QYXJhbXMpfWBcbiAgICB9XG5cbiAgICBpZiAoY29sbGVjdGlvblNsdWcpIHtcbiAgICAgIHZlcnNpb25GZXRjaFVSTCA9IGAke2Jhc2VVUkx9LyR7Y29sbGVjdGlvblNsdWd9L3ZlcnNpb25zYFxuXG4gICAgICBwdWJsaXNoZWRWZXJzaW9uUGFyYW1zLndoZXJlLmFuZC5wdXNoKHtcbiAgICAgICAgaWQ6IHtcbiAgICAgICAgICBlcXVhbHM6IGlkLFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgcHVibGlzaGVkRmV0Y2hVUkwgPSBgJHtiYXNlVVJMfS8ke2NvbGxlY3Rpb25TbHVnfT8ke3FzLnN0cmluZ2lmeShwdWJsaXNoZWRWZXJzaW9uUGFyYW1zKX1gXG5cbiAgICAgIGlmICghaWQpIHtcbiAgICAgICAgc2hvdWxkRmV0Y2ggPSBmYWxzZVxuICAgICAgfVxuXG4gICAgICB2ZXJzaW9uUGFyYW1zLndoZXJlLmFuZC5wdXNoKHtcbiAgICAgICAgcGFyZW50OiB7XG4gICAgICAgICAgZXF1YWxzOiBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHNob3VsZEZldGNoKSB7XG4gICAgICBsZXQgcHVibGlzaGVkSlNPTlxuXG4gICAgICBpZiAodmVyc2lvbnNDb25maWc/LmRyYWZ0cykge1xuICAgICAgICBwdWJsaXNoZWRKU09OID0gYXdhaXQgZmV0Y2gocHVibGlzaGVkRmV0Y2hVUkwsIHtcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcblxuICAgICAgICBpZiAoY29sbGVjdGlvblNsdWcpIHtcbiAgICAgICAgICBwdWJsaXNoZWRKU09OID0gcHVibGlzaGVkSlNPTj8uZG9jcz8uWzBdXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZEZldGNoVmVyc2lvbnMpIHtcbiAgICAgICAgdmVyc2lvbkpTT04gPSBhd2FpdCBmZXRjaChgJHt2ZXJzaW9uRmV0Y2hVUkx9PyR7cXMuc3RyaW5naWZ5KHZlcnNpb25QYXJhbXMpfWAsIHtcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcblxuICAgICAgICBpZiAocHVibGlzaGVkSlNPTj8udXBkYXRlZEF0KSB7XG4gICAgICAgICAgY29uc3QgbmV3ZXJWZXJzaW9uUGFyYW1zID0ge1xuICAgICAgICAgICAgLi4udmVyc2lvblBhcmFtcyxcbiAgICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICAgIC4uLnZlcnNpb25QYXJhbXMud2hlcmUsXG4gICAgICAgICAgICAgIGFuZDogW1xuICAgICAgICAgICAgICAgIC4uLnZlcnNpb25QYXJhbXMud2hlcmUuYW5kLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDoge1xuICAgICAgICAgICAgICAgICAgICBncmVhdGVyX3RoYW46IHB1Ymxpc2hlZEpTT04/LnVwZGF0ZWRBdCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gR2V0IGFueSBuZXdlciB2ZXJzaW9ucyBhdmFpbGFibGVcbiAgICAgICAgICBjb25zdCBuZXdlclZlcnNpb25SZXMgPSBhd2FpdCBmZXRjaChcbiAgICAgICAgICAgIGAke3ZlcnNpb25GZXRjaFVSTH0/JHtxcy5zdHJpbmdpZnkobmV3ZXJWZXJzaW9uUGFyYW1zKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcblxuICAgICAgICAgIGlmIChuZXdlclZlcnNpb25SZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgIHVucHVibGlzaGVkVmVyc2lvbkpTT04gPSBhd2FpdCBuZXdlclZlcnNpb25SZXMuanNvbigpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNldFB1Ymxpc2hlZERvYyhwdWJsaXNoZWRKU09OKVxuICAgICAgc2V0VmVyc2lvbnModmVyc2lvbkpTT04pXG4gICAgICBzZXRVbnB1Ymxpc2hlZFZlcnNpb25zKHVucHVibGlzaGVkVmVyc2lvbkpTT04pXG4gICAgfVxuICB9LCBbaTE4biwgZ2xvYmFsU2x1ZywgY29sbGVjdGlvblNsdWcsIGlkLCBiYXNlVVJMLCBjb2RlLCB2ZXJzaW9uc0NvbmZpZ10pXG5cbiAgY29uc3QgZ2V0RG9jUGVybWlzc2lvbnMgPSBSZWFjdC51c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgbGV0IGRvY0FjY2Vzc1VSTDogc3RyaW5nXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgbG9jYWxlOiBjb2RlIHx8IHVuZGVmaW5lZCxcbiAgICB9XG4gICAgaWYgKHBsdXJhbFR5cGUgPT09ICdnbG9iYWxzJykge1xuICAgICAgZG9jQWNjZXNzVVJMID0gYC9nbG9iYWxzLyR7c2x1Z30vYWNjZXNzYFxuICAgIH0gZWxzZSBpZiAocGx1cmFsVHlwZSA9PT0gJ2NvbGxlY3Rpb25zJyAmJiBpZCkge1xuICAgICAgZG9jQWNjZXNzVVJMID0gYC8ke3NsdWd9L2FjY2Vzcy8ke2lkfWBcbiAgICB9XG5cbiAgICBpZiAoZG9jQWNjZXNzVVJMKSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgJHtzZXJ2ZXJVUkx9JHthcGl9JHtkb2NBY2Nlc3NVUkx9PyR7cXMuc3RyaW5naWZ5KHBhcmFtcyl9YCwge1xuICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcy5qc29uKClcbiAgICAgIHNldERvY1Blcm1pc3Npb25zKGpzb24pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZhbGxiYWNrIHRvIHBlcm1pc3Npb25zIGZyb20gdGhlIGVudGl0eSB0eXBlXG4gICAgICAvLyAoaS5lLiBjcmVhdGUgaGFzIG5vIGlkKVxuICAgICAgc2V0RG9jUGVybWlzc2lvbnMocGVybWlzc2lvbnM/LltwbHVyYWxUeXBlXT8uW3NsdWddKVxuICAgIH1cbiAgfSwgW3NlcnZlclVSTCwgYXBpLCBwbHVyYWxUeXBlLCBzbHVnLCBpZCwgcGVybWlzc2lvbnMsIGkxOG4ubGFuZ3VhZ2UsIGNvZGVdKVxuXG4gIGNvbnN0IGdldERvY1ByZWZlcmVuY2VzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBnZXRQcmVmZXJlbmNlPERvY3VtZW50UHJlZmVyZW5jZXM+KHByZWZlcmVuY2VzS2V5KVxuICB9LCBbZ2V0UHJlZmVyZW5jZSwgcHJlZmVyZW5jZXNLZXldKVxuXG4gIGNvbnN0IHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgPSB1c2VDYWxsYmFjazxEb2N1bWVudEluZm9Db250ZXh0WydzZXREb2NGaWVsZFByZWZlcmVuY2VzJ10+KFxuICAgIGFzeW5jIChwYXRoLCBmaWVsZFByZWZlcmVuY2VzKSA9PiB7XG4gICAgICBjb25zdCBhbGxQcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcblxuICAgICAgaWYgKHByZWZlcmVuY2VzS2V5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgc2V0UHJlZmVyZW5jZShwcmVmZXJlbmNlc0tleSwge1xuICAgICAgICAgICAgLi4uYWxsUHJlZmVyZW5jZXMsXG4gICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgLi4uKGFsbFByZWZlcmVuY2VzPy5maWVsZHMgfHwge30pLFxuICAgICAgICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAgICAgICAuLi5hbGxQcmVmZXJlbmNlcz8uZmllbGRzPy5bcGF0aF0sXG4gICAgICAgICAgICAgICAgLi4uZmllbGRQcmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldFByZWZlcmVuY2UsIHByZWZlcmVuY2VzS2V5LCBnZXREb2NQcmVmZXJlbmNlc10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgZ2V0VmVyc2lvbnMoKVxuICB9LCBbZ2V0VmVyc2lvbnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbG9hZERvY1Blcm1pc3Npb25zID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZG9jUGVybWlzc2lvbnM6IERvY3VtZW50UGVybWlzc2lvbnMgPSByZXN0LmRvY1Blcm1pc3Npb25zXG4gICAgICBpZiAoIWRvY1Blcm1pc3Npb25zKSBhd2FpdCBnZXREb2NQZXJtaXNzaW9ucygpXG4gICAgICBlbHNlIHNldERvY1Blcm1pc3Npb25zKGRvY1Blcm1pc3Npb25zKVxuICAgIH1cblxuICAgIGlmIChjb2xsZWN0aW9uU2x1ZyB8fCBnbG9iYWxTbHVnKSB7XG4gICAgICB2b2lkIGxvYWREb2NQZXJtaXNzaW9ucygpXG4gICAgfVxuICB9LCBbZ2V0RG9jUGVybWlzc2lvbnMsIHJlc3QuZG9jUGVybWlzc2lvbnMsIHNldERvY1Blcm1pc3Npb25zLCBjb2xsZWN0aW9uU2x1ZywgZ2xvYmFsU2x1Z10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBsb2FkRG9jUHJlZmVyZW5jZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgZG9jUHJlZmVyZW5jZXM6IERvY3VtZW50UHJlZmVyZW5jZXMgPSByZXN0LmRvY1ByZWZlcmVuY2VzXG4gICAgICBpZiAoIWRvY1ByZWZlcmVuY2VzKSBkb2NQcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcblxuICAgICAgZGlzcGF0Y2hEb2N1bWVudEluZm8oe1xuICAgICAgICB0eXBlOiAnU0VUX0RPQ19JTkZPJyxcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgIGRvY1ByZWZlcmVuY2VzLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoaWQpIHtcbiAgICAgIHZvaWQgbG9hZERvY1ByZWZlcmVuY2VzKClcbiAgICB9XG4gIH0sIFtnZXREb2NQcmVmZXJlbmNlcywgcHJlZmVyZW5jZXNLZXksIHJlc3QuZG9jUHJlZmVyZW5jZXMsIGlkXSlcblxuICBjb25zdCB2YWx1ZTogRG9jdW1lbnRJbmZvQ29udGV4dCA9IHtcbiAgICAuLi5kb2N1bWVudEluZm8sXG4gICAgZG9jQ29uZmlnLFxuICAgIGRvY1Blcm1pc3Npb25zLFxuICAgIGdldERvY1Blcm1pc3Npb25zLFxuICAgIGdldERvY1ByZWZlcmVuY2VzLFxuICAgIGdldFZlcnNpb25zLFxuICAgIHB1Ymxpc2hlZERvYyxcbiAgICBzZXREb2NGaWVsZFByZWZlcmVuY2VzLFxuICAgIHNldERvY3VtZW50SW5mbyxcbiAgICBzZXREb2N1bWVudFRpdGxlLFxuICAgIHVucHVibGlzaGVkVmVyc2lvbnMsXG4gICAgdmVyc2lvbnMsXG4gIH1cblxuICByZXR1cm4gPENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9Db250ZXh0LlByb3ZpZGVyPlxufVxuIl0sIm5hbWVzIjpbInFzIiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwidXNlQ2FsbGJhY2siLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwidXNlUmVkdWNlciIsInVzZVN0YXRlIiwidXNlQXV0aCIsInVzZUNvbmZpZyIsInVzZUxvY2FsZSIsInVzZVByZWZlcmVuY2VzIiwidXNlVHJhbnNsYXRpb24iLCJkb2N1bWVudEluZm9SZWR1Y2VyIiwiQ29udGV4dCIsInVzZURvY3VtZW50SW5mbyIsIkRvY3VtZW50SW5mb1Byb3ZpZGVyIiwiY2hpbGRyZW4iLCJyZXN0IiwiZG9jdW1lbnRJbmZvIiwiZGlzcGF0Y2hEb2N1bWVudEluZm8iLCJzZXREb2N1bWVudEluZm8iLCJuZXdJbmZvIiwidHlwZSIsInBheWxvYWQiLCJpZCIsImNvbGxlY3Rpb25TbHVnIiwiZ2xvYmFsU2x1ZyIsImNvbGxlY3Rpb25zIiwiZ2xvYmFscyIsInJvdXRlcyIsImFwaSIsInNlcnZlclVSTCIsImNvbGxlY3Rpb25Db25maWciLCJmaW5kIiwiYyIsInNsdWciLCJnbG9iYWxDb25maWciLCJnIiwiZG9jQ29uZmlnIiwidmVyc2lvbnNDb25maWciLCJ2ZXJzaW9ucyIsImdldFByZWZlcmVuY2UiLCJzZXRQcmVmZXJlbmNlIiwiaTE4biIsInBlcm1pc3Npb25zIiwiY29kZSIsInB1Ymxpc2hlZERvYyIsInNldFB1Ymxpc2hlZERvYyIsInNldFZlcnNpb25zIiwidW5wdWJsaXNoZWRWZXJzaW9ucyIsInNldFVucHVibGlzaGVkVmVyc2lvbnMiLCJzZXREb2N1bWVudFRpdGxlIiwidGl0bGUiLCJiYXNlVVJMIiwicGx1cmFsVHlwZSIsInByZWZlcmVuY2VzS2V5IiwiZG9jUGVybWlzc2lvbnMiLCJzZXREb2NQZXJtaXNzaW9ucyIsImdldFZlcnNpb25zIiwidmVyc2lvbkZldGNoVVJMIiwicHVibGlzaGVkRmV0Y2hVUkwiLCJzaG91bGRGZXRjaFZlcnNpb25zIiwiQm9vbGVhbiIsInVucHVibGlzaGVkVmVyc2lvbkpTT04iLCJ2ZXJzaW9uSlNPTiIsInNob3VsZEZldGNoIiwidmVyc2lvblBhcmFtcyIsImRlcHRoIiwid2hlcmUiLCJhbmQiLCJwdWJsaXNoZWRWZXJzaW9uUGFyYW1zIiwibG9jYWxlIiwidW5kZWZpbmVkIiwib3IiLCJfc3RhdHVzIiwiZXF1YWxzIiwiZXhpc3RzIiwic3RyaW5naWZ5IiwicHVzaCIsInBhcmVudCIsInB1Ymxpc2hlZEpTT04iLCJkcmFmdHMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsImxhbmd1YWdlIiwidGhlbiIsInJlcyIsImpzb24iLCJkb2NzIiwidXBkYXRlZEF0IiwibmV3ZXJWZXJzaW9uUGFyYW1zIiwiZ3JlYXRlcl90aGFuIiwibmV3ZXJWZXJzaW9uUmVzIiwic3RhdHVzIiwiZ2V0RG9jUGVybWlzc2lvbnMiLCJkb2NBY2Nlc3NVUkwiLCJwYXJhbXMiLCJnZXREb2NQcmVmZXJlbmNlcyIsInNldERvY0ZpZWxkUHJlZmVyZW5jZXMiLCJwYXRoIiwiZmllbGRQcmVmZXJlbmNlcyIsImFsbFByZWZlcmVuY2VzIiwiZmllbGRzIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsImxvYWREb2NQZXJtaXNzaW9ucyIsImxvYWREb2NQcmVmZXJlbmNlcyIsImRvY1ByZWZlcmVuY2VzIiwidmFsdWUiLCJQcm92aWRlciJdLCJtYXBwaW5ncyI6IkFBQUE7QUFLQSxPQUFPQSxRQUFRLEtBQUk7QUFDbkIsT0FBT0MsU0FDTEMsYUFBYSxFQUNiQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsU0FBUyxFQUNUQyxVQUFVLEVBQ1ZDLFFBQVEsUUFDSCxRQUFPO0FBSWQsU0FBU0MsT0FBTyxRQUFRLFVBQVM7QUFDakMsU0FBU0MsU0FBUyxRQUFRLFlBQVc7QUFDckMsU0FBU0MsU0FBUyxRQUFRLFlBQVc7QUFDckMsU0FBU0MsY0FBYyxRQUFRLGlCQUFnQjtBQUMvQyxTQUFTQyxjQUFjLFFBQVEsaUJBQWdCO0FBQy9DLFNBQVNDLG1CQUFtQixRQUFRLFlBQVc7QUFFL0MsTUFBTUMsd0JBQVVaLGNBQWMsQ0FBQztBQUkvQixPQUFPLE1BQU1hLGtCQUFrQixJQUEyQlgsV0FBV1UsU0FBUTtBQUU3RTs7Ozs7O0VBTUUsR0FDRixPQUFPLE1BQU1FLHVCQUlULENBQUMsRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE1BQU07SUFDeEIsTUFBTSxDQUFDQyxjQUFjQyxxQkFBcUIsR0FBR2QsV0FBV08scUJB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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DocumentInfo } from '.';
|
|
2
|
+
type SET = {
|
|
3
|
+
payload: Partial<DocumentInfo>;
|
|
4
|
+
type: 'SET_DOC_INFO';
|
|
5
|
+
};
|
|
6
|
+
type SET_TITLE = {
|
|
7
|
+
payload: string;
|
|
8
|
+
type: 'SET_DOC_TITLE';
|
|
9
|
+
};
|
|
10
|
+
type RESET = {
|
|
11
|
+
payload: DocumentInfo;
|
|
12
|
+
type: 'RESET_DOC_INFO';
|
|
13
|
+
};
|
|
14
|
+
type Action = RESET | SET | SET_TITLE;
|
|
15
|
+
export declare const documentInfoReducer: (state: DocumentInfo, action: Action) => DocumentInfo;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=reducer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,CAAA;AAErC,KAAK,GAAG,GAAG;IACT,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9B,IAAI,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,YAAY,CAAA;IACrB,IAAI,EAAE,gBAAgB,CAAA;CACvB,CAAA;AAED,KAAK,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,CAAA;AAErC,eAAO,MAAM,mBAAmB,UAAW,YAAY,UAAU,MAAM,KAAG,YAmBzE,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const documentInfoReducer = (state, action)=>{
|
|
2
|
+
switch(action.type){
|
|
3
|
+
case 'SET_DOC_INFO':
|
|
4
|
+
return {
|
|
5
|
+
...state,
|
|
6
|
+
...action.payload
|
|
7
|
+
};
|
|
8
|
+
case 'SET_DOC_TITLE':
|
|
9
|
+
return {
|
|
10
|
+
...state,
|
|
11
|
+
title: action.payload
|
|
12
|
+
};
|
|
13
|
+
case 'RESET_DOC_INFO':
|
|
14
|
+
return {
|
|
15
|
+
...action.payload
|
|
16
|
+
};
|
|
17
|
+
default:
|
|
18
|
+
return state;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvRG9jdW1lbnRJbmZvL3JlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb2N1bWVudEluZm8gfSBmcm9tICcuJ1xuXG50eXBlIFNFVCA9IHtcbiAgcGF5bG9hZDogUGFydGlhbDxEb2N1bWVudEluZm8+XG4gIHR5cGU6ICdTRVRfRE9DX0lORk8nXG59XG5cbnR5cGUgU0VUX1RJVExFID0ge1xuICBwYXlsb2FkOiBzdHJpbmdcbiAgdHlwZTogJ1NFVF9ET0NfVElUTEUnXG59XG5cbnR5cGUgUkVTRVQgPSB7XG4gIHBheWxvYWQ6IERvY3VtZW50SW5mb1xuICB0eXBlOiAnUkVTRVRfRE9DX0lORk8nXG59XG5cbnR5cGUgQWN0aW9uID0gUkVTRVQgfCBTRVQgfCBTRVRfVElUTEVcblxuZXhwb3J0IGNvbnN0IGRvY3VtZW50SW5mb1JlZHVjZXIgPSAoc3RhdGU6IERvY3VtZW50SW5mbywgYWN0aW9uOiBBY3Rpb24pOiBEb2N1bWVudEluZm8gPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnU0VUX0RPQ19JTkZPJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZCxcbiAgICAgIH1cbiAgICBjYXNlICdTRVRfRE9DX1RJVExFJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0aXRsZTogYWN0aW9uLnBheWxvYWQsXG4gICAgICB9XG4gICAgY2FzZSAnUkVTRVRfRE9DX0lORk8nOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWN0aW9uLnBheWxvYWQsXG4gICAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZVxuICB9XG59XG4iXSwibmFtZXMiOlsiZG9jdW1lbnRJbmZvUmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwidHlwZSIsInBheWxvYWQiLCJ0aXRsZSJdLCJtYXBwaW5ncyI6IkFBbUJBLE9BQU8sTUFBTUEsc0JBQXNCLENBQUNDLE9BQXFCQztJQUN2RCxPQUFRQSxPQUFPQyxJQUFJO1FBQ2pCLEtBQUs7WUFDSCxPQUFPO2dCQUNMLEdBQUdGLEtBQUs7Z0JBQ1IsR0FBR0MsT0FBT0UsT0FBTztZQUNuQjtRQUNGLEtBQUs7WUFDSCxPQUFPO2dCQUNMLEdBQUdILEtBQUs7Z0JBQ1JJLE9BQU9ILE9BQU9FLE9BQU87WUFDdkI7UUFDRixLQUFLO1lBQ0gsT0FBTztnQkFDTCxHQUFHRixPQUFPRSxPQUFPO1lBQ25CO1FBQ0Y7WUFDRSxPQUFPSDtJQUNYO0FBQ0YsRUFBQyJ9
|
|
@@ -19,6 +19,7 @@ export type DocumentInfoProps = {
|
|
|
19
19
|
initialData?: Data;
|
|
20
20
|
initialState?: FormState;
|
|
21
21
|
onSave?: (data: Data) => Promise<void> | void;
|
|
22
|
+
title?: string;
|
|
22
23
|
};
|
|
23
24
|
export type DocumentInfo = DocumentInfoProps & {
|
|
24
25
|
docConfig?: SanitizedCollectionConfig | SanitizedGlobalConfig;
|
|
@@ -27,7 +28,6 @@ export type DocumentInfo = DocumentInfoProps & {
|
|
|
27
28
|
_status?: string;
|
|
28
29
|
};
|
|
29
30
|
slug?: string;
|
|
30
|
-
title?: string;
|
|
31
31
|
unpublishedVersions?: PaginatedDocs<TypeWithVersion<any>>;
|
|
32
32
|
versions?: PaginatedDocs<TypeWithVersion<any>>;
|
|
33
33
|
versionsCount?: PaginatedDocs<TypeWithVersion<any>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EACnB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EACnB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG;IAC7C,SAAS,CAAC,EAAE,yBAAyB,GAAG,qBAAqB,CAAA;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,kBAAkB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mBAAmB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG;IACvE,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,iBAAiB,EAAE,MAAM,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;IAC5D,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAC7F,eAAe,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;IACpE,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAA"}
|